Ich bin mit dieser Anleitung: http://edgeguides.rubyonrails.org/i18n.htmlRuby on Rails Routen mit Locales
Was ich möchte:
/about
geht an pages#about
mit dem notleidenden locale von en
.
/en/about
geht zu pages#about
mit dem Gebietsschema en
.
/es/about
geht zu pages#about
mit dem Gebietsschema es
.
Was erhalte ich:
/about
mit den Lokalisierungs von about
-root_path
geht.
/en/about
geht zu pages#about
mit dem Gebietsschema en
.
/es/about
geht zu pages#about
mit dem Gebietsschema es
. Hier
ist ein Code:
# config/routes.rb
match '/:locale' => 'pages#news'
scope "(:locale)", :locale => /en|es/ do
match '/abcd' => 'pages#abcd'
match '/plan' => 'pages#plan'
match '/about' => 'pages#about'
match '/history' => 'pages#history'
match '/projects' => 'pages#projects'
match '/donate' => 'pages#donate'
match '/opportunities' => 'pages#opportunities'
match '/board' => 'pages#board'
end
root :to => "pages#news"
# app/controller/application_controller.rb
before_filter :set_locale
def set_locale
# if params[:locale] is nil then I18n.default_locale will be used
I18n.locale = params[:locale]
end
def default_url_options(options={})
{ :locale => I18n.locale }
end
Wenn ich die Führung richtig lese, Abschnitt 2.5, so dass ich in der Lage sollte /about
zugreifen und haben sie das Standardgebietsschema laden.
von 2,5:
# config/routes.rb
scope "(:locale)", :locale => /en|nl/ do
resources :books
end
Mit diesem Ansatz werden Sie keine Routing-Fehler erhalten, wenn Ihre Ressourcen wie http://localhost:3001/books ohne locale erreichbar. Dies ist nützlich, wenn Sie das Standardgebietsschema verwenden möchten, wenn nicht angegeben ist.
Oh! Jetzt verstehe ich. Vielen Dank! Das funktioniert perfekt. – tinifni