- Status
- Gelöst
Übersicht über das Problem
Wenn Sie ein Sprach-Locale ändern, zum Beispiel für Deutsch von de_DE auf de_DE_formal, stellen Sie möglicherweise fest, dass die Übersetzung von Strings nicht mehr angezeigt wird.
Dieses Problem tritt auf, weil WPML keine MO-Dateien mit passendem Sprach-Locale mehr finden kann. In unserem Beispiel würde es nach some-domain-de_DE_formal.mo suchen, aber eine solche Datei existiert nicht. Stattdessen hat WPML nur einen Eintrag für some-domain-de_DE.mo.
Problemumgehung
Um dieses Problem zu lösen, müssen Sie zwei Dinge tun:
1. Wenn Sie Strings haben, die über die Seite WPML -> String-Übersetzung übersetzt wurden, gehen Sie zur Seite WPML -> Support -> Fehlerbehebung und klicken Sie auf die Schaltfläche Show custom MO Files Pre-generation dialog box. Klicken Sie in dem angezeigten Dialogfeld auf die blaue Schaltfläche, um benutzerdefinierte MO-Dateien neu zu generieren.
2. Höchstwahrscheinlich wird der erste Schritt nicht alle fehlenden Strings reparieren. Dies liegt daran, dass einige Werte aus fehlenden nativen MO-Dateien stammen könnten, die von anderen Plugins oder Themes bereitgestellt werden. Um dies zu lösen, müssen Sie die fehlenden MO-Dateien finden und Kopien mit neuen Namen erstellen, die den neuen Sprachcode enthalten.
Wenn in unserem Beispiel ein String normalerweise aus der Datei woocommerce-de_DE.mo geladen wird, müssen wir diese Datei finden und eine Kopie davon mit einem Namen erstellen, der dem aktuellen Gebietsschema entspricht: woocommerce-de_DE_formal.mo. Sie müssen alle fehlenden Dateien kopieren, die von Ihrer Website verwendet werden.
Die typischen Orte, an denen Sie diese MO-Dateien finden können, sind:
- ../wp-content/languages/
- ../wp-content/plugins/plugin-in-question/
- ../wp-content/plugins/plugin-in-question/languages/
Schließlich können Sie auch spezifische Pfade in der Tabelle wp_icl_mo_files_domains in Ihrer Datenbank finden.