管理命令

注解

不同用户下运行管理命令而不是一人运行您的 web 服务器,可以导致文件得到错误的权限,更多细节请查看 文件系统权限

您会找到基本的管理命令(作为 Django 源中的 ./manage.py 来获得它,或者作为可安装在Weblate 顶层的脚本调用 weblate 中的扩展组来获得它 )。

调用管理命令

如上面所提到的,以用依赖于您如何安装 Weblate 。

如果使用 Virtualenv 来运行 Weblate ,那么您可以或者为 weblate 指定全路径,或者在调用前激活 virtualenv :

# Direct invocation
~/weblate-env/bin/weblate

# Activating virtualenv adds it to search path
. ~/weblate-env/bin/activate
weblate

如果您直接使用源代码(来源于 tarball 或 Git checkout ),管理脚本可以在 Weblate 源文件的 ./manage.py 中获得。要运行它:

python ./manage.py list_versions

如果您使用 pip 或 pip3 安装程序,或使用 ./setup.py 脚本来安装 Weblate ,那么 weblate 安装到您的路径下(或者 virtualenv 路径下),您可以从那里用它控制 Weblate :

weblate list_versions

对于 Docker 镜像,脚本向上面一样安装,您可以使用 docker exec 来运行:

docker exec --user weblate <container> weblate list_versions

对于 docker-compose ,过程是相似的,您只是必须使用 docker-compose exec

docker-compose exec --user weblate weblate weblate list_versions

在您需要向它传递文件的情况下,您可以临时添加卷:

docker-compose exec --user weblate /tmp:/tmp weblate weblate importusers /tmp/users.json

add_suggestions

weblate add_suggestions <project> <component> <language> <file>

2.5 新版功能.

从文件导入翻译,来作为给定翻译的建议来使用。它跳过了复制翻译的步骤;只会添加不同的内容。

--author USER@EXAMPLE.COM

建议的作者电子邮箱地址。这个用户必须在导入前存在(您可以根据需要在管理界面建立一个)。

示例:

weblate --author michal@cihar.com add_suggestions weblate application cs /tmp/suggestions-cs.po

auto_translate

weblate auto_translate <project> <component> <language>

2.5 新版功能.

在 4.6 版更改: 添加了翻译模式参数。

根据其他组件翻译进行自动翻译。

--source PROJECT/COMPONENT

指定组件,用作可获得翻译的来源。如果不指定,将使用项目中的所有组件。

--user USERNAME

指定列出的用户名,作为翻译的作者。如果不指定那么使用“匿名用户”。

--overwrite

是否去覆盖现有的翻译。

--inconsistent

是否去覆盖现有的不一致的翻译(请参见 不一致的 )。

--add

如果给定的翻译不存在,自动添加语言。

--mt MT

实用机器翻译而不是其他组件作为机器翻译。

--threshold THRESHOLD

用于机器翻译的相似性阈值,默认为 80 。

--mode MODE

Specify translation mode, default is translate but fuzzy or suggest can be used.

示例:

weblate auto_translate --user nijel --inconsistent --source weblate/application weblate website cs

celery_queues

weblate celery_queues

3.7 新版功能.

显示 Celery 任务队列的长度。

checkgit

weblate checkgit <project|project/component>

打印后端 Git 仓库的当前状态。

您可以确定或者哪个项目或组件要更新(例如 weblate/application ),或者使用 --all 来更新所有现有组件。

commitgit

weblate commitgit <project|project/component>

将任何可能待定的更改提交给后端 Git 仓库。

您可以确定或者哪个项目或组件要更新(例如 weblate/application ),或者使用 --all 来更新所有现有组件。

commit_pending

weblate commit_pending <project|project/component>

提交早于给定时间段的待定更改。

您可以确定或者哪个项目或组件要更新(例如 weblate/application ),或者使用 --all 来更新所有现有组件。

--age HOURS

时间段以小时为单位。如果不指定,则使用在 组件配置 中配置的值。

注解

