2012-02-23 65 views
2

我的问题我应该使用哪种文化代码进行拼音?

如果你想显示拼音为中国讲的用户,在什么“资源文件”将你存储的拼音翻译?

由于拼音本身不是“语言”,而是中文字符的拉丁表示形式,所以在.NET中没有文化编码。

我的猜测是,我们可能需要使用适用的“zh-”(中文)文化,并简单地将拉丁字符拼音翻译放在这些资源文件中。

如果这是一个愚蠢的问题,我提前道歉,但所有不同的文化的东西都争先恐后!

背景

我们终于避过我们网站的国际化。我们现在正在处理大部分“西方”文化(拉丁字母:“es”,“fr”,“de”)和不同的日期/数字格式。然而,由于各种遗留系统未处理Unicode,基于表意文字的书写系统(如中文)是一项挑战。作为一个短期的解决办法,我们的业务领域决定使用汉语拼音。

因此...业务领域要求我“只需添加一个拼音资源文件”到网站。

+0

你有没有考虑制作自己的自定义文化? http://msdn.microsoft.com/en-us/library/ms172469.aspx – 2012-02-23 21:34:32

+0

我曾想过做一个自定义的文化,但它不知何故觉得......“脏”;-)另外,这不会阻止我从使用浏览器的语言设置?无论如何,这可能不是一个好主意,我们应该始终让用户“选择”网站上的语言? – SnookerC 2012-02-23 23:07:31

+1

您应该始终让用户能够根据他们的浏览器覆盖您为他们选择的任何设置。它的好习惯是引导用户使用浏览器支持的语言,但认为自己坐在你的朋友的笔记本电脑上,没有选择恢复到。英语而不开始对其浏览器设置进行更改。 – 2012-02-24 00:59:25

回答

1

微软的文化代码的格式为:

"language-country" 

因此,以中国为例。中文的代码是“zh”。但是,有许多国家和地区使用中文,所以我们在国家代码中添加了国家代码。 “zh-cn”代表中国大陆。同样,“zh-tw”代表台湾的华人。

.Net使用资源回退的概念,其中资源查找从指定的级别开始,只要资源未找到,就会查看较不具体的资源,直至找到默认资源。因此,理想情况下,“zh-cn”资源文件应该只包含特定于中国大陆的资源。所有讲中文的国家都有的资源应该存在于“zh”资源中。

因此,为了解决您的问题,我相信拼音主要在中国大陆使用,并且由于您将其用作中文翻译替代品,因此我会将拼音翻译放在“zh-cn”资源文件中。

+0

实际上没有“zh”资源,例如“en”,“es”,“fr”等。但是,通过您的响应提示,我发现有* * fallback资源查找中文。 “zh-CHS”是“中国(简体)”父母或后备,“zh-CHT”是“中国(传统)”父母/后备。看到这里:http://www.agiledeveloper.com/articles/LocalizingDOTNet。pdf非常感谢,这为我省下了一些潜在的努力! – SnookerC 2012-02-23 22:57:39

+1

好的,我需要道歉。自从写了我以前的评论以来,我学到了一些我一直在使用的在线资源已经过时了。我写了一些快速的C#代码来显示NET 4.0中的所有文化,而“zh”*是一种有效的“中立”文化。我还了解到“zh-CHS”和“zh-CHT”是“遗留”,分别由“zh-Hans”和“zh-Hant”取代。 – SnookerC 2012-02-24 22:44:44

+0

而你对拼音的评论,“zh-CN”似乎是很好的建议。虽然我仍然不明白为什么.NET有这样的一个人指向“zh-CHS”作为其父母,这是遗产。也许他们试图制造除zh-Hant和zh-Hans以外的所有“zh-”遗产?无论如何,我正在给你答案。 **非常感谢**! – SnookerC 2012-02-24 22:45:10