Testo dell'intestazione di benvenuto %{site_name} dà errore: La seguente chiave di interpolazione non è valida: site_name

La seguente chiave di interpolazione non è valida: site_name

1 Mi Piace

Penso che "Site_text" non sia disponibile. Quando provo a modificare il testo in /admin/customize/site_texts/js.welcome_banner.header.new_members?locale=en vedo che è disponibile solo il nome.


Penso che site_name sia disponibile solo per gli utenti anonimi. Immagino che la descrizione debba essere aggiornata.

3 Mi Piace

Va bene, grazie per l’informazione, per ora sto usando il CSS per inserire il nome del sito. Stavo solo avendo problemi a sottolinearlo nel testo di benvenuto.

Per qualche motivo solo %site_name funziona per i visitatori anonimi.

Vorrei fare:

Benvenuto, %{preferred_display_name}, su %{site_name}!

Ma non è possibile farlo, sta rendendo difficili gli aggiustamenti di sottolineatura/CSS in quest’area.

Ha senso. Non hanno effettuato l’accesso, quindi non sappiamo chi siano. Non c’è un nome per loro nel database.
È come quando qualcuno che non conosci suona al campanello; non sarai in grado di salutarlo per nome finché non si presenta.

1 Mi Piace

Sì, ma vorrei usare quella %site_name anche per gli utenti loggati :smiley:

Grazie per la segnalazione! Sembra che abbia promesso troppo riguardo alle variabili disponibili… Ho un aggiornamento in arrivo che correggerà questo problema.

3 Mi Piace

Quindi non possiamo ancora aggiungere %{site_name} se l’utente è connesso?

Hmm… sembra proprio di sì:


Suppongo che potresti essere in grado di visualizzare il nome del sito con un Componente Tema facendo una richiesta a /about.json e ottenendo il titolo del sito (ho controllato il servizio site e non ho trovato nulla riguardo al titolo del sito).

Il servizio siteSetting potrebbe funzionare per ottenere il valore dell’impostazione del sito title

1 Mi Piace

Ho esaminato questo aspetto, l’ostacolo qui non è accedere al valore di title. È che il backend convalida le traduzioni estraendo le chiavi di interpolazione valide dalle stringhe della locale predefinita.

Quindi, quando %{site_name} non è nella stringa predefinita, il backend lo rifiuterà come “chiave di interpolazione non valida”.

3 Mi Piace

Non so quale sia l’idea di @NateDhaliwal. Volevo solo sottolineare un’alternativa a una richiesta aggiuntiva a /about.json.

Penso che la strada da percorrere sia un componente personalizzato che copi il banner di benvenuto ma fornisca la chiave site_name per tutti i testi.
Oppure una PR che aggiunga site_name come chiave disponibile ai testi per gli utenti con accesso effettuato nel 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 Mi Piace

@hipp0 grazie ancora per aver sollevato la questione! Abbiamo rilasciato un aggiornamento che rende la variabile site_name disponibile su tutti e tre i campi dell’intestazione:

3 Mi Piace

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