java struts2 internationalization interceptor

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.