我在播放2.0/Java的写了一个定制DateFormatter因为默认一个似乎是国际化,不知道(的实现细节这里无关紧要)Playframework 2.0.1DateFormatter接收系统区域
public class DateFormatter extends Formatters.SimpleFormatter<Date>
我的应用程序配置包含
application.langs="pt-br, en"
在浏览器选项中定义的语言都包含这两个(接受语言)
从逻辑上讲,Lang.preferred(名单)返回p T-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);
}
BUT(和可悲的是)
的语言环境中
@Override
public Date parse(String date, Locale locale) {
...
}
通过我的自定义DateFormatter收到是系统(JVM)区域,EN -US,而不是请求首选。
这是正常的吗?我在这里错过了什么?
通过观察源代码(https://github.com/playframework/Play20/blob/master/framework/src /play/src/main/java/play/data/format/Formatters.java#L203),我认为它实际上是一个错误,因为它没有从请求中获取Locale。您应该填写一个错误(https://play.lighthouseapp.com/projects/82401-play-20/overview)。 – 2012-07-16 08:16:30