如何在主题和主题组件中显示 site_texts 字符串?

我已创建 Topic Share,但想使用默认的 js.share.facebook 示例,但根据这篇文章,我的写法有误,导致无法显示。
能否展示如何正确显示,而不是为主题添加新词语?

我尝试过:I18n.t(themePrefix("my_translation_key"))

在组件顶部添加以下内容

const I18n = require("I18n").default;

之后,在需要使用默认 Discourse 文本时,可以使用如下方式:

I18n.t("TRANSLATION_KEY")

例如,将

h('span', 'Chia sẻ qua Facebook')

改为

h("span", I18n.t("share.facebook"))

非常感谢。:smile:

没有这一行时,i18n 可以正常工作。否则会出现错误:“找不到模块 I18n”。

这取决于您的 Discourse 版本。在旧版 Discourse 中,I18n 是全局定义的,因此无需导入。如果您的站点使用的是像 OP 中提到的较新提交,那么您需要导入或 require 它。

是自动的,还是你手动修改了 352 个文件?:roll_eyes:

@wyudong 我用了 h("span", I18n.t("share.facebook"))。不需要添加 const I18n = require ("I18n"). default;

我不太明白。你能澄清一下你的意思吗?

我想知道是否需要逐个修改文件然后提交,还是可以实现自动化(一次性修改多个文件)。这个问题并不重要,如果只能靠个人经验,我可能需要逐个修改文件,那得花上一整天 :frowning: 我对 GIT 不太熟悉。

感谢澄清 :+1:

是的,手动更新 300 多个文件会非常耗时。这些文件是由 Mark 编写的脚本更新的。