翻訳中の Play 2 アプリに取り組んでいます。Play はMessageFormat
舞台裏で Java を使用しているため、かなりの数のプロパティ値があります。
my.interface.key={0,choice,0#{0} families|1#1 family|1<{0,number,integer} families}
これの翻訳を次の形式で受け取りました。
my.interface.key={0,choix,0#{0} familles|1#1 famille|1<{0,nombre,entier} familles}
明らかでない場合、その一部は翻訳されていないはずですが、間違いは時々発生します。これで十分ですが、アプリが実行時にIllegalArgumentException: unknown format type at ...
例外でクラッシュする前に、これらの文字列を検証する方法が必要であると確信しています。できれば Git コミット フック、または SBT ビルド タスクを使用します。
もし私がこれを自分でハックするなら、おそらくこれらのプロパティファイルを読み込んで、それぞれの値について実行MessageFormat.format(value)
が失敗しないことをチェックするツールを作るでしょう。
理想的には、Perl (または Python) スクリプトを介してこれを行うことができます。悲しいことに、私が見つけることができる唯一の非 Java ライブラリである CPAN のText::MessageFormatは、複数形など、最もエラーが発生しやすい形式をサポートしていないようです。
飛び込む前に、既存のツールに基づいてより賢明なアプローチを提案できる人はいますか?