diff -r fd8fb93e1b6a -r a361355b55c7 src/pyams_skin/resources/js/ext/tinymce/dev/classes/util/I18n.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/pyams_skin/resources/js/ext/tinymce/dev/classes/util/I18n.js Wed Jun 17 10:00:10 2015 +0200 @@ -0,0 +1,115 @@ +/** + * 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 = {}, code = "en"; + + return { + /** + * Sets the current language code. + * + * @method setCode + * @param {String} newCode Current language code. + */ + setCode: function(newCode) { + if (newCode) { + code = newCode; + this.rtl = this.data[newCode] ? this.data[newCode]._dir === 'rtl' : false; + } + }, + + /** + * Returns the current language code. + * + * @return {String} Current language code. + */ + getCode: function() { + return code; + }, + + /** + * Property gets set to true if a RTL language pack was loaded. + * + * @property rtl + * @type Boolean + */ + rtl: false, + + /** + * 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) { + var langData = data[code]; + + if (!langData) { + data[code] = langData = {}; + } + + for (var name in items) { + langData[name] = items[name]; + } + + this.setCode(code); + }, + + /** + * 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) { + var langData; + + langData = data[code]; + if (!langData) { + langData = {}; + } + + if (typeof text == "undefined") { + return text; + } + + if (typeof text != "string" && text.raw) { + return text.raw; + } + + if (text.push) { + var values = text.slice(1); + + text = (langData[text[0]] || text[0]).replace(/\{([0-9]+)\}/g, function(match1, match2) { + return values[match2]; + }); + } + + return (langData[text] || text).replace(/{context:\w+}$/, ''); + }, + + data: data + }; +}); \ No newline at end of file