WordPress Version: 5.7
/**
* Download a language pack.
*
* @since 4.0.0
*
* @see wp_get_available_translations()
*
* @param string $download Language code to download.
* @return string|false Returns the language code if successfully downloaded
* (or already installed), or false on failure.
*/
function wp_download_language_pack($download)
{
// Check if the translation is already installed.
if (in_array($download, get_available_languages(), true)) {
return $download;
}
if (!wp_is_file_mod_allowed('download_language_pack')) {
return false;
}
// Confirm the translation is one we can download.
$translations = wp_get_available_translations();
if (!$translations) {
return false;
}
foreach ($translations as $translation) {
if ($translation['language'] === $download) {
$translation_to_load = true;
break;
}
}
if (empty($translation_to_load)) {
return false;
}
$translation = (object) $translation;
require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
$skin = new Automatic_Upgrader_Skin();
$upgrader = new Language_Pack_Upgrader($skin);
$translation->type = 'core';
$result = $upgrader->upgrade($translation, array('clear_update_cache' => false));
if (!$result || is_wp_error($result)) {
return false;
}
return $translation->language;
}