【问题标题】:change images and/or css based on locale for i18n issues根据 i18n 问题的语言环境更改图像和/或 css
【发布时间】:2011-07-25 23:17:43
【问题描述】:

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

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

【问题讨论】:

    标签: image jsp spring-mvc internationalization


    【解决方案1】:

    您需要的是所谓的 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 文件。

    【讨论】:

    • 当你只支持 2 种语言时我喜欢这个想法,但想象一下如果你支持 10 多种语言会是什么样子。
    • @ogc-nick:当然,在这种情况下,标准 CSS L10n 机制是无用的,您需要构建自己的(即加载每种语言的 CSS,这将覆盖常规 CSS 文件中的默认值)。没有人说你需要坚持一种做事方法......
    猜你喜欢
    • 2015-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多