2013-08-26 1 views
1

I18n_routing gem을 사용하여 Rails 웹 사이트를 운영하고 있습니다. 나는 이와 같은 경로를 가지고 : 장소 "뉴욕"이 될 수I18n_routing, 빈 경로 + 중첩 자원

domain.com/<place>/bookings 

. 내 목표는 경로는 다음과 같이 번역 될 것입니다 :

resources: 
    places: 'plats' 
    bookings: 'bokningar' 

이 같은 번역 파일을

resources :places, :path => '', :except => [:index, :create, :new] do 

    #resources :flight_pages, :path => 'flyg', :only => [:show, :index] 
    #resources :hotel_pages, :path => 'hotell', :only => [:show, :index]  
    localized do 
     resources :bookings, :except => [:edit, :update] do 
     get :get_method_desc, :on => :collection 
     get :get_image_path, :on => :collection  
     end 
    end 
    get :autocomplete_place_name, :on => :collection  
    end 

    localized do 
    resources :places, :only => [:index, :create, :new] 
    end 

: 그래서 같은 I18n_routing 통해 번역하려고

domain.com/<place>/bokningar 

나는 위와 같은 것을 가지고 있다면, I18n_routing은 "예약"이 번역 될 필요가 있다는 것을 인식하지 못하는 문제에 봉착한다.

내가 지역화 넣어 설정을 변경하면 전체 resoure 외부에서 수행 I가 시도

domain.com/plats/<place>/bokningar 

: 경로가로 변신 있도록

localized do 
    resources :places, :path => '', :except => [:index, :create, :new] do 

    #resources :flight_pages, :path => 'flyg', :only => [:show, :index] 
    #resources :hotel_pages, :path => 'hotell', :only => [:show, :index]  

     resources :bookings, :except => [:edit, :update] do 
     get :get_method_desc, :on => :collection 
     get :get_image_path, :on => :collection  
     end 

    get :autocomplete_place_name, :on => :collection  
    end 
    end 
    localized do 
    resources :places, :only => [:index, :create, :new] 
    end 

내가 번역 빈 경로 "장소"를 얻을 번역 파일에 places: ""을 설정하고 I18n_routing하면 건너 뜁니다.

어떻게 이런 번역을 얻기 위해 수행해야

domain.com/<place>/bokningar (:se) 
domain.com/<place>/bookings (:en) 

즉 빈 경로를 유지하고 중첩 된 자원 "예약"을 번역? 아만 Garg를 님의 질문에

편집 : 경로 I이 사용

new_place_booking_path(@place) #=> domain.com/<place>/bookings/new 
place_bookings_path(@place) #=> domain.com/<place>/bookings 
+0

위와 같은 URL에 대한 경로를 만드는 방법과 같은 몇 가지 예를 붙여 넣을 수 있습니까? 나는 지금 u r 경로를 사용하는 것을 의미합니다. some_link_path 또는 정적 URL을 좋아하세요? –

+0

물론, 몇 가지 예를 추가했습니다. 그것이 당신이 찾고 있었던 것이기를 바랍니다. – Christoffer

+0

번역 파일에'se :'를 지정 했습니까? – Bala

답변

1

언어에 따라 동적 변환 경로를 제공하는 보석이 있습니다. 그것은 I18n과 같은 로케일을 기반으로 URL을 생성합니다. 쉽게 구현이를위한있다 :

https://github.com/francesc/rails-translate-routes

는 GitHub의에 documention에 언급 된 단계를 수행합니다. yml 파일에서 경로에 대한 번역을 정의 할 수 있습니다. 예 : config/locales/routes.yml

en: 
    routes: 
    # you can leave empty locales, for example the default one 
se: 
    routes: 
    places: 'plats' 
    bookings: 'bokningar' 
+0

나는 레일스 번역 루트에 대해 알고 있었지만 결코 시도하지 않았다. 그것은 I18n_routing보다 효과적이며 내 문제를 해결했습니다. 감사합니다 아만! – Christoffer