WordPress.org

Make WordPress Core

Ticket #29783: 29783.2.patch

File 29783.2.patch, 14.1 KB (added by ocean90, 21 months ago)
  • src/wp-admin/admin-header.php

     
    157157$admin_body_class .= ' branch-' . str_replace( array( '.', ',' ), '-', floatval( $wp_version ) ); 
    158158$admin_body_class .= ' version-' . str_replace( '.', '-', preg_replace( '/^([.0-9]+).*/', '$1', $wp_version ) ); 
    159159$admin_body_class .= ' admin-color-' . sanitize_html_class( get_user_option( 'admin_color' ), 'fresh' ); 
    160 $admin_body_class .= ' locale-' . sanitize_html_class( strtolower( str_replace( '_', '-', get_locale() ) ) ); 
     160$admin_body_class .= ' locale-' . sanitize_html_class( strtolower( str_replace( '_', '-', get_user_locale() ) ) ); 
    161161 
    162162if ( wp_is_mobile() ) 
    163163        $admin_body_class .= ' mobile'; 
  • src/wp-admin/credits.php

     
    2222*/ 
    2323function wp_credits() { 
    2424        global $wp_version; 
    25         $locale = get_locale(); 
     25        $locale = get_user_locale(); 
    2626 
    2727        $results = get_site_transient( 'wordpress_credits_' . $locale ); 
    2828 
  • src/wp-admin/includes/class-wp-plugin-install-list-table.php

     
    126126                                'active_installs' => true 
    127127                        ), 
    128128                        // Send the locale and installed plugin slugs to the API so it can provide context-sensitive results. 
    129                         'locale' => get_locale(), 
     129                        'locale' => get_user_locale(), 
    130130                        'installed_plugins' => $this->get_installed_plugin_slugs(), 
    131131                ); 
    132132 
  • src/wp-admin/includes/class-wp-press-this.php

     
    12781278        $admin_body_class .= ' branch-' . str_replace( array( '.', ',' ), '-', floatval( $wp_version ) ); 
    12791279        $admin_body_class .= ' version-' . str_replace( '.', '-', preg_replace( '/^([.0-9]+).*/', '$1', $wp_version ) ); 
    12801280        $admin_body_class .= ' admin-color-' . sanitize_html_class( get_user_option( 'admin_color' ), 'fresh' ); 
    1281         $admin_body_class .= ' locale-' . sanitize_html_class( strtolower( str_replace( '_', '-', get_locale() ) ) ); 
     1281        $admin_body_class .= ' locale-' . sanitize_html_class( strtolower( str_replace( '_', '-', get_user_locale() ) ) ); 
    12821282 
    12831283        /** This filter is documented in wp-admin/admin-header.php */ 
    12841284        $admin_body_classes = apply_filters( 'admin_body_class', '' ); 
  • src/wp-admin/includes/dashboard.php

     
    12301230                $notice .= "<p class='browser-update-nag{$browser_nag_class}'>{$msg}</p>"; 
    12311231 
    12321232                $browsehappy = 'http://browsehappy.com/'; 
    1233                 $locale = get_locale(); 
     1233                $locale = get_user_locale(); 
    12341234                if ( 'en_US' !== $locale ) 
    12351235                        $browsehappy = add_query_arg( 'locale', $locale, $browsehappy ); 
    12361236 
  • src/wp-admin/includes/import.php

     
    125125function wp_get_popular_importers() { 
    126126        include( ABSPATH . WPINC . '/version.php' ); // include an unmodified $wp_version 
    127127 
    128         $locale = get_locale(); 
     128        $locale = get_user_locale(); 
    129129        $popular_importers = get_site_transient( 'popular_importers_' . $locale ); 
    130130 
    131131        if ( ! $popular_importers ) { 
    132                 $url = add_query_arg( 'locale', get_locale(), 'http://api.wordpress.org/core/importers/1.1/' ); 
     132                $url = add_query_arg( 'locale', $locale, 'http://api.wordpress.org/core/importers/1.1/' ); 
    133133                $options = array( 'user-agent' => 'WordPress/' . $wp_version . '; ' . home_url() ); 
    134134                $response = wp_remote_get( $url, $options ); 
    135135                $popular_importers = json_decode( wp_remote_retrieve_body( $response ), true ); 
  • src/wp-admin/includes/plugin-install.php

     
    3737        } 
    3838 
    3939        if ( ! isset( $args->locale ) ) { 
    40                 $args->locale = get_locale(); 
     40                $args->locale = get_user_locale(); 
    4141        } 
    4242 
    4343        /** 
  • src/wp-admin/includes/template.php

     
    16471647/** This action is documented in wp-admin/admin-header.php */ 
    16481648do_action( 'admin_head' ); 
    16491649 
    1650 $admin_body_class .= ' locale-' . sanitize_html_class( strtolower( str_replace( '_', '-', get_locale() ) ) ); 
     1650$admin_body_class .= ' locale-' . sanitize_html_class( strtolower( str_replace( '_', '-', get_user_locale() ) ) ); 
    16511651 
    16521652if ( is_rtl() ) 
    16531653        $admin_body_class .= ' rtl'; 
  • src/wp-admin/includes/theme.php

     
    327327        } 
    328328 
    329329        if ( ! isset( $args->locale ) ) { 
    330                 $args->locale = get_locale(); 
     330                $args->locale = get_user_locale(); 
    331331        } 
    332332 
    333333        /** 
  • src/wp-admin/includes/user.php

     
    9494                $user->rich_editing = isset( $_POST['rich_editing'] ) && 'false' == $_POST['rich_editing'] ? 'false' : 'true'; 
    9595                $user->admin_color = isset( $_POST['admin_color'] ) ? sanitize_text_field( $_POST['admin_color'] ) : 'fresh'; 
    9696                $user->show_admin_bar_front = isset( $_POST['admin_bar_front'] ) ? 'true' : 'false'; 
     97                $user->locale = ''; 
     98                if ( isset( $_POST['locale'] ) ) { 
     99                        $user->locale = ( '' === $_POST['locale'] ) ? 'en_US' : $_POST['locale']; // @todo validation 
     100                } 
    97101        } 
    98102 
    99103        $user->comment_shortcuts = isset( $_POST['comment_shortcuts'] ) && 'true' == $_POST['comment_shortcuts'] ? 'true' : ''; 
  • src/wp-admin/plugin-editor.php

     
    245245                <input type="hidden" name="scrollto" id="scrollto" value="<?php echo $scrollto; ?>" /> 
    246246                </div> 
    247247                <?php if ( !empty( $docs_select ) ) : ?> 
    248                 <div id="documentation" class="hide-if-no-js"><label for="docs-list"><?php _e('Documentation:') ?></label> <?php echo $docs_select ?> <input type="button" class="button" value="<?php esc_attr_e( 'Look Up' ) ?> " onclick="if ( '' != jQuery('#docs-list').val() ) { window.open( 'http://api.wordpress.org/core/handbook/1.0/?function=' + escape( jQuery( '#docs-list' ).val() ) + '&amp;locale=<?php echo urlencode( get_locale() ) ?>&amp;version=<?php echo urlencode( $wp_version ) ?>&amp;redirect=true'); }" /></div> 
     248                <div id="documentation" class="hide-if-no-js"><label for="docs-list"><?php _e('Documentation:') ?></label> <?php echo $docs_select ?> <input type="button" class="button" value="<?php esc_attr_e( 'Look Up' ) ?> " onclick="if ( '' != jQuery('#docs-list').val() ) { window.open( 'http://api.wordpress.org/core/handbook/1.0/?function=' + escape( jQuery( '#docs-list' ).val() ) + '&amp;locale=<?php echo urlencode( get_user_locale() ) ?>&amp;version=<?php echo urlencode( $wp_version ) ?>&amp;redirect=true'); }" /></div> 
    249249                <?php endif; ?> 
    250250<?php if ( is_writeable($real_file) ) : ?> 
    251251        <?php if ( in_array( $file, (array) get_option( 'active_plugins', array() ) ) ) { ?> 
  • src/wp-admin/theme-editor.php

     
    206206                <div id="documentation" class="hide-if-no-js"> 
    207207                <label for="docs-list"><?php _e('Documentation:') ?></label> 
    208208                <?php echo $docs_select; ?> 
    209                 <input type="button" class="button" value=" <?php esc_attr_e( 'Look Up' ); ?> " onclick="if ( '' != jQuery('#docs-list').val() ) { window.open( 'http://api.wordpress.org/core/handbook/1.0/?function=' + escape( jQuery( '#docs-list' ).val() ) + '&amp;locale=<?php echo urlencode( get_locale() ) ?>&amp;version=<?php echo urlencode( $wp_version ) ?>&amp;redirect=true'); }" /> 
     209                <input type="button" class="button" value=" <?php esc_attr_e( 'Look Up' ); ?> " onclick="if ( '' != jQuery('#docs-list').val() ) { window.open( 'http://api.wordpress.org/core/handbook/1.0/?function=' + escape( jQuery( '#docs-list' ).val() ) + '&amp;locale=<?php echo urlencode( get_user_locale() ) ?>&amp;version=<?php echo urlencode( $wp_version ) ?>&amp;redirect=true'); }" /> 
    210210                </div> 
    211211        <?php endif; ?> 
    212212 
  • src/wp-admin/user-edit.php

     
    274274</fieldset> 
    275275</td> 
    276276</tr> 
     277 
    277278<?php 
     279$languages = get_available_languages(); 
     280if ( $languages ) : ?> 
     281<tr class="user-language-wrap"> 
     282        <th scope="row"> 
     283                <label for="site_language"><?php _e( 'Site Language' ); ?></label> 
     284        </th> 
     285        <td> 
     286                <?php 
     287                $lang = get_user_option( 'locale', $profileuser->ID ); 
     288                var_dump($lang); 
     289                if ( 'en_US' === $lang ) { // en_US 
     290                        $lang = false; 
     291                } elseif ( ! in_array( $lang, $languages ) ) { 
     292                        $lang = get_locale(); 
     293                } 
     294 
     295                wp_dropdown_languages( array( 
     296                        'name'         => 'locale', 
     297                        'id'           => 'locale', 
     298                        'selected'     => $lang, 
     299                        'languages'    => $languages, 
     300                        'show_available_translations' => false 
     301                ) ); 
     302                ?> 
     303        </td> 
     304</tr> 
     305<?php 
     306endif; 
     307?> 
     308 
     309<?php 
    278310/** 
    279311 * Fires at the end of the 'Personal Options' settings table on the user editing screen. 
    280312 * 
  • src/wp-includes/class-wp-editor.php

     
    311311                        if ( empty( self::$first_init ) ) { 
    312312                                self::$baseurl = includes_url( 'js/tinymce' ); 
    313313 
    314                                 $mce_locale = get_locale(); 
     314                                $mce_locale = get_user_locale(); 
    315315                                self::$mce_locale = $mce_locale = empty( $mce_locale ) ? 'en' : strtolower( substr( $mce_locale, 0, 2 ) ); // ISO 639-1 
    316316 
    317317                                /** This filter is documented in wp-admin/includes/media.php */ 
     
    629629                                } 
    630630                        } 
    631631 
    632                         $body_class .= ' locale-' . sanitize_html_class( strtolower( str_replace( '_', '-', get_locale() ) ) ); 
     632                        $body_class .= ' locale-' . sanitize_html_class( strtolower( str_replace( '_', '-', get_user_locale() ) ) ); 
    633633 
    634634                        if ( !empty($set['tinymce']['body_class']) ) { 
    635635                                $body_class .= ' ' . $set['tinymce']['body_class']; 
  • src/wp-includes/class-wp-theme.php

     
    12641264         * @access public 
    12651265         */ 
    12661266        public static function sort_by_name( &$themes ) { 
    1267                 if ( 0 === strpos( get_locale(), 'en_' ) ) { 
     1267                if ( 0 === strpos( get_user_locale(), 'en_' ) ) { 
    12681268                        uasort( $themes, array( 'WP_Theme', '_name_sort' ) ); 
    12691269                } else { 
    12701270                        uasort( $themes, array( 'WP_Theme', '_name_sort_i18n' ) ); 
  • src/wp-includes/l10n.php

     
    7575} 
    7676 
    7777/** 
     78 * Get the locale of current user. 
     79 * 
     80 * Returns {@see get_locale()} for non-admin requests. 
     81 * 
     82 * If the user has a locale set to an non-empty string then it will be 
     83 * returned. Otherwise it returns the locale of {@see get_locale()}. 
     84 * 
     85 * @return string The locale of the current user. 
     86 */ 
     87function get_user_locale() { 
     88        if ( ! is_admin() ) { 
     89                return get_locale(); 
     90        } 
     91 
     92        $user = wp_get_current_user(); 
     93 
     94        if ( ! $user ) { 
     95                return get_locale(); 
     96        } 
     97 
     98        $locale = $user->locale; 
     99        return ( '' === $locale ) ? get_locale() : $locale; 
     100} 
     101 
     102/** 
    78103 * Retrieve the translation of $text. 
    79104 * 
    80105 * If there is no translation, or the text domain isn't loaded, the original text is returned. 
     
    549574 */ 
    550575function load_default_textdomain( $locale = null ) { 
    551576        if ( null === $locale ) { 
    552                 $locale = get_locale(); 
     577                $locale = get_user_locale(); 
    553578        } 
    554579 
    555580        // Unload previously loaded strings so we can switch translations. 
  • src/wp-includes/user.php

     
    20252025 
    20262026        $meta['show_admin_bar_front'] = empty( $userdata['show_admin_bar_front'] ) ? 'true' : $userdata['show_admin_bar_front']; 
    20272027 
     2028        $meta['locale'] = isset( $userdata['locale'] ) ? $userdata['locale']: ''; 
     2029 
    20282030        $user_nicename_check = $wpdb->get_var( $wpdb->prepare("SELECT ID FROM $wpdb->users WHERE user_nicename = %s AND user_login != %s LIMIT 1" , $user_nicename, $user_login)); 
    20292031 
    20302032        if ( $user_nicename_check ) { 
     
    22052207 * @return array 
    22062208 */ 
    22072209function _get_additional_user_keys( $user ) { 
    2208         $keys = array( 'first_name', 'last_name', 'nickname', 'description', 'rich_editing', 'comment_shortcuts', 'admin_color', 'use_ssl', 'show_admin_bar_front' ); 
     2210        $keys = array( 'first_name', 'last_name', 'nickname', 'description', 'rich_editing', 'comment_shortcuts', 'admin_color', 'use_ssl', 'show_admin_bar_front', 'locale' ); 
    22092211        return array_merge( $keys, array_keys( wp_get_user_contact_methods( $user ) ) ); 
    22102212} 
    22112213 
  • src/wp-settings.php

     
    305305// Load the default text localization domain. 
    306306load_default_textdomain(); 
    307307 
    308 $locale = get_locale(); 
     308$locale = get_user_locale(); 
    309309$locale_file = WP_LANG_DIR . "/$locale.php"; 
    310310if ( ( 0 === validate_file( $locale ) ) && is_readable( $locale_file ) ) 
    311311        require( $locale_file );