65 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
		
			Executable File
		
	
	
| /**
 | |
|  * Copyright © Magento, Inc. All rights reserved.
 | |
|  * See COPYING.txt for license details.
 | |
|  */
 | |
| 
 | |
| define([
 | |
|     'jquery',
 | |
|     'mage/mage',
 | |
|     'mageTranslationDictionary',
 | |
|     'underscore'
 | |
| ], function ($, mage, dictionary, _) {
 | |
|     'use strict';
 | |
| 
 | |
|     $.extend(true, $, {
 | |
|         mage: {
 | |
|             translate: (function () {
 | |
|                 /**
 | |
|                  * Key-value translations storage
 | |
|                  * @type {Object}
 | |
|                  * @private
 | |
|                  */
 | |
|                 var _data = dictionary;
 | |
| 
 | |
|                 return {
 | |
|                     /**
 | |
|                      * Add new translation (two string parameters) or several translations (object)
 | |
|                      */
 | |
|                     add: function () {
 | |
|                         if (arguments.length > 1) {
 | |
|                             _data[arguments[0]] = arguments[1];
 | |
|                         } else if (typeof arguments[0] === 'object') {
 | |
|                             $.extend(_data, arguments[0]);
 | |
|                         }
 | |
|                     },
 | |
| 
 | |
|                     /**
 | |
|                      * Make a translation with parsing (to handle case when _data represents tuple)
 | |
|                      * @param {String} text
 | |
|                      * @return {String}
 | |
|                      */
 | |
|                     translate: function (text) {
 | |
|                         return typeof _data[text] !== 'undefined' ? _data[text] : text;
 | |
|                     }
 | |
|                 };
 | |
|             }())
 | |
|         }
 | |
|     });
 | |
|     $.mage.__ = $.proxy($.mage.translate.translate, $.mage.translate);
 | |
| 
 | |
|     // Provide i18n wrapper to be used in underscore templates for translation
 | |
|     _.extend(_, {
 | |
|         /**
 | |
|          * Make a translation using $.mage.__
 | |
|          *
 | |
|          * @param {String} text
 | |
|          * @return {String}
 | |
|          */
 | |
|         i18n: function (text) {
 | |
|             return $.mage.__(text);
 | |
|         }
 | |
|     });
 | |
| 
 | |
|     return $.mage.__;
 | |
| });
 |