У нас есть устаревшее приложение, которое использует Struts 1.2.9. В настоящее время приложение интернационализируется стандартным способом - .properties
файлов для всех ярлыков пользовательского интерфейса, ошибок, сообщений и т. Д .; <message-resouces>
определение для каждого файла .properties в struts-config.xml
по умолчанию Factory
& MessageResources
определения; <bean:message>
использование во всех JSP. Это отлично поработало до сих пор, но из-за того, что приложение само по себе является основой для услуг, используемых несколькими сотнями (да 100!!) Другими приложениями внутри компании.Struts 1.2.9 - Вопросы вокруг пользовательской интернационализации
У нас есть требование, чтобы расширить функциональные возможности i18n следующий образом:
- Определить пользовательский каталог для
.properties
файлов - так что это будет выходить за рамки классов; в основном не внутри пакета.war
. Идея состоит в том, чтобы поддерживать только изменения строки сообщения, не имея необходимости передислоцировать все приложение. - Этот настраиваемый каталог также будет содержать сообщения о поддерживаемых приложениях - это может быть только подмножество существующих или весь набор ресурсов, специально предназначенных для этого приложения.
- Пользовательский способ поддержки на основе запроса
Locale
установки - за исключением всех других соображений (стек по умолчанию, путь к классам/пакет Lookups и т.д.) это аналогично тому, какI18nInterceptor
работает в Struts2 с атрибутомrequestOnlyParameterName
, установленными вtrue
.
Да, я понимаю, что несколько 100 загруженных пакетов одновременно будут интенсивными в памяти, но это приемлемо в нашем случае.
Любая помощь приветствуется - будь то направление, образец кода и т.д.
Примечание: Я полностью согласен, что переход на новую платформу пользовательского интерфейса, вероятно, является лучшим решением. Но мы не можем.
TIA.
Похоже, реализовать собственные MessageResources и MessageResourcesFactory это путь. Мысли? – Ranga