Сделать сайт JSF многоязычным - PullRequest
1 голос
/ 12 января 2011

Попытка сделать веб-приложение JSF многоязычным.Для этого закройте весь HTML-код тегами <f:view>:

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html>
<html xmlns= ... >

<f:view locale="#{actionsContainer.languageDetails.locale}">
  <head>
    <meta charset="utf-8" />
    <f:loadBundle basename="messages.Messages" var="key" />
  </head>
  <body>
    <h:outputText value="#{key.myText}" />
  </body>
</f:view>
</html>

Чем в ресурсах у меня есть несколько файлов 'Messages.properties' с переводами на некоторые языки:

  • Messages_en.properties
  • Messages_es.properties
  • Messages.properties // default

Пример содержимого этих файлов 'Messages_es.properties':

myText=España

Давайте возьмем, моя локаль - "es", а затем испанский файл перевода загружает его значение и отображает на экране.Однако специальные символы (например, «ñ») не отображаются должным образом в выводе браузера.Вместо специальных испанских букв я получаю что-то вроде этого «Ã³».

Я попытался сохранить файл .properties с кодировкой UTF-8, без спецификации.И вывод был изменен на что-то вроде этого «».

И поэтому вопрос в том, как мне получить эти специальные языковые буквы в выводе?!

Ответы [ 2 ]

2 голосов
/ 12 января 2011

Файлы свойств по умолчанию считываются с использованием кодировки ISO-8859-1.Вам необходим инструмент JDK native2ascii для преобразования файлов свойств UTF-8 в файлы свойств ISO-8859-1 и последующего их использования.

В JSF вы также можете указать пользовательский ResourceBundle с Controlпри этом вы переопределяете чтение файлов свойств вместо UTF-8.Смотрите также эту статью .

0 голосов
/ 13 января 2011

при работе с пакетами ресурсов рассмотрите возможность использования плагина ResourceBundle Editor для eclipse (http://sourceforge.net/projects/eclipse-rbe/).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...