WordPress.org

Make WordPress Core

Ticket #38632: 38632.diff

File 38632.diff, 3.1 KB (added by swissspidy, 5 years ago)
  • src/wp-admin/includes/user.php

    diff --git src/wp-admin/includes/user.php src/wp-admin/includes/user.php
    index 6bf826b..ef067ea 100644
    function edit_user( $user_id = 0 ) { 
    9898
    9999                if ( isset( $_POST['locale'] ) ) {
    100100                        $locale = sanitize_text_field( $_POST['locale'] );
    101                         if ( ! in_array( $locale, get_available_languages(), true ) ) {
     101                        if ( 'default' === $locale ) {
    102102                                $locale = '';
     103                        } elseif ( ! in_array( $locale, get_available_languages(), true ) ) {
     104                                $locale = 'en_US';
    103105                        }
    104106
    105                         $user->locale = ( '' === $locale ) ? 'en_US' : $locale;
     107                        $user->locale = $locale;
    106108                }
    107109        }
    108110
  • src/wp-admin/user-edit.php

    diff --git src/wp-admin/user-edit.php src/wp-admin/user-edit.php
    index a85de3b..533dc17 100644
    if ( !( IS_PROFILE_PAGE && !$user_can_edit ) ) : ?> 
    273273
    274274<?php
    275275$languages = get_available_languages();
    276 if ( $languages ) : ?>
     276if ( $languages ) :
     277        $languages = array_merge( array( 'test' ), $languages );
     278        ?>
    277279<tr class="user-language-wrap">
    278280        <th scope="row">
    279281                <?php /* translators: The user language selection field label */ ?>
    if ( $languages ) : ?> 
    294296                        'id'                          => 'locale',
    295297                        'selected'                    => $user_locale,
    296298                        'languages'                   => $languages,
    297                         'show_available_translations' => false
     299                        'show_available_translations' => false,
     300                        'show_site_locale_default'    => true
    298301                ) );
    299302                ?>
    300303        </td>
  • src/wp-includes/l10n.php

    diff --git src/wp-includes/l10n.php src/wp-includes/l10n.php
    index 0ad4e01..c32deb5 100644
    function wp_get_pomo_file_data( $po_file ) { 
    10651065 *     @type bool|int $echo                         Whether to echo the generated markup. Accepts 0, 1, or their
    10661066 *                                                  boolean equivalents. Default 1.
    10671067 *     @type bool     $show_available_translations  Whether to show available translations. Default true.
     1068 *     @type bool     $show_site_locale_default     Whether to show an option to fall back to the site's locale. Default false.
    10681069 * }
    10691070 * @return string HTML content
    10701071 */
    function wp_dropdown_languages( $args = array() ) { 
    10781079                'selected'     => '',
    10791080                'echo'         => 1,
    10801081                'show_available_translations' => true,
     1082                'show_site_locale_default' => false,
    10811083        ) );
    10821084
    10831085        $translations = $args['translations'];
    function wp_dropdown_languages( $args = array() ) { 
    11221124        if ( $translations_available ) {
    11231125                $structure[] = '<optgroup label="' . esc_attr_x( 'Installed', 'translations' ) . '">';
    11241126        }
     1127
     1128        if ( $args['show_site_locale_default'] ) {
     1129                $lang_code = str_replace( '_', '-', get_locale() );
     1130                list( $lang_code ) = explode( '-', $lang_code );
     1131                $structure[] = sprintf( '<option value="default" lang="%1$s" data-installed="1">%2$s</option>', $lang_code, __( 'Site Default' ) );
     1132        }
     1133
    11251134        $structure[] = '<option value="" lang="en" data-installed="1">English (United States)</option>';
     1135
    11261136        foreach ( $languages as $language ) {
    11271137                $structure[] = sprintf(
    11281138                        '<option value="%s" lang="%s"%s data-installed="1">%s</option>',