การแปล (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 เพื่อรันคำสั่งนี้