Как я могу определить разговорный язык для бизнеса с i18n? - PullRequest
0 голосов
/ 18 ноября 2018

Я разрабатываю приложение Ruby on Rails 5, в котором я использую гем I18n для трансляций представлений. Термины, используемые в представлениях, являются довольно общими и должны соответствовать всем предприятиям

Но для одного конкретного клиента бизнес требует очень определенных условий. Я не могу сделать эти термины общим переводом. Я могу представить 2 способа поддержать это:

  • создать определенный en-customer язык для использования с i18n
  • создайте определенный .yml как подраздел en.yml и переключитесь на него с помощью конфигурация

Как я могу сделать что-нибудь из этого?

Спасибо за вашу помощь!

1 Ответ

0 голосов
/ 30 января 2019

Это должно быть вполне выполнимо с вашим первым примером создания пользовательского кода локали.

Если вы настраиваете I18n для регистрации этой пользовательской локали и настраиваете запасной вариант для этой локали на базовом языке:

Rails.application.configure do
  config.i18n.available_locales = %i[en es fr en-customer]
  config.i18n.default_locale = :en
  config.i18n.backend.class.send(:include, I18n::Backend::Fallbacks)
  config.i18n.fallbacks.map('en-customer' => 'en')
end

Это должно позволить вам установить предпочтение для пользователей этой компании использовать пользовательский языковой стандарт, и вы можете создать файл yaml для замены только тех ключей, которые вам нужны.

Вы также можете сделать это без отката, но вам придется скопировать весь язык, а затем применить свои изменения, которые могут быть сложнее управлять при изменении текста в вашем приложении, и более подвержены поломкам, если вы пропустите ключ.

...