НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
85 of 152 menu

Таблица oc_translation

Таблица oc_translation служит для переопределения системных переводов и хранения пользовательских модификаций языковых строк. Она позволяет администраторам и разработчикам кастомизировать любой текст в интерфейсе магазина без редактирования языковых файлов.

Поля

Поле Тип данных Описание
translation_id int Уникальный идентификатор записи перевода. Автоинкремент.
store_id int Идентификатор магазина, для которого применяется перевод. Ссылается на oc_store. Значение 0 означает, что перевод применяется ко всем магазинам.
language_id int Идентификатор языка перевода. Ссылается на oc_language.
route varchar(64) Маршрут (роут), для которого применяется перевод. Определяет контекст, в котором используется строка (например, common/header, product/product, account/login).
key varchar(64) Ключ языковой переменной, которую нужно перевести (например, text_home, button_continue, error_email).
value text Пользовательский перевод для указанного ключа. Это значение заменит стандартный перевод из языкового файла.
date_added datetime Дата и время добавления перевода.

Как это работает

При загрузке любой страницы OpenCart система сначала загружает стандартные языковые файлы из папки catalog/language/.... Затем выполняется проверка: есть ли в таблице oc_translation пользовательские переводы для текущего маршрута (роута) и языка. Если такие записи найдены, они переопределяют соответствующие языковые переменные, подменяя стандартный текст на пользовательский.

Приоритет загрузки переводов следующий:

  1. Стандартные языковые файлы OpenCart
  2. Переводы из модификаторов (Modification System, таблица oc_modification)
  3. Пользовательские переводы из таблицы oc_translation (имеют наивысший приоритет)

Поле store_id позволяет задавать разные переводы для разных магазинов в мультисторе режиме. Поле route обеспечивает контекстное применение перевода, предотвращая конфликты, когда один и тот же ключ используется в разных частях интерфейса.

Данные в эту таблицу обычно добавляются через административную панель OpenCart в разделе "Дизайн" → "Переводы", где можно выбрать язык, маршрут и отредактировать нужные текстовые строки.

Пример SQL-запроса

Получить все пользовательские переводы для главной страницы на русском языке можно следующим запросом:

SELECT t.*, l.name as language_name, s.name as store_name FROM oc_translation t LEFT JOIN oc_language l ON (t.language_id = l.language_id) LEFT JOIN oc_store s ON (t.store_id = s.store_id) WHERE t.route = 'common/home' AND l.code = 'ru-ru';

Смотрите также

  • таблицу oc_language,
    которая хранит список языков
  • таблицу oc_modification,
    которая также влияет на модификацию языковых строк
  • таблицу oc_setting,
    которая хранит настройки магазина
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить