为自定义标题链接制作主题翻译

你好,朋友,我想为这个组件制作主题翻译。
我已经阅读了关于多语言支持的文档:Add settings to your Discourse theme

并且我发现这个主题 GitHub - discourse/DiscoTOC: A Discourse theme component that generates a table of contents for topics with one click · GitHub 具有主题翻译功能。

但我不清楚如何开始为这个主题组件制作翻译,
能否提供一些指导?

1 个赞

我正在尝试修改 David Taylor 的主题中使用的这段代码:

I18n.t(themePrefix("my_translation_key"))

参考链接:Add localizable strings to themes and theme components

<script type="text/discourse-plugin" version="0.8.20">
  // 为 <html> 标签添加一个属性。这可能有助于用户对其头部链接进行样式设置
  $('html').attr('dhp-locale', I18n.locale)

  const customHeaderLinks = I18n.t(themePrefix("header_nav_link"));
  if (!customHeaderLinks.length) return;

  const h = require("virtual-dom").h;
  const headerLinks = [];

  const mobileView = api.container.lookup("site:main").mobileView;
</script>

并添加一个 locales/en.yml 文件。

但得到的结果是 [en.theme_translations.87.header_nav_link]

……所以我是不是哪里做错了?

1 个赞

不,您没有做错任何事。该组件目前尚不支持主题翻译,但更新它已在我的计划中。

您是否正在尝试为每个链接翻译文本,以便根据用户的语言偏好显示?

3 个赞

是的,Johani,我将此组件用作菜单。正如您所说,我想翻译每个链接的文本。这已在您的列表中,我非常高兴,您可以完成它。:blush::blush::blush:

1 个赞

哈哈,我有一个想法:
我可以使用这个组件来实现双语网站。
我可以创建一些中文分类和一些英文分类,
并将此组件用作主导航。
标题链接将包含在翻译本地化文件 en.yml 和 zh_CN.yml 中。

首页和分类页面,我可以使用一个已翻译的主题组件(即使是静态页面)来实现。
同时隐藏默认的“分类下拉菜单”。
在我看来,我们的网站仅使用两种语言就足够了。

1 个赞

哈哈,我明白了,只需将 header.html 的内容移动到 head_tag.html 即可。

从“重新阅读此主题”中获取相关信息。

https://meta.discourse.org/t/how-to-add-settings-to-your-discourse-theme/82557/14?u=aksoforever

感谢 Johani 和这位 Joe 先生。:blush: :blush: :blush: :blush:

3 个赞