Make WordPress Core

Ticket #8759: 8759.4.diff

File 8759.4.diff, 1.7 KB (added by jiehanzheng, 12 years ago)

Patch that supports only Chinese. The file itself to follow.

  • wp-admin/js/word-count.dev.js

     
    1 (function($,undefined) {
     1(function($) {
    22        wpWordCount = {
    33
    44                settings : {
    55                        strip : /<[a-zA-Z\/][^<>]*>/g, // strip HTML tags
    66                        clean : /[0-9.(),;:!?%#$¿'"_+=\\/-]+/g, // regexp to remove punctuation, etc.
    7                         w : /\S\s+/g, // word-counting regexp
    8                         c : /\S/g // char-counting regexp for asian languages
     7                        count : /\S\s+/g // counting regexp
    98                },
    109
     10                settingsEastAsia : {
     11                        count : /[\u3100-\u312F\u31A0-\u31BF\u4E00-\u9FCF\u3400-\u4DBF\uF900-\uFAFF\u2F00-\u2FDF\u2E80-\u2EFF\u31C0-\u31EF\u2FF0-\u2FFF\u1100-\u11FF\uA960-\uA97F\uD780-\uD7FF\u3130-\u318F\uFFA0-\uFFDC\uAC00-\uD7AF\u3040-\u309F\u30A0-\u30FF\u31F0-\u31FF\uFF65-\uFF9F\u3190-\u319F\uA4D0-\uA4FF\uA000-\uA48F\uA490-\uA4CF]/g
     12                },
     13
    1114                block : 0,
    1215
    13                 wc : function(tx, type) {
     16                wc : function(tx) {
    1417                        var t = this, w = $('.word-count'), tc = 0;
    1518
    16                         if ( type === undefined )
    17                                 type = wordCountL10n.type;
    18                         if ( type !== 'w' && type !== 'c' )
    19                                 type = 'w';
    20 
    2119                        if ( t.block )
    2220                                return;
    2321
     
    2523
    2624                        setTimeout( function() {
    2725                                if ( tx ) {
     26                                        // remove generally useless stuff first
    2827                                        tx = tx.replace( t.settings.strip, ' ' ).replace( /&nbsp;|&#160;/gi, ' ' );
     28
     29                                        // count east asia chars
     30                                        tx = tx.replace( t.settingsEastAsia.count, function(){ tc++; return ''; } );
     31
     32                                        // count remaining western characters
    2933                                        tx = tx.replace( t.settings.clean, '' );
    30                                         tx.replace( t.settings[type], function(){tc++;} );
     34                                        tx.replace( t.settings.count, function(){ tc++; return ''; } );
    3135                                }
    3236                                w.html(tc.toString());
    3337