include Lolita::Translationin your model.
translate :title, :bodyin your model and pass column names to translate.
db/seeds.rband run it.
What it does?
In Lolita, each tab, that contains at least on field, that needs to be translated, is changed to translatable tab.
Translations table holds only translations, but not the original data from default_locale, so:
I18n.default_locale = :en I18n.locale = :lv a = Article.create :title => "Title in EN" a.title # returns blank, because current locale is LV and there is no translation in it #=> "" I18n.locale = :en a.title #=> "Title in EN" a.translations.create :title => "Title in LV", :locale => 'lv' I18n.locale = :lv a.title #=> "Title in LV" a.in(:lv) # switching locale to lv a.title #returns record's title attribute in locale that's passed #=> "Title in LV" a.in(:lv).title #returns record's title attribute in locale that's passed #=> "Title in LV" a.in(:lv) do |item| item.title #returns record's title attribute in locale that's passed #=> "Title in LV" end # after block the default locale is switched back
When a "find" is executed and current language is not the same as default language then
:translations are added to
:includes to pre fetch all translations.
ModelNameTranslation class is created for you automaticly with all validations for ranslated fields. Of course you can create it manualy for custom vlidations and other.
Inspired by http://github.com/dmitry/has_translations
Copyright © 2011 ITHouse. See LICENSE.txt for further details.