语言定义

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

分析语言代码

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

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

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

  • 大小写不敏感的查询。

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

  • 查询内置的语言别名。

  • 按语言名称查找。

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

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

提示

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

更改语言定义

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

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

内置语言定义

Weblate 中包含了大约 600 种语言的定义,而且该语言列表在每个发行版中都会进行扩充。每当 Weblate 升级时(更准确地说,每当 weblate migrate 被执行时,请参见 一般的升级指示)语言数据库都会更新,以包含 Weblate 提供的所有语言定义。

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

歧义语言代码和宏语言

In many cases it is not a good idea to use macrolanguage code for a translation. The typical problematic case might be Kurdish language, which might be written in Arabic or Latin script, depending on actual variant. To get correct behavior in Weblate, it is recommended to use individual language codes only and avoid macrolanguages.

参见

宏语言定义 <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 可以为所有文件格式自动开始新的翻译。

一些格式希望以一个空文件开始,并只包含已翻译的字符串(如 Android 字符串资源),而另一些格式则希望包含所有 key(如 GNU gettext)。基于文档的格式(如 OpenDocument 格式)以源文档的副本开始,所有字符串均被标记为需要编辑。某些情况下,这实际上并不取决于格式,而更取决于用来处理翻译的框架(如使用 JSON 文件)。

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

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

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

基于文件格式的默认值

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

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

通常由 gettext 和相关工具使用,生成像 pt_BR 这样的语言代码。

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

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

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

通常用于网络平台,生成像 pt-BR 这样的语言代码。

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

BCP 风格的语言代码即使不必要时也包括国家地区代码(例如 cs_CZ)。

Android 风格

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

Java 风格

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

Linux style

Locales as used by Linux, uses legacy codes for Chinese and POSIX style notation.

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

备注

Weblate 在解析翻译文件时能识别其中的任何一种,上面的设置只影响新文件的创建方式。