Localization of Rails core

Why not have RoR define a reference set of modules and class (call it i18n for now) whose API implements the most basic i18n methods with no real functionality? Then the plugins could flesh out the functionality. I know this is pretty simplistic, but we need to start somewhere. As RoR evolves, the hooks could be strengthened, but at this point even one or two basic hooks would be a great start. I would envision i18n's submodules being included in the standard RoR frameworks and handling string translation (a la .t), error message translation, model translation, locale initialization, time zone determination, template selection, currency/time/date/number formatting, etc.

Key points:   1. API hooks need to be in many, many places   2. API hooks need to be in places that are currently deep within RoR undocumented code   3. We can start small -just one or two hooks.   4. Rails Core need not define any new functionality behind the hooks -they can effectively be no-ops that aim to replicate the current functionality.   5. For testing, a special Rails Locale can be defined so that test assertions based on translatable output can be consistent on any platform. The Rails locale would be the only locale effectively supported by the default (no-op) i18n implementation. Other implementations should mimic it for test compatibility.

This is essentially the idea I was promoting. I think a good way of introducing this is to write a plugin that will monkey patch rails core and provide the no-op api for l10n plugins. Once we do that we can sell it to all the l10n plugin devs and try to standardize around it. If we've got that going, it will look a lot more attractive to rails core dev. We'll start discussing this in Globalize dev.

Josh

introducing this is to write a plugin that will monkey patch rails core and provide the no-op api for l10n plugins. Once we do that we can sell it to all the l10n plugin devs and try to standardize around it. If we've got that going, it will look a lot more attractive to rails core dev. We'll start discussing this in Globalize dev.

I like where you're going, let's just slightly modify the core (without affecting performances and understandability) to render the hard coded strings in different languages.

And let's get all the l10n plugins developers to work together on defining a standard for dealing with l10n/i18n issues. If we can come to an agreement on what standard to use and get most plugins to use these conventions, it might then make sense to integrate it in the core. (if it doesn't affect the performances obviously).

Once again, I'm not asking for l10n/i18n support in Rails, just a simple way of having a core helper rendering in Italian, French or whichever language you use.

All non-core l10n issues should imho be dealt on a plugin level.

-matt