seam 2.2.2.Final looses翻译

时间:2012-05-30 14:07:01

标签: internationalization richfaces translation seam seam2

我在JBoss AS 6上使用了带有Richfaces 3.3.3.Final的seam 2.2.2.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']}" />

在Code中我使用

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

2 个答案:

答案 0 :(得分:0)

你在翻译什么?转换器?
getAsString方法必须返回已翻译的字符串 你可以发布代码吗?

答案 1 :(得分:0)

我最终通过创建自己的消息组件实现来解决这个问题。

看起来接缝中的内部缓存被清除(可能在反序列化之后)。如果缓存(几乎)为空,我再次读取包。