How can I redirect users on login based on their chosen language?
May be this can help you.

function custom_module_user_login(&amp;$edit, $account){
  $base_url;
  if($account-&gt;language) {
          $redirection = $base_url.'/'.$account-&gt;language;  
  } else{
      $redirection = $base_url;
  }

  // Unless there is already a redirection going, or the user is trying to reset his password, we redirect to $redirection.

  if (!is_null($redirection) &amp;&amp; (!isset($_POST['form_id']) || $_POST['form_id'] != 'user_pass_reset')){
    $_GET['destination'] = $redirection; // Should we use $edit['redirect'] instead..?
    $GLOBALS['destination'] = $redirection; // Should we use $edit['redirect'] instead..?
  }