WPML speichert Sprach-, Übersetzungs- und String-Daten in benutzerdefinierten Datenbanktabellen. Erfahren Sie, wie diese mit WordPress-Tabellen und -Inhalten verbunden sind.
Das Datenbankmodell von WPML
Das folgende Diagramm zeigt das Modell der Tabellen, die WPML verwendet:

Sprach- und Übersetzungstabelle
Die Tabelle, die die Sprach- und Übersetzungsinformationen enthält, heißt icl_translations.
- Jedes Website-Inhaltselement, das als übersetzbar konfiguriert ist (Beitrag, Seite, Schlagwort, Kategorie, benutzerdefinierter Beitragstyp und benutzerdefinierte Taxonomien), hat einen Eintrag in dieser Tabelle. Hinweis: Kommentare sind nicht übersetzbar, haben aber einen Datensatz in icl_translations, da ihnen Sprachinformationen zugewiesen sind.
- Der Eintrag gibt die Sprache des Elements und die Übersetzungsgruppe (Elementtyp) an, zu der es gehört.
- Einträge desselben Übersetzungs-Clusters teilen denselben Wert in den Spalten element_type und trid.
- Der Eintrag ohne Ausgangssprache (NULL) im selben Cluster ist der Originaleintrag.
Sie hat die folgenden Spalten:
- translation_id – Seriennummer
- element_type – der Typ des Elements. Dieser Wert wird im Hook wpml_element_type erklärt und abgerufen.
- element_id – die ID des Elements (post_id für Beitragstypen, term_taxonomy_id für Taxonomie-Begriffe)
- trid – die ID der Übersetzungsgruppe
- language_code – Sprachcode des Elements
- source_language_code – falls übersetzt, die Sprache des Originalelements
Wenn wir zum Beispiel einen englischen Beitrag mit ID=3 haben, der ins Spanische übersetzt wird, und die spanische Übersetzung die ID=7 hat, sieht die Tabelle icl_translations wie folgt aus:
| translation_id | element_type | element_id | trid | language_code | source_language_code |
|---|---|---|---|---|---|
| 1 | post_post | 3 | 2 | en | NULL |
| 2 | post_post | 7 | 2 | es | en |
| * Da die beiden Einträge denselben trid-Wert für trid haben, sind sie Übersetzungen voneinander. Der Wert selbst ist nicht wichtig. | |||||

Auf älteren Websites (erstellt vor WPML 4.8) können Sie einen einmaligen Prozess ausführen, um die Übersetzungstabellen zu optimieren.
Länderflaggen-Tabelle
WPML wird mit einer großen Sammlung von Länderflaggen ausgeliefert. Beachten Sie, dass die Verknüpfung von Sprachen mit Ländern problematisch sein kann. Viele Sprachen werden (manchmal unterschiedlich) in verschiedenen Ländern gesprochen. Länderflaggen sind jedoch nach wie vor ein hilfreicher visueller Hinweis und helfen Besuchern, ihre Sprache leicht zu erkennen.
Die Länderflaggen von WPML werden im Verzeichnis res/flags gespeichert, und die Tabelle icl_flags gibt an, welche Flagge für jedes Land zurückgegeben werden soll. Die Spalten der Tabelle icl_flags sind:
- id – Seriennummer
- lang_code – der Sprachcode
- flag – der Name der Flaggen-Datei
- from_template – „0“: nimmt die Flagge aus dem res/flags-Ordner von WPML, „1“: nimmt die Flagge aus dem Theme-Verzeichnis
Wenn Sie eine andere Flagge verwenden möchten, können Sie eine benutzerdefinierte Flaggen-Datei hochladen, indem Sie zu WPML → Sprachen gehen und auf Sprachen bearbeiten klicken.

Sie können dieselbe Seite Sprachen bearbeiten verwenden, um eine benutzerdefinierte Sprache hinzuzufügen.
String-Übersetzungstabelle
Die meisten WordPress-Websites enthalten einige Strings, die zu keinem Element (Beitrag, Seite, Schlagwort, Kategorie) gehören, aber dennoch übersetzt werden müssen – zum Beispiel der Untertitel des Blogs.
WPML enthält einen Mechanismus namens String-Übersetzung, um diese Strings zu verarbeiten.
Die Strings werden in der Tabelle icl_strings mit den folgenden Spalten gespeichert:
- id – Seriennummer
- language – Sprache
- context – der Kontext des Strings (gibt an, wozu der String gehört)
- name – Name des Strings
- value – der Wert des Strings (sein Inhalt)
- string_package_id - ID des Pakets, zu dem der String gehört
- type – Art des Editors, der beim Bearbeiten des Strings über den Übersetzungs-Editor verwendet werden soll ( LINE, AREA oder VISUAL )
- title – der Titel des Strings, der im Übersetzungs-Editor angezeigt werden soll
- status – Übersetzungsstatus, der angibt, ob der String vollständig in alle Sprachen übersetzt ist
- gettext_context – der in der gettext-Funktion festgelegte Kontext, z. B. _x
- domain_name_context_md5 – eindeutiger Key zur Verbesserung der Such-Performance
Übersetzungen eines Strings werden in der Tabelle icl_string_translations gespeichert:
- id – Seriennummer
- string_id – die ID (Seriennummer) des Strings, der übersetzt wird
- language – die Sprache der Übersetzung
- status – der Status der Übersetzung (abgeschlossen / nicht abgeschlossen)
- value – die Übersetzung selbst
- translator_id – ID des Übersetzers
- translation_service – Übersetzungsdienst, der zum Übersetzen des Strings verwendet wird. Kann leer, lokal oder ein Remote-Dienst sein
- batch_id – ID des Batches, wenn ein String von einem Übersetzungsdienst übersetzt wird
- translation_date – Datum der Übersetzung

Alle WPML-Tabellen
Hier ist eine vollständige Liste aller Tabellen, die WPML verwendet:
wp_icl_background_taskwp_icl_content_statuswp_icl_core_statuswp_icl_flagswp_icl_languageswp_icl_languages_translationswp_icl_locale_mapwp_icl_message_statuswp_icl_mo_files_domainswp_icl_nodewp_icl_reminderswp_icl_stringswp_icl_string_batcheswp_icl_string_packageswp_icl_string_positionswp_icl_string_statuswp_icl_string_translationswp_icl_translatewp_icl_translate_jobwp_icl_translationswp_icl_translation_batcheswp_icl_translation_downloadswp_icl_translation_status