通过国际化来开始

有个项目,并想要将其翻译为几种语言?这个向导会帮您进行。几种典型的情况展示出来,而多数示例是通用的,并且也可以用于其它情景。

在翻译任何软件之前,要认识到世界各处的语言真正不同,而您不应该根据自己的经验做出任何假设。对于多数语言,如果尝试从翻译的段落中连接出句子,看起来会很奇怪。应该正常滴处理复数形式,因为很多语言对此具有复杂的规则,最终使用的国际化框架应该支持它。

最后但并非不重要的,有时将一些文本添加到翻译的字符串中是必要的。想象一下翻译者要翻译字符串``Sun`` 。没有上下文的话多数人会将它翻译为我们最近的恒星,但它实际上也会用作星期天的缩写。

选择国家化框架

选择您的平台上任何标准化的,尝试通过创建自己的框架来处理本地化,来避免重新发明轮子。Weblate 支持大多数广泛使用的框架,更多信息请参见 formats`(特别是 :ref:`fmt_capabs)。

我们对一些平台的个人推荐在下面的表格中。这基于我们的经验,但这无法覆盖所有的使用情况,因此做选择时总是要考虑您的环境。

平台

推荐的格式

Android

Android string resources

iOS

Apple iOS strings

Qt

Qt Linguist .ts

Python

GNU gettext

PHP

GNU gettext 1

C/C++

GNU gettext

C#

.XML resource files

Perl

GNU gettext

Ruby

Ruby YAML files

Web 扩展

WebExtension JSON

Java

XLIFF 2

JavaScript

JSON i18next files 3

1

PHP 对 Gettext 的本地支持故障比较多,并且通常缺乏 Windows 构建,推荐替代使用第三方库 motranslator

2

如果不需要复数的话还可以使用 Java 属性

3

如果不需要复数的话还可以使用简单的 JSON files

一些格式更具体的工作流程在后面的章节中描述: