国际化Web应用程序的最佳实践?

bmd*_*cks 35 language-agnostic internationalization

国际化网络应用似乎总是一件苦差事.无论您为可插拔语言提前做多少计划,编码都会出现问题,不适合您模板的时髦措辞以及其他问题.

我认为,在决定将他们的网络应用程序国际化时,获得SO社区对程序员应该注意的一系列内容的输入会很有用.

Rya*_*rty 51

国际化很难,这里有一些我从使用20种不同语言的网站中学到的东西:

  • 到处使用UTF-8.没有例外.HTML,服务器端语言(特别注意PHP),数据库等.
  • 除非您需要大量工作,否则图像中没有文字.如有必要,使用CSS将文本放在图像上.
  • 将配置与本地化分开.这样本地化程序可以翻译文本,您可以处理每个区域设置的不同配置(功能,布局等).您不希望本地化程序能够弄乱您的应用程序.
  • 确保您的布局可以处理比英语长2-3倍的文本.而且比英语少50%(日语和中文通常更短).
  • 有些语言需要更大的字体(日文,中文)
  • 颜色也是特定于语言环境的.红色和绿色并不意味着到处都是一样的东西!
  • 将作为区域设置名称的类名添加到文档的body标记中.这样,您可以轻松地在CSS文件中指定特定区域设置的布局.
  • 注意变量替换.不要拆分你的字符串.把它们全部保留为:"你有X个新消息"并用#替换'X'.
  • 不同的语言有不同的复数.0,1,2-4,5-7,7-infinity.难以对付.
  • 语境很难.有时本地化者需要知道字符串的使用位置和方式,以确保正确翻译.

资源:


Kip*_*Kip 10

在我公司,我们所有的字符串都存储在*.properties文件中.我们的构建工具构建了属性文件的"测试语言"副本,它替换了这样的字符串:

Click here
Run Code Online (Sandbox Code Playgroud)

用这样的东西:

[~~ Ç?ï?? ???? ~~ ?? ~~]
Run Code Online (Sandbox Code Playgroud)

现在,当我们在配置文件中将语言设置为"test"时,将使用这些属性文件.(当然,我们不提供测试语言文件).

这允许我们:

  1. 确保正确显示Unicode字符,包括日语/中文/韩语.
  2. 确保布局适用于具有较长单词的语言(德语平均比英语长的单词).
  3. 发现任何硬编码的字符串(因为它们将以普通英语显示).

至于实际翻译,这是由专业翻译人员而不是开发人员完成的.

  • 这称为[伪定位](http://en.wikipedia.org/wiki/Pseudolocalization). (3认同)

WAC*_*161 0

我有几个“双语”应用程序,我在 ASP.NET1.1 中使用资源文件

还有一种称为“字符串资源工具”的工具基本上,您可以将所有字符串放入两种语言的 .RES 文件中,然后根据文化或是否有人单击该语言的链接来确定要读取的文件

最大的问题是确保翻译正确