JSエラーメッセージまたはテキストをMagento 2で翻訳する方法


12

私は英語とアラビア語の2つのビューを持っています。デフォルトのjs検証エラーメッセージはアラビア語に翻訳する必要があります。そして、私はそれを行う方法についていくつかのカスタムテキストを持っています。

私が作成したアラビア語のi18nは、PHTMLまたはPHPファイルでエコーすると正常に動作します。これは、Magento 2でもjsにそれをブリギングする方法と同じです。

誰かが私を助けて

回答:


28

あなたはこのような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'));
    });
});

mage/translate.js翻訳のためのMagento2の使用


翻訳された「Enter Your message here」のモジュールi18nフォルダーにar_KW.csvを作成しましたが、翻訳されたテキストをエコーすると、「Enter Your message here」が機能しなくなりましたが、phtmlで表示されました
Pradeep Kumar

キャッシュをクリアし、静的コンテンツをデプロイしましたか?@PradeepKumar
Keyur Shah

まさに私が探していた答え!+1
thdoan

これをphtmlファイルで直接使用する場合は機能しないことに注意してください。Magentoは、jsファイルとhtmlファイルの解析と変換のみを行います。
eInyzant

これは機能しますが、コードのクリーンではありません。あなたは魔術師/翻訳を必要としていますが、それを使用していません。。
oliver de Cramer



5

深く掘り下げた後、magento2のローカリゼーションの概念を知りました

以下はあなたが従う必要があるものです、私のウェブサイトでは私たちは2つのビュー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. それはすべてのjsをjs-translation.jsonファイルと一緒に各テーマで作成します/ ex luma / ar_KW、js-translation.jsonはすべてのjs側の変換されたデータをjson形式で保持します。のみ


こんにちは、私はあなたの答えに従ってすべての手順を実行しました、exに追加したコード:alert($。mage .__( 'js test')); 言語ファイルで正しく生成されていますが、翻訳を変更してもjsメッセージは同じままです。私は何かを逃していますか?
スニルヴァーマ

2

__を使用するとエラーがスローされるため、以下のコードに従ってください

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


0

テンプレート.phtmlに、次のようなエラーメッセージを追加します。-
<?php echo __('This is a required field.'); ?>
オンラインで翻訳する
-翻訳する

終わった


それがどのようにそしてなぜ機能するについての答えについて、もう少し詳細を追加できますか?
2017年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.