diff --git a/src/js/main.js b/src/js/main.js index 5a06e0e..8d425c7 100644 --- a/src/js/main.js +++ b/src/js/main.js @@ -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('betaNotice').textContent = t.betaNotice; + // Обновить lang атрибут HTML документа + document.documentElement.lang = lang; + // Сохранить выбранный язык localStorage.setItem('language', lang); currentLanguage = lang; @@ -76,7 +99,7 @@ document.addEventListener('DOMContentLoaded', function () { // Инициализировать переключатель языка initLanguageSelector(); - // Применить сохраненный язык + // Применить автоопределенный или сохраненный язык updateLanguage(currentLanguage); // Установить ссылку для скачивания @@ -137,4 +160,9 @@ function getCurrentLanguage() { // Функция для получения всех доступных языков function getAvailableLanguages() { return Object.keys(translations); +} + +// Функция для получения автоопределенного языка браузера (экспорт для внешнего использования) +function getBrowserLanguage() { + return detectBrowserLanguage(); } \ No newline at end of file