Syck). Closes #114
Where translations are drawn from different sources which may be using different codes for the same language it can be useful to have mappings where two codes fallback to each other. This patch allows that by ensuring that the recursion in the computation of the mapping terminates instead of running out of stack.
…This is useful for other translation engines that do not want to use the key based syntax (tr8n). Also makes it a lot easier to put a cache in front of I18n.
It was incorrectly written; Based both on the knowledge of my mother tongue (Polish) and the pluralization rules specified on the Unicode.org website (http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/language_plural_rules.html)
…18n::MissingTranslation (which is a plain Object) for the default case. Create an I18n::MissingTranslationData exception only if it needs to be raised to the user.
…needs further investigation as MissingTranslationData still is a subclass of Exception and the I18n.t still simply raises (as currently defined by the API).
…w translation helper lookup cascade
…tion_handler). Add an I18n::ExceptionHandler class to allow the inclusion of modules for more flexiblity in handling exceptions. Also, include the ability to html format the message of MissingTranslationData similar to what ActionPack's view translation helper does (so it can be removed or bypassed over there, giving more control to users). Also, add the ability to pass an :exception_handler option to force usage of an exception_handler per request. Also, deprecate I18n.default_exception_handler. Please use the class I18n::ExceptionHandler instead (an instance of which is set to I18n.exception_handler by default)
(was "translation missing: foo, bar")