Discourse Assign 需要支持 Unicode 组名称

Discourse-Assign 对非英文字符支持不佳并导致 500 错误的这一问题似乎是一个常见话题,因此我们在这里只讨论在一种相当尴尬的组合情况下出现的问题:

Discourse 有一个有用的辅助功能——它会在每次运行 Jobs::EnsureDbConsistency 时用本地化名称替换页面上的字符串。这应该被赞扬为一项绝对用户友好的功能,但在本例中,它可能会弊大于利:以简体中文为例,我们首先将默认语言调整为这种非英语语言,然后运行 Jobs::EnsureDbConsistency。随后,它会更改“自动组”的名称,然后当用户打开该组的“已分配”页面时,就会触发 500 错误。


总而言之,要在这些语言中正常使用 Discourse-Assign,您需要先将默认语言设置为英语并运行 Jobs::EnsureDbConsistency,以便组名称为英语,然后将默认语言调整回目标语言,使“全名”变为中文。


然而,由于 Jobs::EnsureDbConsistency 在正常情况下会定期运行,下次触发时,“自动组”的名称将恢复为目标语言,再次导致“已分配”页面触发 500 错误。:upside_down_face:

2 个赞