【发布时间】:2016-05-31 04:53:35
【问题描述】:
我正在尝试为塞尔维亚拉丁语 (srpski) 和黑山语(西里尔语和拉丁语)翻译 strings.xml。我在 values 文件夹中包含了塞尔维亚西里尔字母 (српски) 作为 values-sr。它工作正常。但是对于塞尔维亚拉丁语和黑山语,我无法决定 values 文件夹的名称应该是什么。我在 SO 中浏览了许多帖子,例如
How to change locale to use Latin Serbian (instead of Cyrillic Serbian)
What should be the values folder name for Serbian (Latin,Serbia) (sr-rs-latn) language?
但他们没有多大帮助。
我从https://github.com/championswimmer/android-locales 了解到 values 文件夹应该是:
塞尔维亚语(西里尔文)sr --> values-sr-r_#Cyrl
塞尔维亚(西里尔文,黑山)sr ME --> values-sr-rME_#Cyrl
塞尔维亚语(西里尔文,塞尔维亚)sr RS --> values-sr-rRS_#Cyrl
塞尔维亚(拉丁)sr --> values-sr-r_#Latn
塞尔维亚语(拉丁语、黑山) sr ME --> values-sr-rME_#Latn
塞尔维亚语(拉丁语、塞尔维亚语)sr RS --> values-sr-rRS_#Latn
但是,如果我尝试在 Android Studio 中创建类似 values-sr-rRS_#Latn 的文件夹,则会引发错误“目录无效”。然后我开始了一些分析。
-
在 Nexus 9 Marshmallow 中,使用 Locale.getAvailableLocales() 的可用语言环境列表列出了所有塞尔维亚语。所以它们是受支持的。
sr
sr__#Cyrl
sr_BA_#Cyrl
sr_ME_#Cyrl
sr_RS_#Cyrl
sr_XK_#Cyrl
sr__#Latn
sr_BA_#Latn
sr_ME_#Latn sr_RS_#Latn
sr_XK_#Latn -
在 Nexus 9 的设置屏幕中,我可以看到仅更改为塞尔维亚西里尔字母 (српски) 的选项,而在 Lenovo Yoga 选项卡中,我看到仅更改为塞尔维亚拉丁语 (srpski) 的选项。当我在这两个设备中调试时,我发现它们都有 sr 作为语言代码和 RS 作为区域代码并且脚本代码是空白的。那么如何在 app 中同时包含 values 文件夹及其映射方式?
-
我是否应该为我需要的语言创建 values-sr-ZZ 之类的值文件夹并在代码中检查脚本代码?
-
但如果是这样的话,在 Google Play 游戏和设置应用程序的资源文件夹中,我发现它们只有一个 values-sr 文件夹。那么他们如何处理 values-sr-r_#Latn 和 values-sr-rME_#Latn 和 values-sr-rME_#Cyrl。
有人可以指导我吗?
【问题讨论】:
-
Jesi uspio rijesiti ovo?
标签: android localization locale