Почему Magento 2 приостанавливает встроенный перевод при отправке транзакционного электронного письма?

11

Чего Magento 2 пытается избежать, приостановив встроенный перевод до его отправки, а затем возобновив после?

LM_Fielding
источник

Ответы:

5

Встроенный перевод отключен при отправке электронного письма, потому что, когда встроенный перевод активен, любой переводимый печатный текст ( __('Text here')) проходитMagento\Framework\Phrase\RendererMagento\Framework\Phrase\Renderer\Inline::render

Этот метод добавляет некоторую разметку вокруг текста {{{и }}}который впоследствии используются некоторым яваскрипт код , который интерпретирует их и показывает кнопку маленькой приятной и всплывающие окна для однострочного перевода .... но ....

Это работает, только если вы находитесь на веб-сайте, о котором идет речь, и что js загружен.
Поскольку phtmlшаблоны могут использоваться в шаблонах электронной почты, если встроенный перевод включен, вы получите текст в электронном письме, например, {{{ some text here }}{{ other text here }}}потому что специальная разметка не будет интерпретироваться.
Так что это мера безопасности, чтобы вы не испортили свои почтовые шаблоны

Мариус
источник
3

Когда встроенный перевод разрешен, общедоступная строка функции будет переведена соответствующим образом. Так что вам нужно отключить его и возобновить позже.

Это также предотвращает проблемы с неправильно включенным встроенным переводом.

Добавление функции для приостановки встроенного перевода было связано с конфликтами, пожалуйста, прочитайте:

https://github.com/magento/magento2/pull/11320

https://www.absolute-design.co.uk/services/magento-ecommerce/how-can-i-fix-magento-translation-conflicts/

BartZalas
источник
Не отвечает на вопрос так, как я понимаю.
LM_Fielding
Я дал тебе мой голос. Это именно тот ответ, который вы ищете. Вы спрашиваете, чего он пытается избежать, и у него есть довольно солидный ответ на это. Не просто понизить голос, потому что вы не понимаете.
CompactCode
«Когда разрешен встроенный перевод, общедоступная строка функции будет переведена соответствующим образом. Поэтому вам нужно отключить ее и возобновить позже». Предварительно отредактируйте, поэтому не комментируйте вещи, которые вы не понимаете.
LM_Fielding