検査と修正#

品質検査は、一般的な翻訳ミスを発見しやすくして、翻訳が整形された状態であることを保証します。誤検出の場合は、その検査を除外にできます。

保存した翻訳が検査で不合格となった場合に、すぐにユーザーに警告を表示します。表示例:

../_images/checks.png

自動修正#

品質検査 に加えて、Weblate は翻訳した文字列の一般的な翻訳ミスを自動的に修正できます。翻訳ミスを誘発しないよう設定には注意をしてください。

参考

AUTOFIX_LIST

文末の省略記号の置き換え#

原文と一致するように、末尾のドット(...)を省略記号()に置き換えます。

ゼロ幅スペースの削除#

通常、ゼロ幅のスペースは、翻訳には不要です。この修正により、原文の文字列にも存在しない限り、ゼロ幅のスペースが削除されます。

制御文字の削除#

翻訳から制御文字を削除します。

デーヴァナーガリー文字のダンダ句読点#

デーバナーガリー文字の間違ったピリオドを、デーバナーガリー文字のダンダ句読点()に置き換えます。

安全でない HTML のクリーンアップ#

safe-html フラグを有効にすると、HTML マークアップがサニタイズされます。

文頭と文末の空白の修正#

先頭と末尾の空白を原文と一致させます。この処理は、ignore-begin-space および ignore-end-space フラグを使用して、文字列の処理部分を省略するように設定します。

品質検査#

Weblate では、文字列に対してさまざまな品質検査をしています。次のセクションでは、すべての検査項目について詳しく説明します。言語固有の検査もあります。誤検出が起こる場合はバグを報告してください。

翻訳時の検査#

翻訳文を変更するたびに検査をするため、翻訳者は高品質な翻訳を維持できます。

BBCode マークアップ#

概要:

翻訳文の BBCode が原文と不一致

対象範囲:

翻訳済みの文字列

検査クラス:

weblate.checks.markup.BBCodeCheck

検査の識別子:

bbcode

除外フラグ:

ignore-bbcode

BBCode は、メッセージの重要な部分を太字フォントや斜体で強調するなどの表示を、単純なマークアップで記述します。

この検査は、BBCode が翻訳文にも含まれているかどうかを確認します。

注釈

現在、BBCode を検出する方法は非常に単純であり、この検査では誤検知が発生することがあります。

重複単語の連続#

バージョン 4.1 で追加.

概要:

翻訳文で同じ単語が 2 回連続した文字列:

対象範囲:

翻訳済みの文字列

検査クラス:

weblate.checks.duplicate.DuplicateCheck

検査の識別子:

duplicate

除外フラグ:

ignore-duplicate

翻訳文に重複する単語が連続してないか検査します。通常は、翻訳ミスです。

ヒント

この検査には、誤検出を避けるための言語固有の規則が含まれています。お客様のケースで誤作動した場合はお知らせください。参照: Weblate の問題の報告

用語集に従っていない#

バージョン 4.5 で追加.

概要:

翻訳文は用語集に定義された用語に従っていない。

対象範囲:

翻訳済みの文字列

検査クラス:

weblate.checks.glossary.GlossaryCheck

検査の識別子:

check_glossary

有効にするフラグ:

check-glossary

除外フラグ:

ignore-check-glossary

この検査は、check-glossary フラグを使用して有効にします(参照: フラグを使用した動作の設定)。有効にする前に、考慮が必要な項目:

  • 完全一致で文字列の照合をします。用語集には、用語の別表記はすべて含まれていることが前提です。

  • 各文字列を用語集と照合して検査するのは大変な作業です。Weblate のすべての操作、文字列のインポートや翻訳などの検査が遅くなります。

  • また、未翻訳の翻訳文 では用語集の翻訳禁止の用語も活用します。

連続スペース#

概要:

翻訳文に連続したスペースが含まれている

対象範囲:

翻訳済みの文字列

検査クラス:

weblate.checks.chars.DoubleSpaceCheck

検査の識別子:

double_space

除外フラグ:

ignore-double-space

翻訳文の中でスペースが連続しているかどうかを検査し、ほかのスペース関連の検査での誤検出を防ぎます。

原文に連続したスペースがある場合は、意図的なものなので検査で不合格になりません。

書式指定文字列#

Checks that the formatting in strings is replicated between both source and translation. Omitting format strings in translation usually causes severe problems, so the formatting in strings should usually match the source.

Weblate では、複数の言語での書式指定文字列の検査に対応しています。検査は、文字列に適切なフラグが設定されている場合にのみ自動的に有効になります(例: C 形式の 'c-format')。Gettext はこれを自動的に追加しますが、他のファイル形式や PO ファイルが xgettext で生成されていない場合は、手動で追加することが必要です。

