首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Globalize2的多语言管理

使用Globalize2的多语言管理
EN

Stack Overflow用户
提问于 2009-11-23 21:23:56
回答 1查看 280关注 0票数 0

我有一个多语言的管理员(英语和葡萄牙语),需要保存两种语言的同时数据,如描述EN字段和描述PT字段在相同的形式。

Globalize2创造了一些魔力,我不知道如何保存它。我将在这里发布我的控制器操作,这显然需要一些重构。谢谢大家!

代码语言:javascript
复制
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

对不起..。我忘了说..我的疑问是关于保存翻译。这段代码:

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

发布于 2009-11-23 21:37:34

使用i18n进行全球化非常简单。

例如:

代码语言:javascript
复制
flash[:notice] = t 'Brand was successfully created'

然后在配置/区域设置中创建一个en.yml:

代码语言:javascript
复制
en:
 Brand was successfully created: "Brand was successfully created"

葡萄牙语版本也遵循相同的约定:

代码语言:javascript
复制
pt: (not sure about the country code)
Brand was successfully created: "bla bla bla I don't speak portugese"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1783107

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档