mirror of
https://github.com/tapframe/NuvioStreaming.git
synced 2026-03-11 17:45:38 +00:00
Merge pull request #588 from saimuelbr/improve-language-detector
fix(i18n): use languageTag to detect region and select the correct language
This commit is contained in:
commit
911730770b
1 changed files with 30 additions and 24 deletions
|
|
@ -3,30 +3,36 @@ import { LanguageDetectorAsyncModule } from 'i18next';
|
||||||
import { mmkvStorage } from '../services/mmkvStorage';
|
import { mmkvStorage } from '../services/mmkvStorage';
|
||||||
|
|
||||||
const languageDetector: LanguageDetectorAsyncModule = {
|
const languageDetector: LanguageDetectorAsyncModule = {
|
||||||
type: 'languageDetector',
|
type: "languageDetector",
|
||||||
async: true,
|
async: true,
|
||||||
detect: (callback: (lng: string | undefined) => void): void => {
|
detect: (callback: (lng: string | undefined) => void): void => {
|
||||||
const findLanguage = async () => {
|
const findLanguage = async () => {
|
||||||
try {
|
try {
|
||||||
const savedLanguage = await mmkvStorage.getItem('user_language');
|
const savedLanguage = await mmkvStorage.getItem("user_language");
|
||||||
if (savedLanguage) {
|
if (savedLanguage) {
|
||||||
callback(savedLanguage);
|
callback(savedLanguage);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
} catch (error) {
|
|
||||||
console.log('Error reading language from storage', error);
|
|
||||||
}
|
|
||||||
|
|
||||||
const locales = getLocales();
|
const locales = getLocales();
|
||||||
const languageCode = locales[0]?.languageCode ?? 'en';
|
if (!locales || locales.length === 0) {
|
||||||
callback(languageCode);
|
callback("en");
|
||||||
};
|
return;
|
||||||
findLanguage();
|
}
|
||||||
},
|
|
||||||
init: () => { },
|
const bestTag = locales[0].languageTag;
|
||||||
cacheUserLanguage: (language: string) => {
|
callback(bestTag);
|
||||||
mmkvStorage.setItem('user_language', language);
|
} 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;
|
export default languageDetector;
|
||||||
Loading…
Reference in a new issue