我在播放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