initial commit
This commit is contained in:
479
node_modules/i18next/dist/commonjs/i18next.js
generated
vendored
Normal file
479
node_modules/i18next/dist/commonjs/i18next.js
generated
vendored
Normal file
@@ -0,0 +1,479 @@
|
||||
"use strict";
|
||||
|
||||
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
|
||||
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
||||
|
||||
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread"));
|
||||
|
||||
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
||||
|
||||
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
||||
|
||||
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
||||
|
||||
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
||||
|
||||
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
||||
|
||||
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
||||
|
||||
var _logger = _interopRequireDefault(require("./logger.js"));
|
||||
|
||||
var _EventEmitter2 = _interopRequireDefault(require("./EventEmitter.js"));
|
||||
|
||||
var _ResourceStore = _interopRequireDefault(require("./ResourceStore.js"));
|
||||
|
||||
var _Translator = _interopRequireDefault(require("./Translator.js"));
|
||||
|
||||
var _LanguageUtils = _interopRequireDefault(require("./LanguageUtils.js"));
|
||||
|
||||
var _PluralResolver = _interopRequireDefault(require("./PluralResolver.js"));
|
||||
|
||||
var _Interpolator = _interopRequireDefault(require("./Interpolator.js"));
|
||||
|
||||
var _BackendConnector = _interopRequireDefault(require("./BackendConnector.js"));
|
||||
|
||||
var _defaults = require("./defaults.js");
|
||||
|
||||
var _postProcessor = _interopRequireDefault(require("./postProcessor.js"));
|
||||
|
||||
var _utils = require("./utils.js");
|
||||
|
||||
function noop() {}
|
||||
|
||||
var I18n =
|
||||
/*#__PURE__*/
|
||||
function (_EventEmitter) {
|
||||
(0, _inherits2.default)(I18n, _EventEmitter);
|
||||
|
||||
function I18n() {
|
||||
var _this;
|
||||
|
||||
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
||||
var callback = arguments.length > 1 ? arguments[1] : undefined;
|
||||
(0, _classCallCheck2.default)(this, I18n);
|
||||
_this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(I18n).call(this));
|
||||
|
||||
_EventEmitter2.default.call((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this))); // <=IE10 fix (unable to call parent constructor)
|
||||
|
||||
|
||||
_this.options = (0, _defaults.transformOptions)(options);
|
||||
_this.services = {};
|
||||
_this.logger = _logger.default;
|
||||
_this.modules = {
|
||||
external: []
|
||||
};
|
||||
|
||||
if (callback && !_this.isInitialized && !options.isClone) {
|
||||
// https://github.com/i18next/i18next/issues/879
|
||||
if (!_this.options.initImmediate) {
|
||||
_this.init(options, callback);
|
||||
|
||||
return (0, _possibleConstructorReturn2.default)(_this, (0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
|
||||
}
|
||||
|
||||
setTimeout(function () {
|
||||
_this.init(options, callback);
|
||||
}, 0);
|
||||
}
|
||||
|
||||
return _this;
|
||||
}
|
||||
|
||||
(0, _createClass2.default)(I18n, [{
|
||||
key: "init",
|
||||
value: function init() {
|
||||
var _this2 = this;
|
||||
|
||||
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
||||
var callback = arguments.length > 1 ? arguments[1] : undefined;
|
||||
|
||||
if (typeof options === 'function') {
|
||||
callback = options;
|
||||
options = {};
|
||||
}
|
||||
|
||||
this.options = (0, _objectSpread2.default)({}, (0, _defaults.get)(), this.options, (0, _defaults.transformOptions)(options));
|
||||
this.format = this.options.interpolation.format;
|
||||
if (!callback) callback = noop;
|
||||
|
||||
function createClassOnDemand(ClassOrObject) {
|
||||
if (!ClassOrObject) return null;
|
||||
if (typeof ClassOrObject === 'function') return new ClassOrObject();
|
||||
return ClassOrObject;
|
||||
} // init services
|
||||
|
||||
|
||||
if (!this.options.isClone) {
|
||||
if (this.modules.logger) {
|
||||
_logger.default.init(createClassOnDemand(this.modules.logger), this.options);
|
||||
} else {
|
||||
_logger.default.init(null, this.options);
|
||||
}
|
||||
|
||||
var lu = new _LanguageUtils.default(this.options);
|
||||
this.store = new _ResourceStore.default(this.options.resources, this.options);
|
||||
var s = this.services;
|
||||
s.logger = _logger.default;
|
||||
s.resourceStore = this.store;
|
||||
s.languageUtils = lu;
|
||||
s.pluralResolver = new _PluralResolver.default(lu, {
|
||||
prepend: this.options.pluralSeparator,
|
||||
compatibilityJSON: this.options.compatibilityJSON,
|
||||
simplifyPluralSuffix: this.options.simplifyPluralSuffix
|
||||
});
|
||||
s.interpolator = new _Interpolator.default(this.options);
|
||||
s.backendConnector = new _BackendConnector.default(createClassOnDemand(this.modules.backend), s.resourceStore, s, this.options); // pipe events from backendConnector
|
||||
|
||||
s.backendConnector.on('*', function (event) {
|
||||
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
||||
args[_key - 1] = arguments[_key];
|
||||
}
|
||||
|
||||
_this2.emit.apply(_this2, [event].concat(args));
|
||||
});
|
||||
|
||||
if (this.modules.languageDetector) {
|
||||
s.languageDetector = createClassOnDemand(this.modules.languageDetector);
|
||||
s.languageDetector.init(s, this.options.detection, this.options);
|
||||
}
|
||||
|
||||
if (this.modules.i18nFormat) {
|
||||
s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);
|
||||
if (s.i18nFormat.init) s.i18nFormat.init(this);
|
||||
}
|
||||
|
||||
this.translator = new _Translator.default(this.services, this.options); // pipe events from translator
|
||||
|
||||
this.translator.on('*', function (event) {
|
||||
for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
|
||||
args[_key2 - 1] = arguments[_key2];
|
||||
}
|
||||
|
||||
_this2.emit.apply(_this2, [event].concat(args));
|
||||
});
|
||||
this.modules.external.forEach(function (m) {
|
||||
if (m.init) m.init(_this2);
|
||||
});
|
||||
} // append api
|
||||
|
||||
|
||||
var storeApi = ['getResource', 'addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];
|
||||
storeApi.forEach(function (fcName) {
|
||||
_this2[fcName] = function () {
|
||||
var _this2$store;
|
||||
|
||||
return (_this2$store = _this2.store)[fcName].apply(_this2$store, arguments);
|
||||
};
|
||||
});
|
||||
var deferred = (0, _utils.defer)();
|
||||
|
||||
var load = function load() {
|
||||
_this2.changeLanguage(_this2.options.lng, function (err, t) {
|
||||
_this2.isInitialized = true;
|
||||
|
||||
_this2.logger.log('initialized', _this2.options);
|
||||
|
||||
_this2.emit('initialized', _this2.options);
|
||||
|
||||
deferred.resolve(t); // not rejecting on err (as err is only a loading translation failed warning)
|
||||
|
||||
callback(err, t);
|
||||
});
|
||||
};
|
||||
|
||||
if (this.options.resources || !this.options.initImmediate) {
|
||||
load();
|
||||
} else {
|
||||
setTimeout(load, 0);
|
||||
}
|
||||
|
||||
return deferred;
|
||||
}
|
||||
/* eslint consistent-return: 0 */
|
||||
|
||||
}, {
|
||||
key: "loadResources",
|
||||
value: function loadResources() {
|
||||
var _this3 = this;
|
||||
|
||||
var callback = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : noop;
|
||||
|
||||
if (!this.options.resources || this.options.partialBundledLanguages) {
|
||||
if (this.language && this.language.toLowerCase() === 'cimode') return callback(); // avoid loading resources for cimode
|
||||
|
||||
var toLoad = [];
|
||||
|
||||
var append = function append(lng) {
|
||||
if (!lng) return;
|
||||
|
||||
var lngs = _this3.services.languageUtils.toResolveHierarchy(lng);
|
||||
|
||||
lngs.forEach(function (l) {
|
||||
if (toLoad.indexOf(l) < 0) toLoad.push(l);
|
||||
});
|
||||
};
|
||||
|
||||
if (!this.language) {
|
||||
// at least load fallbacks in this case
|
||||
var fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);
|
||||
fallbacks.forEach(function (l) {
|
||||
return append(l);
|
||||
});
|
||||
} else {
|
||||
append(this.language);
|
||||
}
|
||||
|
||||
if (this.options.preload) {
|
||||
this.options.preload.forEach(function (l) {
|
||||
return append(l);
|
||||
});
|
||||
}
|
||||
|
||||
this.services.backendConnector.load(toLoad, this.options.ns, callback);
|
||||
} else {
|
||||
callback(null);
|
||||
}
|
||||
}
|
||||
}, {
|
||||
key: "reloadResources",
|
||||
value: function reloadResources(lngs, ns, callback) {
|
||||
var deferred = (0, _utils.defer)();
|
||||
if (!lngs) lngs = this.languages;
|
||||
if (!ns) ns = this.options.ns;
|
||||
if (!callback) callback = noop;
|
||||
this.services.backendConnector.reload(lngs, ns, function (err) {
|
||||
deferred.resolve(); // not rejecting on err (as err is only a loading translation failed warning)
|
||||
|
||||
callback(err);
|
||||
});
|
||||
return deferred;
|
||||
}
|
||||
}, {
|
||||
key: "use",
|
||||
value: function use(module) {
|
||||
if (module.type === 'backend') {
|
||||
this.modules.backend = module;
|
||||
}
|
||||
|
||||
if (module.type === 'logger' || module.log && module.warn && module.error) {
|
||||
this.modules.logger = module;
|
||||
}
|
||||
|
||||
if (module.type === 'languageDetector') {
|
||||
this.modules.languageDetector = module;
|
||||
}
|
||||
|
||||
if (module.type === 'i18nFormat') {
|
||||
this.modules.i18nFormat = module;
|
||||
}
|
||||
|
||||
if (module.type === 'postProcessor') {
|
||||
_postProcessor.default.addPostProcessor(module);
|
||||
}
|
||||
|
||||
if (module.type === '3rdParty') {
|
||||
this.modules.external.push(module);
|
||||
}
|
||||
|
||||
return this;
|
||||
}
|
||||
}, {
|
||||
key: "changeLanguage",
|
||||
value: function changeLanguage(lng, callback) {
|
||||
var _this4 = this;
|
||||
|
||||
var deferred = (0, _utils.defer)();
|
||||
|
||||
var done = function done(err, l) {
|
||||
_this4.translator.changeLanguage(l);
|
||||
|
||||
if (l) {
|
||||
_this4.emit('languageChanged', l);
|
||||
|
||||
_this4.logger.log('languageChanged', l);
|
||||
}
|
||||
|
||||
deferred.resolve(function () {
|
||||
return _this4.t.apply(_this4, arguments);
|
||||
});
|
||||
if (callback) callback(err, function () {
|
||||
return _this4.t.apply(_this4, arguments);
|
||||
});
|
||||
};
|
||||
|
||||
var setLng = function setLng(l) {
|
||||
if (l) {
|
||||
_this4.language = l;
|
||||
_this4.languages = _this4.services.languageUtils.toResolveHierarchy(l);
|
||||
if (!_this4.translator.language) _this4.translator.changeLanguage(l);
|
||||
if (_this4.services.languageDetector) _this4.services.languageDetector.cacheUserLanguage(l);
|
||||
}
|
||||
|
||||
_this4.loadResources(function (err) {
|
||||
done(err, l);
|
||||
});
|
||||
};
|
||||
|
||||
if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {
|
||||
setLng(this.services.languageDetector.detect());
|
||||
} else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {
|
||||
this.services.languageDetector.detect(setLng);
|
||||
} else {
|
||||
setLng(lng);
|
||||
}
|
||||
|
||||
return deferred;
|
||||
}
|
||||
}, {
|
||||
key: "getFixedT",
|
||||
value: function getFixedT(lng, ns) {
|
||||
var _this5 = this;
|
||||
|
||||
var fixedT = function fixedT(key, opts) {
|
||||
var options = (0, _objectSpread2.default)({}, opts);
|
||||
|
||||
if ((0, _typeof2.default)(opts) !== 'object') {
|
||||
for (var _len3 = arguments.length, rest = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {
|
||||
rest[_key3 - 2] = arguments[_key3];
|
||||
}
|
||||
|
||||
options = _this5.options.overloadTranslationOptionHandler([key, opts].concat(rest));
|
||||
}
|
||||
|
||||
options.lng = options.lng || fixedT.lng;
|
||||
options.lngs = options.lngs || fixedT.lngs;
|
||||
options.ns = options.ns || fixedT.ns;
|
||||
return _this5.t(key, options);
|
||||
};
|
||||
|
||||
if (typeof lng === 'string') {
|
||||
fixedT.lng = lng;
|
||||
} else {
|
||||
fixedT.lngs = lng;
|
||||
}
|
||||
|
||||
fixedT.ns = ns;
|
||||
return fixedT;
|
||||
}
|
||||
}, {
|
||||
key: "t",
|
||||
value: function t() {
|
||||
var _this$translator;
|
||||
|
||||
return this.translator && (_this$translator = this.translator).translate.apply(_this$translator, arguments);
|
||||
}
|
||||
}, {
|
||||
key: "exists",
|
||||
value: function exists() {
|
||||
var _this$translator2;
|
||||
|
||||
return this.translator && (_this$translator2 = this.translator).exists.apply(_this$translator2, arguments);
|
||||
}
|
||||
}, {
|
||||
key: "setDefaultNamespace",
|
||||
value: function setDefaultNamespace(ns) {
|
||||
this.options.defaultNS = ns;
|
||||
}
|
||||
}, {
|
||||
key: "loadNamespaces",
|
||||
value: function loadNamespaces(ns, callback) {
|
||||
var _this6 = this;
|
||||
|
||||
var deferred = (0, _utils.defer)();
|
||||
|
||||
if (!this.options.ns) {
|
||||
callback && callback();
|
||||
return Promise.resolve();
|
||||
}
|
||||
|
||||
if (typeof ns === 'string') ns = [ns];
|
||||
ns.forEach(function (n) {
|
||||
if (_this6.options.ns.indexOf(n) < 0) _this6.options.ns.push(n);
|
||||
});
|
||||
this.loadResources(function (err) {
|
||||
deferred.resolve();
|
||||
if (callback) callback(err);
|
||||
});
|
||||
return deferred;
|
||||
}
|
||||
}, {
|
||||
key: "loadLanguages",
|
||||
value: function loadLanguages(lngs, callback) {
|
||||
var deferred = (0, _utils.defer)();
|
||||
if (typeof lngs === 'string') lngs = [lngs];
|
||||
var preloaded = this.options.preload || [];
|
||||
var newLngs = lngs.filter(function (lng) {
|
||||
return preloaded.indexOf(lng) < 0;
|
||||
}); // Exit early if all given languages are already preloaded
|
||||
|
||||
if (!newLngs.length) {
|
||||
if (callback) callback();
|
||||
return Promise.resolve();
|
||||
}
|
||||
|
||||
this.options.preload = preloaded.concat(newLngs);
|
||||
this.loadResources(function (err) {
|
||||
deferred.resolve();
|
||||
if (callback) callback(err);
|
||||
});
|
||||
return deferred;
|
||||
}
|
||||
}, {
|
||||
key: "dir",
|
||||
value: function dir(lng) {
|
||||
if (!lng) lng = this.languages && this.languages.length > 0 ? this.languages[0] : this.language;
|
||||
if (!lng) return 'rtl';
|
||||
var rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam'];
|
||||
return rtlLngs.indexOf(this.services.languageUtils.getLanguagePartFromCode(lng)) >= 0 ? 'rtl' : 'ltr';
|
||||
}
|
||||
/* eslint class-methods-use-this: 0 */
|
||||
|
||||
}, {
|
||||
key: "createInstance",
|
||||
value: function createInstance() {
|
||||
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
||||
var callback = arguments.length > 1 ? arguments[1] : undefined;
|
||||
return new I18n(options, callback);
|
||||
}
|
||||
}, {
|
||||
key: "cloneInstance",
|
||||
value: function cloneInstance() {
|
||||
var _this7 = this;
|
||||
|
||||
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
||||
var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;
|
||||
var mergedOptions = (0, _objectSpread2.default)({}, this.options, options, {
|
||||
isClone: true
|
||||
});
|
||||
var clone = new I18n(mergedOptions);
|
||||
var membersToCopy = ['store', 'services', 'language'];
|
||||
membersToCopy.forEach(function (m) {
|
||||
clone[m] = _this7[m];
|
||||
});
|
||||
clone.translator = new _Translator.default(clone.services, clone.options);
|
||||
clone.translator.on('*', function (event) {
|
||||
for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {
|
||||
args[_key4 - 1] = arguments[_key4];
|
||||
}
|
||||
|
||||
clone.emit.apply(clone, [event].concat(args));
|
||||
});
|
||||
clone.init(mergedOptions, callback);
|
||||
clone.translator.options = clone.options; // sync options
|
||||
|
||||
return clone;
|
||||
}
|
||||
}]);
|
||||
return I18n;
|
||||
}(_EventEmitter2.default);
|
||||
|
||||
var _default = new I18n();
|
||||
|
||||
exports.default = _default;
|
Reference in New Issue
Block a user