Здравствуйте,
В 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`.
Если ваше сообщение содержит исходный код, обязательно заключите его в обратные кавычки, чтобы части кода не интерпретировались как упоминания пользователей; см. <вставьте ссылки на документацию по форматированию кода в Discourse>.
Что вы думаете? Стоит ли мне отправить pull request? Боюсь, я могу обновить только английскую и французскую локализации.
Для справки, примеры запутавшихся пользователей:

