snapshot of https://github.com/jitsi/jitsi-meet.git @ fd1749dd28f4138aa80234fc7f311b19aaffa0e7 (2026-09-15)
This commit is contained in:
43
react/features/base/i18n/languageDetector.native.ts
Normal file
43
react/features/base/i18n/languageDetector.native.ts
Normal file
@@ -0,0 +1,43 @@
|
||||
import { NativeModules } from 'react-native';
|
||||
|
||||
import LANGUAGES_RESOURCES from '../../../../lang/languages.json';
|
||||
|
||||
const LANGUAGES = Object.keys(LANGUAGES_RESOURCES);
|
||||
|
||||
/**
|
||||
* The singleton language detector for React Native which uses the system-wide
|
||||
* locale.
|
||||
*/
|
||||
export default {
|
||||
/**
|
||||
* Does not support caching.
|
||||
*
|
||||
* @returns {void}
|
||||
*/
|
||||
cacheUserLanguage: Function.prototype,
|
||||
|
||||
detect() {
|
||||
const { LocaleDetector } = NativeModules;
|
||||
const parts = LocaleDetector.locale.replace(/_/, '-').split('-');
|
||||
const [ lang, regionOrScript, region ] = parts;
|
||||
let locale;
|
||||
|
||||
if (parts.length >= 3) {
|
||||
locale = `${lang}-${region}`;
|
||||
} else if (parts.length === 2) {
|
||||
locale = `${lang}-${regionOrScript}`;
|
||||
} else {
|
||||
locale = lang;
|
||||
}
|
||||
|
||||
if (LANGUAGES.includes(locale)) {
|
||||
return locale;
|
||||
}
|
||||
|
||||
return lang;
|
||||
},
|
||||
|
||||
init: Function.prototype,
|
||||
|
||||
type: 'languageDetector'
|
||||
};
|
||||
Reference in New Issue
Block a user