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