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

การแปล I18n ด้วย CLI

Logto translate CLI เป็นเครื่องมือที่ทรงพลังสำหรับนักพัฒนาที่มีส่วนร่วมในความพยายามด้าน i18n ของ Logto ด้วย CLI นี้ คุณสามารถมุ่งเน้นไปที่การเขียนเนื้อหาเป็นภาษาอังกฤษ แล้วแปลเป็นทุกภาษาที่รองรับได้อย่างง่ายดาย

สำหรับผู้ใช้ Logto ทั่วไปที่ต้องการแปลเองโดยไม่ต้องมีส่วนร่วมกับโปรเจกต์ กรุณาดู คู่มือการแปลภาษา

ข้อมูล:

ตั้งแต่ v1.20.0 คำสั่งแปลถูกถอดออกจาก @logto/cli และดูแลเป็นแพ็กเกจแยกชื่อ @logto/translation ใน logto monorepo ดังนั้นวิธีการเรียกใช้งานจึงแตกต่างกันเล็กน้อย

ย้ายจาก @logto/cli

นี่คือการเปรียบเทียบวิธีการเรียกใช้ CLI แบบเก่าและใหม่:

วิธีเก่า (ก่อน v1.20.0):

pnpm cli translate <command> [options]

วิธีใหม่:

pnpm translate <command> [options]

ซิงค์คีย์

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

pnpm translate sync-keys --target pt-BR

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

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

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

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

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

pnpm translate sync-keys --target all

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

ข้อมูล:

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

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

แปลคีย์ด้วย ChatGPT

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

pnpm translate sync

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

การทำ Internationalization อย่างมีประสิทธิภาพด้วย ChatGPT

การแปล JSON บริบทยาวด้วย ChatGPT