Personally, I would definitely consider any solution Autrijus Tang puts up. He's kinda one of those people who not only has been around the block, but he helped build the block you're trying to go around.
The nice thing about the solution in the page you mentioned is that it drops in and, other than the localizable text, the website doesn't change. This is a big improvement over other schemes I've seen, which generally involve post-processing the templates with the static text, then praying the dynamic text from the database is the right language.
Being right, does not endow the right to be rude; politeness costs nothing. Being unknowing, is not the same as being stupid. Expressing a contrary opinion, whether to the individual or the group, is more often a sign of deeper thought than of cantankerous belligerence. Do not mistake your goals as the only goals; your opinion as the only opinion; your confidence as correctness. Saying you know better is not the same as explaining you know better.
| [reply] |
| [reply] [d/l] [select] |
I've done this.
When putting together a solution, I found this presentation useful.
I used Class::DBI to model `resources' within my web application wherein the actual translated text (where required) was located in a linked table/sub-class.
Use content-negotiation, as mentioned in the article you reference, backed up with an option to override. You'll want a look at HTTP::Negotiate now if you haven't seen it already. Maybe also one of the session modules for retaining user preferences.
You'd also be well advised to get your web-designer to consider how their pixel-perfect navigation is going to look in other languages ;)
| [reply] |