Как отображать строки site_texts для тем и компонентов тем?

Я создал тему для 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 работает нормально. В противном случае возникает ошибка: “Could not find module I18n”.

Это зависит от вашей версии Discourse. Раньше I18n определялся глобально, поэтому в старых версиях Discourse его не нужно было импортировать.

Если ваш сайт работает на свежем коммите, как в исходном посте, то вам нужно его импортировать или подключить.

Это автоматически или вы вручную изменили 352 изменённых файла? :roll_eyes:

@wyudong Я использовал h("span", I18n.t("share.facebook")). Нет необходимости добавлять const I18n = require ("I18n"). default;.

Я не совсем понял. Не могли бы вы уточнить, что вы имеете в виду?

Меня интересует, нужно ли менять каждый файл по отдельности и затем делать коммит, или это можно сделать автоматически (изменить несколько файлов сразу). Этот вопрос не очень важен. Если действовать вручную, возможно, мне придется менять каждый файл, и это займет целый день :frowning: С GIT у меня не так много опыта.

Спасибо за уточнение :+1:

Да, обновление более 300 файлов вручную заняло бы очень много времени. Файлы были обновлены с помощью скрипта, который создал Марк.