gpt4 book ai didi

ruby-on-rails - URL 中的 i18n 语言环境

转载 作者:行者123 更新时间:2023-12-04 06:58:12 26 4
gpt4 key购买 nike

我想让我的应用程序的所有 url 都带有语言环境,例如:

http://domain.com
http://domain.com/user/new

成为 :

http://domain.com/en
http://domain.com/fr
http://domain.com/en/user/new
http://domain.com/fr/user/new

我怎么能在我所有链接中不传递语言环境的情况下做到这一点?

最佳答案

使用 :path_prefix您的 route 的选项:

map.namespace :my_locale, :path_prefix => "/:locale" do |localized|
localized.resources :users
localized.root :controller => 'your_controller', :action => 'your_action'
# other routes
end

在您的应用程序 Controller 中添加:
before_filter :set_current_locale

private
def set_current_locale
current_locale = 'en' # default one
current_locale = params[:locale] if params[:locale] # or add here some checking

I18n.locale = current_locale # if it doesn't work, add .to_sym
end

要创建链接,请使用标准的 url 助手。如果您有 params[:locale]设置,它会自动添加。所以:
photos_path  # /en/photos - if you are in en locale
photo_path(@photo) # /fr/photos/3 - if you are in fr locale

现在,如果您在任何没有区域设置的路径中:“www.mysite.com”,那么您可以通过添加 :locale => 'en' 生成本地化版本的链接。 :
users_path(:locale => 'en') # /en/users

您还可以使用上面的示例来更改当前语言环境。

我不确定 url 助手的名称是什么,所以只需输入 rake routes找到它。

关于ruby-on-rails - URL 中的 i18n 语言环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2282346/

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