Таблица oc_country_description
Таблица oc_country_description предназначена для хранения переводов названий стран на разные языки, поддерживаемые магазином. Это позволяет отображать корректные названия стран в зависимости от выбранного пользователем языка интерфейса.
Поля
| Поле | Тип данных | Описание |
|---|---|---|
country_id |
int |
Внешний ключ, связывающий перевод с конкретной страной. Ссылается на таблицу oc_country.
|
language_id |
int |
Внешний ключ, определяющий язык перевода. Ссылается на таблицу oc_language.
|
name |
varchar(128) |
Название страны на языке, указанном в поле language_id.
|
Как это работает
При добавлении новой страны в справочник (таблица oc_country) администратор может заполнить её название для каждого активного языка магазина. Для этого создаются соответствующие записи в таблице oc_country_description.
Когда пользователь выбирает язык интерфейса, система при отображении списка стран (например, в форме оформления заказа или в настройках профиля) делает запрос к этой таблице, чтобы подставить локализованное название вместо стандартного из oc_country.
Составной первичный ключ (country_id, language_id) гарантирует, что для одной страны не будет двух переводов на один и тот же язык.
Пример SQL-запроса
Получить все переводы для страны с ID 20 (Великобритания) можно следующим запросом:
SELECT cd.*, l.name as language_name, l.code as language_code
FROM oc_country_description cd
LEFT JOIN oc_language l ON (cd.language_id = l.language_id)
WHERE cd.country_id = 20;
Получить название конкретной страны на текущем языке интерфейса (например, с language_id = 1):
SELECT name
FROM oc_country_description
WHERE country_id = 20 AND language_id = 1;
Смотрите также
-
таблицу
oc_country,
которая хранит основную информацию о странах -
таблицу
oc_language,
которая содержит список активных языков магазина