react-planner-viewer
Version:
react-planner-viewer is a React Component for view plans builded with react-planner in 2D mode
98 lines (80 loc) • 9.05 kB
JavaScript
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; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
import EN from './en';
import IT from './it';
var DEFAULT_LOCALE = 'en';
var Translator = function () {
function Translator() {
_classCallCheck(this, Translator);
this.locale = null;
this.translations = {};
this.registerTranslation('en', EN);
this.registerTranslation('it', IT);
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;
}();
export default Translator;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90cmFuc2xhdG9yL3RyYW5zbGF0b3IuanMiXSwibmFtZXMiOlsiRU4iLCJJVCIsIkRFRkFVTFRfTE9DQUxFIiwiVHJhbnNsYXRvciIsImxvY2FsZSIsInRyYW5zbGF0aW9ucyIsInJlZ2lzdGVyVHJhbnNsYXRpb24iLCJsYW5ndWFnZXMiLCJnZXRCcm93c2VyTGFuZ3VhZ2VzIiwiaSIsImxlbmd0aCIsImxhbmciLCJoYXNPd25Qcm9wZXJ0eSIsInNldExvY2FsZSIsInBocmFzZSIsInBhcmFtcyIsInRyYW5zbGF0ZSIsInRyYW5zbGF0aW9uIiwiY29uc29sZSIsIndhcm4iLCJ0cmFuc2xhdGVkUGhyYXNlIiwicmVwbGFjZSIsIm1hdGNoIiwibnVtYmVyIiwidG9Mb3dlckNhc2UiLCJPYmplY3QiLCJhc3NpZ24iLCJuYXZpZ2F0b3IiLCJsYW5ndWFnZSIsInVzZXJMYW5ndWFnZSJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU9BLEVBQVAsTUFBZSxNQUFmO0FBQ0EsT0FBT0MsRUFBUCxNQUFlLE1BQWY7O0FBRUEsSUFBTUMsaUJBQWlCLElBQXZCOztJQUVxQkMsVTtBQUNuQix3QkFBYztBQUFBOztBQUNaLFNBQUtDLE1BQUwsR0FBYyxJQUFkO0FBQ0EsU0FBS0MsWUFBTCxHQUFvQixFQUFwQjs7QUFFQSxTQUFLQyxtQkFBTCxDQUF5QixJQUF6QixFQUErQk4sRUFBL0I7QUFDQSxTQUFLTSxtQkFBTCxDQUF5QixJQUF6QixFQUErQkwsRUFBL0I7O0FBRUEsUUFBSUcsU0FBUyxJQUFiO0FBQ0EsUUFBSUcsWUFBWUosV0FBV0ssbUJBQVgsRUFBaEI7QUFDQSxTQUFLLElBQUlDLElBQUksQ0FBYixFQUFnQkEsSUFBSUYsVUFBVUcsTUFBOUIsRUFBc0NELEdBQXRDLEVBQTJDO0FBQ3pDLFVBQUlFLE9BQU9KLFVBQVVFLENBQVYsQ0FBWDtBQUNBLFVBQUksS0FBS0osWUFBTCxDQUFrQk8sY0FBbEIsQ0FBaUNELElBQWpDLENBQUosRUFBNEM7QUFDMUNQLGlCQUFTTyxJQUFUO0FBQ0E7QUFDRDtBQUNGO0FBQ0RQLGFBQVNBLFNBQVNBLE1BQVQsR0FBa0JGLGNBQTNCOztBQUVBLFNBQUtXLFNBQUwsQ0FBZVQsTUFBZjtBQUNEOzs7O3NCQUVDVSxNLEVBQW1CO0FBQUEsd0NBQVJDLE1BQVE7QUFBUkEsY0FBUTtBQUFBOztBQUNuQixhQUFPLEtBQUtDLFNBQUwsY0FBZUYsTUFBZixTQUEwQkMsTUFBMUIsRUFBUDtBQUNEOzs7OEJBRVNELE0sRUFBbUI7QUFBQSx5Q0FBUkMsTUFBUTtBQUFSQSxjQUFRO0FBQUE7O0FBQzNCLFVBQUlYLFNBQVMsS0FBS0EsTUFBbEI7O0FBRUEsVUFBSWEsY0FBYyxLQUFLWixZQUFMLENBQWtCRCxNQUFsQixDQUFsQjtBQUNBLFVBQUksQ0FBQ2EsWUFBWUwsY0FBWixDQUEyQkUsTUFBM0IsQ0FBTCxFQUF5QztBQUN2Q0ksZ0JBQVFDLElBQVIsb0JBQTZCTCxNQUE3QixtQ0FBK0RWLE1BQS9EO0FBQ0EsZUFBT1UsTUFBUDtBQUNEOztBQUVELFVBQUlNLG1CQUFtQkgsWUFBWUgsTUFBWixDQUF2Qjs7QUFFQU0seUJBQW1CQSxpQkFBaUJDLE9BQWpCLENBQXlCLFVBQXpCLEVBQXFDLFVBQVVDLEtBQVYsRUFBaUJDLE1BQWpCLEVBQXlCO0FBQy9FLGVBQU8sT0FBT1IsT0FBT1EsTUFBUCxDQUFQLElBQXlCLFdBQXpCLEdBQ0hSLE9BQU9RLE1BQVAsQ0FERyxHQUVIRCxLQUZKO0FBR0QsT0FKa0IsQ0FBbkI7O0FBTUEsYUFBT0YsZ0JBQVA7QUFDRDs7OzhCQUVTaEIsTSxFQUFRO0FBQ2hCQSxlQUFTQSxPQUFPb0IsV0FBUCxFQUFUOztBQUVBLFVBQUksS0FBS25CLFlBQUwsQ0FBa0JPLGNBQWxCLENBQWlDUixNQUFqQyxDQUFKLEVBQThDO0FBQzVDLGFBQUtBLE1BQUwsR0FBY0EsTUFBZDtBQUNELE9BRkQsTUFFTztBQUNMYyxnQkFBUUMsSUFBUixlQUF3QmYsTUFBeEIsb0NBQTRERixjQUE1RDtBQUNBLGFBQUtFLE1BQUwsR0FBY0YsZUFBZXNCLFdBQWYsRUFBZDtBQUNEO0FBQ0Y7Ozt3Q0FFbUJwQixNLEVBQVFDLFksRUFBYztBQUN4QyxVQUFJLENBQUMsS0FBS0EsWUFBTCxDQUFrQk8sY0FBbEIsQ0FBaUNSLE1BQWpDLENBQUwsRUFBK0M7QUFDN0MsYUFBS0MsWUFBTCxDQUFrQkQsTUFBbEIsSUFBNEJDLFlBQTVCO0FBQ0QsT0FGRCxNQUVPO0FBQ0xvQixlQUFPQyxNQUFQLENBQWMsS0FBS3JCLFlBQUwsQ0FBa0JELE1BQWxCLENBQWQsRUFBeUNDLFlBQXpDO0FBQ0Q7QUFDRjs7OzBDQUU0QjtBQUMzQixhQUFPc0IsVUFBVXBCLFNBQVYsR0FDSG9CLFVBQVVwQixTQURQLEdBRUYsQ0FBRW9CLFVBQVVDLFFBQVYsSUFBc0JELFVBQVVFLFlBQWxDLENBRkw7QUFHRDs7Ozs7O2VBckVrQjFCLFUiLCJmaWxlIjoidHJhbnNsYXRvci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBFTiBmcm9tICcuL2VuJztcbmltcG9ydCBJVCBmcm9tICcuL2l0JztcblxuY29uc3QgREVGQVVMVF9MT0NBTEUgPSAnZW4nO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBUcmFuc2xhdG9yIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5sb2NhbGUgPSBudWxsO1xuICAgIHRoaXMudHJhbnNsYXRpb25zID0ge307XG5cbiAgICB0aGlzLnJlZ2lzdGVyVHJhbnNsYXRpb24oJ2VuJywgRU4pO1xuICAgIHRoaXMucmVnaXN0ZXJUcmFuc2xhdGlvbignaXQnLCBJVCk7XG5cbiAgICBsZXQgbG9jYWxlID0gbnVsbDtcbiAgICBsZXQgbGFuZ3VhZ2VzID0gVHJhbnNsYXRvci5nZXRCcm93c2VyTGFuZ3VhZ2VzKCk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsYW5ndWFnZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGxldCBsYW5nID0gbGFuZ3VhZ2VzW2ldO1xuICAgICAgaWYgKHRoaXMudHJhbnNsYXRpb25zLmhhc093blByb3BlcnR5KGxhbmcpKSB7XG4gICAgICAgIGxvY2FsZSA9IGxhbmc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICBsb2NhbGUgPSBsb2NhbGUgPyBsb2NhbGUgOiBERUZBVUxUX0xPQ0FMRTtcblxuICAgIHRoaXMuc2V0TG9jYWxlKGxvY2FsZSk7XG4gIH1cblxuICB0KHBocmFzZSwgLi4ucGFyYW1zKSB7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlKHBocmFzZSwgLi4ucGFyYW1zKTtcbiAgfVxuXG4gIHRyYW5zbGF0ZShwaHJhc2UsIC4uLnBhcmFtcykge1xuICAgIGxldCBsb2NhbGUgPSB0aGlzLmxvY2FsZTtcblxuICAgIGxldCB0cmFuc2xhdGlvbiA9IHRoaXMudHJhbnNsYXRpb25zW2xvY2FsZV07XG4gICAgaWYgKCF0cmFuc2xhdGlvbi5oYXNPd25Qcm9wZXJ0eShwaHJhc2UpKSB7XG4gICAgICBjb25zb2xlLndhcm4oYHRyYW5zbGF0aW9uICcke3BocmFzZX0nIG5vdCBmb3VuZCBpbiBsYW5ndWFnZSAnJHtsb2NhbGV9J2ApO1xuICAgICAgcmV0dXJuIHBocmFzZTtcbiAgICB9XG5cbiAgICBsZXQgdHJhbnNsYXRlZFBocmFzZSA9IHRyYW5zbGF0aW9uW3BocmFzZV07XG5cbiAgICB0cmFuc2xhdGVkUGhyYXNlID0gdHJhbnNsYXRlZFBocmFzZS5yZXBsYWNlKC97KFxcZCspfS9nLCBmdW5jdGlvbiAobWF0Y2gsIG51bWJlcikge1xuICAgICAgcmV0dXJuIHR5cGVvZiBwYXJhbXNbbnVtYmVyXSAhPSAndW5kZWZpbmVkJ1xuICAgICAgICA/IHBhcmFtc1tudW1iZXJdXG4gICAgICAgIDogbWF0Y2g7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gdHJhbnNsYXRlZFBocmFzZTtcbiAgfVxuXG4gIHNldExvY2FsZShsb2NhbGUpIHtcbiAgICBsb2NhbGUgPSBsb2NhbGUudG9Mb3dlckNhc2UoKTtcblxuICAgIGlmICh0aGlzLnRyYW5zbGF0aW9ucy5oYXNPd25Qcm9wZXJ0eShsb2NhbGUpKSB7XG4gICAgICB0aGlzLmxvY2FsZSA9IGxvY2FsZTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS53YXJuKGBsb2NhbGUgJyR7bG9jYWxlfScgbm90IGF2YWlsYWJsZSwgc3dpdGNoIHRvICR7REVGQVVMVF9MT0NBTEV9YCk7XG4gICAgICB0aGlzLmxvY2FsZSA9IERFRkFVTFRfTE9DQUxFLnRvTG93ZXJDYXNlKCk7XG4gICAgfVxuICB9XG5cbiAgcmVnaXN0ZXJUcmFuc2xhdGlvbihsb2NhbGUsIHRyYW5zbGF0aW9ucykge1xuICAgIGlmICghdGhpcy50cmFuc2xhdGlvbnMuaGFzT3duUHJvcGVydHkobG9jYWxlKSkge1xuICAgICAgdGhpcy50cmFuc2xhdGlvbnNbbG9jYWxlXSA9IHRyYW5zbGF0aW9ucztcbiAgICB9IGVsc2Uge1xuICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLnRyYW5zbGF0aW9uc1tsb2NhbGVdLCB0cmFuc2xhdGlvbnMpO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBnZXRCcm93c2VyTGFuZ3VhZ2VzKCkge1xuICAgIHJldHVybiBuYXZpZ2F0b3IubGFuZ3VhZ2VzXG4gICAgICA/IG5hdmlnYXRvci5sYW5ndWFnZXNcbiAgICAgIDogKFsobmF2aWdhdG9yLmxhbmd1YWdlIHx8IG5hdmlnYXRvci51c2VyTGFuZ3VhZ2UpXSlcbiAgfVxufVxuIl19