Мультиязычный сайт с бэкэндом "only only" - PullRequest
0 голосов
/ 22 декабря 2011

Я создаю приложение на 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 Ответ

1 голос
/ 22 декабря 2011

Использовать batch_translations .Это маленький плагин, а не жемчужина, к сожалению.Но я недавно использовал его в проекте, и он работал просто отлично.Я думаю, что вы можете легко адаптировать его к вашим потребностям.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...