I wrote an extension that sets the language (of an anonymous users) to the value stored in the ‘language’ variable inside the global variables (defined in the index.php file).
This is done by setting a cookie on the ‘sessions_start’ hook. This way the user messages (all system messages) will show up in the language the anonymous user is visiting.
Works for EE 2.x
Make sure you have the ‘language’ variable defined like this:
$assign_to_config['global_vars'] = array(
"lang_code" => "nl",
"language" => "dutch"
);