0

JBossAS6でseam2.2.2.FinalwithRichfaces3.3.3.Finalを使用しています。

私のアプリケーションは2つの言語(オランダ語と英語)に翻訳されています。

時々(数時間から数日まで変化します)、Webアプリケーションは翻訳を失います。次に、キーのラベルとしてのみ表示され、翻訳は表示されません。

誰かがこれを引き起こす原因を知っていますか?

最初は、オランダ語で使用されている文字セットが原因である可能性があると思いました。次に、native2ascii.exeを使用してファイルをASCIIに変換しましたが、これで問題が解決しませんでした。

seamのデフォルトのmessages.propertiesファイルを使用しています。私の場合、これらはmessages_nl.propertiesとmessages_en.propertiesです。JSFでは、ELタグを使用します#{messages['key']}。数時間または数日後、アプリケーションはファイルを見つけることができなくなったようです。

私のfaces-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");
4

2 に答える 2

0

私は最終的に、メッセージコンポーネントの独自の実装を作成することでこれを解決しました。

シームの内部キャッシュがクリアされたようです(おそらく何かの逆シリアル化後)。キャッシュが(ほぼ)空の場合は、バンドルを再度読み取ります。

于 2012-11-08T13:40:22.370 に答える
0

翻訳には何を使っていますか?コンバーター?
getAsStringメソッドは、変換された文字列を返す必要があります。
コードを投稿してもらえますか?

于 2012-05-30T15:28:08.153 に答える