有没有办法用一种以上的语言(values-en-es)标记字符串资源文件夹?
我的问题是,在某些设备上,希伯来语的语言代码是“iw”,而在其他设备上是“he”。我目前的解决方案是制作两个内容相同的文件夹,只分别更改它们的名称。
我想知道是否有更准确的方法来做到这一点?
有没有办法用一种以上的语言(values-en-es)标记字符串资源文件夹?
我的问题是,在某些设备上,希伯来语的语言代码是“iw”,而在其他设备上是“he”。我目前的解决方案是制作两个内容相同的文件夹,只分别更改它们的名称。
我想知道是否有更准确的方法来做到这一点?
资源文件夹名称可以有多个限定符,但每种类型只有一个限定符:
例如
values-en-rGB //Language + Region
有效但
values-en-fr//Language + Language
无效,因为它对单个限定符有多个值。所以
values-iw-he
不可能。
资料来源:Android 开发者,限定符名称规则。
但是,这并不意味着您必须复制文件。相反,您可以创建别名资源。
Android 开发人员这样解释 Alias Resouces:
创建别名资源:当您有一个想要用于多个设备配置的资源(但不想作为默认资源提供)时,您不需要将同一资源放在多个替代资源中目录。相反,您可以(在某些情况下)创建一个替代资源,作为保存在默认资源目录中的资源的别名。
例如,一个文件夹中的字符串资源
<string name="app_name">My Awesome App</string>
可以在另一个文件夹中的另一个字符串资源中引用为:
<string name="application_name">@string/app_name</string>
更多关于Android 开发者的别名资源。
您可以在 Eclipse 中创建文件链接,如此处所述。因此,您拥有values-iw/strings.xml
真正的价值,并在文件夹中创建指向该文件的文件链接values-he
。这样做的好处是您不必编辑 2 个文件,链接的“文件”会自动更新。