2012-05-30 6 views
0

Я использую шов 2.2.2.Final с RichFaces 3.3.3.Final на JBoss AS 6.шов 2.2.2.Final теряет переводы

Моя заявка переводится на 2-х языках (голландский и английский).

Иногда (варьируется от нескольких часов до нескольких дней) веб-приложение теряет переводы. Затем он отображает только ключевые слова, а не переводы.

Может кто-нибудь знать, что вызывает это?

Сначала я думал, что это может быть вызвано набором символов, используемым в голландском. Затем я преобразовал файлы в ascii с native2ascii.exe, но это не решило проблему.

Я использую файлы messages.properties по умолчанию из шва. В моем случае это messages_nl.properties и messages_en.properties. В JSF я использую EL-теги #{messages['key']}. через несколько часов или дней кажется, что приложение больше не может найти файлы.

Мой файл лица-config.xml содержит следующие параметры:

<?xml version="1.0" encoding="UTF-8"?> 
<faces-config version="1.2" xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xi="http://www.w3.org/2001/XInclude" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
    http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd"> 
    <application> 
     <view-handler>com.sun.facelets.FaceletViewHandler</view-handler> 
     <locale-config> 
      <default-locale>nl</default-locale> 
      <supported-locale>nl</supported-locale> 
      <supported-locale>en</supported-locale> 
     </locale-config> 
    </application> 
</faces-config> 

В JSF я использую это так:

<h:outputText value="#{messages['admin.scheduling.title']}" /> 

В кодексе я использую

Messages.instance().get("admin.scheduling.title"); 

ответ

0

В конечном итоге я решил это, создав собственную реализацию компонента сообщений.

Кажется, что внутренний кеш в шве очищается (возможно, после десериализации чего-то). Если кеш (почти) пуст, я снова читаю пакеты.

0

Что вы используете для перевода? Конвертер?
Метод getAsString должен возвращать переведенную строку.
Не могли бы вы выслать код?

+0

Привет @ Giant2, я использую пакеты сообщений на свой вопрос. Пожалуйста, дайте мне знать, если вам нужна дополнительная информация. – gadeynebram

+0

Шов, определяющий локаль, требуется JSF (и много раз я вижу, что это прослушивается). (главу 15.2 руководства). Чтобы отлаживать попытку обнаружения используемой локали каждый раз, когда она используется. Если вы видите, что он изменился в течение того же сеанса, вероятно, это зависит от достижения тайм-аута. – Giant2

+0

Я удалил конфигурацию в faces-config.xml и добавил конфигурацию '<международный: locale-config default-locale =" nl "supported-locales =" nl en "/>' to components.xml. Возможно, это улучшит работу. – gadeynebram