0

我在 JBoss AS 6 上使用 seam 2.2.2.Final 和 Richfaces 3.3.3.Final。

我的申请被翻译成 2 种语言(荷兰语和英语)。

有时(从几小时到几天不等)Web 应用程序会丢失翻译。然后它只显示键的标签而不是翻译。

有人知道这是什么原因吗?

首先,我认为这可能是由荷兰语中使用的字符集引起的。然后我使用 native2ascii.exe 将文件转换为 ascii,但这并没有解决问题。

我正在使用 seam 中的默认 messages.properties 文件。在我的例子中,这些是messages_nl.properties 和messages_en.properties。在 JSF 中,我使用 EL-tags #{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

你用什么翻译?转换器?
getAsString 方法必须返回翻译后的字符串。
能发一下代码吗?

于 2012-05-30T15:28:08.153 回答
0

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

似乎接缝中的内部缓存被清除了(可能是在反序列化某些东西之后)。如果缓存(几乎)为空,我会再次读取包。

于 2012-11-08T13:40:22.370 回答