附加组件¶
2.19 新版功能.
附加组件提供了自定义和自动化翻译工作流程的方法。管理员可以从每个相应翻译组件的 Manage ↓ :guilabel:`Addons`菜单添加和管理附加组件。

内置插件¶
自动化翻译¶
3.9 新版功能.
使用机器翻译或其他组件自动翻译字符串。
触发条件:
当组件中出现新字符串时。
Once in a month for every component, this can be configured using
BACKGROUND_TASKS
.
JavaScript本地化CDN¶
4.2 新版功能.
将译文发布到内容交付网络,以便在 JavaScript或 HTML 本地化中使用。
可以用于本地化静态 HTML 网页,或者在 JavaScript 代码中加载本地化文件。
为你的组件生成一个唯一的 URL,你可以将其包含在 HTML 页面中以本地化它们。详情见 使用 Weblate CDN 翻译 HTML 和 JavaScript。
添加缺少的语言¶
确保对一个项目内所有组件使用一致的一组语言。
每隔24小时,和在 Weblate 中加入新语言时,会检查一次缺失的语言。
不像其他多数附加组件,这个附加组件影响整个项目。
提示
用 自动化翻译 自动翻译新添加的字符串。
组件发现¶
根据版本控制系统中文件更改的情况来自动添加或删除项目的组件.
每次更新 VCS 时触发,在其他方面类似 :djadmin:`import_project`管理命令。通过这种方式,你可以在一个 VCS 中跟踪多个翻译组件。
该匹配是使用允许复杂配置的正则表达式完成的,但这样做需要一些知识。一些常见用例的例子可以在附加组件帮助部分找到。
一旦点击了 Save ,将显示匹配组件的预览,可以检查配置是否匹配于自己的需要:

