Magento2 Localization Javascript


16

คำถามที่คล้ายกันได้ถูกถามไว้แล้วที่นี่: Magento 2 javascript text translationแต่ Magento อัพเดทเทคนิคการแปลนี้ในเวอร์ชั่นเบต้า

ฉันจะเพิ่มหรืออัปเดตการแปลที่ใช้โดย Javascript ได้อย่างไร

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

ปรับปรุง

คำตอบที่ถูกต้องสำหรับคำถามนี้ยังไม่ได้รับคำตอบ Mage2.PRO ชี้ให้ฉันเห็นทิศทางที่ถูกต้องไม่ใช่คำตอบทั้งหมด js-translation.json ของฉันยังว่างเปล่าเมื่อสร้าง

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


ฉันไม่แน่ใจ 100% เกี่ยวกับเรื่องนี้ แต่ฉันคิดว่าคำตอบที่ให้โดย mage2.pro เป็นคำตอบที่ถูกต้อง หากคุณมีตัวอย่างนี้ในหนึ่งในไฟล์ js $.mage.__('Add To Cart')มันจะถูกเลือกโดยอัตโนมัติโดยsetup:static-content:deployคำสั่ง สิ่งเดียวที่คุณต้องมีในไฟล์โลแคลคือการแปลข้อความอื่น ๆ ข้อความที่มีการแปลเป็นข้อความเดียวกันจะไม่ถูกเพิ่มลงในไฟล์ json เพื่อไม่เพิ่มขนาดโดยไม่มีเหตุผล
Marius

คำตอบ:


10

ไม่แน่ใจว่าคุณคิดออกแล้ว แต่ฉันคิดว่าฉันจะตอบต่อไป ..

ฉันเดาว่าคำตอบอื่น ๆ กำลังมุ่งไปในทิศทางที่ถูกต้อง

สมมติว่าคุณมีการแปลติดตั้งอยู่แล้วหากไม่ได้โปรด:

bin/magento i18n:pack -m replace -d source_nl_NL.csv . nl_NL

ดังนั้นก่อนอื่นโปรดล้างแคช (ตามที่คนอื่นแนะนำด้วย):

rm -rf var/cache var/generation var/page_cache var/view_preprocessed

ประการที่สองโปรดล้างโฟลเดอร์ pub / static ของคุณ:

rm -rf pub/static/*/

จากนั้นเราจะสร้างเนื้อหาคงที่อีกครั้ง: (ฉันพลาด langcode ในคำตอบอื่น ๆ .. )

bin/magento setup:static-content:deploy nl_NL - ตรวจสอบให้แน่ใจว่าคุณเพิ่ม langcode

ตรวจสอบว่ามีการสร้าง js-translation.json หรือไม่:

find pub/static/ -name "js-translation.json"

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


1
ขอบคุณ Timon นี่เป็นวิธีที่จะไปแน่นอน! ฉันคิดออกเองเมื่อไม่นานมานี้ แต่ยังไม่ได้โพสต์คำตอบที่นี่ นี่เป็นส่วนเสริมที่ดีของคำถาม
Silvan

@Silvan ในการติดตั้งไฟล์ js-translation.json มีวลีที่แปลในภาษาของฉันแล้ว แต่ยังมีวลีที่ยังไม่ถูกแปลฉันควรจะเพิ่มมันเข้าไปในไฟล์นี้ด้วยตนเองหรือไม่?
Luis Garcia

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

1

ลองเพิ่มการแปลไปยังไฟล์. csv จากนั้นตรวจสอบให้แน่ใจว่าดำเนินการขั้นตอนถัดไปแล้ว:

  1. ที่เก็บข้อมูลแคชควรถูกลบทิ้ง (โดยทั่วไปคือ var / cache และโฟลเดอร์ var / view_preprocessed ควรถูกล้างออก)
  2. ไฟล์สแตติกควรถูกปรับใช้ใหม่ (ลบโฟลเดอร์ทั้งหมดภายใน pub / static และ run bin / magento setup: static-content: deploy)

0

ลบแคชและเนื้อหาโฟลเดอร์ pub / static ทั้งหมด

ไปที่ไดเรกทอรีรากของคุณและเรียกใช้คำสั่งด้านล่าง: -

การตั้งค่า php bin / magento: เนื้อหาคงที่: ปรับใช้

หวังว่าปัญหาของคุณจะได้รับการแก้ไข


ArkadiyCh ยังบอกให้ฉันลบแคชและปรับใช้ไฟล์สแตติกอีกครั้งโชคไม่ดีที่มันไม่สามารถแก้ปัญหาของฉันได้
Silvan

0

ฉันมีปัญหาเดียวกันเช่น "ไม่สามารถแปลวลีเป็น $ .mage .__ ('XXX')" เมื่อวลีใน phtml ทำงานได้สมบูรณ์แบบ ดังนั้นการแก้ปัญหาจึงเป็นเรื่องง่ายอย่างชาญฉลาด

$ t (... ) และ $ .mage ทำการวิเคราะห์เฉพาะไฟล์ * .js

ดังนั้นมันจะไม่ตกอยู่ในพจนานุกรม js-translation

ดังนั้นเมื่อการแสดงผลสคริปต์ส่วนในไฟล์ PHTML __('Translated phrase')คุณโดยตรงควรแทรกวลีที่แปลแล้วกับห่อ

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