WPML

WPML stocke les données de langue, de traduction et de chaîne dans des tables de base de données personnalisées. Découvrez comment celles-ci se connectent aux tables et au contenu de WordPress.

Modèle de base de données de WPML

Le diagramme suivant montre le modèle des tables que WPML utilise :

Diagramme des tables de base de données de WPML

Table de langue et de traduction

La table qui contient les informations de langue et de traduction s’appelle icl_translations.

  • Chaque élément de contenu du site configuré comme traduisible (article, page, étiquette, catégorie, type de publication personnalisé et taxonomies personnalisées) possède une entrée dans cette table. Remarque : Les commentaires ne sont pas traduisibles, mais ils ont un enregistrement dans icl_translations car des informations de langue leur sont attribuées.
  • L’entrée spécifie la langue de l’élément et le groupe de traduction (type d’élément) auquel il appartient.
  • Les entrées du même groupe de traduction partagent la même valeur dans les colonnes element_type et trid.
  • L’entrée sans langue source (NULL) dans le même groupe est l’entrée d’origine.

Elle comporte les colonnes suivantes :

  • translation_id – numéro de série
  • element_type – le type de l’élément. Cette valeur est expliquée et récupérée dans le hook wpml_element_type.
  • element_id – l’ID de l’élément (post_id pour les types de publication, term_taxonomy_id pour les termes de taxonomie)
  • trid – l’ID du groupe de traduction
  • language_code – code de langue de l’élément
  • source_language_code – si traduit, la langue de l’élément d’origine

Par exemple, si nous avons un article en anglais avec ID=3, qui est traduit en espagnol et que la traduction espagnole a ID=7, la table icl_translations ressemblera à ceci :

translation_idelement_typeelement_idtridlanguage_codesource_language_code
1post_post32enNULL
2post_post72esen
* Parce que les deux entrées ont la même valeur trid pour trid, elles sont des traductions l’une de l’autre. La valeur elle-même n’est pas importante.
La table icl_translations de WPML et les tables associées

Sur les anciens sites (créés avant WPML 4.8), vous pouvez exécuter un processus ponctuel pour optimiser les tables de traduction.

Table des drapeaux de pays

WPML est fourni avec une vaste collection de drapeaux de pays. Sachez qu’associer des langues à des pays peut être problématique. De nombreuses langues sont parlées (parfois différemment) dans différents pays. Cependant, les drapeaux de pays restent un repère visuel utile et aident les visiteurs à repérer facilement leur langue.

Les drapeaux de pays de WPML sont stockés dans le répertoire res/flags et la table icl_flags indique quel drapeau renvoyer pour chaque pays. Les colonnes de la table icl_flags sont :

  • id – numéro de série
  • lang_code – le code de langue
  • flag – le nom du fichier du drapeau
  • from_template – « 0 » : prendre le drapeau dans le dossier res/flags de WPML, « 1 » : prendre le drapeau dans le répertoire du thème

Si vous souhaitez utiliser un drapeau différent, vous pouvez télécharger un fichier de drapeau personnalisé en accédant à WPMLLangues et en cliquant sur Modifier les langues.

Ajouter un drapeau personnalisé
Ajouter un drapeau personnalisé

Vous pouvez utiliser cette même page Modifier les langues pour ajouter une langue personnalisée.

Table de traduction de chaînes

La plupart des sites WordPress incluent des chaînes de texte qui n’appartiennent à aucun élément (article, page, étiquette, catégorie) mais qui doivent tout de même être traduites – par exemple, le slogan du blog.

WPML inclut un mécanisme appelé Traduction de chaînes, pour gérer ces chaînes.

Les chaînes sont conservées dans la table icl_strings avec les colonnes suivantes :

  • id – numéro de série
  • language – langue
  • context – le contexte de la chaîne (indique à quoi la chaîne appartient)
  • name – nom de la chaîne
  • value – la valeur de la chaîne (son contenu)
  • string_package_id - ID du paquet auquel la chaîne appartient
  • type – type d’éditeur à utiliser lors de la modification de la chaîne via l’éditeur de traduction ( LINE, AREA ou VISUAL )
  • title – le titre de la chaîne à afficher dans l’éditeur de traduction
  • status – statut de traduction indiquant si la chaîne est entièrement traduite dans toutes les langues
  • gettext_context – le contexte défini dans la fonction gettext, par exemple _x
  • domain_name_context_md5 – clé unique pour améliorer les performances de recherche

Les traductions d’une chaîne sont conservées dans la table icl_string_translations :

  • id – numéro de série
  • string_id – l’ID (numéro de série) de la chaîne en cours de traduction
  • language – la langue de la traduction
  • status – le statut de la traduction (terminé / non terminé)
  • value – la traduction elle-même
  • translator_id – id du traducteur
  • translation_service – service de traduction utilisé pour traduire la chaîne. Peut être vide, local ou un service distant
  • batch_id – ID du lot lorsqu’une chaîne est traduite par un service de traduction
  • translation_date – date de la traduction
Les tables icl_strings et icl_string_translations de WPML

Toutes les tables de WPML

Voici une liste complète de toutes les tables que WPML utilise :

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

Plus d’informations dans cette section

Écrit par Amir · Dernière mise à jour 28 août 2025