The forthcoming Rails 1.2 addresses the multi-byte text part of the i18n problem, but not the translation part. I've been looking for a nice simple way to do things, but haven't found anything which feels quite right so far.
Inspired by Thomas Fuchs' minimalist translation script ( mir.aculo.us JavaScript with Thomas Fuchs » Blog Archive » Ruby on Rails i18n revisited ), I've created yet another translation system.
This differs from the gettext _() approach:
* Unobtrusive format in templates: ``To translate'' rather than <%= _('To translate') %>
* The string lookup is done once per template at compile time for a more efficient system: no repeated lookups on every request.
* The translated bits can contain code, like ``To translate with a <%= number %> of items'' so order of the inserts can be modified.
* You can refer to text by a symbol so translations aren't lost when you make minor changes to the text. ``:symbol The text to translate''
More details, the code, and a sample app, here:
http://www.fluffy.co.uk/rails-translation/
I would appreciate comments on this approach before I start using it in my app!
Thanks,
Ben