Dlaczego Magento 2 zawiesza tłumaczenie wbudowane podczas wysyłania e-maila transakcyjnego?

11

Czego Magento 2 próbuje uniknąć, zawieszając tłumaczenie wbudowane przed wysłaniem, a następnie wznawiając po nim?

LM_Fielding
źródło

Odpowiedzi:

5

Tłumaczenie wbudowane jest wyłączone podczas wysyłania wiadomości e-mail, ponieważ gdy aktywne jest tłumaczenie wbudowane, przechodzi każdy drukowany tekst do przetłumaczenia ( __('Text here'))Magento\Framework\Phrase\RendererMagento\Framework\Phrase\Renderer\Inline::render

Ta metoda dodaje znaczniki do tekstu {{{i }}}jest używana później przez kod JavaScript, który interpretuje je i wyświetla ładne małe przyciski i wyskakujące okienka do tłumaczenia wbudowanego .... ale ...

Działa to tylko wtedy, gdy znajdujesz się w danej witrynie i załadowano plik js.
Ponieważ phtmlszablony mogą być używane w szablonach wiadomości e-mail, jeśli włączone jest tłumaczenie wbudowane, otrzymasz wiadomości e-mail w taki sposób, jakby {{{ some text here }}{{ other text here }}}specjalne znaczniki nie były interpretowane.
Jest to więc środek bezpieczeństwa, abyś nie schrzanił poczty e-mail

Marius
źródło
3

Gdy tłumaczenie jest dozwolone, ciąg funkcji publicznej zostanie odpowiednio przetłumaczony. Musisz go wyłączyć i wznowić później.

Zapobiega to również problemom z nieprawidłowo włączonym tłumaczeniem wbudowanym.

Dodanie funkcji zawieszenia tłumaczenia wbudowanego wiązało się z konfliktami, przeczytaj:

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

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

BartZalas
źródło
Nie odpowiada na pytanie w żaden sposób, który rozumiem.
LM_Fielding
Dałem ci moją opinię. To jest dokładnie odpowiedź, której szukasz. Pytasz, czego próbuje uniknąć, a on ma na to dość solidną odpowiedź. Nie głosuj tylko dlatego, że nie rozumiesz.
CompactCode,
„Gdy tłumaczenie liniowe jest dozwolone, ciąg funkcji publicznej zostanie odpowiednio przetłumaczony. Musisz go wyłączyć i wznowić później.” Wstępnie edytuj, więc nie komentuj rzeczy, których nie rozumiesz.
LM_Fielding