New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

simple_model_translations

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

simple_model_translations

  • 0.2.8
  • Rubygems
  • Socket score

Version published
Maintainers
1
Created
Source

= SimpleModelTranslations

Yet another implementation of ActiveRecord translations. Created for zn.ua, because globalize3 was too uncomfortable to use. It borrows some things from globalize3[http://github.com/svenfuchs/globalize3] and puret[http://github.com/jo/puret].

== Basic Usage

For example, you are dealing with a website for some magazine, and you want your articles to be translated. So, you'll need the following models to achieve this behaviour (warning: ArticleTranslation should be defined before Article, or Rails should be able to autoload it):

class ArticleTranslation < ActiveRecord::Base translation_for :article end

class Article < ActiveRecord::Base translates :name, :content end

or, if you are not going to add some additional behavior to translation class (for example, validations), you can use translation class, created for you by default:

class Article < ActiveRecord::Base translates :name, :content end

ArticleTranslation will be generated automagically :)

Also, you'll need a migration:

create_table(:article_translations) do |t| t.references :article t.string :locale

t.string :name
t.text :content

end add_index :article_translations, [:article_id, :locale], :unique => true

Now you are able to translate values for the attributes :title and :description per locale:

I18n.locale = :en article = Article.new(:name => 'Translations are so simple!') I18n.locale = :uk article.name = 'Hello, from Ukraine!'

I18n.locale = :en article.name #=> 'Translations are so simple!' I18n.locale = :uk article.name #=> 'Hello, from Ukraine!'

Additional features can be discovered by searching the code and specs. Documentation is not available yet. I hope, it'll be done when releasing zn.ua. :)

== Nested attributes

Usually, when creating bootstrap data (e.g. seeds.rb) you want to pass all translations in one statement. You can do it using Rails' nested attributes, and we propose a very convenient option for that:

class Category < ActiveRecord::Base translates :name, :attributes => true end

Usage:

Category.create!(:translations_attributes => [ { :locale => :en, :name => 'Science' }, { :locale => :ru, :name => 'Наука' } ])

== Fetching records with selected translations

If you want (and you probably do want) to fetch only records with specified translation, you can do it now:

Article.with_translation(:ru)

This code returns an ActiveRecord::Relation object, so you can chain your query furthermore.

== Note on Patches/Pull Requests

  • Fork the project.
  • Make your feature addition or bug fix.
  • Add tests for it. This is important so I don't break it in a future version unintentionally.
  • Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
  • Send me a pull request. Bonus points for topic branches.

== Copyright

Copyright (c) 2010 Pavel Forkert. See LICENSE for details.

FAQs

Package last updated on 01 May 2011

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc