Magento 2翻译不起作用


10

我正在尝试在结帐页面中翻译一些文本:

“提供的邮政编码似乎无效。”

但是,当我添加以下内容frontend/..theme../Magento_Checkout/i18n/en_US.csv并重新部署时,翻译不存在:

“提供的邮政编码似乎无效。”,“测试”。

我也清除了缓存。我究竟做错了什么?


检查我更新的答案。我希望现在为您工作。
Suresh Chikani

Answers:


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

这将部署文件中的翻译。

清除缓存等,您应该会看到所做的更改。


这看起来很有希望。它说语言包已成功保存,但翻译仍不存在
Cake

当我再次执行collect-phrases命令时,翻译回到了原来的状态。为什么不节省呢?
蛋糕

这是正常现象,当您重新收集短语时,它会覆盖您的更改,因为Magento已重新收集了所有默认短语。过程是您收集短语,进行更改并部署它们,一旦部署,您可以进入相关模块,假设您对“添加到购物车添加到购物袋”进行了更改,则可以转到vendor / module-catalog / i18n / en_US。 csv,寻找您的更改。只是重新测试了一下,它可以正常工作。确保您要更改转换中的第二个实例并正确清除缓存。您也可以尝试再次部署静态内容。
Devtype

非常感谢,它确实有效。但是,有些翻译没有通过。未翻译“示例:”翻译和“必填字段”。怎么来的?
蛋糕

找到了问题。我不得不php bin / magento setup:upgrade。之后,我的网站被搞砸了,但是后来通过主题修复了它。不知道为什么这样做。谢谢
Cake

4

您只能更改翻译后的文字

喜欢 : $this->__("Sample Taxt");

建议文字未翻译,因此您无法通过翻译进行更改。

如果要更改它,可以在JS文件中找到它:

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

注意:您必须在主题中覆盖JS文件。

删除发布/静态/ *

运行命令:

php bin/magento setup:static-content:deploy 

php bin/magento cache:clean

删除浏览器缓存。


我尝试了一下,由于某种原因它没有起作用。
蛋糕

我复制了该文件,更改了翻译,然后将其放在app / design / frontend / <vendor> / <theme> / Magento_Checkout / web / js / model中,重新部署并清理了缓存。但没有变化..
蛋糕

检查我更新的答案。我希望现在为您工作。
Suresh Chikani

这确实有效。但是,在这种情况下,Devtype提供的解决方案更适合我的需求。谢谢您的帮助!:)
Cake

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,您好,在我的情况下,js-translation.json已使用我期望的翻译进行了更新。但是它没有在前端显示。您能帮我解决这个问题吗?
拉米亚

0

a提醒一下...

Magento将一些翻译数据存储在浏览器存储中。

除了Magento内部缓存外,您可能还需要清理浏览器存储项目。

在此处输入图片说明

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.