根据i18n问题的区域设置更改图像和/或CSS

时间:2011-03-30 09:39:30

标签: image jsp spring-mvc internationalization

我使用spring MVC,我已经安排使用ReloadableResourceBundleMessageSource和spring forms taglib的消息标记,根据JSP表单中的语言环境更改消息。但我想要的是根据区域设置更改图像。图像在JSP中的CSS文件和IMG标签中。

有哪些选择?我在春天知道主题,但我不知道如何将它们附加到LocaleChangeInterceptor。

1 个答案:

答案 0 :(得分:4)

您需要的是所谓的CSS本地化机制。

有几种可行的方法可以做到这一点。内置的标准方法是使用CSS:lang伪选择器和写下lang属性以符合用户界面语言:

<html>
  <head>
    <style type="text/css">
      p:lang(en) {color:blue; background: white;}
      p:lang(pl) {color: white; background: red;}
    </style>
  </head>
  <body>
    <p lang="en">Some English text.</p>
    <p lang="pl">Jakiś Polki tekst.</p>
  </body>
</html>

你明白了。它只是有效,但不幸的是它会用大量不同的每种语言类定义来污染你的CSS文件。

否则,您需要开发自己的解决方案。据我所知,没有标准的解决方案(至少它不是公开的)。您可以通过两种方式解决问题:一种是创建自己的servlet,它将读取每种语言CSS文件的内容并将其提供给Web浏览器,另一种可能是创建自己的控制器并写下每种语言的路径渲染网页时的CSS文件。