gpt4 book ai didi

ruby-on-rails - rails 4,全局化 gem,如何设置默认语言环境

转载 作者:太空宇宙 更新时间:2023-11-03 17:49:58 24 4
gpt4 key购买 nike

我正在使用 globalize gem 来支持多个语言环境。

config/locales 目录下有三个文件

en.yml,  ja.yml, ch-HK.yml

我的路由文件是

....
root :to => 'main#index', :locale => :en
scope ":locale", locale: /#{I18n.available_locales.join("|")}/ do
namespace(:api){ resources :badges }
namespace(:api){
resources :events do
get :list, :on => :collection
end
}
end
....

我的根路径 (/) 正在设置默认语言环境

但我不知道如何在 api_controller 中设置默认语言环境

我要

/api/events.json ->> /en/api/event.json
/ja/api/events.json ->> /ja/api/events.json

rails 项目中不接受吗?

必须添加/:locales/api~~ ?

最佳答案

每个请求都通过 Controller 传递,这是设置默认语言环境的地方。您需要做的就是设置 I18n.locale = :locale。有多种检测用户区域设置的方法,即请求 header 、用户首选语言(如果已记录和存储)。您还可以检查请求格式(如果是 API)并相应地设置语言环境。此处不需要为 url 设置语言环境。

这是我用来设置语言环境的一段代码:

before_filter :set_locale

def set_locale
if defined?(params) && params[:locale]
I18n.locale = params[:locale]
elsif current_user && current_user.language_id.present?
I18n.locale = current_user.language.code
elsif defined?(request)
I18n.locale = extract_locale_from_accept_language_header
end
I18n.locale ||= I18n.default_locale
I18n.locale = :en unless valid_languages.include?(I18n.locale.to_sym)
end

关于ruby-on-rails - rails 4,全局化 gem,如何设置默认语言环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26602647/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com