Структура 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.