ANTICHAT

ANTICHAT (https://forum.antichat.xyz/index.php)
-   PHP (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   мультиязычность сайта через дублирование. (https://forum.antichat.xyz/showthread.php?t=1501978)

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 и так-же обратно только http://localhost:3333/?lang=en, переключатель возвращается в активную форму на 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://ru.stackoverflow.com/questions/542767/Мультиязычность-с-javascript-на-всех-страницах-сайта


Время: 06:25