管理コマンド

注釈

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

参考

自動翻訳

benchmark

weblate benchmark

Imports given content into Weblate, useful for benchmarking.

Example of performance profiling
# Run benchmark with a profiling
python -m cProfile -o benchmark.prof ./manage.py benchmark --project benchmark --filemask '*.tbx' --format tbx --zipfile /tmp/MicrosoftTermCollection2.zip

# Convert to SVG for visualization
uvx gprof2dot -f pstats benchmark.prof | dot -Tsvg -o benchmark.svg

# Display SVG
firefox ./benchmark.svg
Example of memory profiling
# Run benchmark under memray
uvx memray run ./manage.py benchmark --project benchmark --filemask '*.tbx' --format tbx --zipfile /tmp/MicrosoftTermCollection2.zip

# Render the profile
uvx memray flamegraph ./memray-manage.py.2554179.bin

# Display it
fixefox memray-flamegraph-manage.py.2554179.html

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_memory

weblate cleanup_memory

Added in version 5.13.

Removes all obsolete entries with pending status from the translation memory.

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

The regular expression has to contain groups named component and language, for example: (?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

使用するファイル形式も指定できます(参照: Localization file formats)。デフォルトは自動検出。

--language-regex REGEX

このパラメータを使用して、言語フィルタリング(参照: コンポーネント構成)を指定します。有効な正規表現であることが必要。

--main-component

メインのコンポーネントとして選択するコンポーネント、つまり VCS リポジトリを実際に含むコンポーネントを指定します。

--license NAME

全体、プロジェクト、またはコンポーネントの翻訳ライセンスを指定します。

--license-url URL

翻訳ライセンスを取得する URL を指定します。

--vcs NAME

使用するバージョン管理システムの指定が必要な場合は、ここで設定します。既定のバージョン管理は Git。

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

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

weblate import_project \
    debian-handbook \
    https://salsa.debian.org/hertzog/debian-handbook.git \
    bullseye/main \
    '*/**.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 を代わりに使用できます。

import_projectbackup

weblate import_projectbackup <project_name> <project_slug> <username> <filename>

Added in version 5.10.

Imports プロジェクト レベルのバックアップ.

ヒント

Usually it is more comfortable to import project when 翻訳プロジェクトとコンポーネントの追加.

importuserdata

weblate importuserdata <file.json>

ユーザー データを、dumpuserdata によって作成されたファイルからインポートします。

importusers

weblate importusers --check <file.json>

Django auth_users データベースの JSON ダンプからユーザーをインポートします。

--check

このオプションを指定すると、指定したファイルがインポート可能かどうかを検査し、ユーザー名やメール アドレスが原因で発生する競合の可能性を報告します。

You can dump users from the existing Django site using:

./manage.py dumpdata auth.User > users.json

ヒント

Use dumpuserdata for dumping data from other Weblate server as that includes user settings as well.

install_addon

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

アドオンをコンポーネントのセットにインストールします。

--addon ADDON

インストールするアドオンの名前。例: weblate.gettext.customize

--configuration CONFIG

アドオンの JSON エンコードの設定。

--update

既存のアドオンの設定を更新します。

アドオンをインストールするプロジェクトまたはコンポーネント(例: weblate/application)を設定するか、--all を使用して既存のすべてのコンポーネントを含めることができます。

To install MO ファイルの生成 for all components:

weblate install_addon --addon weblate.gettext.mo --configuration '{"fuzzy": true}' --update --all

参考

アドオン

install_machinery

Added in version 4.18.

weblate install_machinery --service SERVICE

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

--service SERVICE

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

--configuration CONFIG

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

--update

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

DeepL のインストール方法:

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

参考

自動提案

list_addons

weblate list_addons

Lists add-ons in reStructuredText as a template for アドオン.

list_permissions

weblate list_permissions

Lists permissions in reStructuredText as a template for アクセス制御.

list_checks

weblate list_checks

Lists quality checks in reStructuredText as a template for 検査と修正 and 検査と修正.

list_languages

weblate list_languages <locale>

MediaWiki マークアップで対応している言語(言語コード、英語名、現地語化された名前)を一覧表示します。

これは、<https://wiki.l10n.cz/Slovn%C3%ADk_s_n%C3%A1zvy_jazyk%C5%AF> を生成するために使用します。

list_machinery

weblate list_machinery

Lists automatic suggestions services in reStructuredText as a template for 自動提案.

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 の依存関係とそのバージョンを一覧表示します。

list_file_format_params

weblate list_file_format_params

Lists File format parameters.

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

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

ヒント

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

move_language

weblate move_language source target

Allows you to merge language content. This is useful when updating to a new version which contains aliases for previously unknown languages that have been created with the (generated) suffix. It moves all content from the source language to the target one.

例:

weblate move_language cze cs

After moving the content, you should check whether there is anything left (this is subject to race conditions when somebody updates the repository meanwhile) and remove the (generated) language.

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 によって更新を定期的に起動するのではなく、通知フック を起動するようにリポジトリ内のフックを設定してください。