%{site_name} のウェルカムヘッダーテキストでエラー: 次の補間キーは無効です: site_name

次の補間キーは無効です: site_name

「いいね!」 1

「Site_text」が利用できないと思います。/admin/customize/site_texts/js.welcome_banner.header.new_members?locale=enでテキストを編集しようとすると、名前だけが利用可能であることがわかります。


site_nameは未登録ユーザーにのみ利用可能だと思います。説明を更新する必要があると思われます。

「いいね!」 3

承知いたしました、情報ありがとうございます。今のところ、サイト名はCSSを使って表示しています。ウェルカムテキストで下線を引くのに問題がありました。

何らかの理由で、匿名訪問者には %site_name のみ機能します。

次のようにしたいのですが。

ようこそ、%{preferred_display_name}さん、%{site_name}へ!

しかし、これはできず、この領域での下線/CSS調整が困難になっています。

それは理にかなっています。彼らはログインしていないので、誰であるかわかりません。データベースに彼らの名前はありません。
それは、知らない人がドアベルを鳴らしたときのようなものです。自己紹介するまで、名前で挨拶することはできません。

「いいね!」 1

はい、しかし、ログインしているユーザーに対してもその %site_name を使用したいです :smiley:

ご報告ありがとうございます!利用可能な変数を過大に約束していたようです…これを修正するアップデートを準備中です。

「いいね!」 3

%{site_name}をログイン中のユーザーに追加することはまだできないということですか?

うーん…確かにそのようですね。


サイト名を表示するには、テーマコンポーネント(Theme Component)を使って/about.jsonにリクエストを送り、サイトタイトルを取得できるかもしれません(siteサービスを確認しましたが、サイトタイトルに関するものは見つかりませんでした)。

siteSettingサービスを使うと、titleサイト設定の値を取得できるかもしれません。

「いいね!」 1

これを調査しましたが、ここでのブロッカーはタイトルの値へのアクセスではありません。バックエンドがデフォルトロケールの文字列から有効な補間キーを抽出することによって翻訳を検証することです。

そのため、デフォルトの文字列に %{site_name} が含まれていない場合、バックエンドはそれを「無効な補間キー」として拒否します。

「いいね!」 3

@NateDhaliwal さんのアイデアが何なのかわかりません。私は単に /about.json への追加リクエストの代替案を指摘したかっただけです。

すべてのテキストに対して site_name キーを提供する、ウェルカムバナーをコピーするカスタムコンポーネントが良い方法だと思います。
あるいは、コアでログインしているユーザーのテキストに対して site_name を利用可能なキーとして追加する PR ですね

  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

@hipp0 再度ご報告いただきありがとうございます!site_name 変数が3つのヘッダーフィールドすべてで利用可能になるアップデートをプッシュしました。

「いいね!」 3

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