具有“仅英语”后端的多语言站点

时间:2011-12-22 17:18:33

标签: ruby-on-rails internationalization

我正在Rails 3.1上构建一个应用程序。前端将有5种语言,而后端只有英语。

管理员可以使用globalize3在后端创建对象以指定属性转换。这里是控制器的一部分,用于创建产品:

class Admin::ProductsController < ApplicationController
  before_filter :set_language
  after_filter :set_back_to_default_language

  def new
    @product = Product.new
  end

  def create
    @product = Product.create(params[:product])
    if @product.errors.empty?
      redirect_to admin_product_path(@product)
    else
      render :action => :new
    end
  end

  private
  def set_language
    I18n.locale = :it
  end

  def set_back_to_default_language
    I18n.locale = :en
  end
end

这将创建具有意大利属性设置的产品。但是如果需要一个属性输出:

<%= @product.errors[:title] %>

将是

translation missing: it.activerecord.errors.models.product.attributes.title.blank

您是否知道如何使用正确的语言设置属性,并且验证始终采用默认语言?我不能使用I18n.default_locale = :en因为在前端我有其他形式,验证字符串应该是本地化的。

1 个答案:

答案 0 :(得分:1)

使用batch_translations。这是一个小插件,不幸的是不是宝石。但我最近在一个项目中使用它,它工作得很好。我认为您可以轻松地根据您的需求进行调整。