Generator of easy accessor methods for models using Globalize3.
Use globalize_accessors with list of translated fields you want easily access to and extra :locales array listing locales for which you want the accessors to be generated.
This way a single form can be used to edit given model fields with all anticipated translations.
gem install easy_globalize3_accessors
Definition like this:
class Product translates :title, :description globalize_accessors :locales => [:en, :pl], :attributes => [:title] end
Gives you access to methods: title_pl, title_en, title_pl=, title_en= (and similar set of description_* methods). And they work seamlessly with Globalize3 (not even touching the “core” title, title= methods used by Globalize3 itself).
:locales and :attributes are optional. Default values are:
:locales => I18n.available_locales :attributes => translated_attribute_names
which means that skipping all options will generate you accessor method for all translated fields and available languages
If you wish to always define accessors and don’t want to call globalize_accessors method in every class, you can extend ActiveRecord::Base with such module:
module TranslatesWithAccessors def translates(*params) options = params.extract_options! options.reverse_merge!(:globalize_accessors => true) accessors = options.delete(:globalize_accessors) super globalize_accessors if accessors end end
Copyright © 2009-2010 Tomek “Tomash” Stachewicz (tomash.wrug.eu), Robert Pankowecki (robert.pankowecki.pl) released under the MIT license