跳至主要內容

多語系在地化

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

在 Logto Console 中的自訂步驟

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

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

管理語言時,以下是一些關鍵術語的說明:

定義說明
語言標籤 (Language tag)語言標籤用於識別內容所屬語言。語言標籤由語言代碼(如 en、fr、zh)與國家/地區代碼(如 US、UK、KR)以連字號分隔組成。例如:en-US。
Logto 提供語言Logto 提供語言為 Logto 官方語言,儲存在 Logto 原始碼中。
新增語言新增語言是由使用者自行新增的語言。
Logto 原始值Logto 原始值為尚未被使用者自訂的 Logto 預設內容。
自訂值自訂值為已被使用者自訂的內容,將會覆蓋 Logto 原始值。

使用 Management API 進行自訂

你可以透過 Management API PUT /api/custom-phrases/{languageTag} 來自訂語言翻譯。API 請求主體是一個部分語系物件,例如:

{
"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 預設畫面的差異僅在於你編輯過的鍵值,其餘內容將維持不變。

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