Chaves de interpolação para personalizar modelos de texto e e-mails do sistema

:bookmark: Este guia oferece uma visão detalhada das chaves de interpolação usadas para personalizar textos e modelos de e-mail do sistema no Discourse.

:person_raising_hand: Nível de usuário necessário: Administrador

Ao personalizar textos no Discourse ou personalizar modelos específicos de e-mail, você pode ter notado que existem variáveis de espaço reservado disponíveis em alguns modelos.

No Discourse, chamamos esses elementos de Chaves de Interpolação.

Entendendo as chaves de interpolação

As chaves de interpolação são espaços reservados disponíveis em determinados modelos do Discourse. Elas permitem que você insira conteúdo dinâmico em seus textos e modelos de e-mail.

Exemplo de Chaves de Interpolação para o modelo de e-mail Conta Criada:

Essas chaves, como %{username} ou %{site_name}, serão substituídas por dados reais quando o e-mail for enviado.

Em geral, esses espaços reservados podem ser movidos dentro do modelo ao qual pertencem, mas eles estão disponíveis apenas nesse modelo e não podem ser transferidos para modelos diferentes, pois todos são suportados por código do servidor vinculado ao modelo correspondente.

No entanto, certos grupos de modelos permitem a adição de chaves de interpolação adicionais além das já presentes no modelo padrão.

Chaves de Interpolação Adicionais

Mensagem de Boas-vindas do Sistema

Para os modelos system_messages.welcome_user, você pode adicionar as seguintes chaves adicionais:

  • username: O nome de usuário do usuário
  • name: O nome completo do usuário
  • name_or_username: O nome completo do usuário ou o nome de usuário

Esses valores são fornecidos pela classe SystemMessage em tempo de execução (consulte system_message.rb para o código relacionado do Discourse).

E-mails de Notificação do Usuário

Para user_notifications e modelos de e-mail relacionados (incluindo unsubscribe_mailing_list e unsubscribe_link), muitas chaves adicionais estão disponíveis, incluindo topic_title, username, site_name, url, unsubscribe_url e outras.

Para a lista completa e atualizada de todas as chaves de interpolação personalizadas permitidas e os grupos de modelos aos quais elas se aplicam, consulte ALLOWED_CUSTOM_INTERPOLATION_KEYS no código-fonte do Discourse para translation_override.rb.

9 curtidas

Isso não está correto. Atualmente, isso funciona apenas para system_messages.welcome_user, mas poderíamos estender isso para todas as outras chaves. Este é material para pr-welcome.

4 curtidas

Obrigado por apontar isso, isso foi atualizado no guia.

2 curtidas

Olá!

Como posso modificar o valor de algumas dessas chaves de interpolação? Por exemplo, %{search_answer}

Obrigado!

Olá!
Diz que esta chave não é válida:

P.S.
Estou substituindo no texto, não no e-mail (faz diferença)? Obrigado!

Não acho que esses sejam globais e gratuitos para usar em todos os lugares.

1 curtida

Obrigado @Jagster! Estou usando-os na personalização de texto, então, com base na postagem do tópico, deveria funcionar?

O tópico é, na verdade, sobre modelos de e-mail e esses textos. Portanto, você não pode usar chaves de interpolação fora do contexto correto. É por isso que temos outras chaves para e-mails, outras para alguns prompts de IA, etc.

Claro, plugins podem fazer muitas coisas, mas desta vez não de forma nativa.

E aviso: sou apenas mais um usuário final e posso estar completamente errado também. Mas tenho certeza de que estou certo — e é por isso que sua tentativa não funciona :man_shrugging:

Ok, muito obrigado pelo seu apoio. Parece que não está funcionando nem mesmo em um modelo de e-mail:

Minha aposta é que você pode usar %{username} em modelos “User did…”, e todos os outros modelos não o suportam.

Mas veremos amanhã, quando todos os gurus acordarem.