WPML

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:

Diagramm der WPML-Datenbanktabellen

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_idelement_typeelement_idtridlanguage_codesource_language_code
1post_post32enNULL
2post_post72esen
* Da die beiden Einträge denselben trid-Wert für trid haben, sind sie Übersetzungen voneinander. Der Wert selbst ist nicht wichtig.
Die icl_translations von WPML und zugehörige Tabellen

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 WPMLSprachen gehen und auf Sprachen bearbeiten klicken.

Hinzufügen einer benutzerdefinierten Flagge
Hinzufügen einer benutzerdefinierten Flagge

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
Die Tabellen icl_strings und icl_string_translations von WPML

Alle WPML-Tabellen

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

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

Mehr in diesem Abschnitt

Geschrieben von Amir · Zuletzt aktualisiert am 28. August 2025