From 2ffce184b97e3e61c6a1ae033fdfce524c8884d2 Mon Sep 17 00:00:00 2001 From: d0gd1ck Date: Thu, 14 Jan 2016 20:14:44 +0800 Subject: [PATCH 1/2] https://github.com/gbk/i18n-helper/issues/1 --- index.js | 63 ++++++++++++++++++++++++-------------------------------- 1 file changed, 27 insertions(+), 36 deletions(-) diff --git a/index.js b/index.js index 376262d..9e47346 100644 --- a/index.js +++ b/index.js @@ -1,9 +1,9 @@ -/* -* @Author: caoke -* @Date: 2015-09-18 13:37:01 -* @Last Modified by: caoke -* @Last Modified time: 2015-09-21 17:32:07 -*/ +/* + * @Author: caoke + * @Date: 2015-09-18 13:37:01 + * @Last Modified by: Kuncheng Zhao + * @Last Modified time: 2016-01-14 20:14:12 + */ module.exports = generateI18nHelper; @@ -24,53 +24,44 @@ function generateI18nHelper() { } } - var i18nHelper = function() { + var i18nHelper = function () { // split arguments var args = toArray(arguments); // first argument is key var key = notNull(args[0]); + var value = notNull(lang[key]); - // key exists in lang pack - if (key in lang) { + // use key when key-value doesn't exist + var result = key in lang ? value : key; - // find value mapping to this key - var value = notNull(lang[key]); - - // value maybe a substitute template - if (value.indexOf('{') !== -1) { - - // subsititute the template - return value.replace(/\{(\d+)\}/mg, function(p, index) { - - // index in array - if (index in args) { - return args[index]; - } else { - - // fallback is blank string - return ''; - } - }); - } else { - return value; - } - - // key not exists - } else { - return i18nHelper.keyNotFound(key); - } + // replace the arguments whatever match is + return result.indexOf('{') !== -1 ? replaceWithArgs(result, args) : result; }; // key not found handler - i18nHelper.keyNotFound = function(key) { + i18nHelper.keyNotFound = function (key) { return key; }; return i18nHelper; }; +function replaceWithArgs(str, args) { + return str.replace(/\{(\d+)\}/mg, function (p, index) { + + // index in array + if (index in args) { + return args[index]; + } else { + + // fallback is blank string + return ''; + } + }); +} + // key not found handler function keyNotFound(key) { return key; From 59ed1fc0e6d9045b8619f313ececbe00e69d55a5 Mon Sep 17 00:00:00 2001 From: wb-zhaokuncheng Date: Thu, 14 Jan 2016 20:31:58 +0800 Subject: [PATCH 2/2] fix keyNotFound method --- index.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/index.js b/index.js index 9e47346..346c436 100644 --- a/index.js +++ b/index.js @@ -34,7 +34,7 @@ function generateI18nHelper() { var value = notNull(lang[key]); // use key when key-value doesn't exist - var result = key in lang ? value : key; + var result = key in lang ? value : i18nHelper.keyNotFound(key); // replace the arguments whatever match is return result.indexOf('{') !== -1 ? replaceWithArgs(result, args) : result; @@ -46,7 +46,7 @@ function generateI18nHelper() { }; return i18nHelper; -}; +} function replaceWithArgs(str, args) { return str.replace(/\{(\d+)\}/mg, function (p, index) { @@ -65,7 +65,7 @@ function replaceWithArgs(str, args) { // key not found handler function keyNotFound(key) { return key; -}; +} // arguments to array function toArray(o) {