WPML

WPML хранит данные о языках, переводах и строках в собственных таблицах базы данных. Узнайте, как они связаны с таблицами и контентом WordPress.

Модель базы данных WPML

На следующей схеме показана модель таблиц, которые использует WPML:

Схема таблиц базы данных WPML

Таблица языков и переводов

Таблица, в которой хранится информация о языках и переводах, называется icl_translations.

  • Каждый элемент контента сайта, настроенный как переводимый (запись, страница, метка, рубрика, произвольный тип записи и произвольные таксономии), имеет запись в этой таблице. Примечание: комментарии не переводятся, но они имеют запись в icl_translations, поскольку им назначена информация о языке.
  • В записи указывается язык элемента и группа перевода (тип элемента), к которой он принадлежит.
  • Записи одного и того же кластера перевода имеют одинаковое значение в столбцах element_type и trid.
  • Запись без исходного языка (NULL) в том же кластере является исходной записью.

Она содержит следующие столбцы:

  • translation_id — порядковый номер
  • element_type — тип элемента. Это значение объясняется и извлекается в хуке wpml_element_type.
  • element_id — ID элемента (post_id для типов записей, term_taxonomy_id для терминов таксономии)
  • trid — ID группы перевода
  • language_code — код языка элемента
  • source_language_code — если переведено, язык оригинального элемента

Например, если у нас есть английская запись с ID=3, которая переведена на испанский, и испанский перевод имеет ID=7, таблица icl_translations будет выглядеть так:

translation_idelement_typeelement_idtridlanguage_codesource_language_code
1post_post32enNULL
2post_post72esen
* Поскольку две записи имеют одинаковое значение trid, они являются переводами друг друга. Само по себе значение неважно.
Таблица icl_translations WPML и связанные с ней таблицы

На старых сайтах (созданных до WPML 4.8) Вы можете запустить однократный процесс, чтобы оптимизировать таблицы переводов.

Таблица флагов стран

В комплект WPML входит большая коллекция флагов стран. Имейте в виду, что связывание языков со странами может быть проблематичным. На многих языках говорят (иногда по-разному) в разных странах. Тем не менее, флаги стран по-прежнему являются полезным визуальным ориентиром и помогают посетителям легко находить свой язык.

Флаги стран WPML хранятся в каталоге res/flags, а таблица icl_flags указывает, какой флаг возвращать для каждой страны. Столбцы таблицы icl_flags:

  • id — порядковый номер
  • lang_code — код языка
  • flag — имя файла флага
  • from_template — «0»: взять флаг из папки res/flags WPML, «1»: взять флаг из каталога темы

Если Вы хотите использовать другой флаг, Вы можете загрузить пользовательский файл флага, перейдя в WPMLЯзыки и нажав Редактировать языки.

Добавление пользовательского флага
Добавление пользовательского флага

Вы можете использовать эту же страницу Редактировать языки, чтобы добавить пользовательский язык.

Таблица перевода строк

Большинство сайтов WordPress содержат некоторые строки, которые не принадлежат ни к одному элементу (записи, странице, метке, рубрике), но их все равно нужно переводить — например, краткое описание блога.

WPML включает механизм под названием Перевод строк для обработки этих строк.

Строки хранятся в таблице icl_strings со следующими столбцами:

  • id — порядковый номер
  • language — язык
  • context — контекст строки (указывает, к чему принадлежит строка)
  • name — имя строки
  • value — значение строки (ее содержимое)
  • string_package_id — ID пакета, к которому принадлежит строка
  • type — тип редактора, который следует использовать при редактировании строки через редактор переводов (LINE, AREA или VISUAL)
  • title — заголовок строки для отображения в редакторе переводов
  • status — статус перевода, указывающий, полностью ли переведена строка на все языки
  • gettext_context — контекст, заданный в функции gettext, например _x
  • domain_name_context_md5 — уникальный ключ для повышения производительности поиска

Переводы строки хранятся в таблице icl_string_translations:

  • id — порядковый номер
  • string_id — ID (порядковый номер) переводимой строки
  • language — язык перевода
  • status — статус перевода (завершен / не завершен)
  • value — сам перевод
  • translator_id — ID переводчика
  • translation_service — сервис перевода, используемый для перевода строки. Может быть пустым, локальным или удаленным сервисом
  • batch_id — ID пакета, когда строка переводится сервисом перевода
  • translation_date — дата перевода
Таблицы icl_strings и icl_string_translations WPML

Все таблицы WPML

Вот полный список всех таблиц, которые использует WPML:

wp_icl_background_task
wp_icl_content_status
wp_icl_core_status
wp_icl_flags
wp_icl_languages
wp_icl_languages_translations
wp_icl_locale_map
wp_icl_message_status
wp_icl_mo_files_domains
wp_icl_node
wp_icl_reminders
wp_icl_strings
wp_icl_string_batches
wp_icl_string_packages
wp_icl_string_positions
wp_icl_string_status
wp_icl_string_translations
wp_icl_translate
wp_icl_translate_job
wp_icl_translations
wp_icl_translation_batches
wp_icl_translation_downloads
wp_icl_translation_status

Дополнительно в этом разделе

Автор: Amir · Последнее обновление: 28 августа 2025