我在我的应用中使用资产文件作为帮助文件,并且已经有十几个。我正在将应用程序移植到多种语言。替代语言资产文件在哪里?
我已经在语言文件(值,值等)中使用“res / values”目录,以便在应用程序中使用。我认为“资产”目录用于帮助文件和类似的项目。
我试图用我所包含的许多帮助文件来混淆我的值文件夹,并使用“activity.getAssets()。open(file)”来读取文件。
此外,其中一些“资产”文件是不同的语言图片。
答案 0 :(得分:1)
你能把文件放在/ res而不是/ assets吗?这内置了对多种语言的支持,有一个易于遵循的指南here。
基本上,如果您的原始文本位于/res/values/strings.xml中,您可以将翻译放在/ res / values- {ISO LANGUAGE CODE} /strings.xml
例如,您的法语翻译将位于/res/values-fr/strings.xml。
Android会根据用户手机的区域设置选择合适的翻译文件。
/ res和/ assets here之间的其他差异有一些很好的解释。
答案 1 :(得分:0)
您可以找到on the official documentation所需的一切。请记住Android,几乎每个现有平台都有官方文档,您可以轻松找到这样的简单实现问题。这个网站是为了提出聪明,非平凡的问题。
答案 2 :(得分:0)
在资产中创建文件夹: 1. htmlpagesNL 2. htmlpagesUS
从htmlpagesNL复制文件并粘贴到htmlpagesUS并进行翻译
在Nl字符串文件中使用url: file:/// android_asset / htmlpagesNL进行NL翻译 在我们字符串文件中使用url: file:/// android_asset / htmlpagesUS用于美国翻译
答案 3 :(得分:0)
对于我的应用程序中的语音识别(使用 Vosk),我已将特定资产文件夹定义为资源字符串。
IE。 values\strings.xml
包含:
<resources>
<string name="language_directory">vosk-model-small-en-us-0.15</string>
...
和 values-de-rDE\strings.xml
包含:
<resources>
<string name="language_directory">vosk-model-small-de-0.15</string>
...
所以我可以通过
访问资产目录val assets = Assets(activity)
val assetDir = assets.syncAssets()
val modelDir = activity.getString(R.string.language_directory)
recognitionListener.model = Model("$assetDir/$modelDir")
这样,始终会根据活动区域设置选择正确的目录。
就我而言,它们位于 models\src\main\assets\sync\<language_directory>