browser-language-detector
Version:
A lightweight cross-browser JavaScript library for detecting browser and user language
1 lines • 11.2 kB
JavaScript
!function(root,factory){"object"==typeof exports&&"object"==typeof module?module.exports=factory():"function"==typeof define&&define.amd?define("BrowserLanguageDetectorCore",[],factory):"object"==typeof exports?exports.BrowserLanguageDetectorCore=factory():root.BrowserLanguageDetectorCore=factory()}(this,function(){return function(modules){function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={i:moduleId,l:!1,exports:{}};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.l=!0,module.exports}var installedModules={};return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.d=function(exports,name,getter){__webpack_require__.o(exports,name)||Object.defineProperty(exports,name,{configurable:!1,enumerable:!0,get:getter})},__webpack_require__.n=function(module){var getter=module&&module.__esModule?function(){return module.default}:function(){return module};return __webpack_require__.d(getter,"a",getter),getter},__webpack_require__.o=function(object,property){return Object.prototype.hasOwnProperty.call(object,property)},__webpack_require__.p="",__webpack_require__(__webpack_require__.s=9)}([function(module,exports,__webpack_require__){"use strict";function _toConsumableArray(arr){if(Array.isArray(arr)){for(var i=0,arr2=Array(arr.length);i<arr.length;i++)arr2[i]=arr[i];return arr2}return Array.from(arr)}Object.defineProperty(exports,"__esModule",{value:!0});var uniq=function(array){return array.reduce(function(a,b){return a.indexOf(b)<0&&a.push(b),a},[])},simplify=function(locale){return locale.replace(/-.*/,"").toLowerCase()},flatten=function(){var _Array$prototype,array=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return(_Array$prototype=Array.prototype).concat.apply(_Array$prototype,_toConsumableArray(array))};exports.uniq=uniq,exports.simplify=simplify,exports.flatten=flatten},function(module,exports,__webpack_require__){"use strict";function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source)Object.prototype.hasOwnProperty.call(source,key)&&(target[key]=source[key])}return target},_createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_utils=__webpack_require__(0),Detector=function(){function Detector(){var options=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return _classCallCheck(this,Detector),this.languages=[],this.data={},this.options=_extends({},this.options,options),this}return _createClass(Detector,[{key:"detect",value:function(){return _extends({},this.data,{languages:(0,_utils.uniq)(this.languages)})}}],[{key:"navigator",value:function(){var window=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return window.navigator||window.clientInformation||{}}}]),Detector}();exports.default=Detector,module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";Array.prototype.map||(Array.prototype.map=function(callback,thisArg){var T,A,k;if(null==this)throw new TypeError(" this is null or not defined");var O=Object(this),len=O.length>>>0;if("function"!=typeof callback)throw new TypeError(callback+" is not a function");for(arguments.length>1&&(T=thisArg),A=Array(len),k=0;k<len;){var kValue,mappedValue;k in O&&(kValue=O[k],mappedValue=callback.call(T,kValue,k,O),A[k]=mappedValue),k++}return A}),Array.prototype.filter||(Array.prototype.filter=function(fun){if(void 0===this||null===this)throw new TypeError;var t=Object(this),len=t.length>>>0;if("function"!=typeof fun)throw new TypeError;for(var res=[],thisArg=arguments.length>=2?arguments[1]:void 0,i=0;i<len;i++)if(i in t){var val=t[i];fun.call(thisArg,val,i,t)&&res.push(val)}return res}),Array.prototype.reduce||(Array.prototype.reduce=function(callback){if(null==this)throw new TypeError("Array.prototype.reduce called on null or undefined");if("function"!=typeof callback)throw new TypeError(callback+" is not a function");var value,t=Object(this),len=t.length>>>0,k=0;if(arguments.length>=2)value=arguments[1];else{for(;k<len&&!(k in t);)k++;if(k>=len)throw new TypeError("Reduce of empty array with no initial value");value=t[k++]}for(;k<len;k++)k in t&&(value=callback(value,t[k],k,t));return value}),Object.assign||Object.defineProperty(Object,"assign",{enumerable:!1,configurable:!0,writable:!0,value:function(target,firstSource){if(void 0===target||null===target)throw new TypeError("Cannot convert first argument to object");for(var to=Object(target),i=1;i<arguments.length;i++){var nextSource=arguments[i];if(void 0!==nextSource&&null!==nextSource)for(var keysArray=Object.keys(Object(nextSource)),nextIndex=0,len=keysArray.length;nextIndex<len;nextIndex++){var nextKey=keysArray[nextIndex],desc=Object.getOwnPropertyDescriptor(nextSource,nextKey);void 0!==desc&&desc.enumerable&&(to[nextKey]=nextSource[nextKey])}}return to}})},function(module,exports,__webpack_require__){"use strict";function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source)Object.prototype.hasOwnProperty.call(source,key)&&(target[key]=source[key])}return target},_createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_utils=__webpack_require__(0),defaultOptions={fallbackLanguage:"en",queryString:"lang",detectors:[]},BrowserLanguageDetector=function(){function BrowserLanguageDetector(){_classCallCheck(this,BrowserLanguageDetector)}return _createClass(BrowserLanguageDetector,null,[{key:"config",value:function(options){return this.options=_extends({},defaultOptions,this.options,options),this.detect()}},{key:"detect",value:function(){var _this=this;this.options||this.config();var detectors=this.options.detectors.map(function(A){return new A(_this.options).detect()});return this.languages=(0,_utils.flatten)(detectors.map(function(a){return a.languages})),this.lang=this.selectPreferredLanguage(this.options.fallbackLanguage,this.languages),this}},{key:"selectPreferredLanguage",value:function(fallbackLanguage){var languages=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];if(!fallbackLanguage)throw Error("fallbackLanguage is not defined");return languages[languages.indexOf(fallbackLanguage)]||fallbackLanguage}}]),BrowserLanguageDetector}();exports.default=BrowserLanguageDetector,module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_get=function get(object,property,receiver){null===object&&(object=Function.prototype);var desc=Object.getOwnPropertyDescriptor(object,property);if(void 0===desc){var parent=Object.getPrototypeOf(object);return null===parent?void 0:get(parent,property,receiver)}if("value"in desc)return desc.value;var getter=desc.get;if(void 0!==getter)return getter.call(receiver)},_Detector2=__webpack_require__(1),_Detector3=function(obj){return obj&&obj.__esModule?obj:{default:obj}}(_Detector2),_utils=__webpack_require__(0),NavigatorDetector=function(_Detector){function NavigatorDetector(){return _classCallCheck(this,NavigatorDetector),_possibleConstructorReturn(this,(NavigatorDetector.__proto__||Object.getPrototypeOf(NavigatorDetector)).apply(this,arguments))}return _inherits(NavigatorDetector,_Detector),_createClass(NavigatorDetector,[{key:"detect",value:function(){var navigator=_Detector3.default.navigator(window);return this.languages=[].concat(navigator.languages,navigator.language,navigator.userLanguage,navigator.browserLanguage,navigator.systemLanguage,this.options.fallbackLanguage).filter(function(language){return language}).map(function(language){return(0,_utils.simplify)(language)}),_get(NavigatorDetector.prototype.__proto__||Object.getPrototypeOf(NavigatorDetector.prototype),"detect",this).call(this)}}]),NavigatorDetector}(_Detector3.default);exports.default=NavigatorDetector,module.exports=exports.default},,,,,function(module,exports,__webpack_require__){__webpack_require__(2),module.exports=__webpack_require__(10)},function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}Object.defineProperty(exports,"__esModule",{value:!0});var _BrowserLanguageDetector=__webpack_require__(3),_BrowserLanguageDetector2=_interopRequireDefault(_BrowserLanguageDetector),_NavigatorDetector=__webpack_require__(4),_NavigatorDetector2=_interopRequireDefault(_NavigatorDetector),detectors=[_NavigatorDetector2.default];exports.default=_BrowserLanguageDetector2.default.config({detectors:detectors}),module.exports=exports.default}])});