언어 환경 설정이있는 웹 사이트가 있습니다. 언어를 변경하기 위해 버튼을 클릭하면 모든 것이 정상적으로 작동합니다. 유일한 문제는 언어를 변경할 때마다 사용자가 다시 홈페이지로 돌아가서 http://localhost/en/ 입니다. 그러나 http://localhost/en/work 또는 http://localhost/en/work/#integrations 페이지가 있습니다. 언어를 전환 할 때 동일한 페이지에 머무르는 방법을 알아낼 수 없습니다. 나는 그것이 쪼개지고 바꾸는 것과 관련이 있다고 생각하지만 확실하지 않습니다. 이것은 내가 지금까지 가지고있는 것이다.if/else 문을 사용하여 window.location.href를 다시 만듭니다.
하단의 큰 if 문은 실패한 시도입니다 (여기에서는 매우 새로운 것입니다). 어떤 제안? 그것을 할 수있는 방법의
languageOptions = ['en', 'zh-cn', 'zh-hk', 'jp-jp', 'ko-kr', 'th-th'];
languageDictionary = {
'en': 'en',
'en-gb': 'en',
'en-us': 'en',
'zh-cn': 'zh-cn',
}
function checkLanguage() {
let lang = localStorage.getItem('lang');
if (!lang) {
lang = navigator.language.toLocaleLowerCase();
}
if (lang) {
let userLang = languageDictionary[lang];
let urlLang = window.location.pathname.split('/')[1];
if (languageOptions.indexOf(urlLang) !== -1 && urlLang !== userLang) {
changeLanguage(userLang);
}
}
};
checkLanguage();
function changeLanguage(lang) {
if (languageOptions.indexOf(lang) === -1) {
return;
}
localStorage.setItem('lang', lang);
window.location.href = '/' + lang;
}
if (window.location.hash) {
window.location.split('/')[1];
window.location.replace[1](lang);
window.location.href = '/' + lang + hash;
}
를 "http://localhost/newLang/work/#integrations '를 반환
서버 측 문제 – charlietfl
'window.location.href ='/ '+ LANG 같은데,'changeLanguage'()에서 '/ 갱신 기존 apending되지 않습니다 URL, 단지'/ en' (또는 어느 언어 든)이되도록 겹쳐 쓰고 있습니다. – nnnnnn