自动检测
Weblate 尝试在
添加翻译项目和部件
过程中检测文件格式。对于同一序列化格式的不同变体或文件编码,检测可能出错(JSON, YAML, properties),因此在创建部件前请验证
文件格式
正确无误。
翻译类型功能
所有受支持格式的功能
语言能力
复数
描述
上下文
位置
标记
更多状态
GNU gettext
支持
单语 gettext
支持
XLIFF
需要编辑、已核准
Java 属性
mi18n lang 文件
GWT 属性
Joomla 翻译
Qt Linguist .ts
Android 字符串资源
支持
苹果 iOS 字符串
PHP 字符串
不支持
JSON 文件
i18next JSON 文件
go-i18n JSON 文件
gotext JSON 文件
ARB 文件
WebExtension JSON
RESX .NET 资源文件
ResourceDictionary 文件
CSV 文件
YAML 文件
Ruby YAML 文件
DTD 文件
Flat XML 文件
Windows RC 文件
Excel Open XML
应用商店元数据文件
HTML 文件
OpenDocument 格式
IDML 格式
INI 翻译
Inno Setup INI 翻译
TermBase eXchange 格式
Stringsdict 格式
Fluent 格式
不支持
双语和单语格式
支持
单语 和
双语 格式。双语格式在单个文件中存储两种语言文本——原文和译文(典型示例是
GNU gettext
、
XLIFF
或
苹果 iOS 字符串
字符串)。另一方面,单语格式通过 ID 识别字符串,每个语言文件仅包含那些语言到任何给定语言(典型为
Android 字符串资源
)的映射。两种变体都使用某些文件格式,请参见下面的详细说明。
为了正确使用单语文件,Weblate 需要访问一个包含要翻译的字符串及其原文的完整列表的文件——该文件在 Weblate 中被称为
单语言译文模版语言文件
,尽管命名上和你的叫法可能会有所不同。
另外,可以利用
中间语言文件
扩展此工作流程,以包括开发人员提供的字符串,但不要在最终的字符串中使用。
字符串状态
许多文件格式只区分 “未翻译” 和 “已翻译”字符串。而某些格式可以储存更精细的状态信息,比如“需要编辑”或“已批准”。
源字符串描述
源字符串描述可用于传递要翻译的字符串的附加信息。
有几个格式原生支持向译者提供附加信息(比如,
XLIFF
,
GNU gettext
,
WebExtension JSON
,
CSV 文件
,
Excel Open XML
,
Qt Linguist .ts
,
go-i18n JSON 文件
,
gotext JSON 文件
,
ARB 文件
,
RESX .NET 资源文件
)。许多其他格式提取最近注释作为源字符串描述。
字符串的 :ref:
`
additional-explanation`可被存储并从一些文件格式被解析。
目前只在
TermBase eXchange 格式
中受支持。
源字符串位置
字符串在源代码中的位置可能会帮助经验丰富的译者弄清楚字符串是如何使用的。
此信息通常在双语言格式中可用,这些格式中,使用工具从源代码中提取字符串。比如,
GNU gettext
和
Qt Linguist .ts
。
翻译标记
翻译标志允许自定义 Weblate 行为。某些格式支持在翻译文件中定义它们(您始终可以在 Weblate 界面中定义它们,请参阅
使用标记定制行为
)。
这个功能是以
GNU gettext
中的标志为模型。
此外,对于所有基于 XML 的格式,标记是从非标准属性
weblate-flags
中提取的。而且还通过 XLIFF 标准中定义的
maxwidth
属性
支持了
max-length:N
,请参阅
指定翻译标记
。
使用标记定制行为
,
PO 文件文档
上下文
上下文用于区分双语格式下用于不同领域的相同字符串(例如
Sun
可以是 “Sunday” 的缩写,也可以是离我们最近的恒星的名字)。
对单语言格式,字符串标识符(常被称为 key)可以服务于相同目的,而且不需要额外的上下文。
复数字符串
复数形式对于正确定位具有变量计数的字符串是必需的。这些规则取决于目标语言,许多格式都遵循 CLDR 规范。
复数字符串也需要应用程序框架的适当支持。选择平台的原生格式,例如
GNU gettext
,
Android 字符串资源
或
Stringsdict 格式
。
只读字符串
在 3.10 版本加入.
翻译文件中的只读字符串将被包含在 Weblate 中,但不能在 Weblate 中对其进行编辑。只有少数格式(
XLIFF
和
Android 字符串资源
)原生支持此功能,但可以通过添加
read-only
标记在其他格式中进行模拟,请参阅
使用标记定制行为
。
支持其他格式
translate-toolkit
支持的大多数支持序列化的格式都可以轻松支持,但它们(尚未)接受任何测试。在大多数情况下,Weblate 需要一些薄层来隐藏不同
translate-toolkit
存储的行为差异。
要添加对新格式的支持,首选方法是首先在
translate-toolkit
中实现对它的支持。
Translation Related File Formats