Path: | README.textile |
Last Update: | Thu Jan 06 07:37:57 +0000 2011 |
h1. Russian
Поддержка русского языка для Ruby и Rails при помощи библиотеки I18n.
Russian language support for Ruby and Rails, using I18n library.
h3. If you don‘t speak Russian
This code may still be useful for you and Ruby I18n community. You can learn how to create custom backends for I18n and how to provide support of "standalone" (as defined in "Unicode CLDR":unicode.org/cldr/) month names with I18n and Rails, and also how to add dead simple pluralization rules into your translation tables. This library also includes a module (@Russian@) with a set of helpers to provide simplistic pluralization and @strftime@ for Russian language — in a way that is easier than using I18n methods.
Feel free to shoot an email to Yaroslav Markin ("yaroslav@markin.net":yaroslav@markin.net)
h1. Что это
Russian — это библиотека для полноценной поддержки русского языка (форматирование даты и времени, плюрализация, локализация в целом) для Ruby и Ruby on Rails.
Цель проекта — построить полноценную среду для русской локализации Ruby и Rails проектов, при этом используя минимально возможное количество хаков, сохраняя при этом поддержку локализации приложения на другие языки, а также форсировать включение в основную ветку I18n и Rails всех функций локализации, необходимых для работы с русским языком.
Russian использует библиотеку I18n (включена в поставку), несколько хаков поверх нее (собственный бекэнд с поддержкой специфичного для русского форматирования даты и времени, поддержкой плюрализации), несколько хаков поверх Rails (хаки хелперов даты-времени, хак для сообщений валидации) и файлы переводов, а также набор хелперов, упрощающий работу с русским языком (простая плюрализация, простой strftime и др.).
Russian стремится быть минимально деструктивной для окружения и быть полностью совместимой с другими языками (таким образом, когда приложение использует Russian и собственный бекэнд Russian, оно остается полностью совместимым с Rails i18n).
h2. Что такое I18n
Библиотека I18n входит в состав Ruby on Rails начиная с версии 2.2. В перспективе I18n — это самое простое и недеструктивное решение для локализации и интернационализации Rails приложений, но в текущей версии отсутствовала поддержка нескольких важных возможностей, специфичных для русского языка. Таким образом, русский язык для локализации в Rails 2.2 фактически не поддерживался.
Для исправления этого досадного недоразумения появилась библиотека Russian (подробнее см. _Использование_).
h1. Требования
h1. Установка
Страница Russian на github — "github.com/yaroslav/russian/":http://github.com/yaroslav/russian/
Для установки:
@gem install russian@
h2. Ruby on Rails
Существует два варианта использования Russian вместе с Rails:
"Релизные" версии библиотеки для стабильных версий Rails.
В файле @config/environment.rb@ сделайте ссылку на gem @russian@:
<pre><code> Rails::Initializer.run do |config|
config.gem 'russian'
end </code></pre>
Чтобы установить gem, используйте команду
@rake gems:install@.
Последняя версия из master-ветки, чаще всего для использования с последней (пререлизной) версией Rails.
Для того, чтобы установить Russian как плагин к Rails, используйте команду
@script/plugin install git://github.com/yaroslav/russian.git@
Для Windows можно использовать версию git, расположенную по адресу: "code.google.com/p/msysgit/":http://code.google.com/p/msysgit/
Также проверьте наличие других веток на странице russian на GutHub — возможно, уже есть версия, уже поддерживающая последнюю нерелизную версию Rails или i18n.
h1. Использование
При загрузке Russian включает:
При инициализации:
После этого можно использовать все стандартные функции библиотеки I18n, пользоваться измененным функционалом для лучшей поддержки русского языка, или использовать хелперы модуля Russian для еще более простой работы с русским языком.
h2. Отличия от стандартной библиотеки I18n
Для этого перегружена функция локализации, теперь название месяца используется в зависимости от контекста. В словарях Russian определены оба варианта.
Перегрузка недеструктивная: если для какого-то другого языка не определены два варианта названий месяцев, ошибки не возникнет.
Аналогично есть поддержка двух видов названий дней недели.
Стандартно I18n поддерживается только плюрализация по английским правилам; бекэнд, использующийся в Russian, позволяет каждому языку определять правила плюрализации в таблице переводов, задавая их как @Proc@.
Перегрузка недеструктивная: если правила в таблице нет, используется правило по умолчанию (английский язык).
Правила для русского языка включены.
h1. Справочник
h2. Примеры и справка по переводам (I18n)
Небольшую справку по переводам (I18n) и пример того, как можно переводить имена моделей, атрибутов, и многие другие вещи, определенные в Rails или I18n, можно посмотреть в директории @lib/russian/locale@. Там находятся файлы переводов, которые используются в Russian, со всеми комментариями.
h2. Вспомогательные методы модуля Russian
<pre> Russian.locale Russian::LOCALE </pre>