Я создаю приложение на 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
, потому что во внешнем интерфейсе у меня есть другая форма, и строки проверки должны быть локализованы.