Подобный вопрос уже задавался здесь: переводы текстов JavaScript на Magento 2 , но Magento обновил эту технику перевода в бета-версии.
Как я могу добавить или обновить переводы, используемые Javascript?
Я понял, что Magento создает файл с именем «js-translation.json» в статической папке. Если я редактирую этот файл напрямую, я вижу, что мои переводы обновляются. Но где этот файл создан и как я могу добавить переводы, чтобы Magento автоматически добавлял его в js-translation.json при его создании?
Обновить
Правильный ответ на этот вопрос до сих пор не дан, хотя Mage2.PRO указал мне правильное направление, это не полный ответ. Мой js-translation.json все еще пуст при генерации.
Например, мне нравится переводить кнопку «Добавить в корзину». Эта кнопка имеет три состояния: Добавить в корзину, Добавлять ... и Добавлять ... Как я могу перевести эти слова? Другой пример: «У вас нет товаров в корзине». текст в миникарте. Я думаю, что все эти фразы должны быть переведены из js-translation.json, но где их добавить, чтобы эти файлы были заполнены этими переводами?
$.mage.__('Add To Cart')
он будет автоматически подобранsetup:static-content:deploy
командой. Единственная загвоздка в том, что в файлах локалей должен быть другой перевод текста. Тексты, имеющие в качестве перевода один и тот же текст, не добавляются в файл json, чтобы не увеличивать размер без причины.Ответы:
Не уверен, что вы уже поняли, но я все равно решил ответить ..
Я предполагаю, что другие ответы движутся в правильном направлении.
Если у вас уже установлены переводы, если нет, пожалуйста:
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/*/
Затем мы восстанавливаем статический контент: (я пропустил langcode в других ответах ..)
bin/magento setup:static-content:deploy nl_NL
- Убедитесь, что вы добавили LangcodeТеперь проверьте, был ли создан js-translation.json:
find pub/static/ -name "js-translation.json"
Скорее всего, вы получите список
js-translation.json
файлов. Пожалуйста, проверьте эти файлы и удалите их, если они пусты или содержат что-то вроде[]
.источник
Попробуйте добавить переводы в файлы .csv, затем убедитесь, что выполнены следующие шаги:
источник
Удалите весь кеш и удалите содержимое папки / статической папки.
Перейдите в корневой каталог и выполните команду ниже: -
php bin / magento setup: static-content: deploy
Надеюсь, ваша проблема будет решена.
источник
У меня была такая же проблема, как "Не могу перевести фразы в $ .mage .__ ('XXX')", когда фраза в phtml работала идеально. Итак, решение было гениально простым.
$ t (...) и $ .mage анализируют только файлы * .js
Следовательно, оно не попадает в словарь js-перевода.
Поэтому при рендеринге скрипта раздела в phtml-файлах вы должны напрямую вставлять уже переведенные фразы с помощью обёрток
__('Translated phrase')
.источник