diff options
author | elijah <elijah@riseup.net> | 2013-12-22 01:45:41 -0800 |
---|---|---|
committer | elijah <elijah@riseup.net> | 2013-12-22 02:00:49 -0800 |
commit | 665964bcbba69829a4ff1e7d7bd936f90d49b3f7 (patch) | |
tree | bc5356220eaca2465bd135f45edf8000d6c254be /config | |
parent | 5bf1462140a7aa17ea815ccc5105ace6fa878d83 (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.yml | 8 | ||||
-rw-r--r-- | config/initializers/i18n.rb | 10 | ||||
-rw-r--r-- | config/routes.rb | 57 |
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 |