1

I have a Rails 6 app and a related API with grape. I want to set locale the same way.

In my routes :

  scope '(:locale)', locale: /#{I18n.available_locales.join("|")}/ do
    mount MyApi::Api => '/api'
    
    resources :users
    # [....]

    root to: 'home#index'
    

In my application, I update locale in application controller.

  def set_locale
    I18n.locale = extract_locale || I18n.default_locale
  end

  def extract_locale
    parsed_locale = params[:locale]
    I18n.available_locales.map(&:to_s).include?(parsed_locale) ? parsed_locale : nil
  end

  def default_url_options
    { locale: I18n.locale }
  end

I don't know how to update locale in my Api (locale is not in params).

LiKaZ
  • 306
  • 3
  • 9

0 Answers0