Sprachen in WordPress automatisch herunterladen
Veröffentlicht: – Kommentar hinterlassen
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
.