翻译项目¶
翻译组织¶
项目/组件的可翻译的版本控制系统(VCS )内容,由 Weblate 组织成树状结构。
底层对象是 项目配置,该项目配置应将所有翻译归在一起(例如,多个版本的应用程序翻译和/或随附的文档)。
在上面的级别上,:ref:`component`(实际上是要翻译的组件),您定义要使用的版本控制系统(VCS )仓库以及要翻译的文件的掩码。
在 组件配置 上方,有单独的翻译,当版本控制系统(VCS )仓库中出现翻译文件(与 组件配置 中定义的掩码匹配)时,Weblate 会自动处理这些翻译。
Weblate 支持 Translate Toolkit 支持的多种翻译格式(双语和单语),请参阅 支持的文件格式。
注解
您可以使用 Weblate internal URLs 共享克隆的版本控制系统(VCS )仓库。当您有许多共享同一版本控制系统(VCS )的组件时,强烈推荐使用此功能。它提高了性能并减少了所需的磁盘空间。
添加翻译项目和组件¶
在 3.2 版更改: 已包含用于添加项目和组件的界面,您不再需要使用 Django 管理界面。
在 3.4 版更改: 现在,添加组件的过程是多阶段的,可以自动发现大多数参数。
根据你的权限,新的翻译项目和组件可以被创建。具备 :guilabel:`Add new projects`权限的用户总是可以这么做。如果使用付费托管,你还可以从管理账单的用户账户基于套餐限额创建它们。
您可以在单独的页面上查看当前的结算方案:
您可以从此处开始创建项目,也可以使用导航条中的菜单来填写翻译项目的基本信息以完成添加:
创建项目后,您将直接进入项目页面:
只需单击一次即可启动创建新翻译组件的操作。创建组件的过程是多阶段的,并自动检测大多数翻译参数。有几种创建组件的方法:
- 从版本控制
从远程版本控制仓库创建组件。
- 从现有组件
通过选择不同的文件为现有组件创建其他组件。
- 其他分支
仅针对不同分支,为现有组件创建其他组件。
- 上传翻译文件
如果您没有版本控制或不想将其与 Weblate 集成,则将翻译文件上传到 Weblate。您以后可以使用网络界面或 API 更新内容。
- 翻译文档
上传单个文档并进行翻译。
- 从头开始
创建空白翻译项目并手动添加字符串。
一旦有了现有的翻译组件,就可以使用同一仓库轻松地为其他文件或分支添加新的组件。
首先,您需要填写名称和仓库位置:
在下一页上,将显示已发现的可翻译资源的列表:
最后,您检查翻译组件信息并填写可选详细信息:
参见
项目配置¶
创建一个翻译项目,然后在其中添加一个新的翻译组件。这个项目就像一个架子,里面堆放着真正的翻译。同一项目中的所有组件共享建议及其字典;翻译也将自动传播到单个项目中的所有组件(除非在组件配置中关闭),请参见 Memory Management。
这些基本属性被新建并通知翻译人员项目:
项目名称¶
详细的项目名称,用于显示项目名称。
项目标识串¶
适用于 URL 的项目名称。
项目网站¶
译者可以在其中找到有关该项目的更多信息的 URL。
邮件列表¶
译者可以在其中讨论或评注释译的邮件列表。
翻译说明¶
指向更多网站的 URL,为翻译人员提供了更详细的说明。
设置 Language-Team 头¶
Weblate 是否应管理 Language-Team
头(目前这是仅 GNU gettext 功能)。
组件配置¶
组件是用于翻译的内容的分组。您输入版本控制系统(VCS)仓库位置和想要翻译那个文件的掩码,Weblate 会自动地从 这个版本控制系统(VCS)中取回,并找到所有匹配的翻译文件。
您可以在 支持的文件格式 中找到一些典型配置的例子。
注解
推荐将翻译文件保持在合理的大小——在您的案例中使用任何合理的工具(独立的 app 或插件、书籍的章节或网站)来分割翻译文件。
Weblate 能够轻松处理 10000 个字符串,但大的翻译组件的分割工作和翻译者之间的协调更困难。
如果翻译的语言定义丢失,会新建一个空的定义,并且命名为 “cs_CZ (generated)”。您应该调整定义,并将其反馈给 Weblate 的作者,从而丢失的语言可以包括在下一次的发布版本中。
使用版本控制系统(VCS)工作的所有重要参数都包含在组件中,并且从中取出翻译:
组件名称¶
冗长部件名称,用于显示部件的名称。
组件标识串¶
适用于 URLs 的组件名称。
源代码库¶
版本控制系统(VCS)仓库,用于拉取更改。
参见
指定 URLs 的更多细节请参见 Accessing repositories 。
提示
这可以或者是真实的版本控制系统(VCS)的 URL, 或者是 weblate://project/component
,指示了仓库应该与其它部件分享。更多细节请参见 Weblate internal URLs。
代码库推送 URL¶
用于推送的仓库 URL。这个设置用于 Git 和 Mercurial,并且当这个空白时推送支持为这些关闭。
参见
关于如何指定仓库 URL 的更多细节请见 Accessing repositories,并且关于从 Weblate 推送更改的更多细节,请参见 推送 Weblate 的更改 。
代码库浏览器¶
用于显示源文件(已使用消息的位置)仓库浏览器的的 URL。当空白时将不生成这样的连接。您可以使用 模板标记。
例如在 GitHub 上,使用像:``https://github.com/WeblateOrg/hello/blob/{{branch}}/{{filename}}#L{{line}}``那样的一些东西
在您的路径相对于不同文件夹的时候,您会想使用 parentdir
filter (see 模板标记): https://github.com/WeblateOrg/hello/blob/{{branch}}/{{filename|parentdir}}#L{{line}}
,来剥除前导文件夹
已导出代码库 URL¶
由 Weblate 进行的更改被导出的 URL。当不使用 持续本地化集成 时,或者当需要手动合并更改时,这是重要的。您可以为 Git 仓库使用 Git exporter,来将其自动化。
仓库分支¶
从版本控制系统(VCS)核实哪个分支,以及从哪里寻找翻译。
文件掩码¶
要翻译的文件的掩码,包括路径。它应包含一个“*”替换语言代码(有关处理方式的信息,请参阅 语言定义)。如果您的仓库包含多个翻译文件(例如,多个 gettext 域),则您需要为每个文件创建一个组件。
例如``po/.po`` 或 ``locale//LC_MESSAGES/django.po``。
如果文件名包含特殊字符(例如``[,
]``),则需要将这些特殊字符转义为 [[]
或 []]
。
中间语言文件¶
对于 单语言组件 的单一语言文件。在多数情况下,这是开发者提供的翻译文件,并且在新建真正的源字符串时使用。
当设置时,源翻译基于这个文件,但所有其它的基于 单语言译文模版语言文件。在字符串在源翻译中没有被翻译的情况下,会禁止翻译为其它语言。这提供了 Quality gateway for the source strings。
新翻译的译文模版¶
用于生成新翻译的译文模板文件,例如 gettext 的 .pot
文件。
提示
在很多单语言格式中,Weblate 默认以空白文件开始。新建新的翻译时,在您想要所有的字符串都以空值出现的情况下来使用。
源字符串缺陷报告地址¶
用于汇报上游缺陷的电子邮箱地址。Weblate 中做出的任何字符串注释的通知,也由这个地址接收。
允许同步翻译¶
您可以关闭项目内从其他部件到这个部件的翻译的传播。这真正依赖于您在翻译的是什么,有时最好多次使用同一个翻译。
对于单语言翻译,除非您在整个项目中使用相同的 ID,通常关闭这个是个好主意。
默认值可以通过 DEFAULT_TRANSLATION_PROPAGATION
来更改。
启用建议¶
对于这个组件,建议的翻译是否被接受。
翻译许可证¶
翻译的许可(不需要与源代码的许可相同)。
贡献者协议¶
翻译此内容前需同意的协议。
添加新翻译¶
如何处理创建新语言的请求。可用选项:
- 联系维护者
用户可以选择所需的语言,项目维护者将收到有关该语言的通知。由他们决定是否向仓库添加(或不添加)语言。
- 显示翻译介绍
向用户显示的页面链接描述了开始新翻译的过程。如果需要更正式的流程(例如,在开始实际翻译之前组成人员团队),请使用此选项。
- 创建新语言文件
用户可以选择语言,然后 Weblate 会自动为其新建文件并开始翻译。
- 禁用添加新翻译
用户将无法选择开始新的翻译。
语言代码风格¶
定制语言代码,用于为 Weblate 新建的翻译生成文件名,更多细节请参见 Adding new translations。
合并方式¶
您可以配置如何处理上游仓库的升级。对于一些版本控制系统(VCS),这会不需要支持。更多细节请参见 结合或变基。
默认值可以由 :setting:`DEFAULT_MERGE_STYLE`更改。
提交、添加、删除、合并以及插件消息¶
当提交翻译时使用的消息,请参见 模板标记。
默认值可由 DEFAULT_ADD_MESSAGE
, DEFAULT_ADDON_MESSAGE
, DEFAULT_COMMIT_MESSAGE
, DEFAULT_DELETE_MESSAGE
, :setting:`DEFAULT_MERGE_MESSAGE`来更改。
提交者邮箱¶
用于 Weblate 提交的提交者电子邮箱,作者总是真实的翻译者。在一些版本控制系统(VCS)中这可能不被支持。 默认的值可以在 :setting:`DEFAULT_COMMITER_EMAIL`中更改。
提交时推送¶
是否提交更改应该被自动推送到上游仓库。当允许时,一旦 Weblate 将更改提交给内部仓库,推动就被启动(请参见 惰性提交)。为了真正允许推送,还要配置 Repository push URL。
对变更进行提交的延时时间¶
在它们由后台任务或由 commit_pending
管理命令提交前,设置如何得到旧的更改(几个小时内)。一旦有至少一个比这个时间段更旧,组件中所有的更改就会提交。
默认值可以由 COMMIT_PENDING_HOURS
更改。
源语言¶
用于源字符串的语言。如果您要翻译的不是英语,请更改此选项。
提示
在您翻译来自英语的双语言文件,但想要能够在英语翻译中进行修复的情况下,您会想要选择 English (Developer) 作为源语言。为了避免源语言名称与现有翻译的冲突。
对于单语言翻译,您可以使用这种情况下的中间翻译,请参见 中间语言文件。
语言筛选¶
当扫描文件掩码时用于将翻译过滤的正则表达式。这可以用于限制 Weblate 管理的语言列表。
注解
单出现在文件名中时,您需要列出语言编码。
过滤的一些例子:
过滤器的描述 |
正则表达式 |
---|---|
只有选择的语言 |
|
排除的语言 |
|
排除非语言文件 |
|
包括所有文件(默认) |
|
优先权¶
高优先级的组件将最先提供给翻译者。
受限制的访问¶
组件默认对访问项目的任何人都可见,即使不能在组件中进行任何更改。这会容易地使翻译在项目内保持一致。
在您想要明确地授权访问这个组件的情况下来允许——项目层次的权限将不会应用,并且您必须指定组件或组件列表级别的权限,来授权访问。
默认只可以由 DEFAULT_RESTRICTED_COMPONENT
更改。
提示
这也应用于项目管理——请确认切换状态后,您不会丢失对部件的访问。
模板标记¶
Weblate 在需要提供文本的几个地方使用简单的标记语言。它基于 The Django template language,因此能够非常强大。
当前它用在:
可以在组件模板中得到后面的变量:
{{ language_code }}
语言代码
{{ language_name }}
语言名称
{{ component_name }}
组件名称
{{ component_slug }}
组件标识串
{{ project_name }}
项目名称
{{ project_slug }}
项目标识串
{{ url }}
翻译 URL
{{ filename }}
翻译文件名
{{ stats }}
翻译统计,这具有进一步的属性,例如如下。
{{ stats.all }}
字符串总量计数
{{ stats.fuzzy }}
需要复查的字符串计数
{{ stats.fuzzy_percent }}
需要复查的字符串百分比
{{ stats.translated }}
翻译的字符串计数
{{ stats.translated_percent }}
翻译的字符串百分比
{{ stats.allchecks }}
检查失败的字符串数量
{{ stats.allchecks_percent }}
检查失败的字符串百分比
{{ author }}
当前提交的作者,只在提交范围可用。
{{ addon_name }}
当前执行的插件名称,旨在插件提交信息中可用。
后面的变量在仓库浏览器或编辑器模板中可用:
{{branch}}
当前的分支
{{line}}
文件的行数
{{filename}}
文件名,您也可以使用
parentdir
过滤器,例如{{filename|parentdir}}
,来剥除前导部分
您可以将它们与过滤器结合:
{{ component|title }}
您可以使用条件:
{% if stats.translated_percent > 80 %}Well translated!{% endif %}
有另外的标签用于替换字符:
{% replace component "-" " " %}
您可以将它与过滤器结合:
{% replace component|capfirst "-" " " %}
还有另外的过滤器来操作文件名:
Directory of a file: {{ filename|dirname }}
File without extension: {{ filename|stripext }}
File in parent dir: {{ filename|parentdir }}
It can be used multiple times: {{ filename|parentdir|parentdir }}
……以及其他 Django 模板特性。
导入速度¶
取回版本控制系统(VCS)仓库,并将翻译导入 Weblate,依赖于您的翻译的大小,这会是漫长的过程。这里是一些提示:
优化配置¶
对于测试并调试 Weblate,默认的配置是有用的,当用于生产设置时,您应该进行一些调整。它们中的很多都对形成具有巨大的冲击。特别是,更多细节请查看 生产设置 :
配置 Celery 来执行后台任务(请参见 使用 Celery 的后台任务)
检查资源的限制¶
如果导入巨大的翻译或仓库,您会遭到服务器资源限制的打击。
检查空闲内存的量,通过操作系统来缓存翻译,将极大地提高性能。
如果有很多字符串需要处理的话,磁盘操作会是瓶颈——磁盘被 Weblate 和数据库施加压力。
另外的 CPU 核心会帮助提高后台任务的性能(请参见 使用 Celery 的后台任务)。
禁止不必要的检查¶
一些质量检查可以使非常昂贵的,而如果不需要,在导入时省略可以节省一些时间。配置的信息请参见 CHECK_LIST
。
自动新建组件¶
在您的项目有十多个翻译文件的情况下(例如不同的 gettext 域,或安卓 App的几),您会想要将它们自动导入。可以通过使用 import_project
或 import_json
,或者通过安装 组件发现 插件,通过命令行来实现。
为了使用插件,首先您需要为一个翻译文件(选择未来最不可能改名或删除的那个)新建组件,并且在这个组件上安装插件。
对于管理命令,您需要新建包含所有组件的项目,然后运行 import_project
或 import_json
。