Texto de cabeçalho de boas-vindas %{site_name} gera erro: A seguinte chave de interpolação é inválida: site_name

A chave de interpolação a seguir é inválida: site_name

1 curtida

Acho que "Site_text" não está disponível. Quando tento editar o texto em /admin/customize/site_texts/js.welcome_banner.header.new_members?locale=en, vejo que apenas o nome está disponível.


Acho que site_name só está disponível para usuários anônimos. Acho que a descrição precisa de uma atualização.

3 curtidas

Certo, obrigado pela informação, por enquanto estou usando CSS para colocar o nome do site. Estava apenas com um problema para sublinhá-lo no texto de boas-vindas.

Por algum motivo, apenas %site_name funciona para visitantes anônimos.

Eu gostaria de fazer:

Bem-vindo(a), %{preferred_display_name}, ao %{site_name}!

Mas não é possível fazer isso, está dificultando ajustes de sublinhado/CSS nesta área.

Isso faz sentido. Eles não fizeram login, então não sabemos quem são. Não há um nome para eles no banco de dados.
É como quando alguém que você não conhece toca a campainha; você não conseguirá cumprimentá-lo pelo nome até que ele se apresente.

1 curtida

Sim, mas eu gostaria de usar esse %site_name para usuários logados também :smiley:

Obrigado por relatar! Parece que eu prometi demais sobre quais variáveis estavam disponíveis… Tenho uma atualização a caminho que corrigirá isso.

3 curtidas

Então ainda não podemos adicionar %{site_name} se o usuário estiver logado?

Hmm… parece que sim:


Eu suponho que você possa exibir o nome do site com um Componente de Tema fazendo uma requisição para /about.json e obtendo o título do site (eu olhei o serviço site e não encontrei nada sobre o título do site).

O serviço siteSetting pode funcionar para obter o valor da configuração do site title

1 curtida

Eu investiguei isso, o impedimento aqui não é acessar o valor de title. É que o backend valida traduções extraindo chaves de interpolação válidas das strings do locale padrão.

Então, quando %{site_name} não está na string padrão, o backend a rejeitará como uma “chave de interpolação inválida”.

3 curtidas

Eu não sei qual é a ideia do @NateDhaliwal. Eu só queria apontar uma alternativa para um pedido adicional ao /about.json.

Eu acho que um componente personalizado que copia o banner de boas-vindas, mas fornece a chave site_name para todos os textos, seria o caminho a seguir.
Ou um PR que adiciona site_name como chave disponível aos textos para usuários logados no core.

  get headerText() {
    if (!this.currentUser) {
      return i18n("welcome_banner.header.anonymous_members", {
        site_name: this.siteSettings.title,
      });
    }

    const isNewUser = !this.currentUser.previous_visit_at;
    const key = isNewUser
      ? "welcome_banner.header.new_members"
      : "welcome_banner.header.logged_in_members";

    return i18n(key, {
      preferred_display_name: sanitize(
        prioritizeNameFallback(this.currentUser.name, this.currentUser.username)
      ),
+     site_name: this.siteSettings.title,
    });
  }
5 curtidas

@hipp0 obrigado novamente por levantar isso! Enviamos uma atualização que torna a variável site_name disponível em todos os três campos de cabeçalho:

3 curtidas

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.