我在 Play 2.0 / Java 中编写了一个自定义 DateFormatter,因为默认的似乎是 i18n-unaware (实现细节在这里无关紧要)
public class DateFormatter extends Formatters.SimpleFormatter<Date>
我的应用程序配置包含
application.langs="pt-br, en"
浏览器选项中定义的语言包含这两种(接受语言)
逻辑上, 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,而不是请求首选的语言环境。
这是正常的吗?我在这里想念什么?