JSF2中的图像i18n

时间:2011-01-27 12:26:51

标签: java jsf internationalization jsf-2

我正在尝试在JSF中本地化图像,我希望用户能够在我的网站上设置他们的区域设置。这是我打电话给

FacesContext.getCurrentInstance().getViewRoot().setLocale(_locale);

效果很好,但有一个例外:

<h:graphicImage library="images" name="pic.gif" />

使用浏览器请求中发送的Accept-Language来确定要使用的区域设置。我可以通过在每个.properties文件中放置一个区域设置字符串并通过

引用图像来解决此问题
<h:graphicImage library="#{resource.locale}/images" name="pic.gif" />

但是单个图像没有后退,因此我必须在每个区域设置的目录中拥有每个图像的副本,无论它是否不同。这非常麻烦,因为我支持9个语言环境,将来可能会支持更多语言环境。任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:2)

有趣的问题。但是,没有内置的支持,不是JSF,也不是Java EE的残余。你最好的办法是创建一个Servlet来了解后备语言环境,从而基本上做了以下测试:

if (getServletContext().getResource(request.getPathInfo()) == null) {
    // Display fallback image instead.
}

你最终可以通过自定义的JSF组件执行此操作,该组件执行相同的检查。