オプション1
次のyamlファイル構造があると仮定します
categories:
gastronomy: Gastronomy
family: Family
sports: Sports
scene: Scene
traditional: Tradition
music: Music
party: Party
これで、次のことができます。
@event.categories.map{|n| I18n.t("categories.#{n}"}.to_sentence
オプション2
さらに良いことCategory
に、ローカライズされた名前を返すようにモデルを変更できます。
class Category < ActiveRecord::Base
def name
key = read_attribute(:name)
return key if key.blank? # return immediately if nil
# use the key as value if the localization value is missing
I18.n("categories.#{key}", :default => key.humanize)
end
end
ここで、name
メソッドはローカライズされた値を返します。
cat.name # localized name
元のステートメントも機能します
@event.categories.map(&:name).to_sentence
オプション3
Globalize3gemを使用します。詳細については、このスクリーンキャストをご覧ください。