2011-01-12 3 views
1

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

<?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 // по умолчанию

Содержания выборки этих файлы «Messages_es.properties» является:

myText=España 

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

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

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

ответ

2

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

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

+0

Я попытался заменить все эти специальные буквы на формат \ uXXXX, однако браузеры браузера (Chrome и Safari) отображают ошибку: Entity 'u00E7' не определен –

+0

Это странно, поскольку они не должны быть разрешены веб-браузером, но на веб-сервере. Как именно вы загружаете и показываете их? Вы проверили связанную статью с тем, как она могла (и должна) быть выполнена? – BalusC

0

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

Смежные вопросы