302 lines
13 KiB
HTML
302 lines
13 KiB
HTML
<!DOCTYPE html>
|
||
<html>
|
||
<meta charset="utf-8">
|
||
<head>
|
||
<style>
|
||
#header
|
||
{
|
||
background: #856d51;
|
||
padding: 0.7em;
|
||
text-align: left;
|
||
}
|
||
|
||
#header a
|
||
{
|
||
color: white;
|
||
text-decoration: none;
|
||
padding: 0.5em 1em 0.5em 1em;
|
||
}
|
||
#title
|
||
{
|
||
color: #433729;
|
||
}
|
||
html
|
||
{
|
||
font-family: sans-serif;
|
||
}
|
||
body
|
||
{
|
||
line-height: 1.5em;
|
||
}
|
||
body
|
||
{
|
||
background: #FAFAFA;
|
||
}
|
||
table
|
||
{
|
||
border-collapse: collapse;
|
||
width: 100%;
|
||
}
|
||
|
||
table, th, td
|
||
{
|
||
border: 1px solid #aaa;
|
||
padding: 0.5em;
|
||
margin-top: 0.5em;
|
||
margin-bottom: 0.5em;
|
||
}
|
||
code, pre
|
||
{
|
||
font-family: monospace, serif;
|
||
font-size: 1em;
|
||
color: #7f0a0c;
|
||
background: #f5f5f5;
|
||
white-space: pre-wrap;
|
||
}
|
||
video
|
||
{
|
||
width: 100%;
|
||
}
|
||
.contents
|
||
{
|
||
background: #FFFFFF;
|
||
width: 720px;
|
||
padding: 1em;
|
||
margin-top: 2em;
|
||
margin-bottom: 2em;
|
||
border: 1px solid #E0E0E0;
|
||
text-align: left;
|
||
color: #444;
|
||
}
|
||
#footer
|
||
{
|
||
text-align: center;
|
||
}
|
||
#lang
|
||
{
|
||
float: right;
|
||
}
|
||
</style>
|
||
<title>
|
||
PSKOV
|
||
</title>
|
||
</head>
|
||
<body>
|
||
<div id="header">
|
||
<strong id="title">ПСКОВ</strong>
|
||
<a href="pskov_1.0.0+ru.html">Инструмент</a>
|
||
<a href="education.html">Обучение</a>
|
||
<div id="lang">
|
||
<a href="../en/education.04.lang.html">EN</a>
|
||
<a href="../ru/education.04.lang.html">RU</a>
|
||
</div>
|
||
</div>
|
||
<center><h1>
|
||
Обучение: 04. Язык
|
||
</h1></center>
|
||
<center><div class="contents">
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>< Назад</th>
|
||
<th>Начало</th>
|
||
<th>Далее ></th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><a href="education.03.site.html">03. Сайт</a></td>
|
||
<td><a href="education.html">Обучение</a></td>
|
||
<td><a href="education.05.blog.html">05. Блог</a></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<p></div><div class="contents"></p>
|
||
<p>В этом документе мы добавим выбор языка.</p>
|
||
<p>Ожидаемое время завершения: 10 минут.</p>
|
||
<p><strong>Содержание</strong></p>
|
||
<ul>
|
||
<li><a href="#localization">01. Локализация</a></li>
|
||
<li><a href="#cfg">02. Изучите файл <code>pskov.cfg</code></a></li>
|
||
<li><a href="#item">03. Изучите файлы шаблонов</a></li>
|
||
<li><a href="#md">04. Изучите файлы Markdown</a></li>
|
||
<li><a href="#lfsa">05. Запустите ЛФСД</a></li>
|
||
<li><a href="#gen">06. Сгенерируйте сайт</a></li>
|
||
<li><a href="#observe">07. Проверьте сайт</a></li>
|
||
<li><a href="#summary">08. Итог</a></li>
|
||
</ul>
|
||
<p><a name="localization"/></p>
|
||
<h2 id="01">01. Локализация</h2>
|
||
<p>Теперь, когда у вас есть собственный веб-сайт на английском, вы задумываетесь о русской версии, ведь вы же всё-таки русский!</p>
|
||
<p>Вы создаёте директорию со <a href="https://github.com/OGStudio/site-pskov-sample/tree/master/02.Language">следующей структурой файлов</a>:</p>
|
||
<ul>
|
||
<li><code>pskov.cfg</code></li>
|
||
<li><code>en/item.template</code></li>
|
||
<li><code>en/about.md</code></li>
|
||
<li><code>en/cv.md</code></li>
|
||
<li><code>ru/item.template</code></li>
|
||
<li><code>ru/about.md</code></li>
|
||
<li><code>ru/cv.md</code></li>
|
||
</ul>
|
||
<p>Давайте взглянем на содержимое этих файлов.</p>
|
||
<p><a name="cfg"/></p>
|
||
<h2 id="02pskovcfg">02. Изучите файл <code>pskov.cfg</code></h2>
|
||
<p>Файл <code>pskov.cfg</code> содержит следующее:</p>
|
||
<pre><code>input = en;ru
|
||
item = item.template
|
||
</code></pre>
|
||
<p>Как видите, <code>input</code> может принимать несколько директорий, разделённых символом <code>;</code>. <strong>ПСКОВ</strong> обработает каждую указанную директорию так же, как и ранее.</p>
|
||
<p>В нашем случае каждая из директорий - <code>en/</code> и <code>ru/</code> - содержит собственный шаблон <code>item.template</code>.</p>
|
||
<p><a name="item"/></p>
|
||
<h2 id="03">03. Изучите файлы шаблонов</h2>
|
||
<ul>
|
||
<li><p>Содержимое <code>en/item.template</code>:</p>
|
||
<pre><code>- - - - Схлопнуто для краткости - - - -
|
||
<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>
|
||
- - - - Схлопнуто для краткости - - - -
|
||
</code></pre></li>
|
||
<li><p>Содержимое <code>ru/item.template</code>:</p>
|
||
<pre><code>- - - - Схлопнуто для краткости - - - -
|
||
<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>
|
||
- - - - Схлопнуто для краткости - - - -
|
||
</code></pre></li>
|
||
</ul>
|
||
<p><strong>Внимание</strong>: начало и конец схлопнуты для краткости.</p>
|
||
<p>Как видите, <code>en/item.template</code> и <code>ru/item.template</code> очень похожи на <a href="education.03.site.html">виденный ранее</a> <code>item.template</code>.</p>
|
||
<p>Изменения следующие:</p>
|
||
<ul>
|
||
<li>использование секции <code><div id="lang">...</div></code> для отображения выбора языка</li>
|
||
<li>локализация заголовков на Английском и Русском языках</li>
|
||
</ul>
|
||
<p>Выбор языка использует следующую новую константу <strong>ПСКОВА</strong>:</p>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Константа ПСКОВА</th>
|
||
<th>Описание</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><code>PSKOV_ITEM_URL</code></td>
|
||
<td>Предоставляет имя файла генерируемой страницы</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<p>Использование <code>PSKOV_ITEM_URL</code> даёт вам поддержку стольких языков, сколько пожелаете.</p>
|
||
<p><a name="md"/></p>
|
||
<h2 id="04markdown">04. Изучите файлы Markdown</h2>
|
||
<p>Файлы <code>en/about.md</code> и <code>en/cv.md</code> выглядят почти идентично <a href="education.03.site.html">виденным ранее</a>. <code>ru/about.md</code> и <code>ru/cv.md</code> представляют собой русские версии соответствующих английских страниц.</p>
|
||
<p>Например, <code>ru/cv.md</code> содержит:</p>
|
||
<pre><code> Title: Резюме
|
||
Slug: cv
|
||
|
||
Здесь вы можете увидеть моё резюме в том случае, если мои произведения всё ещё вас интересуют. Я использовал современный подход ИТ для структурирования своего резюме в виде пар ключ-значение словаря (карты). Наслаждайтесь!
|
||
|
||
| Ключ | Значение |
|
||
|---|---|
|
||
| Имя | Валентин Серов |
|
||
| Возраст | 46 |
|
||
| Семейное положение | Женат |
|
||
| Страна | Российская Империя |
|
||
| Учёба | Императорская Академия художеств |
|
||
| Звания | * академик ИАХ (1898) <br> * действительный член ИАХ (1903) |
|
||
</code></pre>
|
||
<p><strong>Внимание</strong>: русская страница использует точно такое же значение <code>Slug</code>, как и английская страница.</p>
|
||
<p><a name="lfsa"/></p>
|
||
<h2 id="05">05. Запустите ЛФСД</h2>
|
||
<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>
|
||
<p>Запустите <a href="http://opengamestudio.org/lfsa/ru">ЛФСД</a> с указанием директории, содержащей только что рассмотренные файлы:</p>
|
||
<pre><code>$ /путь/до/lfsa_1.0.0.py /путь/до/директории/02.Language
|
||
</code></pre>
|
||
<p><a name="gen"/></p>
|
||
<h2 id="06">06. Сгенерируйте сайт</h2>
|
||
<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>
|
||
<p>Перейдите на страницу <a href="http://opengamestudio.org/pskov/ru/pskov_1.0.0+ru.html">Инструмент</a> и нажмите кнопку <code>Генерировать</code> для генерации файлов HTML рядом с файлами Markdown.</p>
|
||
<p><a name="observe"/></p>
|
||
<h2 id="07">07. Проверьте сайт</h2>
|
||
<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>
|
||
<p>Проверьте сгенерированный веб-сайт локально: откройте файл <code>ru/about.html</code> или <code>en/about.html</code> и переключите язык.</p>
|
||
<p><a name="summary"/></p>
|
||
<h2 id="08">08. Итог</h2>
|
||
<p>Вы успешно добавили выбор языка. <a href="http://opengamestudio.org/pskov/sample/02.Language/ru/about.html">Проверьте результат</a>.</p>
|
||
<p>Представлены константы <strong>ПСКОВА</strong>:</p>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Константа ПСКОВА</th>
|
||
<th>Описание</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><code>PSKOV_ITEM_URL</code></td>
|
||
<td>Предоставляет имя файла генерируемой страницы</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<p></div><div class="contents"></p>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>< Назад</th>
|
||
<th>Начало</th>
|
||
<th>Далее ></th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><a href="education.03.site.html">03. Сайт</a></td>
|
||
<td><a href="education.html">Обучение</a></td>
|
||
<td><a href="education.05.blog.html">05. Блог</a></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div></center>
|
||
<div id="footer">
|
||
Сайт сгенерирован <a href="http://opengamestudio.org/pskov">ПСКОВОМ</a>
|
||
из <a href="http://github.com/ogstudio/site-pskov">этого исходного кода</a>.
|
||
Сайт расположен на <a href="https://pages.github.com">GitHub Pages</a>.
|
||
</div>
|
||
<script type="text/javascript">
|
||
</script>
|
||
</body>
|
||
</html>
|
||
|