🎌 Rack::LocaleRootRedirect uses Rack:Accept to map '/' to a path based on the Accept-Language HTTP header.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
lib
spec
.gitignore
.rspec
.rubocop.yml
.travis.yml
Gemfile
LICENSE.md
README.md
Rakefile
rack-locale-root-redirect.gemspec

README.md

Rack::LocaleRootRedirect

Rack::LocaleRootRedirect redirects requests to "/" based on the Accept-Language HTTP header.

Installation

Add this line to your application’s Gemfile:

gem 'rack-locale-root-redirect'

And then execute:

$ bundle

Usage

Add the rack-locale-root-redirect gem in your Gemfile.

gem 'rack-locale-root-redirect'

With Ruby on Rails

Add these lines in your config/application.rb file, along other configuration instructions.

config.use Rack::Accept
config.use Rack::LocaleRootRedirect, fr: '/fr', en: '/en'

With Sinatra

Add these lines in your config.ru file, or wherever your Sinatra application is located.

use Rack::Accept
use Rack::LocaleRootRedirect, fr: '/fr', en: '/en'

The result

$ rackup &

$ curl -sI "http://0.0.0.0:9292" -H "Accept-Language: fr;q=1, en;q=0.8" | grep "302\|Location"
HTTP/1.1 302 Found
Location: /fr

$ curl -sI "http://0.0.0.0:9292" -H "Accept-Language: fr;q=0.4, en;q=0.8" | grep "302\|Location"
HTTP/1.1 302 Found
Location: /en

License

Rack::LocaleRootRedirect is © 2013-2015 Mirego and may be freely distributed under the New BSD license. See the LICENSE.md file.

About Mirego

Mirego is a team of passionate people who believe that work is a place where you can innovate and have fun. We're a team of talented people who imagine and build beautiful Web and mobile applications. We come together to share ideas and change the world.

We also love open-source software and we try to give back to the community as much as we can.