Обычно, если вы используете шаблонизатор, такой как Sitemesh или Velocity , вы можете более эффективно управлять этими меньшими HTML-строительными блоками в виде подшаблонов.
Тем самым вы можете постепенно свести строки, которые являются чисто интернационализированными, в группы и сделать их соответствующими этим подшаблонам разметки. Выполнив такую работу с использованием шаблонов для приложения, которое охватывает несколько языков в одной и той же локали, а также в нескольких локалях, мы никогда не размещали разметку в наших пакетах сообщений.
Я бы предположил, что ключевой хорошей практикой было бы избегать размещения разметки (даже на низком уровне, как вы ее указали) внутри файлов свойств сообщений любой ценой! Потенциал раскрытия ада это не следует упускать из виду - кусать пули и правильно разбивать вещи - гораздо меньшая проблема, чем необходимость управлять многими файлами с разбросанной разметкой HTML. Важно, чтобы вы могли визуализировать разметку как целостные куски и разброс, которые повсюду сделали бы повседневную разработку рутиной, поскольку:
- Вы потеряете цветную подсветку IDE и проверку синтаксиса
- Высокая вероятность того, что тот или иной файл локали может быть легко пропущен, когда изменения в дизайне / наценке не удаляются
Разбить вещи (до реалистического момента, например, логические структуры предложений, но не лучше) - это довольно тяжелая работа, но она того стоит.
Что касается гранулярности разбивки строк, вот пример того, что мы сделали:
comment.atom-details=Subscribe To Comments
comment.username-mandatory=You must supply your name
comment.useremail-mandatory=You must supply your email address
comment.email.notification=Dear {0}, the comment thread you are watching has been updated.
comment.feed.title=Comments on {0}
comment.feed.title.default=Comments
comment.feed.entry.title=Comment on {0} at {1,date,medium} {2,time,HH:mm} by {3}
comment.atom-details=Suscribir a Comentarios
comment.username-mandatory=Debes indicar tu nombre
comment.useremail-mandatory=Debes indicar tu direcci\u00f3n de correo electr\u00f3nico
comment.email.notification=La conversaci\u00f3n que estas viendo ha sido actualizada
comment.feed.title=Comentarios sobre {0}
comment.feed.title.default=Comentarios
comment.feed.entry.title=Comentarios sobre {0} a {1,date,medium} {2,time,HH:mm} por {3}
Таким образом, вы можете делать интересные вещи с тем, как вы заменяете строку в пакете сообщений, что также может помочь вам сохранить его логическое значение, но позволит вам манипулировать им в середине предложения.