2010-02-17 71 views

回答

2

使用:path_prefix选项:

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

在应用程序控制器添加:

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 

现在,如果你是在是没有任何的语言环境路径:,然后就可以生成链接到本地​​化版本添加:locale => 'en'“www.mysite.com”:

users_path(:locale => 'en') # /en/users 

你也可以使用上面的例子来改变当前的语言环境。

我不确定url helpers的名称是什么,所以只需键入rake routes即可找到它。

0

用作导轨导向:

# config/routes.rb 
scope "/:locale" do 
    resources :books 
end 

设置的地点:

before_filter :set_current_locale 

private 
def set_current_locale 
    I18n.locale = params[:locale] 
end