language-detector.ts 784 B

12345678910111213141516171819202122232425
  1. import LanguageDetector from "i18next-browser-languagedetector";
  2. import { defaultLang, languages } from "@excalidraw/excalidraw";
  3. export const languageDetector = new LanguageDetector();
  4. languageDetector.init({
  5. languageUtils: {},
  6. });
  7. export const getPreferredLanguage = () => {
  8. const detectedLanguages = languageDetector.detect();
  9. const detectedLanguage = Array.isArray(detectedLanguages)
  10. ? detectedLanguages[0]
  11. : detectedLanguages;
  12. const initialLanguage =
  13. (detectedLanguage
  14. ? // region code may not be defined if user uses generic preferred language
  15. // (e.g. chinese vs instead of chinese-simplified)
  16. languages.find((lang) => lang.code.startsWith(detectedLanguage))?.code
  17. : null) || defaultLang.code;
  18. return initialLanguage;
  19. };