Forum OpenACS Q&A: Multi-lingual options for Database look-up tables

I installed RC1 on Oracle with ease and at the moment I am testing the multilingual possibilities of OpenACS and it works like a charm. My compliments to Lars, Peter, and all who have worked on the project.

I was wandering have any of you given a thought on how to handle the multilingual options for database look-up tables. In the past I have dealt with the problem in two ways:

1) Add column for each language to the look-up table. It works well for 2 or 3 supported languages, however it is not a good idea to change the database schema each time there need for a new supported language. It also entails changes to the user interface.

2) Create an equivalence table that contains the Table name, record id of the look-up table, language key, message key, and the translated message. Then do a join in the queries. Database schema is simple, but it requires a lot more work to keep the data up to date (triggers) and adds an extra join to all the queries.

I would love to hear if you have thought of another solution?

Collapse
Posted by Dave Bauer on
I think you should just store the message-key in the database table, and localize the content on display.

Anyone more experienced with acs-lang care to comment?