Magento 2 में JS त्रुटि संदेश या पाठ का अनुवाद कैसे करें?


13

मेरे पास दो विचार हैं अंग्रेजी और अरबी डिफ़ॉल्ट js सत्यापन त्रुटि संदेश को अरबी में अनुवाद करने की आवश्यकता है तो यह कैसे करें? और मुझे यह करने के लिए कुछ कस्टम ग्रंथ भी हैं।

मैंने अरबी के लिए एक i18n बनाया, अगर मैं PHTML या PHP फ़ाइल में एको करता हूँ तो ठीक काम कर रहा हूँ, उसी तरह इसे js में भी कैसे बजाऊं Magento 2 में

कोई भी मेरी मदद करे

जवाबों:


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 का निर्माण किया गया, जिसका अनुवाद मेरे जी में "यहाँ अपना संदेश दर्ज करें" ने इसे काम नहीं करने की कोशिश की, लेकिन phtml में अगर मैं अपने अनुवादित पाठ को प्रतिध्वनित करता हूँ तो मैं प्रदर्शित करता हूँ
प्रदीप कुमार

क्या आपने अपना कैश और स्टैटिक-कंटेंट तैनात किया है? @ प्रदीपकुमार
शाह

वैसे ही जवाब जिसकी मुझे तलाश थी! +1
thdoan

ध्यान रखें कि यदि आप इसे सीधे phtml फ़ाइलों में उपयोग करते हैं तो यह काम नहीं करेगा। Magento केवल पार्स और जेएस और HTML फ़ाइलों से अनुवाद करेगा।
eInyzant 3

यह काम करेगा, लेकिन यह एक कोड की सफाई नहीं है; आपको मेज़ / अनुवाद की आवश्यकता है लेकिन इसका उपयोग नहीं कर रहे हैं। ।
ओलिव डे क्रैमर


7

यह मेरे लिए काम किया:

define(
    [
        'mage/translate'
    ],
    function (
        $tr
    ) {

        $tr('<your text>'),
    }
);

संदर्भ: /vendor/magento/module-checkout/view/frontend/web/js/view/payment.js
सरफराज भेडा

1
सब ठीक है, लेकिन वेरिएंट का नाम mage/translateहोना चाहिए $t, न कि $tr magento.stackexchange.com/questions/293771/…
Siarhey Uchukhlebau

5

गहरी खुदाई के बाद मुझे मैगेंटो 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. सभी वाक्यांशों को प्राप्त करने के लिए आपको कमांड पूर्व चलाने की आवश्यकता है

    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

    यह मेरे परीक्षण मॉड्यूल को पढ़ता है और एक सीएसवी सुगरकोड \ टेस्ट \ 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-translation.json फ़ाइल के साथ प्रत्येक थीम / ex luma / ar_KW, js-translation.json में सभी js बनाएगा, js-format में सभी js साइड अनूदित डेटा होगा, जब भी आपको त्रुटि दिखाई देगी, तो इस फाइल से दिखाया गया संदेश बीमार होगा। केवल


नमस्कार, मैंने आपके उत्तर के अनुसार सभी चरण किए हैं, जो कोड मैंने पूर्व में जोड़ा था: अलर्ट ($। Mage .__ ('js test')); भाषा फ़ाइल जनरेटिंग में सही ढंग से आ रहा है, लेकिन जब मैं ट्रांसलिशन को बदलता है तो जेएस संदेश अभी भी वही आता है। क्या मैं कुछ भूल रहा हूँ ?
सुनील वर्मा

2

यदि आप __ का उपयोग करते हैं तो यह त्रुटि फेंक देता है इसलिए नीचे दिए गए कोड का पालन करें

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


0

एक टेम्प्लेट में जोड़ें। अपने त्रुटि संदेश को ऐसे जोड़ें:
<?php echo __('This is a required field.'); ?>
- सक्रिय अनुवाद ऑनलाइन
- अनुवाद

किया हुआ


क्या आप जवाब के लिए कुछ और विवरण जोड़ सकते हैं कि यह कैसे और क्यों काम करता है?
tjons
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.