wp_download_language_pack

The timeline below displays how wordpress function wp_download_language_pack has changed across different WordPress versions. If a version is not listed, refer to the next available version below.

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;
}

WordPress Version: 5.5

/**
 * Download a language pack.
 *
 * @since 4.0.0
 *
 * @see wp_get_available_translations()
 *
 * @param string $download Language code to download.
 * @return string|bool 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;
}

WordPress Version: 4.8

/**
 * Download a language pack.
 *
 * @since 4.0.0
 *
 * @see wp_get_available_translations()
 *
 * @param string $download Language code to download.
 * @return string|bool 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())) {
        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;
}

WordPress Version: 4.0

/**
 * Download a language pack.
 *
 * @since 4.0.0
 *
 * @see wp_get_available_translations()
 *
 * @param string $download Language code to download.
 * @return string|bool 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())) {
        return $download;
    }
    if (defined('DISALLOW_FILE_MODS') && DISALLOW_FILE_MODS) {
        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;
}