Make WordPress Core

Changeset 19853


Ignore:
Timestamp:
02/07/2012 06:06:12 PM (13 years ago)
Author:
nacin
Message:

Allow localized commas to be used as tag separators. see #7897.

Location:
trunk
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-admin/includes/ajax-actions.php

    r19822 r19853  
    6767    $s = stripslashes( $_GET['q'] );
    6868
     69    $comma = _x( ',', 'tag delimiter' );
     70    if ( ',' !== $comma )
     71        $s = str_replace( $comma, ',', $s );
    6972    if ( false !== strpos( $s, ',' ) ) {
    7073        $s = explode( ',', $s );
  • trunk/wp-admin/includes/class-wp-posts-list-table.php

    r19712 r19853  
    610610                        );
    611611                    }
    612                     echo join( ', ', $out );
     612                    /* translators: used between list items, there is a space after the comma */
     613                    echo join( __( ', ' ), $out );
    613614                } else {
    614615                    _e( 'Uncategorized' );
     
    630631                        );
    631632                    }
    632                     echo join( ', ', $out );
     633                    /* translators: used between list items, there is a space after the comma */
     634                    echo join( __( ', ' ), $out );
    633635                } else {
    634636                    _e( 'No Tags' );
  • trunk/wp-admin/includes/meta-boxes.php

    r19684 r19853  
    277277    $taxonomy = get_taxonomy($taxonomy);
    278278    $disabled = !current_user_can($taxonomy->cap->assign_terms) ? 'disabled="disabled"' : '';
     279    $comma = _x( ',', 'tag delimiter' );
    279280?>
    280281<div class="tagsdiv" id="<?php echo $tax_name; ?>">
     
    282283    <div class="nojs-tags hide-if-js">
    283284    <p><?php echo $taxonomy->labels->add_or_remove_items; ?></p>
    284     <textarea name="<?php echo "tax_input[$tax_name]"; ?>" rows="3" cols="20" class="the-tags" id="tax-input-<?php echo $tax_name; ?>" <?php echo $disabled; ?>><?php echo get_terms_to_edit( $post->ID, $tax_name ); // textarea_escaped by esc_attr() ?></textarea></div>
     285    <textarea name="<?php echo "tax_input[$tax_name]"; ?>" rows="3" cols="20" class="the-tags" id="tax-input-<?php echo $tax_name; ?>" <?php echo $disabled; ?>><?php echo str_replace( ',', $comma . ' ', get_terms_to_edit( $post->ID, $tax_name ) ); // textarea_escaped by esc_attr() ?></textarea></div>
    285286    <?php if ( current_user_can($taxonomy->cap->assign_terms) ) : ?>
    286287    <div class="ajaxtag hide-if-no-js">
  • trunk/wp-admin/includes/post.php

    r19720 r19853  
    303303                continue;
    304304            if ( is_taxonomy_hierarchical( $tax_name ) ) {
    305                 $tax_input[$tax_name] = array_map( 'absint', $terms );
     305                $tax_input[ $tax_name ] = array_map( 'absint', $terms );
    306306            } else {
    307                 $tax_input[$tax_name] = preg_replace( '/\s*,\s*/', ',', rtrim( trim($terms), ' ,' ) );
    308                 $tax_input[$tax_name] = explode(',', $tax_input[$tax_name]);
     307                $comma = _x( ',', 'tag delimiter' );
     308                if ( ',' !== $comma )
     309                    $terms = str_replace( $comma, ',', $terms );
     310                $tax_input[ $tax_name ] = explode( ',', trim( $terms, " \n\t\r\0\x0B," ) );
    309311            }
    310312        }
  • trunk/wp-admin/includes/template.php

    r19825 r19853  
    265265        $taxonomy = get_taxonomy( $taxonomy_name );
    266266
    267         if ( $taxonomy->hierarchical && $taxonomy->show_ui )
    268                 echo '<div class="post_category" id="'.$taxonomy_name.'_'.$post->ID.'">' . implode( ',', wp_get_object_terms( $post->ID, $taxonomy_name, array('fields'=>'ids')) ) . '</div>';
    269         elseif ( $taxonomy->show_ui )
    270             echo '<div class="tags_input" id="'.$taxonomy_name.'_'.$post->ID.'">' . esc_html( str_replace( ',', ', ', get_terms_to_edit($post->ID, $taxonomy_name) ) ) . '</div>';
     267        if ( $taxonomy->hierarchical && $taxonomy->show_ui ) {
     268                echo '<div class="post_category" id="' . $taxonomy_name . '_' . $post->ID . '">'
     269                    . implode( ',', wp_get_object_terms( $post->ID, $taxonomy_name, array( 'fields' => 'ids' ) ) ) . '</div>';
     270        } elseif ( $taxonomy->show_ui ) {
     271            echo '<div class="tags_input" id="'.$taxonomy_name.'_'.$post->ID.'">'
     272                . esc_html( str_replace( ',', ', ', get_terms_to_edit( $post->ID, $taxonomy_name ) ) ) . '</div>';
     273        }
    271274    }
    272275
  • trunk/wp-admin/js/inline-edit-post.dev.js

    r19478 r19853  
    118118            // support multi taxonomies?
    119119            tax = 'post_tag';
    120             $('tr.inline-editor textarea[name="tax_input['+tax+']"]').suggest( 'admin-ajax.php?action=ajax-tag-search&tax='+tax, { delay: 500, minchars: 2, multiple: true, multipleSep: ", " } );
     120            $('tr.inline-editor textarea[name="tax_input['+tax+']"]').suggest( 'admin-ajax.php?action=ajax-tag-search&tax='+tax, { delay: 500, minchars: 2, multiple: true, multipleSep: inlineEditL10n.comma + ' ' } );
    121121        }
    122122        $('html, body').animate( { scrollTop: 0 }, 'fast' );
     
    185185            var terms = $(this).text(),
    186186                taxname = $(this).attr('id').replace('_' + id, ''),
    187                 textarea = $('textarea.tax_input_' + taxname, editRow);
    188 
    189             if ( terms )
     187                textarea = $('textarea.tax_input_' + taxname, editRow),
     188                comma = inlineEditL10n.comma;
     189
     190            if ( terms ) {
     191                if ( ',' !== comma )
     192                    terms = terms.replace(/,/g, comma);
    190193                textarea.val(terms);
    191 
    192             textarea.suggest( 'admin-ajax.php?action=ajax-tag-search&tax='+taxname, { delay: 500, minchars: 2, multiple: true, multipleSep: ", " } );
     194            }
     195
     196            textarea.suggest( 'admin-ajax.php?action=ajax-tag-search&tax='+taxname, { delay: 500, minchars: 2, multiple: true, multipleSep: inlineEditL10n.comma + ' ' } );
    193197        });
    194198
  • trunk/wp-admin/js/post.dev.js

    r19444 r19853  
    1616tagBox = {
    1717    clean : function(tags) {
    18         return tags.replace(/\s*,\s*/g, ',').replace(/,+/g, ',').replace(/[,\s]+$/, '').replace(/^[,\s]+/, '');
     18        var comma = postL10n.comma;
     19        if ( ',' !== comma )
     20            tags = tags.replace(new RegExp(comma, 'g'), ',');
     21        tags = tags.replace(/\s*,\s*/g, ',').replace(/,+/g, ',').replace(/[,\s]+$/, '').replace(/^[,\s]+/, '');
     22        if ( ',' !== comma )
     23            tags = tags.replace(/,/g, comma);
     24        return tags;
    1925    },
    2026
    2127    parseTags : function(el) {
    22         var id = el.id, num = id.split('-check-num-')[1], taxbox = $(el).closest('.tagsdiv'), thetags = taxbox.find('.the-tags'), current_tags = thetags.val().split(','), new_tags = [];
     28        var id = el.id, num = id.split('-check-num-')[1], taxbox = $(el).closest('.tagsdiv'),
     29            thetags = taxbox.find('.the-tags'), comma = postL10n.comma,
     30            current_tags = thetags.val().split(comma), new_tags = [];
    2331        delete current_tags[num];
    2432
     
    3038        });
    3139
    32         thetags.val( this.clean( new_tags.join(',') ) );
     40        thetags.val( this.clean( new_tags.join(comma) ) );
    3341
    3442        this.quickClicks(taxbox);
     
    4755        disabled = thetags.prop('disabled');
    4856
    49         current_tags = thetags.val().split(',');
     57        current_tags = thetags.val().split(postL10n.comma);
    5058        tagchecklist.empty();
    5159
     
    7583    flushTags : function(el, a, f) {
    7684        a = a || false;
    77         var text, tags = $('.the-tags', el), newtag = $('input.newtag', el), newtags;
     85        var tags = $('.the-tags', el),
     86            newtag = $('input.newtag', el),
     87            comma = postL10n.comma,
     88            newtags, text;
    7889
    7990        text = a ? $(a).text() : newtag.val();
    8091        tagsval = tags.val();
    81         newtags = tagsval ? tagsval + ',' + text : text;
     92        newtags = tagsval ? tagsval + comma + text : text;
    8293
    8394        newtags = this.clean( newtags );
    84         newtags = array_unique_noempty( newtags.split(',') ).join(',');
     95        newtags = array_unique_noempty( newtags.split(comma) ).join(comma);
    8596        tags.val(newtags);
    8697        this.quickClicks(el);
     
    97108        var tax = id.substr(id.indexOf('-')+1);
    98109
    99         $.post(ajaxurl, {'action':'get-tagcloud','tax':tax}, function(r, stat) {
     110        $.post(ajaxurl, {'action':'get-tagcloud', 'tax':tax}, function(r, stat) {
    100111            if ( 0 == r || 'success' != stat )
    101112                r = wpAjax.broken;
     
    143154        }).each(function(){
    144155            var tax = $(this).closest('div.tagsdiv').attr('id');
    145             $(this).suggest( ajaxurl + '?action=ajax-tag-search&tax=' + tax, { delay: 500, minchars: 2, multiple: true, multipleSep: "," } );
     156            $(this).suggest( ajaxurl + '?action=ajax-tag-search&tax=' + tax, { delay: 500, minchars: 2, multiple: true, multipleSep: postL10n.comma + ' ' } );
    146157        });
    147158
  • trunk/wp-includes/post.php

    r19779 r19853  
    29082908        $tags = array();
    29092909
    2910     $tags = is_array($tags) ? $tags : explode( ',', trim($tags, " \n\t\r\0\x0B,") );
     2910    if ( ! is_array( $tags ) ) {
     2911        $comma = _x( ',', 'tag delimiter' );
     2912        if ( ',' !== $comma )
     2913            $tags = str_replace( $comma, ',', $tags );
     2914        $tags = explode( ',', trim( $tags, " \n\t\r\0\x0B," ) );
     2915    }
    29112916
    29122917    // Hierarchical taxonomies must always pass IDs rather than names so that children with the same
  • trunk/wp-includes/script-loader.php

    r19688 r19853  
    331331            'password' => __('Password Protected'),
    332332            'privatelyPublished' => __('Privately Published'),
    333             'published' => __('Published')
     333            'published' => __('Published'),
     334            'comma' => _x( ',', 'tag delimiter' ),
    334335        ) );
    335336
     
    354355            'error' => __('Error while saving the changes.'),
    355356            'ntdeltitle' => __('Remove From Bulk Edit'),
    356             'notitle' => __('(no title)')
     357            'notitle' => __('(no title)'),
     358            'comma' => _x( ',', 'tag delimiter' ),
    357359        ) );
    358360
Note: See TracChangeset for help on using the changeset viewer.