语言定义

为了恰当地呈现不同的翻译,需要提供有关语言名称、文本方向、复数定义和语言代码的信息。

分析语言代码

当分析翻译时, Weblate 试图将语言代码(通常为 ISO 639-1 )映射到现有的任何语言对象。

您可以通过 语言别名 在项目层次来进一步调整这种映射。

如果无法找到精确的匹配,将尝试把其融入一种现有的语言。已尝试以下措施:

  • 大小写不敏感的查询。

  • 将下划线和破折号标准化。

  • 查询内置的语言别名。

  • 按语言名称查找。

  • 忽略给定语言的默认国家代码 — 选择 cs 而非 cs_CZ

如果这也失败了,将使用默认值创建一个新的语言定义 (从左到右的文本方向,一个复数)。自动创建的带有代码 xx_XX 的语言将被命名为 xx_XX (generated)。您可能想稍后在管理界面中更改这个 (见 更改语言定义),并将它报告给问题跟踪器 (见 为 Weblate 作贡献),这样的话,正确的定义就可以添加到即将发布的Weblate版本中。

提示

在您看到有些不想要的内容作为语言的情况下,您会想要调整 语言筛选 ,当分析翻译时忽略这样的文件。

更改语言定义

您可以在语言界面来更改语言定义( /languages/ URL )。

当编辑时,确认所有字段都是正确的(特别是复数和正文方向),否则译者将不能正常编辑这些翻译。

内置语言定义

Weblate 中包括了大约 600 种语言的定义,并且每次发布时列表都在扩大。无论何时更新 Weblate 时(更特别地是无论何时执行 weblate migrate`时,请参见 :ref:`generic-upgrade-instructions)。语言数据库都被更新,来包括 Weblate 上市时的所有语言定义。

这个特性可以使用 UPDATE_LANGUAGES`来禁止。还可以使用 :djadmin:`setuplang 来强制更新数据库,从而匹配 Weblate 内建数据。

歧义语言代码和宏语言

在很多情况下,为翻译使用宏语言代码不是个好主意。典型出问题的情况会是库尔德语,会根据实际的变体以阿拉伯语或拉丁语脚本撰写。为了在 Weblate 中得到正确的行为,推荐只使用单独的语言代码,并且避免宏语言。

参见

宏语言定义 <https://iso639-3.sil.org/about/scope#Macrolanguages>宏语言列表 <https://iso639-3.sil.org/code_tables/macrolanguage_mappings/data>

语言定义

每种语言都包括后面的字段:

语言代码

识别语言的代码。 Weblate 使用两个字母代码,如 ISO 639-1 所定义的,但对于没有两个字母代码的语言,使用会使用 ISO 639-2ISO 639-3 代码。它还支持 `BCP 47 `_ 定义的扩展代码。

语言名称

语言的可见名称。还要根据用户界面语言将 Weblate 中包括的语言名称进行本地化。

文字方向

确定语言是从右向左还是从左向右书写。对于多数语言这个属性都能够正确地自动监测。

复数数量

语言中使用的复数的数量。

复数式

Gettxt 兼容的复数公式,用于确定根据给定的数量使用哪种复数形式。

添加新的翻译

在 2.18 版更改: 在 2.18 以前的版本中,添加新的翻译的行为因文件格式而不同。

Weblate 可以为所有文件格式自动开始新的翻译。

Some formats expect to start with an empty file and only translated strings to be included (for example Android 字符串资源), while others expect to have all keys present (for example GNU gettext). The document-based formats (for example OpenDocument Format) start with a copy of the source document and all strings marked as needing editing. In some situations this really doesn’t depend on the format, but rather on the framework you use to handle the translation (for example with JSON 文件).

当在 组件配置 中指定 新翻译的译文模版 时,Weblate 将使用这个文件开始新的翻译。当执行时任何现有翻译将从文件中删除。

新翻译的译文模版 是空的,并且文件格式支持时,新建空文件,一旦新的字符串被翻译就添加进去。

语言代码风格 允许在生成的文件名中将语言代码个性化:

基于文件格式的默认值

依赖于文件格式,对于其中的多数使用 POSIX。

POSIX 风格使用下划线作为分隔

典型地由 gettext 和相关工具使用,生成像 pt_BR 那样的语言代码。

POSIX 风格使用下划线作为分隔,包括国家/地区代码

POSIX 风格的语言代码即使不必要时也包括国家代码;例如 cs_CZ)。

GCP 风格使用连字符作为分隔

典型地在 web 平台上使用,生成像 pt-BR 那样的语言编码。

GCP 风格使用连字符作为分隔,包括国家/地区代码

BCP 风格的语言代码即使不必要时也包括国家代码;例如 cs-CZ)。

Android 风格

只在 Android 应用中使用,生成 pt-rBR 这样的语言代码。

Java 风格

由 Java 使用——多数 BCP 带有用于中文的遗产代码。

此外,语言别名 中定义的任何映射都反向应用。

注解

Weblate 当解析翻译文件是识别所有这些,上面的设置只影响如何新建新的文件。