徽章显示顺序在英文和简体中文区域设置之间存在差异

您好,

我注意到在 /badges 页面上,英文和简体中文区域的徽章显示顺序存在差异。


问题:

  • 在英文模式下,徽章按正确顺序显示(例如,TS1 在 TS2 之前)。
  • 在简体中文模式下,顺序颠倒(TS2 在 TS1 之前),即使数据库中的 position 值相同。
  • 此行为在官方 Discourse 论坛上是一致的,因此与自定义设置无关。

重现步骤:

  1. 在 Discourse 实例上访问 /badges 页面。
  2. 将界面语言切换到英文,并记下徽章顺序。
  3. 将界面语言切换到简体中文,并记下相同徽章的顺序已颠倒。

预期行为:
无论选择哪种语言,徽章都应始终根据其 position 值显示。

感谢您的关注!

1 个赞

我认为它们是按字母顺序排列的(按颜色:先青铜,然后银色,最后金色)。

我不认为徽章按字母顺序排列是一个错误。还有一些关于字母顺序不能带来最佳排位的其他主题,例如 Very teeny tiny minor issue with the default badge orderingBadge 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-BasicTL2-MemberTL3-RegularTL4-Leader。这样,字母顺序将始终与信任级别顺序相同。(这对用户卡片也有帮助,因为无需了解当前语言的“名称”即可轻松查看 TL。)

但信任级别徽章并非唯一顺序错误的徽章:
例如,在德语中,150 个解决方案的徽章显示在 50 个解决方案的徽章之前。

而且我认为关于发帖徽章顺序的其他主题也指出了同样的问题:字母顺序并不总是合乎逻辑的。

我明白了,这有道理。
不过,在我看来,既然目前无法在管理员界面手动调整徽章的顺序,那么按它们的 position 值排序而不是按字母顺序排序,会不会更合理一些?
这样也许有助于在不同语言之间保持顺序的一致性,并使人们更容易熟悉和使用 Discourse。

2 个赞