Это руководство предоставляет подробный обзор ключей интерполяции, используемых для настройки текста и шаблонов системных писем в Discourse.
Требуемый уровень доступа пользователя: Администратор
При настройке текста в 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.


