La clé d’interpolation suivante n’est pas valide : site_name
Je pense que « Site_text » n’est pas disponible. Lorsque j’essaie de modifier le texte à l’adresse /admin/customize/site_texts/js.welcome_banner.header.new_members?locale=en, je constate que seul le nom est disponible.
Je pense que
site_name n’est disponible que pour les utilisateurs anonymes. Je suppose que la description doit être mise à jour.
D’accord, merci pour l’information, pour l’instant j’utilise du CSS pour mettre le nom du site. J’avais juste un problème pour le souligner dans le texte de bienvenue.
Pour une raison quelconque, seul %site_name fonctionne pour les visiteurs anonymes.
J’aimerais faire :
Bienvenue, %{preferred_display_name}, sur %{site_name} !
Mais ce n’est pas possible de faire cela, cela rend les ajustements de soulignement/CSS difficiles dans cette zone.
Cela a du sens. Ils ne se sont pas connectés, donc nous ne savons pas qui ils sont. Il n’y a pas de nom pour eux dans la base de données.
C’est comme quand quelqu’un que vous ne connaissez pas sonne à votre porte ; vous ne pourrez pas le saluer par son nom tant qu’il ne se sera pas présenté.
Oui, mais j’aimerais utiliser ce %site_name pour les utilisateurs connectés également ![]()
Merci d’avoir signalé le problème ! Il semble que j’aie promis plus de variables que ce qui était disponible… Une mise à jour est en cours pour corriger cela.
Donc, nous ne pouvons toujours pas ajouter %{site_name} si l’utilisateur est connecté ?
Hmm… cela semble bien être le cas :
Je suppose que vous pourriez être en mesure d’afficher le nom du site avec un Theme Component en faisant une requête à
/about.json et en récupérant le titre du site (j’ai regardé le service site et je n’ai rien trouvé concernant le titre du site).
Le service siteSetting pourrait fonctionner pour obtenir la valeur du paramètre de site title
J’ai examiné cela, le blocage ici n’est pas l’accès à la valeur de titre. C’est que le backend valide les traductions en extrayant les clés d’interpolation valides des chaînes de locale par défaut.
Donc, lorsque %{site_name} n’est pas dans la chaîne par défaut, le backend le rejettera comme une « clé d’interpolation invalide ».
Je ne sais pas quelle est l’idée de @NateDhaliwal. Je voulais juste souligner une alternative à une demande supplémentaire à /about.json.
Je pense qu’un composant personnalisé qui copie la bannière de bienvenue mais fournit la clé site_name pour tous les textes serait la bonne approche.
Ou une PR qui ajoute site_name comme clé disponible pour les textes pour les utilisateurs connectés dans le cœur.
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,
});
}




