diff --git a/src/wp-admin/css/forms.css b/src/wp-admin/css/forms.css index 9066f58398..40c5e0903e 100644 --- a/src/wp-admin/css/forms.css +++ b/src/wp-admin/css/forms.css @@ -1069,7 +1069,9 @@ table.form-table td .updated p { } .settings-php .language-install-spinner, -.options-general-php .language-install-spinner { +.options-general-php .language-install-spinner, +.user-edit-php .language-install-spinner, +.profile-php .language-install-spinner { display: inline-block; float: none; margin: -3px 5px 0; diff --git a/src/wp-admin/includes/user.php b/src/wp-admin/includes/user.php index 1df2739d48..5b6c6ffd8b 100644 --- a/src/wp-admin/includes/user.php +++ b/src/wp-admin/includes/user.php @@ -119,7 +119,13 @@ function edit_user( $user_id = 0 ) { } elseif ( '' === $locale ) { $locale = 'en_US'; } elseif ( ! in_array( $locale, get_available_languages(), true ) ) { - $locale = ''; + if ( current_user_can( 'install_languages' ) && wp_can_install_language_pack() ) { + if ( ! wp_download_language_pack( $locale ) ) { + $locale = ''; + } + } else { + $locale = ''; + } } $user->locale = $locale; diff --git a/src/wp-admin/user-edit.php b/src/wp-admin/user-edit.php index 85ce99c4f7..2401a94d69 100644 --- a/src/wp-admin/user-edit.php +++ b/src/wp-admin/user-edit.php @@ -9,6 +9,9 @@ /** WordPress Administration Bootstrap */ require_once __DIR__ . '/admin.php'; +/** WordPress Translation Installation API */ +require_once ABSPATH . 'wp-admin/includes/translation-install.php'; + wp_reset_vars( array( 'action', 'user_id', 'wp_http_referer' ) ); $user_id = (int) $user_id; @@ -345,8 +348,11 @@ switch ( $action ) { - - + +