В этой теме мы подробно рассмотрим функции локализации контента и способы их включения. Функции разделены на две части: то, что доступно по умолчанию в Discourse, и Discourse AI для автоматических переводов.
Для быстрого доступа к соответствующим разделам используйте заголовки вики ![]()
Локализация контента вашего сообщества
Обновленная версия Discourse (3.5.0.beta7-dev) предоставляет доступ к нескольким функциям локализации, которые можно настроить по адресу:
<ваш-url-сайта>/admin/site_settings/category/content_localization
Получение информации о пользователях
Сначала полезно получить некоторую информацию о вашем сообществе. Следующий запрос к Data Explorer поможет понять, сколько пользователей установили свой локаль в разделе /my/preferences/interface.
SELECT locale, count(*) as count
FROM users
WHERE (locale IS NOT null AND locale <> '')
GROUP BY locale
ORDER BY count DESC
Настройка поддерживаемых сообществом локалей
С полученной выше информацией мы теперь лучше понимаем, какие локали должно поддерживать ваше сообщество.
В разделе <ваш-url-сайта>/admin/site_settings/category/content_localization вы можете выбрать поддерживаемые локали.
Content localization enabled— включает функцию замены оригинального пользовательского контента на локализованный. Читайте дальше, чтобы узнать об автоматическом и ручном режимах локализации.Content localization supported locales— список языков, поддерживаемых вашим сайтом.Content localization crawler param— описано в разделе о роботах ниже.Content localization language switcher— описано ниже.
Включение последующей настройки Content localization language switcher также позволяет сделать ваше сообщество более доступным для пользователей, не вошедших в систему, показывая список выбранных вами языков в перечне поддерживаемых локалей:
Просмотр локализованного контента
Для зрителей локализованного контента (все посетители сайта) они могут навести курсор на индикатор рядом с датой публикации, чтобы увидеть оригинальный язык поста. Этот индикатор отображается только в том случае, если пост не на их языке.
Если пользователь хочет видеть только оригинальный контент, он может использовать переключатель над временной шкалой темы, чтобы отключить локализацию для всего сайта.
Автоматические переводы с помощью Discourse AI 
Discourse AI — это витамины, необходимые для функции локализации, которые избавляют от необходимости делать переводы вручную.
Как администратор, вам следует перейти в новый раздел функций ИИ для Перевод.
Функции Discourse AI в настройках администратора 📸
Некоторые важные настройки и рекомендации:
AI translation backfill hourly rate— эта настройка по умолчанию равна50. Предполагая ставку 50, ваш сайт будет переводить 50 постов, 50 тем и 50 категорий в час на локали, указанные вContent localization supported locales. При начале работы держите это значение низким.AI translation target categories— по умолчанию не выбрано ни одной категории. Переводится только контент в выбранных категориях. Подкатегории должны быть добавлены отдельно. Оставьте пустым, чтобы отключить перевод тем в категориях.AI translation personal messages— по умолчаниюnone. Контролирует, какие личные сообщения переводятся. ‘none’ отключает перевод личных сообщений. ‘group’ переводит только групповые личные сообщения. ‘all’ переводит все личные сообщения.AI translation include bot content— по умолчаниюfalse. При включении переводятся также посты от пользователей-ботов (user id < 0). По умолчанию контент ботов исключается из перевода.AI translation max post length— по умолчанию10000. Это мера предосторожности, предотвращающая перевод постов выше определенной длины.AI translation backfill max age days— по умолчанию5. Это означает, что темы и посты старше 5 дней не будут переведены. Вы можете увеличить это значение до большого числа, чтобы перевести все темы и посты.AI translation post raw translator agent(и другие агенты) — в более формальных сообществах администраторы могут создать собственного агента. Это позволяет установить промпт, более точно настроенный под предпочитаемый вами язык или лексику.
Вы можете обратиться к AI bot - Agents, чтобы узнать, как настроить подходящих агентов и уточнить промпты для каждой функции.
Прогресс перевода
Вы можете найти больше информации о прогрессе автоматических переводов на графике “Прогресс перевода” в разделе /admin/plugins/discourse-ai/ai-translations.
Этот график появится, если:
- у всех агентов перевода есть валидная LLM
discourse ai enabled
ai translation enabled
content localization supported localesзаполненai translation backfill max age daysбольше 0ai translation backfill hourly rateбольше 0
Ручная локализация
Поскольку локализация является основной функцией в Discourse, мы предоставляем возможность заполнять и редактировать локализации вручную в случае недоступности автоматических переводов с помощью Discourse AI.
По умолчанию администраторы и модераторы настроены на редактирование локализаций.
Разрешенные группы для локализации в настройках сайта 📸
В настоящее время поддерживаются локализации содержимого постов, заголовков тем, названий категорий, описаний категорий и тегов. Следующие разделы ниже покажут, как они работают.
Локализация категорий
Локализованные категории видны в следующих областях, при этом название и описание категории локализованы:
Места, где локализованы категории 📸
- Главная страница, боковая панель и выпадающий список категорий
- Страница категорий
- Конкретная категория с подкатегориями
Как администратор, вы должны иметь возможность получить доступ к настройкам категории как обычно и найти новый элемент навигации “Локализации” слева.
Локализация тем и постов
Из скриншотов выше в разделе Локализация категорий вы могли заметить, что заголовки тем и отрывки также локализованы.
Существуют некоторые предварительные настройки:
- Убедитесь, что ваш пользователь находится в группе
content localization allowed groups. - Кнопка
addTranslationавтоматически добавляется вpost menuиpost menu hidden items, когда включена настройкаContent localization enabled. Это позволяет отображать значок
в меню поста для пользователей из content localization allowed groups. Content localization allow author localizationвключена по умолчанию и позволяет авторам постов локализовать свой собственный контент, используя то же меню поста, что и выше.
Опять же, список языков, которые можно локализовать, находится в настройке Content localization supported locales, упомянутой выше.
Редактирование локализованного поста
В случае, если пользователь просматривает локализованный пост и хочет его отредактировать, появится диалоговое окно с вопросом, какую версию они предпочитают редактировать:
После выбора появится соответствующий редактор.
Удаление перевода поста для определенного локала
Если вы правильно следовали инструкциям выше относительно настройки post menu, вы должны иметь возможность сделать следующее, если находитесь в группе Content localization allowed groups:
Роботы (Crawlers)
Вы можете разрешить роботам видеть ваш сайт на различных языках, настроенных в Content localization supported locales. Настройка сайта находится в разделе “Локализация контента” под названием Content localization crawler param:
Результатом будет то, что роботы увидят следующее, где для каждого поддерживаемого языка есть соответствующий hreflang в заголовке каждой темы:
Для дополнительной проверки / подтверждения
Мы extensively протестировали эту функцию и можем подтвердить, что после внедрения X количества поддерживаемых языков мы правильно индексируемся.
Часто задаваемые вопросы (FAQ)
Я всё настроил, но автоматический перевод всё еще не работает
Убедитесь, что у вас настроено следующее:
Content localization supported localesсодержит хотя бы один языкContent localization enabled
Allow user locale
(включено по умолчанию)Set locale from cookie
Ai translation enabled
Ai translation backfill max age daysне равен 0Ai translation backfill hourly rateбольше 12- У вас должен быть настроен рабочий LLM для каждого агента перевода
Если ничего не помогает, вы можете включить SiteSetting.ai_translation_verbose_logs.
Переводится ли каждый пост?
Если AI translation backfill limit to public content
, то все посты в публичных категориях будут переведены. По умолчанию посты ботов (user id < 0) исключаются, если не включена настройка AI translation include bot content.
Сохраняются ли автоматические переводы или они отправляются в LLM каждый раз, когда кто-то просматривает тему?
Переводы сохраняются; каждый пост отправляется только один раз для каждого языка, и переводы используются повторно.
Если мой форум поддерживает английский и японский (через Content localization supported locales), и кто-то пишет на испанском, будет ли его пост переведен?
Да. Все темы и посты будут переведены на английский и японский, независимо от языка написания.
Если оригинальный пост отредактирован, будет ли он переведен заново?
Да — максимум 2 раза в день. При редактировании поста он отправляется на повторный перевод с задержкой, равной большему из 5 минут или SiteSetting.editing_grace_period, чтобы учесть быстрые правки. Авторизованные пользователи из Content localization allowed groups имеют возможность отправить пост на повторный перевод немедленно.
Будут ли удалены переводы, если я изменю Агента или LLM?
Нет, переводы обычно сохраняются при изменении настроек, если они явно не удалены через элемент меню поста или редактор переводов.






















