管理命令¶
注解
不同用户下运行管理命令而不是一人运行您的 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¶
是否去覆盖现有的翻译。
- --add¶
如果给定的翻译不存在,自动添加语言。
- --mt MT¶
实用机器翻译而不是其他组件作为机器翻译。
- --threshold THRESHOLD¶
用于机器翻译的相似性阈值,默认为 80 。
- --mode MODE¶
Specify translation mode, default is
translate
butfuzzy
orsuggest
can be used.
例:
weblate auto_translate --user nijel --inconsistent --source weblate/application weblate website cs
参见
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
来更新所有现有组件。
注解
这由 Weblate 在后台自动执行,所以实际不需要手动调用,除了要强制早于 组件配置 指定的执行。
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
。
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)/
)。您必须包括 name
和 filemask
字段。
- --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¶
- 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
正则表达式必须包含组命名的 component 和 language 。例如: (?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
- --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
。
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
从所有现存的组件中列出翻译者。
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¶
关闭对现有组的自动更新(只添加新的)。
参见