Come mostrare le stringhe site_texts ai temi e ai componenti del tema?

Ho creato Tocic Share ma vorrei utilizzare l’esempio predefinito js.share.facebook. Tuttavia, secondo questo articolo, l’ho scritto in modo errato, quindi non viene visualizzato.
Potresti mostrarmi come visualizzarlo correttamente invece di aggiungere nuove parole al topic?

Ho provato: I18n.t(themePrefix("my_translation_key"))

Aggiungi questo nella parte superiore del tuo componente

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

Puoi quindi utilizzare qualcosa del genere quando hai bisogno di usare il testo predefinito di Discourse

I18n.t("CHIAVE_DI_TRADUZIONE")

Ad esempio, questo

h('span', 'Condividi su Facebook')

diventa

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

Mille grazie. :smile:

Senza questa riga, i18n funziona correttamente. Altrimenti, si verifica un errore: “Could not find module I18n”.

Dipende dalla versione di Discourse che stai utilizzando. In passato I18n era definito a livello globale, quindi non era necessario importarlo nelle versioni più vecchie di Discourse.

Se il tuo sito è su una commit recente come quella menzionata dall’OP, allora devi importarlo o richiederlo.

È automatico o hai modificato manualmente 352 file cambiati? :roll_eyes:

@wyudong Ho usato h("span", I18n.t("share.facebook")). Non c’è bisogno di aggiungere const I18n = require ("I18n"). default;.

Non sono sicuro di aver capito. Potresti chiarire cosa intendi?

Mi chiedo se si debba modificare ogni file e poi fare il commit, oppure se sia possibile farlo automaticamente (modificando più file in una volta).
Questa domanda non è importante. Se dovessi basarmi solo sulle mie conoscenze, probabilmente modificherei ogni file e ci metterei tutto il giorno :frowning:
GIT, non ho molta esperienza.

Grazie per aver chiarito :+1:

Sì, aggiornare manualmente oltre 300 file richiederebbe molto tempo. I file sono stati aggiornati con uno script creato da Mark.