keycloak~標準的國際化(hua)設計(ji)
在 Keycloak 中,國際化(hua)設置和默認語言的配置主要涉及(ji)以下幾個方面(mian):
1. Keycloak 配置
在 Keycloak 的管理控(kong)制臺中,你可以(yi)通過以(yi)下步驟設(she)置默認(ren)語言:
- 登錄到 Keycloak 管理控制臺。
- 選擇你的 Realm。
- 轉到 Realm 設置(Realm Settings)。
- 在 國際化(Internationalization)選項卡中,可以設置默認語言。
如果沒有明確設置,Keycloak 默認會使用 en(英語(yu))作為會話語(yu)言。
2. 瀏覽器語言
Keycloak 會根據用戶的瀏覽器語言設置來決定初始的語言。如果瀏覽器發送的請求中包含 Accept-Language 頭部,Keycloak 會(hui)優先考慮這個(ge)值。也就是說,如果用(yong)戶(hu)的(de)瀏覽器語言是其他(ta)語言,Keycloak 會(hui)嘗試(shi)匹配(pei)并使用(yong)該語言。
- 當keycloak程序里配置的語言和瀏覽器不一致時,會出來語言和皮膚不一樣的情況,默認程序里語言是中文
- 瀏覽器默認是英文,這時會出現頁面內容和KEYCLOAK_LOCALE不一致情況

3. Cookie 設置
當用戶登錄后,Keycloak 會在 Cookie 中生成一個名為 KEYCLOAK_LOCALE 的會話級別變量(liang),用于(yu)存儲當前(qian)的語言(yan)(yan)設置。如果用戶在(zai)界(jie)面上更改了語言(yan)(yan),該 Cookie 的值將會更新。
總結
- 默認語言 (
KEYCLOAK_LOCALE) 可以在 Keycloak 管理控制臺中進行設置。 - 如果未設置,Keycloak 默認使用英語。
- 瀏覽器的語言設置會影響 Keycloak 的初始語言選擇。
你(ni)可以檢查這些設置(zhi),以確保(bao) Keycloak 的語言配(pei)置(zhi)符合你(ni)的需求。如(ru)果需要(yao)進(jin)一步的幫助,請(qing)告訴我!
會話級cookie
在 Keycloak 中,KEYCLOAK_LOCALE Cookie 的(de)(de)生命周(zhou)期(qi)是(shi)會話級的(de)(de),這(zhe)意味著它的(de)(de)存活(huo)時間(jian)與瀏覽器會話相關(guan)。具體來說:
會話級 Cookie 的特性
-
關閉瀏覽器后失效:會話級 Cookie 在用戶關閉瀏覽器時會被刪除。因此,當你下次重新打開瀏覽器時,之前存儲在
KEYCLOAK_LOCALECookie 中的值(zhi)將不再(zai)存在。 -
瀏覽器標簽頁:如果(guo)你(ni)只是關(guan)(guan)閉了(le)某個(ge)(ge)標(biao)簽(qian)頁(ye),而(er)不是整(zheng)個(ge)(ge)瀏(liu)覽(lan)(lan)器,Cookie 仍然會保持有效,直到你(ni)關(guan)(guan)閉整(zheng)個(ge)(ge)瀏(liu)覽(lan)(lan)器或手動清除 Cookie。
可能的例外情況
-
持久化 Cookie:如(ru)果開發者(zhe)在設(she)置 Cookie 時(shi)使(shi)用(yong)了持久化選項(例如(ru),設(she)置了過期時(shi)間),那么即使(shi)關閉(bi)瀏(liu)覽器,Cookie 也會保留。但(dan)這并(bing)不適用(yong)于會話級(ji) Cookie。
-
隱私模式:在(zai)(zai)隱私/無痕模式(shi)下,所有會話級 Cookie 會在(zai)(zai)窗口關閉(bi)后(hou)立即被刪除(chu)。
總結
如果你關閉了瀏覽器,KEYCLOAK_LOCALE Cookie 的(de)值應該不會保留。如果你發現關(guan)閉(bi)瀏覽器后(hou)再次(ci)打開仍能(neng)看到該值,可能(neng)是因為使(shi)用了持久化(hua) Cookie 或其他(ta)特殊設置(zhi)。可以檢查 Cookie 的(de)屬性以確認其類型(xing)和(he)生命(ming)周期設置(zhi)。