PDA

Просмотр полной версии : мультиязычность сайта через дублирование.


sweet candy
30.01.2024, 00:10
есть папка по пути

путь:






Desktop\project\name_project




которая является корнем проекта сайта

сказали сделать перевод сайта английский-русский через дублирование, продублировать нужные файлы в папку /ru которая по пути лежит

путь:






Desktop\project\name_project/ru




вроде бы подключил все как надо, но ничего не фурычило от слова совсем, решил прибегнуть к чату гпт, 2 часа бестолку)

файл для русской версии (header.html)

HTML:







МЕНЮ

услуги

о нас

портфолио

контакты

EN

/

RU





для английской

HTML:







MENU

услуги

о нас

портфолио

контакты

EN

/

RU





при нажатии на RU просто перезагружается страница и кидает на ссылку http://localhost:3333/?lang=ru (https://www.blast.hk/redirect/aHR0cDovL2xvY2FsaG9zdDozMzMzLz9sYW5nPXJ1) и так-же обратно только http://localhost:3333/?lang=en (https://www.blast.hk/redirect/aHR0cDovL2xvY2FsaG9zdDozMzMzLz9sYW5nPWVu), переключатель возвращается в активную форму на EN)

в чем проблема?

languageswitcher.js:






document
.
addEventListener
(
'DOMContentLoaded'
,
function
(
)
{
const
englishLink
=
document
.
getElementById
(
'englishLink'
)
;
const
russianLink
=
document
.
getElementById
(
'russianLink'
)
;
const
languageSeparator
=
document
.
getElementById
(
'languageSeparator'
)
;
function
switchLanguage
(
language
)
{
console
.
log
(
`Switching to${language}`
)
;
const
currentPath
=
window
.
location
.
pathname
;
const
params
=
new
URLSearchParams
(
window
.
location
.
search
)
;
const
currentLang
=
params
.
get
(
'lang'
)
||
'en'
;
if
(
language
!==
currentLang
)
{
params
.
set
(
'lang'
,
language
)
;
const
newPath
=
`${currentPath}?${params.toString()}`
;
console
.
log
(
`New path:${newPath}`
)
;
window
.
location
.
href
=
newPath
;
}
}
englishLink
.
addEventListener
(
'click'
,
function
(
event
)
{
event
.
preventDefault
(
)
;
switchLanguage
(
'en'
)
;
}
)
;
russianLink
.
addEventListener
(
'click'
,
function
(
event
)
{
event
.
preventDefault
(
)
;
switchLanguage
(
'ru'
)
;
}
)
;
// Проверяем язык при загрузке страницы
const
params
=
new
URLSearchParams
(
window
.
location
.
search
)
;
const
currentLang
=
params
.
get
(
'lang'
)
||
'en'
;
console
.
log
(
`Current language:${currentLang}`
)
;
// Если язык в параметрах запроса не соответствует текущему языку, переключаем язык
if
(
currentLang
===
'ru'
)
{
switchLanguage
(
'ru'
)
;
}
}
)
;

PaddingtonBaby
30.01.2024, 20:35
Вы хотите, чтобы менялся язык, но при этом обе версии на русском?.. Не совсем понимаю, в чем проблема? В переключателе или обработке события? А что делает Ваш JS код, анализировали? 🙃

+ https://qna.habr.com/q/1001843 (https://www.blast.hk/redirect/aHR0cHM6Ly9xbmEuaGFici5jb20vcS8xMDAxODQz)

+ https://ru.stackoverflow.com/questions/542767/Мультиязычность-с-javascript-на-всех-страницах-сайта (https://www.blast.hk/redirect/aHR0cHM6Ly9ydS5zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbn MvNTQyNzY3LyVEMCU5QyVEMSU4MyVEMCVCQiVEMSU4QyVEMSU4 MiVEMCVCOCVEMSU4RiVEMCVCNyVEMSU4QiVEMSU4NyVEMCVCRC VEMCVCRSVEMSU4MSVEMSU4MiVEMSU4Qy0lRDElODEtamF2YXNj cmlwdC0lRDAlQkQlRDAlQjAtJUQwJUIyJUQxJTgxJUQwJUI1JU QxJTg1LSVEMSU4MSVEMSU4MiVEMSU4MCVEMCVCMCVEMCVCRCVE MCVCOCVEMSU4NiVEMCVCMCVEMSU4NS0lRDElODElRDAlQjAlRD AlQjklRDElODIlRDAlQjA)