我在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");
答案 0 :(得分:0)
你在翻译什么?转换器?
getAsString方法必须返回已翻译的字符串
你可以发布代码吗?
答案 1 :(得分:0)
我最终通过创建自己的消息组件实现来解决这个问题。
看起来接缝中的内部缓存被清除(可能在反序列化之后)。如果缓存(几乎)为空,我再次读取包。