From f5e87e48afe3a5754e3afcebb95f993477c70064 Mon Sep 17 00:00:00 2001 From: Andrew Nacin Date: Tue, 21 Feb 2012 15:35:05 +0000 Subject: [PATCH] Allow counting by characters in lieu of a word count, for East Asian languages. First pass. see #8759. git-svn-id: https://develop.svn.wordpress.org/trunk@19966 602fd350-edb4-49c9-b593-d223f7449a82 --- wp-admin/js/word-count.dev.js | 15 ++++++++++----- wp-includes/script-loader.php | 5 +++++ 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/wp-admin/js/word-count.dev.js b/wp-admin/js/word-count.dev.js index bb987af0ae..b42f5c3b49 100644 --- a/wp-admin/js/word-count.dev.js +++ b/wp-admin/js/word-count.dev.js @@ -1,18 +1,23 @@ - -(function($) { +(function($,undefined) { wpWordCount = { settings : { strip : /<[a-zA-Z\/][^<>]*>/g, // strip HTML tags clean : /[0-9.(),;:!?%#$¿'"_+=\\/-]+/g, // regexp to remove punctuation, etc. - count : /\S\s+/g // counting regexp + w : /\S\s+/g, // word-counting regexp + c : /\S/g // char-counting regexp for asian languages }, block : 0, - wc : function(tx) { + wc : function(tx, type) { var t = this, w = $('.word-count'), tc = 0; + if ( type === undefined ) + type = wordCountL10n.type; + if ( type !== 'w' && type !== 'c' ) + type = 'w'; + if ( t.block ) return; @@ -22,7 +27,7 @@ if ( tx ) { tx = tx.replace( t.settings.strip, ' ' ).replace( / | /gi, ' ' ); tx = tx.replace( t.settings.clean, '' ); - tx.replace( t.settings.count, function(){tc++;} ); + tx.replace( t.settings[type], function(){tc++;} ); } w.html(tc.toString()); diff --git a/wp-includes/script-loader.php b/wp-includes/script-loader.php index 918c0860b6..1365cb73d6 100644 --- a/wp-includes/script-loader.php +++ b/wp-includes/script-loader.php @@ -278,6 +278,11 @@ function wp_default_scripts( &$scripts ) { $scripts->add( 'wpdialogs-popup', "/wp-includes/js/tinymce/plugins/wpdialogs/js/popup$suffix.js", array( 'wpdialogs' ), false, 1 ); $scripts->add( 'word-count', "/wp-admin/js/word-count$suffix.js", array( 'jquery' ), false, 1 ); + $scripts->localize( 'word-count', 'wordCountL10n', array( + /* translators: If your word count is based on single characters (East Asian characters), + enter 'characters'. Otherwise, enter 'words'. Do not translate into your own language. */ + 'type' => 'characters' == _x( 'words', 'word count: words or characters?' ) ? 'c' : 'w', + ) ); $scripts->add( 'media-upload', "/wp-admin/js/media-upload$suffix.js", array( 'thickbox' ), false, 1 );