ユーザーメンション制限:エラーメッセージを明確にする?

こんにちは。

Discourseには、メッセージ内のユーザーメンションの数を制限する機能があり、「新規」ユーザー(信頼レベル0)の場合はさらに制限されます。

意味がわからない場合は、Discourseのソースコードでの実装を以下に示します。

これは良い機能ですが、偶然にも、この制限に達して混乱したユーザーが何人かいました。問題は、ユーザーをメンションするつもりはなかったということです。単にメッセージに含まれるコードスニペットのフォーマットを「忘れた」(または方法を知らなかった)だけで、そのスニペットがJavaコードであったため、アノテーションが含まれており、これらは「@」で始まり、ユーザーメンションとして解釈されます。

そのようなコードの例:

public class MyCode {

@NotNull
private String foo;

@NotNull
private String bar;

@NotNull
private String foobar;

}

エラーメッセージは単純に次のようになります。

申し訳ありませんが、新規ユーザーは投稿で2人のユーザーのみメンションできます。

Markdownでコードをフォーマットする方法に慣れていないユーザーは、ユーザーメンションが何であるかに慣れていない可能性があり、たとえそれに慣れていても、Javaアノテーションとして意図したものがユーザーメンションとして解釈されたことを理解できないかもしれません。

それで…この機能のユーザーエクスペリエンスは改善できるのではないでしょうか?

Discourseがソースコードを自動検出してフォーマットを提案したり、検証に失敗したメッセージの部分をハイライトしたりすることも考えられますが、これらのソリューションはいずれもかなりの労力が必要になるでしょう。

エラーメッセージを拡張して、ユーザーメンションとは何かを説明し、いくつかアドバイスを提供することを考えていました。

少なくともこれくらい:

申し訳ありませんが、新規ユーザーは投稿で2人のユーザーのみメンションできます。
ユーザーメンションは「@」で始まる単語です。例:「@johnsmith」。

そして、さらにこれくらい:

申し訳ありませんが、新規ユーザーは投稿で2人のユーザーのみメンションできます。
ユーザーメンションは「@」で始まる単語です。例:「@johnsmith」。
投稿にソースコードが含まれている場合は、コードの一部がユーザーメンションとして解釈されないように、バッククォートで囲んでください。コードのフォーマットに関するドキュメントへのリンクを挿入してください。

考え、意見はありますか?プルリクエストを送るべきでしょうか?残念ながら、英語とフランス語のロケールしか更新できないかもしれません。

参考までに、混乱したユーザーの例をいくつか示します。

それを実行する Theme component があります

「いいね!」 2

ありがとうございます!素晴らしいですね。そんなものがあるとは知りませんでした。これで、ユーザーがこの状況に陥ることを未然に防げることを願っています :slight_smile:

「いいね!」 1

フォーマットされていないコード検出テーマコンポーネントを使用しても問題が解決しない場合は、/admin/customize/site_texts ページからこのメッセージのテキストを変更することもできます。また、問題が解決よりも多くの障害を引き起こしている場合は、newuser max mentions per post 管理設定自体を調整することもできます。 :slight_smile:

「いいね!」 3

素晴らしい、Discourse に表示されるあらゆるテキストをカスタマイズできるとは知りませんでした。完了しました!

それなら、プルリクエストは不要ということですね :slight_smile:

「いいね!」 1