we did it once like this:
store all the texts in a separate table, e.g.
table text, columns:
id primary key,
id_language primary key,
text
(id_language = ISO language codes)
so you can store various versions of the text (one id number) for different language ids.
in the rest of the tables, reference to a text via its id.
let the user select a language. the selection script sets a language cookie that contains the iso code.
when retrieving texts for display, include that cookie value in the where clause:
$text = db_query("select text from text where id=$id and id_language='$LANGUAGE_COOKIE'");
now it's easy to switch between languages.
I hope I put it not too complicated ...