Discourse Assign требует поддержки названий групп в кодировке Unicode

Проблема с плохой поддержкой неанглийских символов в плагине Discourse-Assign, приводящая к ошибке 500, кажется довольно распространённой темой, поэтому здесь мы обсудим лишь одну проблему, возникающую при довольно неловком сочетании обстоятельств:

Discourse обладает полезной вспомогательной функцией — он заменяет строки на странице на локализованные названия каждый раз при выполнении Jobs::EnsureDbConsistency. Это следует похвалить как абсолютно удобную для пользователя функцию, но в данном случае она может принести больше вреда, чем пользы: Возьмём, к примеру, упрощённый китайский язык. Сначала мы меняем язык по умолчанию на этот неанглийский язык, затем запускаем Jobs::EnsureDbConsistency. В результате названия автоматических групп изменяются, и когда пользователи открывают страницу «Назначено» для этой группы, возникает ошибка 500.


В общем, чтобы использовать Discourse-Assign нормально в таких языках, нужно сначала установить язык по умолчанию на английский и запустить Jobs::EnsureDbConsistency, чтобы названия групп были на английском, а затем вернуть язык по умолчанию на целевой язык, чтобы полное имя стало на китайском.


Однако, поскольку Jobs::EnsureDbConsistency запускается периодически в обычных условиях, в следующий раз при его запуске названия автоматических групп снова изменятся на целевой язык, что вновь приведёт к ошибке 500 на странице «Назначено». :upside_down_face:

3 лайка

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

2 лайка

Эта тема была автоматически закрыта через 2 дня. Новые ответы больше не принимаются.