这由 Weblate 在后台自动执行,所以实际不需要手动调用,除了要强制早于 组件配置 指定的执行。

cleanuptrans

weblate cleanuptrans

清理无主的检查和翻译建议。这通常不需要手动运行,因为清理在后台自动启动。

createadmin

weblate createadmin

除非指定,否则用随机密码建立 admin 账户。

--password PASSWORD

在命令行提供密码,而不要生成随机的。

--no-password

不要设置密码,这对`–update`可能有用。

--username USERNAME

使用给定的姓名而不是 admin

--email USER@EXAMPLE.COM

指定 admin 的电子邮箱地址。

--name

指定 admin 的姓名(可见的)。

--update

更新现有的用户(您可以用这个来更改密码)。

在 2.9 版更改: 添加参数 --username--email--name--update

dump_memory

weblate dump_memory

2.20 新版功能.

将包含 Weblate 翻译记忆库内容的 JSON 文件导出。

dumpuserdata

weblate dumpuserdata <file.json>

通过 importuserdata 将 userdata 转储到文件供以后使用

提示

这在迁移或合并 Weblate 实例时会很方便。

import_demo

weblate import_demo

4.1 新版功能.

根据 <https://github.com/WeblateOrg/demo> 使用组件来新建演示项目。

这在开发 Weblate 时会有用。

import_json

weblate import_json <json-file>

2.7 新版功能.

根据 JSON 数据批量导入组件。

导入的 JSON 文件结构非常符合组件对象(请参见 GET /api/components/(string:project)/(string:component)/ )。您必须包括 namefilemask 字段。

--project PROJECT

指定从哪里导入组件。

--main-component COMPONENT

对所有的使用来自这个组件的给定版本控制系统(VCS)仓库。

--ignore

跳过(已经)导入的组件。

--update

更新(已经)导入的组件。

在 2.9 版更改: 那里的参数 --ignore--update 用于处理已经导入的组件。

JSON 文件的例子:

[
  {
    "slug": "po",
    "name": "Gettext PO",
    "file_format": "po",
    "filemask": "po/*.po",
    "new_lang": "none"
  },
  {
    "name": "Android",
    "filemask": "android/values-*/strings.xml",
    "template": "android/values/strings.xml",
    "repo": "weblate://test/test",
    "file_format": "aresource"
  }
]

参见

import_memory

import_memory

weblate import_memory <file>

2.20 新版功能.

将 TMX 或 JSON 文件导入 Weblate 翻译记忆库。

--language-map LANGMAP

允许将 TMX 的语言映射到 Weblate 翻译记忆库。语言代码通常在 Weblate 进行规范化之后映射。

例如 --language-map en_US:en 将所有 en_US 字符串作为 en 字符串来导入。

在您的 TMX 文件地区恰好与您在Weblate使用地区不同的情况下,这会有用。

import_project

weblate import_project <project> <gitrepo> <branch> <filemask>

在 3.0 版更改: import_project 命令现在基于 组件发现 插件,导致一些行为的更改,并接受一些参数。

根据 filemask ,将组件批量导入项目。

<project> 将已存在的项目命名,组件将导入其中。

<gitrepo> 确定了要使用的 Git 仓库的 URL,而 <branch> 说明了 Git 分支。为了从现有的 Weblate 组件导入另外的翻译组件,使用 <gitrepo>weblate://<project>/<component> URL 。

<filemask> 为仓库定义了文件发现。或者可以使用通配符来使它简单,或者可以使用正则表达式的全部功能。

