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).