管理コマンド#

注釈

Web サーバーを実行しているのとは異なるユーザーで管理コマンドを実行すると、ファイルのアクセス権が不正になることがあります。詳しくは ファイル システムのアクセス権 を参照してください。

基本的な管理コマンドがあります(Django ソースでは、./manage.py として、または Weblate にインストール可能な weblate というスクリプトの拡張セットとして使用できます)。

管理コマンドの起動#

前述のように、起動方法は Weblate のインストール方法によ方法はなります。

Weblate に virtualenv を使用する場合は、weblate へのフル パスを指定するか、呼び出す前に virtualenv を有効化します。

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

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

ソースコードを直接(tarball または Git チェックアウトから)使用している場合、Weblate から管理スクリプト ./manage.py を実行します。実行例:

python ./manage.py list_versions

pip インストーラを使用して Weblate をインストールした場合、または ./setup.py スクリプトを使用してインストールした場合、weblate がパス(または virtualenv パス)にインストールされます。パスから Weblate を管理する方法:

weblate list_versions

Docker イメージの場合、スクリプトは上記のようにインストールします。docker exec を使用した実行例:

docker exec --user weblate <container> weblate list_versions

For docker-compose-plugin the process is similar, you just have to use 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

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

指定された翻訳の候補として、使用する翻訳をファイルからインポートします。重複した翻訳は除外し、異なる翻訳のみ追加します。

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

バージョン 4.6 で変更: 翻訳モードのパラメータを追加しました。

他のコンポーネントの翻訳に基づいて自動翻訳します。

--source PROJECT/COMPONENT#

翻訳の参考に使用する基のコンポーネントを指定します。指定しない場合、プロジェクト内のすべてのコンポーネントを使用します。

--user USERNAME#

翻訳の著者として登録しているユーザー名を指定します。指定しない場合は、 「匿名ユーザー」 となります。

--overwrite#

既存の翻訳を上書きするかどうか。

--inconsistent#

一貫性のない既存の翻訳を上書きするかどうか(参照: 一貫性の欠如)。

--add#

指定した言語の翻訳が存在しない場合は、自動的に言語を追加します。

--mt MT#

自動翻訳用に、他のコンポーネントの代わりに機械翻訳を使用します。

--threshold THRESHOLD#

機械翻訳の類似性のしきい値。デフォルトは 80。

--mode MODE#

翻訳モードの指定。デフォルトは translate ですが、fuzzysuggest にもできます。

例:

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 を使用して既存のすべてのコンポーネントを更新するか、--file-format を使用してファイル形式に基づいてフィルタリングできます。

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 で追加.

保存している SSH ホスト鍵をクリーンアップします。

  • GitHub への接続で問題が発生することがある GitHub の非推奨の RSA 鍵を削除します。

  • ホスト鍵内の重複するエントリーを削除します。

createadmin#

weblate createadmin#

指定がなければ、ランダムなパスワードで admin アカウントを作成します。

--password PASSWORD#

ランダムなパスワードが生成されないように、コマンドラインでパスワードを指定します。

--no-password#

パスワードを設定しない。これは --update と合わせて使用すると便利です。

--username USERNAME#

admin の代わりに、指定した名前を使います。

--email USER@EXAMPLE.COM#

管理者のメール アドレスを指定します。

--name#

管理者名を指定します(表示用)。

--update#

既存のユーザーを更新します(これを使用してパスワードを変更できます)。

dump_memory#

weblate dump_memory#

Weblate 翻訳メモリのコンテンツを含む JSON ファイルをエクスポートします。

dumpuserdata#

weblate dumpuserdata <file.json>#

Dumps userdata to a file for later use by weblate importuserdata.

ヒント

これは、Weblate インスタンスを移行またはマージするときに便利です。

import_demo#

weblate import_demo#

バージョン 4.1 で追加.

<https://github.com/WeblateOrg/demo> に基づくコンポーネントを含んだデモプロジェクトを作成します。このコマンドを実行する前に、celery のタスクが実行されていることを確認してください。

これは Weblate の開発時に便利です。

import_json#

weblate import_json <json-file>#

JSON データに基づくコンポーネントの一括インポート。

