API тега сообщения сообщения позволяет
только 5 параметрических аргументов
Ах! Я обвиняю в своем полном незнании API Struts.
Цитировать руководство :
Некоторые функции в этом taglib
также доступны в JavaServer
Библиотека стандартных тегов страниц (JSTL).
Команда Struts поощряет использование
стандартные теги по конкретным Struts
теги, когда это возможно.
Возможно, вы могли бы сделать это с помощью тега http://java.sun.com/jsp/jstl/fmt.
<fmt:bundle basename="messages">
<fmt:message key="alert">
<fmt:param value='<a href="/">' />
<fmt:param value="</a>" />
<fmt:param value='<a href="/">' />
<fmt:param value="</a>" />
</fmt:message>
</fmt:bundle>
Недостатком является то, что это недопустимый XML, и восстановление значений переменных требует большего количества косвенных ссылок, поисков и многословия. Это не хорошее решение.
Я не знаю Struts, но если это что-то вроде JavaServer Faces (того же архитектора), то, вероятно, есть поддержка для настройки элемента управления заменой. Я бы либо заменил существующий элемент управления на более гибкий, либо добавил бы новый.
Каждый раз, когда я получаю только что переведенный
текст, я должен решить, что окружать
с разметкой <a>...</a>
.
Нет такого способа, которым вы должны это делать, и я считаю это ошибкой в вашем процессе перевода (я бывший инженер по локализации и бывший разработчик инструментов локализации). Символы {0}
должны быть включены в файлы, отправляемые переводчикам. Рекомендации по локализации должны объяснять контекст строки и значение любых переменных.
Вы можете программно проверять пакеты свойств по возвращении. Специфичные для строк регулярные выражения могут помочь. Не исключено, что «адрес» и «контактная информация» поменяются местами во время перевода.
Самое простое решение - изменить дизайн сообщений:
<a href="/address.do">Please update your address.</a>
<a href="/contact.do">Please update your contact information.</a>
Я согласен, что это не может быть решением во всех случаях, и ваш дизайнер UI может выплевывать зубы.