Play 2.0 / Java でカスタム DateFormatter を作成しました。これは、デフォルトのものは i18n に対応していないように見えるためです (実装の詳細はここでは関係ありません)。
public class DateFormatter extends Formatters.SimpleFormatter<Date>
私のアプリケーション構成には
application.langs="pt-br, en"
ブラウザ オプションで定義された言語には、これら 2 つが含まれます (accept-language)
論理的には、 Lang.preferred(List) は pt-br を優先言語として返します
@Override
public Action onRequest(Request request, Method method) {
Lang preferred = Lang.preferred(request.acceptLanguages());
Logger.debug("Preferred language is " + preferred.toLocale());
return super.onRequest(request, method);
}
しかし(そして悲しいことに)
私のカスタム DateFormatter によって受信されたロケール
@Override
public Date parse(String date, Locale locale) {
...
}
システムの(JVM) ロケールであり、en-US であり、優先されるものではありません。
これは正常ですか?ここで何が欠けていますか?