I18n
Основные возможности• Перевод и локализация• Интерполяция переводов• Плюрализация
ПоискI18n.t   date.formats.shortI18n.t   formats.short, :scope => dateI18n.t   short, :scope => date.formatsI18n.t   short...
ИнтерполяцияI18n.interpolate("%{first} %{last}", :first => Masao, :last =>Mutoh)#=> "Masao Mutoh"I18n.interpolate("%<integ...
Транслитерацияstore_translations(:de, :i18n => {  :transliterate => {    :rule => {      "ü" => "ue",      "ö" => "oe"    ...
Другая локальI18n.with_locale(:en) do  I18n.t :name #=> "User name"endI18n.with_locale(:ru) do  I18n.t :name #=> "Имя поль...
А что еще?..• Пользовательские разделители• Расширяемая архитектура с заменяемым  бэкендом
Backends
KeyValue• При инициализации получает хранилище,  которое реализует всего 3 метода  store#[](key)  store#[]=(key, value)  s...
Simple (default)• Переводы хранятся в YAML файлах• При старте считываются в память• Расширяется с помощью модулей
Модули• I18n::Backend::Cache• I18n::Backend::Cascade  I18n.t(:foo.bar.baz, :cascade => true)• I18n::Backend::Chain  I18n.b...
Модули• I18n::Backend::Memoize• I18n::Backend::Metadata• I18n::Backend::Pluralization• I18n::Backend::Transliterator
I18n
Upcoming SlideShare
Loading in …5
×

I18n

326
-1

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
326
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • I18n

    1. 1. I18n
    2. 2. Основные возможности• Перевод и локализация• Интерполяция переводов• Плюрализация
    3. 3. ПоискI18n.t date.formats.shortI18n.t formats.short, :scope => dateI18n.t short, :scope => date.formatsI18n.t short, :scope => %w(date formats)
    4. 4. ИнтерполяцияI18n.interpolate("%{first} %{last}", :first => Masao, :last =>Mutoh)#=> "Masao Mutoh"I18n.interpolate("%<integer>d, %<float>.1f", :integer => 10, :float =>43.4)#=> "10, 43.4"
    5. 5. Транслитерацияstore_translations(:de, :i18n => {  :transliterate => {    :rule => {      "ü" => "ue",      "ö" => "oe"    }  })I18n.locale = :enI18n.transliterate("Jürgen") # => "Jurgen"I18n.locale = :deI18n.transliterate("Jürgen") # => "Juergen"I18n.transliterate("Jürgen", :locale => :en) # => "Jurgen"I18n.transliterate("Jürgen", :locale => :de) # => "Juergen"
    6. 6. Другая локальI18n.with_locale(:en) do  I18n.t :name #=> "User name"endI18n.with_locale(:ru) do  I18n.t :name #=> "Имя пользователя"end
    7. 7. А что еще?..• Пользовательские разделители• Расширяемая архитектура с заменяемым бэкендом
    8. 8. Backends
    9. 9. KeyValue• При инициализации получает хранилище, которое реализует всего 3 метода store#[](key) store#[]=(key, value) store#keys• Самое простое хранилище I18n.backend = I18n::Backend::KeyValue.new({}) I18n.backend = I18n::Backend::KeyValue.new(Rufus::Tokyo::Cabinet.new(*))
    10. 10. Simple (default)• Переводы хранятся в YAML файлах• При старте считываются в память• Расширяется с помощью модулей
    11. 11. Модули• I18n::Backend::Cache• I18n::Backend::Cascade I18n.t(:foo.bar.baz, :cascade => true)• I18n::Backend::Chain I18n.backend = I18n::Backend::Chain.new(I18n::Backend::ActiveRecord.new, I18n.backend)• I18n::Backend::Gettext
    12. 12. Модули• I18n::Backend::Memoize• I18n::Backend::Metadata• I18n::Backend::Pluralization• I18n::Backend::Transliterator
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×