Magento 2 การแปลไม่ทำงาน


10

ฉันกำลังพยายามแปลข้อความในหน้าชำระเงิน:

"รหัสไปรษณีย์ / ไปรษณีย์ที่ให้มาดูเหมือนจะไม่ถูกต้อง"

อย่างไรก็ตามเมื่อฉันเพิ่มสิ่งต่อไปนี้frontend/..theme../Magento_Checkout/i18n/en_US.csvและปรับใช้อีกครั้งการแปลไม่ได้อยู่ที่นั่น:

"รหัสไปรษณีย์ / ไปรษณีย์ที่ให้มาดูเหมือนจะไม่ถูกต้อง", "ทดสอบ"

ฉันล้างแคชด้วย ผมทำอะไรผิดหรือเปล่า?


ตรวจสอบคำตอบที่อัปเดตของฉัน ฉันหวังว่าตอนนี้ทำงานให้คุณ
Suresh Chikani

คำตอบ:


15

สร้างไดเรกทอรี app/i18n/Vendorname/en_US

ออกคำสั่ง:

bin/magento i18n:collect-phrases --output "app/i18n/Vendorname/en_US/en_US.csv" --magentoสิ่งนี้จะรวบรวมวลีที่แปลได้ทั้งหมดในไฟล์ csv และวางไว้ในเส้นทางที่ระบุ ทำการเปลี่ยนแปลงไฟล์ csv ตามความต้องการของคุณและเมื่อพร้อมใช้งานคำสั่งปัญหา:

bin/magento i18n:pack app/i18n/Vendorname/en_US/en_US.csv -d en_US

วิธีนี้จะปรับใช้การแปลจากไฟล์ของคุณ

ล้างแคช ฯลฯ และคุณควรเห็นการเปลี่ยนแปลงของคุณ


สิ่งนี้ดูมีแนวโน้ม มันบอกว่าแพคเกจภาษาได้รับการบันทึกเรียบร้อยแล้ว แต่การแปลยังไม่ได้อยู่ที่นั่น ..
Cake

เมื่อฉันทำคำสั่งรวบรวมวลีอีกครั้งการแปลกลับเป็นเหมือนเดิม ทำไมมันไม่ประหยัด?
เค้ก

นั่นเป็นพฤติกรรมปกติเมื่อคุณจำวลีมันจะแทนที่การเปลี่ยนแปลงของคุณเพราะวีโอไอพีได้จดจำวลีเริ่มต้นทั้งหมด กระบวนการคือคุณรวบรวมวลีทำการเปลี่ยนแปลงและปรับใช้เมื่อคุณสามารถนำไปใช้ในโมดูลที่เกี่ยวข้องสมมติว่าคุณทำการเปลี่ยนแปลงสำหรับใส่ในรถเข็นเพื่อเพิ่มลงในกระเป๋าคุณสามารถไปที่ผู้ขาย / โมดูลแคตตาล็อก / i18n / en_US csv และมองหาการเปลี่ยนแปลงของคุณ เพิ่งทดสอบใหม่และใช้งานได้ตามที่ควร ตรวจสอบให้แน่ใจว่าคุณเปลี่ยนอินสแตนซ์ที่สองในการแปลและล้างแคชอย่างถูกต้อง คุณสามารถลองปรับใช้เนื้อหาแบบคงที่อีกครั้ง
Devtype

ขอบคุณมากมันใช้งานได้จริง อย่างไรก็ตามการแปลบางอย่างไม่ผ่าน 'ตัวอย่าง:' การแปลและ 'ฟิลด์ที่ต้องระบุ' จะไม่ถูกแปล มาทำไม
เค้ก

พบปัญหา ฉันต้องติดตั้ง php bin / magento: อัพเกรด หลังจากที่เว็บไซต์ของฉันถูกทำให้ยุ่งเหยิง แต่จากนั้นก็ขึ้นอยู่กับธีมที่แก้ไข ไม่รู้เลยว่าทำไมมันถึงใช้ได้ ขอบคุณ
เค้ก

