Skip to content

Easily access (read and write) globalize3-translated fields without fiddling with locale

License

Notifications You must be signed in to change notification settings

omsoft/easy_globalize3_accessors

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

You can also get locales for class with “globalize_locales” method:

Product.globalize_locales # => [:en, :pl]

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

About

Easily access (read and write) globalize3-translated fields without fiddling with locale

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Ruby 100.0%