= i18n_column
== Introduction
This extension provides the capabilities of storing and retrieving translations from a single database column. The translations are stored as a JSON object i.e. {"en":"Home","de":"Zuhause"}.
The current and default language are stored within the class I18nColumn::Language. On each request the current language must be set via I18nColumn::Language.current_lang = 'en'. If not set the default language is taken. I18nColumn::Language.current_lang is used as the JSON key to store a translation i.e. "en":"Home".
== Installation
* Recently a gem version will be provided on gemcutter.
* Run rails generate i18n_column:install. It will generate a i18n_column initializer file in order to set the default language.
== Example
Migration
class CreateNodes < ActiveRecord::Migration
def self.up
create_table(:nodes) do |t|
t.text(:name)
end
end
def self.down
drop_table :nodes
end
end
Model
class Node < ActiveRecord::Base
i18n_column(:name)
end
Controller
class ApplicationController < ActionController::Base
before_filter(:set_i18n_column_lang)
private
def set_i18n_column_lang
I18nColumn::Language.current_lang = params[:lang]
end
end
Console
I18nColumn::Language.current_lang = 'en'
node = Node.create!(:name => 'Home') => {"en":"Home"}
node.name => 'Home'
I18nColumn::Language.current_lang = 'de'
node.name = 'Zuhause'
node.save! => {"en":"Home","de":"Zuhause"}
node.name => 'Zuhause'
== Copyright
Copyright (c) 2010 Philipp Ullmann. See LICENSE for details.