Czego Magento 2 próbuje uniknąć, zawieszając tłumaczenie wbudowane przed wysłaniem, a następnie wznawiając po nim?
Czego Magento 2 próbuje uniknąć, zawieszając tłumaczenie wbudowane przed wysłaniem, a następnie wznawiając po nim?
Odpowiedzi:
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ż phtml
szablony 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
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: