Мультиязычность
Назначение
Сервис обеспечивает использование интерфейса и данных в нескольких языковых вариантах. Включает переводы меток интерфейса (translation), словари и переключатель языка в Dinext.
Цели и задачи
- Отображать интерфейс (метки, сообщения) на выбранном языке пользователя.
- Вести переводы для стандартных и кастомных меток (Translation).
- Поддерживать несколько языков для данных (описания, справочники) при настройке.
- Переключать язык в профиле пользователя или на сайте.
- Обеспечивать единообразие терминологии через централизованные переводы.
Для кого
- Все пользователи, работающие на предпочитаемом языке.
- Администраторы и переводчики, заполняющие словари переводов.
- Многоязычные команды и заказчики.
Основные понятия
- Translation — запись перевода: исходная строка (source text), язык, переведенная строка. Используется для меток интерфейса и при необходимости для данных.
- Язык по умолчанию — язык интерфейса при отсутствии перевода или выбора пользователя; задается в настройках сайта или системы.
- Language — справочник поддерживаемых языков в системе.
- translation.py — логика загрузки и применения переводов.
Основные сущности / объекты
- Translation , translation.py .
Основные сценарии / процессов
Переключение языка (пользователь)
- Открыть профиль пользователя (User) или настройки сайта.
- Выбрать язык интерфейса (Language); сохранить.
- После обновления страницы метки отображаются на выбранном языке в пределах имеющихся переводов.
- При отсутствии перевода отображается исходная строка (обычно на английском или языке по умолчанию).
Добавление переводов (администратор / переводчик)
- Открыть список Translation или инструмент переводов (например, через Language или Translate в настройках).
- Найти исходную строку (из интерфейса или из экспорта непереведенных строк).
- Создать или отредактировать запись: исходный текст, язык, переведенный текст.
- Сохранить; при следующей загрузке страницы перевод применится.
- Для массового перевода использовать экспорт строк в файл, перевод и импорт по документации Dinext.
Локализация данных (при необходимости)
- Для переводимых полей в справочниках (например, название номенклатуры на нескольких языках) может использоваться отдельная таблица переводов или кастомные поля (Item Name RU, Item Name EN и т.д.) в зависимости от конфигурации.
- Отображение значения по языку пользователя настраивается в форме или в запросах (условие по language).
- Стандартная модель Translation в Dinext в первую очередь для меток интерфейса; данные — по реализации проекта.
Правила и ограничения
- Переводы кэшируются для производительности; после изменения переводов может потребоваться очистка кэша или перезагрузка воркеров.
- Не все строки интерфейса могут быть вынесены в Translation (часть генерируется в коде); для полной локализации проверять покрытие и при необходимости добавлять строки в словарь вручную или через инструменты экспорта непереведенных.
- Язык пользователя может переопределяться языком браузера или сайта в зависимости от настроек.
Результаты / отчетность
- Интерфейс на выбранном языке для пользователей.
- Список переводов (Translation) с фильтрами по языку и контексту.
- Отчет о непереведенных строках при использовании инструментов экспорта/проверки.
Типовые вопросы и ошибки (FAQ)
После добавления перевода ничего не изменилось
Очистите кэш (Clear Cache в настройках или перезапуск приложения); обновите страницу. Убедитесь, что исходная строка совпадает точно (пробелы, регистр). Проверьте, что выбран правильный язык в профиле пользователя.
Как перевести кастомное поле?
Метка поля (Label) хранится в метаданных тип документа или в Custom Field; при смене языка подставляется перевод из Translation для этой метки, если запись создана. Создайте Translation с source text = точная метка поля и нужным языком.
Где задается язык по умолчанию для сайта?
В настройках сайта (Site Config или System Settings) обычно есть параметр default_language или language; при отсутствии выбора пользователя используется он. Уточните в документации вашей версии Dinext.