アドオン
バージョン 2.19 で追加.
アドオンを使用すると、翻訳ワークフローの変更および自動化ができます。管理者は各翻訳コンポーネントの 管理 ↓ アドオン メニューからアドオンの追加と管理ができます。
ヒント
また、API、DEFAULT_ADDONS
または install_addon
を使用してアドオンを設定できます。

付属のアドオン
自動翻訳
バージョン 3.9 で追加.
- アドオン ID:
weblate.autotranslate.autotranslate
- 設定:
mode
自動翻訳モード
設定できる値:
suggest
-- 提案として追加translate
-- 翻訳として追加fuzzy
-- 「要編集」として追加filter_type
検索フィルター
すべての文字列を翻訳すると、既存の翻訳はすべて破棄されますのでご注意ください。
設定できる値:
all
-- すべての文字列nottranslated
-- 未翻訳の文字列todo
-- 翻訳未完了の文字列fuzzy
-- 要編集マーク付きの文字列check:inconsistent
-- 不合格項目: 一貫性の欠如auto_source
自動翻訳の参照先
設定できる値:
others
-- 他の翻訳コンポーネントmt
-- 機械翻訳component
コンポーネント
参照先として使用するコンポーネントのスラッグを入力します。現在のプロジェクト内のすべてのコンポーネントを使用する場合は、空白のままにします。
engines
機械翻訳エンジン
threshold
スコアしきい値
- トリガー:
コンポーネント update、daily
機械翻訳または他のコンポーネントを使用して文字列を自動的に翻訳します。
起動条件:
コンポーネントに新しい文字列が追加されたとき。
コンポーネントごとに毎月 1 回。
BACKGROUND_TASKS
から設定します。
JavaScript 現地語化 CDN
バージョン 4.2 で追加.
- アドオン ID:
weblate.cdn.cdnjs
- 設定:
threshold
翻訳率のしきい値
サーバに置く翻訳のしきい値。
css_selector
CSS セレクタ
翻訳可能な要素を検出する CSS セレクタ。
cookie_name
言語 Cookie 名
言語設定を保存する Cookie の名前。
files
HTMLファイルから文字列を抽出
現在のリポジトリ内のファイル名のリスト、または翻訳可能な文字列を解析するリモート URL。
- トリガー:
daily、リポジトリ post-commit、リポジトリ post-update
JavaScript または HTML の現地語化用に、翻訳をコンテンツ配信ネットワークに公開します。
静的な HTML ページを現地語化したり、JavaScript コードで翻訳を読み込むために使用できます。
HTML のページに挿入して、翻訳を可能にするコンポーネント専用の URL を生成します。詳細については、Weblate CDN を使用した HTML と JavaScript の翻訳 を確認してください。
空白文字列の削除
バージョン 4.4 で追加.
- アドオン ID:
weblate.cleanup.blank
- 設定:
このアドオンには設定はありません。
- トリガー:
リポジトリ post-commit、リポジトリ post-update
翻訳ファイルから翻訳されていない文字列を削除します。
翻訳ファイルに空の文字列を含ませたくない場合使用します(例: 翻訳ライブラリにおいて原文に戻すのではなく、空の文字列が不足していると表示させる場合)。
翻訳ファイルのクリーンアップ
- アドオン ID:
weblate.cleanup.generic
- 設定:
このアドオンには設定はありません。
- トリガー:
リポジトリ pre-commit、リポジトリ post-update
すべての翻訳ファイルを、モノリンガル用の基礎となる翻訳ファイルと一致するように更新します。ほとんどのファイル形式で、基礎となる翻訳ファイルに存在しない、無効な翻訳キーは削除されます。
不足している言語を追加
- アドオン ID:
weblate.consistency.languages
- 設定:
このアドオンには設定はありません。
- トリガー:
daily、リポジトリ post-add
プロジェクト内のすべてのコンポーネントで一貫した言語のセットが使用されるようにします。
足りない言語は、24 時間ごとに 1 回、さらに新しい言語を Weblate に追加したときに確認します。
他のほとんどのアドオンとは異なり、このアドオンはプロジェクト全体に影響します。
ヒント
新しく追加した文字列を 自動翻訳 アドオンで翻訳します。
コンポーネントの検出
- アドオン ID:
weblate.discovery.discovery
- 設定:
match
翻訳ファイルを照合する正規表現
file_format
ファイル形式
name_template
コンポーネント名のカスタマイズ
base_file_template
モノリンガル用の、基礎となる翻訳ファイル名の設定
バイリンガル翻訳の場合は、何も設定しないでください。
new_base_template
新しい翻訳用の、基礎となる翻訳ファイルの設定
新しい翻訳の作成に使用するファイルのファイル名。gettext では .pot ファイルを選択します。
intermediate_template
中間言語ファイル
中間翻訳ファイルのファイル名。多くの場合、これは開発者により提供される翻訳ファイルで、実際の原文を作成する際に使用されます。
language_regex
言語フィルター
ファイル マスクのスキャン時に、翻訳ファイルをフィルター処理する正規表現。
copy_addons
アドオンを、メイン コンポーネントから新しく作成したコンポーネントにクローンする
remove
存在しないファイルのコンポーネントの削除
confirm
上記の一致が正しいかを確認する
- トリガー:
リポジトリ post-update
バージョン管理システムのファイル変更に基づいて、プロジェクトコンポーネントを自動的に追加または削除します。
VCS を更新するたびに起動し、その他は、import_project
管理コマンドと同じです。この方法で、1 つの VCS 内で複数の翻訳コンポーネントを追跡できます。
照合は、複雑な設定ができる正規表現を使用して行われますが、そのためにはある程度の知識が必要です。一般的な使用例については、アドオンのヘルプ セクションを確認してください。
保存 をクリックすると、一致するコンポーネントの確認画面を表示し、設定が実際のニーズに合っているか確認する方法:

