วิธีการแปลข้อความข้อผิดพลาดหรือข้อความ JS ใน Magento 2


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สำหรับการแปล


สร้าง ar_KW.csv ในโฟลเดอร์โมดูล i18n ของฉันในการแปลว่า "ใส่ข้อความของคุณที่นี่" ใน ji ของฉันพยายามมันไม่ทำงาน แต่ใน phtml ถ้าฉันทำ echo ข้อความแปลของฉันฉันแสดง
Pradeep Kumar

คุณล้างแคชและการปรับใช้เนื้อหาแบบคงที่ของคุณหรือไม่ @PradeepKumar
Keyur Shah

เพียงคำตอบที่ฉันกำลังมองหา! +1
thdoan

โปรดทราบว่านี่จะไม่ทำงานหากคุณใช้โดยตรงในไฟล์ phtml วีโอไอพีจะแยกวิเคราะห์และแปลจากไฟล์ js และ html เท่านั้น
eInyzant

สิ่งนี้จะได้ผล แต่ไม่ใช่โค้ดที่ดี คุณต้องการนักเวทย์ / แปล แต่ไม่ได้ใช้มัน .
oliver de Cramer


7

สิ่งนี้ใช้ได้กับฉัน:

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

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

การอ้างอิง: /vendor/magento/module-checkout/view/frontend/web/js/view/payment.js
Sarfaraz bheda

1
เอาล่ะแต่ชื่อตัวแปรสำหรับmage/translateต้อง$tไม่ใช่$tr magento.stackexchange.com/questions/293771/ …
Siarhey Uchukhlebau

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. เพื่อให้ได้วลีทั้งหมดที่คุณจำเป็นต้องเรียกใช้คำสั่งเช่น

    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 เมื่อคุณเห็นข้อความแสดงข้อผิดพลาด msg ที่แสดงจากไฟล์นี้ เท่านั้น


สวัสดีฉันทำทุกขั้นตอนตามคำตอบของคุณแล้วรหัสที่เพิ่มสำหรับ 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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.