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.__;
|
|
});
|