Browse files

Added an example and explaination for using an optional path scope fo…

…r the locale
  • Loading branch information...
1 parent 9a665aa commit 95ecc08a30c4f5e8e59608777e3d98adf28fa693 @tsdbrown tsdbrown committed Aug 17, 2010
Showing with 11 additions and 0 deletions.
  1. +11 −0 railties/guides/source/i18n.textile
@@ -231,6 +231,17 @@ end
Now, when you call the +books_path+ method you should get +"/en/books"+ (for the default locale). An URL like +http://localhost:3001/nl/books+ should load the Netherlands locale, then, and following calls to +books_path+ should return +"/nl/books"+ (because the locale changed).
+If you don't want to force the use of a locale in your routes you can use an optional path scope (donated by the use brackets) like so:
+# config/routes.rb
+scope "(:locale)", :locale => /en|nl/ do
+ resources :books
+With this approach you will not get a +Routing Error+ when accessing your resources such as +http://localhost:3001/books+ without a locale. This is useful for when you want to use the default locale when one is not specified.
Of course, you need to take special care of the root URL (usually "homepage" or "dashboard") of your application. An URL like +http://localhost:3001/nl+ will not work automatically, because the +root :to => "books#index"+ declaration in your +routes.rb+ doesn't take locale into account. (And rightly so: there's only one "root" URL.)
You would probably need to map URLs like these:

0 comments on commit 95ecc08

Please sign in to comment.