テキストとシステムメールテンプレートをカスタマイズするための補間キー

:bookmark: このガイドでは、Discourse のテキストやシステムメールテンプレートをカスタマイズするために使用される補間キーの詳細な概要を説明します。

:person_raising_hand: 必要なユーザーレベル:管理者

Discourse 内のテキストのカスタマイズ特定のメールテンプレートのカスタマイズを行う際、一部のテンプレートでプレースホルダー変数が利用可能であることに気づいたかもしれません。

Discourse では、これらを補間キーと呼びます。

補間キーの仕組み

補間キーは、特定の Discourse テンプレートで利用可能なプレースホルダーです。これにより、テキストやメールテンプレートに動的なコンテンツを挿入できます。

Account Created メールテンプレートの補間キーの例:

%{username}%{site_name} といったこれらのキーは、メールが送信される際に実際のデータに置き換えられます。

一般的に、これらのプレースホルダーは所属するテンプレート内で移動させることができますが、特定のテンプレートでのみ利用可能であり、異なるテンプレートへ移動させることはできません。これらはすべて、対応するテンプレートに紐付いたサーバーサイドのコードによって支えられているためです。

ただし、特定のテンプレートグループでは、デフォルトのテンプレートに既に存在するものに加えて、追加の補間キーを追加することが可能です。

追加の補間キー

ユーザー歓迎システムメッセージ

system_messages.welcome_user テンプレートでは、以下の追加キーを使用できます:

  • username:ユーザー名
  • name:ユーザーのフルネーム
  • name_or_username:ユーザーのフルネームまたはユーザー名のいずれか

これらの値は、SystemMessage クラスによって実行時に提供されます(関連する Discourse コードについては system_message.rb を参照してください)。

ユーザー通知メール

user_notifications および関連するメールテンプレート(unsubscribe_mailing_listunsubscribe_link などを含む)では、topic_titleusernamesite_nameurlunsubscribe_url など、多くの追加キーを利用できます。

許可されているすべてのカスタム補間キーの完全な最新リストと、それらが適用されるテンプレートグループについては、Discourse ソースコードの translation_override.rb 内の ALLOWED_CUSTOM_INTERPOLATION_KEYS を参照してください。

「いいね!」 9

それは正しくありません。現在、それは system_messages.welcome_user のみに有効ですが、他のすべてのキーに拡張することは可能です。これは pr-welcome 対象です。

「いいね!」 4

ご指摘ありがとうございます。ガイドを更新しました。

「いいね!」 2

こんにちは!

これらの補間キーの値はどのように変更できますか?たとえば、%{search_answer} です。

よろしくお願いします!

こんにちは!
このキーは無効であると表示されます。

追伸
メールではなくテキストを置き換えています(違いはありますか)?よろしくお願いします!

それらはグローバルではなく、どこでも無料で利用できるものではないと思います。

「いいね!」 1

@Jagster さん、ありがとうございます!テキストのカスタマイズで使用していますが、トピック投稿によると、機能するはずですよね?

トピックは実際にはメールテンプレートとそのテキストに関するものです。そのため、適切なコンテキスト外で補間キーを使用することはできません。そのため、メール用の他のキー、AIプロンプト用の他のキーなどがあります。

確かに、プラグインは多くのことができますが、今回はすぐに使えるものではありません。

免責事項:私は単なるエンドユーザーであり、ひどく間違っている可能性もあります。しかし、私は自分が正しいと確信しています。だからこそ、あなたの試みはうまくいかないのです🤷‍♂️

サポートいただき、誠にありがとうございます。メールテンプレートで使用しても機能していないようです。

%{username} は「User did…」テンプレートで使用でき、他のすべてのテンプレートではサポートされないというのが私の予想です。

しかし、明日、すべての専門家が目を覚ましたらわかるでしょう。