Interpolation Keys for Customizing Text and System Email Templates

:bookmark: Это руководство предоставляет подробный обзор ключей интерполяции, используемых для настройки текста и шаблонов системных писем в Discourse.

:person_raising_hand: Требуемый уровень доступа пользователя: Администратор

При настройке текста в Discourse или настройке конкретных шаблонов электронной почты вы могли заметить, что в некоторых шаблонах доступны переменные-заполнители.

В Discourse их называют ключами интерполяции.

Понимание ключей интерполяции

Ключи интерполяции — это заполнители, доступные в определённых шаблонах Discourse. Они позволяют вставлять динамический контент в ваши текстовые и почтовые шаблоны.

Пример ключей интерполяции для шаблона письма «Создан учётная запись»:

Эти ключи, такие как %{username} или %{site_name}, будут заменены фактическими данными при отправке письма.

Как правило, эти заполнители можно перемещать внутри шаблона, к которому они относятся, но они доступны только в этом шаблоне и не могут быть перемещены в другие шаблоны, поскольку все они поддерживаются серверным кодом, привязанным к соответствующему шаблону.

Однако некоторые группы шаблонов позволяют добавлять дополнительные ключи интерполяции сверх тех, что уже присутствуют в шаблоне по умолчанию.

Дополнительные ключи интерполяции

Системное сообщение «Добро пожаловать пользователю»

Для шаблонов system_messages.welcome_user можно добавить следующие дополнительные ключи:

  • username: Имя пользователя
  • name: Полное имя пользователя
  • name_or_username: Либо полное имя пользователя, либо его имя пользователя

Эти значения предоставляются классом SystemMessage во время выполнения (см. system_message.rb для соответствующего кода Discourse).

Письма с уведомлениями пользователям

Для user_notifications и связанных шаблонов электронной почты (включая unsubscribe_mailing_list и unsubscribe_link) доступно множество дополнительных ключей, таких как topic_title, username, site_name, url, unsubscribe_url и другие.

Для получения полного и актуального списка всех разрешённых пользовательских ключей интерполяции и групп шаблонов, к которым они применяются, обратитесь к константе ALLOWED_CUSTOM_INTERPOLATION_KEYS в исходном коде Discourse для translation_override.rb.

9 лайков

That’s not correct. Currently that works only for system_messages.welcome_user, but we could extend it to all other keys. This is pr-welcome material.

4 лайка

Thanks for pointing that out, this has been updated in the guide.

2 лайка

Hi!

How can I modify the value for some of these interpolation keys? For instance, %{search_answer}

Thanks!

Hi!
It says that this key is not valid:

P.S.
I’m replacing in text not email (does it make a difference)? Thanks!

I don’t think those are global and free to use everywhere.

1 лайк

Thanks @Jagster ! I’m using them in the text customization so based on the topic post, it’s supposed to work?

Topic is actually about email templates and those texts. So, you can’t use interpolations keys outside right context. That’ts why we have other keys for emails, other for some AI prompts etc.

Sure, plugins can do a lot of things, but this time not out of the box.

And disclaimer: I’m just another end user and I can be horrible wrong too. But I’m quite sure I’m right — and that’s why your try doesn’t work :man_shrugging:

Okay, thank you so much for your support. It looks like it’s not working even in used in an email template:

My bet is you can use %{username} in ”User did…” templates, and all other templates don’t support it.

But we’ll see tomorrow when all gurus are waken.