Plugin Directory

Changeset 1712354


Ignore:
Timestamp:
08/11/2017 10:20:07 PM (9 years ago)
Author:
leonofre
Message:

Adding 0.4.1 release files

Location:
monk/trunk
Files:
14 edited

Legend:

Unmodified
Added
Removed
  • monk/trunk/CHANGELOG.md

    r1708712 r1712354  
    11## Changelog
     2
     3- **[0.4.1]**
     4    + Fixed bug with the site front end translation when permalinks are not active
     5    + Fixed Travis CI warnings
     6    + Fixed compatibility bug with `get_current_screen` function calls
     7    + Fixed broken archive links in the Language Switcher widget
     8    + Fixed date archive links with duplicated language slug in the URLs
     9    + Fixed the links coming with wrong taxonomy names in term edit pages
    210
    311- **[0.4.0]**
  • monk/trunk/README.txt

    r1709292 r1712354  
    44Requires at least: 4.6
    55Tested up to: 4.8.1
    6 Stable tag: 0.4.0
     6Stable tag: 0.4.1
    77License: GPLv2 or later
    88License URI: http://www.gnu.org/licenses/gpl-2.0.html
     
    7171== Changelog ==
    7272
     73= [0.4.1] =
     74* Fixed bug with the site front end translation when permalinks are not active
     75* Fixed Travis CI warnings
     76* Fixed compatibility bug with `get_current_screen` function calls
     77* Fixed broken archive links in the Language Switcher widget
     78* Fixed date archive links with duplicated language slug in the URLs
     79* Fixed the links coming with wrong taxonomy names in term edit pages
     80
    7381= [0.4.0] =
    7482* Added automatic language packages download.
     
    7886* Fixed the "next and previous" post links.
    7987
    80 = [0.3.1] =
    81 * Improved overall links structures.
    82 * Improved the Language Switcher widget.
    83 * Improved text and reading consistency.
    84 * Improved the post public filters.
    85 * Fixed date and category archive links.
    86 
    87 = [0.3.0] =
    88 * Added menus translation support.
    89 * Support us using Monk Love message.
    90 
    9188[See changelog for older versions](https://raw.githubusercontent.com/brenoalvs/monk/master/CHANGELOG.md)
    9289
     
    9491
    9592Special thanks to Lipis by [SVG country flags](https://github.com/lipis/flag-icon-css).
    96 
  • monk/trunk/admin/class-monk-admin.php

    r1708712 r1712354  
    7676
    7777    /**
     78     * This function validate the get_current_screen calls.
     79     *
     80     * @since    0.4.1
     81     *
     82     * @return mixed
     83     */
     84    private function get_current_screen() {
     85        if ( function_exists( 'get_current_screen' ) ) {
     86            $screen = get_current_screen();
     87
     88            if ( is_a( $screen, 'WP_Screen' ) && ! empty( $screen ) ) {
     89                return $screen;
     90            }
     91        }
     92
     93        return false;
     94    }
     95
     96    /**
    7897     * Handle redirects to setup page after install.
    7998     *
     
    85104        if ( 'plugins.php' === $pagenow ) {
    86105            $monk_settings_notice = get_option( 'monk_settings_notice', false );
    87             $activate_multi       = isset( $_GET['activate-multi'] ) ? true : false;
     106            $activate_multi       = filter_input( INPUT_GET, 'activate-multi' );
     107            $activate_multi       = isset( $activate_multi ) ? true : false;
    88108
    89109            if ( get_transient( '_monk_redirect' ) && ! $activate_multi && $monk_settings_notice ) {
     
    147167        );
    148168
     169        register_setting( 'monk_settings', 'monk_default_language_url' );
     170        add_settings_field(
     171            'monk_default_language_url',
     172            __( 'Show default language in URL', 'monk' ),
     173            array( $this, 'monk_default_language_url_render' ),
     174            'monk_settings',
     175            'monk_general_settings'
     176        );
     177
    149178        register_setting( 'monk_settings', 'monk_active_languages' );
    150179        add_settings_field(
     
    163192            'monk_settings',
    164193            'monk_tools'
    165         );
    166 
    167         register_setting( 'monk_settings', 'monk_default_language_url' );
    168         add_settings_field(
    169             'monk_default_language_url',
    170             __( 'Show default language in URL', 'monk' ),
    171             array( $this, 'monk_default_language_url_render' ),
    172             'monk_settings',
    173             'monk_general_settings'
    174194        );
    175195    }
     
    253273    public function monk_default_language_render() {
    254274        $default_language = get_option( 'monk_default_language', false );
    255         require_once plugin_dir_path( __FILE__ ) . '/partials/admin-monk-default-language-render.php';
     275        $languages        = get_available_languages();
     276        $args             = array(
     277            'id'        => 'monk-default-language',
     278            'name'      => 'monk_default_language',
     279            'selected'  => $default_language,
     280            'languages' => $languages,
     281        );
     282
     283        wp_dropdown_languages( $args );
    256284    }
    257285
     
    314342
    315343        if ( empty( $monk_id ) ) {
    316             if ( isset( $_GET['monk_id'] ) ) {
    317                 $monk_id = sanitize_text_field( wp_unslash( $_GET['monk_id'] ) );
     344            $monk_id = filter_input( INPUT_GET, 'monk_id' );
     345            if ( isset( $monk_id ) ) {
     346                $monk_id = sanitize_text_field( wp_unslash( $monk_id ) );
    318347            } else {
    319348                $monk_id = $post->ID;
     
    321350        }
    322351
    323         if ( isset( $_GET['lang'] ) ) {
    324             $lang    = sanitize_text_field( wp_unslash( $_GET['lang'] ) );
     352        $lang = filter_input( INPUT_GET, 'lang' );
     353        if ( isset( $lang ) ) {
     354            $lang    = sanitize_text_field( wp_unslash( $lang ) );
    325355        } else {
    326356            $lang    = $site_default_language;
     
    357387     */
    358388    public function monk_save_post_meta_box( $post_id ) {
    359         if ( ! isset( $_REQUEST['monk_post_meta_box_nonce'] ) || ! wp_verify_nonce( sanitize_text_field( wp_unslash( $_REQUEST['monk_post_meta_box_nonce'] ) ), basename( __FILE__ ) ) ) {
     389        $monk_post_meta_box_nonce = filter_input( INPUT_POST, 'monk_post_meta_box_nonce' );
     390        if ( ! isset( $monk_post_meta_box_nonce ) || ! wp_verify_nonce( sanitize_text_field( wp_unslash( $monk_post_meta_box_nonce ) ), basename( __FILE__ ) ) ) {
    360391            return;
    361392        }
     
    377408        $active_languages  = get_option( 'monk_active_languages' );
    378409        $current_language  = get_post_meta( $post_id, '_monk_post_language', true );
     410        $post_language     = filter_input( INPUT_POST, 'monk_post_language' );
    379411
    380412        if ( ! $current_language ) {
    381             $current_language = sanitize_text_field( wp_unslash( $_REQUEST['monk_post_language'] ) );
     413            $current_language = sanitize_text_field( wp_unslash( $post_language ) );
    382414        }
    383415
     
    387419        );
    388420
    389         if ( isset( $_REQUEST['monk_post_language'] ) && ! empty( $_REQUEST['monk_post_language'] ) ) {
    390             $language = sanitize_text_field( wp_unslash( $_REQUEST['monk_post_language'] ) );
     421        if ( isset( $post_language ) && ! empty( $post_language ) ) {
     422            $language = sanitize_text_field( wp_unslash( $post_language ) );
    391423
    392424            if ( in_array( $language , $active_languages ) ) {
     
    395427        }
    396428
    397         if ( isset( $_REQUEST['monk_id'] ) ) {
    398             $monk_id = sanitize_text_field( wp_unslash( $_REQUEST['monk_id'] ) );
     429        $monk_id = filter_input( INPUT_POST, 'monk_id' );
     430
     431        if ( isset( $monk_id ) ) {
     432            $monk_id = sanitize_text_field( wp_unslash( $monk_id ) );
    399433        } else {
    400434            $monk_id = get_post_meta( $post_id, '_monk_post_translations_id', true );
     
    471505        $active_languages = get_option( 'monk_active_languages', false );
    472506        $filter           = filter_input( INPUT_GET , 'monk_language_filter' );
     507        $language         = $filter;
    473508        $post_type        = filter_input( INPUT_GET , 'post_type' );
    474 
    475         if ( ! is_customize_preview() && function_exists( 'get_current_screen' ) ) {
    476             if ( 'nav-menus' === get_current_screen()->base ) {
     509        $screen           = $this->get_current_screen();
     510
     511        if ( ! is_customize_preview() && $screen ) {
     512            if ( 'nav-menus' === $screen->base ) {
    477513                $menu_id  = filter_input( INPUT_GET , 'menu' ) ? filter_input( INPUT_GET , 'menu' ) : get_user_option( 'nav_menu_recently_edited' );
    478514                $language = get_term_meta( $menu_id, '_monk_menu_language', true );
    479515                $language = empty( $language ) ? $default_language : $language;
    480             } else {
    481                 $language = $filter;
    482516            }
    483517        }
     
    530564            return $args;
    531565        }
     566
     567        $screen = $this->get_current_screen();
    532568
    533569        if ( is_customize_preview() ) {
     
    561597        }
    562598
    563         if ( ! is_customize_preview() ) {
    564             $screen = get_current_screen();
     599        if ( ! is_customize_preview() && $screen ) {
    565600
    566601            if ( ( 'edit' === $screen->parent_base && 'post' === $screen->base ) || ( 'nav-menus' === $screen->base ) ) {
     
    814849            );
    815850            $is_menu           = 'nav_menu' === $taxonomy ? 'menu' : 'term';
    816 
    817             if ( isset( $_REQUEST['monk_id'] ) ) {
    818                 $monk_id           = sanitize_text_field( wp_unslash( $_REQUEST['monk_id'] ) );
     851            $monk_id           = filter_input( INPUT_POST, 'monk_id' );
     852
     853            if ( isset( $monk_id ) ) {
     854                $monk_id           = sanitize_text_field( wp_unslash( $monk_id ) );
    819855                $term_translations = get_option( 'monk_' . $is_menu . '_translations_' . $monk_id, array() );
    820856
     
    940976            $available_languages       = false;
    941977            $post_type                 = 'none';
     978            $current_taxonomy          = filter_input( INPUT_GET, 'taxonomy' );
    942979
    943980            foreach ( $languages as $language ) {
     
    948985
    949986            foreach ( $taxonomies as $taxonomy ) {
    950                 if ( isset( $_REQUEST['taxonomy'] ) ) {
    951                     if ( $_REQUEST['taxonomy'] === $taxonomy ) {
     987                if ( isset( $current_taxonomy ) ) {
     988                    if ( $current_taxonomy === $taxonomy ) {
    952989                        $base_url = admin_url( 'term.php?taxonomy=' . $taxonomy );
    953990                        $new_url  = add_query_arg( array(
     
    9771014        $monk_term_translations    = get_option( 'monk_term_translations_' . $monk_term_translations_id, array() );
    9781015        $available_languages       = false;
    979 
    980         foreach ( $taxonomies as $taxonomy ) {
    981             if ( isset( $_GET['taxonomy'] ) ) {
    982                 $tax = sanitize_text_field( wp_unslash( $_GET['taxonomy'] ) );
    983                 if ( $tax === $taxonomy ) {
    984                     $base_url = admin_url( 'edit-tags.php?taxonomy=' . $taxonomy );
    985                     $base_url_translation = admin_url( 'term.php?taxonomy=' . $taxonomy );
    986                 }
     1016        $taxonomy                  = filter_input( INPUT_GET, 'taxonomy' );
     1017
     1018        if ( isset( $taxonomy ) ) {
     1019            $taxonomy = sanitize_text_field( wp_unslash( $taxonomy ) );
     1020            if ( in_array( $taxonomy, $taxonomies ) ) {
     1021                $base_url             = admin_url( 'edit-tags.php?taxonomy=' . $taxonomy );
     1022                $base_url_translation = admin_url( 'term.php?taxonomy=' . $taxonomy );
    9871023            }
    9881024        }
     
    10241060     */
    10251061    public function monk_add_attachment_translation() {
    1026         $monk_id          = $_REQUEST['monk_id'];
    1027         $current_post_id  = $_REQUEST['current_post_id'];
    1028         $lang             = $_REQUEST['lang'];
     1062        $monk_id          = filter_input( INPUT_POST, 'monk_id' );
     1063        $current_post_id  = filter_input( INPUT_POST, 'current_post_id' );
     1064        $lang             = filter_input( INPUT_POST, 'lang' );
    10291065        $attach_path      = get_attached_file( $current_post_id );
    10301066        $attach_url       = wp_get_attachment_url( $monk_id );
     
    10831119        $default_language    = get_option( 'monk_default_language', false );
    10841120        $post_translations   = get_option( 'monk_post_translations_' . $monk_id, false );
    1085         $is_modal            = ! isset( $_REQUEST['post'] ) ? true : false;
     1121        $post                = filter_input( INPUT_GET, 'post' );
     1122        $is_modal            = ! isset( $post ) ? true : false;
    10861123        $post_type           = get_post_type( $post_id );
    10871124        $available_languages = false;
     
    11611198        $language          = get_post_meta( $post_id, '_monk_post_language', true );
    11621199        $new_post_language = monk_get_url_args( 'lang' );
    1163         $post_language     = isset( $_REQUEST['post_id'] ) ? get_post_meta( $_REQUEST['post_id'], '_monk_post_language', true ) : '';
     1200        $requested_post_id = filter_input( INPUT_POST, 'post_id' );
     1201        $post_language     = isset( $requested_post_id ) ? get_post_meta( $requested_post_id, '_monk_post_language', true ) : '';
    11641202        $default_language  = get_option( 'monk_default_language', false );
    1165         $is_modal          = ! isset( $_REQUEST['post'] ) ? true : false;
     1203        $requested_post    = filter_input( INPUT_POST, 'post' );
     1204        $is_modal          = ! isset( $requested_post ) ? true : false;
    11661205        $post_type         = $post->post_type;
    11671206        $is_translatable   = true;
     
    12771316     */
    12781317    public function medias_modal_filter( $query ) {
    1279         if ( is_admin() && ( isset( $_REQUEST['post_id'] ) && '0' !== $_REQUEST['post_id'] ) && isset( $_REQUEST['action'] ) ) {
     1318        $post_id  = filter_input( INPUT_GET, 'post_id' );
     1319        $action   = filter_input( INPUT_GET, 'action' );
     1320
     1321        if ( is_admin() && ( isset( $post_id ) && '0' !== $post_id ) && isset( $action ) ) {
    12801322
    12811323            $default_language  = get_option( 'monk_default_language' );
    1282             $post_id  = $_REQUEST['post_id'];
    12831324            $language = get_post_meta( $post_id, '_monk_post_language', true );
    12841325
     
    12931334            }
    12941335
    1295             if ( 'query-attachments' === $_REQUEST['action'] ) {
     1336            if ( 'query-attachments' === $action ) {
    12961337                if ( $language !== $default_language ) {
    12971338                    $query->set( 'meta_key', '_monk_post_language' );
     
    13271368     */
    13281369    public function monk_add_menu_translation_fields() {
    1329         if ( 'nav-menus' !== get_current_screen() -> base || 'locations' === filter_input( INPUT_GET, 'action' ) ) {
    1330             return;
     1370        $screen = $this->get_current_screen();
     1371        if ( $screen ) {
     1372            if ( 'nav-menus' !== $screen->base || 'locations' === filter_input( INPUT_GET, 'action' ) ) {
     1373                return;
     1374            }
    13311375        }
    13321376
     
    13731417     */
    13741418    public function monk_change_nav_menu_fields() {
    1375         $screen   = get_current_screen()->base;
    1376 
    1377         if ( 'nav-menus' !== $screen ) {
     1419        $screen = $this->get_current_screen();
     1420        if ( $screen && 'nav-menus' !== $screen->base ) {
    13781421            return;
    13791422        }
     
    14171460    public function monk_save_language_packages() {
    14181461        if ( check_ajax_referer( '_monk_nonce', '_monk_nonce', false ) ) {
    1419             global $monk_languages;
    1420 
    14211462            $active_languages = $_POST['monk_active_languages'];
    14221463
     
    14481489     */
    14491490    public function monk_set_language_to_elements() {
    1450         if ( check_ajax_referer( '_monk_nonce', false, false ) && filter_input( INPUT_POST, 'monk_set_language_to_elements' ) ) {
     1491        if ( check_ajax_referer( '_monk_nonce', false, false ) ) {
     1492            $monk_set_language_to_elements = filter_input( INPUT_POST, 'monk_set_language_to_elements' );
    14511493
    14521494            global $wpdb;
  • monk/trunk/admin/css/monk-admin.css

    r1708712 r1712354  
    172172    pointer-events: none;
    173173}
     174
     175.monk-description {
     176    color: #adadad;
     177    display: block;
     178    font-size: 13px;
     179    font-style: italic;
     180    padding-left: 24px;
     181}
  • monk/trunk/admin/partials/admin-monk-active-languages-render.php

    r1708712 r1712354  
    4343    <?php checked( $is_checked ); ?>
    4444    />
     45    <?php echo esc_html( $lang_names['english_name'] ); ?>
     46    <span class="monk-description">
    4547    <?php echo esc_html( $lang_names['native_name'] ); ?>
     48    </span>
    4649</label>
    4750<?php endforeach; ?>
  • monk/trunk/includes/class-monk-activator.php

    r1708712 r1712354  
    3131        $monk_languages = monk_get_available_languages();
    3232
    33         $locale = get_locale();
    34         if ( array_key_exists( $locale, $monk_languages ) ) {
    35             $language = $locale;
    36         } else {
    37             $language = 'en_US';
    38         }
     33        $language = get_locale() ? get_locale() : 'en_US';
    3934
    4035        update_option( 'monk_default_language', $language );
  • monk/trunk/includes/class-monk-i18n.php

    r1708712 r1712354  
    6464
    6565        $matches = preg_split( '/(\/)/', $path, 0, PREG_SPLIT_NO_EMPTY );
     66        $slug    = filter_input( INPUT_GET, 'lang' );
    6667
    6768        if ( ! empty( $matches ) ) {
     
    7374                $locale = get_option( 'monk_default_language', false );
    7475            }
     76        } elseif ( $slug ) {
     77            $locale = monk_get_locale_by_slug( $slug );
    7578        } else {
    7679            $locale = get_option( 'monk_default_language', false );
  • monk/trunk/includes/class-monk-links.php

    r1708712 r1712354  
    500500        $language             = ( get_query_var( 'lang' ) ) ? get_query_var( 'lang' ) : $this->site_language;
    501501
    502         if ( $this->monk_using_permalinks() ) {
    503             $link = $default_language_url || $language !== $default_slug ? str_replace( $this->site_home . '/' . $this->site_root, $this->site_home . '/' . $this->site_root . $language . '/', $link ) : $link;
    504         } else {
     502        if ( ! $this->monk_using_permalinks() ) {
    505503            $link = add_query_arg( 'lang', $language, home_url() );
    506504            $link = add_query_arg( 'author', $author_id, $link );
     
    629627        }
    630628
     629        if ( $this->monk_using_permalinks() ) {
     630            $redirect_url = remove_query_arg( 'lang', $redirect_url );
     631        }
     632
    631633        // If the incoming url has a wrong language, redirect.
    632634        if ( $redirect_url && $requested_url !== $redirect_url ) {
  • monk/trunk/includes/class-monk.php

    r1708712 r1712354  
    6868
    6969        $this->plugin_name = 'Monk';
    70         $this->version = '0.4.0';
     70        $this->version = '0.4.1';
    7171
    7272        $this->load_dependencies();
  • monk/trunk/includes/monk-functions.php

    r1708712 r1712354  
    2222    $languages_codes = array_keys( $monk_languages );
    2323
    24     return in_array( $language_code , $language_codes );
     24    return in_array( $language_code , $language_codes, true );
    2525}
    2626
     
    156156    } // End if().
    157157
     158    uasort( $monk_languages, function( $a, $b ) {
     159            return strcmp( $a['english_name'], $b['english_name'] );
     160    });
     161
    158162    return $monk_languages;
    159163}
  • monk/trunk/languages/monk.pot

    r1708712 r1712354  
    22# Copyright (C) 2016
    33# This file is distributed under the GNU General Public License v2 or later.
    4 #, fuzzy
    54msgid ""
    65msgstr ""
    7 "Project-Id-Version: Monk "
    8 "0.1.0\n"
    9 "POT-Creation-Date: "
    10 "2017-08-04 19:13-0300\n"
     6"Project-Id-Version: Monk 0.1.0\n"
     7"Report-Msgid-Bugs-To: Monk\n"
     8"POT-Creation-Date: 2017-08-11 17:29-0300\n"
    119"PO-Revision-Date: \n"
    12 "Last-Translator: Breno "
    13 "Alves\n"
     10"Last-Translator: Breno Alves\n"
    1411"Language-Team: Monk\n"
    15 "Report-Msgid-Bugs-To: "
    16 "Monk\n"
     12"Language: en_US\n"
    1713"MIME-Version: 1.0\n"
    18 "Content-Type: text/"
    19 "plain; charset=UTF-8\n"
    20 "Content-Transfer-"
    21 "Encoding: 8bit\n"
    22 "Plural-Forms: "
    23 "nplurals=2; plural=n != "
    24 "1;\n"
    25 "X-Textdomain-Support: "
    26 "yesX-Generator: Poedit "
    27 "1.6.4\n"
    28 "X-Poedit-SourceCharset: "
    29 "UTF-8\n"
    30 "X-Poedit-KeywordsList: "
    31 "__;_e;esc_html_e;"
    32 "esc_html_x:1,2c;"
    33 "esc_html__;esc_attr_e;"
    34 "esc_attr_x:1,2c;"
    35 "esc_attr__;_ex:1,2c;"
    36 "_nx:4c,1,2;"
    37 "_nx_noop:4c,1,2;_x:1,2c;"
    38 "_n:1,2;_n_noop:1,2;"
    39 "__ngettext:1,2;"
    40 "__ngettext_noop:1,2;_c,"
    41 "_nc:4c,1,2\n"
     14"Content-Type: text/plain; charset=UTF-8\n"
     15"Content-Transfer-Encoding: 8bit\n"
     16"Plural-Forms: nplurals=2; plural=n != 1;\n"
     17"X-Textdomain-Support: yesX-Generator: Poedit 1.6.4\n"
     18"X-Poedit-SourceCharset: UTF-8\n"
     19"X-Poedit-KeywordsList: __;_e;esc_html_e;esc_html_x:1,2c;esc_html__;"
     20"esc_attr_e;esc_attr_x:1,2c;esc_attr__;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;"
     21"_x:1,2c;_n:1,2;_n_noop:1,2;__ngettext:1,2;__ngettext_noop:1,2;_c,_nc:4c,1,2\n"
    4222"X-Poedit-Basepath: ..\n"
    43 "Language: en_US\n"
    44 "X-Generator: Poedit "
    45 "2.0.3\n"
    46 "X-Poedit-"
    47 "SearchPath-0: .\n"
    48 
    49 #: admin/class-monk-admin.php:105
     23"X-Generator: Poedit 1.5.4\n"
     24"X-Poedit-SearchPath-0: .\n"
     25
     26#: includes/monk-available-languages.php:15
     27msgid "Danish"
     28msgstr ""
     29
     30#: includes/monk-available-languages.php:20
     31msgid "English"
     32msgstr ""
     33
     34#: includes/monk-available-languages.php:25
     35msgid "French"
     36msgstr ""
     37
     38#: includes/monk-available-languages.php:30
     39msgid "German"
     40msgstr ""
     41
     42#: includes/monk-available-languages.php:35
     43msgid "Italian"
     44msgstr ""
     45
     46#: includes/monk-available-languages.php:40
     47msgid "Japanese"
     48msgstr ""
     49
     50#: includes/monk-available-languages.php:45
     51msgid "Portuguese (Brazil)"
     52msgstr ""
     53
     54#: includes/monk-available-languages.php:50
     55msgid "Russian"
     56msgstr ""
     57
     58#: includes/monk-available-languages.php:55
     59msgid "Spanish"
     60msgstr ""
     61
     62#: includes/monk-functions.php:100
     63msgid "English (United States)"
     64msgstr ""
     65
     66#: widgets/class-monk-language-switcher.php:32
     67msgid "Switch between site translations."
     68msgstr ""
     69
     70#: widgets/class-monk-language-switcher.php:34 admin/class-monk-admin.php:654
     71msgid "Language Switcher"
     72msgstr ""
     73
     74#: widgets/class-monk-language-switcher.php:49
     75#: widgets/partials/admin-monk-language-switcher.php:16
     76msgid "Languages"
     77msgstr ""
     78
     79#: widgets/partials/admin-monk-language-switcher.php:21
     80msgid "Title: "
     81msgstr ""
     82
     83#: widgets/partials/admin-monk-language-switcher.php:25
     84msgid "Hide Flags"
     85msgstr ""
     86
     87#: widgets/partials/admin-monk-language-switcher.php:29
     88msgid "Monk Love"
     89msgstr ""
     90
     91#: widgets/partials/public-monk-language-switcher.php:43
     92msgid "No other translations"
     93msgstr ""
     94
     95#: widgets/partials/public-monk-language-switcher.php:66
     96#, php-format
     97msgid "Made with %1$s by %2$s"
     98msgstr ""
     99
     100#: admin/class-monk-admin.php:125
    50101msgid "Monk Settings"
    51102msgstr ""
    52103
    53 #: admin/class-monk-admin.php:127
     104#: admin/class-monk-admin.php:147
    54105msgid "General Settings"
    55106msgstr ""
    56107
    57 #: admin/class-monk-admin.php:134
     108#: admin/class-monk-admin.php:154
    58109#: admin/partials/admin-monk-settings-tabs-render.php:18
    59110msgid "Tools"
    60111msgstr ""
    61112
    62 #: admin/class-monk-admin.php:143
    63 msgid ""
    64 "Default site language"
    65 msgstr ""
    66 
    67 #: admin/class-monk-admin.php:152
     113#: admin/class-monk-admin.php:163
     114msgid "Default site language"
     115msgstr ""
     116
     117#: admin/class-monk-admin.php:172
     118msgid "Show default language in URL"
     119msgstr ""
     120
     121#: admin/class-monk-admin.php:181
    68122#: admin/partials/admin-monk-post-meta-box-field-render.php:80
    69123msgid "Add new translation"
    70124msgstr ""
    71125
    72 #: admin/class-monk-admin.php:161
     126#: admin/class-monk-admin.php:190
     127msgid "Set default language to all posts and terms"
     128msgstr ""
     129
     130#: admin/class-monk-admin.php:218
     131msgid "Here you can configure your language preferences."
     132msgstr ""
     133
     134#: admin/class-monk-admin.php:219
    73135msgid ""
    74 "Set default language to "
    75 "all posts and terms"
    76 msgstr ""
    77 
    78 #: admin/class-monk-admin.php:170
    79 msgid ""
    80 "Show default language in "
    81 "URL"
    82 msgstr ""
    83 
    84 #: admin/class-monk-admin.php:198
    85 msgid ""
    86 "Here you can configure "
    87 "your language "
    88 "preferences."
    89 msgstr ""
    90 
    91 #: admin/class-monk-admin.php:199
    92 msgid ""
    93 "Select a default "
    94 "language for your site "
    95 "and check the languages "
    96 "you will translate."
    97 msgstr ""
    98 
    99 #: admin/class-monk-admin.php:290
    100 #: admin/class-monk-admin.php:726
    101 #: admin/class-monk-admin.php:1199
     136"Select a default language for your site and check the languages you will "
     137"translate."
     138msgstr ""
     139
     140#: admin/class-monk-admin.php:318 admin/class-monk-admin.php:761
     141#: admin/class-monk-admin.php:1238
     142#: admin/partials/admin-monk-language-update-term.php:20
    102143#: admin/partials/admin-monk-language-term.php:19
    103144#: admin/partials/admin-monk-language-term.php:39
    104 #: admin/partials/admin-monk-language-update-term.php:20
    105145msgid "Language"
    106146msgstr ""
    107147
    108 #: admin/class-monk-admin.php:619
    109 #: widgets/class-monk-language-switcher.php:34
    110 msgid "Language Switcher"
    111 msgstr ""
    112 
    113 #: admin/class-monk-admin.php:634
     148#: admin/class-monk-admin.php:669
    114149msgid "Background"
    115150msgstr ""
    116151
    117 #: admin/class-monk-admin.php:649
     152#: admin/class-monk-admin.php:684
    118153msgid "Text"
    119154msgstr ""
    120155
    121 #: admin/class-monk-admin.php:664
     156#: admin/class-monk-admin.php:699
    122157msgid "Background Hover"
    123158msgstr ""
    124159
    125 #: admin/class-monk-admin.php:679
     160#: admin/class-monk-admin.php:714
    126161msgid "Text Hover"
    127162msgstr ""
    128163
    129 #: admin/class-monk-admin.php:1106
    130 msgid ""
    131 "No translations available"
    132 msgstr ""
    133 
    134 #: admin/class-monk-admin.php:1205
     164#: admin/class-monk-admin.php:1143
     165msgid "No translations available"
     166msgstr ""
     167
     168#: admin/class-monk-admin.php:1244
    135169msgid "Translate"
     170msgstr ""
     171
     172#: admin/partials/admin-monk-select-menu-to-edit-render.php:35
     173#, php-format
     174msgid "Translations of %s"
     175msgstr ""
     176
     177#: admin/partials/admin-monk-select-menu-to-edit-render.php:55
     178msgid "— Select a Menu —"
     179msgstr ""
     180
     181#: admin/partials/admin-monk-select-menu-to-edit-render.php:113
     182msgid "None"
     183msgstr ""
     184
     185#: admin/partials/monk-language-filter.php:20
     186msgid "All Languages"
     187msgstr ""
     188
     189#: admin/partials/admin-monk-settings-tabs-render.php:17
     190msgid "General"
     191msgstr ""
     192
     193#: admin/partials/admin-monk-term-translation.php:21
     194#: admin/partials/admin-monk-post-meta-box-field-render.php:74
     195msgid "Translations"
     196msgstr ""
     197
     198#: admin/partials/admin-monk-term-translation.php:47
     199msgid "Add a translation +"
     200msgstr ""
     201
     202#: admin/partials/admin-monk-term-translation.php:50
     203msgid "You must set a language before add translations."
    136204msgstr ""
    137205
     
    145213#: admin/partials/admin-monk-language-selector-render.php:54
    146214#: admin/partials/admin-monk-menu-translation-fields-render.php:24
     215msgid "No more languages available."
     216msgstr ""
     217
     218#: admin/partials/admin-monk-notice-render.php:13
     219msgid "Monk: "
     220msgstr ""
     221
     222#: admin/partials/admin-monk-notice-render.php:13
     223msgid "You need to "
     224msgstr ""
     225
     226#: admin/partials/admin-monk-notice-render.php:14
     227msgid "configure your language preferences"
     228msgstr ""
     229
     230#: admin/partials/admin-monk-settings-render.php:49
     231msgid "Select the checkbox."
     232msgstr ""
     233
     234#: admin/partials/admin-monk-settings-render.php:50
     235msgid "Defining language for posts and terms..."
     236msgstr ""
     237
     238#: admin/partials/admin-monk-settings-render.php:52
     239msgid "Downloading packages..."
     240msgstr ""
     241
     242#: admin/partials/admin-monk-settings-render.php:54
     243msgid "Done!"
     244msgstr ""
     245
     246#: admin/partials/admin-monk-settings-render.php:55
     247msgid "Error. Try again."
     248msgstr ""
     249
     250#: admin/partials/admin-monk-tools-description.php:17
    147251msgid ""
    148 "No more languages "
    149 "available."
     252"Here you can set default language to all posts and terms without language."
     253msgstr ""
     254
     255#: admin/partials/admin-monk-tools-description.php:18
     256msgid "Mark the checkbox and click on \"Save Changes\" to confirm."
     257msgstr ""
     258
     259#: admin/partials/monk-language-column.php:29
     260#: admin/partials/admin-monk-post-meta-box-field-render.php:78
     261msgid "Add+"
     262msgstr ""
     263
     264#: admin/partials/monk-language-column.php:34
     265msgid "No language"
    150266msgstr ""
    151267
    152268#: admin/partials/admin-monk-language-term.php:50
    153 msgid ""
    154 "This is a translation of "
     269msgid "This is a translation of "
    155270msgstr ""
    156271
     
    164279
    165280#: admin/partials/admin-monk-menu-translation-fields-render.php:65
    166 msgid ""
    167 "This menu does not have "
    168 "translations. "
     281msgid "This menu does not have translations. "
    169282msgstr ""
    170283
    171284#: admin/partials/admin-monk-menu-translation-fields-render.php:67
    172 msgid ""
    173 "You can add one here. "
    174 msgstr ""
    175 
    176 #: admin/partials/admin-monk-notice-render.php:13
    177 msgid "Monk: "
    178 msgstr ""
    179 
    180 #: admin/partials/admin-monk-notice-render.php:13
    181 msgid "You need to "
    182 msgstr ""
    183 
    184 #: admin/partials/admin-monk-notice-render.php:14
    185 msgid ""
    186 "configure your language "
    187 "preferences"
     285msgid "You can add one here. "
    188286msgstr ""
    189287
     
    192290msgstr ""
    193291
    194 #. translators: This is a message to display the post being translated
    195292#: admin/partials/admin-monk-post-meta-box-field-render.php:57
    196293#, php-format
     
    198295msgstr ""
    199296
    200 #: admin/partials/admin-monk-post-meta-box-field-render.php:74
    201 #: admin/partials/admin-monk-term-translation.php:21
    202 msgid "Translations"
    203 msgstr ""
    204 
    205 #: admin/partials/admin-monk-post-meta-box-field-render.php:78
    206 #: admin/partials/monk-language-column.php:29
    207 msgid "Add+"
    208 msgstr ""
    209 
    210297#: admin/partials/admin-monk-post-meta-box-field-render.php:150
    211298#: admin/partials/admin-monk-post-meta-box-field-render.php:189
     
    218305
    219306#: admin/partials/admin-monk-post-meta-box-field-render.php:167
    220 msgid ""
    221 "Change current language"
     307msgid "Change current language"
    222308msgstr ""
    223309
    224310#: admin/partials/admin-monk-post-meta-box-field-render.php:208
    225 msgid ""
    226 "Not translated, add one"
    227 msgstr ""
    228 
    229 #. translators: This is a label to display the translations group
    230 #: admin/partials/admin-monk-select-menu-to-edit-render.php:35
    231 #, php-format
    232 msgid "Translations of %s"
    233 msgstr ""
    234 
    235 #: admin/partials/admin-monk-select-menu-to-edit-render.php:55
    236 msgid "— Select a Menu —"
    237 msgstr ""
    238 
    239 #: admin/partials/admin-monk-select-menu-to-edit-render.php:113
    240 msgid "None"
    241 msgstr ""
    242 
    243 #: admin/partials/admin-monk-settings-render.php:49
    244 msgid ""
    245 "Select the checkbox."
    246 msgstr ""
    247 
    248 #: admin/partials/admin-monk-settings-render.php:50
    249 msgid ""
    250 "Defining language for "
    251 "posts and terms..."
    252 msgstr ""
    253 
    254 #: admin/partials/admin-monk-settings-render.php:52
    255 msgid ""
    256 "Downloading packages..."
    257 msgstr ""
    258 
    259 #: admin/partials/admin-monk-settings-render.php:54
    260 msgid "Done!"
    261 msgstr ""
    262 
    263 #: admin/partials/admin-monk-settings-render.php:55
    264 msgid "Error. Try again."
    265 msgstr ""
    266 
    267 #: admin/partials/admin-monk-settings-tabs-render.php:17
    268 msgid "General"
    269 msgstr ""
    270 
    271 #: admin/partials/admin-monk-term-translation.php:47
    272 msgid "Add a translation +"
    273 msgstr ""
    274 
    275 #: admin/partials/admin-monk-term-translation.php:50
    276 msgid ""
    277 "You must set a language "
    278 "before add translations."
    279 msgstr ""
    280 
    281 #: admin/partials/admin-monk-tools-description.php:16
    282 msgid ""
    283 "Here you can option to "
    284 "set default language to "
    285 "all posts and terms "
    286 "without language."
    287 msgstr ""
    288 
    289 #: admin/partials/admin-monk-tools-description.php:17
    290 msgid ""
    291 "Check the checkbox to "
    292 "confirm."
     311msgid "Not translated, add one"
    293312msgstr ""
    294313
    295314#: admin/partials/admin-monk-widget-notice.php:24
    296 msgid ""
    297 "Remember to activate the "
     315msgid "Remember to activate the "
    298316msgstr ""
    299317
     
    301319msgid "language switcher."
    302320msgstr ""
    303 
    304 #: admin/partials/monk-language-column.php:34
    305 msgid "No language"
    306 msgstr ""
    307 
    308 #: admin/partials/monk-language-filter.php:20
    309 msgid "All Languages"
    310 msgstr ""
    311 
    312 #: includes/monk-available-languages.php:15
    313 msgid "Danish"
    314 msgstr ""
    315 
    316 #: includes/monk-available-languages.php:20
    317 msgid "English"
    318 msgstr ""
    319 
    320 #: includes/monk-available-languages.php:25
    321 msgid "French"
    322 msgstr ""
    323 
    324 #: includes/monk-available-languages.php:30
    325 msgid "German"
    326 msgstr ""
    327 
    328 #: includes/monk-available-languages.php:35
    329 msgid "Italian"
    330 msgstr ""
    331 
    332 #: includes/monk-available-languages.php:40
    333 msgid "Japanese"
    334 msgstr ""
    335 
    336 #: includes/monk-available-languages.php:45
    337 msgid "Portuguese (Brazil)"
    338 msgstr ""
    339 
    340 #: includes/monk-available-languages.php:50
    341 msgid "Russian"
    342 msgstr ""
    343 
    344 #: includes/monk-available-languages.php:55
    345 msgid "Spanish"
    346 msgstr ""
    347 
    348 #: includes/monk-functions.php:100
    349 msgid ""
    350 "English (United States)"
    351 msgstr ""
    352 
    353 #: widgets/class-monk-language-switcher.php:32
    354 msgid ""
    355 "Switch between site "
    356 "translations."
    357 msgstr ""
    358 
    359 #: widgets/class-monk-language-switcher.php:49
    360 #: widgets/partials/admin-monk-language-switcher.php:16
    361 msgid "Languages"
    362 msgstr ""
    363 
    364 #: widgets/partials/admin-monk-language-switcher.php:21
    365 msgid "Title: "
    366 msgstr ""
    367 
    368 #: widgets/partials/admin-monk-language-switcher.php:25
    369 msgid "Hide Flags"
    370 msgstr ""
    371 
    372 #: widgets/partials/admin-monk-language-switcher.php:29
    373 msgid "Monk Love"
    374 msgstr ""
    375 
    376 #. translators: This is a message that says a content has no translations
    377 #: widgets/partials/public-monk-language-switcher.php:43
    378 msgid ""
    379 "No other translations"
    380 msgstr ""
    381 
    382 #. translators: This is a message to say the user is with us
    383 #: widgets/partials/public-monk-language-switcher.php:66
    384 #, php-format
    385 msgid ""
    386 "Made with %1$s by %2$s"
    387 msgstr ""
  • monk/trunk/monk.php

    r1708712 r1712354  
    22/**
    33 * Plugin Name:       Monk
    4  * Plugin URI:        https://github.com/brenoalvs/monk
     4 * Plugin URI:        https://wordpress.org/plugins/monk
    55 * Description:       Monk is a lightweight translation plugin to make your content reach the world.
    6  * Version:           0.4.0
     6 * Version:           0.4.1
    77 * Author:            Breno Alves
    88 * Author URI:        https://github.com/brenoalvs
  • monk/trunk/public/class-monk-public.php

    r1708712 r1712354  
    9494        $query_args       = array();
    9595        $default_language = get_option( 'monk_default_language', false );
     96        $active_languages = get_option( 'monk_active_languages', false );
    9697        $default_slug     = $monk_languages[ $default_language ]['slug'];
    9798        $current_language = get_query_var( 'lang', $default_slug );
    9899        $current_language = monk_get_locale_by_slug( $current_language );
    99100
    100         if ( ! $current_language || $default_language === $current_language ) {
    101             $query_args[] = array(
    102                 'relation' => 'OR',
    103                 array(
    104                     'key'     => '_monk_post_language',
    105                     'value'   => $default_language,
    106                     'compare' => '=',
    107                 ),
    108                 array(
    109                     'key'     => '_monk_post_language',
    110                     'compare' => 'NOT EXISTS',
    111                 ),
    112             );
    113         } else {
     101        if ( $current_language && in_array( $current_language, $active_languages ) ) {
    114102            $query_args[] = array(
    115103                'key'     => '_monk_post_language',
     
    117105                'compare' => '=',
    118106            );
     107        } else {
     108            $query_args[] = array(
     109                'relation' => 'OR',
     110                array(
     111                    'key'     => '_monk_post_language',
     112                    'value'   => $default_language,
     113                    'compare' => '=',
     114                ),
     115                array(
     116                    'key'     => '_monk_post_language',
     117                    'compare' => 'NOT EXISTS',
     118                ),
     119            );
    119120        }
    120121
     
    138139
    139140        $default_language = get_option( 'monk_default_language', false );
     141        $active_languages = get_option( 'monk_active_languages', false );
    140142        $default_slug     = $monk_languages[ $default_language ]['slug'];
    141143        $current_language = get_query_var( 'lang', $default_slug );
    142144        $current_language = monk_get_locale_by_slug( $current_language );
    143145
    144         if ( ! $current_language || $default_language === $current_language ) {
     146        if ( $current_language && in_array( $current_language, $active_languages ) ) {
     147            $args['meta_query'] = array(
     148                array(
     149                    'key'     => '_monk_term_language',
     150                    'value'   => $current_language,
     151                    'compare' => '=',
     152                ),
     153            );
     154        } else {
    145155            $args['meta_query'] = array(
    146156                'relation' => 'OR',
     
    153163                    'key'     => '_monk_term_language',
    154164                    'compare' => 'NOT EXISTS',
    155                 ),
    156             );
    157         } else {
    158             $args['meta_query'] = array(
    159                 array(
    160                     'key'     => '_monk_term_language',
    161                     'value'   => $current_language,
    162                     'compare' => '=',
    163165                ),
    164166            );
     
    183185
    184186        if ( $language ) {
    185             $language         = monk_get_locale_by_slug( $language );
     187            $language = monk_get_locale_by_slug( $language );
    186188
    187189            if ( array_key_exists( $location, $menus ) ) {
  • monk/trunk/widgets/class-monk-language-switcher.php

    r1708712 r1712354  
    5656        $default_slug             = $monk_languages[ $default_language ]['slug'];
    5757        $has_default_language_url = get_option( 'monk_default_language_url', false );
    58 
    59         if ( get_query_var( 'lang' ) ) {
     58        $current_locale             = monk_get_locale_by_slug( get_query_var( 'lang' ) );
     59
     60        if ( get_query_var( 'lang' ) && in_array( $current_locale, $active_languages ) ) {
    6061            $current_language = sanitize_text_field( get_query_var( 'lang' ) );
    6162        } else {
    62             $code = get_option( 'monk_default_language', false );
    63             $current_language = $monk_languages[ $code ]['slug'];
     63            $current_language = $monk_languages[ $default_language ]['slug'];
    6464        }
    6565
     
    8989                        } else {
    9090                            if ( dirname( $_SERVER['PHP_SELF'] ) === '\\' || dirname( $_SERVER['PHP_SELF'] ) === '/' ) {
    91                                 $current_url = trailingslashit( $current_url ) . $lang_code;
     91                                $current_url = str_replace( home_url(), home_url() . $lang_code . '/', $current_url );
    9292                            } else {
    9393                                $current_url = str_replace( dirname( $_SERVER['PHP_SELF'] ), trailingslashit( dirname( $_SERVER['PHP_SELF'] ) ) . $lang_code, $current_url );
     
    9999                            $switchable_languages[ $lang_code ] = remove_query_arg( 'lang', $current_url );
    100100                        } else {
    101                             $switchable_languages[ $lang_code ] = add_query_arg( 'lang', esc_attr( $lang_code, 'monk' ), trailingslashit( $current_url ) );
     101                            $switchable_languages[ $lang_code ] = add_query_arg( 'lang', sanitize_key( $lang_code ) );
    102102                        }
    103103                    }
Note: See TracChangeset for help on using the changeset viewer.