Index: modules/locale/locale.module =================================================================== RCS file: /cvs/drupal/drupal/modules/locale/locale.module,v retrieving revision 1.262 diff -u -p -r1.262 locale.module --- modules/locale/locale.module 10 Oct 2009 16:48:38 -0000 1.262 +++ modules/locale/locale.module 11 Oct 2009 16:44:19 -0000 @@ -286,6 +286,7 @@ function locale_language_selector_form(& '#type' => 'fieldset', '#title' => t('Language settings'), '#weight' => 1, + '#access' => ($form['#user_category'] == 'account' || ($form['#user_category'] == 'register' && user_access('administer users'))), ); // Get language negotiation settings. @@ -338,7 +339,7 @@ function locale_form_alter(&$form, &$for if (variable_get('language_count', 1) > 1) { // Display language selector when either creating a user on the admin // interface or editing a user account. - if (($form_id == 'user_register_form' && user_access('administer users')) || ($form_id == 'user_profile_form' && $form['#user_category'] == 'account')) { + if ($form_id == 'user_register_form' || ($form_id == 'user_profile_form' && $form['#user_category'] == 'account')) { locale_language_selector_form($form, $form_state, $form['#user']); } } Index: modules/user/user.module =================================================================== RCS file: /cvs/drupal/drupal/modules/user/user.module,v retrieving revision 1.1062 diff -u -p -r1.1062 user.module --- modules/user/user.module 10 Oct 2009 21:39:03 -0000 1.1062 +++ modules/user/user.module 11 Oct 2009 16:11:32 -0000 @@ -3136,6 +3136,12 @@ function user_register_submit($form, &$f $form_state['values']['pass'] = $pass; $form_state['values']['init'] = $form_state['values']['mail']; + // Assign the currently active language, if the user did not select a language + // on the registration form, to properly translate user e-mails. + if (empty($form_state['values']['language'])) { + $form_state['values']['language'] = $GLOBALS['language']->language; + } + $account = $form['#user']; $account = user_save($account, $form_state['values']); // Terminate if an error occurred during user_save(). Index: modules/user/user.test =================================================================== RCS file: /cvs/drupal/drupal/modules/user/user.test,v retrieving revision 1.63 diff -u -p -r1.63 user.test --- modules/user/user.test 10 Oct 2009 16:48:39 -0000 1.63 +++ modules/user/user.test 11 Oct 2009 16:10:37 -0000 @@ -123,7 +123,7 @@ class UserRegistrationTestCase extends D $this->assertTrue(($new_user->created > REQUEST_TIME - 20 ), t('Correct creation time.')); $this->assertEqual($new_user->status, variable_get('user_register', 1) == 1 ? 1 : 0, t('Correct status field.')); $this->assertEqual($new_user->timezone, variable_get('date_default_timezone'), t('Correct time zone field.')); - $this->assertEqual($new_user->language, '', t('Correct language field.')); + $this->assertEqual($new_user->language, $GLOBALS['language']->language, t('Correct language field.')); $this->assertEqual($new_user->picture, '', t('Correct picture field.')); $this->assertEqual($new_user->init, $mail, t('Correct init field.')); }