Files
ogs-site/pskov/ru/education.04.lang.md

213 lines
8.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Title: Обучение: 04. Язык
Date: 2019-06-25 00:00
Category: Page
Slug: education.04.lang
Lang: ru
| < Назад | Начало | Далее > |
|---|---|---|
| [03. Сайт][prev] | [Обучение][index] | [05. Блог][next] |
</div><div class="contents">
В этом документе мы добавим выбор языка.
Ожидаемое время завершения: 10 минут.
**Содержание**
* [01. Локализация](#localization)
* [02. Изучите файл `pskov.cfg`](#cfg)
* [03. Изучите файлы шаблонов](#item)
* [04. Изучите файлы Markdown](#md)
* [05. Запустите ЛФСД](#lfsa)
* [06. Сгенерируйте сайт](#gen)
* [07. Проверьте сайт](#observe)
* [08. Итог](#summary)
<a name="localization"/>
## 01. Локализация
Теперь, когда у вас есть собственный веб-сайт на английском, вы задумываетесь о русской версии, ведь вы же всё-таки русский!
Вы создаёте директорию со [следующей структурой файлов][02-files]:
* `pskov.cfg`
* `en/item.template`
* `en/about.md`
* `en/cv.md`
* `ru/item.template`
* `ru/about.md`
* `ru/cv.md`
Давайте взглянем на содержимое этих файлов.
<a name="cfg"/>
## 02. Изучите файл `pskov.cfg`
Файл `pskov.cfg` содержит следующее:
```
input = en;ru
item = item.template
```
Как видите, `input` может принимать несколько директорий, разделённых символом `;`. **ПСКОВ** обработает каждую указанную директорию так же, как и ранее.
В нашем случае каждая из директорий - `en/` и `ru/` - содержит собственный шаблон `item.template`.
<a name="item"/>
## 03. Изучите файлы шаблонов
* Содержимое `en/item.template`:
```
- - - - Схлопнуто для краткости - - - -
<title>Serov</title>
</head>
<body>
<div id="header">
<strong>Serov</strong>
<a href="about.html">About me</a>
<a href="cv.html">CV</a>
<div id="lang">
<a href="../en/PSKOV_ITEM_URL">EN</a>
<a href="../ru/PSKOV_ITEM_URL">RU</a>
</div>
</div>
<center>
- - - - Схлопнуто для краткости - - - -
```
* Содержимое `ru/item.template`:
```
- - - - Схлопнуто для краткости - - - -
<title>Серов</title>
</head>
<body>
<div id="header">
<strong>Серов</strong>
<a href="about.html">Обо мне</a>
<a href="cv.html">Резюме</a>
<div id="lang">
<a href="../en/PSKOV_ITEM_URL">EN</a>
<a href="../ru/PSKOV_ITEM_URL">RU</a>
</div>
</div>
<center>
- - - - Схлопнуто для краткости - - - -
```
**Внимание**: начало и конец схлопнуты для краткости.
Как видите, `en/item.template` и `ru/item.template` очень похожи на [виденный ранее][prev] `item.template`.
Изменения следующие:
* использование секции `<div id="lang">...</div>` для отображения выбора языка
* локализация заголовков на Английском и Русском языках
Выбор языка использует следующую новую константу **ПСКОВА**:
| Константа ПСКОВА | Описание |
|---|---|
| `PSKOV_ITEM_URL` | Предоставляет имя файла генерируемой страницы |
Использование `PSKOV_ITEM_URL` даёт вам поддержку стольких языков, сколько пожелаете.
<a name="md"/>
## 04. Изучите файлы Markdown
Файлы `en/about.md` и `en/cv.md` выглядят почти идентично [виденным ранее][prev]. `ru/about.md` и `ru/cv.md` представляют собой русские версии соответствующих английских страниц.
Например, `ru/cv.md` содержит:
```
Title: Резюме
Slug: cv
Здесь вы можете увидеть моё резюме в том случае, если мои произведения всё ещё вас интересуют. Я использовал современный подход ИТ для структурирования своего резюме в виде пар ключ-значение словаря (карты). Наслаждайтесь!
| Ключ | Значение |
|---|---|
| Имя | Валентин Серов |
| Возраст | 46 |
| Семейное положение | Женат |
| Страна | Российская Империя |
| Учёба | Императорская Академия художеств |
| Звания | * академик ИАХ (1898) <br> * действительный член ИАХ (1903) |
```
**Внимание**: русская страница использует точно такое же значение `Slug`, как и английская страница.
<a name="lfsa"/>
## 05. Запустите ЛФСД
<video controls poster="../vid/education.04.lang.launch-lfsa.edgy.poster.png">
<source src="../vid/education.04.lang.launch-lfsa.edgy.mp4" type ="video/mp4">
<source src="../vid/education.04.lang.launch-lfsa.edgy.webm" type ="video/webm">
ОШИБКА Ваш браузер не поддерживает видео HTML5
</video>
Запустите [ЛФСД][lfsa] с указанием директории, содержащей только что рассмотренные файлы:
```
$ /путь/до/lfsa_1.0.0.py /путь/до/директории/02.Language
```
<a name="gen"/>
## 06. Сгенерируйте сайт
<video controls poster="../vid/education.04.lang.gen.edgy.poster+ru.png">
<source src="../vid/education.04.lang.gen.edgy+ru.mp4" type ="video/mp4">
<source src="../vid/education.04.lang.gen.edgy+ru.webm" type ="video/webm">
ОШИБКА Ваш браузер не поддерживает видео HTML5
</video>
Перейдите на страницу [Инструмент][tool] и нажмите кнопку `Генерировать` для генерации файлов HTML рядом с файлами Markdown.
<a name="observe"/>
## 07. Проверьте сайт
<video controls poster="../vid/education.04.lang.observe.edgy.poster+ru.png">
<source src="../vid/education.04.lang.observe.edgy.mp4" type ="video/mp4">
<source src="../vid/education.04.lang.observe.edgy.webm" type ="video/webm">
ОШИБКА Ваш браузер не поддерживает видео HTML5
</video>
Проверьте сгенерированный веб-сайт локально: откройте файл `ru/about.html` или `en/about.html` и переключите язык.
<a name="summary"/>
## 08. Итог
Вы успешно добавили выбор языка. [Проверьте результат][02-sample].
Представлены константы **ПСКОВА**:
| Константа ПСКОВА | Описание |
|---|---|
| `PSKOV_ITEM_URL` | Предоставляет имя файла генерируемой страницы |
</div><div class="contents">
| < Назад | Начало | Далее > |
|---|---|---|
| [03. Сайт][prev] | [Обучение][index] | [05. Блог][next] |
[index]: education.html
[prev]: education.03.site.html
[next]: education.05.blog.html
[02-files]: https://github.com/OGStudio/site-pskov-sample/tree/master/02.Language
[02-sample]: http://opengamestudio.org/pskov/sample/02.Language/ru/about.html
[lfsa]: http://opengamestudio.org/lfsa/ru
[tool]: http://opengamestudio.org/pskov/ru/pskov_1.0.0+ru.html