跳至主要內容

在地化語言

Logto 支援多種預設語言,並提供 113 個額外的語言標籤。這個強大的工具讓你能夠自訂登入體驗,建立並管理你自己的語言選項與翻譯內容。

在 Logto Console 中的自訂步驟

你可以在 Logto Console 中輕鬆自訂語言設定,無需撰寫程式碼。

  1. 前往Console > 登入體驗 > 內容 > 語言
  2. 管理語言:點擊「管理語言」按鈕以進入你的語言庫。
    • 編輯現有語言:自訂 Logto 提供語言的翻譯。這些語言無法刪除,但你的變更會覆蓋預設值。
    • 新增語言:點擊「新增語言」按鈕,選擇語言標籤,填寫你的翻譯內容,儲存後即可新增語言。
  3. 啟用自動偵測:啟用後,登入頁面會根據使用者裝置設定,自動顯示為偏好的語言。
  4. 設定預設語言:你可以從語言庫中選擇一個預設語言。當偵測到的使用者語言不在目前語言庫時,將會使用預設語言。

管理語言時,以下是一些重要術語:

定義說明
語言標籤 (Language tag)語言標籤用於識別內容的語言。語言標籤由語言代碼(如 en、fr、zh)和國家/地區代碼(如 US、UK、KR)以連字號分隔組成。例如:en-US。
Logto 提供語言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 來控制 語言偵測政策

執行時語言解析邏輯

在執行時,登入體驗的語言解析優先順序如下:

  1. 來自當前驗證請求的 ui_locales OIDC 參數(使用第一個支援的標籤)。詳見 ui_locales
  2. 若未指定,且已啟用「自動偵測」,則使用偵測到的使用者端語言(例如 HTTP Accept-Language 標頭)。
  3. 若仍未命中,則使用登入體驗中的租戶預設語言。

此解析邏輯同樣影響互動過程中觸發的郵件本地化。進一步了解:郵件範本在地化

使用情境

新增語言會如何呈現給終端客戶?

假設你有一個網站,預設語言為英文且已開啟自動偵測。一位來自日本的使用者造訪並決定註冊帳號。如果他/她的應用程式語言設為日文,但 Logto 尚未支援該語言,登入畫面將顯示為英文。

Logto 登入體驗的 i18n 讓自訂語言成為可能。

點擊 ja 語言標籤即可新增你自己的日文翻譯。

如此一來,來自日本的使用者就能看到你從英文翻譯過來的日文內容。

常見問題

如果我新增的語言成為 Logto 提供語言會怎樣?

在左側語言標籤旁會出現 Logto 提供標記,且你新增的語言將無法再移除。你修改過的內容仍會生效並覆蓋原本的 Logto 值。若要恢復 Logto 預設值,只需清除使用者自訂內容即可。

如果我只新增了部分自訂內容會怎樣?

最終使用者看到的內容是兩欄合併的結果。 假設你只想調整 Logto 原始內容中的部分文案,則你的註冊畫面與 Logto 預設畫面的差異僅在於你編輯過的 key,其餘內容將保持不變。

如何為登入體驗設定預設手機國碼?

登入體驗中的手機國碼預設會根據使用者瀏覽器語系設定。例如,若使用者瀏覽器語言為 fr,則國碼預設為法國(+33)。

若需針對特定使用者或地區以程式方式控制預設國碼,可使用 ui_locales 驗證參數。例如,設定 ui_locales=ja 時,國碼將預設為日本(+81)。

在你的應用程式中支援阿拉伯語與 RTL(由右至左)語言版面