You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212
  1. Title: Обучение: 04. Язык
  2. Date: 2019-06-25 00:00
  3. Category: Page
  4. Slug: education.04.lang
  5. Lang: ru
  6. | < Назад | Начало | Далее > |
  7. |---|---|---|
  8. | [03. Сайт][prev] | [Обучение][index] | [05. Блог][next] |
  9. </div><div class="contents">
  10. В этом документе мы добавим выбор языка.
  11. Ожидаемое время завершения: 10 минут.
  12. **Содержание**
  13. * [01. Локализация](#localization)
  14. * [02. Изучите файл `pskov.cfg`](#cfg)
  15. * [03. Изучите файлы шаблонов](#item)
  16. * [04. Изучите файлы Markdown](#md)
  17. * [05. Запустите ЛФСД](#lfsa)
  18. * [06. Сгенерируйте сайт](#gen)
  19. * [07. Проверьте сайт](#observe)
  20. * [08. Итог](#summary)
  21. <a name="localization"/>
  22. ## 01. Локализация
  23. Теперь, когда у вас есть собственный веб-сайт на английском, вы задумываетесь о русской версии, ведь вы же всё-таки русский!
  24. Вы создаёте директорию со [следующей структурой файлов][02-files]:
  25. * `pskov.cfg`
  26. * `en/item.template`
  27. * `en/about.md`
  28. * `en/cv.md`
  29. * `ru/item.template`
  30. * `ru/about.md`
  31. * `ru/cv.md`
  32. Давайте взглянем на содержимое этих файлов.
  33. <a name="cfg"/>
  34. ## 02. Изучите файл `pskov.cfg`
  35. Файл `pskov.cfg` содержит следующее:
  36. ```
  37. input = en;ru
  38. item = item.template
  39. ```
  40. Как видите, `input` может принимать несколько директорий, разделённых символом `;`. **ПСКОВ** обработает каждую указанную директорию так же, как и ранее.
  41. В нашем случае каждая из директорий - `en/` и `ru/` - содержит собственный шаблон `item.template`.
  42. <a name="item"/>
  43. ## 03. Изучите файлы шаблонов
  44. * Содержимое `en/item.template`:
  45. ```
  46. - - - - Схлопнуто для краткости - - - -
  47. <title>Serov</title>
  48. </head>
  49. <body>
  50. <div id="header">
  51. <strong>Serov</strong>
  52. <a href="about.html">About me</a>
  53. <a href="cv.html">CV</a>
  54. <div id="lang">
  55. <a href="../en/PSKOV_ITEM_URL">EN</a>
  56. <a href="../ru/PSKOV_ITEM_URL">RU</a>
  57. </div>
  58. </div>
  59. <center>
  60. - - - - Схлопнуто для краткости - - - -
  61. ```
  62. * Содержимое `ru/item.template`:
  63. ```
  64. - - - - Схлопнуто для краткости - - - -
  65. <title>Серов</title>
  66. </head>
  67. <body>
  68. <div id="header">
  69. <strong>Серов</strong>
  70. <a href="about.html">Обо мне</a>
  71. <a href="cv.html">Резюме</a>
  72. <div id="lang">
  73. <a href="../en/PSKOV_ITEM_URL">EN</a>
  74. <a href="../ru/PSKOV_ITEM_URL">RU</a>
  75. </div>
  76. </div>
  77. <center>
  78. - - - - Схлопнуто для краткости - - - -
  79. ```
  80. **Внимание**: начало и конец схлопнуты для краткости.
  81. Как видите, `en/item.template` и `ru/item.template` очень похожи на [виденный ранее][prev] `item.template`.
  82. Изменения следующие:
  83. * использование секции `<div id="lang">...</div>` для отображения выбора языка
  84. * локализация заголовков на Английском и Русском языках
  85. Выбор языка использует следующую новую константу **ПСКОВА**:
  86. | Константа ПСКОВА | Описание |
  87. |---|---|
  88. | `PSKOV_ITEM_URL` | Предоставляет имя файла генерируемой страницы |
  89. Использование `PSKOV_ITEM_URL` даёт вам поддержку стольких языков, сколько пожелаете.
  90. <a name="md"/>
  91. ## 04. Изучите файлы Markdown
  92. Файлы `en/about.md` и `en/cv.md` выглядят почти идентично [виденным ранее][prev]. `ru/about.md` и `ru/cv.md` представляют собой русские версии соответствующих английских страниц.
  93. Например, `ru/cv.md` содержит:
  94. ```
  95. Title: Резюме
  96. Slug: cv
  97. Здесь вы можете увидеть моё резюме в том случае, если мои произведения всё ещё вас интересуют. Я использовал современный подход ИТ для структурирования своего резюме в виде пар ключ-значение словаря (карты). Наслаждайтесь!
  98. | Ключ | Значение |
  99. |---|---|
  100. | Имя | Валентин Серов |
  101. | Возраст | 46 |
  102. | Семейное положение | Женат |
  103. | Страна | Российская Империя |
  104. | Учёба | Императорская Академия художеств |
  105. | Звания | * академик ИАХ (1898) <br> * действительный член ИАХ (1903) |
  106. ```
  107. **Внимание**: русская страница использует точно такое же значение `Slug`, как и английская страница.
  108. <a name="lfsa"/>
  109. ## 05. Запустите ЛФСД
  110. <video controls poster="../vid/education.04.lang.launch-lfsa.edgy.poster.png">
  111. <source src="../vid/education.04.lang.launch-lfsa.edgy.mp4" type ="video/mp4">
  112. <source src="../vid/education.04.lang.launch-lfsa.edgy.webm" type ="video/webm">
  113. ОШИБКА Ваш браузер не поддерживает видео HTML5
  114. </video>
  115. Запустите [ЛФСД][lfsa] с указанием директории, содержащей только что рассмотренные файлы:
  116. ```
  117. $ /путь/до/lfsa_1.0.0.py /путь/до/директории/02.Language
  118. ```
  119. <a name="gen"/>
  120. ## 06. Сгенерируйте сайт
  121. <video controls poster="../vid/education.04.lang.gen.edgy.poster+ru.png">
  122. <source src="../vid/education.04.lang.gen.edgy+ru.mp4" type ="video/mp4">
  123. <source src="../vid/education.04.lang.gen.edgy+ru.webm" type ="video/webm">
  124. ОШИБКА Ваш браузер не поддерживает видео HTML5
  125. </video>
  126. Перейдите на страницу [Инструмент][tool] и нажмите кнопку `Генерировать` для генерации файлов HTML рядом с файлами Markdown.
  127. <a name="observe"/>
  128. ## 07. Проверьте сайт
  129. <video controls poster="../vid/education.04.lang.observe.edgy.poster+ru.png">
  130. <source src="../vid/education.04.lang.observe.edgy.mp4" type ="video/mp4">
  131. <source src="../vid/education.04.lang.observe.edgy.webm" type ="video/webm">
  132. ОШИБКА Ваш браузер не поддерживает видео HTML5
  133. </video>
  134. Проверьте сгенерированный веб-сайт локально: откройте файл `ru/about.html` или `en/about.html` и переключите язык.
  135. <a name="summary"/>
  136. ## 08. Итог
  137. Вы успешно добавили выбор языка. [Проверьте результат][02-sample].
  138. Представлены константы **ПСКОВА**:
  139. | Константа ПСКОВА | Описание |
  140. |---|---|
  141. | `PSKOV_ITEM_URL` | Предоставляет имя файла генерируемой страницы |
  142. </div><div class="contents">
  143. | < Назад | Начало | Далее > |
  144. |---|---|---|
  145. | [03. Сайт][prev] | [Обучение][index] | [05. Блог][next] |
  146. [index]: education.html
  147. [prev]: education.03.site.html
  148. [next]: education.05.blog.html
  149. [02-files]: https://github.com/OGStudio/site-pskov-sample/tree/master/02.Language
  150. [02-sample]: http://opengamestudio.org/pskov/sample/02.Language/ru/about.html
  151. [lfsa]: http://opengamestudio.org/lfsa/ru
  152. [tool]: http://opengamestudio.org/pskov/ru/pskov_1.0.0+ru.html