从国际化开始
有个项目,并想要将其翻译为几种语言?这个向导会帮您进行。几种典型的情况展示出来,而多数示例是通用的,并且也可以用于其它情景。
在翻译任何软件之前,要认识到世界各处的语言真正不同,而您不应该根据自己的经验做出任何假设。对于多数语言,如果尝试从翻译的段落中连接出句子,看起来会很奇怪。应该正常滴处理复数形式,因为很多语言对此具有复杂的规则,最终使用的国际化框架应该支持它。
最后但同样重要的是,有时可能需要在翻译的字符串中添加一些上下文。想象一下翻译者要翻译字符串 Sun
。没有上下文的话多数人会将它翻译为离我们最近的恒星,但实际上它可能被用作星期日的缩写。
选择国际化框架
选择你平台上的标准格式,尽量避免重复造轮子,避免通过创建你自己的框架来处理本地化问题。Weblate 支持大多数广泛使用的框架,更多信息请参见 支持的文件格式 (特别是 翻译类型功能 )。
我们对一些平台的个人推荐在下面的表格中。这基于我们的经验,但这无法覆盖所有的使用情况,因此做选择时总是要考虑您的环境。
平台 |
推荐的格式 |
---|---|
Android |
|
iOS |
|
Qt |
|
Python |
|
PHP |
|
C/C++ |
|
C# |
|
Perl |
|
Ruby |
|
Web 扩展 |
|
Java |
|
JavaScript |
- 1
PHP 对 Gettext 的本地支持故障比较多,并且通常缺乏 Windows 构建,推荐替代使用第三方库 motranslator。
- 2
如果不需要复数的话还可以使用 Java 属性。
- 3
如果不需要复数的话还可以使用简单的 JSON 文件。
一些格式更具体的工作流程在后面的章节中描述:
参见