2010-02-17 74 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