Drupal 8:通知消息未翻译

问题描述 投票:4回答:1

我正在使用messagemessage_notify 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);

[当我尝试发送电子邮件时,它始终以英语而不是日语发送。

我是否在语言配置中缺少某些内容?

php email drupal localization drupal-modules
1个回答
2
投票

Drupal\message_notify\MessageNotifier希望传递实现Drupal\message\MessageInterface的对象。

public function send(
    MessageInterface $message, array $options = [], $notifier_name = 'email')

Drupal\message_notify\Plugin\Notifier\Email源中,当language override选项设置为FALSE时,偏好语言用于呈现消息。

    if (!$this->configuration['language override']) {
      $language = $account->getPreferredLangcode();
    }
    else {
      $language = $this->message->language()->getId();
    }

options数组中,配置要覆盖的语言,以便以设置的语言呈现消息。

$message->setLanguage($language);
$result = $notifier->send($message, ['language override' => TRUE]);
© www.soinside.com 2019 - 2024. All rights reserved.