gem I18n_routing を使用した Rails Web サイトがあります。次のようなパスがあります。
domain.com/<place>/bookings
場所は「ニューヨーク」かもしれません。私の目標は、ルートを次のように翻訳することです。
domain.com/<place>/bokningar
私は次のように I18n_routing を介してこれを翻訳しようとしています:
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
次のような翻訳ファイルを使用します。
resources:
places: 'plats'
bookings: 'bokningar'
上記のようにすると、I18n_routing が「予約」を翻訳する必要があることを認識しないという問題が発生します。
ローカライズされた doure をリソース全体の外に配置するように設定を変更すると、次のようになります。
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
空のパス「場所」が翻訳されるため、ルートは次のようになります。
domain.com/plats/<place>/bokningar
翻訳ファイルに設定しようとしplaces: ""
ましたが、I18n_routing はそれをスキップします。
このような翻訳を取得するにはどうすればよいですか。
domain.com/<place>/bokningar (:se)
domain.com/<place>/bookings (:en)
つまり、空のパスを保持し、ネストされたリソース「予約」を翻訳しましたか?
Aman Garg に応じて編集: これらに使用するパスは次のとおりです。
new_place_booking_path(@place) #=> domain.com/<place>/bookings/new
place_bookings_path(@place) #=> domain.com/<place>/bookings