国际化Web应用程序的最佳做法?
时间:2020-03-06 14:57:20 来源:igfitidea点击:
Web应用程序的国际化似乎总是很繁琐。不论我们为可插拔语言预先计划了多少,总会遇到编码问题,不适合我们模板的时髦措词以及其他问题。
我认为,获得SO社区的意见对于程序员在决定对其Web应用程序进行国际化时应注意的事项很有用。
解决方案
我有几个"双语"应用程序
我在ASP.NET1.1中使用了资源文件
还有一个叫做"字符串资源工具"的东西
基本上,我们将所有字符串都放在两种语言的.RES文件中,然后根据"区域性"或者是否有人单击该语言的链接来确定要读取的文件
最大的陷阱是确保正确完成翻译
在我公司,我们所有的字符串都存储在* .properties文件中。我们的构建工具将构建属性文件的" test languange"副本,该副本将替换如下所示的字符串:
Click here
与这样的事情:
[~~ ????к н∑?ё ~~ ?? ~~]
现在,当我们在配置文件中将语言设置为"测试"时,将使用这些属性文件。 (当然,我们不提供测试语言文件)。
这使我们能够:
- 确保正确显示Unicode字符,包括日文/中文/韩文。
- 确保布局适合于单词较长的语言(特别是德语单词平均长于英语)。
- 找出所有硬编码的字符串(因为它们将使用纯英语)。
至于实际的翻译,这是由专业翻译人员而不是开发人员完成的。
国际化很难,这是我从与2个使用20多种不同语言的网站合作中学到的一些知识:
- 随处使用UTF-8. 没有例外。 HTML,服务器端语言(尤其是PHP),数据库等。
- 除非我们要进行大量工作,否则图片中没有文字。如有必要,使用CSS在图像上放置文字。
- 将配置与本地化分开。这样,本地化人员便可以翻译文本,并且我们可以针对每个语言环境处理不同的配置(功能,布局等)。我们不希望本地化人员具有干扰应用程序的能力。
- 确保布局可以处理比英语长2-3倍的文本。而且比英语少50%(日语和中文通常更短)。
- 某些语言需要较大的字体(日语,中文)
- 颜色也是特定于语言环境的。红色和绿色并不意味着到处都是同一件事!
- 将类名称作为语言环境名称添加到文档的body标记中。这样,我们可以轻松地在CSS文件中指定特定语言环境的布局。
- 注意变量替换。不要分裂你的弦。将它们完整保留为:"我们有X条新消息",并用#代替" X"。
- 不同的语言具有不同的多元性。 0、1、2-4、5-7、7-无穷大。很难应付。
- 上下文很难。有时本地化人员需要知道在何处/如何使用字符串以确保正确翻译。
资源:
- http://interglacial.com/~sburke/tpj/as_html/tpj13.html
- http://www.ryandoherty.net/2008/05/26/quick-tips-for-localizing-web-apps/
- http://ed.agadak.net/2007/12/one-potato-two-potato-three-potato-four-4