This can be done per string (see 原文の追加情報) or in a コンポーネント構成. Having it defined per component is simpler, but it can lead to false positives in case the string is not interpreted as a formatting string, but format string syntax happens to be used.

ヒント

Weblate で指定した書式指定の検査ができない場合は、汎用の プレースホルダー を使用できます。

検査に加えて、書式指定文字列をハイライトで表示して、翻訳文字列に簡単に挿入する方法:

../_images/format-highlight.png

AngularJS 補間文字列#

概要:

原文と AngularJS 補間文字列が一致してないもの

対象範囲:

翻訳済みの文字列

検査クラス:

weblate.checks.angularjs.AngularJSInterpolationCheck

検査の識別子:

angularjs_format

有効にするフラグ:

angularjs-format

除外フラグ:

ignore-angularjs-format

名前付き書式文字列の例:

Your balance is {{amount}} {{ currency }}

C 言語書式#

概要:

C 言語形式の文字列が原文と不一致

対象範囲:

翻訳済みの文字列

検査クラス:

weblate.checks.format.CFormatCheck

検査の識別子:

c_format

有効にするフラグ:

c-format

除外フラグ:

ignore-c-format

単純な書式指定文字列の例:

There are %d apples

書式指定文字列の位置の例:

Your balance is %1$d %2$s

C# 形式#

概要:

C# 形式の文字列が原文と不一致

対象範囲:

翻訳済みの文字列

検査クラス:

weblate.checks.format.CSharpFormatCheck

検査の識別子:

c_sharp_format

有効にするフラグ:

c-sharp-format

除外フラグ:

ignore-c-sharp-format

書式指定文字列の位置の例:

There are {0} apples

ECMAScript テンプレート リテラル#

概要:

ECMAScript テンプレート リテラルが原文と不一致

対象範囲:

翻訳済みの文字列

検査クラス:

weblate.checks.format.ESTemplateLiteralsCheck

検査の識別子:

es_format

有効にするフラグ:

es-format

除外フラグ:

ignore-es-format

補間の例:

There are ${number} apples

i18next 補間#

バージョン 4.0 で追加.

概要:

i18next の補間が原文と不一致

対象範囲:

翻訳済みの文字列

検査クラス:

weblate.checks.format.I18NextInterpolationCheck

検査の識別子:

i18next_interpolation

有効にするフラグ:

i18next-interpolation

除外フラグ:

ignore-i18next-interpolation

補間の例:

There are {{number}} apples

ネスティングの例:

There are $t(number) apples

ICU MessageFormat#

バージョン 4.9 で追加.

概要:

ICU MessageFormat 文字列の構文エラーやプレースホルダーの不一致。

対象範囲:

翻訳済みの文字列

検査クラス:

weblate.checks.icu.ICUMessageFormatCheck

検査の識別子:

icu_message_format

有効にするフラグ:

icu-message-format

除外フラグ:

ignore-icu-message-format

補間の例:

