tinymce.full.js
function (text) {
        var langData = data[code] || {};

        /**
         * number - string
         * null, undefined and empty string - empty string
         * array - comma-delimited string
         * object - in [object Object]
         * function - in [object Function]
         *
         * @param obj
         * @returns {string}
         */
        function toString(obj) {
          if (Tools.is(obj, 'function')) {
            return Object.prototype.toString.call(obj);
          }
          return !isEmpty(obj) ? '' + obj : '';
        }

        function isEmpty(text) {
          return text === '' || text === null || Tools.is(text, 'undefined');
        }

        function getLangData(text) {
          // make sure we work on a string and return a string
          text = toString(text);
          return Tools.hasOwn(langData, text) ? toString(langData[text]) : text;
        }


        if (isEmpty(text)) {
          return '';
        }

        if (Tools.is(text, 'object') && Tools.hasOwn(text, 'raw')) {
          return toString(text.raw);
        }

        if (Tools.is(text, 'array')) {
          var values = text.slice(1);
          text = getLangData(text[0]).replace(/\{([0-9]+)\}/g, function ($1, $2) {
            return Tools.hasOwn(values, $2) ? toString(values[$2]) : $1;
          });
        }

        return getLangData(text).replace(/{context:\w+}$/, '');
      }
function (text) {
        var langData = data[code] || {};

        /**
         * number - string
         * null, undefined and empty string - empty string
         * array - comma-delimited string
         * object - in [object Object]
         * function - in [object Function]
         *
         * @param obj
         * @returns {string}
         */
        function toString(obj) {
          if (Tools.is(obj, 'function')) {
            return Object.prototype.toString.call(obj);
          }
          return !isEmpty(obj) ? '' + obj : '';
        }

        function isEmpty(text) {
          return text === '' || text === null || Tools.is(text, 'undefined');
        }

        function getLangData(text) {
          // make sure we work on a string and return a string
          text = toString(text);
          return Tools.hasOwn(langData, text) ? toString(langData[text]) : text;
        }


        if (isEmpty(text)) {
          return '';
        }

        if (Tools.is(text, 'object') && Tools.hasOwn(text, 'raw')) {
          return toString(text.raw);
        }

        if (Tools.is(text, 'array')) {
          var values = text.slice(1);
          text = getLangData(text[0]).replace(/\{([0-9]+)\}/g, function ($1, $2) {
            return Tools.hasOwn(values, $2) ? toString(values[$2]) : $1;
          });
        }

        return getLangData(text).replace(/{context:\w+}$/, '');
      }
function ( text ) { var langData = data [ code ] || { } ; /**
         * number - string
         * null, undefined and empty string - empty string
         * array - comma-delimited string
         * object - in [object Object]
         * function - in [object Function]
         *
         * @param obj
         * @returns {string}
         */ function toString ( obj ) { if ( Tools . is ( obj , 'function' ) ) { return Object . prototype . toString . call ( obj ) ; } return ! isEmpty ( obj ) ? '' + obj : '' ; } function isEmpty ( text ) { return text === '' || text === null || Tools . is ( text , 'undefined' ) ; } function getLangData ( text ) { // make sure we work on a string and return a string text = toString ( text ) ; return Tools . hasOwn ( langData , text ) ? toString ( langData [ text ] ) : text ; } if ( isEmpty ( text ) ) { return '' ; } if ( Tools . is ( text , 'object' ) && Tools . hasOwn ( text , 'raw' ) ) { return toString ( text . raw ) ; } if ( Tools . is ( text , 'array' ) ) { var values = text . slice ( 1 ) ; text = getLangData ( text [ 0 ] ) . replace ( / \{([0-9]+)\} / g , function ( $1 , $2 ) { return Tools . hasOwn ( values , $2 ) ? toString ( values [ $2 ] ) : $1 ; } ) ; } return getLangData ( text ) . replace ( / {context:\w+}$ / , '' ) ; }
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.
Translates the specified text .