ヒント
コンポーネントを検出するアドオンは、Weblate の内部 URL を使用します。これは、複数のコンポーネント間で VCS 設定を共有するのに便利です。リンクされたコンポーネントは、各コンポーネントの ソースコードのリポジトリ フィールド(管理 ↓ 設定 ↓ バージョン管理システム の中)に weblate://project/main-component
を入力して、設定したメイン コンポーネントのローカル リポジトリを使用します。これにより、設定およびシステム リソースの時間をも節約できます。
一括編集
バージョン 3.11 で追加.
- アドオン ID:
weblate.flags.bulk
- 設定:
q
検索文字列
state
翻訳状態の設定
設定できる値:
-1
-- 翻訳禁止10
-- 要編集20
-- 翻訳済30
-- 承認済add_flags
翻訳フラグの追加
remove_flags
翻訳フラグの削除
add_labels
ラベルの追加
remove_labels
ラベルの削除
- トリガー:
コンポーネント update
文字列のフラグ、ラベル、状態を一括編集します。
NOT has:label
という検索クエリを使用してラベル付けを自動化し、すべての文字列に必要なラベルが付くまでラベルを追加します。Weblate メタデータに対する他の自動操作も実行できます。
例:
検索クエリ |
|
---|---|
ラベルの追加 |
recent |
検索クエリ |
|
---|---|
翻訳フラグの追加 |
|
未翻訳の翻訳文に "要編集" フラグを付ける
バージョン 3.1 で追加.
- アドオン ID:
weblate.flags.same_edit
- 設定:
このアドオンには設定はありません。
- トリガー:
ユニット post-create
VCS からインポートされた新しい翻訳可能な文字列が原文と同一のとき、Weblate は "要編集" フラグを付けます。特に、未翻訳の文字列は原文で埋めるファイル形式では有用です。
ヒント
また、ref:component-check_flags に strict-same フラグを追加して、未翻訳の翻訳文 検査を強化できます。
参考
新しい原文に "要編集" フラグを付ける
- アドオン ID:
weblate.flags.source_edit
- 設定:
このアドオンには設定はありません。
- トリガー:
ユニット post-create
新しい原文を VCS からインポートすると、Weblate は毎回 "要編集" フラグを付けます。このため、開発者が作成した原文を簡単にフィルターしたり、編集したりできます。
参考
新しい翻訳に "要編集" フラグを付ける
- アドオン ID:
weblate.flags.target_edit
- 設定:
このアドオンには設定はありません。
- トリガー:
ユニット post-create
新しい翻訳可能な文章を VCS からインポートすると、Weblate は毎回 "要編集" フラグを付けます。これにより、開発者が作成した翻訳文を簡単にフィルターしたり、編集したりできます。
参考
統計データの生成
- アドオン ID:
weblate.generate.generate
- 設定:
filename
生成ファイルの名前
template
生成ファイルの内容
- トリガー:
リポジトリ pre-commit
翻訳状況の詳細情報ファイルを生成します。
Django テンプレートは、ファイル名とコンテンツの両方で使用できます。マークアップの詳細については、テンプレート用のマークアップ を確認してください。
例えば、各翻訳の概要ファイルの生成:
- 生成ファイルの名前
locale/{{ language_code }}.json
- 内容
{ "language": "{{ language_code }}", "strings": "{{ stats.all }}", "translated": "{{ stats.translated }}", "last_changed": "{{ stats.last_changed }}", "last_author": "{{ stats.last_author }}", }
事前に原文を翻訳に代入
バージョン 4.11 で追加.
- アドオン ID:
weblate.generate.prefill
- 設定:
このアドオンには設定はありません。
- トリガー:
コンポーネント update、daily
初期値として原文を翻訳に代入する。
コンポーネント内の全ての未翻訳の文字列には原文が入り、要編集になります。これは、翻訳ファイルに空の文字列を含めることができない場合に使用します。
疑似ロケールの生成
バージョン 4.5 で追加.
- アドオン ID:
weblate.generate.pseudolocale
- 設定:
source
原文
target
翻訳先
この言語の翻訳は全て上書きされます
prefix
文字列の固定接頭辞
var_prefix
文字列の可変接頭辞
suffix
文字列の固定接尾辞
var_suffix
文字列の可変接尾辞
var_multiplier
可変部分の係数
可変部分を繰り返す回数を、原文の長さの何倍にするか。
include_readonly
翻訳禁止の文字列を含める
- トリガー:
コンポーネント update、daily
原文に接頭辞と接尾辞を自動的に追加して、翻訳を生成します。
疑似ロケールは、翻訳対象になっていない文字列を探すのに便利です。すべての翻訳可能な原文を変更したあと、アプリケーションを疑似ロケールで実行して、置き換えられていない文字列を簡単に見つけることができます。
また、現地語化したときにレイアウトが崩れるかもしれない文字列も発見できます。
可変部分を使用すると、原文の長さに基づいてテキストが拡張し、現地語化の後にユーザー インターフェイスに収まらないことがある文字列を探せます。可変部分は、テキストの長さに係数を掛けた回数繰り返します。たとえば、可変接尾辞が _
で係数が 1 だと Hello world
は、Hello world___________
になります。 — この接尾辞は、原文の文字ごとに 1 回繰り返します。
文字列の生成に使用されるパターン:
文字列の固定接頭辞 文字列の可変接頭辞 原文 文字列の可変接尾辞 文字列の固定接尾辞
ヒント
テストには実際の言語を使用できますが、 Weblate には専用の疑似ロケール( en_XA と ar_XB )が用意されています。
ヒント
このアドオンを使用して、既存の言語または類似の言語の新しい言語への翻訳を開始できます。コンポーネントに翻訳を追加したら、アドオンに従います。例: fr があり、fr_CA の翻訳を開始する場合、ソースに fr、ターゲットには fr_CA を設定し、接頭辞と接尾辞を空白にするだけです。
コピー後に作成した翻訳を Weblate に変更されないように、新しい翻訳が入力されたらアドオンをアンインストールしてください。
コメント内の貢献者情報
- アドオン ID:
weblate.gettext.authors
- 設定:
このアドオンには設定はありません。
- トリガー:
リポジトリ pre-commit
PO ファイルヘッダーのコメントを更新し、貢献者名と貢献した西暦を追加します。
PO ファイルヘッダーは次のようになる:
# Michal Čihař <michal@weblate.org>, 2012, 2018, 2019, 2020.
# Pavel Borecki <pavel@example.com>, 2018, 2019.
# Filip Hron <filip@example.com>, 2018, 2019.
# anonymous <noreply@weblate.org>, 2019.
configure ファイルの ALL_LINGUAS 変数の更新
- アドオン ID:
weblate.gettext.configure
- 設定:
このアドオンには設定はありません。
- トリガー:
リポジトリ post-add、daily
新しい翻訳を追加すると、configure
、configure.in
、または任意の configure.ac
ファイルの ALL_LINGUAS 変数を更新します。
gettext 出力のカスタマイズ
- アドオン ID:
weblate.gettext.customize
- 設定:
width
長い行を折り返す
デフォルトでは、gettext は 77 文字または改行で行を折り返します。--no-wrap パラメータを指定すると、改行でのみ折り返されます。
設定できる値:
77
-- 行を 77 文字と改行で折り返す(xgettext のデフォルト)65535
-- 改行でのみ行を折り返す('xgettext --no-wrap' のように)-1
-- 行を折り返さない- トリガー:
ストレージ post-load
改行処理など、 gettext の出力動作をカスタマイズできます。
使用できるオプション:
77 文字または改行で行を折り返す
改行でのみ行を折り返す
行を折り返さない
注釈
デフォルトでは、gettext は 77 文字または改行で行を折り返します。--no-wrap
パラメータを指定すると、改行でのみ折り返されます。
LINGUAS ファイルの更新
- アドオン ID:
weblate.gettext.linguas
- 設定:
このアドオンには設定はありません。
- トリガー:
リポジトリ post-add、daily
新しい翻訳が追加されたときに LINGUAS ファイルを更新します。
MO ファイルの生成
- アドオン ID:
weblate.gettext.mo
- 設定:
path
生成された MO ファイルのパス
指定しない場合は、PO ファイルの場所を使用します。
- トリガー:
リポジトリ pre-commit
変更された PO ファイルごとに自動的に MO ファイルを生成します。
MO ファイルが生成される場所はカスタマイズでき、フィールドは テンプレート用のマークアップ を使用します。
POT に合わせて PO ファイルを更新 (msgmerge)
- アドオン ID:
weblate.gettext.msgmerge
- 設定:
previous
翻訳済み文字列の以前の msgid を保持する
no_location
翻訳済みの文字列の場所を削除する
fuzzy
あいまい検索を使用する
- トリガー:
リポジトリ post-update
msgmerge を使用して POT ファイル( 新しい翻訳のテンプレート で設定)に整合するように、すべての PO ファイル( ファイル マスク で設定)を更新します。
新しい変更が上流リポジトリから新しい変更をプルするたびに起動します。大部分の msgmerge のコマンドライン オプションはアドオンの設定から設定できます。
Git コミットのスカッシュ
- アドオン ID:
weblate.git.squash
- 設定:
squash
コミットの圧縮
設定できる値:
all
-- すべてのコミットを 1 つに統合language
-- 言語別file
-- ファイル別author
-- 著者別append_trailers
スカッシュしたコミット メッセージに翻訳者情報を追加する
トレーラ行とは、RFC 822 のメール ヘッダーに似た "Co-authored-by: …" のような行のことで、コミットメッセージの自由形式部分の末尾につきます。
commit_message
コミットメッセージ
このコミットメッセージは、スカッシュしたコミットのコミットメッセージを結合する代わりに使用されます。
- トリガー:
リポジトリ post-commit
変更をプッシュする前に、Git コミットをスカッシュします。
変更をプッシュする前に Git コミットの内容を簡略化するモードの種類:
すべてのコミットを 1 つに統合
言語別
ファイル別
翻訳者別
元々のコミット メッセージは保持されますが、翻訳者別 を選択するか、コミット メッセージに含めるようカスタマイズしない限り、翻訳者の情報は失われます。
元々のコミット メッセージは、オプションを使用すると独自のコミット メッセージに書き換えられます。
オプションを使用して、元のコミット メッセージからトレーラー(Co-authored-by: …
のような行)を切り取り、スカッシュコミットのコミットメッセージの末尾に追加できます。これにより、共同翻訳者全員が、Co-authored-by:
として、適切にクレジットされます。
JSON 出力形式のカスタマイズ
- アドオン ID:
weblate.json.customize
- 設定:
sort_keys
JSON キーの並べ替え
indent
JSON 形式のインデント
style
JSON のインデントスタイル
設定できる値:
spaces
-- スペースtabs
-- タブ- トリガー:
ストレージ post-load
インデント処理や並べ替えなど、JSON 出力形式の変更ができます。
Java プロパティ ファイルの整形
- アドオン ID:
weblate.properties.sort
- 設定:
このアドオンには設定はありません。
- トリガー:
リポジトリ pre-commit
Java プロパティ ファイルを整形およびソートします。
改行を Unix の改行コードに統一する。
Unicode エスケープ シーケンスを大文字に整形する(存在する場合)。
空白行とコメントを削除する。
文字列をキーでソートする。
重複する文字列を削除する。
古いコメントの削除
バージョン 3.7 で追加.
- アドオン ID:
weblate.removal.comments
- 設定:
age
保存日数
- トリガー:
daily
コメントを削除するまでの期間を設定します。
これは、古くなった可能性のある古いコメントを削除する場合に便利です。コメントが古いからといって、その重要性が失われたわけではないので、注意して使用してください。
古い提案の削除
バージョン 3.7 で追加.
- アドオン ID:
weblate.removal.suggestions
- 設定:
age
保存日数
votes
投票数のしきい値
削除のしきい値を指定します。このフィールドは、投票ができない設定の場合は無効です。
- トリガー:
daily
提案を削除するまでの期間を設定します。
与えられた時間枠内に必要な賛成票を獲得できなかった提案への投票(参照: 相互評価)を削除するのに大変便利です。
RESX ファイルの更新
バージョン 3.9 で追加.
- アドオン ID:
weblate.resx.update
- 設定:
このアドオンには設定はありません。
- トリガー:
リポジトリ post-update
すべての翻訳ファイルを、上流にあるモノリンガル用の基礎となる翻訳ファイルと整合するように更新します。使われない文字列は削除され、新しい文字列は原文をコピーして追加されます。
ヒント
古い翻訳キーのみを削除する場合は、翻訳ファイルのクリーンアップ を使用します。
XML 出力形式のカスタマイズ
バージョン 4.15 で追加.
- アドオン ID:
weblate.xml.customize
- 設定:
closing_tags
空白の XML タグに終了タグを含める
- トリガー:
ストレージ post-load
空のタグの自己終了タグの代わりに終了タグなど、XML 出力形式の変更ができます。
YAML 出力形式のカスタマイズ
バージョン 3.10.2 で追加.
- アドオン ID:
weblate.yaml.customize
- 設定:
indent
YAML 形式のインデント
width
長い行を折り返す
設定できる値:
80
-- 80 文字で改行100
-- 100 文字で改行120
-- 120 文字で改行180
-- 180 文字で改行65535
-- 行を折り返さないline_break
改行コード
設定できる値:
dos
-- DOS (\r\n)unix
-- UNIX (\n)mac
-- MAC (\r)- トリガー:
ストレージ post-load
行の長さや改行など、YAML 出力形式の変更ができます。
アドオン一覧のカスタマイズ
アドオンの一覧は WEBLATE_ADDONS
で設定します。アドオンを追加するには、設定に絶対クラス名を含めるだけです。
アドオンの作成
独自のアドオンも作成できます。サブクラス weblate.addons.base.BaseAddon
を作成してアドオンのメタデータを定義し、処理を行うコールバックを実装します。
参考
アドオンから実行するスクリプト
アドオンは、外部スクリプトを実行するためにも使用できます。以前は Weblate に統合されていましたが、現在はスクリプトをアドオンでラップするコードの記述が必要です。
# Copyright © Michal Čihař <michal@weblate.org>
#
# SPDX-License-Identifier: GPL-3.0-or-later
"""Example pre commit script."""
from django.utils.translation import gettext_lazy as _
from weblate.addons.events import EVENT_PRE_COMMIT
from weblate.addons.scripts import BaseScriptAddon
class ExamplePreAddon(BaseScriptAddon):
# Event used to trigger the script
events = (EVENT_PRE_COMMIT,)
# Name of the addon, has to be unique
name = "weblate.example.pre"
# Verbose name and long description
verbose = _("Execute script before commit")
description = _("This add-on executes a script.")
# Script to execute
script = "/bin/true"
# File to add in commit (for pre commit event)
# does not have to be set
add_file = "po/{{ language_code }}.po"
インストールの方法は 品質検査、アドオン、自動修正のカスタマイズ を確認してください。
スクリプトは、指定したコンポーネントの VCS リポジトリのルートを、カレント ディレクトリとして実行されます。
さらに利用可能な環境変数:
- WL_VCS
使用中のバージョン管理システム。
- WL_REPO
上流リポジトリの URL。
- WL_PATH
VCS リポジトリへの絶対パス。
- WL_BRANCH
バージョン 2.11 で追加.
現在のコンポーネントに設定したリポジトリのブランチ。
- WL_FILEMASK
現在のコンポーネントのファイルマスク。
- WL_TEMPLATE
モノリンガル翻訳用のテンプレートのファイル名(空欄でも可)。
- WL_NEW_BASE
バージョン 2.14 で追加.
新しい翻訳の作成用のファイル名(空欄でも可)。
- WL_FILE_FORMAT
現在のコンポーネントで使用するファイル形式。
- WL_LANGUAGE
現在実行中の翻訳言語(コンポーネント レベルのフックでは使用できません)。
- WL_PREVIOUS_HEAD
更新前の HEAD(更新後のフックを実行した後にのみ利用可能)。
- WL_COMPONENT_SLUG
バージョン 3.9 で追加.
コンポーネント URL の設定時に使用するスラッグ。
- WL_PROJECT_SLUG
バージョン 3.9 で追加.
プロジェクト URL の設定時に使用するスラッグ。
- WL_COMPONENT_NAME
バージョン 3.9 で追加.
コンポーネント名。
- WL_PROJECT_NAME
バージョン 3.9 で追加.
プロジェクト名。
- WL_COMPONENT_URL
バージョン 3.9 で追加.
コンポーネント URL。
- WL_ENGAGE_URL
バージョン 3.9 で追加.
プロジェクト参加 URL。
参考
更新後のリポジトリ処理
VCS の上流ソースが変更されたときに翻訳ファイルを更新するために使用できます。これを実現するには、 Weblate は VCS にコミットされたファイルだけを確認するので、スクリプトの一部として変更をコミットすることが必要であることに注意してください。
Gulp による実行例:
#! /bin/sh
gulp --gulpfile gulp-i18n-extract.js
git commit -m 'Update source strings' src/languages/en.lang.json
翻訳のコミット前処理
コミット スクリプトを使用して、翻訳文をリポジトリにコミットする前に、翻訳文を自動的に変更します。
これには、唯一の引数として現在の翻訳のファイル名が渡されます。