perf: language selecting logic

This commit is contained in:
Junyan Qin
2025-06-06 21:27:08 +08:00
parent 9a71edfeb0
commit 20dc8fb5ab
2 changed files with 50 additions and 20 deletions
+24 -11
View File
@@ -61,19 +61,32 @@ export default function Login() {
}, []); }, []);
const judgeLanguage = () => { const judgeLanguage = () => {
// here's for user have never set the language if (i18n.language === 'zh-CN' || i18n.language === 'zh-Hans') {
// judge the language by the browser setCurrentLanguage('zh-Hans');
const language = navigator.language; localStorage.setItem('langbot_language', 'zh-Hans');
if (language) { } else {
let lang = 'zh-Hans'; setCurrentLanguage('en-US');
if (language === 'zh-CN') { localStorage.setItem('langbot_language', 'en-US');
lang = 'zh-Hans'; }
} else { // check if the language is already set
lang = 'en-US'; const lang = localStorage.getItem('langbot_language');
} if (lang) {
i18n.changeLanguage(lang); i18n.changeLanguage(lang);
setCurrentLanguage(lang); setCurrentLanguage(lang);
localStorage.setItem('langbot_language', lang); return;
} else {
const language = navigator.language;
if (language) {
let lang = 'zh-Hans';
if (language === 'zh-CN') {
lang = 'zh-Hans';
} else {
lang = 'en-US';
}
i18n.changeLanguage(lang);
setCurrentLanguage(lang);
localStorage.setItem('langbot_language', lang);
}
} }
}; };
+26 -9
View File
@@ -60,21 +60,38 @@ export default function Register() {
}, []); }, []);
const judgeLanguage = () => { const judgeLanguage = () => {
const language = navigator.language; if (i18n.language === 'zh-CN' || i18n.language === 'zh-Hans') {
if (language) { setCurrentLanguage('zh-Hans');
let lang = 'zh-Hans'; localStorage.setItem('langbot_language', 'zh-Hans');
if (language === 'zh-CN') { } else {
lang = 'zh-Hans'; setCurrentLanguage('en-US');
} else { localStorage.setItem('langbot_language', 'en-US');
lang = 'en-US'; }
} // check if the language is already set
const lang = localStorage.getItem('langbot_language');
console.log('lang: ', lang);
if (lang) {
i18n.changeLanguage(lang); i18n.changeLanguage(lang);
setCurrentLanguage(lang); setCurrentLanguage(lang);
localStorage.setItem('langbot_language', lang); } else {
const language = navigator.language;
if (language) {
let lang = 'zh-Hans';
if (language === 'zh-CN') {
lang = 'zh-Hans';
} else {
lang = 'en-US';
}
console.log('language: ', lang);
i18n.changeLanguage(lang);
setCurrentLanguage(lang);
localStorage.setItem('langbot_language', lang);
}
} }
}; };
const handleLanguageChange = (value: string) => { const handleLanguageChange = (value: string) => {
console.log('handleLanguageChange: ', value);
i18n.changeLanguage(value); i18n.changeLanguage(value);
setCurrentLanguage(value); setCurrentLanguage(value);
localStorage.setItem('langbot_language', value); localStorage.setItem('langbot_language', value);