Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > динамическое подключение языков


Автор: integral 4.12.2008, 12:07
всем здрасте, 
есть такая задача: имеем веб-приложение на основе Struts, и три перевода оформленные стандартно в виде application_xx.properies; это пакуется в джар. Хотим дать пользователю возможность самому добавлять новые языки (т.е. файлы пропертиес). Т.е. сохраняем файл с переводом и потом нужно этот перевод подхватить в приложение. Перевод, понятно что, сохраняем не в джар, а где-то рядом - в папку на том же уровне что и WEB-INF.  Подскажите плиз, как такое сделать? куда копать?
заранее спасибо

Автор: MisterCleric 4.12.2008, 13:59
Привет. Хорошо, ты-то положешь эти файлы куда-то. А как они себя должны ввести после перезапуска приложения?
У меня что-то типа такого есть: обмен файлов между пользователями. Так вот для таких случаев я создал папку на сервере приложений. И туда их пишу и от туда читаю.
Поскольку у тебя используется Стратс. То придется отнаследовать его TextProvider, что бы он мог читать пользовательские бандлы из определенного места, не принадлежащего самому приложению

Автор: integral 4.12.2008, 14:08
спасибо за ответ
я их ложу в папку lang, расположена в одном уровне с WEB-INF, т.е. как бы в самом приложении, после перезагрузки никуда не денутся
так а как сделать, что бы на ряду с переводом с файлов расположеных стандартно (внутри джара) подтягивался перевод и с этих файлов?

Цитата

Поскольку у тебя используется Стратс. То придется отнаследовать его TextProvider

что пронаследовать?

Автор: MisterCleric 4.12.2008, 14:24
Если, честно, то я не разбирался в Стратс1, в Стратс2 используется xwork, у которого есть механизм чтения пропертисов TextProvider и т.д. В деталях не разбирался, но уверен, что где-то у него указывается откуда читать эти файлы. Т.е. можно смело его переопределить и по дефолту использовать как стандартный, а по нужде читать из твоей указанной папки.
Вообще в данном случае тебе бы помог Spring. У него есть отличные механизмы читать файлы и строить фабрики для пропертисов

как пример:

Код

 <bean id="propertiesService"
          class="org.springframework.beans.factory.config.PropertiesFactoryBean">
        <property name="singleton" value="true"/>
        <property name="location" value="[path]/props.properties"/>
    </bean>


Да и вообще есть у спринга классы для работы с локализованными мессеждами. Подумай...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)