Javascript локализации Magento2
Аналогичный вопрос уже задавался здесь: Переводы текста на javascript Magento 2, но Magento обновил эту технику перевода в бета-версии.
Как я могу добавить или обновить переводы, используемые Javascript?
Я выяснил, что Magento создает файл под названием "js-translation.json" в статической папке. Если я редактирую этот файл напрямую, я вижу, что мои переводы обновляются. Но где создан этот файл и как я могу добавить переводы так что Magento автоматически добавит это в js-перевод.json, когда он будет сгенерирован?
Обновление
Правильный ответ на этот вопрос до сих пор не дан, хотя Mage2.PRO указал мне правильное направление, это не полный ответ. Мой js-перевод.json все еще пуст при создании.
Например, мне нравится переводить кнопку "Добавить в корзину". Эта кнопка имеет три состояния: Добавить в корзину, Добавить... и Добавил... Как я могу перевести эти слова? Другой пример, "У вас в корзине нет товаров". текст в мини-корзине. Я думаю, что все эти фразы должны быть переведены с js-translation.json, но куда их добавить, чтобы этот файл был заполнен этими переводами?
4 answers
Не уверен, что вы уже поняли это, но я подумал, что все равно отвечу..
Я думаю, что другие ответы идут в правильном направлении.
Предполагая, что у вас уже установлены переводы, если нет, пожалуйста:
bin/magento i18n:pack -m replace -d source_nl_NL.csv . nl_NL
Итак, прежде всего, пожалуйста, очистите кэш (как предлагали и другие):
rm -rf var/cache var/generation var/page_cache var/view_preprocessed
Во-вторых, пожалуйста, очистите свою папку pub/static:
rm -rf pub/static/*/
Тогда мы восстановите статическое содержимое: (я пропустил код языка в других ответах..)
bin/magento setup:static-content:deploy nl_NL
- Убедитесь, что вы добавили код языка
Теперь проверьте, был ли какой-либо js-перевод.созданный json:
find pub/static/ -name "js-translation.json"
Скорее всего, вы получите список файлов js-translation.json
. Пожалуйста, проверьте эти файлы и удалите их, если они пусты или содержат что-то вроде []
.
Попробуйте добавить переводы в CSV-файлы, затем убедитесь, что выполнены следующие шаги:
- Хранилище кэша должно быть очищено (в основном должны быть очищены папки var/cache и var/view_preprocessed)
- Статические файлы должны быть перераспределены (удалите все папки внутри pub/static и запустите программу установки bin/magento: статическое содержимое: развертывание)
Удалите весь кэш и удалите содержимое паба/статической папки.
Перейдите в корневой каталог и выполните следующую команду: -
Php bin/настройка magento: статическое содержимое: развертывание
Надеюсь, ваша проблема будет решена.
У меня была такая же проблема, как "Не удается перевести фразы в $.mage.__('XXX')", когда фраза в phtml работала идеально. Итак, решение было гениально простым.
$t(...) и $.mage анализирует только файлы *.js
Следовательно, он не попадает в словарь js-перевода.
Поэтому при отображении сценария раздела в файлах phtml вы должны напрямую вставлять уже переведенные фразы с помощью оберток __('Translated phrase')
.