CSS 属性“内容”中的 i18n

And*_*mat 4 css internationalization less

我使用 Java Web(Spring 框架)和 LESS 作为 CSS 预处理器。

在我的项目中应用国际化时,我成功地迁移了 JSP 中的每条消息和 message.properties 文件中的 JS 代码。但我不知道是否可以在 CSS/LESS 代码中做同样的事情。我真的需要这样做,因为内容属性中有消息。

我已经看到使用:lang选择器的解决方案,但如果我可以从中央输入文件导入消息会更好。

Giu*_*lli 10

我迟到了,但我想指出另一个 Stack Overflow 问题的答案,结果证明您可以使用属性的attr()content,引用所选 HTML 元素上的属性。从链接的答案中无耻地复制示例,您可以将 HTML 元素编写为:

<div class="myclass" data-content="My Content"></div>
Run Code Online (Sandbox Code Playgroud)

并将以下 CSS 规则应用于它们:

.myclass:before {
    content: attr(data-content);
}
Run Code Online (Sandbox Code Playgroud)

实际上在页面上显示“我的内容”。这基本上意味着您现在可以将 Spring i18n 用作:

<div class="myclass" data-content="<s:message code="content"/>"></div>
Run Code Online (Sandbox Code Playgroud)

并完成到message.properties文件的迁移。

  • 我当时实际上已经解决了,但忘记将答案发布在这里。我以与您相同的方式解决了它,但更具体的选择器: `.translate-content[data-i18n-before]::before` 和 `.translate-content[data-i18n-after]::after` (2认同)