“新建主题”和“回复”均显示相同的文本:“在此输入。使用 Markdown、BBCode 或 HTML 进行格式化。拖放或粘贴图片。”我们添加了自定义文本,但新建主题和回复显示的仍是相同文本。我们希望为新建主题和回复提供不同的用户说明。具体来说,我们希望提醒用户在新建主题时进行标签标注,而这些说明与回复主题无关。如何实现这一目标?如果我们修改 js.composer.reply_placeholder,该文本仍会同时应用于两者。
谢谢,
“新建主题”和“回复”均显示相同的文本:“在此输入。使用 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 翻译键设置的默认值。
感谢详细的说明,如果没有您的帮助,我们很可能无法解决这个问题。我们目前正在实施您的建议。