Locale Chooser - A Rack Middleware for Locale Selection
Priority
Cookie Setting > Geolocation > HTTP Accept Language Header > Default
Prerequisites
GeoIP C API Installed: http://www.maxmind.com/app/c GeoIP Ruby Wrapper Installed: http://rubyforge.org/scm/?group_id=947
Install
gem install rack-locale_chooser
Example for Rails Use on some enviroment file:
config.gem 'rack-locale_chooser'
config.middleware.use 'Rack::LocaleChooser', :geodb_path => '/usr/local/share/GeoIP/GeoLiteCity.dat', :default_domain => 'example.com', :host_mappings => { :es => 'es.example.com', :pt_BR => 'br.example.com' }, :country_mappings => { 'BR' => :pt_BR, 'MX' => :es }
Params
host_mappings -> Mapping from locale to host for url rewriting country_mappings -> Mapping from country codes returned by GeoIP to locales default_domain -> default domain for cookie setting geodb_path -> path for GeoIP dat file