GWT 国際化メッセージを使用しています。Plural Formsのドキュメントには、これが機能するはずだと書かれています。
@DefaultMessage("{0} {1,number} hours {2}")
@PluralText({"one", "an hour"})
String hours(String prefix, @PluralCount int count, String suffix);
そうではありません。それがどんな価値をcount
提供してもDefaultMessage
(例:「1時間前」)。.properties ファイルを使用する場合も同じです。
hours[one]=an hour
hours[few]=some hours
hours={0} {1,number} hours {2}
ドキュメントまたは GWT (私は GWT 2.0.3 を使用しています) または私にバグはありますか? 前者のいずれかの場合、回避策を知っている人はいますか?
編集:この謎へのより多くの手がかり。デフォルトのロケール処理に依存しなければ、複数処理を機能させることができます。つまり、次が必要です。
私のモジュールの gwt.xml ファイルで:
<extend-property name="locale" values="en"/>
私のメッセージ拡張機能:
@DefaultLocale("en")
public interface MyMessages extends Messages { ...
URL に追加することにより、「en」ロケールを明示的にロードします
&locale=en
この質問を相互投稿したhttp://groups.google.com/group/google-web-toolkit/browse_thread/thread/80ae300213cc6adbを参照してください。
編集 2:この GWT の複数形に入った理由は、「GWT HUman Readable Relative Timestamps」モジュールを作成しているためです。GitHub でオープンソース化: http://github.com/PEZ/GWT-Relative-Timeぜひチェックしてみてください。まもなく、正しい単数形と一部の言語のサポートが提供される予定です。=)