WordPress kommt mit einem praktischen automatischen Download für nicht installierte Sprachen. Aber wie kann man das in einer individuellen Funktion verwenden? Da ich genau das brauchte (um die identische Auswahl auf einer anderen Einstellungsseite für einen verbesserten Workflow zu haben), suchte ich nach einem Weg, dieses Verhalten nachzuahmen.

Dabei hat WordPress eine eigene Datei unter wp-admin/includes/translation-install.php dafür, die genau diese Funktionalität zum Download und zur Installation einer Sprache besitzt. In meinem Fall konnte ich so jedes Mal, wenn ich meine eigene Spracheinstellung geändert habe, prüfen, ob der Benutzer Sprachen installieren darf und sie daraufhin installieren. Der Code sieht folgendermaßen aus:

/** * Installs a language. * * @param string $language The language code * @return bool Whether installation was successful */ function prefix_install_language( string $language ): bool { if ( ! current_user_can( 'install_languages' ) ) { return false; } require_once ABSPATH . 'wp-admin/includes/translation-install.php'; if ( wp_can_install_language_pack() ) { return (bool) wp_download_language_pack( $language ); } return false; }
Code-Sprache: PHP (php)

wp_download_language_pack prüft bereits, ob die Sprache installiert ist. Andernfalls installiert sie sie automatisch für uns.

Der Parameter $language ist immer der Sprach-Code inklusive Länder-Code, z. B. de_DE_formal statt de oder en_US statt en.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert