WordPress.org

Make WordPress Core

Ticket #43700: 43700.1.diff

File 43700.1.diff, 3.1 KB (added by Nikschavan, 20 months ago)
  • src/wp-admin/css/login.css

    diff --git src/wp-admin/css/login.css src/wp-admin/css/login.css
    index 5da174cadc..53bf1109c6 100644
    p { 
    163163}
    164164
    165165.login #nav,
    166 .login #backtoblog {
     166.login #backtoblog,
     167.language-switcher {
    167168        font-size: 13px;
    168169        padding: 0 24px 0;
    169170}
    body.interim-login { 
    248249        margin: 0;
    249250}
    250251
     252#language-switcher {
     253    padding: 0;
     254    background: none;
     255    box-shadow: none;
     256}
     257
     258#language-switcher select {
     259    height: 30px;
     260}
     261
     262.screen-reader-text {
     263    border: 0;
     264    clip: rect(1px, 1px, 1px, 1px);
     265    -webkit-clip-path: inset(50%);
     266    clip-path: inset(50%);
     267    height: 1px;
     268    margin: -1px;
     269    overflow: hidden;
     270    padding: 0;
     271    position: absolute;
     272    width: 1px;
     273    word-wrap: normal !important;
     274}
     275
     276.language-switcher {
     277    width: 320px;
     278    margin: 0 auto 24px;
     279    box-sizing: border-box;
     280}
     281
     282.language-switcher label {
     283    margin-right: .5em;
     284}
     285
     286.language-switcher .dashicons {
     287    line-height: 30px;
     288}
     289
    251290@-ms-viewport {
    252291        width: device-width;
    253292}
  • src/wp-login.php

    diff --git src/wp-login.php src/wp-login.php
    index e7467cb5b8..61a67ab557 100644
    function login_footer( $input_id = '' ) { 
    265265
    266266        </div>
    267267
     268        <div class="language-switcher">
     269                <form id="language-switcher" action="" method="GET">
     270
     271                <label for="language-switcher-locales">
     272                        <span aria-hidden="true" class="dashicons dashicons-translation"></span>
     273                        <span class="screen-reader-text">Select the language:</span>
     274                </label>
     275
     276                <?php
     277                        $args = array(
     278                                'id'                          => 'language-switcher-locales',
     279                                'name'                        => 'wp_lang',
     280                                'selected'                    => ! empty( $_GET['wp_lang'] ) ? sanitize_text_field( $_GET['wp_lang'] ) : get_locale(),
     281                                'show_available_translations' => false,
     282                                'languages'                   => get_available_languages(),
     283                        );
     284
     285                        /**
     286                         * Filters default arguments for languages list on login screen.
     287                         *
     288                         * @since x.x.x
     289                         *
     290                         * @param Array  $args      Default arguments for dropdown languages on login page.
     291                         */
     292                        wp_dropdown_languages( apply_filters( 'wp_login_language_switcher_args', $args ) );
     293                ?>
     294
     295                <?php if ( $interim_login ) { ?>
     296                        <input type="hidden" name="interim-login" value="1" />
     297                <?php } ?>
     298
     299                <?php if ( isset( $_GET['redirect_to'] ) && '' !== $_GET['redirect_to'] ) { ?>
     300                        <input type="hidden" name="redirect_to" value="<?php echo sanitize_url( $_GET['redirect_to'] ) ?>" />
     301                <?php } ?>
     302
     303                <?php if ( isset( $_GET['action'] ) && '' !== $_GET['action'] ) { ?>
     304                        <input type="hidden" name="action" value="<?php echo sanitize_text_field( $_GET['action'] ) ?>" />
     305                <?php } ?>
     306
     307                </form>
     308        </div>
     309
     310        <script>
     311        var switcherForm  = document.getElementById( 'language-switcher' );
     312        var localesSelect = document.getElementById( 'language-switcher-locales' );
     313        localesSelect.addEventListener( 'change', function() {
     314                switcherForm.submit()
     315        } );
     316        </script>
     317
    268318        <?php if ( ! empty( $input_id ) ) : ?>
    269319        <script type="text/javascript">
    270320        try{document.getElementById('<?php echo $input_id; ?>').focus();}catch(e){}