ข้ามไปยังเนื้อหาหลัก

การแปล (Translation)

บันทึก:

เริ่มตั้งแต่ v1.20.0 คำสั่ง translate ถูกถอดออกจาก @logto/cli และดูแลเป็นแพ็กเกจแยก @logto/translate ใน logto monorepo โปรดดูรายละเอียดเพิ่มเติมที่ translate CLI

ใช้ CLI เพื่อจัดการการแปล i18n คำสั่งเหล่านี้สำหรับนักพัฒนาที่ต้องการมีส่วนร่วมกับ Logto หากคุณต้องการใช้งาน Logto พร้อมการแปลแบบกำหนดเอง โปรดดู คู่มือนี้

ซิงค์คีย์ (Sync keys)

สมมติว่าเราทำการเปลี่ยนแปลงคีย์การแปลในโฟลเดอร์ en ของแพ็กเกจ phrases เราต้องการซิงค์การเปลี่ยนแปลงนี้ไปยังโฟลเดอร์ pt-BR ให้รันคำสั่งด้านล่างเพื่อซิงค์คีย์การแปลและโครงสร้างไฟล์:

pnpm cli translate sync-keys --target pt-BR

คำสั่งนี้จะอ่านคีย์การแปลทั้งหมดจากโฟลเดอร์ภาษาต้นทาง (en โดยค่าเริ่มต้น) และซิงค์ไปยังโฟลเดอร์ภาษาปลายทาง (pt-BR ในตัวอย่างนี้)

  • หากโฟลเดอร์ภาษาปลายทางยังไม่มี จะถูกสร้างขึ้นโดยอัตโนมัติ
  • หากโฟลเดอร์ภาษาปลายทางมีอยู่แล้ว จะถูกอัปเดตด้วยคีย์ใหม่และลบคีย์ที่ไม่ใช้แล้วออก

สำหรับแต่ละคีย์การแปล:

  • หากคีย์ใดขาดในปลายทาง จะถูกเพิ่มพร้อมคอมเมนต์ระบุว่ายังไม่ได้แปล (ระบุด้วย /** UNTRANSLATED */)
  • หากคีย์ใดขาดในต้นฉบับ จะถูกลบออกจากปลายทาง
  • หากคีย์มีทั้งในต้นฉบับและปลายทาง จะใช้ค่าของปลายทาง

หากต้องการซิงค์คีย์สำหรับทุกภาษาในแพ็กเกจ phrases ให้รันคำสั่งนี้:

pnpm cli translate sync-keys --target all

ด้วยวิธีนี้ เราสามารถโฟกัสกับการอัปเดตคีย์การแปลในโฟลเดอร์ภาษาต้นทาง และคีย์การแปลในภาษาอื่นจะถูกอัปเดตโดยอัตโนมัติ

ข้อมูล:

คำสั่งนี้จะทำงานกับแพ็กเกจ phrases โดยค่าเริ่มต้น คุณสามารถระบุชื่อแพ็กเกจได้ด้วยออปชัน --package เช่น ใช้ --package phrases-experience เพื่อซิงค์คีย์สำหรับแพ็กเกจ phrases-experience

หลังจากซิงค์คีย์แล้ว เราสามารถแปลคีย์เหล่านั้นโดยใช้ ChatGPT API

แปลคีย์ด้วย ChatGPT (Translate keys using ChatGPT)

รันคำสั่งด้านล่างเพื่อแปลคีย์ด้วย ChatGPT:

pnpm cli translate sync

คำสั่งนี้จะแปลคีย์ที่ยังไม่ได้แปลทั้งหมด (ที่ระบุด้วย /** UNTRANSLATED */) ในทุกภาษาในแพ็กเกจ phrases และ phrases-experience หมายเหตุ: ต้องตั้งค่าตัวแปรสภาพแวดล้อม OPENAI_API_KEY เพื่อรันคำสั่งนี้