Рейтинг:1

Как правильно установить язык, используемый модальной формой?

флаг us

У меня есть кнопка, связанная через контроллер, чтобы открыть пользовательскую форму в модальном режиме:

Обратный вызов контроллера:

  /**
   * Обратный вызов для открытия модальной формы.
   */
  публичная функция openShareLinkModalForm() {
    $response = новый AjaxResponse();

    // Получить модальную форму с помощью конструктора форм.
    $modal_form = $this->formBuilder->getForm('Drupal\ssc_wsl\Form\ShareLinkModalForm');

    // Добавьте команду AJAX, чтобы открыть модальное диалоговое окно с формой в качестве содержимого.
    $response->addCommand(new OpenModalDialogCommand($this->t('Поделитесь ссылкой на эту страницу.'), $modal_form, ['width' => '1200']));
        
    вернуть $ответ;
  }
}

это работает нормально, за исключением того, что когда моя кнопка находится на странице FR, модальное окно по-прежнему открывается на английском языке.

Из трюка, который я использовал в другом месте, я попытался добавить этот код в обратный вызов непосредственно перед вызовом getForm():

$language_manager = \Drupal::languageManager();
$langcode = $language_manager->getCurrentLanguage(LanguageInterface::TYPE_CONTENT)->getId();
$language = $language_manager->getLanguage($langcode);
$language_manager->setConfigOverrideLanguage($language);

Это не имеет никакого значения. Обратный вызов контроллера, по-видимому, основывается на переводе значения в: $language_manager->getCurrentLanguage(LanguageInterface::TYPE_CONTENT), и это значение всегда является значением по умолчанию, установленным для сайта (если я устанавливаю язык сайта по умолчанию на FR; тогда только модальный шоу на фр.).

Вопрос в том, является ли это правильным способом установки языка, используемого модальным?

Jaypan avatar
флаг de
Как вы загружаете модальное окно и как осуществляется согласование языков на вашем сайте? Если язык указан по URL-адресу или префиксу пути, вам необходимо убедиться, что вызов AJAX направлен на правильный URL-адрес или префикс пути, чтобы загрузить правильный язык. Если вы покажете какой-то код и ответите на первые вопросы в моем комментарии, вам будет проще оказывать поддержку.
liquidcms avatar
флаг us
@Jaypan, да.. это было.. Доах!! Спасибо.
Jaypan avatar
флаг de
Я добавил свой комментарий в качестве ответа. Если бы вы могли отметить это, пожалуйста, и спасибо :)
Рейтинг:1
флаг de

Если язык указан по URL-адресу или префиксу пути, вам необходимо убедиться, что вызов AJAX направлен на правильный URL-адрес или префикс пути, чтобы загрузить правильный язык.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.