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

Таблица locales_target

Таблица locales_target является центральным хранилищем для всех переводов интерфейса Drupal на языки, отличные от языка по умолчанию. Она содержит переводы строк, которые были импортированы из .po-файлов или созданы через административный интерфейс.

Поля

Поле Тип данных Описание
lid int Уникальный идентификатор строки для перевода. Внешний ключ, ссылается на locales_source.lid.
translation text Переведенный текст строки на целевой язык.
language varchar(12) Языковой код перевода (например, ru, de, fr). Внешний ключ, ссылается на languages.language.
plid int Идентификатор родительской строки для множественных форм (plural forms). Ссылается на locales_source.lid.
plural int Индекс множественной формы для языков с несколькими формами множественного числа.

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

Система локализации Drupal работает по принципу "исходная строка - перевод". Исходные строки на языке по умолчанию (обычно английском) хранятся в таблице locales_source. Когда Drupal需要 отобразить строку интерфейса для неанглийского языка, он ищет перевод в таблице locales_target по связке lid и language.

Переводы могут быть добавлены несколькими способами: через импорт .po-файлов, через административный интерфейс в разделе "Перевод интерфейса" или программно с помощью функции locale().

Для строк с множественным числом (plural forms) используется комбинация полей plid и plural. Поле plid указывает на родительскую строку в locales_source, а plural определяет, какая именно форма множественного числа используется в данном переводе.

При изменении или обновлении исходных строк в коде Drupal (например, при обновлении модуля) система помечает переводы как "устаревшие", но не удаляет их из таблицы. Это позволяет вручную проверить и обновить переводы при необходимости.

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

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

SELECT ls.source, lt.translation, ls.context FROM locales_target lt INNER JOIN locales_source ls ON lt.lid = ls.lid WHERE lt.language = 'ru' AND ls.textgroup = 'modules%node%' ORDER BY ls.source;

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

  • таблицу locales_source,
    которая хранит исходные строки для перевода
  • таблицу languages,
    которая содержит список доступных языков
  • таблицу cache_locale,
    которая кэширует данные локализации
  • таблицу locales_location,
    которая отслеживает расположение строк в коде
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить