70 lines
1.4 KiB
JavaScript
Executable File
70 lines
1.4 KiB
JavaScript
Executable File
/**
|
|
* I18n.js
|
|
*
|
|
* Copyright, Moxiecode Systems AB
|
|
* Released under LGPL License.
|
|
*
|
|
* License: http://www.tinymce.com/license
|
|
* Contributing: http://www.tinymce.com/contributing
|
|
*/
|
|
|
|
/**
|
|
* I18n class that handles translation of TinyMCE UI.
|
|
* Uses po style with csharp style parameters.
|
|
*
|
|
* @class tinymce.util.I18n
|
|
*/
|
|
define("tinymce/util/I18n", [], function() {
|
|
"use strict";
|
|
|
|
var data = {};
|
|
|
|
return {
|
|
/**
|
|
* Adds translations for a specific language code.
|
|
*
|
|
* @method add
|
|
* @param {String} code Language code like sv_SE.
|
|
* @param {Array} items Name/value array with English en_US to sv_SE.
|
|
*/
|
|
add: function(code, items) {
|
|
for (var name in items) {
|
|
data[name] = items[name];
|
|
}
|
|
},
|
|
|
|
/**
|
|
* Translates the specified text.
|
|
*
|
|
* It has a few formats:
|
|
* I18n.translate("Text");
|
|
* I18n.translate(["Text {0}/{1}", 0, 1]);
|
|
* I18n.translate({raw: "Raw string"});
|
|
*
|
|
* @method translate
|
|
* @param {String/Object/Array} text Text to translate.
|
|
* @return {String} String that got translated.
|
|
*/
|
|
translate: function(text) {
|
|
if (typeof(text) == "undefined") {
|
|
return text;
|
|
}
|
|
|
|
if (typeof(text) != "string" && text.raw) {
|
|
return text.raw;
|
|
}
|
|
|
|
if (text.push) {
|
|
var values = text.slice(1);
|
|
|
|
text = (data[text[0]] || text[0]).replace(/\{([^\}]+)\}/g, function(match1, match2) {
|
|
return values[match2];
|
|
});
|
|
}
|
|
|
|
return data[text] || text;
|
|
},
|
|
|
|
data: data
|
|
};
|
|
}); |