Magento2本地化Javascript


16

这里已经提出了类似的问题:Magento 2 javascript文本翻译,但是Magento在beta版本中更新了此翻译技术。

如何添加或更新Javascript使用的翻译?

我发现Magento在静态文件夹中创建了一个名为“ js-translation.json”的文件。如果直接编辑此文件,我会看到翻译已更新。但是,该文件在哪里创建,以及如何添加翻译,以便Magento在生成文件时将其自动添加到js-translation.json中?

更新资料

仍然没有给出该问题的正确答案,尽管Mage2.PRO向我指出了正确的方向,但这不是完整的答案。生成时,我的js-translation.json仍然为空。

例如,我喜欢翻译“添加到购物车”按钮。此按钮具有三种状态,“添加到购物车”,“正在添加...”和“已添加...”如何翻译这些单词?再例如,“您的购物车中没有商品”。微型购物车中的文字。我认为所有这些短语都应该从js-translation.json进行翻译,但是在哪里添加它们,以便这些文件充满这些翻译?


我对此不是100%肯定,但我认为mage2.pro提供的答案是正确的。例如,如果您在一个js文件中有此文件$.mage.__('Add To Cart'),它将被setup:static-content:deploy命令自动提取。唯一的问题是,您必须在语言环境文件中为文本提供不同的翻译。与翻译文本相同的文本不会添加到json文件中,以便在没有任何理由的情况下不会增加大小。
马吕斯

Answers:


10

不知道您是否已经知道了,但是我还是想回答。

我想其他答案都朝着正确的方向发展。

假设您已经安装了翻译,否则请执行以下操作:

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-translation.json:

find pub/static/ -name "js-translation.json"

您很可能会得到js-translation.json文件列表。请检查这些文件,如果它们为空或包含,则将其删除[]


1
感谢Timon,这确实是必经之路!不久前,我自己弄清楚了这一点,但尚未在此处发布答案。这是对问题的补充。
Silvan

@Silvan在我的安装中,文件js-translation.json在我的语言环境中已经翻译了一些短语,但是仍然有一些短语没有被翻译,我应该手动将它们添加到此文件中吗?
路易斯·加西亚

我不建议这样做,因为下次您部署静态文件时js翻译文件将被覆盖。在这种情况下,您应该在每次部署时手动添加短语。语言包中是否包含这些短语?
席尔文,2016年

1

尝试将翻译添加到.csv文件,然后确保执行以下步骤:

  1. 应当清除缓存存储(基本上应清除var / cache和var / view_preprocessed文件夹)
  2. 应该重新部署静态文件(删除pub / static中的所有文件夹,然后运行bin / magento setup:static-content:deploy)

0

删除所有缓存和delele pub / static文件夹内容。

转到您的根目录并运行以下命令:-

php bin / magento设置:静态内容:部署

希望您的问题能得到解决。


ArkadiyCh还告诉我删除缓存并重新部署静态文件,很遗憾,这不能解决我的问题。
Silvan

0

当phtml中的短语运行完美时,我遇到了类似“无法翻译$ .mage .__('XXX')中的短语”的问题。因此,解决方案非常简单。

$ t(...)和$ .mage仅分析文件* .js

因此,它不属于js翻译字典。

因此,当在phtml文件中呈现节脚本时,应直接使用包装器插入已翻译的短语__('Translated phrase')

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.