多言語対応は開発者にとって悩ましい課題です。複数形、性別、日付形式など言語ごとにルールが異なります。しかし、MessageFormat 2.0がこの問題を大きく改善します。そこで今回は、この新しい国際化標準の仕組みと導入メリットを解説します。
MessageFormat 2.0の基本概要
MessageFormat 2.0はUnicode CLDRの一部として開発された新標準です。具体的には、ローカライズ可能なメッセージ文字列の国際規格です。また、CLDR 47で安定版になりました。つまり、正式な実装推奨段階に入っています。さらに、ICU 76以降で技術プレビューとして利用可能です。2025年1月にはFinal Candidateとして審査対象になりました。
MessageFormat 1.0からの進化ポイント
1.0と比べて大幅に機能が強化されています。まず、カスタム関数の定義が可能になりました。また、選択機能が複数形だけでなく文法的格にも対応しています。さらに、ローカル変数をサポートしているので値の再利用ができます。特に重要なのはデータモデルの改善です。つまり、抽象構文と実装が明確に分離されました。そのため、異なる環境間での互換性が向上しています。
構文面でも多くの改善があります。具体的には、$プレフィックス付きの変数補間が使えます。また、.matchを使った複雑な条件分岐も可能です。さらに、名前付きオプションでパラメータを指定できます。しかも、リッチテキスト対応で安全なマークアップも埋め込めます。したがって、翻訳者にとっても扱いやすい形式になっています。
実装状況と対応言語
JavaではICU4Jのcom.ibm.icu.message2パッケージで利用できます。また、C++ではICU4Cに実装されています。さらに、JavaScriptではmessageformat 4.0で対応しています。なお、ECMA-402への統合も予定されています。加えて、.NETやPythonでもコミュニティ実装が進んでいます。そのため、主要な開発言語のほとんどで使える見通しです。
特にi18n/l10nの現場では大きなメリットがあります。たとえば、XLIFFとの互換性が確保されています。また、複雑な複数形ルールを持つ言語でも正確に処理できます。だからこそ、グローバル展開を目指すプロジェクトでは早めに検討すべき技術です。
