アドオン¶
Add-ons provide ways to customize and automate the translation workflow. Admins can add and manage add-ons from the Operations ↓ Add-ons menu of each respective translation project or component. Add-ons can be also installed site-wide in 管理画面.
ヒント
また、API、DEFAULT_ADDONS または install_addon を使用してアドオンを設定できます。
アドオンをトリガーするイベント¶
アドオンのインストール¶
アドオンのインストール時にトリガーされます。
コンポーネントの更新¶
次のようなコンポーネントに変更が発生するたびにトリガーされます:
リポジトリ内の文字列が変更されます。
文字列が追加されます。
新しい翻訳が追加されています。
毎日¶
毎日トリガーされますが、アドオンは通常 BACKGROUND_TASKS に応じて毎日の負荷をコンポーネント間で分割します。
Event change¶
Triggered after a Change event is created.
リポジトリ追加後¶
新しい翻訳が追加され、コミットされた直後にトリガーされます。
リポジトリのコミット後¶
変更がコミットされた直後にトリガーされます。
リポジトリのプッシュ後¶
リポジトリが上流にプッシュされた直後にトリガーされます。
リポジトリの更新後¶
上流リポジトリから新しい変更がプルされるたびにトリガーされます。
リポジトリのコミット前¶
変更がコミットされる直前にトリガーされます。
リポジトリの事前プッシュ¶
リポジトリが上流にプッシュされる直前にトリガーされます。
リポジトリ更新前¶
リポジトリの更新が試行される直前にトリガーされます。
ユニット保存後¶
文字列が保存された直後にトリガーされます。
Unit post-sync¶
Triggered after the string is synchronized with the VCS.
ユニットの事前作成¶
新しく作成された文字列が保存された直後にトリガーされます。
付属のアドオン¶
自動翻訳¶
- アドオン ID:
weblate.autotranslate.autotranslate- 設定:
mode自動翻訳モード
設定できる値:¶ suggest提案として追加
translate翻訳として追加
fuzzy「要編集」として追加
q検索文字列
すべての文字列を翻訳すると、既存の翻訳はすべて破棄されますのでご注意ください。
auto_source自動翻訳の参照先
設定できる値:¶ othersその他の翻訳コンポーネント
mt機械翻訳
componentコンポーネント
参照先として使用するコンポーネントのスラッグを入力します。現在のプロジェクト内のすべてのコンポーネントを使用する場合は、空白のままにします。
engines機械翻訳エンジン
thresholdスコアしきい値
- トリガー:
機械翻訳または他のコンポーネントを使用して文字列を自動的に翻訳します。
JavaScript 現地語化 CDN¶
Added in version 4.2.
- アドオン ID:
weblate.cdn.cdnjs- 設定:
threshold翻訳率のしきい値
The percentage of translated strings that must be present for translation to be included.
css_selectorCSS セレクタ
翻訳可能な要素を検出する CSS セレクタ。
cookie_name言語 Cookie 名
言語設定を保存する Cookie の名前。
filesHTMLファイルから文字列を抽出
現在のリポジトリ内のファイル名のリスト、または翻訳可能な文字列を解析するリモート URL。
- トリガー:
JavaScript または HTML の現地語化用に、翻訳をコンテンツ配信ネットワークに公開します。
静的な HTML ページを現地語化したり、JavaScript コードで翻訳を読み込むために使用できます。
HTML のページに挿入して、翻訳を可能にするコンポーネント専用の URL を生成します。詳細については、Weblate CDN を使用した HTML と JavaScript の翻訳 を確認してください。
注釈
このアドオンには、Weblate サーバー上で追加の設定が必要です。 LOCALIZE_CDN_PATH は生成されたファイルが書き込まれる場所(ファイルシステム上)を設定し、 LOCALIZE_CDN_URL はファイルが提供される場所(URL)を定義します。ファイルの提供は Weblate によって行われないため、外部で設定することが必要です(通常は CDN サービスを使用します)。
このアドオンは Hosted Weblate で設定され、https://weblate-cdn.com/ 経由でファイルを提供します。
空白文字列の削除¶
Added in version 4.4.
- アドオン ID:
weblate.cleanup.blank- 設定:
このアドオンには設定はありません。
- トリガー:
翻訳ファイルから翻訳されていない文字列を削除します。
翻訳ファイルに空の文字列を含ませたくない場合使用します(例: 翻訳ライブラリにおいて原文に戻すのではなく、空の文字列が不足していると表示させる場合)。
翻訳ファイルのクリーンアップ¶
- アドオン ID:
weblate.cleanup.generic- 設定:
このアドオンには設定はありません。
- トリガー:
すべての翻訳ファイルを、モノリンガル用の基礎となる翻訳ファイルと一致するように更新します。ほとんどのファイル形式で、基礎となる翻訳ファイルに存在しない、無効な翻訳キーは削除されます。
また、翻訳文字列以外の追加コンテンツを含む形式(HTML ファイル、Windows RC ファイル、OpenDocument 形式 など)の場合、クリーンアップにより翻訳ファイルが元のファイルに同期します。
不足している言語を追加¶
- アドオン ID:
weblate.consistency.languages- 設定:
このアドオンには設定はありません。
- トリガー:
プロジェクト内のすべてのコンポーネントで一貫した言語のセットが使用されるようにします。
注釈
The components shared from other projects are not considered in this.
足りない言語は、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上記の一致が正しいかを確認する
- トリガー:
バージョン管理システムのファイル変更に基づいて、プロジェクトコンポーネントを自動的に追加または削除します。
照合は、複雑な設定ができる正規表現を使用して行われますが、そのためにはある程度の知識が必要です。一般的な使用例については、アドオンのヘルプ セクションを確認してください。
翻訳ファイルと照合する正規表現には、コンポーネントと言語に一致する 2 つの名前付きグループが含まれていることが必要です。正規表現のすべての名前付きグループは、テンプレート フィールドで変数として使用できます。
すべてのファイル名フィールドで Django テンプレートのマークアップを使用できます。例:
{{ component }}コンポーネントのファイル名が一致
{{ component|title }}先頭を大文字にしたコンポーネントファイル名
{{ path }}: {{ component }}正規表現からのカスタム一致グループ
保存 をクリックすると、一致するコンポーネントの確認画面を表示し、設定が実際のニーズに合っているか確認する方法:
コンポーネント検出の例¶
言語ごとに 1 つのフォルダー¶
言語ごとに 1 つのフォルダがあり、その中に各コンポーネントの翻訳ファイルが含まれている場合。
- 正規表現:
(?P<language>[^/.]*)/(?P<component>[^/]*)\.po- 一致するファイル:
cs/application.pocs/website.pode/application.pode/website.po
Gettext 形式のロケールのレイアウト¶
gettext PO ファイルを保存する一般的な構造の場合。
- 正規表現:
locale/(?P<language>[^/.]*)/LC_MESSAGES/(?P<component>[^/]*)\.po- 一致するファイル:
locale/cs/LC_MESSAGES/application.polocale/cs/LC_MESSAGES/website.polocale/de/LC_MESSAGES/application.polocale/de/LC_MESSAGES/website.po
複雑なファイル名¶
コンポーネントと言語の両方がファイル名に入っている場合。
- 正規表現:
src/locale/(?P<component>[^/]*)\.(?P<language>[^/.]*)\.po- 一致するファイル:
src/locale/application.cs.posrc/locale/website.cs.posrc/locale/application.de.posrc/locale/website.de.po
言語コードの反復¶
言語がパスにもファイル名にも入っている場合。
- 正規表現:
locale/(?P<language>[^/.]*)/(?P<component>[^/]*)/(?P=language)\.po- 一致するファイル:
locale/cs/application/cs.polocale/cs/website/cs.polocale/de/application/de.polocale/de/website/de.po
Android 文字列の¶
複数のファイルに分割された Android リソース文字列。
- 正規表現:
res/values-(?P<language>[^/.]*)/strings-(?P<component>[^/]*)\.xml- 一致するファイル:
res/values-cs/strings-about.xmlres/values-cs/strings-help.xmlres/values-de/strings-about.xmlres/values-de/strings-help.xml
複数のパスの一致¶
Java プロパティの翻訳を備えたマルチモジュールの Maven プロジェクト。
- 正規表現:
(?P<originalHierarchy>.+/)(?P<component>[^/]*)/src/main/resources/ApplicationResources_(?P<language>[^/.]*)\.properties- コンポーネント名:
{{ originalHierarchy }}: {{ component }}- 一致するファイル:
parent/module1/submodule/src/main/resources/ApplicationResources_fr.propertiesparent/module1/submodule/src/main/resources/ApplicationResource_es.propertiesparent/module2/src/main/resources/ApplicationResource_de.propertiesparent/module2/src/main/resources/ApplicationResource_ro.properties
ヒント
Component discovery add-on uses Weblate の内部 URL. It’s a convenient way to share
VCS setup between multiple components. Linked components use the local repository of
the main component set up by filling weblate://project/main-component
into the ソースコードのリポジトリ field (in Operations ↓ Settings ↓
Version control system) of each respective component.
This saves time with configuration and system resources too.
ヒント
Ensure the new component contains the full set of translatable languages with 不足している言語を追加.
警告
To be discovered, a new component must contain a file that matches base_file_template
and at least one file with a name that matches match -- i.e., the component must
contain a base language file and at least one existing translation. Otherwise, it will be
ignored.
一括編集¶
- アドオン ID:
weblate.flags.bulk- 設定:
q検索文字列
state翻訳状態の設定
設定できる値:¶ -1変更しない
10要編集
20翻訳済
30承認済み
add_flags追加する翻訳フラグ
remove_flags削除する翻訳フラグ
add_labels追加するラベル
remove_labels削除するラベル
- トリガー:
文字列のフラグ、ラベル、状態を一括編集します。
例:
検索クエリ |
|
|---|---|
追加するラベル |
recent |
検索クエリ |
|
|---|---|
追加する翻訳フラグ |
|
検索クエリ |
|
|---|---|
追加する翻訳フラグ |
|
未翻訳の翻訳文に "要編集" フラグを付ける¶
- アドオン ID:
weblate.flags.same_edit- 設定:
このアドオンには設定はありません。
- トリガー:
VCS からインポートされた新しい翻訳可能な文字列が原文と同一のとき、Weblate は "要編集" フラグを付けます。特に、未翻訳の文字列は原文で埋めるファイル形式では有用です。
参考
新しい原文に "要編集" フラグを付ける¶
- アドオン ID:
weblate.flags.source_edit- 設定:
このアドオンには設定はありません。
- トリガー:
新しい原文を VCS からインポートするときに、Weblate で "要編集" フラグを付けます。これにより、開発者が作成した原文を簡単に絞り込んで編集できます。
参考
新しい翻訳に "要編集" フラグを付ける¶
- アドオン ID:
weblate.flags.target_edit- 設定:
このアドオンには設定はありません。
- トリガー:
新しい翻訳可能な文章を VCS からインポートするときに、Weblate で "要編集" フラグを付けます。これにより、開発者が作成した翻訳文を簡単に絞り込んで編集できます。
参考
Flag updated translations from repository as "Needs editing"¶
- アドオン ID:
weblate.flags.target_repo_update- 設定:
このアドオンには設定はありません。
- トリガー:
Whenever a string translation is changed from the VCS, it is flagged as needing editing in Weblate. Especially useful if translation files are often updated manually or by an external service.
参考
読み取り専用の文字列を原文で埋める¶
Added in version 4.18.
- アドオン ID:
weblate.generate.fill_read_only- 設定:
このアドオンには設定はありません。
- トリガー:
文字列が編集禁止の場合は、原文を翻訳に代入します。
統計データの生成¶
- アドオン ID:
weblate.generate.generate- 設定:
filename生成ファイルの名前
template生成ファイルの内容
- トリガー:
翻訳状況の詳細情報ファイルを生成します。
Django テンプレートは、ファイル名とコンテンツの両方で使用できます。マークアップの詳細については、テンプレート用のマークアップ を確認してください。
例えば、各翻訳の概要ファイルの生成:
- 生成ファイルの名前
locale/{{ language_code }}.json- 内容
{ "language": "{{ language_code }}", "strings": "{{ stats.all }}", "translated": "{{ stats.translated }}", "last_changed": "{{ stats.last_changed }}", "last_author": "{{ stats.last_author }}", }
事前に原文を翻訳に代入¶
Added in version 4.11.
- アドオン ID:
weblate.generate.prefill- 設定:
このアドオンには設定はありません。
- トリガー:
初期値として原文を翻訳に代入する。
コンポーネント内の全ての未翻訳の文字列には原文が入り、要編集になります。これは、翻訳ファイルに空の文字列を含めることができない場合に使用します。
疑似ロケールの生成¶
Added in version 4.5.
- アドオン ID:
weblate.generate.pseudolocale- 設定:
source原文
target翻訳先
この言語の翻訳は全て上書きされます
prefixPrepended static text
var_prefixPrepended variable text
suffixAppended static text
var_suffixAppended variable text
var_multiplierVariable text multiplier
How many times to repeat the variable text depending on the length of the source string.
include_readonly翻訳禁止の文字列を含める
- トリガー:
原文に接頭辞と接尾辞を自動的に追加して、翻訳を生成します。
疑似ロケールは、翻訳対象になっていない文字列を探すのに便利です。すべての翻訳可能な原文を変更したあと、アプリケーションを疑似ロケールで実行して、置き換えられていない文字列を簡単に見つけることができます。
また、現地語化したときにレイアウトが崩れるかもしれない文字列も発見できます。
Using the variable parts makes it possible to look for strings which might not
fit into the user interface after the localization - it extends the text based
on the source string length. The variable texts are repeated by length of the
text multiplied by the multiplier. For example Hello world with variable
text _ and variable multiplier of 1 becomes Hello world___________ -
the text is repeated once for each character in the source string.
文字列の生成に使用されるパターン:
Prepended static text Prepended variable text Source string Appended variable text Appended static text
ヒント
テストには実際の言語を使用できますが、 Weblate には専用の疑似ロケール( en_XA と ar_XB )が用意されています。
ヒント
このアドオンを使用して、既存の言語または類似の言語の新しい言語への翻訳を開始できます。コンポーネントに翻訳を追加したら、アドオンに従います。例: fr があり、fr_CA の翻訳を開始する場合、ソースに fr、ターゲットには fr_CA を設定し、接頭辞と接尾辞を空白にするだけです。
コピー後に作成した翻訳を Weblate に変更されないように、新しい翻訳が入力されたらアドオンをアンインストールしてください。
コメント内の貢献者情報¶
- アドオン ID:
weblate.gettext.authors- 設定:
このアドオンには設定はありません。
- トリガー:
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- 設定:
このアドオンには設定はありません。
- トリガー:
新しい翻訳を追加すると、configure、configure.in、または任意の configure.ac ファイルの ALL_LINGUAS 変数を更新します。
gettext 出力のカスタマイズ¶
Removed in version 5.13: Replaced by File format parameters.
LINGUAS ファイルの更新¶
- アドオン ID:
weblate.gettext.linguas- 設定:
このアドオンには設定はありません。
- トリガー:
新しい翻訳が追加されたときに LINGUAS ファイルを更新します。
MO ファイルの生成¶
- アドオン ID:
weblate.gettext.mo- 設定:
path生成された MO ファイルのパス
指定しない場合は、PO ファイルの場所を使用します。
fuzzy要編集な文字列を含める
要編集な文字列(あいまい)は、通常、翻訳として使用できる状態ではありません。
- トリガー:
変更された PO ファイルごとに自動的に MO ファイルを生成します。
MO ファイルが生成される場所はカスタマイズでき、フィールドは テンプレート用のマークアップ を使用します。
注釈
翻訳が削除されると、その PO ファイルはリポジトリから削除されますが、このアドオンによって生成された MO ファイルは削除されません。 MO ファイルは、上流リポジトリから手動で削除してください。
POT に合わせて PO ファイルを更新 (msgmerge)¶
バージョン 5.13 で変更: Settings configuration has been moved to File format parameters.
- アドオン ID:
weblate.gettext.msgmerge- 設定:
このアドオンには設定はありません。
- トリガー:
msgmerge を使用して POT ファイル( 新しい翻訳のテンプレート で設定)に整合するように、すべての PO ファイル( ファイル マスク で設定)を更新します。
This add-on is essential when working with gettext PO files where the POT (template) file is updated with new strings or changes to existing strings. When the POT file is updated in the repository, this add-on automatically merges those changes into all language PO files, ensuring that:
New translatable strings appear in all languages
Removed strings are marked as obsolete
Modified strings are marked as needing review (fuzzy)
Most msgmerge command-line options can be set up through file format parameters configuration.
Git コミットのスカッシュ¶
- アドオン ID:
weblate.git.squash- 設定:
squashコミットのスカッシュ
設定できる値:¶ allすべてのコミットを 1 つに統合
language言語別
fileファイル別
author翻訳者別
append_trailersスカッシュしたコミット メッセージに翻訳者情報を追加する
トレーラ行とは、RFC 822 のメール ヘッダーに似た "Co-authored-by: …" のような行のことで、コミットメッセージの自由形式部分の末尾につきます。
commit_messageコミットメッセージ
このコミットメッセージは、スカッシュしたコミットのコミットメッセージを結合する代わりに使用されます。
- トリガー:
変更をプッシュする前に、Git コミットをスカッシュします。
ヒント
To avoid unnecessary conflicts, it is recommended to configure automatic receiving of upstream changes by webhooks or API, see リポジトリの更新.
変更をプッシュする前に Git コミットの内容を簡略化するモードの種類:
すべてのコミットを 1 つに統合
言語別
ファイル別
翻訳者別
元々のコミット メッセージは保持されますが、翻訳者別 を選択するか、コミット メッセージに含めるようカスタマイズしない限り、翻訳者の情報は失われます。
元々のコミット メッセージは、オプションを使用すると独自のコミット メッセージに書き換えられます。
オプションを使用して、元のコミット メッセージからトレーラー(Co-authored-by: … のような行)を切り取り、スカッシュコミットのコミットメッセージの末尾に追加できます。これにより、共同翻訳者全員が、Co-authored-by: として、適切にクレジットされます。
JSON 出力形式のカスタマイズ¶
バージョン 5.12 で変更: Avoid spaces after separators option added.
Removed in version 5.13: Replaced by File format parameters.
Java プロパティ ファイルの整形¶
- アドオン ID:
weblate.properties.sort- 設定:
case_sensitive大文字と小文字を区別したキーの並べ替えを有効にする
- トリガー:
Java プロパティ ファイルを整形およびソートします。
改行を Unix の改行コードに統一する。
Unicode エスケープ シーケンスを大文字に整形する(存在する場合)。
空白行とコメントを削除する。
文字列をキーでソートする。
重複する文字列を削除する。
古いコメントの削除¶
- アドオン ID:
weblate.removal.comments- 設定:
age保存日数
- トリガー:
コメントを削除するまでの期間を設定します。
これは、古くなった可能性のある古いコメントを削除する場合に便利です。コメントが古いからといって、その重要性が失われたわけではないので、注意して使用してください。
古い提案の削除¶
- アドオン ID:
weblate.removal.suggestions- 設定:
age保存日数
votes投票数のしきい値
削除のしきい値を指定します。このフィールドは、投票ができない設定の場合は無効です。
- トリガー:
提案を削除するまでの期間を設定します。
与えられた時間枠内に必要な賛成票を獲得できなかった提案への投票(参照: 相互評価)を削除するのに大変便利です。
RESX ファイルの更新¶
- アドオン ID:
weblate.resx.update- 設定:
このアドオンには設定はありません。
- トリガー:
すべての翻訳ファイルを、上流にあるモノリンガル用の基礎となる翻訳ファイルと整合するように更新します。使われない文字列は削除され、新しい文字列は原文をコピーして追加されます。
ヒント
古い翻訳キーのみを削除する場合は、翻訳ファイルのクリーンアップ を使用します。
Slackウェブフック¶
Added in version 5.12.
- アドオン ID:
weblate.webhook.slack- 設定:
webhook_urlウェブフック URL
events変更イベント
設定できる値:¶ 0リソース更新
1翻訳完了
2翻訳の変更
3コメントの追加
4提案の追加
5翻訳追加
6自動翻訳された文字列
7提案の採用
8翻訳の差し戻し
9翻訳のアップロード
13原文追加
14コンポーネントのロック
15コンポーネントのアンロック
17変更のコミット
18変更のプッシュ
19リポジトリのリセット
20リポジトリ統合
21リポジトリのリベース
22リポジトリのマージに失敗
23リポジトリのリベースに失敗
24解析に失敗
25翻訳の削除
26提案の削除
27翻訳の置換
28リポジトリのプッシュに失敗
29クリーンアップ処理での提案の削除
30原文の変更
31文字列追加
32状態の一括変更
33アクセス制御の変更
34ユーザー追加
35ユーザー削除
36翻訳の承認
37要編集としてマーク
38コンポーネント削除
39プロジェクト削除
41プロジェクト名変更
42コンポーネント名変更
43コンポーネントの移動
45貢献者加入
46お知らせ掲載
47警告が発生しました
48言語追加
49言語追加要求
50プロジェクト作成
51コンポーネント作成
52ユーザー招待
53リポジトリ通知受信
54ファイルアップロードによる翻訳置き換え
55ライセンスの変更
56貢献者ライセンス同意書の変更
57スクリーンショット追加
58スクリーンショット アップロード
59リポジトリでの文字列の更新
60アドオンのインストール
61アドオンの設定変更
62アドオンのアンインストール
63文字列削除
64コメント削除
65コメント解決
66解説の更新
67カテゴリー削除
68カテゴリー名変更
69カテゴリー移動
70文字列の保存失敗
71リポジトリに文字列の追加
72アップロードでの文字列の更新
73アップロードでの文字列の追加
74原文アップロードによる翻訳更新
75コンポーネント翻訳完了
76検査の強制を適用
77変更の反映
78ファイルアップロード
79Extra flags updated
80ファイルをアップロードしました
81フォントを変更しました
82フォントを削除しました
83Forced synchronization of translations
84Forced rescan of translations
- トリガー:
選択したイベントに基づいてSlackチャンネルに通知を送信します。
警告
The notification content might show HTML tags. This is a known issue that will be soon addressed; see https://github.com/WeblateOrg/weblate/issues/15056.
ヒント
To obtain a webhook URL, follow the steps outlined in the Slack Incoming Webhooks documentation
ウェブフック¶
Added in version 5.11.
- アドオン ID:
weblate.webhook.webhook- 設定:
webhook_urlウェブフック URL
secret秘密鍵
base64 エンコード文字列
events変更イベント
設定できる値:¶ 0リソース更新
1翻訳完了
2翻訳の変更
3コメントの追加
4提案の追加
5翻訳追加
6自動翻訳された文字列
7提案の採用
8翻訳の差し戻し
9翻訳のアップロード
13原文追加
14コンポーネントのロック
15コンポーネントのアンロック
17変更のコミット
18変更のプッシュ
19リポジトリのリセット
20リポジトリ統合
21リポジトリのリベース
22リポジトリのマージに失敗
23リポジトリのリベースに失敗
24解析に失敗
25翻訳の削除
26提案の削除
27翻訳の置換
28リポジトリのプッシュに失敗
29クリーンアップ処理での提案の削除
30原文の変更
31文字列追加
32状態の一括変更
33アクセス制御の変更
34ユーザー追加
35ユーザー削除
36翻訳の承認
37要編集としてマーク
38コンポーネント削除
39プロジェクト削除
41プロジェクト名変更
42コンポーネント名変更
43コンポーネントの移動
45貢献者加入
46お知らせ掲載
47警告が発生しました
48言語追加
49言語追加要求
50プロジェクト作成
51コンポーネント作成
52ユーザー招待
53リポジトリ通知受信
54ファイルアップロードによる翻訳置き換え
55ライセンスの変更
56貢献者ライセンス同意書の変更
57スクリーンショット追加
58スクリーンショット アップロード
59リポジトリでの文字列の更新
60アドオンのインストール
61アドオンの設定変更
62アドオンのアンインストール
63文字列削除
64コメント削除
65コメント解決
66解説の更新
67カテゴリー削除
68カテゴリー名変更
69カテゴリー移動
70文字列の保存失敗
71リポジトリに文字列の追加
72アップロードでの文字列の更新
73アップロードでの文字列の追加
74原文アップロードによる翻訳更新
75コンポーネント翻訳完了
76検査の強制を適用
77変更の反映
78ファイルアップロード
79Extra flags updated
80ファイルをアップロードしました
81フォントを変更しました
82フォントを削除しました
83Forced synchronization of translations
84Forced rescan of translations
- トリガー:
Standard Webhooks 仕様に準拠して、選択したイベントに基づいて外部サービスに通知を送信します。
The request payload complies with the Weblate Messaging schema.
The OpenAPI description can also be found at /api/docs/.
Sample request body:
{
"change_id": 99,
"action": "Translation changed",
"timestamp": "2019-08-24T14:15:22Z",
"target": "Nazdar svete!",
"old": "Nazdar!",
"source": "Hello, world",
"url": "/translate/project-slug/component-slug/cs/?checksum=46add148a53cab6f",
"author": "author-username",
"user": "user-username",
"project": "project-slug",
"component": "component-slug",
"translation": "cs"
}
Sample request body with categories:
{
"change_id": 8910,
"action": "Component renamed",
"timestamp": "2025-06-11T07:15:09Z",
"target": ["new-name"],
"old": ["component-slug"],
"url": "/projects/project-slug/parent-category/child-category/sub-category/component-slug/",
"user": "testuser",
"project": "project-slug",
"component": "component-slug",
"category": [
"sub-category",
"child-category",
"parent-category"
]
}
Sample request headers:
{
"webhook-id": "7f1c5477f6275a69af7b83236c20cb1a",
"webhook-timestamp": "1748505623.044281",
"webhook-signature": "v1,Ceo5qEr07ixe2NLpvHk3FH9bwy/WavXrAFQ/9tdO6mc="
}
The webhook-signature is a space separated list of HMAC signatures generated using the secret string,
the request payload, the webhook-timestamp, and the webhook-id. This ensures the authenticity
and integrity of the webhook request.
To verify a request, you can use the Webhook.verify method from the standardwebhooks library
or an implementation of the "Standard Webhooks Specification".
XML 出力形式のカスタマイズ¶
Added in version 4.15.
Removed in version 5.13: Replaced by File format parameters.
YAML 出力形式のカスタマイズ¶
Removed in version 5.13: Replaced by File format parameters.
アドオン一覧のカスタマイズ¶
アドオンの一覧は 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 __future__ import annotations
from typing import ClassVar
from django.utils.translation import gettext_lazy
from weblate.addons.events import AddonEvent
from weblate.addons.scripts import BaseScriptAddon
class ExamplePreAddon(BaseScriptAddon):
# Event used to trigger the script
events: ClassVar[set[AddonEvent]] = {
AddonEvent.EVENT_PRE_COMMIT,
}
# Name of the addon, has to be unique
name = "weblate.example.pre"
# Verbose name and long description
verbose = gettext_lazy("Execute script before commit")
description = gettext_lazy("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"
インストールの方法は Custom quality checks, add-ons, automatic suggestions and auto-fixes を確認してください。
スクリプトは、指定したコンポーネントの VCS リポジトリのルートを、カレント ディレクトリとして実行されます。
さらに利用可能な環境変数:
- WL_VCS¶
使用中のバージョン管理システム。
- WL_REPO¶
上流リポジトリの URL。
- WL_PATH¶
VCS リポジトリへの絶対パス。
- WL_BRANCH¶
現在のコンポーネントに設定したリポジトリのブランチ。
- WL_FILEMASK¶
現在のコンポーネントのファイルマスク。
- WL_TEMPLATE¶
モノリンガル翻訳用のテンプレートのファイル名(空欄でも可)。
- WL_NEW_BASE¶
新しい翻訳の作成用のファイル名(空欄でも可)。
- WL_FILE_FORMAT¶
現在のコンポーネントで使用するファイル形式。
- WL_LANGUAGE¶
現在実行中の翻訳言語(コンポーネント レベルのフックでは使用できません)。
- WL_PREVIOUS_HEAD¶
更新前の HEAD(更新後のフックを実行した後にのみ利用可能)。
- WL_COMPONENT_SLUG¶
コンポーネント URL の設定時に使用するスラッグ。
- WL_PROJECT_SLUG¶
プロジェクト URL の設定時に使用するスラッグ。
- WL_COMPONENT_NAME¶
コンポーネント名。
- WL_PROJECT_NAME¶
プロジェクト名。
- WL_COMPONENT_URL¶
コンポーネント URL。
- WL_ENGAGE_URL¶
プロジェクト参加 URL。
参考
リポジトリを更新後の処理¶
VCS の上流ソースが変更されたときに翻訳ファイルを更新するために使用できます。これを実現するには、 Weblate は VCS にコミットされたファイルだけを確認するので、スクリプトの一部として変更をコミットすることが必要であることに注意してください。
Gulp による実行例:
#! /bin/sh
gulp --gulpfile gulp-i18n-extract.js
git commit -m 'Update source strings' src/languages/en.lang.json
翻訳のコミット前処理¶
コミット スクリプトを使用して、翻訳文をリポジトリにコミットする前に、翻訳文を自動的に変更します。
これには、唯一の引数として現在の翻訳のファイル名が渡されます。
アドオン活動ログの記録¶
アドオン活動ログは、アドオンの実行を記録し、アドオンの活動を追跡するために使用できます。
ログは、ADDON_ACTIVITY_LOG_EXPIRY を設定して、一定の時間経過後に削除できます。