mirror of
https://github.com/tapframe/NuvioStreaming.git
synced 2026-03-11 09:35:42 +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';
|
||||
|
||||
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;
|
||||
}
|
||||
} catch (error) {
|
||||
console.log('Error reading language from storage', error);
|
||||
}
|
||||
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();
|
||||
const languageCode = locales[0]?.languageCode ?? 'en';
|
||||
callback(languageCode);
|
||||
};
|
||||
findLanguage();
|
||||
},
|
||||
init: () => { },
|
||||
cacheUserLanguage: (language: string) => {
|
||||
mmkvStorage.setItem('user_language', language);
|
||||
},
|
||||
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;
|
||||
export default languageDetector;
|
||||
Loading…
Reference in a new issue