Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Drupal 8:通知消息未翻译_Php_Email_Drupal_Localization_Drupal Modules - Fatal编程技术网

Php Drupal 8:通知消息未翻译

Php Drupal 8:通知消息未翻译,php,email,drupal,localization,drupal-modules,Php,Email,Drupal,Localization,Drupal Modules,我正在使用消息和消息通知contrib模块 我已经启用了语言模块,它默认有英语(en)、韩语(ko)、日语(ja) 我已经翻译了下面的模板在日语以及 $language = 'ja'; $message = Message::create([ 'template' => 'sample_template', 'langcode' => $language ]); $message->setLanguage($language); $mes

我正在使用消息消息通知contrib模块

我已经启用了语言模块,它默认有英语(en)、韩语(ko)、日语(ja)

我已经翻译了下面的模板在日语以及

  $language = 'ja';
  $message = Message::create([
    'template' => 'sample_template',
    'langcode' => $language
  ]);

  $message->setLanguage($language);

  $message->save();

  $message = $message->getTranslation($language);

  $notifier = \Drupal::service('message_notify.sender');
  $result = $notifier->send($message);
当我试图发送电子邮件时,它总是用英语发送,而不是日语


我在语言配置中缺少什么吗?

Drupal\message\u notify\MessageNotifier
希望传递一个实现
Drupal\message\MessageInterface
的对象

public function send(
    MessageInterface $message, array $options = [], $notifier_name = 'email')
Drupal\message\u notify\Plugin\Notifier\Email
source中,当
language override
选项设置为
FALSE
时,首选语言用于呈现消息

    if (!$this->configuration['language override']) {
      $language = $account->getPreferredLangcode();
    }
    else {
      $language = $this->message->language()->getId();
    }
选项
数组中,配置要覆盖的语言,以便以设置的语言呈现消息

$message->setLanguage($language);
$result = $notifier->send($message, ['language override' => TRUE]);

我不确定这是正确的解决方案。它适用于以一种语言发送给所有收件人的一封邮件。如何将消息发送到每个用户的首选语言?默认语言是drupal帐户的首选语言,如果这是您想要的行为,您应该保持这种方式。此问题询问如何覆盖通知的语言,只有在发送消息时通过显式设置
language override
选项才能实现。您说得对。。。我忽略了原来的问题。我来这里是因为我不能得到每个用户的首选语言的消息。。。这不是这里要问的问题。很抱歉。如果您有任何提示,我问了一个关于我的问题的问题: