One solution comes to my mind - you can use something like an internal dictionary. But this will require replacing all your text with special keywords that will later be automatically converted to a text in a corresponding language.
How to implement it is up to you. I have seen one implementation of this system using Smarty. There was a special function that looked up text by keyword from a database, inside a template it looked like this:
<p>{dictionary word="hello_world_text"}</p>
<form action="" method="post">
<input type="text" name="hello_world[text]" value="{dictionary word="default_text_value"}" />
<input type="submit" name="submit" value="{dictionary word="submit_text"}" />
</form>
When a template is be displayed, Smarty's internal function will lookup all the texts and place them into the page. Of course, you will have to first put all of the texts in different languages into the database.