java - Struts 2(versión 2.3.28) solo acepta configuraciones regionales registradas
struts2 internationalization (1)
No, debes crear tu propio interceptor que amplíe i18n
y anule este método
protected Locale getLocaleFromParam(Object requestedLocale) {
Locale locale = null;
if (requestedLocale != null) {
locale = (requestedLocale instanceof Locale) ?
(Locale) requestedLocale :
LocalizedTextUtil.localeFromString(requestedLocale.toString(), null);
if (locale != null && LOG.isDebugEnabled()) {
LOG.debug("applied request locale=#0", locale);
}
}
if (locale == null) {
locale = Locale.getDefault();
}
return locale;
}
En Struts 2 versión 2.3.28, el interceptor i18n
solo acepta las configuraciones regionales que están registradas en jvm, la lista que es devuelta por Locale.getAvailableLocales()
.
Bueno, aunque puedo extender la lista de configuraciones regionales de Java disponibles, como se mencionó Cómo extender la lista de configuraciones regionales de Java disponibles , ¿hay alguna manera de establecer este interceptor para que acepte todas las cadenas como locale (por ejemplo, fa_IR
)?
Solo una nota: Establecer la configuración regional predeterminada en fa_IR
( <constant name="struts.locale" value="fa_IR" />
) funciona bien.