The best way is without plugin - i set WP3.0 with multisite; the first blog is a dummy to rewrite the uesers to right blog with his language, a small script in the theme to rewirte ro the right language; i see in the browser-language of the users and rewrite; the second is the default blog, the third blog is another blog and so on - olso it is possible to swich the blog from post tot post with core function of WPMU and you can add own functions to post draft in other blogs from published post in a blog
update for your question:
Sorry, my english is bad
I install wp3.0 or MU and the first blog, the admin-blog has an small theme, one template with a small function. The function read the browser-language of the users on the frontend of the domain and sitch then to the other blog of this install, she have this language as default.
All other blogs are for different languages and one blog is for one language.
So it is possible to has great tables for the different posts and all works with WP core methods. WPMU has enough function to switch from post to post in different language. Give it a post in blog english and link to post in blog german, than i write this with an own plugin in the postmeta of the post. So it is possible for the users, he can switch on the frontend from a post in other language. Also you can use
wp_insert_post() to add an draft in blog german maybe, when you publish in blog english.
I hope you understand my way - works great and i have many customer with this solution.
Update, pulled from the comments 12/22/2012
We have created a free plugin to do this:
bueltge Dec 22 '11