在
jakarta.faces
中,这些是唯一可用的消息翻译(显示的消息取自位于 jakarta.faces.Messages
的这个 jar jakarta.faces-4.1.1):
我需要添加
Messages_it.properties
来管理意大利网站网页上的错误(针对表单验证错误)。
我所做的是:
resources
文件夹下jakarta.faces
但运行代码时似乎没有加载它,因为我总是得到英文翻译(所以基本上它会自动切换到默认翻译)。
我应该提到,如果我从一种语言切换到另一种语言,我可以完美地看到其他语言(en、fr、de、es)。但我无法加载新的(它是lang)。
我尝试将其添加到我的
faces-config.xml
作为resource-bundle
或message-bundle
,但再次没有成功。
<application>
<message-bundle>jakarta.faces.Messages</message-bundle>
</application>
可能我缺少一些基本配置。
将所有这些属性复制到 jakarta.faces 包下我自己的资源文件夹下
那是不必要的。除非您想覆盖默认翻译之一。您可以安全地删除所有未修改的属性文件并仅保留在您自己的
Messages_it.properties
文件中。
在同一目录中添加了一个文件“Messages_it.properties”以及所需的翻译
这应该可行。然而,
resources
文件夹的确切位置以及如何创建jakarta.faces
包的路径是不明确的。目前尚不清楚您正在使用哪种构建工具,但根据您之前提出的问题,您似乎正在使用 Maven。在这种情况下,Messages_it.properties
最终必须精确地结束
路径src/main/resources/jakarta/faces/Messages_it.properties
.
从您的屏幕截图来看,并不清楚
resources
文件夹本身所在的位置。在 WAR 应用程序的 Maven 项目结构中,有 2 个选项:src/main/resources
和 src/webapp/resources
。只有前者是正确的,因为它将最终出现在运行时类路径中,并且资源包文件需要通过类加载器加载。
也不清楚您是否创建了具有双重嵌套子文件夹的
resources/jakarta/faces
路径,还是具有单个嵌套子文件夹(字面名称为 resources/jakarta.faces
)的 jakarta.faces
路径。只有前者是正确的,就像普通 Java 包/类的情况一样。
我尝试将其作为资源包或消息包添加到我的 faces-config.xml 中,但再次没有成功。
那是不必要的。您唯一需要确保的是
it
是 <supported-locale>
中 <application><locale-config>
的显式配置的 faces-config.xml
之一。
例如
<application>
<locale-config>
<default-locale>en</default-locale>
<supported-locale>de</supported-locale>
<supported-locale>es</supported-locale>
<supported-locale>fr</supported-locale>
<supported-locale>it</supported-locale>
...
</locale-config>
</application>
再次确认,
<f:view locale="#{...}">
还必须明确引用 it
区域设置。另请参阅 JSF 中的本地化,如何记住每个会话而不是每个请求/视图选择的区域设置。