Ⅰ android的程序怎麼使資源文件隨著系統語言來進行語言改變,也就是實現android代碼的國際化。
這個很簡單,在res目錄下,新建對應語言的values文件夾
中文 : values-zh
中文簡體: values-zh-CN
英文 : values-en
英文(美式) : values-en-rUS
系統提供的values是默認語言環境,當象上面一樣提供了其它語言環境時,以提供的語言環境優先。
Ⅱ 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的國際化語言適配(系統語言適配+APP內部適配)
Android國際化語言適配分為兩種
1.更改手機系統語言後,APP的語言也會跟著變化
2.只改變自己APP的語言,不受手機系統語言的影響,不影響其他APP的語言,可以參考微信的切換語言的效果。
只需要創建不同語言的values即可
具體操作參考 簡單的Android客戶端國際化(語言適配)方案
操作的時候要注意: 當選擇所要切換的語言後,則進行修改Config以及重啟APP,一定要將選擇的語言保存到SP中,且在activity中的oncreate中將SP中存儲的語言取出來重新設置Config,否則當重啟APP後,還是會跟系統語言一樣。
具體操作參考 Android應用程序內部切換語言及自定義語言
Ⅳ Android如何實現國際化
只要在 res 文件夾下新建對應語言的 values 文件夾就好了, 如,英語環境下的,文件夾命名為:values-en 美國英文環境:values-en-rUS 中文環境為:values-zh 大陸地區中文環境: 在 eclipse 下新建 Android 項目時,會在 res 目錄下自動創建一個默認語言環境的文件夾 : values 當某一個資源沒有在語言環境的對應的資源集合中找到時,就會使用 values 下的資源。 若某一個語言環境沒有在項目中定義語言環境,那麼也會使用 values 下的資源。 圖片國際化同理。 在 res 下新建 drawable-zh 文件夾,存放中文環境下的圖片 新建 drawable-en 作為英語環境下的圖片 在 eclipse 下新建 Android 項目時,會在 res 目錄下自動創建三個默認語言環境的文件夾: drawable-hdpi drawable-ldpi drawable-mdpi 分別用於存放高、中。低解析度的圖片。Android 系統會根據手機的解析度,而自動從不同的對應的某一個文件夾下去載入圖片。 同樣,它們也可以國際化,命名規則如: drawable-zh-hdpi drawable-en-ldpi drawable-en-rUS-mdpi 使用,在 XML 中需要使用到圖片的地方用表達式: @drawable/icon 代碼中使用:R.drawable.icon。因為圖片資源同樣也會在 R 文件中生成一個索引
Ⅵ Android:應用多語言切換,國際化實現
生成多種語言的string.xml,裡面放置對應的語言,修改配置(Configuration),重啟之後就會載入對應語言的string.xml。
1:在res目錄下,生成對應的語言包,比如英語:
在res目錄下生成了可看到生成了:
<string name="hello">你好</string>
英語:
<string name="hello">hello</string>
之後就可以使用getResource.getString(R.string.hello),這個字元串會載入相對應的配置的語言。
3:修改語言配置
修改語言配置後,需要重新啟動進程,並且殺死進程。
1:有些手機是可以在設置里直接切換語言的,這個也就是Configuration改變。用戶重新設置系統語言導致應用的語言也會重新設置。Configuration改變,如果在Manifest中不設置android:configChanges忽略掉配置改變,Activity會重新創建,那麼我們就可以在Activity的onCreate中,重新修改語言配置。
2:切換語言後,退出應用,重新進來,你會發現又是系統設置的語言。所以需要在Application開啟時,需要再次切換語言配置。
Ⅶ android app開發中工具類怎麼國際化
工具類國際化的話,就要將裡面的文字在values加上不同的國家代號.string.xml這樣的形式,當別的國家使用就會去載入對應的文字
Ⅷ Android國際化之多語言(配置及應用內設置)✈️
Android系統通過判斷當前系統的Local配置,來使用對應的strings.xml文件
values-->strings.xml 默認語言(簡體中文)
values-zh-rHK-->strings.xml 繁體中文
values-en-->strings.xml 英語
在Android系統中,系統的配置大都通過 Configuration 來管理,包括strings等等。
onCreate() 中注冊
onDestroy() 中取消注冊
setLanguage() 方法
通過上面的設置,可以實現不重啟APP修改語言的效果
以上只是對Android多語言設置的一些小小的總結,可能有理解不周的情況,歡迎給我留言指出😄