aboutsummaryrefslogtreecommitdiffstats
path: root/i18n/src
diff options
context:
space:
mode:
Diffstat (limited to 'i18n/src')
-rw-r--r--i18n/src/closureI18nExtractor.js11
1 files changed, 8 insertions, 3 deletions
diff --git a/i18n/src/closureI18nExtractor.js b/i18n/src/closureI18nExtractor.js
index a26f89b7..13d42143 100644
--- a/i18n/src/closureI18nExtractor.js
+++ b/i18n/src/closureI18nExtractor.js
@@ -9,6 +9,7 @@ exports.pluralExtractor = pluralExtractor;
exports.outputLocale = outputLocale;
exports.correctedLocaleId = correctedLocaleId;
exports.findLocaleId = findLocaleId;
+exports.serializeContent = serializeContent;
var goog = { provide: function() {},
require: function() {},
@@ -125,6 +126,12 @@ function canonicalizeForJsonStringify(unused_key, object) {
return result;
}
+function serializeContent(localeObj) {
+ return JSON.stringify(localeObj, canonicalizeForJsonStringify, ' ')
+ .replace(new RegExp('[\\u007f-\\uffff]', 'g'), function(c) { return '\\u'+('0000'+c.charCodeAt(0).toString(16)).slice(-4); })
+ .replace(/"@@|@@"/g, '');
+}
+
function outputLocale(localeInfo, localeID) {
var fallBackID = localeID.match(/[A-Za-z]+/)[0],
localeObj = localeInfo[localeID],
@@ -167,9 +174,7 @@ function outputLocale(localeInfo, localeID) {
id: localeObj.id
};
- var content = JSON.stringify(localeInfo[localeID], canonicalizeForJsonStringify, ' ')
- .replace(/\ยค/g, '\\u00A4')
- .replace(/"@@|@@"/g, '');
+ var content = serializeContent(localeInfo[localeID]);
return prefix + content + suffix;
}