Android app應(yīng)用多語(yǔ)言切換功能實(shí)現(xiàn)
本文實(shí)例為大家分享了Android app應(yīng)用實(shí)現(xiàn)多語(yǔ)言切換功能,供大家參考,具體內(nèi)容如下
1.添加多語(yǔ)言文件
在不同的 value 文件夾下(例如 value 、value-en、values-zh-rTW 文件夾)添加不同語(yǔ)言的 string.xml 文件,我們的項(xiàng)目添加了英文、簡(jiǎn)體中文、繁體中文三種語(yǔ)言,如下圖所示:
Project模式:

Android模式:

其中英文需要翻譯,繁體如果沒有專門翻譯的話,可以找個(gè)簡(jiǎn)繁轉(zhuǎn)換網(wǎng)站,直接將簡(jiǎn)體中文轉(zhuǎn)成繁體中文,推薦一個(gè)網(wǎng)站:
http://www.vifo.com.cn/fanti/
下面我只講解簡(jiǎn)體中文和英文的做法;
2.現(xiàn)在我們可以在activity啟動(dòng)里面(onCreate()或者onResume())獲取系統(tǒng)的語(yǔ)言:
Locale locale = Locale.getDefault();
String language = locale.getLanguage();
language就是我們從系統(tǒng)拿到的語(yǔ)言,這里如果是中文,拿到的是“zh”,如果是英文是“cn”;
3.拿到了系統(tǒng)語(yǔ)言,那么我們就要通過系統(tǒng)語(yǔ)言的判斷改變我們app對(duì)應(yīng)的系統(tǒng)語(yǔ)言:
protected void showLanguage(String language) {
//設(shè)置應(yīng)用語(yǔ)言類型
Resources resources = getResources();
Configuration config = resources.getConfiguration();
DisplayMetrics dm = resources.getDisplayMetrics();
if (language.equals("zh")) {
config.locale = Locale.SIMPLIFIED_CHINESE;
} else {
config.locale = Locale.ENGLISH;
}
resources.updateConfiguration(config, dm);
//保存設(shè)置語(yǔ)言的類型(這個(gè)里面我先保存一下,下面會(huì)講到他的用處)
PreferenceUtil.commitString("language", language);
}
這樣子,如果你的手機(jī)開始的時(shí)候系統(tǒng)是中文,那么你的app就是中文,如果開始的時(shí)候系統(tǒng)是英文,那么你的app就是英文,這個(gè)只是適用開始的時(shí)候語(yǔ)言就已經(jīng)設(shè)定好了,但是如果你現(xiàn)在的app用的是中文,app沒有退出的情況下,直接去把系統(tǒng)設(shè)置成英文,那么你返回到你的app的時(shí)候并不會(huì)是英文,依然是中文,必須在程序退出之后,再進(jìn)來(lái)的時(shí)候才會(huì)成為英文,這樣子的體驗(yàn)一點(diǎn)都不好,那么我們?cè)趺礃硬拍茏龅侥愀南到y(tǒng)語(yǔ)言,我的app就跟著去改變呢,所謂的動(dòng)態(tài)改變。那么我們可以這樣子做。
@Override
protected void onResume() {
super.onResume();
String LAN = PreferenceUtil.getString("language","");
Locale locale = Locale.getDefault();
String language = locale.getLanguage();
Log.i("語(yǔ)言————————",language);
if(!language.equals("")){
if(!LAN.equals(language)){
freshView();//重新啟動(dòng)MainActivity
}
}
showLanguage(language);
}
private void freshView(){
Intent intent = new Intent(this, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
}
首先PreferenceUtil這個(gè)是我自己寫的工具類,就是SharedPreferences存儲(chǔ),在onResume()里面,重要的就是做個(gè)判斷,拿到的language是不是和之前保存系統(tǒng)的language一樣,如果不一樣,重新啟動(dòng)MainActivity,這樣子就做到了重新獲取系統(tǒng)language。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Android實(shí)現(xiàn)app應(yīng)用多語(yǔ)言切換功能
- android動(dòng)態(tài)設(shè)置app當(dāng)前運(yùn)行語(yǔ)言的方法
- 詳解Android更改APP語(yǔ)言模式的實(shí)現(xiàn)過程
- android 使用kotlin 實(shí)現(xiàn)點(diǎn)擊更換全局語(yǔ)言(中日英切換)
- Android 7.0以上版本實(shí)現(xiàn)應(yīng)用內(nèi)語(yǔ)言切換的方法
- Android 系統(tǒng)語(yǔ)言切換監(jiān)聽和設(shè)置實(shí)例代碼
- Android實(shí)現(xiàn)應(yīng)用內(nèi)置語(yǔ)言切換功能
- Android實(shí)現(xiàn)系統(tǒng)語(yǔ)言切換功能
- Android App中進(jìn)行語(yǔ)言的切換
相關(guān)文章
Android使用Service實(shí)現(xiàn)IPC通信的2種方式
這篇文章主要介紹了Android使用Service實(shí)現(xiàn)IPC通信的2種方式,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03
Android實(shí)現(xiàn)跟隨手指拖動(dòng)并自動(dòng)貼邊的View樣式(實(shí)例demo)
本文通過實(shí)例代碼給大家介紹了android實(shí)現(xiàn)跟隨手指拖動(dòng)并自動(dòng)貼邊的View樣式,效果非常棒,具有參考借鑒價(jià)值,需要的朋友參考下吧2017-01-01
Android實(shí)現(xiàn)環(huán)形進(jìn)度條
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)環(huán)形進(jìn)度條,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-07-07
Android利用AudioRecord類實(shí)現(xiàn)音頻錄制程序
這篇文章主要為大家詳細(xì)介紹了Android利用AudioRecord類實(shí)現(xiàn)音頻錄制程序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-04-04
Android動(dòng)態(tài)添加設(shè)置布局與控件的方法
這篇文章主要介紹了Android動(dòng)態(tài)添加設(shè)置布局與控件的方法,涉及Android中布局與控件的相關(guān)操作技巧,需要的朋友可以參考下2016-01-01
Android實(shí)現(xiàn)倒計(jì)時(shí)效果
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)倒計(jì)時(shí)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-10-10
Android 圖片處理避免出現(xiàn)oom的方法詳解
本篇文章主要介紹了Android 圖片處理避免出現(xiàn)oom的方法詳解,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-09-09
Android自定義HorizontalScrollView實(shí)現(xiàn)qq側(cè)滑菜單
本文主要介紹了android自定義HorizontalScrollView實(shí)現(xiàn)qq側(cè)滑菜單的相關(guān)知識(shí)。具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧2017-04-04
Android使用AudioRecord實(shí)現(xiàn)暫停錄音功能實(shí)例代碼
本篇文章主要介紹了Android使用AudioRecord實(shí)現(xiàn)暫停錄音功能實(shí)例代碼,具有一定的參考價(jià)值,有興趣的可以了解一下2017-06-06
Android控制文本輸入框最多輸入10個(gè)字符長(zhǎng)度
這篇文章主要為大家詳細(xì)介紹了Android控制文本輸入框最多輸入10個(gè)字符長(zhǎng)度,即最多輸入5個(gè)漢字,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10

