Js.composer.reply_placeholder は、新規トピックと返信の両方に適用されます

問題の説明

js.compser.reply_placeholder のテキストが、返信専用であるにもかかわらず、トピックが 作成 されたときのコンポーザー内のテキストと連動しているようです。

再現方法

プレースホルダーテキストの変更版とコンポーザーを比較することで確認できます。

考えられる修正方法

1 つの修正方法として、プレースホルダーの名前を変更することが考えられますが、返信と作成の両方のプレースホルダーを個別に変更できるオプションがあると 大変ありがたい です。

作成および返信のプレースホルダーが役立つ理由

以下に示すように、新しいトピックのプレースホルダーテキストとして以下を使用し始めました。しかし、このガイダンスは返信のコンテキストでは意味をなしません。


image

この修正により、返信と作成の両方のプレースホルダーが利用できるようになれば、すべてのユーザーに対して JIT (Just-In-Time) ガイダンスを改善でき、私たちのようなサポートコミュニティにとって (素晴らしいことでしょう)。

「いいね!」 2

このトピックのコードがお役に立つかもしれません

「いいね!」 2

:heart: 素晴らしい発見ですね。すぐに試してみたところ、返信をうまく分離し、プレースホルダーを作成できるようです。コアにこの変更が加えられることを望みますが、Joeが提供してくれた変更を使用できることを非常に嬉しく思います。これをリンクしてくれてありがとう @Moin

「いいね!」 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

また、以下のリンクも参照してください。

「いいね!」 3