У меня есть приложение для многоязычных расположений, и я недавно обновил стойки с 2.3.20 до 2.3.29. После обновления язык тамилов не работает, даже если, если мы выберем тамильский язык, тексты будут показаны на английском языке.Тамильский язык не работает в распорках 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? Удалили ли вы перехватчик 'i18n' по умолчанию struts? –
Обратитесь к 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"> <-перехватчик исх имя = «newStack» /> –