在地化語言
Logto 支援多種預設語言,並提供 113 個額外的語言標籤。這個強大的工具讓你可以自訂登入體驗,建立並管理你自己的語言選項與翻譯內容。
在 Logto Console 中自訂步驟
你可以在 Logto Console 輕鬆自訂語言設定,無需撰寫程式碼。
- 前往:Console > 登入與帳號 > 內容 > 語言。
- 管理語言:點擊「管理語言」按鈕以進入你的語言庫。
- 編輯現有語言:自訂 Logto 提供語言的翻譯。這些語言無法刪除,但你的修改會覆蓋預設值。
- 新增語言:點擊「新增語言」按鈕,選擇語言標籤,填寫你的翻譯內容,儲存後即可新增語言。
- 啟用自動偵測:啟用後,登入頁面會根據使用者裝置設定,自動顯示偏好的語言。
- 設定預設語言:你可以從語言庫中選擇一個預設語言。當偵測到的使用者語言不在目前語言庫時,將會使用預設語言。
管理語言時,以下是一些關鍵術語的說明:
| 定義 | 說明 |
|---|---|
| 語言標籤 (Language tag) | 語言標籤用來識別內容的語言。語言標籤由語言代碼(例如 en、fr、zh)和國家/地區代碼(例如 US、UK、KR)以連字號分隔組成。例如:en-US。 |
| Logto 提供語言 (Logto provided language) | Logto 提供語言是 Logto 官方語言,儲存在 Logto 原始碼中。 |
| 新增語言 (Added language) | 新增語言是由使用者自行新增的語言。 |
| Logto 原始值 (Logto source values) | Logto 原始值是尚未被使用者自訂的 Logto 預設值。 |
| 自訂值 (Custom values) | 自訂值是已被使用者自訂過的值,會覆蓋 Logto 原始值。 |
使用 Management API 進行自訂
你可以使用 Management API PUT /api/custom-phrases/{languageTag} 來自訂語言翻譯。API 請求主體是一個部分的 locale 物件,例如:
{
"input": { "username": "Username", "password": "Password" },
"secondary": {
"social_bind_with": "已經有帳號了嗎?登入以將 {{methods, list(type: disjunction;)}} 與你的社交身分連結。"
},
"action": { "sign_in": "登入" },
"error": {
"general_required": "{{types, list(type: disjunction;)}} 為必填"
},
"list": { "or": "或" },
"user_scopes": {
"descriptions": { "custom_data": "你的自訂資料" }
}
}
請參考 原始碼 以查看所有可自訂內容。
你也可以使用 PATCH /api/sign-in-exp API 來控制 語言偵測政策。
執行時語言解析邏輯
在執行時,登入體驗的語言解析順序如下:
- 來自當前驗證請求的
ui_localesOIDC 參數(使用第一個支援的標籤)。詳見 ui_locales。 - 若未指定,且已啟用「自動偵測」,則使用偵測到的使用者端語言(例如 HTTP
Accept-Language標頭)。 - 若仍未指定,則使用登入體驗中的租戶預設語言。
此解析邏輯同樣影響互動觸發的郵件在地化。詳見:郵件範本在地化。
使用情境
新增語言會如何呈現給終端客戶?
假設你有一個網站,預設語言為英文且已開啟自動偵測。一位來自日本的使用者造訪並決定註冊帳號。如果他/她的應用程式語言設為日文,但 Logto 尚未支援該語言,登入畫面將會顯示英文。
Logto 登入體驗的 i18n 讓自訂語言成為可能。
點擊 ja 語言標籤,新增你自己的日文翻譯。
如此一來,來自日本的使用者就能看到你從英文翻譯過來的日文內容。
常見問題
如果我新增的語言成為 Logto 提供語言會怎樣?
語言標籤左側會出現 Logto 提供標記,你新增的語言將無法再移除。你修改過的值會繼續生效並覆蓋原本的 Logto 值。若要使用 Logto 預設設定,請清除你自訂的值。
如果我只新增了部分自訂值會怎樣?
最終使用者看到的內容是兩欄合併的結果。 假設你只想調整 Logto 提供的部分原始內容,你的註冊畫面與 Logto 預設畫面的差異僅在於你編輯過的鍵,其他內容則維持不變。
如何為登入體驗設定預設的手機國碼?
登入體驗 中的手機國碼預設會根據使用者瀏覽器語系。例如,若使用者瀏覽器語言為 fr,則國碼預設為法國(+33)。
若要以程式方式為特定使用者或地區控制預設國碼,可使用 ui_locales 驗證參數。例如設定 ui_locales=ja,則國碼預設為日本(+81)。
相關資源
在你的應用程式中支援阿拉伯語與 RTL(由右至左)語言版面