Порядок отображения бейджа различается в английской и упрощённо-китайской локалях

Здравствуйте,

Я заметил несоответствие в порядке отображения значков между английской и упрощённо-китайской локалями на странице /badges.


Проблема:

  • В английском режиме значки отображаются в правильном порядке (например, TS1 появляется перед TS2).
  • В режиме упрощённого китайского порядок обратный (TS2 появляется перед TS1), хотя значения position в базе данных одинаковы.
  • Такое поведение наблюдается и на официальном форуме Discourse, поэтому оно не связано с пользовательскими настройками.

Шаги для воспроизведения:

  1. Перейдите на страницу /badges на экземпляре Discourse.
  2. Переключите язык интерфейса на английский и обратите внимание на порядок значков.
  3. Переключите язык интерфейса на упрощённый китайский и убедитесь, что порядок тех же значков изменился на обратный.

Ожидаемое поведение:
Значки должны всегда отображаться в соответствии со своими значениями position, независимо от выбранного языка.

Спасибо, что уделили внимание этому вопросу!

1 лайк

Я думаю, что они расположены в алфавитном порядке (по цвету: сначала бронзовые, затем серебряные, и наконец золотые).

Я не считаю, что сортировка значков по алфавиту — это ошибка. Есть несколько тем, где обсуждаются случаи, когда алфавитный порядок не обеспечивает оптимального расположения, например: Very teeny tiny minor issue with the default badge ordering и Badge order doesn't make sense.

Вы можете изменить порядок с помощью CSS (Trust levels order exhibition in the badges page - #3 by awesomerobot) или воспользоваться предложением добавить цифры в начало, настроив текст.

2 лайка

Это имеет смысл, так как 基 начинается с ‘j’, а 成 — с ‘c’, предполагая, что Discourse использует пиньинь для этого.

РЕДАКТИРОВАНИЕ: Судя по всему, Discourse использует localeCompare.

Спасибо за отчёт!

Я добавлю сюда метку pr-welcome, на случай если кто-то захочет попробовать решить эту задачу.

2 лайка

Мы могли бы изменить названия на TL1-Basic, TL2-Member, TL3-Regular и TL4-Leader. Тогда алфавитный порядок всегда совпадал бы с порядком уровней доверия. (Мне также показалось бы это полезным на карточках пользователей, так как это упростило бы определение УД без знания «названия» на текущем языке.)

Но значки уровней доверия — не единственные, которые отображаются в неправильном порядке:
Например, в немецком языке значок за 150 решений показывается перед значком за 50.

И, по-моему, другие темы о порядке значков публикаций также затрагивают ту же проблему: алфавитный порядок не всегда кажется логичным.

Понятно, это логично. Тем не менее, на мой взгляд, поскольку в настоящее время в административном интерфейсе невозможно вручную изменить порядок значков, было бы более разумно сортировать их по значениям поля position, а не в алфавитном порядке. Это могло бы помочь сохранить единообразие порядка на разных языках и облегчить пользователям знакомство с Discourse и работу с ним.

2 лайка