语言定义¶
为了恰当地呈现不同的翻译,需要提供有关语言名称、文本方向、复数定义和语言代码的信息。
分析语言代码¶
当分析翻译时, Weblate 试图将语言代码(通常为 ISO 639-1 )映射到现有的任何语言对象。
您可以通过 语言别名 在项目层次来进一步调整这种映射。
如果无法找到精确的匹配,将尝试把其融入一种现有的语言。已尝试以下措施:
大小写不敏感的查询。
将下划线和破折号标准化。
查询内置的语言别名。
按语言名称查找。
忽略给定语言的默认国家代码 — 选择
cs
而非cs_CZ
。
如果这也失败了,将使用默认值创建一个新的语言定义 (从左到右的文本方向,一个复数)。自动创建的带有代码 xx_XX
的语言将被命名为 xx_XX (generated)。您可能想稍后在管理界面中更改这个 (见 更改语言定义),并将它报告给问题跟踪器 (见 为 Weblate 做贡献),这样的话,正确的定义就可以添加到即将发布的Weblate版本中。
提示
在您看到有些不想要的内容作为语言的情况下,您会想要调整 语言筛选 ,当分析翻译时忽略这样的文件。
内置语言定义¶
Weblate 中包括了大约 600 种语言的定义,并且每次发布时列表都在扩大。无论何时更新 Weblate 时(更特别地是无论何时执行 weblate migrate`时,请参见 :ref:`generic-upgrade-instructions)。语言数据库都被更新,来包括 Weblate 上市时的所有语言定义。
这个特性可以使用 UPDATE_LANGUAGES`来禁止。还可以使用 :djadmin:`setuplang
来强制更新数据库,从而匹配 Weblate 内建数据。
参见
The language definitions are in the weblate-language-data repository.
歧义语言代码和宏语言¶
在很多情况下,为翻译使用宏语言代码不是个好主意。典型出问题的情况会是库尔德语,会根据实际的变体以阿拉伯语或拉丁语脚本撰写。为了在 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-2 或 ISO 639-3 代码。它还支持 BCP 47 定义的扩展代码。
语言名称¶
语言的可见名称。还要根据用户界面语言将 Weblate 中包括的语言名称进行本地化。
文字方向¶
确定语言是从右向左还是从左向右书写。对于多数语言这个属性都能够正确地自动监测。
复数数量¶
语言中使用的复数的数量。
复数式¶
Gettxt 兼容的复数公式,用于确定根据给定的数量使用哪种复数形式。
添加新的翻译¶
在 2.18 版更改: 在 2.18 以前的版本中,添加新的翻译的行为因文件格式而不同。
Weblate 可以为所有文件格式自动开始新的翻译。
一些格式希望以空文件开始,并只包含已翻译的字符串( 安卓字符串资源),而其它希望使所有的 key 出现(例如 GNU gettext)。在一些情形下,这真正比依赖于格式,而更依赖于用来处理翻译的框架(例如通过 JSON 文件)。
当在 组件配置 中指定 新翻译的译文模版 时,Weblate 将使用这个文件开始新的翻译。当执行时任何现有翻译将从文件中删除。
当 新翻译的译文模版 是空的,并且文件格式支持时,新建空文件,一旦新的字符串被翻译就添加进去。
语言代码风格 允许在生成的文件名中将语言代码个性化:
- 基于文件格式的默认值
依赖于文件格式,对于其中的多数使用 POSIX。
- POSIX 风格使用下划线作为分隔
典型地由 gettext 和相关工具使用,生成像
pt_BR
那样的语言代码。- POSIX 风格使用下划线作为分隔,包括国家/地区代码
POSIX 风格的语言代码即使不必要时也包括国家代码;例如
cs_CZ
)。- GCP 风格使用连字符作为分隔
典型地在 web 平台上使用,生成像
pt-BR
那样的语言编码。- GCP 风格使用连字符作为分隔,包括国家/地区代码
BCP 风格的语言代码即使不必要时也包括国家代码;例如
cs-CZ
)。- Android 风格
只在安卓 apps 中使用,生成像
pt-rBR
那样的语言代码。- Java 风格
由 Java 使用——多数 BCP 带有用于中文的遗产代码。
此外,语言别名 中定义的任何映射都反向应用。
注解
Weblate 当解析翻译文件是识别所有这些,上面的设置只影响如何新建新的文件。