我正在撰写本地化的Android应用;我对如何处理简体中文和繁体中文之间的差异感到困惑。
感谢this excellent answer我知道我应该将简体中文放在values-zh-rCN
中,将繁体中文放在values-zh-rTW
中。
但是我应该把{em> 放在values-zh
中,对吧?香港和澳门的人不应该只拿到我的默认(英文)字符串。
我的问题是:将传统中文放在values-zh
中会更好吗?或者我应该将简体中文设为默认值? (或者我应该省略values-zh
目录?)
答案 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。