4

คุณสามารถเปลี่ยนเฉพาะข้อความที่เขียนด้วยการแปล

ชอบ : $this->__("Sample Taxt");

ข้อความที่แนะนำไม่ได้เขียนในการแปลดังนั้นคุณจึงไม่สามารถเปลี่ยนแปลงได้ด้วยการแปล

หากคุณต้องการเปลี่ยนคุณสามารถค้นหาได้ในไฟล์JSซึ่งอยู่:

vendor/magento/module-checkout/view/frontend/web/js/model/shipping-rates-validator.js

หมายเหตุ:คุณต้องแทนที่ไฟล์JSในธีมของคุณ

ลบ pub / static / *

เรียกใช้คำสั่ง:

php bin/magento setup:static-content:deploy 

php bin/magento cache:clean

ลบแคชของเบราว์เซอร์


ฉันลองสิ่งนี้และมันใช้งานไม่ได้ด้วยเหตุผลบางอย่าง
เค้ก

ฉันคัดลอกไฟล์นั้นเปลี่ยนการแปลและวางไว้ในแอพ / design / frontend / <vendor> / <theme> / Magento_Checkout / web / js / model อีกครั้งปรับใช้และล้างแคช แต่ไม่มีการเปลี่ยนแปลง ..
เค้ก

ตรวจสอบคำตอบที่อัปเดตของฉัน ฉันหวังว่าตอนนี้ทำงานให้คุณ
Suresh Chikani

มันใช้งานได้จริง อย่างไรก็ตามโซลูชันของ Devtype นั้นเหมาะสมกับความต้องการของฉันมากกว่าในกรณีนี้ ขอบคุณสำหรับความช่วยเหลือ! :)
เค้ก

1

มีปัญหาเดียวกันบนเว็บไซต์ Magento 2 ของฉันลองใช้คำแนะนำทุกประเภทวิธีแก้ไข แต่สิ่งเดียวที่ใช้ได้ผลสำหรับฉันคือ -

  1. ไปที่ /pub/static/frontend/<theme>/<theme>/<language for example pl_PL>

  2. ค้นหาjs-translation.jsonและลบ (ทำสำเนาในกรณี!)

  3. กลับไปที่โฟลเดอร์ root ของคุณแล้วเปิดใช้ php bin/magento setup:static-content:deploy pl_PL

  4. จากนั้นเรียกใช้ php bin/magento cache:flush

แค่นั้นแหละ. หากคุณกลับไปที่/pub/static/frontend/<theme>/<theme>/<language for example pl_PL>โฟลเดอร์ให้สังเกตว่าjs-translation.jsonมีการสร้างขึ้นอีกครั้ง

ปัญหานี้เกิดขึ้นเพราะเมื่อคุณรันการปรับใช้แบบสแตติกวีโอไอพีจะสร้างไฟล์ js-translation.json พร้อมการแปลทั้งหมดของคุณที่แทรกลงในไฟล์นี้และเรียกมันทุกครั้งที่โหลดเพจ ดังนั้นเมื่อมันถูกสร้างขึ้นและมักจะว่างเปล่ามันไม่สามารถเขียนทับด้วยข้อมูลใหม่ โดยการลบและสร้างใหม่มันจะแก้ปัญหา

หวังว่านี่จะช่วยใครซักคน


สวัสดี @Pinky_P ในกรณีของฉัน js-translation.json ได้รับการอัปเดตด้วยการแปลที่ฉันคาดไว้ แต่มันไม่แสดงในส่วนหน้า คุณกรุณาช่วยฉันแก้ปัญหานี้ได้ไหม
Ramya

0

🎗แค่เตือนความจำ ...

Magento เก็บข้อมูลการแปลบางอย่างไว้ในที่เก็บข้อมูลเบราว์เซอร์

คุณอาจต้องล้างรายการเก็บข้อมูลเบราว์เซอร์เพิ่มเติมจากแคชภายในของ Magento

ป้อนคำอธิบายรูปภาพที่นี่

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