Недавно я унаследовал интернационализированное и насыщенное текстом веб-приложение Struts 1.1. Многие файлы JSP выглядят так:
<p>
<bean:message key="alert" />
</p>
и файлы свойств выглядят так:
messages.properties
alert=Please update your <a href="/address.do">address</a> and <a href="/contact.do">contact information</a>.
с соответствующими переводами на N других языков (messages_fr.properties и т.д.).
Проблемы:
- Нарушение DRY. У меня есть N ссылок на мои URL-адреса действий Struts вместо 1, что делает URL-адреса действий рефакторинга подверженным ошибкам.
- Смешанные проблемы. Разметка моего приложения теперь находится не только в моих JSP-файлах, что затрудняет настройку разметки (с использованием CSS и т. д.) для веб-специалиста.
- Разметка после перевода. Каждый раз, когда я получаю только что переведенный текст, я должен решить, что окружать разметкой
<a>...</a>
. Легко для английского, но не так для незнакомых языков.
Я подумал о добавлении заполнителей в файл сообщений, например:
alert=Please update your {0} and {1}.
но тогда слова «адрес» и «контактная информация» каким-то образом должны быть локализованы, обернуты разметкой и переданы в мой тег сообщения - и я не вижу простого способа сделать это.
Что я могу сделать, чтобы улучшить это?