module Translatable

Public Class Methods

globalize(*fields) click to toggle source
# File lib/generators/tmatt_cms/templates/concerns/translatable.rb, line 23
def self.globalize(*fields)
  fields.each do |field|
    translates field
    globalize_accessors :attributes => [field]
    translate_field field
  end
end
translate_field(field) click to toggle source
# File lib/generators/tmatt_cms/templates/concerns/translatable.rb, line 5
def self.translate_field(field)
  define_method(field) do
    self.public_send "#{field}_#{I18n.locale}"
  end

  define_method("#{field}_dashboard") do
    I18n.locale == :zh ? to_dashboard(to_s_zh(field), to_s_en(field)) : to_dashboard(to_s_en(field), to_s_zh(field))
  end

  define_method("#{field}_trans") do
    I18n.locale == :en ? self.public_send("#{field}_zh").to_s : self.public_send("#{field}_en").to_s
  end

  define_method("print_#{field}_trans") do
    I18n.locale == :en ? '中文: ' + self.public_send("#{field}_zh").to_s : 'English: ' + self.public_send("#{field}_en").to_s
  end
end

Public Instance Methods

to_dashboard(main, trans) click to toggle source
# File lib/generators/tmatt_cms/templates/concerns/translatable.rb, line 40
def to_dashboard(main, trans)
  '<span>' + main + '</span><br/><span class="font-italic font-grey">' + trans + '</span>'
end
to_s_en(field) click to toggle source
# File lib/generators/tmatt_cms/templates/concerns/translatable.rb, line 32
def to_s_en(field)
  self.public_send("#{field}_en").to_s
end
to_s_zh(field) click to toggle source
# File lib/generators/tmatt_cms/templates/concerns/translatable.rb, line 36
def to_s_zh(field)
  self.public_send("#{field}_zh").to_s
end