導航:首頁 > 操作系統 > android本地國際化

android本地國際化

發布時間:2025-06-01 06:54:48

android開發案例驅動教程目錄

Android開發案例驅動教程目錄

Ⅱ Android 國際化 設置Locale.ENGLISH不生效以及createConfigurationContext()問題

Q1 故事情節: 設置了簡體中文,繁體中文和英信戚鋒文,結果拿了7.0榮耀青春版完美顯示,然而7.0下的所有安卓手機都設置英文無效,簡體中文和繁體中文依然可以,納悶......

Q1 解決方式:雖說看起來設置了英文Locale.ENGLISH, 但實際上有些手機或系統需要特殊指明那個英文的(英國/美國),所以不要直接使用Locale.ENGLISH,將滑晌Locale.ENGLISH改成相對應的Locale.US(美國英文) 或 Locale.UK(英國英文)就可以了,如下圖注釋部分。

Q2 故事仔滲情節:還以為Q1問題解決就可以了,在設置createConfigurationContext(config)情況下,>=6.0系統的手機都切換語言失敗(5.0的手機剛好沒有,所以待定),具體原因不詳

Q2 解決方式:老老實實,用回getResources().updateConfiguration(config, null)就可以了

Ⅲ Android國際化多語言切換

關於App國際化,之前有講到國際化資源、字元換、布局相關,想要了解的猛戳 用力抱一下APP國際化 。借著本次重構多語言想跟大家聊一下多語言切換,多語言切換對於一款國際化App來講是重中之重,並非難事,但是若要做好也是一件不容易的事情。

當我們做了系統的配置更改,比如說切換了系統導航或者說更改了深色模式,那麼我們一般的處理是也是要對Application作出處理。

如果項目中有用到ApplicationContext去getString(@StringRes int id)實現載入的提示語,那麼如果只是單純的重啟界面則無法讓當前的提示語跟隨當前切換的語言,所以我們要麼重啟整個應用,要麼對ApplicationContext中的Local也作出相應的更新方可,這里有一點問題,雖然Android N之後updateConfiguration是過時方法,官方給出使用createConfigurationContext代替,但是更新ApplicationContext的Local發現無效使用老版本updateConfiguration正常。

如果你發現你的應用廣播通知欄適配無效,那就是context中的Local在切換語言是並未及時更新Local,這里調試一下便知,如果是Applicaiton注冊的廣播,那麼多半情況下是沒有更新ApplicationContext的Local所導致的。

多語言適配基本步驟大概就是如此了,下面看一下適配的細節問題。

[圖片上傳失敗...(image-b42d06-1640685147639)]
還有一點Android N之後,手機系統的語言配置選項已經不是單選了,改為一個列表了,具體可以參考手機設置中的語言和輸入法,所以 setLocal(@Nullable Locale loc) 方法建議不要再使用了,我相信很多人還在用,正確的用法應該是 setLocals(@Nullable LocaleList locales) ,需要傳遞一個集合。

當你的應用使用的是androidx.appcompat:appcompat:1.2.0及以上時,BaseActivity中需要實現下面方法。

這套方案目前不在推薦,直接去替換attatchBaseContext()中的context則可,經過測試是完全正常的。

以下則是多語言操作的工具類,現在提供出來,需要的朋友可以自行進行改造。

閱讀全文

與android本地國際化相關的資料

熱點內容
程序員上岸工資 瀏覽:651
釣魚解壓方法 瀏覽:32
湖南雲存儲伺服器雲主機 瀏覽:509
gis三維系統源碼 瀏覽:808
哪個app能查閱社保卡 瀏覽:605
主題愛好者中怎麼給帖子鏈接加密 瀏覽:925
python沒有事件類 瀏覽:566
python文本數據挖掘 瀏覽:322
輕換算的安卓版是什麼app 瀏覽:993
處理器pdf 瀏覽:114
php文件打開方式 瀏覽:67
編譯並執行源程序 瀏覽:270
單片機串口埠 瀏覽:115
學霸筆記pdf 瀏覽:28
蘋果6怎麼跟安卓藍牙配對 瀏覽:270
如何下載安卓app上的圖片 瀏覽:772
php微信消息回復 瀏覽:309
誤刪的app哪個好 瀏覽:688
程序員買什麼移動硬碟 瀏覽:907
預演算法的作業 瀏覽:746