Многоязычный сайт: переводы, URL и SEO
Библиотека «Параллель» — общий пример этой серии. От исходной модели постепенно переходим к готовому договору выпуска. Каждый урок раскрывает один результат; кодовые фрагменты в статьях поясняют изменения в полных исходниках архива.
Предпосылки: основы HTML и JavaScript, работа с каталогами и командной строкой. Среда примеров: Python 3.11+, Python-Markdown 3.10.2; стандартный браузерный Intl.
| Урок | Результат |
|---|---|
| 1. Язык, локаль и постоянный адрес | Отделить язык текста, регион форматирования и адрес страницы; сохранить старые русские URL. |
| 2. Словарь интерфейса и устойчивые ключи | Перенести подписи в словари и подставлять параметры без сборки HTML из переводов. |
| 3. Множественные формы через Intl.PluralRules | Выбирать целую фразу о количестве уроков по языковой категории. |
| 4. Даты, числа и сортировка по локали | Отделить хранимые данные от представления и явно выбрать часовой пояс. |
| 5. Переводы Markdown и единый ID статьи | Связать переводы одной статьи через реестр, сохранив независимые заголовки и адреса. |
| 6. Переключение языка без потери страницы | Показывать обычные ссылки только на доступные переводы и объяснять отсутствие версии. |
| 7. Canonical, hreflang и карта языковых версий | Собрать согласованные метаданные из одной карты опубликованных переводов. |
| 8. Изменение оригинала и устаревший перевод | Записать ревизию источника, определить отставшие переводы и передать их редактору. |
| 9. Направление текста и доступный интерфейс | Настроить lang, dir, логические CSS-свойства и смешанные фрагменты текста. |
| 10. Выпуск многоязычной библиотеки | Подготовить целостный выпуск с прежними URL, готовыми переводами и явными ограничениями. |
Скачать исходники. Все курсы. Партия из 100 уроков.
Материалы опубликованы. Примеры не запускались, зависимости не устанавливались, тесты и измерения не выполнялись; описанный вывод является ожидаемым. Исходники требуют отдельной технической проверки перед использованием учебного приложения.