No release in over 3 years
Low commit activity in last 3 years
Provides a backend to the i18n gem to allow a definition to contain embedded references to other definitions by introducing the special embedded notation ${}. E.g. {foo: 'bar', baz: ${foo}} will evaluate t(:baz) to 'bar'.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

Runtime

 Project Readme

I18n Recursive Lookup Build status

Provides a backend to the i18n gem to allow a definition to contain embedded references to other definitions by introducing the special embedded marker ${}.

All definitions are lazily evaluated on lookup, and once compiled they're written back to the translation store so that all interpolation happens once.

Example

# example.yml
foo:
    bar: boo
baz: ${foo.bar}

I18n.t(:baz) will correctly evaluate to boo.

Installation

Install the gem either by putting it in your Gemfile

gem 'i18n-recursive-lookup'

or by installing it using rubygems

gem install i18n-recursive-lookup

Add it to your existing backend by adding these lines to your config/initializers/i18n.rb (create one if one doesn't exist):

# config/initializers/i18n.rb
require 'i18n/backend/recursive_lookup'
I18n::Backend::Simple.send(:include, I18n::Backend::RecursiveLookup)

Of course you can replace the I18n::Backend::Simple with whatever backend you wish to use.

TODO

  • add detection for infinite embedding cycles