Как добавить переключатель языка в форму пользователя / регистрации в Drupal 6 - PullRequest
4 голосов
/ 05 апреля 2011

Я пытаюсь добавить языковые настройки в форме пользователя / регистрации (как при редактировании пользователя), но мне не удалось найти решение через Google.

Есть идеи, как добавить языковые настройки пользователя в регистрационную форму?

Заранее спасибо

1 Ответ

1 голос
/ 19 апреля 2011

Мне так и не удалось найти прямого решения.
Так что, похоже, потребуется небольшой пользовательский модуль. Я скопировал реализацию hook_user из модуля locale и немного изменил ее.
Так что создайте свой собственный модуль, и этого хука будет достаточно.

/**
 * Implementation of hook_user().
 */
function yourmodulename_user($op, &$edit, &$account, $category = NULL) {
  global $language;

  // If we have more then one language and either creating a user on the
  // admin interface or edit the user, show the language selector.
  if ($op == 'register') {
        $languages = language_list('enabled');
        $languages = $languages[1];

        // If the user is being created, we set the user language to the page language.
        $user_preferred_language = $user ? user_preferred_language($user) : $language;

        $names = array();
        foreach ($languages as $langcode => $item) {
          $name = t($item->name);
          $names[$langcode] = $name . ($item->native != $name ? ' ('. $item->native .')' : '');
        }
        $form['locale'] = array(
          '#type' => 'fieldset',
          '#title' => t('Language settings'),
          '#weight' => 1,
        );

        $form['locale']['language'] = array(
          '#type' => (count($names) <= 5 ? 'radios' : 'select'),
          '#title' => t('Language'),
          '#default_value' => $user_preferred_language->language,
          '#options' => $names,
          '#description' => t("This account's default language for e-mails."),
        );
        return $form;
    }
}
...