AngularでのICUメッセージ

Angularの組み込みi18nシステムでテンプレート内のICU MessageFormatを使用。plural、select、i18n属性、ng extract-i18nによる抽出をカバー。

Framework Integration

詳細な説明

AngularでのICU MessageFormat

AngularはテンプレートでICU MessageFormatをネイティブにサポートしています。サードパーティライブラリが必要なReactとは異なり、AngularのI18nシステムはpluralおよびselect式のICU構文を直接理解します。

テンプレートでの基本使用

<p i18n>
  {count, plural,
    =0 {No items}
    =1 {One item}
    other {{{count}} items}
  }
</p>

注意:Angularテンプレートでは、変数補間にICUの{count}ではなくAngular構文の二重波括弧{{count}}を使用します。

性別のSelect

<p i18n>
  {gender, select,
    male {He}
    female {She}
    other {They}
  } updated the document.
</p>

i18n属性

翻訳対象の要素をi18n属性でマーク:

<h1 i18n="Page title|Title for the main page">Welcome</h1>

メッセージの抽出

ng extract-i18n --output-path src/locale

マークされたすべてのメッセージを含むXLIFFファイルを生成します。

制限事項

  • Angularの組み込みi18nはコンパイル時 -- リロードなしで実行時にロケールを切り替えることはできない
  • 実行時のロケール切り替えには@ngx-translate@ngneat/translocoを検討

ユースケース

フレームワークの組み込みi18nシステムを使用して国際化を実装し、複数形、性別対応テキスト、翻訳ワークフロー用のメッセージ抽出を処理する必要があるAngular開発者。

試してみる — ICU Message Format Tester

フルツールを開く