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