使主题翻译可从 CSS 访问

实际上,主题设置可以通过 CSS 访问,但无法进行主题翻译。

如果能使其可翻译就太好了。

例如,在 DiscoTOC 主题组件中,我们有以下设置:

在 CSS 中使用:

通过 CSS 添加文本是一种不得已的变通方案,因为它不具备可访问性。我认为我们不应通过提供额外功能来支持这种做法,从而变相鼓励它。

8 个赞

不过,通过插件能否实现这样的功能呢?

一个用于在 SCSS 中启用翻译的插件……理论上什么都有可能实现,但会非常混乱。例如,你需要为每种语言环境分别编译不同的 CSS 资源。我强烈建议不要尝试这样做。

一个可能的想法……但绝非推荐(也就是说,如果你尝试这样做,后果自负 :P)

我明白这是个糟糕的主意

你可以在主题 JavaScript 中这样操作:

document.documentElement.style.setProperty('--my-translation-name', `"${ I18n.t(themePrefix("my-translation-name")) }"`);

然后在 CSS 中:

&:before {
    content: var(--my-translation-name);
  }

这可能会以多种方式失效——如果你在翻译中放入引号或特殊字符,就会出错。如果你在 IE11 中尝试使用它,也会出错。

5 个赞

我也不支持在主题 CSS 中提供翻译访问权限 :+1:

至于你帖子中的示例 @evantill,该主题组件的下一个更新将移除它。

8 个赞

此主题在 3 小时后自动关闭。不再允许新回复。