1. R18n — i18n для Ruby и Rails Андрей Ситник, Evil Martians sitnik.ru
2. О чём речь I18n , i nternationalizatio n , интернационализция — когда в программе можно переключить язык (делается разработчиком) l10n , l ocalizatio n , локализация — перевод программы на какой-то язык (делается переводчиком)
3.
4. Локализация дат и чисел l product.created_at -> 15.09.2010 | 09/15/2010
10. R18n r18n-core sinatra-r18n r18n-desktop r18n-rails r18n-rails-api Веб-приложение на Sinatra Приложение для рабочего стола Веб-приложение на Ruby on Rails Отдельно разрабатываются Rack и Merb
16. Плюрализация robots: one: %{count} робот few: %{count} робота many: %{count} роботов t( 'robots' , :count => @robots.count) robots: !!pl # ← задаётся явно 1: %1 робот # с помощью YAML-типа 2: %1 робота n: %1 роботов t.robots(@robots.count) R18n I18n
17. Перевод моделей class Product include DataMapper::Resource property :title_ru , String property :title_en , String include R18n::Translated translations :title end Переводить можно любой класс, включая ActiveRecord , DataMapper , MongoMapper и т. д.
18. Загрузчики перевода class DBLoader def available Translation.find(:all).map(&:locale) end def load(locale) Translation.find(locale).to_hash end end set :translations , [DBLoader.new, '/path/to/dir/' ]
23. Пример фильтра Разные строки, в зависимости от пола пользователя: friendship: !!gender f: She adds a friend m: He adds a friend R18n::Filters.add( 'gender' ) do |value, c, user| if user.female? value[ 'f' ] else value[ 'm' ] end end t.friendship(@user)
24.
25. Markdown и Textile help: !!markdown ## Help **Note:** read docs before work