Мне известно о любом существующем решении, но вот некоторые идеи, которые у нас были:
- Храните переводы в каталоге вне приложения. Таким образом, они не попадут в файлы JAR, поэтому вы можете изменить их во время выполнения.
- Убедитесь, что пакеты ресурсов можно обновить (например, с помощью шины событий или прослушивателя, который можно вызывать при изменении текста)
Добавить "режим перевода" в приложение. Немного JavaScript и тщательный дизайн HTML позволят сделать каждый текст из пакета ресурсов «редактируемым», нажав на него. Используйте AJAX, чтобы отправить событие изменения обратно на сервер и обновить пакет ресурсов.
Таким образом, переводчики могут выполнять свою работу в действующей системе, чтобы они могли видеть онлайн , что необходимо изменить (вы можете дать текстам класс CSS в зависимости от того, были ли они или должны быть) перевод) и как выглядит перевод и т. д.
[EDIT]
Я имею в виду вне файла WAR . В противном случае вам нужно будет заново создавать WAR каждый раз, когда изменяется перевод.
Кроме того, вы можете поместить файлы свойств в WEB-INF / classes (вместе с обычными файлами классов) и использовать небольшой скрипт для замены файлов в WAR.
В сценарии пакетной обработки / оболочки используйте jar -u
для замены существующих файлов. В ant используйте старый файл WAR в качестве источника через zipfileset
, сначала добавьте новые файлы и используйте duplicate="preserve"
.
Таким образом, вам не нужно снова сжимать весь файл.