import type { LanguageDetectorMiddleware } from '@jiotranslate/core-beta'; import { throwIfSSR } from './tools/isSSR'; import { JioTranslatePlugin } from '@jiotranslate/core-beta'; export function createLanguageDetector(): LanguageDetectorMiddleware { return { getLanguage({ availableLanguages }) { throwIfSSR('LanguageDetector'); const preferred = window.navigator.language; const exactMatch = availableLanguages.find((l) => l === preferred); if (exactMatch) { return exactMatch; } const getTwoLetters = (fullTag: string) => fullTag.replace(/^(.+?)(-.*)?$/, '$1'); const preferredTwoLetter = getTwoLetters(window.navigator.language); const twoLetterMatch = availableLanguages.find( (l) => getTwoLetters(l) === preferredTwoLetter ); if (twoLetterMatch) { return twoLetterMatch; } return undefined; }, }; } export const LanguageDetector = (): JioTranslatePlugin => (jioTranslate, tools) => { tools.setLanguageDetector(createLanguageDetector()); return jioTranslate; };