Изменение текста js.browser_update не применяется в представлениях без JS

  1. Измените js.browser_update в разделе Настройка > Текст.

  2. Откройте Discourse в IE10

  3. Отображается сообщение по умолчанию вместо настроенного

Насколько мне известно, кастомизация текста JS выполняется на JavaScript. Поскольку наш режим для старых браузеров представляет собой чистый HTML без JavaScript, любой код JS там не будет выполняться. Такое поведение является ожидаемым.

Это установлено здесь. https://github.com/discourse/discourse/blob/master/vendor/assets/javascripts/browser-update.js.erb#L29

Так что это должно быть применимо. :man_shrugging:

О, это больше не будет работать, так как мы удаляем все глобальные переменные; I18n был удален на прошлой неделе.

После пересборки это может сработать, @zcuric.

К сожалению, не работает. Мы сегодня сделали релиз и пересобрали приложение, но результат тот же.

У меня та же проблема. Сначала мне казалось, что при изменении js.browser_update сообщение отображалось в старом браузере (но сейчас я не уверен на 100%), но сегодня я вижу, что показывается исходный текст. Есть ли способ обойти это… может быть, обрабатывать это конкретное сообщение иначе, поскольку в большинстве случаев, когда это сообщение отображается, JavaScript не включен? Возможно, стоит использовать небольшой плагин?

Причина, по которой это работало в одном браузере, а в другом — нет, может заключаться в том, что некоторые очень старые браузеры не поддерживают клиентский перевод, тогда как другие поддерживают.

Мы сначала пытаемся выполнить перевод, и если это не удаётся, возвращаемся к зашитому в коде варианту сообщения по умолчанию на английском языке:

https://github.com/discourse/discourse/blob/main/app/assets/javascripts/discourse/scripts/browser-update.js#L50

К сожалению, мы не можем сделать в этой ситуации ничего большего. Надеемся, что со временем люди откажутся от использования этих браузеров.