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

Um auf deiner eigenen Website zu antworten, gib die URL deiner Antwort ein, die einen Link zur Permalink-URL dieses Beitrags enthalten sollte. Deine Antwort wird dann (möglicherweise nach der Moderation) auf dieser Seite erscheinen. Möchtest du deine Antwort aktualisieren oder entfernen? Aktualisiere oder lösche deinen Beitrag und gib die URL deines Beitrags noch einmal ein. (Mehr über die Funktion von Webmentions erfahren)