Существуют различные варианты, и они зависят от того, насколько уникальны страницы с таким большим количеством статического текста и сколько других компонентов JSF они содержат.
Один из вариантов - просто создать свои страницы в отдельных папках, соответствующих поддерживаемым вами языковым стандартам, и создать версии для каждого языкового стандарта. Затем, если вы используете Facelets, пусть эти страницы будут шаблонными клиентами основного шаблона, который содержит ваш общий фрейм сайта (верх, низ и т. Д.).
Это хорошо работает для страниц, которые в основном основаны на тексте. Вы выставите отдельный URL для каждой языковой версии. Например. www.example.com/en/my_page.xhtml ru www.example.com/nl/my_page.xhtml и т. д.
Если эти страницы содержат только несколько компонентов, вы можете включить их через интерфейс ui: include, но это может быстро стать грязным, и страницы для разных локалей могут не синхронизироваться. Чтобы бороться с этим, вы можете определить шаблон для каждой страницы. Этот шаблон сам по себе может быть шаблоном клиента общего мастер-шаблона и содержит все компоненты, необходимые для конкретной страницы. Конечный клиент этого шаблона затем заполняет большое количество статического текста.
Если вы не хотите показывать разные URL-адреса конечному пользователю, вы также можете включить динамическое добавление большого количества статического текста. Рассмотрим следующий простой Facelet:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
>
<h:body>
<ui:include src="#{facesContext.viewRoot.locale}/text.xhtml" />
</h:body>
</html>
(это всего лишь быстрый пример, вместо # {FaceContext.viewRoot.locale} вы также можете использовать вспомогательный компонент, над которым у вас может быть немного больше контроля)