¿Cómo mostrar las cadenas de site_texts a temas y componentes de tema?

He creado Tocic Share pero quiero usar el ejemplo predeterminado js.share.facebook. Sin embargo, según este artículo, lo escribí mal y no se muestra.

¿Podrías indicarme cómo mostrarlo correctamente en lugar de agregar nuevas palabras al tema?

Probé con: I18n.t(themePrefix("my_translation_key"))

Agrega esto en la parte superior de tu componente

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

Luego puedes usar algo como esto cuando necesites utilizar el texto predeterminado de Discourse

I18n.t("CLAVE_DE_TRADUCCION")

Por ejemplo, esto

h('span', 'Compartir en Facebook')

se convierte en

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

Muchas gracias. :smile:

Sin esta línea, i18n funciona correctamente. De lo contrario, se produce el error: “Could not find module I18n”.

Eso depende de tu versión de Discourse. Anteriormente, I18n estaba definido globalmente, por lo que no era necesario importarlo en versiones antiguas de Discourse.

Si tu sitio está en un commit reciente como el del OP, entonces necesitas importarlo o requerirlo.

¿Es automático o modificaste manualmente 352 archivos cambiados? :roll_eyes:

@wyudong Usé h("span", I18n.t("share.facebook")). No es necesario agregar const I18n = require ("I18n"). default;.

No estoy seguro de entender. ¿Podrías aclarar qué quieres decir aquí?

Me pregunto si tienes que cambiar cada archivo y luego hacer commit. ¿O se puede hacer automáticamente (cambiar varios archivos a la vez)?
Esta pregunta no es importante. Si con conocimiento personal tal vez cambiaré cada archivo y me llevará todo el día :frowning:
GIT, no tengo mucha experiencia.

Gracias por aclararlo :+1:

Sí, actualizar manualmente más de 300 archivos tomaría mucho tiempo. Los archivos se actualizaron con un script que creó Mark.