WordPress: DIVI: Sprachdateien richtig einbinden

Ich nutze das Theme “DIVI” auf einigen Webseiten und finde es auch richtig gut.

Mich ärgert aber die grottenschlechte Sprachunterstützung. Da gibt es Wort-Ungetüme wie “Vollbreite Rinne” und anderen Mist.
Bis jetzt wird immer versprochen, daß an der Sprachunterstützung gearbeitet werden soll, aber wie das so ist mit unseren amerikanischen Freunden, die Priorität setzen sie nicht unbedingt in unserem Sinne.

Ich habe dann lange herumgestochert und festgestellt, daß selbst bei selbsterstellter Sprachdatei in einem CHILD-Theme immer noch die schlimmsten Knaller überleben… bis ich dann endlich im Supportforum eine kompetente Erklärung erhielt.

  1. Tatsache ist, daß dieses Theme von Elegantthemes.com nicht eine, sondern drei Text-Domains nutzt, also 3 Sprachdateien für eine komplette Übersetzung benötigt.
  2. Sprachdateien, die von einem CHILD-Theme geladen werden, haben Vorrang vor den Sprachdateien des PARENT-Themes.
  3. Man braucht aber nur die Strings übersetzen, die man ändern möchte, alle anderen werden weiterhin von den Sprachdateien des PARENT-Themes eingelesen.
  4. Also muss man diese 3 Textdomains in der Datei functions.php des CHILD-Themes laden.

Wie das geht? Und wo sitzen die Original-Sprachdateien im DIVI-Theme?

Divi domain werden geladen aus dem Verzeichnis /lang
et-core domain werden geladen aus dem Verzeichnis /core/languages 
et_builder domain werden geladen aus dem Verzeichnis /includes/builder/languages/ 

Wenn man nun also 3 Verzeichnisse im CHILD-THEME hinzufügt, kann man die jeweiligen Sprachdateien dorthinein kopieren und von dort laden:

  1. Am besten also ein Unterverzeichnis /languages (nennen wie man möchte)
  2. und dort wiederum drei Unterverzeichnisse /divi und  /core und  /builder  anlegen, dann erhält man diese Verzeichnisstruktur
    1. /languages/divi
    2. /languages/core
    3. /languages/builder
  3. In der Datei functions.php des Childthemes dann diese Zeilen einbinden:

    add_action( 'after_setup_theme', function () {
        load_child_theme_textdomain( 'Divi', get_stylesheet_directory() . '/languages/divi' );
        load_child_theme_textdomain( 'et-core', get_stylesheet_directory() . '/languages/core' );
        load_child_theme_textdomain( 'et_builder', get_stylesheet_directory() . '/languages/builder' );
    } );

  4. Anschließend lädt man sich die Sprachdateien aus den jeweiligen Verzeichnissen des Parent-Themes  im Editor POEDIT, bearbeitet sie und lädt die entstandenen Sprachdateien dann in die jeweiligen Verzeichnisse des CHILD-Themes hoch.

Ich hab das aufgeschrieben, damit ich es mir auch merke ;=)