Таблица languages
Таблица languages является системной таблицей Drupal и служит для хранения метаданных обо всех языках, которые доступны на сайте. Каждая запись в таблице соответствует одному языку и содержит информацию, необходимую для его идентификации и обработки системой.
Поля
| Поле | Тип данных | Описание |
|---|---|---|
langcode |
varchar(12) |
Уникальный машинный код языка (например, en, ru, uk). Является первичным ключом таблицы.
|
name |
varchar(255) |
Человекочитаемое название языка на самом этом языке (например, English, Русский, Українська). |
direction |
int |
Направление письма. 0 означает слева направо (LTR), 1 - справа налево (RTL).
|
weight |
int |
Вес языка, определяющий порядок его отображения в списках и интерфейсе. Меньшее число означает более высокое положение в списке. |
locked |
int |
Флаг, указывающий, можно ли удалить язык. 0 - язык можно удалить, 1 - язык заблокирован для удаления (например, язык по умолчанию).
|
default |
int |
Флаг, указывающий язык сайта по умолчанию. 1 - данный язык является языком по умолчанию, 0 - не является.
|
Как это работает
Drupal использует таблицу languages как основной справочник для мультиязычной системы. При установке ядра Drupal в таблицу автоматически добавляется язык по умолчанию (обычно en). Последующие языки добавляются администратором через интерфейс администрирования (/admin/config/regional/language) или с помощью модуля locale.
Поле langcode используется в качестве внешнего ключа во многих других таблицах Drupal (например, node_field_data, users_field_data) для обозначения языка, к которому привязана конкретная версия переводимого содержимого (ноды, пользователи, таксономия и т.д.).
Значение поля default определяет, какой язык будет использоваться по умолчанию для контента, который еще не был переведен, а также для интерфейса, если не указано иное. Язык, помеченный как используемый по умолчанию, не может быть удален (его поле locked автоматически устанавливается в 1).
Пример SQL-запроса
Получить список всех установленных языков, отсортированных по весу, можно следующим запросом:
SELECT langcode, name, direction, weight, locked, default
FROM languages
ORDER BY weight ASC, name ASC;
Проверить, какой язык является языком по умолчанию:
SELECT langcode, name
FROM languages
WHERE default = 1;
Смотрите также
-
таблицу
node_field_data,
которая хранит данные нод для разных языков -
таблицу
locales_location,
которая хранит информацию о расположении строк перевода -
таблицу
locales_source,
которая содержит исходные строки для перевода -
таблицу
locales_target,
которая хранит сами переводы строк