26 lines
787 B
TypeScript
26 lines
787 B
TypeScript
|
import LanguageDetector from "i18next-browser-languagedetector";
|
||
|
import { defaultLang, languages } from "../../packages/excalidraw";
|
||
|
|
||
|
export const languageDetector = new LanguageDetector();
|
||
|
|
||
|
languageDetector.init({
|
||
|
languageUtils: {},
|
||
|
});
|
||
|
|
||
|
export const getPreferredLanguage = () => {
|
||
|
const detectedLanguages = languageDetector.detect();
|
||
|
|
||
|
const detectedLanguage = Array.isArray(detectedLanguages)
|
||
|
? detectedLanguages[0]
|
||
|
: detectedLanguages;
|
||
|
|
||
|
const initialLanguage =
|
||
|
(detectedLanguage
|
||
|
? // region code may not be defined if user uses generic preferred language
|
||
|
// (e.g. chinese vs instead of chinese-simplified)
|
||
|
languages.find((lang) => lang.code.startsWith(detectedLanguage))?.code
|
||
|
: null) || defaultLang.code;
|
||
|
|
||
|
return initialLanguage;
|
||
|
};
|