ICUメッセージフォーマットテスター

ICUメッセージパターンを入力し、ライブ変数置換でフォーマット結果をプレビューします。

このツールについて

ICUメッセージフォーマットテスターは、国際化(i18n)で使用されるICU MessageFormatパターンをテスト・プレビューするための無料ブラウザベースツール です。ICU MessageFormatは、react-intl、FormatJS、vue-i18n、Angular i18n などのライブラリで構築されたアプリケーションで、翻訳可能でロケール対応の メッセージを作成するための業界標準です。

このツールはICUメッセージパターンをリアルタイムで解析し、変数を自動検出し、 各変数に適切な型の入力フィールドを提供します。複数形ルール、性別選択、 数値フォーマット、日付フォーマット、ネストされたメッセージをすべて 単一のインターフェースからテストできます。ロケールセレクターにより、 ブラウザ組み込みのIntl APIを使用して、異なる言語でのメッセージの レンダリングをプレビューできます。

すべての処理はブラウザ内で完全に行われます。翻訳文字列がデバイスから 送信されることはなく、サーバー通信、ログ記録、入力に対するサードパーティの 分析はありません。これにより、未公開の製品文字列や機密の翻訳ファイルの テストにも安全に使用できます。

i18nパイプラインで構造化データフォーマットを扱う場合、翻訳JSONファイルの 検証にはJSONフォーマッターも便利です。翻訳キーの 文字列エスケープのテストには文字列エスケープツールを お試しください。正規表現テスターは、コードベースで ICUプレースホルダーの抽出や検証に使用するパターンの確認に役立ちます。

使い方

  1. ICUメッセージパターンテキストエリアにICUメッセージパターンを入力します(例:{count, plural, one {# item} other {# items}})。
  2. ツールがパターン内のすべての変数を自動検出し、変数パネルに入力フィールドを表示します。
  3. 変数の値を入力します -- 複数形/数値型には数値入力、日付にはデートピッカー、selectにはドロップダウン。
  4. 右側の出力パネルでライブのフォーマット結果を確認します。
  5. ドロップダウンでロケールを変更し、言語による複数形ルールやフォーマットの違いを確認します。
  6. テンプレートをクリックして、複数形、性別select、数値フォーマット、ネストメッセージなどの一般的なICUパターンを読み込みます。
  7. コピーをクリックするかCtrl+Shift+Cを押して、フォーマット結果をクリップボードにコピーします。
  8. パターン解析を確認し、ICUメッセージの各部分がどのように解析されているかを理解します。

人気のICUメッセージフォーマット例

すべてのICUメッセージフォーマット例を見る -->

よくある質問

データは安全ですか?

はい。すべてのICUメッセージの解析とフォーマットはJavaScriptを使用してブラウザ内でクライアントサイドで実行されます。データはサーバーに一切送信されません。未公開の翻訳文字列や機密コンテンツを含む文字列を安全にテストできます。

どのICU MessageFormat機能がサポートされていますか?

単純な引数({name})、数値フォーマット({count, number})、日付・時刻フォーマット({date, date, medium})、複数形ルール({count, plural, one {# item} other {# items}})、性別などのカテゴリ選択({gender, select, male {He} female {She} other {They}})、序数のselectordinal、複数の機能を組み合わせたネストメッセージをサポートしています。

異なるロケールでの複数形ルールはどう機能しますか?

ICU複数形ルールは言語によって異なります。英語には2つのカテゴリ(oneとother)がありますが、アラビア語には6つ(zero、one、two、few、many、other)あります。このツールはブラウザのIntl.PluralRules APIを使用して、選択したロケールに正しい複数形カテゴリを適用するため、メッセージがすべてのケースを正しく処理していることを確認できます。

ネストされたICUメッセージをテストできますか?

はい。パーサーはselectの中にpluralを含むようなネスト構造を処理します。例:{gender, select, male {He has {count, plural, one {# cat} other {# cats}}} other {They have {count, plural, one {# cat} other {# cats}}}}。すべてのネストレベルの変数が自動的に検出されます。

このツールはICU MessageFormat仕様全体をサポートしていますか?

このツールはICU MessageFormatの最も一般的に使用されるサブセットをカバーしています:単純な置換、number、date、time、plural、select、selectordinal。ネストされた引数スタイルやカスタムスケルトン日付パターンなどの高度な機能は、簡略化されたフォールバックフォーマットを使用します。本番環境では、FormatJSなどの完全なICUライブラリと組み合わせてご使用ください。

pluralメッセージの#記号は何ですか?

#記号はICU pluralおよびselectordinalメッセージの特別なプレースホルダーで、引数の数値に置き換えられます。例えば、{count, plural, one {# item} other {# items}}でcountが5の場合、#は5に置き換えられ「5 items」が生成されます。

ICUメッセージで特殊文字をエスケープするにはどうすればよいですか?

シングルクォートを使用して特殊文字をエスケープします。リテラルの開き波括弧を含めるには'{と記述します。リテラルのシングルクォートを含めるには''と記述します。例えば、'It''s {count} o''clock'はcountが5のとき"It's 5 o'clock"を生成します。

関連ツール