jiti-meet/react/features/base/i18n/languageDetector.web.js

48 lines
1.3 KiB
JavaScript
Raw Normal View History

2017-03-01 02:55:12 +00:00
/* @flow */
import BrowserLanguageDetector from 'i18next-browser-languagedetector';
import configLanguageDetector from './configLanguageDetector';
import customNavigatorDetector from './customNavigatorDetector';
2017-03-01 02:55:12 +00:00
declare var interfaceConfig: Object;
/**
* The ordered list (by name) of language detectors to be utilized as backends
* by the singleton language detector for Web.
*
* @type {Array<string>}
*/
const order = [
'querystring',
'localStorage'
2017-03-01 02:55:12 +00:00
];
// Allow i18next to detect the system language reported by the Web browser
// itself.
interfaceConfig.LANG_DETECTION && order.push(customNavigatorDetector.name);
// Default use configured language
order.push(configLanguageDetector.name);
2017-03-01 02:55:12 +00:00
/**
* The singleton language detector for Web.
*/
const languageDetector
= new BrowserLanguageDetector(
/* services */ null,
/* options */ {
caches: [ 'localStorage' ],
lookupLocalStorage: 'language',
lookupQuerystring: 'lang',
order
});
// Add the language detector which looks the language up in the config. Its
// order has already been established above.
languageDetector.addDetector(customNavigatorDetector);
2017-03-01 02:55:12 +00:00
languageDetector.addDetector(configLanguageDetector);
export default languageDetector;