Posted over 8 years ago. Visible to the public. Repeats.

I18n fallback locales

When you need to create a locale for a language variant (like Austrian for German), you probably don't want to duplicate your entire de.yml file only to change a few minor exceptions for our Austrian friends.

Luckily, the I18n gem used by Rails has a fallback feature where you can make one locale file fall back to another if no translation is available.

In the example above you would have a config/locales/de_DE.yml:

de_DE: # hundreds of translations here

… and another locale config/locales/de_AT.yml:

de_AT: # only a handful exceptions here

Now write the following lines to config/initializers/i18n.rb to make de_AT fall back to de_DE:

require "i18n/backend/fallbacks" I18n::Backend::Simple.send(:include, I18n::Backend::Fallbacks)'de_AT' => 'de_DE')

Rails 2

For Rails 2.3.11 you need to upgrade your project to use the I18n gem by adding this to the top of your Gemfile:

gem 'i18n'

Then run

bundle install

By refactoring problematic code and creating automated tests, makandra can vastly improve the maintainability of your Rails application.

Owner of this card:

Henning Koch
Last edit:
almost 4 years ago
by Emanuel De
swiss, switzerland, at, ch
About this deck:
We are makandra and do test-driven, agile Ruby on Rails software development.
License for source code
Posted by Henning Koch to makandra dev
This website uses cookies to improve usability and analyze traffic.
Accept or learn more