アドオン

バージョン 2.19 で追加.

アドオンを使用すると、翻訳ワークフローの変更および自動化ができます。管理者は各翻訳コンポーネントの 管理アドオン メニューからアドオンの追加と管理ができます。

ヒント

You can also configure add-ons using API, DEFAULT_ADDONS, or install_addon.

../_images/addons.png

標準搭載のアドオン

自動翻訳

バージョン 3.9 で追加.

アドオン ID

weblate.autotranslate.autotranslate

設定

mode

自動翻訳モード

設定できる値:

suggest -- Add as suggestion

translate -- Add as translation

fuzzy -- Add as needing edit

filter_type

Search filter

設定できる値:

all -- All strings

nottranslated -- Not translated strings

todo -- Strings needing action

fuzzy -- Strings marked for edit

check:inconsistent -- Failed check: Inconsistent

auto_source

Automatic translation source

設定できる値:

others -- Other translation components

mt -- Machine translation

component

コンポーネント

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 内で複数の翻訳コンポーネントを追跡できます。

照合は、複雑な設定ができる正規表現を使用して行われますが、そのためにはある程度の知識が必要です。一般的な使用例については、アドオンのヘルプ セクションを確認してください。

保存 をクリックすると、一致するコンポーネントのプレビューを表示し、設定が実際のニーズに合っているか確認する方法:

../_images/addon-discovery.png

ヒント

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 ManageSettingsVersion 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 change

10 -- Needs editing

20 -- Translated

30 -- Approved

add_flags

翻訳フラグの追加

remove_flags

翻訳フラグの削除

add_labels

ラベルの追加

remove_labels

ラベルの削除

トリガー

component update

文字列のフラグ、ラベル、状態を一括編集します。

NOT has:label という検索クエリを使用してラベル付けを自動化し、すべての文字列に必要なラベルが付くまでラベルを追加します。Weblate メタデータに対する他の自動操作も実行できます。

例:

Label new strings automatically

検索クエリ

NOT has:label

ラベルの追加

最近の

すべての アプリ ストア メタデータ ファイル 変更ログ エントリを読み取り専用にマークする

検索クエリ

language:en AND key:changelogs/

翻訳フラグの追加

read-only

未翻訳の翻訳文に "要編集" フラグを付ける

バージョン 3.1 で追加.

アドオン ID

weblate.flags.same_edit

設定

このアドオンには設定はありません。

トリガー

unit post-create

VCS からインポートされた新しい翻訳可能な文字列が原文と一致するたびに、Weblate は "要編集" フラグを付けます。特に、未翻訳の文字列に原文が含まれるファイル形式では分かりやすくなります。

ヒント

You might also want to tighthen the 未翻訳の翻訳文 check by adding strict-same flag to 翻訳フラグ.

新しい原文に "要編集" フラグを付ける

アドオン 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_XAar_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

新しい翻訳を追加すると、configureconfigure.in、または任意の configure.ac ファイルの ALL_LINGUAS 変数を更新します。

gettext 出力のカスタマイズ

アドオン ID

weblate.gettext.customize

設定

width

長い行を折り返す

デフォルトでは、gettext は 77 文字または改行で行を折り返します。--no-wrap パラメータを指定すると、改行でのみ折り返されます。

設定できる値:

77 -- Wrap lines at 77 characters and at newlines

65535 -- 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 one

language -- Per language

file -- Per file

author -- Per author

append_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 -- Spaces

tabs -- 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 chars

100 -- Wrap lines at 100 chars

120 -- Wrap lines at 120 chars

180 -- Wrap lines at 180 chars

65535 -- No line wrapping

line_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

翻訳のコミット前処理

コミット スクリプトを使用して、翻訳文をリポジトリにコミットする前に、翻訳文を自動的に変更します。

これには、現在の翻訳のファイル名を元にした引数を一つ渡します。