提示
Component discovery addon uses Weblate internal URLs. It’s a convenient way to share
VCS setup between multiple components. Linked components use the local repository of
the main component set up by filling weblate://project/main-component
into the 源代码库 field (in Manage ↓ Settings ↓
Version control system) of each respective component.
This saves time with configuration and system resources too.
参见
批量编辑¶
3.11 新版功能.
批量编辑标记、标签或字符串状态。
要自动化标签操作,从搜索字符串 ``NOT has:label``入手,并添加标签直到所有字符串都有所需的标签为止。也可以完成 Weblate 元数据的其他自动化操作。
例子:
搜索条目 |
|
---|---|
要添加的标签 |
近期 |
搜索条目 |
|
---|---|
要添加的翻译标记 |
|
将未更改的译文标记为“需要编辑”¶
3.1 新版功能.
每当从 VCS 导入新的可翻译字符串并与源字符串匹配时,就会在 Weblate 中标记为需要编辑。对于包含未翻译字符串的源字符串的文件格式尤其有用。
参见
统计数据生成器¶
生成一个包含关于翻译状态详细信息的文件。
你可在文件名和内容中均使用一个 Django 模板,详细的标记描述见 模板标记。
例如为每个翻译产生一个摘要文件:
- 所生成文件的名称
locale/{{ language_code }}.json
- 内容
{ "language": "{{ language_code }}", "strings": "{{ stats.all }}", "translated": "{{ stats.translated }}", "last_changed": "{{ stats.last_changed }}", "last_author": "{{ stats.last_author }}", }
参见
假语言环境 (Pseudolocale)生成¶
通过向源字符串添加前缀和后缀自动生成翻译。
伪 locale 对于查找未准备好进行本地化的字符串很有用。这是通过修改所有可翻译的源字符串来实现的,使得在用伪 locale 语言运行应用程序时很容易发现未修改的字符串。
Finding strings whose localized counterparts might not fit the layout is also possible.
提示
可以使用真正的语言进行检测,但在 Weblate 中有专用的假语言环境——en_XA 和 ar_XB。
在注释中添加贡献信息¶
更新 PO 文件头的注释部分,以包含贡献者姓名和贡献年份。
PO 文件头看上去是这样的:
# Michal Čihař <michal@cihar.com>, 2012, 2018, 2019, 2020.
# Pavel Borecki <pavel@example.com>, 2018, 2019.
# Filip Hron <filip@example.com>, 2018, 2019.
# anonymous <noreply@weblate.org>, 2019.
更新“配置文件”中的 ALL_LINGUAS 变量¶
当新的翻译添加时,更新 configure
、 configure.in
或任何 configure.ac
文件中的 ALL_LINGUAS 变量。
自定义 gettext 输出¶
允许自定义 gettext 的输出行为,例如是否启用自动换行。
提供了后面的选项:
在 77 个字符处和新一行时来换行
仅在换行符处折行
不换行
注解
默认情况下 gettext 会在每行第 77 个字符处与换行符处换行。添加 --no-wrap
参数后,换行只会在换行符处发生。
更新 LINGUAS 文件¶
添加新的翻译时更新 LINGUAS 文件。
更新 PO 文件以匹配 POT 文件 (msgmerge)¶
使用 msgmerge 来更新所有的 PO 文件(如 文件掩码 所配置),而与 POT 文件(如 新翻译的译文模版 所配置)匹配。
每当从上游存储库中提取新的更改时都会被触发。多数 msgmerge 命令行选项可通过附加组件配置进行设置。
压缩 Git 提交¶
推送变更之前压缩 Git 提交。
以下模式之一中,Git提交可以在推送更改之前被压缩:
3.4 新版功能.
所有提交成一个
每种语言
每个文件
3.5 新版功能.
每位作者
原始提交信息保留,但其作者信息丢失,除非选择 Per author ,或者定制提交信息来包括它。
4.1 新版功能.
原始提交信息可选地由定制的提交信息覆盖。
预告(提交行像 Co-authored-by: …
)可选地从原始提交信息中去掉,并且添加在去掉的提交信息后面。这还可以为每一位翻译者产生适当的 Co-authored-by:
信誉。
自定义 JSON 输出¶
允许调整 JSON 的输出行为,例如缩进或排序。
格式化 Java 属性文件¶
排序 Java 属性文件。
定制附加组件列表¶
附加组件列表由 WEBLATE_ADDONS
配置。要添加其他附加组件,只需在这个设置中包含绝对类名称即可。
从附加组件执行脚本¶
附加逐渐还可以用于执行外部脚本。这曾经集成在 Weblate 中,但现在必须写一些代码,将脚本包裹在附加组件中。
#
# Copyright © 2012 - 2021 Michal Čihař <michal@cihar.com>
#
# This file is part of Weblate <https://weblate.org/>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
"""Example pre commit script."""
from django.utils.translation import gettext_lazy as _
from weblate.addons.events import EVENT_PRE_COMMIT
from weblate.addons.scripts import BaseScriptAddon
class ExamplePreAddon(BaseScriptAddon):
# Event used to trigger the script
events = (EVENT_PRE_COMMIT,)
# Name of the addon, has to be unique
name = "weblate.example.pre"
# Verbose name and long descrption
verbose = _("Execute script before commit")
description = _("This addon executes a script.")
# Script to execute
script = "/bin/true"
# File to add in commit (for pre commit event)
# does not have to be set
add_file = "po/{{ language_code }}.po"
安装方法请参见 定制的质量检查、插件和自动修复 。
对于任何给定的组件,当前路径设置为版本控制系统( VCS )仓库的根目录时,执行脚本。
此外,可以访问后面的环境参数:
-
WL_VCS
¶ 使用的版本控制系统。
-
WL_REPO
¶ 上游仓库 URL 。
-
WL_PATH
¶ 版本控制系统( VCS )仓库的绝对路径。
-
WL_BRANCH
¶ 2.11 新版功能.
当前组件配置的仓库分支。
-
WL_FILEMASK
¶ 当前组件的Filemask。
-
WL_TEMPLATE
¶ 单语言翻译模板的文件名(可以为空)。
-
WL_NEW_BASE
¶ 2.14 新版功能.
建立新的翻译所使用文件的文件名(可以为空)。
-
WL_FILE_FORMAT
¶ 用于当前组件的文件格式。
-
WL_LANGUAGE
¶ 当前处理的翻译的语言(对于组件级别的钩子不可用)。
-
WL_PREVIOUS_HEAD
¶ 更新后的上个 HEAD (仅在运行更新后钩子后可用)。
-
WL_COMPONENT_SLUG
¶ 3.9 新版功能.
组件标识串用于构建 URL 。
-
WL_PROJECT_SLUG
¶ 3.9 新版功能.
项目标识串用于构建 URL 。
-
WL_COMPONENT_NAME
¶ 3.9 新版功能.
组件名称。
-
WL_PROJECT_NAME
¶ 3.9 新版功能.
项目名称。
-
WL_COMPONENT_URL
¶ 3.9 新版功能.
组件 URL 。
-
WL_ENGAGE_URL
¶ 3.9 新版功能.
项目参与 URL 。
参见
更新后存储库处理¶
当 VCS 的上游源发生变化时,可用于更新翻译文件。为了实现这个功能,请记住 Weblate 只看到提交给版本控制系统( VCS )的文件,所以需要同意更改作为脚本的一部分。
例如 Gulp ,可以使用后面的代码来执行:
#! /bin/sh
gulp --gulpfile gulp-i18n-extract.js
git commit -m 'Update source strings' src/languages/en.lang.json