UNPKG

react-planner

Version:

react-planner is a React Component for plans design. Draw a 2D floorplan and navigate it in 3D mode.

99 lines (81 loc) 3.44 kB
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'; import RU from './ru'; 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); this.registerTranslation('ru', RU); 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;