В этой теме мы подробно рассмотрим функции локализации контента и способы их включения. Функции разделены на две части: то, что доступно по умолчанию в Discourse; и Discourse AI для автоматического перевода.
Для быстрого доступа к соответствующим разделам используйте заголовки вики ![]()
Локализация контента вашего сообщества
Discourse предоставляет вам доступ к нескольким функциям локализации, которые можно настроить по адресу:
<your-site-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
Откуда приходят ваши пользователи
Более хорошим решением, если у вас включены События просмотров страниц браузера (настройка сайта), является этот запрос, который показывает, из какой страны ваш пользователь:
SELECT
e.country_code AS country_code,
COUNT(*) AS pageviews
FROM browser_pageview_events e
WHERE e.country_code IS NOT NULL
AND e.country_code <> ''
GROUP BY e.country_code
ORDER BY pageviews DESC
Настройка
Имея вышеуказанную информацию, вы теперь лучше осведомлены о том, какие локали должно поддерживать ваше сообщество.
В <your-site-url>/admin/site_settings/category/content_localization начните настройку.
Content localization enabled- включает функцию, которая заменяет исходный написанный пользователем контент локализованным контентом. Читайте дальше о автоматическом (AI) и ручном (человеческом) режимах локализации.Content localization supported locales- список языков, которые поддерживает ваш сайтContent localization crawler param- рассматривается в разделе про краулеры нижеContent localization language switcher- рассматривается чуть ниже
Переключатель языка
Включение последующей настройки Content localization language switcher также позволяет сделать ваше сообщество более доступным для неавторизованных пользователей, показывая список языков, которые вы выбрали в списке поддерживаемых локалей:
Просмотр локализованного контента
Для зрителей локализованного контента (все посетители сайта), они могут навести курсор на индикатор рядом с датой поста, чтобы увидеть исходный язык поста. Этот индикатор появляется только если пост не на их языке. Они могут просто нажать на индикатор, чтобы увидеть исходный пост.
Для наших многоязычных авторизованных зрителей, они могут указать, что понимают несколько языков, поэтому контент на этих языках не будет переводиться.
Автоматический перевод с Discourse AI 
Discourse AI крайне важен для функции локализации и избавляет от необходимости делать ручные переводы.
Как администратор, вы захотите перейти в наш специальный раздел в Discourse AI для Переводов. Этот специальный раздел охватывает:
- прогресс перевода
- настройки AI
- настройки языка приложения
Чтобы охватить некоторые важные настройки и рекомендации:
AI translation backfill hourly rate- эта настройка по умолчанию равна50- ваш сайт будет переводить 50 постов, 50 тем, 50 категорий, 50 тегов в час, на локали, которые вы установили вContent localization supported locales. Держите это число низким при начале работы.AI translation category scope- по умолчаниюПубличные категории. Вы можете изменить это на все категории или конкретный выбор.AI translation personal messagesиAI translation include bot contentявляются самоочевидными.AI translation backfill start date- это значение пусто по умолчанию. Если вы включите функцию AI перевода “сегодня”, дата автоматически установится на “сегодня - 5 дней”AI translation post raw translator agent(и другие агенты) - В более формальных сообществах администраторы могут выбрать создание собственного агента. Это позволяет вам установить промпт, который более точно настроен на язык или словарь, который вы предпочитаете.
Вы можете обратиться к AI bot - Agents по поводу того, как настроить подходящие агенты и тонко настроить промпты для каждой функции.
Ручная локализация
Поскольку локализация является основной функцией в 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. Настройка сайта находится в разделе “Локализация контента” как Content localization crawler param:
Результатом будет то, что краулеры могут видеть следующее, где каждый поддерживаемый язык имеет соответствующий hreflang в каждой теме в head:
Для дополнительной проверки / верификации
Мы тщательно протестировали эту функцию и можем подтвердить, что мы правильно индексируемся после введения X количества поддерживаемых языков
FAQ
Я настроил все, но автоматический перевод все еще не работает для меня
Подтвердите, настроили ли вы это
Content localization supported localesимеет хотя бы один языкContent localization enabledвключена
Allow user localeвключена
(включена по умолчанию)Set locale from cookieвключена
Ai translation enabledвключена
- У вас должен быть рабочий LLM для каждого агента перевода
Если все остальное не помогает, вы можете включить SiteSetting.ai_translation_verbose_logs.
Сохраняются ли автоматические переводы, или они отправляются в LLM каждый раз, когда кто-то просматривает тему?
Переводы сохраняются, каждый пост отправляется только один раз на каждый язык, и переводы переиспользуются.
Если мой форум поддерживает английский и японский (через Content localization supported locales), и кто-то пишет на испанском, будет ли их пост переведен?
Да. Все темы и посты будут переведены на английский и японский, независимо от языка написания.
Если исходный пост редактируется, он переводится заново?
Да – с максимумом 2 раза в день. Когда пост редактируется, он отправляется на повторный перевод после задержки, большей из 5 минут или SiteSetting.editing_grace_period, чтобы учесть ninja-редактирования. Авторизованные пользователи в Content localization allowed groups имеют возможность отправить пост на повторный перевод немедленно.
Будут ли переводы удалены, если я изменю Агента или LLM?
Нет, переводы обычно сохраняются при изменении настроек, если они не удалены явно с помощью элемента меню поста или редактора перевода.



























