diff --git a/dev/tests/integration/testsuite/Magento/Setup/Console/Command/_files/expectedPhrases.csv b/dev/tests/integration/testsuite/Magento/Setup/Console/Command/_files/expectedPhrases.csv index b20a54d1bc0dc693e5a6cef202013e344dd6846d..65b9d12f213f6ae107a31ed0308fc0919950e1fc 100644 --- a/dev/tests/integration/testsuite/Magento/Setup/Console/Command/_files/expectedPhrases.csv +++ b/dev/tests/integration/testsuite/Magento/Setup/Console/Command/_files/expectedPhrases.csv @@ -15,6 +15,6 @@ "string with placeholder in double quotes ""%1""","string with placeholder in double quotes ""%1""" "string with 'single quotes'","string with 'single quotes'" "string with placeholder in single quotes '%1'","string with placeholder in single quotes '%1'" -"string with escaped \"double quotes\"","string with escaped \"double quotes\"" -"string with placeholder in escaped double quotes \"%1\"","string with placeholder in escaped double quotes \"%1\"" +"string with escaped ""double quotes""","string with escaped ""double quotes""" +"string with placeholder in escaped double quotes ""%1""","string with placeholder in escaped double quotes ""%1""" "string that\'s got an unclosed single quote in it","string that\'s got an unclosed single quote in it" diff --git a/lib/internal/Magento/Framework/Phrase/Renderer/Translate.php b/lib/internal/Magento/Framework/Phrase/Renderer/Translate.php index 449b34d61c094435b6b1eb448b5d1ff7c6f3260f..9cc79b5fab2adcf7243a338306ab2fa027ba39b2 100644 --- a/lib/internal/Magento/Framework/Phrase/Renderer/Translate.php +++ b/lib/internal/Magento/Framework/Phrase/Renderer/Translate.php @@ -49,6 +49,7 @@ class Translate implements RendererInterface public function render(array $source, array $arguments) { $text = end($source); + $text = preg_replace('/([^\\\\])(\\\\")/', '$1"', $text); try { $data = $this->translator->getData(); diff --git a/setup/src/Magento/Setup/Module/I18n/Dictionary/Phrase.php b/setup/src/Magento/Setup/Module/I18n/Dictionary/Phrase.php index e5c20133fa00044761f2c7e373da49eb01c45b23..4e6c4359183dfadc82bc4d991a98f9cec97f1175 100644 --- a/setup/src/Magento/Setup/Module/I18n/Dictionary/Phrase.php +++ b/setup/src/Magento/Setup/Module/I18n/Dictionary/Phrase.php @@ -272,6 +272,7 @@ class Phrase if (count($matches[0])) { $string = preg_replace('/([^\\\\])' . $encloseQuote . ' ?\. ?' . $encloseQuote . '/', '$1', $string); } + $string = preg_replace('/([^\\\\])(\\\\")/', '$1"', $string); return $string; } }