Таблица 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 пользовательские переводы для текущего маршрута (роута) и языка. Если такие записи найдены, они переопределяют соответствующие языковые переменные, подменяя стандартный текст на пользовательский.
Приоритет загрузки переводов следующий:
- Стандартные языковые файлы OpenCart
- Переводы из модификаторов (Modification System, таблица
oc_modification) - Пользовательские переводы из таблицы
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,
которая хранит настройки магазина