本地化字符串数组(及其项)的名称



我有一个字符串数组

<string-array name="Color">
<item>@string/red</item>
<item>@string/green</item>
<item>@string/purple</item>
</string-array>
<string name="red">red></string>
<string name="green">green></string>
<string name="purple">purple></string>

我用Java评估它:

int id = R.array.Color;
String[] colors = getResources().getStringArray(id);

variantTextView.setText(getResources().getResourceEntryName(id));
ansA.setText(colors[0]);
ansB.setText(colors[1]);
ansC.setText(colors[2]);
  1. 如何本地化此数组的NAME
  2. 是否需要像我那样提取字符串?或者有没有一种方法可以定位整个数组

如何本地化此数组的NAME?

您不需要,就像您在Java/Kotlin代码中本地化变量名一样。如果要向用户显示Color,请将其作为单独的字符串资源显示。

是否需要像我这样提取字符串?

否。

或者有办法定位整个数组吗?

拥有Colors<string-array>的两个副本,每个副本都位于基于语言的适当资源集中。每个<string-array>可以具有<item>元素,这些元素包含实际的字符串,而不是对字符串资源的引用。如果您希望数组具有不同的元素顺序(例如,按字母顺序排序(,则可以执行此操作。

最新更新