src/pyams_skin/resources/js/ext/tinymce/dev/classes/util/I18n.js
changeset 69 a361355b55c7
--- /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