我有一個多語言的struts應用程序,最近我將struts從2.3.20升級到2.3.29。升級後,泰米爾語不起作用,即使我們選擇泰米爾語言,文本也會以英文顯示。泰米爾語言選項不支持struts 2.3.29
我在選擇泰米爾語言時檢查了語言環境設置,它是正確的,即request_locale = ta_IN。
我試着在我的自定義攔截器類中擴展I18nInterceptor,然後覆蓋如下的方法getLocaleFromParam()
方法。這也沒有奏效。
所以,請讓我知道你是否有任何解決這個問題的方法。
泰米爾語在Struts的2.3.20做工精細
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) {
logger.debug("applied request locale="+locale);
}
}
return locale;
}
的代碼似乎是正確的,你是怎麼加入這個攔截到STRUST?你刪除了struts的默認'i18n'攔截器嗎? –
請參考http://stackoverflow.com/questions/36245849/struts-2-version-2-3-28-only-accepts-registered-locales –
@AlirezaFattahi我提到了重寫getLocaleFromParam()方法的問題。我們如何使用未在JVM中註冊的區域設置。我沒有刪除默認堆棧。新的攔截器代碼如下。 <攔截> <攔截器名稱= 「langSelInterceptor」 \t類= 「com..LangInter」> 攔截> <攔截器堆棧名稱= 「newStack」> <攔截器參考名稱= 「langSelInterceptor」 /> <攔截器參考名稱= 「defaultStack」/> 攔截堆疊> 攔截> <動作名稱= 「loginTamilLocale」 類= 「com.Action」> <攔截-REF名稱= 「newStack」/> –