インポートした JSON ファイル構造は、コンポーネント オブジェクトにほぼ対応しています (参照: GET /api/components/(string:project)/(string:component)/)。name フィールドと filemask フィールドを必ず含めてください。

--project PROJECT#

コンポーネントのインポート元を指定します。

--main-component COMPONENT#

このコンポーネントから取得した VCS リポジトリを、すべての VCS に使用します。

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

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 コマンドは、コンポーネントの検出 アドオンに基づいているため、動作と受け入れるパラメータに変更があります。

バッチは、ファイル マスクに基づいてコンポーネントをプロジェクトにインポートします。

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

例として、2 つのプロジェクトをインポートします。

はじめは、Debian ハンドブックの翻訳です。言語ごとにフォルダが別れていて、各章の翻訳が入っています。

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

次は、Tanaguru ツールです。このツールでは、ファイル形式と基礎となる翻訳ファイルのテンプレートを指定する必要があり、すべてのコンポーネントの翻訳が1つのフォルダに配置されています。

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'

参考

More detailed examples can be found in the 国際化に向けた取り組み chapter, alternatively you might want to use weblate import_json.

importuserdata#

weblate importuserdata <file.json>#

Imports user data from a file created by weblate 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 --configuration '{"width": -1}' --update --all

参考

アドオン

install_machinery#

バージョン 4.18 で追加.

weblate install_machinery --service SERVICE#

Installs an site-wide automatic suggestion service.

--service SERVICE#

Name of the service to install. For example deepl.

--configuration CONFIG#

JSON encoded configuration of a service.

--update#

Update the existing service configuration.

To install DeepL:

weblate install_service --service deepl --configuration '{"key": "x", "url": "https://api.deepl.com/v2/"}' --update

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#

処理を 1 つの言語に制限します。

更新するプロジェクトまたはコンポーネント(例: weblate/application)を設定するか、--all を使用して既存のすべてのコンポーネントを更新します。

注釈

これを実行する必要性はほとんどありませんが、Weblate は VCS の更新ごとに変更されたファイルを自動的にロードします。これは、基礎となる Weblate VCS リポジトリを手動で変更した場合や、アップグレード後の特別な場合に必要です。

lock_translation#

weblate lock_translation <project|project/component>#

今後、コンポーネントの翻訳を防ぎます。

ヒント

基礎となるリポジトリをメンテナンスする場合に使用できます。

更新するプロジェクトまたはコンポーネント(例: weblate/application)を設定するか、--all を使用して既存のすべてのコンポーネントを更新します。

migrate#

weblate migrate#

Migrates database to current Weblate schema. The command line options are described at Django migrate.

ヒント

In case you want to run an installation non interactively, you can use weblate migrate --noinput, and then create an admin user using weblate createadmin command.

move_language#

weblate move_language source target#

バージョン 3.0 で追加.

言語コンテンツを統合します。これは、接尾辞 (generated) を使用して自動生成された、いままでになかった言語のエイリアスを含む新しいバージョンに更新する場合に使用します。すべてのコンテンツを ソース 言語から 対象 言語に移動します。

例:

weblate move_language cze cs

コンテンツを移動した後、空であることを確認してください(残っているものがあると、誰かがリポジトリを更新したときに競合状態の影響を受けます)。また、(generated) 言語も削除してください。

pushgit#

weblate pushgit <project|project/component>#

コミットした変更を上流の VCS リポジトリにプッシュします。

--force-commit#

プッシュする前に、保留中の変更を強制的にコミットします。

更新するプロジェクトまたはコンポーネント(例: weblate/application)を設定するか、--all を使用して既存のすべてのコンポーネントを更新します。

注釈

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 を使用して既存のすべてのコンポーネントを更新します。

注釈

Checks are recalculated regularly by Weblate in the background, the frequency can be configured via BACKGROUND_TASKS.

updategit#

weblate updategit <project|project/component>#

リモート VCS リポジトリを取得し、内部キャッシュを更新します。

更新するプロジェクトまたはコンポーネント(例: weblate/application)を設定するか、--all を使用して既存のすべてのコンポーネントを更新します。

注釈

Usually it is better to configure hooks in the repository to trigger 通知フック, instead of regular triggering the updates by weblate updategit.