简单的匹配对组件名称使用 ** ,对语言使用 * ,例如: **/*.po

正则表达式必须包含组命名的 componentlanguage 。例如: (?P<language>[^/]*)/(?P<component>[^-/]*)\.po

根据文件,导入与现有的组件匹配,并且添加不存在的那些。它不更改已经存在的那些。

--name-template TEMPLATE

使用 Django 模板语法来定制组件的名称。

例如: Documentation: {{ component }}

--base-file-template TEMPLATE

为单语言翻译定制译文模板文件。

例如: {{ component }}/res/values/string.xml

--new-base-template TEMPLATE

为另外新的翻译定制译文模板文件。

例如: {{ component }}/ts/en.ts

--file-format FORMAT

您还可以使用的文件格式(请参见: 支持的文件格式 ),默认为自动检测。

--language-regex REGEX

您可以使用这个参数指定语言过滤器(请参见: 组件配置 )。它必须是合法的正则表达式。

--main-component

你可以指定哪个组件作为主组件——即真正包含版本控制系统(VCS)仓库的组件。

--license NAME

指定整体、项目或组件翻译的许可。

--license-url URL

指定翻译许可所在的 URL 。

--vcs NAME

在需要指定使用哪个版本的轻质系统的情况下,您可以在这里进行。默认版本控制是 Git。

为了给出一些例子,让我们导入两个项目。

第一个是 Debian 手册翻译,那里的每种语言都有各自的文件夹,里面有 每个章节的翻译:

weblate import_project \
    debian-handbook \
    git://anonscm.debian.org/debian-handbook/debian-handbook.git \
    squeeze/master \
    '*/**.po'

然后 Tangaguru 工具,那里需要指定文件格式和译文模板文件,并且指定所有组件和翻译如何位于单一一个文件夹中:

