Tris20
(Tristan)
1
問題の説明
js.compser.reply_placeholder のテキストが、返信専用であるにもかかわらず、トピックが 作成 されたときのコンポーザー内のテキストと連動しているようです。
再現方法
プレースホルダーテキストの変更版とコンポーザーを比較することで確認できます。
考えられる修正方法
1 つの修正方法として、プレースホルダーの名前を変更することが考えられますが、返信と作成の両方のプレースホルダーを個別に変更できるオプションがあると 大変ありがたい です。
作成および返信のプレースホルダーが役立つ理由
以下に示すように、新しいトピックのプレースホルダーテキストとして以下を使用し始めました。しかし、このガイダンスは返信のコンテキストでは意味をなしません。
この修正により、返信と作成の両方のプレースホルダーが利用できるようになれば、すべてのユーザーに対して JIT (Just-In-Time) ガイダンスを改善でき、私たちのようなサポートコミュニティにとって (素晴らしいことでしょう)。
「いいね!」 2
Tris20
(Tristan)
3
素晴らしい発見ですね。すぐに試してみたところ、返信をうまく分離し、プレースホルダーを作成できるようです。コアにこの変更が加えられることを望みますが、Joeが提供してくれた変更を使用できることを非常に嬉しく思います。これをリンクしてくれてありがとう @Moin
「いいね!」 4
Tris20
(Tristan)
4
フォローアップですが、Joeが投稿したコードスニペットは、新しいトピックボタンで期待どおりに動作しませんでした。ユーザーがトピックを読んでいるときに新しいトピックを作成すると、返信テキストが表示されていました。
以下は、次のことを行う代替アプローチです。
- カテゴリページまたはトピック内から開始された新しいトピックのプレースホルダーを表示します。
- 返信に別のプレースホルダーを表示します。
<script type="text/discourse-plugin" version="0.8">
// カスタムプレースホルダー
const placeHolderForReplies = `他の人を助けるとき:
1. 問題だと思うことを説明してください
2. 彼らが何をすべきだと思うかを伝えてください
3. それをどのように行うかを示してください(コードスニペット、画像など)
4. リンクと参照を含めてください`;
const placeHolderForNewTopics = `ここにタイプしてください。
1. 何をしようとしているのかを教えてください。
2. 既に試したことを教えてください。
3. エラーログをコードスニペットとして投稿してください。`;
// 必要なモジュールをインポート
const discourseComputed = require("discourse-common/utils/decorators").default;
const currentLocale = I18n.currentLocale();
I18n.translations[currentLocale].js.composer.custom_reply_placeholder = placeHolderForReplies;
I18n.translations[currentLocale].js.composer.custom_topic_placeholder = placeHolderForNewTopics;
api.modifyClass("component:composer-editor", {
@discourseComputed("composer.replyingToTopic", "composer.creatingTopic")
replyPlaceholder(replyingToTopic, creatingTopic) {
// コンポーザーが返信用か新しいトピック作成用かを判断します
if (creatingTopic) {
return "composer.custom_topic_placeholder"; // 新しいトピックのプレースホルダー
} else if (replyingToTopic) {
return "composer.custom_reply_placeholder"; // 返信のプレースホルダー
}
return this._super(...arguments); // デフォルトの動作にフォールバック
}
});
</script>
「いいね!」 2