После обновления Discourse теперь отображается баннер со следующим сообщением:
[Уведомление администратора] Один из ваших тем или плагинов требует обновления для совместимости с предстоящими изменениями в ядре Discourse. (id:discourse.component-template-overrides) Обнаруженный плагин: ‘discourse-multilingual’
Похоже, что до июня 2025 года в этот плагин потребуется внести некоторые технические изменения.
Мне удалось успешно следовать этому руководству, чтобы добавить переводы для категорий.
Но мне не удалось заставить работать переводы для тегов.
Вот что у меня есть в файле tag.ja.yml:
discussions: Дискуссии
questions: Вопросы
self-intro: Самопрезентация
showcase: Демонстрация работ
other: Другое
guidelines: Руководство
updates: Обновления
А вот что получилось при переключении языка интерфейса на японский:
Но я не могу найти вкладку Multilingual в моих настройках администратора. Она появляется только в меню плагинов, но не содержит всех настроек. Что мне делать?
Это выдает следующее уведомление об устаревании:
Уведомление об устаревании: add_to_serializer не следует использовать для прямого переопределения методов include_*?. Вместо этого используйте аргумент ключа include_condition.
В /workspace/discourse/plugins/discourse-multilingual/plugin.rb:188:in block in activate!
Локальный лог сервера
Выполнение задачи: bin/rake db:create db:migrate
Уведомление об устаревании: add_to_serializer не следует использовать для прямого переопределения методов include_?. Вместо этого используйте аргумент ключа include_condition.
В /workspace/discourse/plugins/discourse-multilingual/plugin.rb:188:in block in activate!
Уведомление об устаревании: add_to_serializer не следует использовать для прямого переопределения методов include_?. Вместо этого используйте аргумент ключа include_condition.
В /workspace/discourse/plugins/discourse-multilingual/plugin.rb:193:in block in activate!
Уведомление об устаревании: add_to_serializer не следует использовать для прямого переопределения методов include_?. Вместо этого используйте аргумент ключа include_condition.
В /workspace/discourse/plugins/discourse-multilingual/plugin.rb:199:in block in activate!
Уведомление об устаревании: add_to_serializer не следует использовать для прямого переопределения методов include_?. Вместо этого используйте аргумент ключа include_condition.
В /workspace/discourse/plugins/discourse-multilingual/plugin.rb:312:in block in activate!
Уведомление об устаревании: add_to_serializer не следует использовать для прямого переопределения методов include_?. Вместо этого используйте аргумент ключа include_condition.
В /workspace/discourse/plugins/discourse-multilingual/plugin.rb:314:in block in activate!
База данных ‘discourse_development’ уже существует
Уведомление об устаревании: add_to_serializer не следует использовать для прямого переопределения методов include_?. Вместо этого используйте аргумент ключа include_condition.
В /workspace/discourse/plugins/discourse-multilingual/plugin.rb:188:in block in activate!
Уведомление об устаревании: add_to_serializer не следует использовать для прямого переопределения методов include_?. Вместо этого используйте аргумент ключа include_condition.
В /workspace/discourse/plugins/discourse-multilingual/plugin.rb:193:in block in activate!
Уведомление об устаревании: add_to_serializer не следует использовать для прямого переопределения методов include_?. Вместо этого используйте аргумент ключа include_condition.
В /workspace/discourse/plugins/discourse-multilingual/plugin.rb:199:in block in activate!
Уведомление об устаревании: add_to_serializer не следует использовать для прямого переопределения методов include_?. Вместо этого используйте аргумент ключа include_condition.
В /workspace/discourse/plugins/discourse-multilingual/plugin.rb:312:in block in activate!
Уведомление об устаревании: add_to_serializer не следует использовать для прямого переопределения методов include_?. Вместо этого используйте аргумент ключа include_condition.
В /workspace/discourse/plugins/discourse-multilingual/plugin.rb:314:in block in activate!
Терминал будет использоваться задачами повторно, нажмите любую клавишу, чтобы закрыть его.
Выполнение задачи: bin/ember-cli -u
Область: все 16 проектов рабочей области
Файл блокировки актуален, шаг разрешения пропущен
Уже актуально
Готово за 1.4с с использованием pnpm v9.15.7
Ember CLI запущен с PID: 57615
I, [2025-04-25T12:45:00.214872 #57627] INFO – : Обновление списка Gem
Запуск наблюдателя за изменениями CSS
[ember-cli] Настройка ‘staticAddonTrees’ по умолчанию будет равна true в следующей версии Embroider и не может быть отключена. Чтобы подготовиться к этому, установите ‘staticAddonTrees: true’ в конфигурации Embroider.
[ember-cli] Настройка ‘staticAddonTestSupportTrees’ по умолчанию будет равна true в следующей версии Embroider и не может быть отключена. Чтобы подготовиться к этому, установите ‘staticAddonTestSupportTrees: true’ в конфигурации Embroider.
Уведомление об устаревании: add_to_serializer не следует использовать для прямого переопределения методов include_?. Вместо этого используйте аргумент ключа include_condition.
В /workspace/discourse/plugins/discourse-multilingual/plugin.rb:188:in block in activate!
Уведомление об устаревании: add_to_serializer не следует использовать для прямого переопределения методов include_?. Вместо этого используйте аргумент ключа include_condition.
В /workspace/discourse/plugins/discourse-multilingual/plugin.rb:193:in block in activate!
Уведомление об устаревании: add_to_serializer не следует использовать для прямого переопределения методов include_?. Вместо этого используйте аргумент ключа include_condition.
В /workspace/discourse/plugins/discourse-multilingual/plugin.rb:199:in block in activate!
Уведомление об устаревании: add_to_serializer не следует использовать для прямого переопределения методов include_?. Вместо этого используйте аргумент ключа include_condition.
В /workspace/discourse/plugins/discourse-multilingual/plugin.rb:312:in block in activate!
Уведомление об устаревании: add_to_serializer не следует использовать для прямого переопределения методов include_*?. Вместо этого используйте аргумент ключа include_condition.
В /workspace/discourse/plugins/discourse-multilingual/plugin.rb:314:in block in activate!
I, [2025-04-25T12:45:03.044278 #57627] INFO – : прослушивание на addr=127.0.0.1:3000 fd=29
[ember-cli] Проксирование на http://127.0.0.1:3000
[ember-cli] построение…
I, [2025-04-25T12:45:04.243153 #57627] INFO – : запуск 1 контролируемого sidekiq
[ember-cli] …[ConfigLoader]
I, [2025-04-25T12:45:04.554744 #57627] INFO – : главный процесс готов
I, [2025-04-25T12:45:04.667840 #57910] INFO – : Загрузка Sidekiq с идентификатором процесса 57910
I, [2025-04-25T12:45:04.680493 #57914] INFO – : worker=0 готов
I, [2025-04-25T12:45:04.686440 #57919] INFO – : worker=1 готов
I, [2025-04-25T12:45:04.686445 #57924] INFO – : worker=2 готов
[ember-cli] …[Babel: discourse-widget-hbs > applyPatches]
[ember-cli] …[Babel: ember-source > applyPatches]
[ember-cli] …[Babel: dialog-holder > applyPatches]
[ember-cli] …[embroider-template-compile-stage1 > applyPatches]
[ember-cli] …[Babel: select-kit > applyPatches]
[ember-cli] …[@embroider/compat/app]
[ember-cli] …[@embroider/webpack]
[ember-cli] …[@embroider/webpack]
[ember-cli] …[@embroider/webpack]
[ember-cli] …[SourceMapConcat]
[ember-cli] …[Babel: admin > applyPatches]
[ember-cli] …[SourceMapConcat]
[ember-cli] …[Babel: discourse-plugins > applyPatches]
[ember-cli] …[TemplateCompiler > applyPatches]
[ember-cli] …[Babel: discourse-plugins > applyPatches]
[ember-cli] …[SourceMapConcat]
[ember-cli] …[Babel: discourse-plugins > applyPatches]
[ember-cli] …[TemplateCompiler > applyPatches]
[ember-cli] …[Babel: discourse-plugins > applyPatches]
[ember-cli] …[SourceMapConcat]
[ember-cli] …[Babel: discourse-plugins > applyPatches]
[ember-cli]
[ember-cli] Сборка успешна (31766 мс) – обслуживание на http://localhost:4200/
[ember-cli]
[ember-cli] Самые медленные узлы (время >= 5%) | Всего (среднее)
[ember-cli] -±
[ember-cli] @embroider/webpack (1) | 21608 мс
[ember-cli] Babel: discourse-plugins (29) | 4506 мс (155 мс)
[ember-cli] broccoli-persistent-filter:Mapper (36) | 1628 мс (45 мс)
[ember-cli]
[ember-cli] (node:57634) [DEP0060] Предупреждение об устаревании: API util._extend устарел. Пожалуйста, используйте Object.assign() вместо него.
[ember-cli] (Используйте node --trace-deprecation ..., чтобы показать, где было создано предупреждение)
Здравствуйте. Касательно изменения интерфейса настроек администратора: куда мы можем добавить файлы перевода?
Редактирование: переходя по URL (/admin/multilingual/languages), можно открыть меню, однако прямых гиперссылок из нового интерфейса настроек администратора нет…
Если в этот модуль будет внесено обновление, надеюсь, что настройки будут адаптированы под новый интерфейс.
Хотя этот плагин заморожен, стоит отметить, что в новых версиях Discourse появилась возможность локализации названий и описаний категорий, а также локализации отдельных тем в качестве стандартной функции Discourse, включая ручную настройку:
Поэтому понятно, что этот плагин больше не поддерживается, так как почти все его функции теперь доступны в Discourse по умолчанию.
РЕДАКТИРОВАНИЕ: Обратите внимание, что не все текущие функции плагина Multilingual доступны в Discourse нативно на данный момент, например:
Вы не можете скрывать темы на страницах категорий в зависимости от настройки «Языки контента» в профиле пользователя.
Это всё равно значительное улучшение функционала, но предупреждаем вас перед обновлением вашего экземпляра.