weblate import_project \
    --file-format=properties \
    --base-file-template=web-app/tgol-web-app/src/main/resources/i18n/%s-I18N.properties \
    tanaguru \
    https://github.com/Tanaguru/Tanaguru \
    master \
    web-app/tgol-web-app/src/main/resources/i18n/**-I18N_*.properties

更复杂的例子是关于解析文件名而从文件名中得到正确的组件和语言,像 src/security/Numerous_security_holes_in_0.10.1.de.po

weblate import_project \
    tails \
    git://git.tails.boum.org/tails master \
    'wiki/src/security/(?P<component>.*)\.(?P<language>[^.]*)\.po$'

筛选出指定的语言的翻译:

./manage import_project \
    --language-regex '^(cs|sk)$' \
    weblate \
    https://github.com/WeblateOrg/weblate.git \
    'weblate/locale/*/LC_MESSAGES/**.po'

导入 Sphinx 文档,分成多个文件:

$ weblate import_project --name-template 'Documentation: %s' \
    --file-format po \
    project https://github.com/project/docs.git master \
    'docs/locale/*/LC_MESSAGES/**.po'

导入 Sphinx 文档,分成多个文件和文件夹:

$ weblate import_project --name-template 'Directory 1: %s' \
    --file-format po \
    project https://github.com/project/docs.git master \
    'docs/locale/*/LC_MESSAGES/dir1/**.po'
$ weblate import_project --name-template 'Directory 2: %s' \
    --file-format po \
    project https://github.com/project/docs.git master \
    'docs/locale/*/LC_MESSAGES/dir2/**.po'

参见

更多具体的例子可以在 从国际化开始 章节找到,另外您会想要使用 import_json

importuserdata

weblate importuserdata <file.json>

dumpuserdata 建立的文件中导入用户数据

importusers

weblate importusers --check <file.json>

从 Django auth_users 数据库的 JSON 转储中导入用户。

--check

使用这个选项可以检查给定文件是否可以被导入,并且报告用户名或电子邮箱地址可能导致的冲突。

可以从现有的 Django 安装中导出用户,这需要使用:

weblate dumpdata auth.User > users.json

install_addon

3.2 新版功能.

weblate install_addon --addon ADDON <project|project/component>

将附加组件安装到一组组件中。

--addon ADDON

要安装的附加组件名称。例如 weblate.gettext.customize

--configuration CONFIG

以 JSON 编码的附加组件配置。

--update

更新现有的附加组件配置。

可以或者定义将附加组件安装到哪个项目或组件中(例如 weblate/application),或者使用 --all 来包括所有现有的组件。

为所有的组件安装 自定义 gettext 输出

weblate install_addon --addon weblate.gettext.customize --config '{"width": -1}' --update --all

参见

附加组件

list_languages

weblate list_languages <locale>

列出 MediaWiki 标记中支持的语言——语言代码、英语名称和本地化名称。

这用来生成 <https://wiki.l10n.cz/Slovn%C3%ADk_s_n%C3%A1zvy_jazyk%C5%AF>.

list_translators

weblate list_translators <project|project/component>

按给定项目的语言列出为对应语言作贡献的翻译者:

[French]
Jean Dupont <jean.dupont@example.com>
[English]
John Doe <jd@example.com>
--language-code

用语言代码而不是语言来列出名称。

可以或者定义使用哪个项目或组件(例如 weblate/application),或者使用 --all 从所有现存的组件中列出翻译者。

list_versions

weblate list_versions

列出所有 Weblate 依赖及其版本。

loadpo

weblate loadpo <project|project/component>

从磁盘重新加载翻译(例如,您在版本控制系统(VCS)仓库中进行了一些更新)。

--force

强制更新,即使文件应该是更新的。

--lang LANGUAGE

将处理限制为单一语言。

您可以确定或者哪个项目或组件要更新(例如 weblate/application ),或者使用 --all 来更新所有现有组件。

注解

你很少需要调用这个命令,Weblate 会在每次版本控制系统(VCS)更新时自动加载更改的文件。如果您手动更改了 Weblate 的底层版本控制系统(VCS)仓库,或者在升级后的某些特殊情况下,则需要调用这个命令。

lock_translation

weblate lock_translation <project|project/component>

防止进一步翻译组件。

提示

在您想要对下层仓库进行一些维护时有用。

您可以确定或者哪个项目或组件要更新(例如 weblate/application ),或者使用 --all 来更新所有现有组件。

move_language

weblate move_language source target

3.0 新版功能.

允许您合并语言内容。当更新到新版本,这个新版本对使用 (generated) 前缀建立的之前未知的语言包含别名时,这会有用。它将所有内容从 source 语言移动到 target 语言。

示例:

weblate move_language cze cs

移动内容后,您应该检查是否有什么落下了(这是因为有人在同时更新仓库而导致的竞争情况),并且要删除 (generated) 语言。

pushgit

weblate pushgit <project|project/component>

将提交的更改推送到上游的版本控制系统(VCS)仓库。

--force-commit

在推送前,强制执行任何待定的更改。

您可以确定或者哪个项目或组件要更新(例如 weblate/application ),或者使用 --all 来更新所有现有组件。

注解

如果开启了 组件配置 中的:ref:component-push_on_commit,Weblate 会自动推送更改,这是默认的。

unlock_translation

weblate unlock_translation <project|project/component>

将给定的组件解锁,使它能够被翻译。

提示

在您想要对下层仓库进行一些维护时有用。

您可以确定或者哪个项目或组件要更新(例如 weblate/application ),或者使用 --all 来更新所有现有组件。

setupgroups

weblate setupgroups

配置默认的组,并可选地将所有用户指定到那个默认组中。

--no-privs-update

关闭对现有组的自动更新(只添加新的)。

--no-projects-update

防止对现有项目的组的自动更新。这允许将新添加的组加入到现有项目中,请参见 项目访问控制

参见

权限列表

setuplang

weblate setuplang

将 Weblate 中的确定语言的列表更新。

--no-update

关闭现有语言的自动更新(只添加新的)。

updatechecks

weblate updatechecks <project|project/component>

对所有字符串更新所有检查。

提示

对检查进行主要更改的更新是有用的。

您可以确定或者哪个项目或组件要更新(例如 weblate/application ),或者使用 --all 来更新所有现有组件。

updategit

weblate updategit <project|project/component>

取回远程版本控制系统(VCS)仓库并更新内部缓存。

您可以确定或者哪个项目或组件要更新(例如 weblate/application ),或者使用 --all 来更新所有现有组件。

注解

通常最好在仓库中配置钩子,来触发 通知钩子,而不是常规的通过 updategit 来投票。