Урок 16 / 22 · Commentail 1.3.2
Интерфейс Commentail и письма переведены на en, ru, de, fr, es и pt-br. Текст комментария и введённая модератором причина остаются на исходном языке. Переключение языка интерфейса их не переводит.
Включим языки проекта
Если сайт ещё не настроен на несколько языков, начните с его стандартного механизма Django/Wagtail. В settings добавьте нужные коды:
from django.utils.translation import gettext_lazy as _
LANGUAGE_CODE = "en"
LANGUAGES = [("en", _("English")), ("ru", _("Russian"))]
# Keep the existing LocaleMiddleware after SessionMiddleware and before CommonMiddleware.
# If WAGTAILADMIN_PERMITTED_LANGUAGES is restricted, add these languages there too.
Не дублируйте LocaleMiddleware. Для выбора языка используйте существующий переключатель сайта. Если его пока нет, подключайте стандартный Django set_language с POST и CSRF по документации Django (на английском), а не меняйте глобальную LANGUAGE_CODE для каждого посетителя.
Проверьте русскую и английскую страницу, форму ошибки и админку обычного модератора. Комментарии привязаны к Site и конкретному target: не обещайте общий разговор у разных переводных Page. Для переведённого дерева root page проверьте публикацию и принадлежность Site; версия 1.3.2 исправляет доступ в таком дереве.
Письмо сохраняет язык получателя при создании задания. Поэтому переключение языка обработчика не превращает все письма в английские. Собственные шаблоны и новые фразы требуют проектных переводов и компиляции каталога.
Настройки по домену
Техническая конфигурация разрешается от встроенных значений к default, затем к точному Site.hostname:
COMMENTAIL = {
"default": {"AUTHOR_LIMIT_PER_HOUR": 20},
"forum.example.org": {"AUTHOR_LIMIT_PER_HOUR": 40},
}
Ключ — forum.example.org, без схемы, порта и пути. Порт и root page задаются в Wagtail Site, а не в этом ключе. OBJECT_ADAPTERS и RULES_CSV_* принадлежат проекту и допустимы только в default.
Для разных CAPTCHA на разных доменах укажите оба ключа в каждом переопределении CAPTCHA_OPTIONS: словарь заменяется целиком. Нельзя задать там один secret_key в расчёте, что site_key унаследуется из default.
Проверим изоляцию
На каждом домене проверьте открытую страницу, заголовок письма, ссылки подтверждения и права редакторской группы. Подтверждение гостя и квоты разделяются по Site. Неправильный hostname/root может дать пустой виджет или чужую область настроек; сначала исправьте Site, не обходите проверку адаптером.
Другие уроки по этой задаче
- 2. Подключаем Commentail к существующему Wagtail
- 15. Аватары, имена и динамические шаблоны
- 19. Рабочий сайт: nginx, кеш и данные пользователей
Выберите способ входа или оставьте комментарий как гость ниже.