There {number, plural, one {is one apple} other {are # apples}}.

この検査は、純粋な ICU MessageFormat メッセージと、単純な XML タグを持つ ICU の両方に対応します。XML 対応を選択するか、特定の検査の詳細を無効にすることで、 icu-flags:* を使用してこの検査の動作を設定できます。たとえば、次のフラグは、複数のサブ メッセージの検証を無効にしながら XML 対応を有効にします。

icu-message-format, icu-flags:xml:-plural_selectors

xml

単純な XML タグに対応を有効にします。デフォルトでは、XML タグは寛大に解析されます。対でない < 文字は、タグの一部ではない場合は無視されます。

strict-xml

厳格な XML タグに対応を有効にします。タグの一部でない場合は、すべての < 文字をエスケープすることが必要です。

-highlight

エディタ内のプレースホルダーの強調表示を無効にします。

-require_other

サブメッセージに other セレクターを必須とすることを無効にします。

-submessage_selectors

サブメッセージ セレクターがソースと一致するかどうかの検査を除外します。

-types

プレースホルダーの型が原文と一致するかどうかの検査を除外します。

-extra

原文に存在しなかったプレースホルダーが、存在しない確認の検査を除外します。

-missing

原文に存在していたプレースホルダーが、欠落していない確認の検査を除外します。

また、 strict-xml が無効で xml が有効な場合は、icu-tag-prefix:PREFIX フラグを使用して、すべての XML タグが特定の文字列で始まることを必須にできます。次のようにフラグを設定して、XML タグが <x: で始まる場合にのみ一致することを許可する例:

icu-message-format, icu-flags:xml, icu-tag-prefix:"x:"

これは <x:link>click here</x:link> と一致しますが、<strong>this</strong> とは一致しません。

Java 形式#

概要:

Java 形式の文字列が原文と不一致

対象範囲:

翻訳済みの文字列

検査クラス:

weblate.checks.format.JavaFormatCheck

検査の識別子:

java_printf_format

有効にするフラグ:

java-printf-format

除外フラグ:

ignore-java-printf-format

単純な書式指定文字列の例:

There are %d apples

書式指定文字列の位置の例:

Your balance is %1$d %2$s

バージョン 4.14 で変更: 以前は、java-format フラグを使用して切り替えていましたが、GNU gettext との一貫性を保つために変更されました。

Java MessageFormat#

概要:

Java MessageFormat 文字列が原文と不一致

対象範囲:

翻訳済みの文字列

検査クラス:

weblate.checks.format.JavaMessageFormatCheck

検査の識別子:

java_format

無条件を有効にするフラグ:

java-format

自動検出を有効にするフラグ:

auto-java-messageformat 原文に書式指定文字列がある場合のみ検査を有効にします

除外フラグ:

ignore-java-format

書式指定文字列の位置の例:

There are {0} apples

バージョン 4.14 で変更: 以前は、java-messageformat フラグを使用して切り替えていましたが、GNU gettext との一貫性を保つために変更されました。

このチェックは、書式文字列が Java MessageFormat クラスに対して有効であることを検証します。中括弧内の書式文字列を照合するだけでなく、特別な意味を持つ単一引用符も検証します。シングル クォーテーションを書くときは常に '' と書くべきです。対になっていない場合は、引用の始まりとして扱われ、文字列のレンダリング時に表示されません。

JavaScript 形式#

概要:

JavaScript 形式の文字列が原文と不一致

対象範囲:

翻訳済みの文字列

検査クラス:

weblate.checks.format.JavaScriptFormatCheck

検査の識別子:

javascript_format

有効にするフラグ:

javascript-format

除外フラグ:

ignore-javascript-format

単純な書式指定文字列の例:

There are %d apples

Lua 形式#

概要:

Lua 形式の文字列が原文と不一致

対象範囲:

翻訳済みの文字列

検査クラス:

weblate.checks.format.LuaFormatCheck

検査の識別子:

lua_format

有効にするフラグ:

lua-format

除外フラグ:

ignore-lua-format

単純な書式指定文字列の例:

There are %d apples

Object Pascal 形式#

概要:

Object Pascal 形式の文字列が原文と不一致

対象範囲:

翻訳済みの文字列

検査クラス:

weblate.checks.format.ObjectPascalFormatCheck

検査の識別子:

object_pascal_format

有効にするフラグ:

object-pascal-format

除外フラグ:

ignore-object-pascal-format

単純な書式指定文字列の例:

There are %d apples

パーセントのプレースホルダー#

バージョン 4.0 で追加.

概要:

% プレースホルダーが原文と不一致

対象範囲:

翻訳済みの文字列

検査クラス:

weblate.checks.format.PercentPlaceholdersCheck

検査の識別子:

percent_placeholders

有効にするフラグ:

percent-placeholders

除外フラグ:

ignore-percent-placeholders

単純な書式指定文字列の例:

リンゴが %number% 個あります

Perl 形式#

概要:

Perl 形式の文字列が原文と不一致

対象範囲:

翻訳済みの文字列

検査クラス:

weblate.checks.format.PerlFormatCheck

検査の識別子:

perl_format

有効にするフラグ:

perl-format

除外フラグ:

ignore-perl-format

単純な書式指定文字列の例:

There are %d apples

書式指定文字列の位置の例:

Your balance is %1$d %2$s

PHP 形式#

概要:

PHP 形式の文字列が原文と不一致

対象範囲:

翻訳済みの文字列

検査クラス:

weblate.checks.format.PHPFormatCheck

検査の識別子:

php_format

有効にするフラグ:

php-format

除外フラグ:

ignore-php-format

単純な書式指定文字列の例:

There are %d apples

書式指定文字列の位置の例:

Your balance is %1$d %2$s

Python ブレース形式#

概要:

Python ブレース形式の文字列が原文と不一致

対象範囲:

翻訳済みの文字列

検査クラス:

weblate.checks.format.PythonBraceFormatCheck

検査の識別子:

python_brace_format

有効にするフラグ:

python-brace-format

除外フラグ:

ignore-python-brace-format

単純な書式指定文字列:

リンゴが {} 個あります

名前付き書式文字列の例:

あなたの残高は {amount} {currency} です

Python 形式#

概要:

Python 形式の文字列が原文と不一致

対象範囲:

翻訳済みの文字列

検査クラス:

weblate.checks.format.PythonFormatCheck

検査の識別子:

python_format

有効にするフラグ:

python-format

除外フラグ:

ignore-python-format

単純な書式指定文字列:

There are %d apples

名前付き書式文字列の例:

あなたの残高は %(amount)d %(currency)s です

Qt 形式#

概要:

Qt 書式文字列が原文と不一致

対象範囲:

翻訳済みの文字列

検査クラス:

weblate.checks.qt.QtFormatCheck

検査の識別子:

qt_format

有効にするフラグ:

qt-format

除外フラグ:

ignore-qt-format

書式指定文字列の位置の例:

リンゴが %1 個あります

Qt 複数形式#

概要:

Qt 複数形式の文字列が原文と不一致

対象範囲:

翻訳済みの文字列

検査クラス:

weblate.checks.qt.QtPluralCheck

検査の識別子:

qt_plural_format

有効にするフラグ:

qt-plural-format

除外フラグ:

ignore-qt-plural-format

複数形の書式指定文字列の例:

There are %Ln apple(s)

Ruby 形式#

概要:

Ruby 書式文字列が原文と不一致

対象範囲:

翻訳済みの文字列

検査クラス:

weblate.checks.ruby.RubyFormatCheck

検査の識別子:

ruby_format

有効にするフラグ:

ruby-format

除外フラグ:

ignore-ruby-format

単純な書式指定文字列の例:

There are %d apples

書式指定文字列の位置の例:

あなたの残高は %1$f %2$s です

名前付き書式文字列の例:

Your balance is %+.2<amount>f %<currency>s

名前付きテンプレート文字列:

Your balance is %{amount} %{currency}

Scheme 形式#

概要:

Scheme 形式の文字列が原文と不一致

対象範囲:

翻訳済みの文字列

検査クラス:

weblate.checks.format.SchemeFormatCheck

検査の識別子:

scheme_format

有効にするフラグ:

scheme-format

除外フラグ:

ignore-scheme-format

単純な書式指定文字列の例:

リンゴが ~d 個あります

Vue I18n 書式#

概要:

Vue I18n 書式が原文と不一致

対象範囲:

翻訳済みの文字列

検査クラス:

weblate.checks.format.VueFormattingCheck

検査の識別子:

vue_format

有効にするフラグ:

vue-format

除外フラグ:

ignore-vue-format

名前付きフォーマット:

リンゴが {count} 個あります

Rails i18n 書式:

リンゴが %{count} 個あります

リンクしたロケールメッセージ:

@:message.dio @:message.the_world!

過去に翻訳済み#

概要:

過去に翻訳済みのもの

対象範囲:

すべての文字列

検査クラス:

weblate.checks.consistency.TranslatedCheck

検査の識別子:

translated

除外フラグ:

ignore-translated

文字列が以前に翻訳されていることを意味します。これは、VCS で翻訳が巻き戻された場合や、その他の理由で翻訳が失われた場合に発生します。

一貫性の欠如#

概要:

この文字列は、このプロジェクトで複数の翻訳があるか、コンポーネントによっては翻訳されていないものもあります。

対象範囲:

すべての文字列

検査クラス:

weblate.checks.consistency.ConsistencyCheck

検査の識別子:

inconsistent

除外フラグ:

ignore-inconsistent

Weblate は、同一の文字列の翻訳が一貫性を維持できるように、プロジェクト内のすべての翻訳を検査します。

1 つの文字列についてプロジェクト内で異なる翻訳がある場合、検査では不合格となります。この場合、検査結果には一貫性の欠如と表示されます。この文字列の他の翻訳は その他の出現箇所 タブで確認できます。

この検査は、翻訳の自動反映の有効化 が有効化されているプロジェクト内のすべてのコンポーネントに適用されます。

ヒント

パフォーマンス上の理由から、検査ですべての不整合が検出されずに一致する数が制限されます。

注釈

この検査は、文字列があるコンポーネントでは翻訳されていて、別のコンポーネントでは未翻訳の場合にも発生します。これは、その他の出現箇所 タブの各行に表示される この翻訳を使う ボタンをクリックするだけで、一部のコンポーネントで翻訳されていない文字列を手動で処理する簡単な方法として使用できます。

自動翻訳 アドオンを使用して、別のコンポーネントですでに翻訳されている、新しく追加された文字列の翻訳を自動化できます。

Kashida 文字の使用#

バージョン 3.5 で追加.

概要:

装飾的なカシーダが使用されている翻訳文

対象範囲:

翻訳済みの文字列

検査クラス:

weblate.checks.chars.KashidaCheck

検査の識別子:

kashida

除外フラグ:

ignore-kashida

Kashida の装飾文字は翻訳に使用しないでください。これは Tatweel とも呼ばれます。

Markdown の参照#

バージョン 3.5 で追加.

概要:

Markdown の参照リンクが原文と不一致

対象範囲:

翻訳済みの文字列

検査クラス:

weblate.checks.markup.MarkdownRefLinkCheck

検査の識別子:

md-reflink

有効にするフラグ:

md-text

除外フラグ:

ignore-md-reflink

Markdown リンクの参照が原文と一致しません。

Markdown 構文#

バージョン 3.5 で追加.

概要:

Markdown 構文が原文と一致しません

対象範囲:

翻訳済みの文字列

検査クラス:

weblate.checks.markup.MarkdownSyntaxCheck

検査の識別子:

md-syntax

有効にするフラグ:

md-text

除外フラグ:

ignore-md-syntax

Markdown 構文が原文と一致しません

翻訳の最大文字数#

概要:

翻訳文は、設定した文字数を超えてはいけない

対象範囲:

翻訳済みの文字列

検査クラス:

weblate.checks.chars.MaxLengthCheck

検査の識別子:

max-length

有効にするフラグ:

max-length

除外フラグ:

ignore-max-length

翻訳文が使用可能なスペースに収まる文字列数かどうかを検査します。これは、翻訳文の文字列数のみの検査です。

他の検査とは違い、フラグは max-length:100 のような key:value ペアとして設定が必要です。

ヒント

この検査では文字数を確認するので、プロポーショナル フォントを使用してテキストを表示する場合は適さないかもしれません。翻訳の文字の最大サイズ 検査は、テキストの実際の表示結果を検査します。

replacements: フラグは、文字列を検査する前に置換可能な要素を展開する場合にも便利です。

xml-text フラグも使用している場合、長さの計算では XML タグが無視されます。

翻訳の文字の最大サイズ#

概要:

表示した翻訳のテキストは、設定した文字サイズを超えてはいけない

対象範囲:

翻訳済みの文字列

検査クラス:

weblate.checks.render.MaxSizeCheck

検査の識別子:

max-size

有効にするフラグ:

max-size

除外フラグ:

ignore-max-size

バージョン 3.7 で追加.

表示した翻訳のテキストは、設定した文字サイズを超えないようにしてください。行折り返しでテキストを表示し、設定した境界に収まるかどうかを確認します。

この検査には、最大幅と最大行数の 1 つまたは 2 つのパラメータが必要です。行数を指定しない場合は、1 行のテキストと判断されます。

使用するフォントは font-* ディレクティブ(参照: フラグを使用した動作の設定)でも設定できます。次は、ubuntu のフォントサイズ 22 で表示するテキストを、2 行 500 ピクセルに収める翻訳フラグの設定方法:

max-size:500:2, font-family:ubuntu, font-size:22

ヒント

コンポーネント構成 内の font-* ディレクティブを設定して、コンポーネント内のすべての文字列に同じフォントを設定できます。文字列ごとに設定することが必要な場合に備えて、文字列ごとにこれらの値を上書きできます。

replacements: フラグは、文字列を検査する前に置換可能な要素を展開する場合にも便利です。

xml-text フラグも使用している場合、長さの計算では XML タグが無視されます。

\n の不一致#

概要:

改行文字(\n)の数が原文と一致しないもの

対象範囲:

翻訳済みの文字列

検査クラス:

weblate.checks.chars.EscapedNewlineCountingCheck

検査の識別子:

escaped_newline

除外フラグ:

ignore-escaped-newline

通常、エスケープされた改行はプログラムの出力をフォーマットする際に重要です。翻訳の \n リテラルの数が原文と一致しない場合、検査で不合格となります。

コロンの不一致#

概要:

原文と翻訳文で一致しない文末のコロン

対象範囲:

翻訳済みの文字列

検査クラス:

weblate.checks.chars.EndColonCheck

検査の識別子:

end_colon

除外フラグ:

ignore-end-colon

原文と翻訳がどちらもコロンで終わっているか検査します。コロンを使わないさまざまな言語(中国語または日本語)についても検査されます。

省略記号の不一致#

概要:

原文と翻訳文で一致しない文末の省略記号

対象範囲:

翻訳済みの文字列

検査クラス:

weblate.checks.chars.EndEllipsisCheck

検査の識別子:

end_ellipsis

除外フラグ:

ignore-end-ellipsis

原文から翻訳文に末尾の省略記号が複製されているか検査します。これは、3 つのドット (...) ではなく、実際の省略記号 () のみを検査します。

省略記号は通常、3 つのドットよりも綺麗に表示され、音声合成ではより適切に読み上げられます。

感嘆符の不一致#

概要:

原文と翻訳文で一致しない文末の感嘆符

対象範囲:

翻訳済みの文字列

検査クラス:

weblate.checks.chars.EndExclamationCheck

検査の識別子:

end_exclamation

除外フラグ:

ignore-end-exclamation

原文から翻訳に感嘆符が複製されているか検査します。感嘆符の有無は、感嘆符を持たないさまざまな言語についても検査されます(中国語、日本語、韓国語、アルメニア語、リンブ語、ミャンマー語、またはンコ語)。

終止符の不一致#

概要:

原文と翻訳文で一致しない文末の終止符

対象範囲:

翻訳済みの文字列

検査クラス:

weblate.checks.chars.EndStopCheck

検査の識別子:

end_stop

除外フラグ:

ignore-end-stop

原文から翻訳に終止符が複製されているか検査します。終止符の有無は、ピリオド (.) を使わない複数の言語(中国語、日本語、デーヴァナーガリー文字またはウルドゥー語)でも検査します。

疑問符の不一致#

概要:

原文と翻訳文で一致しない文末の疑問符

対象範囲:

翻訳済みの文字列

検査クラス:

weblate.checks.chars.EndQuestionCheck

検査の識別子:

end_question

除外フラグ:

ignore-end-question

原文から翻訳文に疑問符が複製されているか検査します。疑問符の有無は、疑問符を持たない複数の言語(アルメニア語、アラビア語、中国語、韓国語、日本語、エチオピア語、ヴァイ語またはコプト語)についても検査します。

セミコロンの不一致#

概要:

原文と翻訳文で一致しない文末のセミコロン

対象範囲:

翻訳済みの文字列

検査クラス:

weblate.checks.chars.EndSemicolonCheck

検査の識別子:

end_semicolon

除外フラグ:

ignore-end-semicolon

原文から翻訳文に、末尾のセミコロンが複製されているか検査します。

改行数の不一致#

概要:

改行の数が原文と一致しないもの

対象範囲:

翻訳済みの文字列

検査クラス:

weblate.checks.chars.NewLineCountCheck

検査の識別子:

newline-count

除外フラグ:

ignore-newline-count

通常、改行はプログラムの出力をフォーマットするために重要です。翻訳の改行数が原文と一致しない場合、検査で不合格となります。

複数形の不足#

概要:

翻訳されなかった複数形がある

対象範囲:

翻訳済みの文字列

検査クラス:

weblate.checks.consistency.PluralsCheck

検査の識別子:

plurals

除外フラグ:

ignore-plurals

原文のすべての複数形が翻訳されているか検査します。各複数形の使用方法の詳細については、文字列の定義で確認できます。

複数形を記入しないと、複数形が使用されているときに何も表示されないことがあります。

プレースホルダー#

バージョン 3.9 で追加.

概要:

翻訳文にプレースホルダーが不足している

対象範囲:

翻訳済みの文字列

検査クラス:

weblate.checks.placeholders.PlaceholderCheck

検査の識別子:

placeholders

有効にするフラグ:

placeholders

除外フラグ:

ignore-placeholders

バージョン 4.3 で変更: 正規表現をプレースホルダーとして使用できる。

バージョン 4.13 で変更: case-insensitive フラグを使用すると、プレースホルダーは大文字と小文字を区別しなくなります。

一部のプレースホルダーが翻訳に欠けています。これらは翻訳ファイルから抽出されるか、placeholders フラグを使用して手動で定義します。フラグはコロンで区切り、スペースを含む文字列は引用符で囲んで使用します。

placeholders:$URL$:$TARGET$:"some long text"

プレースホルダーに構文がある場合の、正規表現の使用例:

placeholders:r"%[^% ]%"

大文字と小文字を区別しないプレースホルダーも可能:

placeholders:$URL$:$TARGET$,case-insensitive

句読点のスペース#

バージョン 3.9 で追加.

概要:

二重句読点の前に、改行できないスペースがありません

対象範囲:

翻訳済みの文字列

検査クラス:

weblate.checks.chars.PunctuationSpacingCheck

検査の識別子:

punctuation_spacing

除外フラグ:

ignore-punctuation-spacing

句読点記号(感嘆符、疑問符、セミコロン、コロン)の前に改行できないスペースがあるか検査します。このルールは、フランス語やブルトン語などの、句読点記号の前のスペースはタイポグラフィの規則に準じる一部の言語でのみ使用されます。

正規表現#

バージョン 3.9 で追加.

概要:

翻訳文が正規表現に一致しない

対象範囲:

翻訳済みの文字列

検査クラス:

weblate.checks.placeholders.RegexCheck

検査の識別子:

regex

有効にするフラグ:

regex

除外フラグ:

ignore-regex

翻訳文には正規表現に一致するものはありません。正規表現は、翻訳ファイルから抽出するか、regex フラグを使用して手動で定義します。例:

regex:^foo|bar$

Reused translation#

バージョン 4.18 で追加.

概要:

異なる文字列が同じように翻訳されています。

対象範囲:

翻訳済みの文字列

検査クラス:

weblate.checks.consistency.ReusedCheck

検査の識別子:

reused

除外フラグ:

ignore-reused

Check that fails if the same translation is used on different source strings. Such translations can be intentional, but can also confuse users.

同一の複数形#

概要:

同じように翻訳されている複数形のもの

対象範囲:

翻訳済みの文字列

検査クラス:

weblate.checks.consistency.SamePluralsCheck

検査の識別子:

same-plurals

除外フラグ:

ignore-same-plurals

翻訳文の複数形のうち、一致しているものがあるかを検出します。ほとんどの言語では、複数形はそれぞれ異なっている必要があります。

文頭の改行#

概要:

原文と翻訳文で一致しない文頭の改行

対象範囲:

翻訳済みの文字列

検査クラス:

weblate.checks.chars.BeginNewlineCheck

検査の識別子:

begin_newline

除外フラグ:

ignore-begin-newline

改行は通常、適切な理由で原文内に表示されます。翻訳されたテキストを使用する場合は、省略や追加によってフォーマットが崩れることがあります。

先頭の空白#

概要:

原文と翻訳文で一致しない文頭のスペース数

対象範囲:

翻訳済みの文字列

検査クラス:

weblate.checks.chars.BeginSpaceCheck

検査の識別子:

begin_space

除外フラグ:

ignore-begin-space

文字列の先頭にあるスペースは、通常、インターフェイスのインデントに使用されるため、維持することが重要です。

文末の改行#

概要:

原文と翻訳文で一致しない末尾の改行

対象範囲:

翻訳済みの文字列

検査クラス:

weblate.checks.chars.EndNewlineCheck

検査の識別子:

end_newline

除外フラグ:

ignore-end-newline

改行は通常、適切な理由で原文内に表示されます。翻訳されたテキストを使用する場合は、省略や追加によってフォーマットが崩れることがあります。

文末の空白#

概要:

原文と翻訳文で一致しない末尾のスペース

対象範囲:

翻訳済みの文字列

検査クラス:

weblate.checks.chars.EndSpaceCheck

検査の識別子:

end_space

除外フラグ:

ignore-end-space

原文から翻訳に末尾のスペースが複製されているか検査します。

末尾のスペースは、通常、隣接する要素をスペースに入れるため、削除するとレイアウトが壊れることがあります。

未翻訳の翻訳文#

概要:

原文と翻訳文が同一

対象範囲:

翻訳済みの文字列

検査クラス:

weblate.checks.same.SameCheck

検査の識別子:

same

除外フラグ:

ignore-same

原文と対応する翻訳文字列が、複数形のうち少なくとも 1 つまで同一である場合に発生します。すべての言語に共通する一部の文字列は無視され、さまざまなマークアップが除去されます。これにより、誤検出の数が減ります。

この検査は、誤って翻訳されていない文字列を見つけるのに便利です。

この検査のデフォルトの動作では、初期設定のブラックリストにある単語を検査対象から除外します。これらはしばしば翻訳されない単語です。これは、複数の言語で同じ 1 つの単語だけで構成される短い文字列での誤検出を避けるために便利です。このブラックリストを無効にするには、文字列またはコンポーネントに strict-same フラグを追加します。

バージョン 4.17 で変更: check-glossary フラグ(参照: 用語集に従っていない)フラグを使用すると、用語集の翻訳禁止用語は検査から除外されます。

安全でない HTML#

バージョン 3.9 で追加.

概要:

翻訳文には、安全でない HTML マークアップが使用されている

対象範囲:

翻訳済みの文字列

検査クラス:

weblate.checks.markup.SafeHTMLCheck

検査の識別子:

safe-html

有効にするフラグ:

safe-html

除外フラグ:

ignore-safe-html

翻訳には、安全でない HTML マークアップが含まれています。この検査は safe-html フラグ(参照: フラグを使用した動作の設定)を使用して有効にしなければなりません。マークアップを自動的にサニタイズできる autofixer も付属しています。

ヒント

また、md-text フラグを使用している場合には、Markdown 形式のリンクも許可されます。

参考

HTML の検査は Ammonia ライブラリで処理されます。

URL#

バージョン 3.5 で追加.

概要:

翻訳文に URL が含まれていない

対象範囲:

翻訳済みの文字列

検査クラス:

weblate.checks.markup.URLCheck

検査の識別子:

url

有効にするフラグ:

url

除外フラグ:

ignore-url

翻訳文に URL が含まれていません。これは、ユニットが URL を含むとマークされている場合にのみ起動します。その場合、翻訳は有効な URL であることが必要です。

XML マークアップ#

概要:

翻訳文の XML タグが原文と不一致

対象範囲:

翻訳済みの文字列

検査クラス:

weblate.checks.markup.XMLTagsCheck

検査の識別子:

xml-tags

除外フラグ:

ignore-xml-tags

これは通常、出力結果が異なることを意味します。ほとんどの場合、これは翻訳の変更による望ましい結果ではありませんが、場合によっては変更されることもあります。

原文から翻訳文に XML タグが複製されているか検査します。

この検査は、XML のような文字列に対しては自動的に有効になります。強制的に有効にするため、場合によっては xml-text フラグの追加が必要になります。

注釈

この検査は safe-html フラグにより無効にされています。このフラグによって行われる HTML のクリーンアップにより、無効な XML の HTMLマークアップを生成する可能性があるためです。

XML 構文#

概要:

翻訳文が XML として正しくない

対象範囲:

翻訳済みの文字列

検査クラス:

weblate.checks.markup.XMLValidityCheck

検査の識別子:

xml-invalid

除外フラグ:

ignore-xml-invalid

XML マークアップは無効です。

この検査は、XML のような文字列に対しては自動的に有効になります。強制的に有効にするため、場合によっては xml-text フラグの追加が必要になります。

注釈

この検査は safe-html フラグにより無効にされています。このフラグによって行われる HTML のクリーンアップにより、無効な XML の HTMLマークアップを生成する可能性があるためです。

ゼロ幅スペース#

概要:

ゼロ幅スペース文字を含む翻訳文

対象範囲:

翻訳済みの文字列

検査クラス:

weblate.checks.chars.ZeroWidthSpaceCheck

検査の識別子:

zero-width-space

除外フラグ:

ignore-zero-width-space

単語の途中でのメッセージの改行(ワードラッピング)に、ゼロ幅スペース(<U+200B>)が使われています。

通常は誤って挿入するため、この検査は翻訳中に検出した時点で起動します。この文字を使用すると、一部のプログラムで問題が発生することがあります。

原文検査#

原文検査は、開発者が原文の品質を向上させるため便利です。

省略記号#

概要:

文字列では省略記号 (…) の代わりに 3 つのドット (...) が使われている

対象範囲:

原文

検査クラス:

weblate.checks.source.EllipsisCheck

検査の識別子:

ellipsis

除外フラグ:

ignore-ellipsis

これは、文字列で省略記号 () を使用すべきところで、3 つのドット (...) を使用すると不合格となります。

ほとんどの場合、Unicode 文字を使用する方が適切な方法であり、表示の品質も高くなります。また、テキスト読み上げでもより適切な音声になります。

ICU MessageFormat syntax#

バージョン 4.9 で追加.

概要:

ICU MessageFormat 文字列に構文エラーがあります。

対象範囲:

原文

検査クラス:

weblate.checks.icu.ICUSourceCheck

検査の識別子:

icu_message_format_syntax

有効にするフラグ:

icu-message-format

除外フラグ:

ignore-icu-message-format

長期間未翻訳#

バージョン 4.1 で追加.

概要:

翻訳が放置された文字列

対象範囲:

原文

検査クラス:

weblate.checks.source.LongUntranslatedCheck

検査の識別子:

long_untranslated

除外フラグ:

ignore-long-untranslated

文字列が長期間未翻訳のまま放置されていた場合は、原文に問題があり、翻訳が困難である場合があります。

複数言語での検査不合格#

概要:

翻訳は複数の言語で、検査に不合格となった項目があります

対象範囲:

原文

検査クラス:

weblate.checks.source.MultipleFailingCheck

検査の識別子:

multiple_failures

除外フラグ:

ignore-multiple-failures

この文字列の翻訳の多くは、品質検査で不合格となっています。これは通常、原文を改善する方法が何かあるという意味です。

この検査の不合格は、文字列の末尾の終止符の欠落など、原文で修正すべきだが翻訳者が翻訳で修正する傾向があるささいな問題によって引き起こされることが多いです。

複数の無名変数#

バージョン 4.1 で追加.

概要:

文字列内に名前のない変数が複数あるため、翻訳者は並べ替えができません

対象範囲:

原文

検査クラス:

weblate.checks.format.MultipleUnnamedFormatsCheck

検査の識別子:

unnamed_format

除外フラグ:

ignore-unnamed-format

文字列内に名前のない変数が複数あるため、翻訳者が変数を並べ替えることはできません。

代わりに、名前付き変数を使用して、翻訳者が変数の順序を変更できるように検討してください。

複数形の書式になっていない#

概要:

文字列は複数形として使用されていますが、複数形の書式ではありません

対象範囲:

原文

検査クラス:

weblate.checks.source.OptionalPluralCheck

検査の識別子:

optional_plural

除外フラグ:

ignore-optional-plural

文字列は複数形として使用されますが、複数形の書式が使われていません。翻訳システムが複数形に対応している場合は、それを使用してください。

Python の Gettext 使用例:

from gettext import ngettext

print(ngettext("Selected %d file", "Selected %d files", files) % files)