Has anyone created a globalized site using RingoJS with Stick and Reinhardt? The site I'm creating needs to be fully internationalized so that it can be localized to many different languages. Is there any effort under way already to solve this problem, or am I bringing this up for the first time?
I have browsed the Django documentation to see how it does localized templates, and I found the LocaleMiddleware class and the {% trans %} template tag which are not implemented in Ringo/Reinhardt. Although, I think the trans tag is a little messy. The reality is that many web sites, and even web applications, have different features in the localizations than in the source language and hence different templates, which cannot be handled with the trans tag alone. It might be possible to use the "if" and "trans" tags together for smaller differences, but for major differences, this becomes pretty messy.
Also, I'm browsing the existing Ringo and Reinhardt source code and I'm finding all manner of i18n problems.
Examples: Hard-coded English strings in various places, especially error messages. The truncatechars filter cuts off strings between Unicode chars without considering decomposed Unicode characters or Unicode surrogate characters and whether or not it is cutting in the middle of them. The truncatewords filter cannot handle non-Western languages where words may not written with spaces between them or where they use different punctuation. Upper-, title-, and lower-casing strings are locale-sensitive functions and the upper, lower, and title casing filters do not heed the locale. The date filter requires a SimpleDate format template -- but how are users of the filter supposed to know what the correct format template is for every locale and for every length of format or combination of date components? Also, because you pick a format template when you create your reinhardt template, how do you switch that format template per locale? All I can think of right now is a big ole set of "if else" conditions that switches on the current locale.
There are many more of these. Should I create a bug for each of these problems so that we have a record of all of them? Or write them down on a wiki somewhere?
Just so you know, I've been doing globalization for 24 years now, the last 6 with Javascript. I'm new to RingoJS, however. Hence these questions.
Thanks,
Edwin