You can try using a cookie. If it's the visitor's first time, set a cookie. Let the user set the cookie once he clicks on the language he wants.
You may refer to his sample Wordpress Redirect based on the prescence of a cookie
You may tweak it a bit to do something like
if ( !isset($_COOKIE["language"])) {
if(!isset($_GET["language"])){ // Check if user has set a language through a get function
setcookie('language', 1, time()+1209600, "/", "http://www,yourdomain.com/".$_GET['language']."", false); // Set the chosen cookie
wp_redirect( get_site_url().'/'.$_GET['language'] ); exit; // redirect to the chosen language
}else{
setcookie('language', 1, time()+1209600, "/", "http://www,yourdomain.com/en", false); // If did not choose, just redirect to your default language
}
}else{
wp_redirect( get_site_url().'/'.$_COOKIE['language'] ); exit; // Else, redirect to the language based on the cookie stored previously
}