Чтобы доработать ваш код так, чтобы при переходах между страницами к параметру `?lang=` добавлялся язык, выбранный пользователем, нужно сначала сохранить выбор пользователя и обновить URL при навигации. Я предложу обновления, которые нужно внести в ваш код, чтобы это работало.
Вот обновленный код на основе вашего исходного кода:
```javascript
const googleTranslateConfig = {
lang: "", // Оригинальный язык
langFirstVisit: 'ru', // Язык, на который переводим при первом посещении
};
function updateURL(lang) {
const urlParams = new URLSearchParams(window.location.search);
urlParams.set('lang', lang);
const newUrl = window.location.pathname + '?' + urlParams.toString();
window.history.replaceState({}, '', newUrl);
}
function TranslateCookieHandler(lang) {
// Это ваш существующий код для обработки куки
// Не забудьте реализовать логику, которая устанавливает куку с выбранным языком
}
function TranslateGetCode() {
// Это ваш существующий код для получения кода языка
}
function TranslateInit() {
const urlParams = new URLSearchParams(window.location.search);
const langFromURL = urlParams.get('lang');
// Устанавливаем язык по умолчанию, если параметр отсутствует и куки не установлены
if (!langFromURL && !Cookies.get('googtrans')) {
TranslateCookieHandler("/auto/" + googleTranslateConfig.langFirstVisit);
updateURL(googleTranslateConfig.langFirstVisit);
console.log("Установлен язык по умолчанию:", googleTranslateConfig.langFirstVisit);
} else if (langFromURL) {
TranslateCookieHandler("/auto/" + langFromURL);
console.log("Язык установлен из URL:", langFromURL);
}
let code = TranslateGetCode();
const langElement = document.querySelector(`[data-google-lang="${code}"]`);
// Добавить событие для переключения языка
const languageButtons = document.querySelectorAll('.language-button'); // Замените на ваш селектор для кнопок языка
languageButtons.forEach(button => {
button.addEventListener('click', function () {
const selectedLang = this.dataset.lang; // Предположим, что языковые кнопки имеют атрибут data-lang
TranslateCookieHandler("/auto/" + selectedLang);
updateURL(selectedLang); // Обновляем URL с выбранным языком
console.log("Язык изменён на:", selectedLang);
});
});
}
// Вызов функции инициализации при загрузке страницы
TranslateInit();
```
### Объяснение изменений:
1. **Функция `updateURL(lang)`**: Она обновляет адресную строку, добавляя или изменяя параметр `lang` в URL.
2. **Сохранение выбора языка**: Теперь после того, как пользователь выбирает язык, соответствующий параметр автоматически обновляется в адресной строке.
3. **Обработчик событий для кнопок языка**: Добавлена логика для того, чтобы обработать нажатия на кнопки для переключения языка. Убедитесь, что кнопки языка имеют атрибут `data-lang` с их соответствующими значениями.
### Как это использовать:
- Не забудьте адаптировать селектор `'.language-button'` к вашим кнопкам выбора языка, а также убедитесь, что они имеют атрибут `data-lang` с правильными значениями языков.
- Код автоматически будет устанавливать язык из URL или куков при загрузке страницы, и обновлять URL при переключении языка пользователем.