我有一个多语言的管理员(英语和葡萄牙语),需要保存两种语言的同时数据,如描述EN字段和描述PT字段在相同的形式。
Globalize2创造了一些魔力,我不知道如何保存它。我将在这里发布我的控制器操作,这显然需要一些重构。谢谢大家!
def create
@brand = Brand.create()
@brand.title = params[:title]
@brand.upload_logo(params[:logo]) unless params[:logo].blank?
@brand.order = params[:order]
@brand.priority = params[:priority]
plataforms = Plataform.find(:all, :conditions => ["id IN (?)", params[:plataforms]])
@brand.plataforms = plataforms
params[:pt].each do |k, v|
I18n.locale = :pt
eval "@brand.#{k} = v"
end
params[:en].each do |k, v|
I18n.locale = :en
eval "@brand.#{k} = v"
end
respond_to do |format|
if @brand.save
# if 1 == 1
flash[:notice] = 'Brand was successfully created.'
format.html { redirect_to(@brand) }
format.xml { render :xml => @brand, :status => :created, :location => @brand }
else
format.html { render :action => "new" }
format.xml { render :xml => @brand.errors, :status => :unprocessable_entity }
end
end
end对不起..。我忘了说..我的疑问是关于保存翻译。这段代码:
params[:pt].each do |k, v|
I18n.locale = :pt
eval "@brand.#{k} = v"
end
params[:en].each do |k, v|
I18n.locale = :en
eval "@brand.#{k} = v"
end发布于 2009-11-23 21:37:34
使用i18n进行全球化非常简单。
例如:
flash[:notice] = t 'Brand was successfully created'然后在配置/区域设置中创建一个en.yml:
en:
Brand was successfully created: "Brand was successfully created"葡萄牙语版本也遵循相同的约定:
pt: (not sure about the country code)
Brand was successfully created: "bla bla bla I don't speak portugese"https://stackoverflow.com/questions/1783107
复制相似问题