mirror of
https://github.com/tapframe/NuvioStreaming.git
synced 2026-03-11 17:45:38 +00:00
38 lines
No EOL
1.1 KiB
TypeScript
38 lines
No EOL
1.1 KiB
TypeScript
import { getLocales } from 'expo-localization';
|
|
import { LanguageDetectorAsyncModule } from 'i18next';
|
|
import { mmkvStorage } from '../services/mmkvStorage';
|
|
|
|
const languageDetector: LanguageDetectorAsyncModule = {
|
|
type: "languageDetector",
|
|
async: true,
|
|
detect: (callback: (lng: string | undefined) => void): void => {
|
|
const findLanguage = async () => {
|
|
try {
|
|
const savedLanguage = await mmkvStorage.getItem("user_language");
|
|
if (savedLanguage) {
|
|
callback(savedLanguage);
|
|
return;
|
|
}
|
|
|
|
const locales = getLocales();
|
|
if (!locales || locales.length === 0) {
|
|
callback("en");
|
|
return;
|
|
}
|
|
|
|
const bestTag = locales[0].languageTag;
|
|
callback(bestTag);
|
|
} catch (error) {
|
|
console.error("[LangDetector(TEST)] Failed to detect language:", error);
|
|
callback("en");
|
|
}
|
|
};
|
|
findLanguage();
|
|
},
|
|
init: () => {},
|
|
cacheUserLanguage: (language: string) => {
|
|
mmkvStorage.setItem("user_language", language);
|
|
},
|
|
};
|
|
|
|
export default languageDetector; |