管理コマンド

注釈

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

docker-compose-plugin の場合、作業は似ていますが、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

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

Added in version 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>

importuserdata を後で使用するために userdata をファイルにダンプします。

ヒント

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

import_demo

weblate import_demo

Added in version 4.1.

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

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

--delete

既存のデモ プロジェクトを削除します。

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

import_memory

weblate import_memory <file>

Imports a file into the Weblate translation memory.

Supported file formats are TMX, JSON, XLIFF, PO, CSV.

Specifying a source and a target languages might be necessary for formats other than JSON and TMX.

--language-map LANGMAP

TMX の言語を Weblate 翻訳メモリに対応付けます。言語コードは、通常 Weblate によって行われる正規化の後に対応付けられます。

たとえば、--language-map en_US:en は、すべての en_US 文字列を en 文字列としてインポートします。

これは、TMX ファイルの言語が Weblate で使用しているものと一致しない場合に便利です。

--source-language SOURCE_LANG

Specifies the source language for imported translations. Typically needed for formats where the languages cannot be determined from the file itself.

--target-language TARGET_LANG

Specifies the target language for imported translations. Typically needed for formats where the languages cannot be determined from the file itself.

import_project

weblate import_project <project> <gitrepo> <branch> <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。

例として、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'

参考

詳細な例については、 国際化に向けた取り組み の章を確認してください。または、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

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

Added in version 4.18.

weblate install_machinery --service SERVICE

サイト全体の自動提案サービスをインストールします。

--service SERVICE

インストールするサービスの名前。例: deepl

--configuration CONFIG

JSON エンコードされたサービスの設定。

--update

既存のサービスの設定を更新します。

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

移行

weblate migrate

データベースを現在の Weblate スキーマに移行します。コマンドライン オプションの詳細は Django migrate に解説があります。

ヒント

コマンドでインストールをするには、weblate migrate --noinput を使用してから、createadmin コマンドを使用して admin ユーザーを作成します。

move_language

weblate move_language source target

言語コンテンツを統合します。これは、接尾辞 (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 を使用して既存のすべてのコンポーネントを更新します。

注釈

Weblate により定期的にバックグラウンドでチェックが実行されます。頻度は BACKGROUND_TASKS から設定します。

updategit

weblate updategit <project|project/component>

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

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

注釈

通常、updategit によって更新を定期的に起動するのではなく、通知フック を起動するようにリポジトリ内のフックを設定してください。