新主题 + 回复:区分临时文本

“新建主题”和“回复”均显示相同的文本:“在此输入。使用 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 个赞