Структура Yesod-проекта: остальное
Приветствую!
Сегодня мы заканчиваем рассмотрение структуры нашего Yesod-проекта.
Главное
Одними из самых главных в нашем проекте являются два файла, а именно Application.hs
и Foundation.hs
. Содержимое этих файлов весьма объёмно, поэтому рассматривать его мы сейчас не станем. Однако в будущих заметках, когда мы начнём писать реальные части нашего Yesod-проекта, нам придётся весьма часто редактировать эти два файла, так что запомните их.
Статика
Заглянем внутрь каталога static
:
static/
css/
bootstrap.css
fonts/
glyphicons-halflings-regular.eot
glyphicons-halflings-regular.svg
glyphicons-halflings-regular.ttf
glyphicons-halflings-regular.woff
Ба, знакомые все лица! Именно в этом каталоге лежат сторонние стили, скрипты и шрифты. Как видите, сюда уже включен наш любимый Bootstrap, но об этом мы поговорим в будущих заметках. Скажу лишь, что использовать Bootstrap в Yesod-проекте очень легко.
Интернационализация
Веб-приложения для реального мира редко говорят лишь по-английски, а для многих современных веб-проектов интернационализация вообще рассматривается как нечто, само собою разумеющееся. Разработчики Yesod прекрасно знают это, поэтому в корне проекта вы найдёте каталог messages
. Сейчас в нашем проекте этот каталог содержит один-единственный файл, en.msg
. Откроем его:
Hello: Hello
В этом файле хранятся пары “ключ-перевод”. Ключи задаются на английском, а перевод - на любом языке. В данном случае мы можем использовать ключ Hello
для того, чтобы где-нибудь на наших страницах появился текст “Hello”.
Соответственно, если нам нужен русский вариант наших страниц, мы создаём файл messages/ru.msg
. Как вы уже поняли, файлы именуются стандартными двубуквенными языковыми кодами, в соответствие с ISO 639-1. Содержимое файла ru.msg
может быть таким:
Hello: Привет
Думаю, теперь всё предельно ясно: ключ в коде будет один, а переводов - множество. Таким образом, везде где используется данный ключ, в английской версии страниц появится строка “Hello”, а в русской - “Привет”. При такой схеме добавление нового интерфейсного языка - дело чрезвычайно простое.
Разумеется, в одной из будущих заметок мы подробно поговорим об интернационализации, и в том числе о том, как реализовать переключатель языков.
Тестирование
В каталоге test
мы видим основу для автотестирования нашего домашне-страничного ресурса HomeR
. Сейчас мы не будем рассматривать тестирование Yesod-приложений, потому что этому важному вопросу я посвящу целый ряд отдельных заметок.
Остальное
Содержимое остальных файлов и каталогов нам пока не очень интересно. Мы будем исследовать их по мере изучения Yesod.