И «Создать тему», и «Ответ» отображают одинаковый текст: «Введите здесь. Используйте 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.
Спасибо за подробные инструкции. Без вашей помощи мы, скорее всего, не смогли бы разобраться в этом. Мы уже работаем над реализацией вашего предложения.