Новая тема + ответ: Различение эфемерного текста

И «Создать тему», и «Ответ» отображают одинаковый текст: «Введите здесь. Используйте Markdown, BBCode или HTML для форматирования. Перетащите или вставьте изображения». Мы добавили пользовательский текст, но он отображается одинаково и для новых тем, и для ответов. Мы хотим предоставить пользователям разные инструкции для создания новых тем и для ответов. В частности, мы хотим предупредить пользователей о необходимости добавить теги при создании новой темы, но эти инструкции не относятся к ответам. Как нам достичь нашей цели? Если мы изменим js.composer.reply_placeholder, этот текст применится к обоим случаям.

Спасибо,

Верно, плейсхолдер как для новых тем, так и для ответов использует один и тот же ключ перевода, как вы и упомянули: js.composer.reply_placeholder.

Насколько мне известно, запросов на отдельные ключи пока не поступало.

Тем не менее, вы можете настроить это на своём сайте прямо сейчас.

Если вы добавите следующий код в тему на вкладке common > header, это даст нужный результат.

<script type="text/discourse-plugin" version="0.8">
// опции, которые можно изменить
const placeHolderForReplies = "CHANGE_THIS_TEXT_BUT_KEEP_THE_QUOTES";

// ниже этой строки ничего менять не нужно.
const discourseComputed = require("discourse-common/utils/decorators").default;

const currentLocale = I18n.currentLocale();
I18n.translations[currentLocale].js.composer.custom_reply_placeholder =
  placeHolderForReplies;

api.modifyClass("component:composer-editor", {
  @discourseComputed
  replyPlaceholder() {
    return this.topic ? "composer.custom_reply_placeholder" : this._super(...arguments);
  }
});
</script>

Вы можете изменить текст плейсхолдера для ответов во второй строке. Если это ответ, ваш сайт будет показывать этот текст… в противном случае Discourse вернётся к значению по умолчанию, заданному для ключа перевода js.composer.reply_placeholder.

4 лайка

Спасибо за подробные инструкции. Без вашей помощи мы, скорее всего, не смогли бы разобраться в этом. Мы уже работаем над реализацией вашего предложения.

3 лайка