Sprachen in WordPress entfernen

Manchmal möchte man zusätzliche Sprachpakete aus WordPress-Projekten entfernen, da sie nicht mehr benötigt werden. Doch WordPress hat dafür (derzeit) keine Oberfläche. Wie man sie dennoch entfernen kann, möchte ich hier kurz zeigen.

Vorbemerkungen

In diesem Beitrag geht es um die Sprachdateien, die WordPress für Übersetzungen der Texte im eigenen Backend verwendet, aber auch um diejenigen von Plugins und Themes, die ihre eigenen Sprachdateien mitbringen. Es geht nicht um Mehrsprachen-Plugins – diese handhaben ihre Sprachen jeweils anders.

WordPress selbst arbeitet standardmäßig mit „Englisch (EN_US)“. Diese Sprache kann man nicht entfernen, da diese Texte Bestandteil der WordPress-Core-Dateien sind. Sie sind in keiner Sprachdatei zu finden.

Jeder WordPress-Nutzer kann die Sprache für sein Profil auch selbst festlegen. Sollte dein Nutzer die dann entferne Sprache verwenden, schaltet WordPress ihn automatisch auf „Englisch (EN_US)“ um.

Vorgehen

Ausgangsstand

Ich habe ein WordPress-Projekt, in dem Suomi (Finnisch) zusätzlich installiert ist. Die Sprachauswahl, wo das zu sehen ist, finde ich in WordPress unter Einstellungen > Allgemein.

Suomi als mögliche Sprache im WordPress-Backend.

Sprachen werden in WordPress mit international nach ISO-639 standardisierten Sprach-Kürzeln verwendet. Für einzelne Sprachen sind diese jedoch leicht angepasst, um mit Ober- und Unterkategorien zu Arbeiten (ISO 3166-1). Das Kürzel für „Deutsch“ ist z.B. de_DE, es gibt aber auch „de_CH“ für „Deutsch (Schweiz)“. Für Finnisch ist es jedoch einfach nur „fi“.

Zu diesem Projekt habe ich einen FTP-Zugang, über den ich auf die Dateien der WordPress-Installation Zugriff habe. Solltest du diesen Zugang derzeit nicht zur Hand haben, wende dich an den Support deines Hosters um ihn zu erhalten.

Vorbereitung

Stelle zunächst sicher, dass du nicht, wie oben im Screenshot zu sehen, die zu entfernende Sprache als aktuelle Sprache verwendest. Wenn doch, wechsle auf „Englisch (EN_US“).

Greife per FTP auf die Datei wp-config.php zu und kontrolliere, ob du dort eine Konstante namens WP_LANG_DIR siehst. Das könnte z.B. so aussehen:

define( 'WP_LANG_DIR', '/ein/pfad/' );

Wenn nicht, ist alles in Ordnung. Wenn sie doch vorhanden ist, merke dir den an ihr hinterlegten Pfad gut, denn du brauchst ihn später.

Ich würde zudem Empfehlungen vor den folgenden Arbeiten ein Backup vom Hosting zu erstellen. Beachte, dass nicht jedes Backup-Plugin auch die Sprachdateien umfasst. Du kannst auch einfach per FTP das gesamte Verzeichnis mit den Sprachdateien zu dir runterladen.

Vorgehen

Melde dich nun per FTP an deinem Hosting an. Rufe dort entweder den oben gemerkten Pfad oder diesen auf: /wp-content/languages/. Bei mir sieht das z.B. so aus:

Dateien im Sprach-Verzeichnis von WordPress

Um die Sprache Finnisch (Kürzel „fi“) zu löschen, lösche hier die Dateien aus dem Hauptverzeichnis „languages“ nach folgendem Schema:

  • Sprachkürzel.mo
  • admin-Sprachkürzel.mo
  • admin-network-Sprachkürzel.mo
  • continents-cities-Sprachkürzel.mo
  • admin-Sprachkürzel.l10n.php
  • admin-network-Sprachkürzel.l10n.php
  • continents-cities-Sprachkürzel.l10n.php
  • Sprachkürzel.l10n.php

Für Finnisch (Kürzel „fi“) also:

  • fi.mo
  • fi.l10n.php
  • admin-fi.mo
  • admin-fi.l10n.php
  • admin-network-fi.mo
  • admin-network-fi.l10n.php
  • continents-cities-fi.mo
  • continents-cities-fi.l10n.php

Hinweise

Die PHP-Dateien der Sprachdateien existieren erst seit WordPress 6.7. Bei Installationen vor 6.7 gibt es sie nicht.

Die ebenfalls vorhandenen .po-Dateien kannst, musst du aber nicht löschen. WordPress beachtet nur .mo und die dazugehörigen PHP-Dateien zur Erkennung der Sprachen. Natürlich mach es aber schon Sinn sie mit zu löschen, da sie nicht mehr benötigt werden.

Vermutlich wirst du auch sehr viele JSON-Dateien sehen, die mit dem von dir gesuchten Sprachkürzel beginnen. Z.B.:

Diese kannst, musst du aber ebenfalls nicht löschen – auch wenn es im Sinne des Aufräumens durchaus Vorteile hat.

Plugins und Themes

Von dir genutzte Plugins oder Themes, könnten die von dir zu löschende Sprache ggfs. ebenfalls unterstützen. Auch diese haben die Sprachdateien dann in ihren jeweiligen Unterverzeichnissen vom Sprach-Datei-Verzeichnis abgelegt. Sie sind nach diesem Schema angelegt:

  • plugin-slug-Sprachkürzel.i10n.php
  • plugin-slug-Sprachkürzel.mo

Beispiel für Finnisch von Activitypub:

Finnische Sprachdateien für das WordPress-Plugin Activitypub

Auch diese kannst du einfach löschen.

Nachkontrolle

Nachdem du die Dateien gelöschst hast, kannst du wieder im Backend unter Einstellungen > Allgemein nachschauen. Du wirst die von dir gelöschte Sprache dort nun nicht mehr finden. Sie werden auch nie wieder geladen werden, es sei denn du wählst die Sprache explizit nochmal aus.

Alternativen

Es gibt auch hier, wie in WordPress fast immer, auch ein Plugin als mögliche Lösung: Simple Translation Remover. Nach Installation und Aktivierung gehst du auf Werkzeuge > Simple Translation Remover und hakst in der Liste die Sprache an, die du entfernen willst. Danach wählst du unten den Modus aus nach dem du vorgehen willst. „Löschen“ löscht die Dateien der Sprache. Ergebnis ist das gleiche wie auf oben beschriebenem Weg.

Woher weißt du das?

Ein Blick in den Code vom WordPress Core hilft: https://github.com/WordPress/WordPress/blob/master/wp-includes/l10n.php#L1473