Title: Обучение: 04. Язык
Date: 2019-06-25 00:00
Category: Page
Slug: education.04.lang
Lang: ru
| < Назад | Начало | Далее > |
|---|---|---|
| [03. Сайт][prev] | [Обучение][index] | [05. Блог][next] |
В этом документе мы добавим выбор языка.
Ожидаемое время завершения: 10 минут.
**Содержание**
* [01. Локализация](#localization)
* [02. Изучите файл `pskov.cfg`](#cfg)
* [03. Изучите файлы шаблонов](#item)
* [04. Изучите файлы Markdown](#md)
* [05. Запустите ЛФСД](#lfsa)
* [06. Сгенерируйте сайт](#gen)
* [07. Проверьте сайт](#observe)
* [08. Итог](#summary)
## 01. Локализация
Теперь, когда у вас есть собственный веб-сайт на английском, вы задумываетесь о русской версии, ведь вы же всё-таки русский!
Вы создаёте директорию со [следующей структурой файлов][02-files]:
* `pskov.cfg`
* `en/item.template`
* `en/about.md`
* `en/cv.md`
* `ru/item.template`
* `ru/about.md`
* `ru/cv.md`
Давайте взглянем на содержимое этих файлов.
## 02. Изучите файл `pskov.cfg`
Файл `pskov.cfg` содержит следующее:
```
input = en;ru
item = item.template
```
Как видите, `input` может принимать несколько директорий, разделённых символом `;`. **ПСКОВ** обработает каждую указанную директорию так же, как и ранее.
В нашем случае каждая из директорий - `en/` и `ru/` - содержит собственный шаблон `item.template`.
## 03. Изучите файлы шаблонов
* Содержимое `en/item.template`:
```
- - - - Схлопнуто для краткости - - - -
Serov
- - - - Схлопнуто для краткости - - - -
```
**Внимание**: начало и конец схлопнуты для краткости.
Как видите, `en/item.template` и `ru/item.template` очень похожи на [виденный ранее][prev] `item.template`.
Изменения следующие:
* использование секции `
...
` для отображения выбора языка
* локализация заголовков на Английском и Русском языках
Выбор языка использует следующую новую константу **ПСКОВА**:
| Константа ПСКОВА | Описание |
|---|---|
| `PSKOV_ITEM_URL` | Предоставляет имя файла генерируемой страницы |
Использование `PSKOV_ITEM_URL` даёт вам поддержку стольких языков, сколько пожелаете.
## 04. Изучите файлы Markdown
Файлы `en/about.md` и `en/cv.md` выглядят почти идентично [виденным ранее][prev]. `ru/about.md` и `ru/cv.md` представляют собой русские версии соответствующих английских страниц.
Например, `ru/cv.md` содержит:
```
Title: Резюме
Slug: cv
Здесь вы можете увидеть моё резюме в том случае, если мои произведения всё ещё вас интересуют. Я использовал современный подход ИТ для структурирования своего резюме в виде пар ключ-значение словаря (карты). Наслаждайтесь!
| Ключ | Значение |
|---|---|
| Имя | Валентин Серов |
| Возраст | 46 |
| Семейное положение | Женат |
| Страна | Российская Империя |
| Учёба | Императорская Академия художеств |
| Звания | * академик ИАХ (1898) * действительный член ИАХ (1903) |
```
**Внимание**: русская страница использует точно такое же значение `Slug`, как и английская страница.
## 05. Запустите ЛФСД
Запустите [ЛФСД][lfsa] с указанием директории, содержащей только что рассмотренные файлы:
```
$ /путь/до/lfsa_1.0.0.py /путь/до/директории/02.Language
```
## 06. Сгенерируйте сайт
Перейдите на страницу [Инструмент][tool] и нажмите кнопку `Генерировать` для генерации файлов HTML рядом с файлами Markdown.
## 07. Проверьте сайт
Проверьте сгенерированный веб-сайт локально: откройте файл `ru/about.html` или `en/about.html` и переключите язык.
## 08. Итог
Вы успешно добавили выбор языка. [Проверьте результат][02-sample].
Представлены константы **ПСКОВА**:
| Константа ПСКОВА | Описание |
|---|---|
| `PSKOV_ITEM_URL` | Предоставляет имя файла генерируемой страницы |