Your SlideShare is downloading. ×
I18n
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

I18n

244
views

Published on


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

  • Be the first to like this

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

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Transcript

    • 1. I18n
    • 2. Основные возможности• Перевод и локализация• Интерполяция переводов• Плюрализация
    • 3. ПоискI18n.t date.formats.shortI18n.t formats.short, :scope => dateI18n.t short, :scope => date.formatsI18n.t short, :scope => %w(date formats)
    • 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. Транслитерация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. Другая локальI18n.with_locale(:en) do  I18n.t :name #=> "User name"endI18n.with_locale(:ru) do  I18n.t :name #=> "Имя пользователя"end
    • 7. А что еще?..• Пользовательские разделители• Расширяемая архитектура с заменяемым бэкендом
    • 8. Backends
    • 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. Simple (default)• Переводы хранятся в YAML файлах• При старте считываются в память• Расширяется с помощью модулей
    • 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. Модули• I18n::Backend::Memoize• I18n::Backend::Metadata• I18n::Backend::Pluralization• I18n::Backend::Transliterator

    ×