Лучший способ локализации - использовать I18n, проверьте этот пост: https://guides.rubyonrails.org/i18n.html#setup-the-rails-application-for-internationalization
Базовый I18n
Сначала добавьте локали в свой контроллер application.rb
config.i18n.available_locales = ["en-GB", "en-US"]
config.i18n.default_locale = "en-US"
Затем создайте 2 файла en-US.yml
и en-GB.yml
в config/locales
# en-GB.yml
en-Gb:
zipcode: "PostCode"
# en-US.yml
en-US:
zipcode: "ZipCode"
Затем в вашем контроллере вам нужно будет установить словарь, который будет использоваться для перевода.Он определяется с помощью переменной I18n.locale
.
# example when locale is passing through params
before_action :set_locale
def set_locale
I18n.locale = I18n.available_locales.include?(params[:locale]) ? params[:locale] : I18n.default_locale
end
И, наконец, в ваших представлениях: <% = t ('zipcode')%>
Или, если вам нужны рубиновые файлы:
I18n.t('zipcode')
Локализация атрибутов ActiveRecord
То же, что и выше, вы можете создать active_record.en-US.yml в config/locales
# active_record.en-US.yml
en-US:
activerecord:
attributes:
your_model_name:
zipcode: 'ZipCode'