管理命令

備註

不同用戶下運行管理命令而不是一人運行您的 web 服務器,可以導致文件得到錯誤的權限,更多細節請查看 文件系統權限

您會找到基本的管理命令(作為Django 源中的:file:./manage.py 來獲得它,或者作為可安裝在Weblate 頂層的腳本調用:command:weblate 中的擴展組來獲得它)。

Invoking management commands

如上面所提到的,以用依賴於您如何安裝 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

If you’ve installed Weblate using the pip installer, or by using the ./setup.py script, the weblate is installed to your path (or virtualenv path), from where you can use it to control 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

也參考

:Doc:安裝/ docker,:doc:westal / Venv-debian`,:doc:westall / Venv-suse`

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 版本變更: Added parameter for translation mode.

根據其他組件翻譯進行自動翻譯。

--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

清理無主的檢查和翻譯建議。這通常不需要手動運行,因為清理在後台自動啟動。

cleanup_ssh_keys

weblate cleanup_ssh_keys

在 4.9.1 版本新加入.

Performs cleanup of stored SSH host keys:

  • Removes deprecated RSA keys for GitHub which might cause issues connecting to GitHub.

  • Removes duplicate entries in host keys.

也參考

SSH 倉庫

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>

Dumps userdata to a file for later use by importuserdata.

提示

這在遷移或合併 Weblate 事例是會很方便。

import_demo

weblate import_demo

在 4.1 版本新加入.

Creates a demo project with components based on <https://github.com/WeblateOrg/demo>. Make sure the celery tasks are running before running this command.

這在開發 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 命令現在基於 組件探索 插件,導致一些行為的更改,並接受一些參數。

Batch imports components into project based on the file mask.

<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 encoded configuration of an add-on.

--update

Update the existing add-on configuration.

可以或者定義將附加組件安裝到哪個項目或組件中(例如 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 來更新所有現有組件。

也參考

unlock_translation

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 來更新所有現有組件。

也參考

lock_translation

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 來投票。