Magento 2 Переводы не работают

10

Я пытаюсь перевести текст на странице оформления заказа:

«Предоставленный почтовый индекс представляется недействительным».

Однако, когда я добавляю следующее frontend/..theme../Magento_Checkout/i18n/en_US.csvи повторно развертываю, перевода там нет:

«Предоставленный почтовый индекс представляется недействительным.», «Тест».

Я также очистил кеш. Что я делаю неправильно?

Торт
источник
проверьте мой обновленный ответ. Я надеюсь, что теперь работает на вас.
Суреш Чикани

Ответы:

15

Создать каталог app/i18n/Vendorname/en_US

Команда выдачи:

bin/magento i18n:collect-phrases --output "app/i18n/Vendorname/en_US/en_US.csv" --magentoЭто соберет все переводимые фразы в CSV-файл и поместит его по указанному пути. Внесите изменения в файл csv согласно вашему требованию и, когда будете готовы, выполните команду:

bin/magento i18n:pack app/i18n/Vendorname/en_US/en_US.csv -d en_US

Это развернет переводы из вашего файла.

очистите кеш и т. д., и вы должны увидеть свои изменения.

DEVTYPE
источник
Это выглядит многообещающе. В нем говорится, что языковой пакет был успешно сохранен, но перевода до сих пор нет.
Торт
Когда я снова выполняю команду collect-phrases, перевод возвращается к тому, что было. Почему это не экономит?
Торт
Это нормальное поведение, когда вы вспоминаете фразы, оно отменяет ваши изменения, потому что Magento вспомнил все фразы по умолчанию. Процесс заключается в том, что вы собираете фразы, вносите свои изменения и внедряете их. После развертывания вы можете перейти в соответствующий модуль. Допустим, вы внесли изменения в «Добавить в корзину» в «Добавить в корзину», вы можете перейти в vendor / module-catalogue / i18n / en_US. CSV и искать ваши изменения. Просто перепроверил это и работает как надо. Убедитесь, что вы меняете второй экземпляр в переводе и очищаете кеш должным образом. Вы также можете попробовать развернуть статический контент еще раз.
Девтип
Большое спасибо, это действительно работает. Однако некоторые переводы не выполняются. Перевод «Пример:» и «Обязательные поля» не переведены. Как так?
торт
Нашел проблему. Мне пришлось php bin / magento setup: обновить. После этого мой сайт был испорчен, но затем тема была исправлена. Понятия не имею, почему это сработало. Спасибо
Торт
4

Вы можете изменить только текст, который написан в переводе

Подобно : $this->__("Sample Taxt");

Предлагаемый текст не написан в переводе, поэтому вы не можете изменить его при переводе.

Если вы хотите изменить его, вы можете найти его в файле JS, который находится:

vendor/magento/module-checkout/view/frontend/web/js/model/shipping-rates-validator.js

Примечание: вы должны переопределить файл JS в вашей теме.

Удалить паб / статический / *

Команда Run :

php bin/magento setup:static-content:deploy 

php bin/magento cache:clean

Удалить кеш браузера.

Суреш Чикани
источник
Я попробовал это, и по какой-то причине это не сработало.
Торт
Я скопировал этот файл, изменил перевод и поместил его в app / design / frontend / <vendor> / <theme> / Magento_Checkout / web / js / model, повторно развернул и очистил кеш. Но без изменений ..
Торт
проверьте мой обновленный ответ. Я надеюсь, что теперь работает на вас.
Суреш Чикани
Это действительно сработало. Тем не менее, решение, предоставленное Devtype, больше соответствует моим потребностям в этом случае. Спасибо за помощь! :)
Торт
1

У меня была такая же проблема на моем веб-сайте Magento 2, пробовал всевозможные предложения, как это исправить, но единственное, что мне помогло, было -

  1. перейти к /pub/static/frontend/<theme>/<theme>/<language for example pl_PL>

  2. Найдите js-translation.jsonи удалите его (сделайте копию на всякий случай!)

  3. Вернитесь в корневую папку magento и запустите php bin/magento setup:static-content:deploy pl_PL

  4. Тогда беги php bin/magento cache:flush

Вот и все. Если вы вернетесь в /pub/static/frontend/<theme>/<theme>/<language for example pl_PL>папку, обратите внимание, что js-translation.jsonбыли созданы снова.

Эта проблема возникает из-за того, что при запуске статического развертывания magento генерирует файл js-translation.json со всеми вашими переводами, вставленными в этот файл, и вызывает его при каждой загрузке страницы. Поэтому, когда он уже создан и обычно пуст, он не может перезаписать его новой информацией. Удалив его и восстановив, он решит проблему.

Надеюсь, это кому-нибудь поможет.

Pinky_P
источник
Привет @Pinky_P, в моем случае js-translation.json обновляется с моим ожидаемым переводом. Но это не проявляется во внешнем интерфейсе. Не могли бы вы помочь мне решить эту проблему.
Рамья
0

«Просто напоминание ...

Magento хранит некоторые данные перевода в хранилище браузера.

Возможно, вам придется очистить элементы хранилища браузера в дополнение к внутренним кешам Magento.

введите описание изображения здесь

Рикардо Мартинс
источник