Android 字符串数组语言环境验证

标签 android locale

我想知道是否有人遇到过在 res/values 目录中验证字符串数组的好方法。

我使用默认语言环境通过代码创建,并且可能有类似的资源

<string-array name="array_example1">
    <item>One</item>
    <item>Two</item>
    <item>Three</item>
</string-array>

然后,当应用程序的翻译人员进行翻译时,他们还会创建一个字符串数组。有时,如果一个翻译滞后于另一个资源文件,则数组中的条目可能没有那么多(可能只有上例中的“一”和“二”)

是否有任何简单的方法来验证条目数量是否不匹配?不匹配可能会导致代码出现问题,但由于应用程序有 10 种不同语言的字符串数组,因此检查它们是否匹配非常耗时。

其他人对此有什么方法?

最佳答案

我找到了一种更好的方法来阻止崩溃。我没有意识到字符串数组可以通过以下方式引用字符串资源:

<string-array name="array_example1">
    <item>@string/resOne</item>
    <item>@string/resTwo</item>
    <item>@string/resThree</item>
</string-array>

然后添加

<string name="resOne">One</string>
<string name="resTwo">Two</string>
<string name="resThree">Three</string>

因此,如果存在不匹配的情况,则只会显示该选项的默认语言并停止由于列表大小不同而导致的崩溃

关于Android 字符串数组语言环境验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7739752/

相关文章:

java - 检查 GPS 和/或移动网络位置是否已启用

android - FIleObserver 和 ContentObserver 在 Android Marshmallow 中不起作用

android - --prod 标志导致在 Android 7 的 Ionic 3 应用程序中不显示键盘

android - 使用批处理文件在 linux shell 中运行命令

java - 如何将具有不同 ID 的元素添加到数组中

android - Ltr 用于 android 中的波斯语言环境

Java 覆盖特定语言环境的语言环境设置

java - 如何在 TALEND 中划分 tmap 中字段的值

java - Tapestry : Start page use english locale instead of default locale

c++ - 使用 VT_BSTR 和德语语言环境中嵌入的小数点时转换不正确