Como mostrar as strings de site_texts para temas e componentes de tema?

Criei o Tocic Share, mas quero usar o exemplo padrão js.share.facebook. Mas, de acordo com este artigo, escrevi errado, então não aparece.

Pode me mostrar como exibir corretamente, em vez de adicionar novas palavras ao tópico?

Tentei: I18n.t(themePrefix("my_translation_key"))

Adicione isso no topo do seu componente

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

Em seguida, você pode usar algo assim quando precisar utilizar o texto padrão do Discourse

I18n.t("CHAVE_DE_TRADUCAO")

Por exemplo, isso

h('span', 'Compartilhar no Facebook')

torna-se

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

Muito obrigado. :smile:

Sem esta linha, o i18n funciona normalmente. Caso contrário, ocorre o erro: “Could not find module I18n”.

Isso depende da sua versão do Discourse. O I18n costumava ser definido globalmente, então você não precisava importá-lo em versões mais antigas do Discourse.

Se o seu site estiver em um commit recente como o do OP, então você precisa importá-lo ou exigí-lo.

É automático ou você alterou manualmente 352 arquivos modificados? :roll_eyes:

@wyudong Eu usei h("span", I18n.t("share.facebook")). Não há necessidade de adicionar const I18n = require ("I18n"). default;.

Não tenho certeza se entendi. Poderia esclarecer o que você quis dizer aqui?

Estou me perguntando se é necessário alterar cada arquivo e depois fazer o commit. Ou se há uma forma automática (alterar vários arquivos de uma vez).Essa pergunta não é importante. Se depender apenas do meu conhecimento, talvez eu precise alterar cada arquivo e isso vai levar o dia todo :(GIT, eu não tenho muita experiência.

Obrigado por esclarecer :+1:

Sim, atualizar mais de 300 arquivos manualmente levaria muito tempo. Os arquivos foram atualizados com um script criado pelo Mark.