如何在Magento 2中翻译JS错误消息或文本?


13

我有两个视图,英语和阿拉伯语默认js验证错误消息需要翻译成阿拉伯语,所以怎么办?另外,我还提供了一些有关如何执行此操作的自定义文字。

我创建了一个阿拉伯语的i18n,如果我在PHTML或PHP文件中执行回显,则工作正常,同样在Magento 2中如何将其桥接到js中

有人帮我

Answers:


29

您可以像这样翻译js错误消息

require([
'jquery', // jquery Library
'jquery/ui', // Jquery UI Library
'mage/translate' // Magento text translate (Validation message translte as per language)
], function($){ 
    $(window).load(function() {
        alert($.mage.__('Enter Your message here'));
    });
});

Magento2 mage/translate.js用于翻译


在我的模块i18n文件夹中创建了ar_KW.csv,在我的ji中翻译了“在这里输入您的消息”,尝试了它不起作用,但是在phtml中,如果我确实显示了我显示的翻译文本
Pradeep Kumar

您是否清除了缓存并部署了静态内容?@PradeepKumar
Keyur Shah '02

只是我一直在寻找的答案!+1
thdoan'8

请注意,如果直接在phtml文件中使用它,将无法使用。Magento将仅从js和html文件进行解析和翻译。
eInyzant

这会起作用,但不是那么干净的代码。您需要法师/翻译但未使用它。。
奥利弗·德·克莱默



5

深入研究之后,我知道了magento2中的本地化概念

以下是您需要遵循的内容,在我的网站上,我们有两种视图en和ar_kw阿拉伯语

  1. 创建语言包http://devdocs.magento.com/guides/v2.0/config-guide/cli/config-cli-subcommands-i18n.html#config-cli-subcommands-xlate-example2

  2. 获取所有短语,您需要运行命令ex

    php D:\xampp\htdocs\magento2\bin\magento i18n:collect-phrases -o "D:\xampp\htdocs\magento2\app\code\Sugarcode\Test\i18n\ar_KW.csv" D:\xampp\htdocs\magento2\app\code\Sugarcode\Test

    它会读取我的测试模块并创建一个csv Sugarcode \ Test \ i18n \ ar_KW.csv

它将全部包含__('Some Text') and $.mage.__('Some Text')在js中并准备一个csv

  1. 现在将新生成的文件翻译为阿拉伯文,您可以使用ar_KW.csv语言环境代码的名称保存(它可以在您的模块内部,也可以在您的语言模块内部)
  2. 删除var文件夹并运行 bin\magento setup:static-content:deploy en_US ar_KW

  3. 它将在每个主题/ ex luma / ar_KW中创建所有js以及js-translation.json文件,当您看到此文件中显示的错误消息时,js-translation.json将以json格式包含所有js端翻译的数据只要


您好,我已经按照您的回答完成了所有步骤,这是我为ex添加的代码:alert($。mage .__('js test')); 是正确地在语言文件生成中出现,但是当我更改翻译时,js消息仍然相同。我想念什么吗?
Sunil Verma

2

如果使用__则会引发错误,因此请遵循以下代码

  require([
    'jquery', // jquery Library
    'mage/translate'
   ], function($,$t){ 
        $(window).load(function() {
            alert($t('Enter Your message here'));
        });
    });

0

我在js翻译中遇到了同样的问题,因此我在app/i18n/...文件夹中创建了一个新的语言包并刷新了缓存。

请参阅JS模板中的翻译问题


0

在模板.phtml中添加您的错误消息,例如:
<?php echo __('This is a required field.'); ?>
-在线主动翻译
-翻译

做完了


您能否为答案添加更多详细信息,以了解其工作方式原因
tjons
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.