summaryrefslogtreecommitdiff
path: root/config
diff options
context:
space:
mode:
authorelijah <elijah@riseup.net>2013-12-22 01:45:41 -0800
committerelijah <elijah@riseup.net>2013-12-22 02:00:49 -0800
commit665964bcbba69829a4ff1e7d7bd936f90d49b3f7 (patch)
treebc5356220eaca2465bd135f45edf8000d6c254be /config
parent5bf1462140a7aa17ea815ccc5105ace6fa878d83 (diff)
locale prefix support:
* set locale based on request header * enforce locale path prefix when current locale is not the default * note: don't use root_path anymore, instead use home_path
Diffstat (limited to 'config')
-rw-r--r--config/defaults.yml8
-rw-r--r--config/initializers/i18n.rb10
-rw-r--r--config/routes.rb57
3 files changed, 21 insertions, 54 deletions
diff --git a/config/defaults.yml b/config/defaults.yml
index eb31301..98dc334 100644
--- a/config/defaults.yml
+++ b/config/defaults.yml
@@ -45,7 +45,9 @@ common: &common
user_actions: ['destroy_account']
admin_actions: ['change_pgp_key', 'change_service_level', 'destroy_account']
billing: ~
-
+ default_locale: :en
+ available_locales:
+ - :en
service_levels: &service_levels
service_levels:
0:
@@ -89,6 +91,10 @@ test:
secret_token: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
reraise_errors: true
billing: {}
+ default_locale: :en
+ available_locales:
+ - :en
+ - :de
production:
<<: *downloads
diff --git a/config/initializers/i18n.rb b/config/initializers/i18n.rb
index 574d169..c277a22 100644
--- a/config/initializers/i18n.rb
+++ b/config/initializers/i18n.rb
@@ -1,2 +1,10 @@
+I18n.enforce_available_locales = true
+I18n.available_locales = APP_CONFIG[:available_locales]
+I18n.default_locale = APP_CONFIG[:default_locale]
-I18n.available_locales = ['en']
+# Used to match locales route prefixes
+MATCH_LOCALE = /(#{I18n.available_locales.join('|')})/
+
+# I18n.available_locales is always an array of symbols, but for comparison with
+# params we need it to be an array of strings.
+LOCALES_STRING = I18n.available_locales.map(&:to_s)
diff --git a/config/routes.rb b/config/routes.rb
index 3b29251..12bfe93 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -1,56 +1,9 @@
LeapWeb::Application.routes.draw do
- root :to => "home#index"
-
- # The priority is based upon order of creation:
- # first created -> highest priority.
-
- # Sample of regular route:
- # match 'products/:id' => 'catalog#view'
- # Keep in mind you can assign values other than :controller and :action
-
- # Sample of named route:
- # match 'products/:id/purchase' => 'catalog#purchase', :as => :purchase
- # This route can be invoked with purchase_url(:id => product.id)
-
- # Sample resource route (maps HTTP verbs to controller actions automatically):
- # resources :products
-
- # Sample resource route with options:
- # resources :products do
- # member do
- # get 'short'
- # post 'toggle'
- # end
#
- # collection do
- # get 'sold'
- # end
- # end
-
- # Sample resource route with sub-resources:
- # resources :products do
- # resources :comments, :sales
- # resource :seller
- # end
-
- # Sample resource route with more complex sub-resources
- # resources :products do
- # resources :comments
- # resources :sales do
- # get 'recent', :on => :collection
- # end
- # end
-
- # Sample resource route within a namespace:
- # namespace :admin do
- # # Directs /admin/products/* to Admin::ProductsController
- # # (app/controllers/admin/products_controller.rb)
- # resources :products
- # end
-
- # See how all your routes lay out with "rake routes"
+ # Please do not use root_path or root_url. Use home_path and home_url instead,
+ # so that the path will be correctly prefixed with the locale.
+ #
+ root :to => "home#index"
+ get '(:locale)' => 'home#index', :locale => MATCH_LOCALE, :as => 'home'
- # This is a legacy wild controller route that's not recommended for RESTful applications.
- # Note: This route will make all actions in every controller accessible via GET requests.
- # match ':controller(/:action(/:id))(.:format)'
end