您好,
我注意到在 /badges 页面上,英文和简体中文区域的徽章显示顺序存在差异。
问题:
- 在英文模式下,徽章按正确顺序显示(例如,TS1 在 TS2 之前)。
- 在简体中文模式下,顺序颠倒(TS2 在 TS1 之前),即使数据库中的
position 值相同。
- 此行为在官方 Discourse 论坛上是一致的,因此与自定义设置无关。
重现步骤:
- 在 Discourse 实例上访问
/badges 页面。
- 将界面语言切换到英文,并记下徽章顺序。
- 将界面语言切换到简体中文,并记下相同徽章的顺序已颠倒。
预期行为:
无论选择哪种语言,徽章都应始终根据其 position 值显示。
感谢您的关注!
1 个赞
Moin
2
2 个赞
这说得通,因为 基 以“j”开头,而 成 以“c”开头,假设 Discourse 使用 拼音 来实现这一点。
编辑:据我所知,Discourse 使用 localeCompare。
nat
(Natalie T)
4
感谢您的报告!
我在此添加一个 pr-welcome,以防有人想尝试一下。
2 个赞
Moin
5
我们可以将名称更改为 TL1-Basic、TL2-Member、TL3-Regular 和 TL4-Leader。这样,字母顺序将始终与信任级别顺序相同。(这对用户卡片也有帮助,因为无需了解当前语言的“名称”即可轻松查看 TL。)
但信任级别徽章并非唯一顺序错误的徽章:
例如,在德语中,150 个解决方案的徽章显示在 50 个解决方案的徽章之前。
而且我认为关于发帖徽章顺序的其他主题也指出了同样的问题:字母顺序并不总是合乎逻辑的。
我明白了,这有道理。
不过,在我看来,既然目前无法在管理员界面手动调整徽章的顺序,那么按它们的 position 值排序而不是按字母顺序排序,会不会更合理一些?
这样也许有助于在不同语言之间保持顺序的一致性,并使人们更容易熟悉和使用 Discourse。
2 个赞