Лучшая практика создания многоязычных приложений Rails

Привет всем: D Я только начал изучать Rails, и в настоящее время у меня есть одна проблема.

Я создаю веб-сайт Rails, который необходимо перевести на 4 языка. Какой был бы самый практичный и удобный способ сделать это?

Я читал, что главная цель - сделать отдельные папки для каждого языка и скопировать все представления для каждого языка. Но у меня все равно были бы notice сообщения на английском языке внутри моего контроллера, так как бы я справился с этим. Routes - тоже мое беспокойство. Должен ли я иметь 4 разных маршрута для 4 разных переведенных представлений.

Что вы рекомендуете для решения этой проблемы? Я не нашел ничего конкретного в Интернете.

Спасибо за ваши предложения!

Ответ 1

для уведомлений, которые вы можете сделать

  def create
    if user.save
      flash[:notice] = t(:user_was_successfully_created)
      redirect_to users_users_path
    else
      render :new
    end
  end

вы должны не иметь 4 разных маршрута

API интернационализации Rails (I18n)

взгляните на эту ссылку http://guides.rubyonrails.org/i18n.html

API интернационализации Rails (I18n)

Драйвер Ruby I18n (сокращенное для интернационализации), поставляемый с Ruby on Rails (начиная с Rails 2.2), обеспечивает простую в использовании и расширяемую структуру для перевода вашего приложения на отдельный пользовательский язык, отличный от английского, или для предоставления поддержка нескольких языков в вашем приложении.

Процесс "интернационализации" обычно означает абстрагирование всех строк и других битов конкретной локали (таких как форматы даты или валюты) из вашей заявки. Процесс "локализации" означает предоставление переводов и локализованных форматов для этих бит .1

Итак, в процессе интернационализации вашего приложения Rails вам необходимо:

Ensure you have support for i18n.
Tell Rails where to find locale dictionaries.
Tell Rails how to set, preserve and switch locales.

В процессе локализации вашего приложения вы, вероятно, захотите сделать следующие три вещи:

Replace or supplement Rails' default locale — e.g. date and time formats, month names, Active Record model names, etc.
Abstract strings in your application into keyed dictionaries — e.g. flash messages, static text in your views, etc.
Store the resulting dictionaries somewhere.

Это руководство проведет вас через API I18n и содержит руководство по интернационализации приложения Rails с самого начала.

После прочтения этого руководства вы узнаете: