我的Android应用程序应默认为简体中文还是繁体中文?

时间:2011-09-18 03:51:49

标签: android localization cjk

我正在撰写本地化的Android应用;我对如何处理简体中文和繁体中文之间的差异感到困惑。

感谢this excellent answer我知道我应该将简体中文放在values-zh-rCN中,将繁体中文放在values-zh-rTW中。

但是我应该把{em> 放在values-zh中,对吧?香港和澳门的人不应该只拿到我的默认(英文)字符串。

我的问题是:将传统中文放在values-zh中会更好吗?或者我应该将简体中文设为默认值? (或者我应该省略values-zh目录?)

3 个答案:

答案 0 :(得分:6)

繁体中文字符(标准字符)在华语世界中有几个不同的名称。台湾政府正式称繁体中文字符或正统字符(繁体中文;简体中文。

中国,马来西亚和新加坡的人主要使用简化系统,繁体中文字符目前在台湾(中华民国),香港和澳门使用。

我认为您不应该忽略values-zh,将其设为简体中文或允许用户在您的应用中切换语言。

答案 1 :(得分:1)

默认情况下,Android假定zh为繁体,而Unicode(其中设置了语言环境使用的标准)使用zh的简体字。

如果应用的最低版本为Android 7.0(API 24),则可以使用新的语言环境分辨率。通过将文件夹定义为values-b+zh+Hans(标准)和values-b+zh+Hant(传统),系统将根据选择的区域自动使用正确的语言环境。如果您需要使用相同变体的区域之间的区域差异,则仍然可以使用values-zh-rTW等。

答案 2 :(得分:0)

我的应用程序存在同样的问题,目前仅使用zh-rCN和zh-rTW导致所有其他区域出现问题。不幸的是,基于这个问题(Simplified and Traditional Chinese vs Regions),没有实际的方法来确定哪些是最好的:

values-zh (traditional)
values-zh-rCN (simplified)

或LOL

values-zh (simplified)
values-zh-rTW (traditional)

所以我一直在寻找以下替代方案:

在我的应用程序中,我有一个在开始时运行的方法来设置用户定义的语言,如果没有实际定义,我可以检查当前语言/区域并相应地应用补丁,同时只保留zh-rCN和zh -rTW文件夹:

zh-rHK => zh-RTW
zh-rSG => zh-rCN
zh-rMO => zh-r?? can be both according to the link above

我使用的方法在此部分描述:Changing locale: Force activity to reload resources?

编辑:我现在已经使值-zh包含Simplified并修补HK区域以自动使用Traditional。