7

我们开发了一个中型 ASP.NET / SQL Server 应用程序,它使用资源文件来提供英语和西班牙语用户界面变体。Unicode 数据类型在整个数据库中使用。现在我们被要求添加普通话。我没有本地化到亚洲语言的经验,所以我真的无法想象这将是一份什么样的工作。

我的问题是:

  1. 与本地化成另一种西方语言(如法语或德语)相比,这项工作有多复杂?
  2. 除了(显然)翻译资源文件中的字符串之外,我还应该处理哪些其他问题来进行中文本地化?任何与不同字母有关的东西,也许?

非常欢迎报告以前的经验或最佳实践指南。谢谢。

4

3 回答 3

6
  1. 在技​​术方面,我认为这并不困难。如果您始终不使用 Unicode,添加对非西方语言的支持将暴露编码问题,但无论如何使用 UTF-8 编码和 Unicode SQL 类型(nvarchar而不是)几乎是常态。varchar

    我想说的是,增加的复杂性和不确定性更多是关于非技术方面的。当我们看到 1:1 的翻译时,我们大多数说英语的人都能对欧洲语言有所了解,并且会注意到很多问题。但是普通话对我们大多数人来说完全没有意义,所以让母语人士在发布前审查或至少抽查应用程序更为重要。

  2. 需要注意的一件事是输入法问题:说中文的人使用 IME(输入法编辑器)来输入文本,因此避免编写自定义客户端输入代码,例如捕获和处理击键。

    另一个问题是要选择的实际文化标识符。中文有几种变体(在中国zh-Hans替换zh-CHS和使用,在台湾zh-Hant替换zh-CHT使用)。有关这方面的更多信息,请参阅此 MSDN 页面上的注释。但这些是中性文化标识符(它们不是特定于国家/地区的),可用于本地化,但不能用于数字和日期格式等内容,因此理想情况下,您应该使用特定的文化标识符,例如zh-CN中国和zh-TW台湾。为 Web 应用程序选择特定的文化可能很棘手,因此这种选择通常基于您的市场预期。有关不同 .NET 文化标识符的更多信息,请参见另一篇文章

希望这可以帮助!

于 2012-09-05T14:18:19.070 回答
5

就用户界面中的文本翻译而言,中文的本地化工作可能与西方语言的本地化工作相当。与英语和西班牙语一样,中文是从左到右阅读的,因此您无需像必须支持阿拉伯语或希伯来语那样镜像页面布局。这里还有几点需要考虑:

  • 字体大小:中文字符比拉丁字符更复杂,因此您可能需要使用更大的字体大小。英语和西班牙语在 8pt 时可读;对于中文,您至少需要 10pt。

  • 字体样式:在英语中,粗体斜体通常用于强调。在中文中,强调通常通过不同的字体、字体大小或颜色来实现。谨慎使用粗体,避免使用斜体。

但是,如果您的目标是亚洲市场,则可能需要进行更重大的更改。这里有一些例子:

  • 人名:典型的中文名字是孙中山:第一个字符(孙)是姓氏,第二个和第三个字符(中山)构成了名字。这当然与西方常见的“名”+空格+“姓”的惯例相反。如果您要存储和显示姓名,您可能希望使用单个“姓名”字段而不是单独的“名字”和“姓氏”字段。

  • 颜色:在美国,通常用绿色表示“好”,用红色表示“坏”。然而,在中国和台湾,红色是“好”的。例如,比较Yahoo!上的股票价格!雅虎!台湾

  • 缺少字母:汉字不是基于字母的。因此,例如,提供按每个条目的第一个字母过滤列表的功能(如在名称目录中)是没有意义的。

于 2012-09-08T20:23:29.073 回答
2

关于排序顺序,中文使用不同的方法:二进制(即Unicode)、部首+笔画、拼音(=罗马化)和Bopomofo(=音节)。

在 SQL Server 上,您可以在列定义中或在语句级别使用COLLATE 子句定义排序顺序。也可以在数据库级别使用默认排序规则。

运行此语句以查看所有支持的中文排序规则:

select * from fn_helpcollations()
where name like 'chinese%'

在 .Net 中,还有一个用于排序的中国文化列表,请参阅MSDN

于 2012-09-09T07:48:52.503 回答