実際の文を入力する
従来のICU MessageFormat 1の文を貼るか、plural・select・入れ子の例を読み込みます。不正な例ではother節が欠けた場合のエラーを確認できます。MF2の{$name}は別の構文です。
翻訳の検証
従来のICUメッセージと引数JSONを入力し、通常の出力と複数形の境界値を同時に確認します。
pluralまたはselectordinalを含むと境界値が表示されます。
文と引数はこのブラウザーのタブ内で処理され、送信されません。
複数形の分類はこのブラウザーのIntlデータに依存します。CLDRの版はブラウザーによって異なります。
結果は古くなりました。書き出す前に再実行してください。
英語のoneとotherだけで問題なく見えても、別の言語ではfewやmanyが必要です。ICU MessageFormatテストは数値ごとの完成文を並べ、11と21のような見落としやすい違いを示します。
この画面は単一の翻訳文を公開前に点検するためのものです。ICUメッセージ構文の解析と実行にはFormatJSを使い、複数形は閲覧中のブラウザーのIntlデータに従います。アプリが別のICU環境を使う場合は、最終確認をその実行環境でも行ってください。
カテゴリー名だけでなく、表示される文を値ごとに確かめます。
境界値表は0、1、2、5、11、21、101で同じ文を実行します。=0の厳密一致はカテゴリー判定より先に働き、ロシア語などでは11と21も異なる分岐になり得ます。元のJSONは書き換えません。
{name}のようなプレースホルダーには、大文字小文字まで一致するJSONキーが必要です。プレースホルダー検証では未指定の値や構文上の位置を知らせます。selectとpluralの入れ子も同じFormatJSの解析結果で実行します。
従来のICU MessageFormat 1の文を貼るか、plural・select・入れ子の例を読み込みます。不正な例ではother節が欠けた場合のエラーを確認できます。MF2の{$name}は別の構文です。
JSONオブジェクトのキーを文中の名前と完全に合わせます。BCP 47のロケールを変えると同じ数字でもカテゴリーが変わります。ブラウザーのCLDRデータは固定版ではありません。
数値変数を選び、特に0、1、11、21を比較します。境界テストは選んだ変数だけを一時的に差し替え、入力JSONは保存したままです。古い結果のコピーは無効になります。
従来のICUメッセージ形式をFormatJSで解析し、そのまま整形します。plural、select、selectordinal、offset、入れ子、基本的なnumber形式を扱います。
複数形ルールをカテゴリー名だけで説明しても訳文は検証できません。この表では値、カテゴリー、実際の文を横に並べ、11と21の差まで読めます。
構文の行と列、引数JSONの不正、欠けた変数、利用できないロケールを区別します。編集後は前の結果をコピーできません。
例の読み込みやクリアはプレビューで文字数と内容を示してから適用します。適用後は一度だけ、入力と結果をまとめて復元できます。
CLDRは言語ごとの数値や複数形などのデータです。このページではブラウザーのIntlが持つ規則を使うため、同じICUメッセージでもロケールによって選ぶ節が変わります。
言語によってzero、two、few、manyなどの区分が必要だからです。ICU MessageFormatテストでロケールと数値を変え、実際にどの節が使われるか確認してください。
CLDRの複数形ルールを参照し、対象ロケールで境界値を試します。この画面は0、1、2、5、11、21、101のカテゴリーと完成文を示しますが、すべての値を網羅するものではありません。
アプリが実際に採用する構文に合わせてください。本ツールはFormatJSが扱う従来のICU MessageFormat 1を検証します。フレームワーク独自の記法やMF2はそのまま流用できません。
フランス語のカテゴリーは英語と同じとは限りません。ロケールをfr-FRにして0と1の出力を比べ、=0の厳密一致節がある場合はその節が優先される点も確認してください。
本番の結果と違うケースがありましたか?