Стажировка на реальных проектах:
наполнение портфолио, помощь с работой и заказами, пробные собеседования. Жми для подробностей→
133 of 182 menu
Внимание! Репетиторство по Python! Осталось последнее место! Стоимость: 20$ за занятие 1.5 часа. Жми для подробностей!

Таблица 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,
    которая хранит сами переводы строк