Make WordPress Core

Ticket #43700: 43700.4.diff

File 43700.4.diff, 6.1 KB (added by sabernhardt, 3 years ago)

removing language switcher from interim login, small CSS changes

  • src/wp-admin/css/login.css

     
    281281
    282282#login {
    283283        width: 320px;
    284         padding: 8% 0 0;
     284        padding: 5% 0 0;
    285285        margin: auto;
    286286}
    287287
     
    409409        display: none;
    410410}
    411411
     412#language-switcher {
     413        padding: 0;
     414        overflow: visible;
     415        background: none;
     416        border: none;
     417        box-shadow: none;
     418}
     419
     420#language-switcher select {
     421        height: 30px;
     422        margin-right: 0.5em;
     423}
     424
     425.language-switcher {
     426        margin: 0 auto;
     427        padding: 0 0 24px;
     428        text-align: center;
     429}
     430
     431.language-switcher label {
     432        margin-right: 0.5em;
     433}
     434
     435.login .language-switcher .button-primary {
     436        float: none;
     437        margin-bottom: 0;
     438}
     439
    412440@media screen and (max-height: 550px) {
    413441        #login {
    414442                padding: 20px 0;
    415443        }
     444
     445        #language-switcher {
     446                margin-top: 0;
     447        }
    416448}
    417449
    418450
     
    428460                margin: -0.1875rem 0 0 -0.25rem;
    429461        }
    430462}
     463
     464@media screen and (max-width: 400px) {
     465        .login .language-switcher .button-primary {
     466                display: block;
     467                margin: 5px auto 0;
     468        }
     469}
  • src/wp-includes/l10n.php

     
    144144                $determined_locale = get_user_locale();
    145145        }
    146146
    147         if ( ! empty( $_GET['wp_lang'] ) && ! empty( $GLOBALS['pagenow'] ) && 'wp-login.php' === $GLOBALS['pagenow'] ) {
    148                 $determined_locale = sanitize_text_field( $_GET['wp_lang'] );
     147        $wp_lang = '';
     148
     149        if ( ! empty( $_GET['wp_lang'] ) ) {
     150                $wp_lang = $_GET['wp_lang'];
     151        } elseif ( ! empty( $_COOKIE['wp_lang'] ) ) {
     152                $wp_lang = $_COOKIE['wp_lang'];
    149153        }
    150154
     155        if ( ! empty( $wp_lang ) && ! empty( $GLOBALS['pagenow'] ) && 'wp-login.php' === $GLOBALS['pagenow'] ) {
     156                $determined_locale = sanitize_text_field( $wp_lang );
     157        }
     158
    151159        /**
    152160         * Filters the locale for the current request.
    153161         *
     
    14801488 * @since 4.3.0 Introduced the `echo` argument.
    14811489 * @since 4.7.0 Introduced the `show_option_site_default` argument.
    14821490 * @since 5.1.0 Introduced the `show_option_en_us` argument.
     1491 * @since 5.9.0 Introduced the `explicit_option_en_us` argument.
    14831492 *
    14841493 * @see get_available_languages()
    14851494 * @see wp_get_available_translations()
     
    14991508 *     @type bool     $show_available_translations  Whether to show available translations. Default true.
    15001509 *     @type bool     $show_option_site_default     Whether to show an option to fall back to the site's locale. Default false.
    15011510 *     @type bool     $show_option_en_us            Whether to show an option for English (United States). Default true.
     1511 *     @type bool     $explicit_option_en_us        Whether the English (United States) option uses an explict value of en_US
     1512 *                                                  instead of an empty value. Default false.
    15021513 * }
    15031514 * @return string HTML dropdown list of languages.
    15041515 */
     
    15161527                        'show_available_translations' => true,
    15171528                        'show_option_site_default'    => false,
    15181529                        'show_option_en_us'           => true,
     1530                        'explicit_option_en_us'       => false,
    15191531                )
    15201532        );
    15211533
     
    15251537        }
    15261538
    15271539        // English (United States) uses an empty string for the value attribute.
    1528         if ( 'en_US' === $parsed_args['selected'] ) {
     1540        if ( 'en_US' === $parsed_args['selected'] && ! $parsed_args['explicit_option_en_us'] ) {
    15291541                $parsed_args['selected'] = '';
    15301542        }
    15311543
     
    15801592        }
    15811593
    15821594        if ( $parsed_args['show_option_en_us'] ) {
     1595                $value = ( $parsed_args['explicit_option_en_us'] ) ? 'en_US' : '';
    15831596                $structure[] = sprintf(
    1584                         '<option value="" lang="en" data-installed="1"%s>English (United States)</option>',
     1597                        '<option value="%s" lang="en" data-installed="1"%s>English (United States)</option>',
     1598                        esc_attr( $value ),
    15851599                        selected( '', $parsed_args['selected'], false )
    15861600                );
    15871601        }
  • src/wp-login.php

     
    312312        </div><?php // End of <div id="login">. ?>
    313313
    314314        <?php
     315        $languages = get_available_languages();
    315316
     317        if ( ! empty( $languages ) && ! $interim_login ) { ?>
     318
     319                <div class="language-switcher">
     320                        <form id="language-switcher" action="" method="get">
     321
     322                                <label for="language-switcher-locales">
     323                                        <span class="dashicons dashicons-translation" aria-hidden="true"></span>
     324                                        <span class="screen-reader-text"><?php _e( 'Language' ); ?></span>
     325                                </label>
     326
     327                                <?php
     328                                        $args = array(
     329                                                'id'                          => 'language-switcher-locales',
     330                                                'name'                        => 'wp_lang',
     331                                                'selected'                    => determine_locale(),
     332                                                'show_available_translations' => false,
     333                                                'explicit_option_en_us'       => true,
     334                                                'languages'                   => $languages,
     335                                        );
     336
     337                                        /**
     338                                         * Filters default arguments for the Languages dropdown on the login screen.
     339                                         *
     340                                         * @since 5.9.0
     341                                         *
     342                                         * @param Array $args Arguments for the Languages dropdown on the login screen.
     343                                         */
     344                                        wp_dropdown_languages( apply_filters( 'wp_login_language_switcher_args', $args ) );
     345                                ?>
     346
     347                                <?php if ( $interim_login ) { ?>
     348                                        <input type="hidden" name="interim-login" value="1" />
     349                                <?php } ?>
     350
     351                                <?php if ( isset( $_GET['redirect_to'] ) && '' !== $_GET['redirect_to'] ) { ?>
     352                                        <input type="hidden" name="redirect_to" value="<?php echo esc_url_raw( $_GET['redirect_to'] ) ?>" />
     353                                <?php } ?>
     354
     355                                <?php if ( isset( $_GET['action'] ) && '' !== $_GET['action'] ) { ?>
     356                                        <input type="hidden" name="action" value="<?php echo sanitize_text_field( $_GET['action'] ) ?>" />
     357                                <?php } ?>
     358
     359                                        <input type="submit" class="button button-primary" value="<?php _e( 'Change' ); ?>">
     360
     361                                </form>
     362                        </div>
     363
     364<?php } ?>
     365
     366        <?php
     367
    316368        if ( ! empty( $input_id ) ) {
    317369                ?>
    318370                <script type="text/javascript">
     
    419471        setcookie( TEST_COOKIE, 'WP Cookie check', 0, SITECOOKIEPATH, COOKIE_DOMAIN, $secure );
    420472}
    421473
     474if ( isset( $_GET['wp_lang'] ) ) {
     475        setcookie( 'wp_lang', $_GET['wp_lang'], 0, COOKIEPATH, COOKIE_DOMAIN, $secure );
     476}
     477
    422478/**
    423479 * Fires when the login form is initialized.
    424480 *