В настоящее время я работаю в интернет-магазине Magento 2.3.4, и мои переводы Javascript не работают. Просматривая вкладку «Приложение» в инструментах разработчика, я заметил, что запись «mage-translation-storage» в локальном хранилище пуста.
Я проверил некоторые другие сайты Magento и увидел следующий код в теле документа:
<script>
require.config({
deps: [
'jquery',
'mage/translate',
'jquery/jquery-storageapi'
],
callback: function ($) {
'use strict';
var dependencies = [],
versionObj;
$.initNamespaceStorage('mage-translation-storage');
$.initNamespaceStorage('mage-translation-file-version');
versionObj = $.localStorage.get('mage-translation-file-version');
if (versionObj.version !== '3ad475b1a657146524fbb27435adb14607dee032') {
dependencies.push(
'text!js-translation.json'
);
}
require.config({
deps: dependencies,
callback: function (string) {
if (typeof string === 'string') {
$.mage.translate.add(JSON.parse(string));
$.localStorage.set('mage-translation-storage', string);
$.localStorage.set(
'mage-translation-file-version',
{
version: '3ad475b1a657146524fbb27435adb14607dee032'
}
);
} else {
$.mage.translate.add($.localStorage.get('mage-translation-storage'));
}
}
});
}
});
</script>
Этот код печатается в Magento_Translation/view/base/templates/translate.php
. Этот код отсутствует в теле интернет-магазина, над которым я сейчас работаю, и я не могу понять, почему. Я предполагаю, что это причина того, что запись "mage-translation-storage" в локальном хранилище пуста.
Я пытался отключить свою собственную тему и модули, я очищал кэш несколько раз, но этот фрагмент кода просто не отображается в теле документа.
Кто-нибудь еще сталкивался с этой проблемой раньше? Это ошибка в Magento или только я являюсь плонкером?