ทำไมต้องใช้ ui_locales?#
Logto รองรับเนื้อหาหลายภาษาและการตรวจจับอัตโนมัติอยู่แล้ว แต่บางครั้งคุณอาจต้องการเลือกภาษาสำหรับสถานการณ์เฉพาะโดยตรง:
- ผลิตภัณฑ์แบบหลายองค์กรที่แต่ละองค์กรมีภาษาที่ต้องการต่างกัน
- ลิงก์ลึกจากแคมเปญที่ใช้ภาษาหนึ่งโดยเฉพาะ
- หน้าสินค้าที่มีปุ่ม CTA สำหรับภาษาท้องถิ่นและเริ่มต้นการลงชื่อเข้าใช้ด้วยภาษาเดียวกัน
- ทดสอบ A/B สำหรับ onboarding ที่ปรับท้องถิ่น
นอกจากนี้ ui_locales ยังเป็นพารามิเตอร์มาตรฐานที่ผู้ให้บริการระบุตัวตนและ SDK จำนวนมากรองรับอยู่แล้ว
ui_locales มีผลทำอะไรบ้าง#
- ตั้งค่าภาษาของ UI ลงชื่อเข้าใช้สำหรั บปฏิสัมพันธ์ในขณะนั้น (รับ tag ที่รองรับตัวแรก)
- มีผลต่อการปรับข้อความอีเมลสำหรับข้อความที่ถูกกระตุ้นจากปฏิสัมพันธ์นี้
- เปิดเผยค่าดั้งเดิมให้ email template ในรูปของตัวแปร
uiLocales (เช่น "ภาษาที่ร้องขอ: {{uiLocales}}")
ดูรายละเอียดเพิ่มเติมที่คู่มืออ้างอิง: UI locales docs
ข้อกำหนดเบื้องต้น#
- มี Logto tenant (Cloud หรือ OSS)
- มีแอปพลิเคชั่นที่ผสานรวมกับ Logto (Quick-starts)
- เปิดใช้งานภาษาเพิ่มเติมในประสบการณ์ลงชื่อเข้าใช้แล้วอย่างน้อย 1 ภาษา (ภาษาท้องถิ่น)
ตัวเลือกเสริมแต่มีประโยชน์:
- เปิดใช้งานแม่แบบอีเมลแบบกำหนดเองหรือใช้แม่แบบที่ผู้ให้บริการจัดการ เพื่อลองดูการเปลี่ยนภาษาของอีเมล (แม่แบบอีเมล)
Logto SDK อนุญาตให้คุณส่งพารามิเตอร์ OIDC เพิ่มเติมขณะลงชื่อเข้าใช้ เพิ่ม ui_locales ลงใน extraParams:
หมายเหตุ:
- ใช้รายการ tag BCP 47 แยกด้วยช่องว่าง Logto จะเลือก tag แรกที่มีในไลบรารีภาษาของ tenant (เช่น
fr-CA ถ้าไม่มีจะเป็น fr ต่อด้วย en)
- ใช้ครั้งต่อครั้ง—ไม่ได้เปลี่ยนค่าภาษาเริ่มต้นของ tenant
- สามารถใช้
ui_locales ร่วมกับพารามิเตอร์มาตรฐาน/กำหนดเองอื่น ๆ ได้ (เช่น login_hint, organization_id หรือ directive สำหรับหน้าจอแรก)
วิธีที่ 2: เพิ่ม ui_locales ลงใน authorize URL ของคุณ#
หากคุณเขียนคำขออนุญาต OIDC ด้วยตัวเอง (หรือผ่าน OIDC client ทั่วไป) ให้เพิ่ม ui_locales ลงไปโดยตรง:
วิธีปรับภาษาในอีเมล#
เมื่อมีปฏิสัมพันธ์ที่ทำให้อีเมลถูกส่ง (เช่น รหัสยืนยัน) Logto จะกำหนดลำดับการเลือกภาษาดังนี้:
ui_locales (tag ที่รองรับตัวแรก)
- ถ้ายังไม่พบ ตรวจจับอัตโนมัติผ่าน HTTP header
Accept-Language
- ถ้ายังไม่พบ ใช้ภาษาตั้งต้นของ tenant
จากนั้น Logto จะพยายามหาแม่แบบอีเมลแบบกำหนดเองที่ตรงกับภาษาและชนิดแม่แบบนั้น ๆ ถ้าไม่พบจะใช้ค่าตั้งต้นของ connector แทน
แม่แบบที่ผู้ให้บริการจัดการ (เช่น Postmark, HTTP Email): Logto จะส่งทั้ง uiLocales และ locale ไปยังผู้ให้บริการของคุณ ถ้ามี ui_locales จะใช้ tag ตัวแรกที่รองรับใน ui_locales เป็นค่า locale
ดูรายละเอียด: การปรับภาษาแม่แบบอีเมล
แหล่งข้อมูลอ้างอิง#