I have many tables like the table Person:below, in
mysql database.
person_id, first_name,last_name, mi, gb_first_name,
gb_last_name, b5_first_name, b5_last_name, gender, dob
where different columns storing strings in
different encodings. At anytime, a web user can switch the language
and the application will get the values in the
right columns to generate web pages. The purpose of Multi-language tables is
to make multilanguage dynamic content management
easier for web applications. For example, to add a person record, the user
enter the English name, then switch the session language to gb2312, enter the
Chinese name in gb2312, and then switch the session language to big5, enter the
name in big5. And then commit the data into the database. The whole thing sounds
complicated but can be treated as a pattern and let a framework to take care of
those and the code can be as clean as a single language app. I actually have the
framework that works well for me with mysql database.
I'm trying to port the app to pgsql database but
got trouble doing so. I can read and set a row with multiple languages (in some
paricular cases), but cannot do queries
like (gb_first_name = 'A' and b5_first_name = 'B') with A a gb2312 string,
B a big5 string. The tables are of unicode encoded, and the dbclient encoding is
set to GBK. The application's char set are selectable by user among
iso-8859-1,gb2312 and big5.
I didn't do anything about language
encoding in mysql database, it just worked for me. At least with
english, gb2312 and big5 altogether in a table
like table Person above. I noticed that (english, gb2312, big5, Jp) cannot work
together even in mysql database. My approach seems fine with most
western languages
So after all such experimental work, I still don't
know how to make a real multi language web app such that the languages
are switchable within the same session.
Any suggestions? Any web application known to
be able to solve the problem? Thanks
|