Yes
This commit is contained in:
@@ -1,6 +1,26 @@
|
|||||||
|
|
||||||
// Текущий язык (по умолчанию русский)
|
// Функция для автоопределения языка браузера
|
||||||
let currentLanguage = localStorage.getItem('language') || 'ru';
|
function detectBrowserLanguage() {
|
||||||
|
// Получаем список предпочитаемых языков пользователя
|
||||||
|
const browserLanguages = navigator.languages || [navigator.language || navigator.userLanguage];
|
||||||
|
|
||||||
|
// Доступные языки в приложении
|
||||||
|
const availableLanguages = Object.keys(translations);
|
||||||
|
|
||||||
|
// Ищем точное совпадение (например, 'ru' или 'en')
|
||||||
|
for (let browserLang of browserLanguages) {
|
||||||
|
const langCode = browserLang.split('-')[0].toLowerCase(); // берем только код языка без региона
|
||||||
|
if (availableLanguages.includes(langCode)) {
|
||||||
|
return langCode;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Если точного совпадения нет, возвращаем русский по умолчанию
|
||||||
|
return 'en';
|
||||||
|
}
|
||||||
|
|
||||||
|
// Текущий язык (автоопределение при первом посещении, иначе из localStorage)
|
||||||
|
let currentLanguage = localStorage.getItem('language') || detectBrowserLanguage();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -15,6 +35,9 @@ function updateLanguage(lang) {
|
|||||||
document.getElementById('downloadBtn').textContent = t.downloadBtn;
|
document.getElementById('downloadBtn').textContent = t.downloadBtn;
|
||||||
document.getElementById('betaNotice').textContent = t.betaNotice;
|
document.getElementById('betaNotice').textContent = t.betaNotice;
|
||||||
|
|
||||||
|
// Обновить lang атрибут HTML документа
|
||||||
|
document.documentElement.lang = lang;
|
||||||
|
|
||||||
// Сохранить выбранный язык
|
// Сохранить выбранный язык
|
||||||
localStorage.setItem('language', lang);
|
localStorage.setItem('language', lang);
|
||||||
currentLanguage = lang;
|
currentLanguage = lang;
|
||||||
@@ -76,7 +99,7 @@ document.addEventListener('DOMContentLoaded', function () {
|
|||||||
// Инициализировать переключатель языка
|
// Инициализировать переключатель языка
|
||||||
initLanguageSelector();
|
initLanguageSelector();
|
||||||
|
|
||||||
// Применить сохраненный язык
|
// Применить автоопределенный или сохраненный язык
|
||||||
updateLanguage(currentLanguage);
|
updateLanguage(currentLanguage);
|
||||||
|
|
||||||
// Установить ссылку для скачивания
|
// Установить ссылку для скачивания
|
||||||
@@ -137,4 +160,9 @@ function getCurrentLanguage() {
|
|||||||
// Функция для получения всех доступных языков
|
// Функция для получения всех доступных языков
|
||||||
function getAvailableLanguages() {
|
function getAvailableLanguages() {
|
||||||
return Object.keys(translations);
|
return Object.keys(translations);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Функция для получения автоопределенного языка браузера (экспорт для внешнего использования)
|
||||||
|
function getBrowserLanguage() {
|
||||||
|
return detectBrowserLanguage();
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user