j'ai écrit une coutume DateFormatter en jeu 2.0/Java, car celui par défaut semble être i18n-pas au courant (les détails de mise en œuvre ne sont pas pertinentes ici)play framework 2.0.1DateFormatter reçoit paramètres régionaux du système
public class DateFormatter extends Formatters.SimpleFormatter<Date>
Ma configuration de l'application contient
application.langs="pt-br, en"
Les langues définies dans les options du navigateur contiennent ces deux (accepter langue)
Logiquement, Lang.preferred (Liste) retourne p t-br comme langue préférée comme dans
@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);
}
MAIS (et assez tristement)
les paramètres régionaux reçus par mon DateFormatter personnalisé dans
@Override
public Date parse(String date, Locale locale) {
...
}
est le lieu de système (JVM), en -US, et ne pas en demander un préféré.
Est-ce normal? Qu'est-ce que j'oublie ici ?
En regardant le code source (https://github.com/playframework/Play20/blob/master/framework/src /play/src/main/java/play/data/format/Formatters.java#L203), je pense que c'est en fait un bogue car il n'obtient pas le Locale de la requête. Vous devriez remplir un bug (https://play.lighthouseapp.com/projects/82401-play-20/overview). –