アドオン
バージョン 2.19 で追加.
アドオンを使用すると、翻訳ワークフローの変更および自動化ができます。管理者は各翻訳コンポーネントの 管理 ↓ アドオン メニューからアドオンの追加と管理ができます。
ヒント
You can also configure add-ons using API,
DEFAULT_ADDONS
, or install_addon
.

標準搭載のアドオン
自動翻訳
バージョン 3.9 で追加.
- アドオン ID
weblate.autotranslate.autotranslate
- 設定
mode
自動翻訳モード
設定できる値:
suggest
-- Add as suggestiontranslate
-- Add as translationfuzzy
-- Add as needing editfilter_type
Search filter
設定できる値:
all
-- All stringsnottranslated
-- Not translated stringstodo
-- Strings needing actionfuzzy
-- Strings marked for editcheck:inconsistent
-- Failed check: Inconsistentauto_source
Automatic translation source
設定できる値:
others
-- Other translation componentsmt
-- Machine translationcomponent
コンポーネント
Enter component to use as source, keep blank to use all components in current project.
engines
機械翻訳エンジン
threshold
スコアしきい値
- トリガー
コンポーネントの更新、毎日
機械翻訳または他のコンポーネントを使用して文字列を自動的に翻訳します。
起動条件:
コンポーネントに新しい文字列が追加されたとき。
コンポーネントごとに毎月 1 回。
BACKGROUND_TASKS
から設定します。
JavaScript 現地語化 CDN
バージョン 4.2 で追加.
- アドオン ID
weblate.cdn.cdnjs
- 設定
threshold
翻訳率のしきい値
サーバに置く翻訳のしきい値。
css_selector
CSS セレクタ
翻訳可能な要素を検出する CSS セレクタ。
cookie_name
言語 Cookie 名
言語設定を保存する Cookie の名前。
files
HTMLファイルから文字列を抽出
現在のリポジトリ内のファイル名のリスト、または翻訳可能な文字列を解析するリモート URL。
- トリガー
daily, repository post-commit, repository post-update
JavaScript または HTML の現地語化用に、翻訳をコンテンツ配信ネットワークに公開します。
静的な HTML ページを現地語化したり、JavaScript コードで翻訳を読み込むために使用できます。
HTML のページに挿入して、翻訳を可能にするコンポーネント専用の URL を生成します。詳細については、Translating HTML and JavaScript using Weblate CDN を確認してください。
空白文字列の削除
バージョン 4.4 で追加.
- アドオン ID
weblate.cleanup.blank
- 設定
このアドオンには設定はありません。
- トリガー
repository post-commit, repository post-update
翻訳ファイルから翻訳されていない文字列を削除します。
翻訳ファイルに空の文字列を含ませたくない場合使用します(例: 翻訳ライブラリにおいて原文に戻すのではなく、空の文字列が不足していると表示させる場合)。
翻訳ファイルのクリーンアップ
- アドオン ID
weblate.cleanup.generic
- 設定
このアドオンには設定はありません。
- トリガー
repository pre-commit, repository post-update
単一言語の基本ファイルに合わせてすべての翻訳ファイルを更新します。ほとんどのファイル形式で、基本ファイルに存在しない、無効な翻訳キーを削除します。
不足している言語を追加
- アドオン ID
weblate.consistency.languages
- 設定
このアドオンには設定はありません。
- トリガー
daily, repository post-add
プロジェクト内のすべてのコンポーネントで一貫した言語のセットが使用されるようにします。
足りない言語は、24 時間ごとに 1 回、さらに新しい言語を Weblate に追加したときに確認します。
他のほとんどのアドオンとは異なり、このアドオンはプロジェクト全体に影響します。
ヒント
新しく追加した文字列を 自動翻訳 アドオンで翻訳します。
コンポーネントの検出
- アドオン ID
weblate.discovery.discovery
- 設定
match
翻訳ファイルを照合する正規表現
file_format
ファイル形式
name_template
コンポーネント名のカスタマイズ
base_file_template
単一言語の基本ファイル名の定義
バイリンガル翻訳の場合は、何も設定しないでください。
new_base_template
新しい翻訳に対する基本ファイルの定義
新しい翻訳の作成に使用するファイルのファイル名。gettext では .pot ファイルを選択します。
language_regex
言語フィルター
ファイルマスクのスキャン時に、翻訳ファイルをフィルタ処理する正規表現。
copy_addons
アドオンを、メイン コンポーネントから新しく作成したコンポーネントにクローンする
remove
存在しないファイルのコンポーネントの削除
confirm
上記の一致が正しいかを確認する
- トリガー
リポジトリの更新後
バージョン管理システムのファイル変更に基づいて、プロジェクトコンポーネントを自動的に追加または削除します。
VCS を更新するたびに起動し、その他は、import_project
管理コマンドと同じです。この方法で、1 つの VCS 内で複数の翻訳コンポーネントを追跡できます。
照合は、複雑な設定ができる正規表現を使用して行われますが、そのためにはある程度の知識が必要です。一般的な使用例については、アドオンのヘルプ セクションを確認してください。
保存 をクリックすると、一致するコンポーネントのプレビューを表示し、設定が実際のニーズに合っているか確認する方法:

ヒント
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 Manage ↓ Settings ↓
Version control system) of each respective component.
This saves time with configuration and system resources too.
一括編集
バージョン 3.11 で追加.
- アドオン ID
weblate.flags.bulk
- 設定
q
検索文字列
state
設定する状態
設定できる値:
-1
-- Do not change10
-- Needs editing20
-- Translated30
-- Approvedadd_flags
翻訳フラグの追加
remove_flags
翻訳フラグの削除
add_labels
ラベルの追加
remove_labels
ラベルの削除
- トリガー
component update
文字列のフラグ、ラベル、状態を一括編集します。
NOT has:label
という検索クエリを使用してラベル付けを自動化し、すべての文字列に必要なラベルが付くまでラベルを追加します。Weblate メタデータに対する他の自動操作も実行できます。
例:
検索クエリ |
|
---|---|
ラベルの追加 |
最近の |
検索クエリ |
|
---|---|
翻訳フラグの追加 |
|
未翻訳の翻訳文に "要編集" フラグを付ける
バージョン 3.1 で追加.
- アドオン ID
weblate.flags.same_edit
- 設定
このアドオンには設定はありません。
- トリガー
unit post-create
VCS からインポートされた新しい翻訳可能な文字列が原文と一致するたびに、Weblate は "要編集" フラグを付けます。特に、未翻訳の文字列に原文が含まれるファイル形式では分かりやすくなります。
新しい原文に "要編集" フラグを付ける
- アドオン ID
weblate.flags.source_edit
- 設定
このアドオンには設定はありません。
- トリガー
unit post-create
新しい原文を VCS からインポートすると、Weblate は毎回 "要編集" フラグを付けます。このため、開発者が作成した原文を簡単にフィルターしたり、編集したりできます。
新しい翻訳に "要編集" フラグを付ける
- アドオン ID
weblate.flags.target_edit
- 設定
このアドオンには設定はありません。
- トリガー
unit post-create
新しい翻訳可能な文章を VCS からインポートすると、Weblate は毎回 "要編集" フラグを付けます。これにより、開発者が作成した翻訳文を簡単にフィルターしたり、編集したりできます。
統計データの生成
- アドオン ID
weblate.generate.generate
- 設定
filename
生成ファイルの名前
template
生成ファイルの内容
- トリガー
repository 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 }}", }
疑似言語の生成
- アドオン ID
weblate.generate.pseudolocale
- 設定
source
原文
target
翻訳の対象
prefix
文字列の接頭辞
suffix
文字列の接尾辞
- トリガー
コンポーネントの更新、毎日
原文に接頭辞と接尾辞を自動的に追加して、翻訳を生成します。
擬似言語は、翻訳の準備ができていない文字列を検索するのに便利です。これは、すべての翻訳可能な原文を変更したあと、アプリケーションを擬似言語で実行して、変更していない文字列を簡単に見つけ出します。
Finding strings whose localized counterparts might not fit the layout is also possible.
ヒント
テストには実際の言語を使用できますが、 Weblate には専用の疑似言語( en_XA と ar_XB )があります。
ヒント
You can use this add-on to start translation to a new locale of an existing language or similar language. Once you add the translation to the component, follow to the add-on. Example: If you have fr and want to start fr_CA translation, simply set fr as the source, fr_CA as the target, and leave the prefix and suffix blank.
Uninstall the add-on once you have the new translation filled to prevent Weblate from changing the translations made after the copying.
コメント内の貢献者情報
- アドオン ID
weblate.gettext.authors
- 設定
このアドオンには設定はありません。
- トリガー
repository pre-commit
PO ファイルヘッダのコメントを更新し、貢献者名と貢献した西暦を追加します。
The PO file header will look like this:
# Michal Čihař <michal@cihar.com>, 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
- 設定
このアドオンには設定はありません。
- トリガー
repository post-add, daily
新しい翻訳を追加すると、configure
、configure.in
、または任意の configure.ac
ファイルの ALL_LINGUAS 変数を更新します。
gettext 出力のカスタマイズ
- アドオン ID
weblate.gettext.customize
- 設定
width
長い行を折り返す
デフォルトでは、gettext は 77 文字または改行で行を折り返します。--no-wrap パラメータを指定すると、改行でのみ折り返されます。
設定できる値:
77
-- Wrap lines at 77 characters and at newlines65535
-- Only wrap lines at newlines-1
-- No line wrapping- トリガー
storage post-load
改行処理など、 gettext の出力動作をカスタマイズできます。
使用できるオプション:
77 文字または改行で行を折り返す
改行でのみ行を折り返す
行を折り返さない
注釈
デフォルトでは、gettext は 77 文字または改行で行を折り返します。--no-wrap
パラメータを指定すると、改行でのみ折り返されます。
LINGUAS ファイルの更新
- アドオン ID
weblate.gettext.linguas
- 設定
このアドオンには設定はありません。
- トリガー
repository post-add, daily
新しい翻訳が追加されたときに LINGUAS ファイルを更新します。
MO ファイルの生成
- アドオン ID
weblate.gettext.mo
- 設定
path
生成された MO ファイルのパス
指定しない場合は、PO ファイルの場所を使用します。
- トリガー
repository pre-commit
変更された PO ファイルごとに自動的に MO ファイルを生成します。
MO ファイルが生成される場所はカスタマイズでき、フィールドは テンプレート用のマークアップ を使用します。
POT に合わせて PO ファイルを更新 (msgmerge)
- アドオン ID
weblate.gettext.msgmerge
- 設定
previous
翻訳済み文字列の以前の msgid を保持する
no_location
翻訳済みの文字列の場所を削除する
fuzzy
あいまい検索を使用する
- トリガー
リポジトリの更新後
msgmerge を使用して POT ファイル( File mask で設定)に一致するように、すべての PO ファイル( 新しい翻訳のテンプレート で設定)を更新します。
新しい変更が upstream リポジトリから新しい変更をプルするたびに起動します。大部分の msgmerge のコマンド ライン オプションはアドオンの設定から設定できます。
Git コミットの簡略化
- アドオン ID
weblate.git.squash
- 設定
squash
スカッシュ コミット
設定できる値:
all
-- All commits into onelanguage
-- Per languagefile
-- Per fileauthor
-- Per authorappend_trailers
簡略化したコミット メッセージに翻訳者情報を追加する
トレーラ行とは、RFC 822 のメール ヘッダに似た "Co-authored-by: …" のような行のことで、コミットメッセージの自由形式部分の末尾につきます。
commit_message
コミットメッセージ
このコミットメッセージは、スカッシュしたコミットのコミットメッセージを結合する代わりに使用されます。
- トリガー
repository post-commit
変更をプッシュする前に、Git コミットをスカッシュします。
変更をプッシュする前に Git コミットの内容を簡略化するモードの種類:
バージョン 3.4 で追加.
すべてのコミットを 1 つにまとめる
言語別
ファイル別
バージョン 3.5 で追加.
翻訳者別
元々のコミット メッセージは保持されますが、Per author を選択するか、コミット メッセージに含めるようカスタマイズしない限り、翻訳者情報は失われます。
バージョン 4.1 で追加.
元々のコミット メッセージは、オプションで独自のコミット メッセージに上書きできます。
オプションで、元のコミット メッセージから翻訳者情報( Co-authored-by: …
のようなコミット行)を削除し、簡略化したコミット メッセージの最後に追加できます。これにより、すべての翻訳者に適切な Co-authored-by:
の署名が生成されます。
JSON 出力形式のカスタマイズ
- アドオン ID
weblate.json.customize
- 設定
sort_keys
JSON キーの並べ替え
indent
JSON 形式のインデント
style
JSON のインデントスタイル
設定できる値:
spaces
-- Spacestabs
-- Tabs- トリガー
storage post-load
インデント処理や並べ替えなど、JSON 出力形式の変更ができます。
Java プロパティ ファイルの整形
- アドオン ID
weblate.properties.sort
- 設定
このアドオンには設定はありません。
- トリガー
repository pre-commit
Java プロパティ ファイルをソートします。
古いコメントの削除
バージョン 3.7 で追加.
- アドオン ID
weblate.removal.comments
- 設定
age
保存日数
- トリガー
daily
コメントを削除するまでの期間を設定します。
これは、古くなった可能性のある古いコメントを削除する場合に便利です。コメントが古いからといって、その重要性が失われたわけではないので、注意して使用してください。
古い提案の削除
バージョン 3.7 で追加.
- アドオン ID
weblate.removal.suggestions
- 設定
age
保存日数
votes
投票数のしきい値
削除のしきい値を指定します。このフィールドは、投票ができない設定の場合は無効です。
- トリガー
daily
提案を削除するまでの期間を設定します。
与えられた時間枠内に必要な賛成票を獲得できなかった提案を、削除する提案投票(参照: 相互評価)に関連して大変便利です。
RESX ファイルの更新
バージョン 3.9 で追加.
- アドオン ID
weblate.resx.update
- 設定
このアドオンには設定はありません。
- トリガー
リポジトリの更新後
すべての翻訳ファイルを更新して、上流のモノリンガル基本ファイルに合わせます。使われなくなった文字列は削除され、新しい文字列は原文のコピーとして追加されます。
ヒント
古い翻訳キーのみを削除する場合は、翻訳ファイルのクリーンアップ を使用します。
YAML 出力形式のカスタマイズ
バージョン 3.10.2 で追加.
- アドオン ID
weblate.yaml.customize
- 設定
indent
YAML 形式のインデント
width
長い行を折り返す
設定できる値:
80
-- Wrap lines at 80 chars100
-- Wrap lines at 100 chars120
-- Wrap lines at 120 chars180
-- Wrap lines at 180 chars65535
-- No line wrappingline_break
改行コード
設定できる値:
dos
-- DOS (\r\n)unix
-- UNIX (\n)mac
-- MAC (\r)- トリガー
storage post-load
行の長さや改行など、YAML 出力形式の変更ができます。
アドオン一覧のカスタマイズ
アドオンの一覧は WEBLATE_ADDONS
で設定します。アドオンを追加するには、設定に絶対クラス名を含めるだけです。
アドオンの作成
独自のアドオンも作成できます。サブクラス weblate.addons.base.BaseAddon
を作成してアドオンのメタデータを定義し、処理を行うコールバックを実装します。
参考
アドオンから実行するスクリプト
アドオンは、外部スクリプトを実行するためにも使用できます。以前は Weblate に統合されていましたが、現在はスクリプトをアドオンでラップするコードの記述が必要です。
#
# Copyright © 2012 - 2021 Michal Čihař <michal@cihar.com>
#
# This file is part of Weblate <https://weblate.org/>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
"""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 descrption
verbose = _("Execute script before commit")
description = _("This addon 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
Upstream リポジトリの 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 の upstream ソースが変更されたときに翻訳ファイルを更新するために使用できます。これを実現するには、 Weblate は VCS にコミットされたファイルだけを確認するので、スクリプトの一部として変更をコミットする必要があることに注意してください。
以下のコードを使用した、Gulp の例:
#! /bin/sh
gulp --gulpfile gulp-i18n-extract.js
git commit -m 'Update source strings' src/languages/en.lang.json
翻訳のコミット前処理
コミット スクリプトを使用して、翻訳文をリポジトリにコミットする前に、翻訳文を自動的に変更します。
これには、現在の翻訳のファイル名を元にした引数を一つ渡します。