react-planner-viewer
Version:
react-planner-viewer is a React Component for view plans builded with react-planner in 2D mode
111 lines (87 loc) • 9.26 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _en = require('./en');
var _en2 = _interopRequireDefault(_en);
var _it = require('./it');
var _it2 = _interopRequireDefault(_it);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var DEFAULT_LOCALE = 'en';
var Translator = function () {
function Translator() {
_classCallCheck(this, Translator);
this.locale = null;
this.translations = {};
this.registerTranslation('en', _en2.default);
this.registerTranslation('it', _it2.default);
var locale = null;
var languages = Translator.getBrowserLanguages();
for (var i = 0; i < languages.length; i++) {
var lang = languages[i];
if (this.translations.hasOwnProperty(lang)) {
locale = lang;
break;
}
}
locale = locale ? locale : DEFAULT_LOCALE;
this.setLocale(locale);
}
_createClass(Translator, [{
key: 't',
value: function t(phrase) {
for (var _len = arguments.length, params = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
params[_key - 1] = arguments[_key];
}
return this.translate.apply(this, [phrase].concat(params));
}
}, {
key: 'translate',
value: function translate(phrase) {
for (var _len2 = arguments.length, params = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
params[_key2 - 1] = arguments[_key2];
}
var locale = this.locale;
var translation = this.translations[locale];
if (!translation.hasOwnProperty(phrase)) {
console.warn('translation \'' + phrase + '\' not found in language \'' + locale + '\'');
return phrase;
}
var translatedPhrase = translation[phrase];
translatedPhrase = translatedPhrase.replace(/{(\d+)}/g, function (match, number) {
return typeof params[number] != 'undefined' ? params[number] : match;
});
return translatedPhrase;
}
}, {
key: 'setLocale',
value: function setLocale(locale) {
locale = locale.toLowerCase();
if (this.translations.hasOwnProperty(locale)) {
this.locale = locale;
} else {
console.warn('locale \'' + locale + '\' not available, switch to ' + DEFAULT_LOCALE);
this.locale = DEFAULT_LOCALE.toLowerCase();
}
}
}, {
key: 'registerTranslation',
value: function registerTranslation(locale, translations) {
if (!this.translations.hasOwnProperty(locale)) {
this.translations[locale] = translations;
} else {
Object.assign(this.translations[locale], translations);
}
}
}], [{
key: 'getBrowserLanguages',
value: function getBrowserLanguages() {
return navigator.languages ? navigator.languages : [navigator.language || navigator.userLanguage];
}
}]);
return Translator;
}();
exports.default = Translator;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90cmFuc2xhdG9yL3RyYW5zbGF0b3IuanMiXSwibmFtZXMiOlsiREVGQVVMVF9MT0NBTEUiLCJUcmFuc2xhdG9yIiwibG9jYWxlIiwidHJhbnNsYXRpb25zIiwicmVnaXN0ZXJUcmFuc2xhdGlvbiIsImxhbmd1YWdlcyIsImdldEJyb3dzZXJMYW5ndWFnZXMiLCJpIiwibGVuZ3RoIiwibGFuZyIsImhhc093blByb3BlcnR5Iiwic2V0TG9jYWxlIiwicGhyYXNlIiwicGFyYW1zIiwidHJhbnNsYXRlIiwidHJhbnNsYXRpb24iLCJjb25zb2xlIiwid2FybiIsInRyYW5zbGF0ZWRQaHJhc2UiLCJyZXBsYWNlIiwibWF0Y2giLCJudW1iZXIiLCJ0b0xvd2VyQ2FzZSIsIk9iamVjdCIsImFzc2lnbiIsIm5hdmlnYXRvciIsImxhbmd1YWdlIiwidXNlckxhbmd1YWdlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBOzs7O0FBQ0E7Ozs7Ozs7O0FBRUEsSUFBTUEsaUJBQWlCLElBQXZCOztJQUVxQkMsVTtBQUNuQix3QkFBYztBQUFBOztBQUNaLFNBQUtDLE1BQUwsR0FBYyxJQUFkO0FBQ0EsU0FBS0MsWUFBTCxHQUFvQixFQUFwQjs7QUFFQSxTQUFLQyxtQkFBTCxDQUF5QixJQUF6QjtBQUNBLFNBQUtBLG1CQUFMLENBQXlCLElBQXpCOztBQUVBLFFBQUlGLFNBQVMsSUFBYjtBQUNBLFFBQUlHLFlBQVlKLFdBQVdLLG1CQUFYLEVBQWhCO0FBQ0EsU0FBSyxJQUFJQyxJQUFJLENBQWIsRUFBZ0JBLElBQUlGLFVBQVVHLE1BQTlCLEVBQXNDRCxHQUF0QyxFQUEyQztBQUN6QyxVQUFJRSxPQUFPSixVQUFVRSxDQUFWLENBQVg7QUFDQSxVQUFJLEtBQUtKLFlBQUwsQ0FBa0JPLGNBQWxCLENBQWlDRCxJQUFqQyxDQUFKLEVBQTRDO0FBQzFDUCxpQkFBU08sSUFBVDtBQUNBO0FBQ0Q7QUFDRjtBQUNEUCxhQUFTQSxTQUFTQSxNQUFULEdBQWtCRixjQUEzQjs7QUFFQSxTQUFLVyxTQUFMLENBQWVULE1BQWY7QUFDRDs7OztzQkFFQ1UsTSxFQUFtQjtBQUFBLHdDQUFSQyxNQUFRO0FBQVJBLGNBQVE7QUFBQTs7QUFDbkIsYUFBTyxLQUFLQyxTQUFMLGNBQWVGLE1BQWYsU0FBMEJDLE1BQTFCLEVBQVA7QUFDRDs7OzhCQUVTRCxNLEVBQW1CO0FBQUEseUNBQVJDLE1BQVE7QUFBUkEsY0FBUTtBQUFBOztBQUMzQixVQUFJWCxTQUFTLEtBQUtBLE1BQWxCOztBQUVBLFVBQUlhLGNBQWMsS0FBS1osWUFBTCxDQUFrQkQsTUFBbEIsQ0FBbEI7QUFDQSxVQUFJLENBQUNhLFlBQVlMLGNBQVosQ0FBMkJFLE1BQTNCLENBQUwsRUFBeUM7QUFDdkNJLGdCQUFRQyxJQUFSLG9CQUE2QkwsTUFBN0IsbUNBQStEVixNQUEvRDtBQUNBLGVBQU9VLE1BQVA7QUFDRDs7QUFFRCxVQUFJTSxtQkFBbUJILFlBQVlILE1BQVosQ0FBdkI7O0FBRUFNLHlCQUFtQkEsaUJBQWlCQyxPQUFqQixDQUF5QixVQUF6QixFQUFxQyxVQUFVQyxLQUFWLEVBQWlCQyxNQUFqQixFQUF5QjtBQUMvRSxlQUFPLE9BQU9SLE9BQU9RLE1BQVAsQ0FBUCxJQUF5QixXQUF6QixHQUNIUixPQUFPUSxNQUFQLENBREcsR0FFSEQsS0FGSjtBQUdELE9BSmtCLENBQW5COztBQU1BLGFBQU9GLGdCQUFQO0FBQ0Q7Ozs4QkFFU2hCLE0sRUFBUTtBQUNoQkEsZUFBU0EsT0FBT29CLFdBQVAsRUFBVDs7QUFFQSxVQUFJLEtBQUtuQixZQUFMLENBQWtCTyxjQUFsQixDQUFpQ1IsTUFBakMsQ0FBSixFQUE4QztBQUM1QyxhQUFLQSxNQUFMLEdBQWNBLE1BQWQ7QUFDRCxPQUZELE1BRU87QUFDTGMsZ0JBQVFDLElBQVIsZUFBd0JmLE1BQXhCLG9DQUE0REYsY0FBNUQ7QUFDQSxhQUFLRSxNQUFMLEdBQWNGLGVBQWVzQixXQUFmLEVBQWQ7QUFDRDtBQUNGOzs7d0NBRW1CcEIsTSxFQUFRQyxZLEVBQWM7QUFDeEMsVUFBSSxDQUFDLEtBQUtBLFlBQUwsQ0FBa0JPLGNBQWxCLENBQWlDUixNQUFqQyxDQUFMLEVBQStDO0FBQzdDLGFBQUtDLFlBQUwsQ0FBa0JELE1BQWxCLElBQTRCQyxZQUE1QjtBQUNELE9BRkQsTUFFTztBQUNMb0IsZUFBT0MsTUFBUCxDQUFjLEtBQUtyQixZQUFMLENBQWtCRCxNQUFsQixDQUFkLEVBQXlDQyxZQUF6QztBQUNEO0FBQ0Y7OzswQ0FFNEI7QUFDM0IsYUFBT3NCLFVBQVVwQixTQUFWLEdBQ0hvQixVQUFVcEIsU0FEUCxHQUVGLENBQUVvQixVQUFVQyxRQUFWLElBQXNCRCxVQUFVRSxZQUFsQyxDQUZMO0FBR0Q7Ozs7OztrQkFyRWtCMUIsVSIsImZpbGUiOiJ0cmFuc2xhdG9yLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEVOIGZyb20gJy4vZW4nO1xuaW1wb3J0IElUIGZyb20gJy4vaXQnO1xuXG5jb25zdCBERUZBVUxUX0xPQ0FMRSA9ICdlbic7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFRyYW5zbGF0b3Ige1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmxvY2FsZSA9IG51bGw7XG4gICAgdGhpcy50cmFuc2xhdGlvbnMgPSB7fTtcblxuICAgIHRoaXMucmVnaXN0ZXJUcmFuc2xhdGlvbignZW4nLCBFTik7XG4gICAgdGhpcy5yZWdpc3RlclRyYW5zbGF0aW9uKCdpdCcsIElUKTtcblxuICAgIGxldCBsb2NhbGUgPSBudWxsO1xuICAgIGxldCBsYW5ndWFnZXMgPSBUcmFuc2xhdG9yLmdldEJyb3dzZXJMYW5ndWFnZXMoKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxhbmd1YWdlcy5sZW5ndGg7IGkrKykge1xuICAgICAgbGV0IGxhbmcgPSBsYW5ndWFnZXNbaV07XG4gICAgICBpZiAodGhpcy50cmFuc2xhdGlvbnMuaGFzT3duUHJvcGVydHkobGFuZykpIHtcbiAgICAgICAgbG9jYWxlID0gbGFuZztcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICAgIGxvY2FsZSA9IGxvY2FsZSA/IGxvY2FsZSA6IERFRkFVTFRfTE9DQUxFO1xuXG4gICAgdGhpcy5zZXRMb2NhbGUobG9jYWxlKTtcbiAgfVxuXG4gIHQocGhyYXNlLCAuLi5wYXJhbXMpIHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUocGhyYXNlLCAuLi5wYXJhbXMpO1xuICB9XG5cbiAgdHJhbnNsYXRlKHBocmFzZSwgLi4ucGFyYW1zKSB7XG4gICAgbGV0IGxvY2FsZSA9IHRoaXMubG9jYWxlO1xuXG4gICAgbGV0IHRyYW5zbGF0aW9uID0gdGhpcy50cmFuc2xhdGlvbnNbbG9jYWxlXTtcbiAgICBpZiAoIXRyYW5zbGF0aW9uLmhhc093blByb3BlcnR5KHBocmFzZSkpIHtcbiAgICAgIGNvbnNvbGUud2FybihgdHJhbnNsYXRpb24gJyR7cGhyYXNlfScgbm90IGZvdW5kIGluIGxhbmd1YWdlICcke2xvY2FsZX0nYCk7XG4gICAgICByZXR1cm4gcGhyYXNlO1xuICAgIH1cblxuICAgIGxldCB0cmFuc2xhdGVkUGhyYXNlID0gdHJhbnNsYXRpb25bcGhyYXNlXTtcblxuICAgIHRyYW5zbGF0ZWRQaHJhc2UgPSB0cmFuc2xhdGVkUGhyYXNlLnJlcGxhY2UoL3soXFxkKyl9L2csIGZ1bmN0aW9uIChtYXRjaCwgbnVtYmVyKSB7XG4gICAgICByZXR1cm4gdHlwZW9mIHBhcmFtc1tudW1iZXJdICE9ICd1bmRlZmluZWQnXG4gICAgICAgID8gcGFyYW1zW251bWJlcl1cbiAgICAgICAgOiBtYXRjaDtcbiAgICB9KTtcblxuICAgIHJldHVybiB0cmFuc2xhdGVkUGhyYXNlO1xuICB9XG5cbiAgc2V0TG9jYWxlKGxvY2FsZSkge1xuICAgIGxvY2FsZSA9IGxvY2FsZS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgaWYgKHRoaXMudHJhbnNsYXRpb25zLmhhc093blByb3BlcnR5KGxvY2FsZSkpIHtcbiAgICAgIHRoaXMubG9jYWxlID0gbG9jYWxlO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLndhcm4oYGxvY2FsZSAnJHtsb2NhbGV9JyBub3QgYXZhaWxhYmxlLCBzd2l0Y2ggdG8gJHtERUZBVUxUX0xPQ0FMRX1gKTtcbiAgICAgIHRoaXMubG9jYWxlID0gREVGQVVMVF9MT0NBTEUudG9Mb3dlckNhc2UoKTtcbiAgICB9XG4gIH1cblxuICByZWdpc3RlclRyYW5zbGF0aW9uKGxvY2FsZSwgdHJhbnNsYXRpb25zKSB7XG4gICAgaWYgKCF0aGlzLnRyYW5zbGF0aW9ucy5oYXNPd25Qcm9wZXJ0eShsb2NhbGUpKSB7XG4gICAgICB0aGlzLnRyYW5zbGF0aW9uc1tsb2NhbGVdID0gdHJhbnNsYXRpb25zO1xuICAgIH0gZWxzZSB7XG4gICAgICBPYmplY3QuYXNzaWduKHRoaXMudHJhbnNsYXRpb25zW2xvY2FsZV0sIHRyYW5zbGF0aW9ucyk7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGdldEJyb3dzZXJMYW5ndWFnZXMoKSB7XG4gICAgcmV0dXJuIG5hdmlnYXRvci5sYW5ndWFnZXNcbiAgICAgID8gbmF2aWdhdG9yLmxhbmd1YWdlc1xuICAgICAgOiAoWyhuYXZpZ2F0b3IubGFuZ3VhZ2UgfHwgbmF2aWdhdG9yLnVzZXJMYW5ndWFnZSldKVxuICB9XG59XG4iXX0=