# Система Интернационализации (i18n) для ExamPass ## Обзор Система интернационализации позволяет переключаться между русским и английским языками на сайте ExamPass. Система автоматически сохраняет выбранный язык в localStorage и восстанавливает его при следующем посещении. ## Структура файлов ``` src/js/ ├── translations.js # Файл с переводами ├── i18n.js # Основная логика интернационализации └── main.js # Основной JavaScript файл (обновлен) ``` ## Как это работает ### 1. Файл переводов (`translations.js`) Содержит объект `translations` с переводами для всех поддерживаемых языков: ```javascript const translations = { en: { nav_about: "About", hero_title_line1: "PASS ANY EXAM", // ... другие переводы }, ru: { nav_about: "О нас", hero_title_line1: "СДАЙ ЛЮБОЙ ЭКЗАМЕН", // ... другие переводы } }; ``` ### 2. Основная логика (`i18n.js`) Класс `I18n` управляет: - Переключением языков - Сохранением выбранного языка - Обновлением контента на странице - Обновлением мета-тегов ### 3. HTML разметка Элементы, которые нужно переводить, помечаются атрибутом `data-i18n`: ```html About
Default text
``` ### Специальные случаи #### Сложные элементы Для элементов с HTML разметкой внутри (например, с `` тегами) используется специальная обработка в методе `translateComplexElements()`. #### Плейсхолдеры для input полей Для input полей перевод применяется к атрибуту `placeholder`: ```html ``` ## Поддерживаемые элементы Система автоматически переводит: - Навигационные ссылки - Заголовки секций - Описания - Кнопки и формы - Footer ссылки - Мета-теги (language, og:locale) ## Тестирование Для тестирования системы интернационализации используйте файл `test.html`. Он содержит примеры всех типов переводимых элементов. ## Автоматическое сохранение Выбранный язык автоматически сохраняется в localStorage браузера и восстанавливается при следующем посещении сайта. ## SEO оптимизация Система автоматически обновляет: - Атрибут `lang` у тега `` - Мета-тег `language` - Open Graph тег `og:locale` Это помогает поисковым системам правильно индексировать контент на разных языках. ## Совместимость Система работает во всех современных браузерах и не требует дополнительных зависимостей.