Android 國際化之多語言切換

前言

android的國際化很簡單瞧柔,大家都知道創(chuàng)建對應國家編碼的values文件夾就好啦∷伪耍可是很多人不知道如何手動切換app的語言弄砍,而不是只能跟隨系統(tǒng)語言變化,下面就介紹一下啦输涕!

直接貼代碼吧

/**
     * 設置當前語言
     *
     * @param language
     */
    private void setLanguage(String language) {
        //獲取當前資源對象
        Resources resources = getResources();
        //獲取設置對象
        Configuration configuration = resources.getConfiguration();
        //獲取屏幕參數(shù)
        DisplayMetrics displayMetrics = resources.getDisplayMetrics();
        //設置本地語言
        switch (language) {
            case "_ZH":
                configuration.locale = Locale.CHINA;
                break;
            case "_EN":
                configuration.locale = Locale.ENGLISH;
                break;
            case "_JA":
                configuration.locale = Locale.JAPAN;
                break;
            case "_FR":
                configuration.locale = Locale.FRANCE;
                break;
            case "_ES":
                configuration.locale = new Locale("ES");
                break;
            case "_KO":
                //韓國
                configuration.locale = new Locale("KO");
                break;
            case "_IT":
                //意大利
                configuration.locale = new Locale("IT");
                break;
            case "_PT":
                //葡萄牙
                configuration.locale = new Locale("PT");
                break;
            case "_DE":
                //德國
                configuration.locale = Locale.GERMAN;
                break;
            case "_AR":
                //阿拉伯
                configuration.locale = new Locale("AR");
                break;
            case "_RU":
                //俄語
                configuration.locale = new Locale("RU");
                break;
        }
        resources.updateConfiguration(configuration, displayMetrics);
        //發(fā)送結(jié)束所有activity的廣播
        Intent intent = new Intent(BaseActivity.ACTION_FINISH_ACTIVITY);
        sendBroadcast(intent);
        startActivity(new Intent(this, MainActivity.class));
    }

Locale里面有幾個常量音婶,對應幾個常見國家,如果你要切換的語言這幾個常量里沒有的話莱坎,就自己new一個Locale對象就好啦,構(gòu)造方法里傳入對應語言的代碼字符串就好(就是values文件夾-后面的)衣式。配置完該信息后需要退出activity,下次進入才能看到效果檐什,所以我這里用廣播的方式關(guān)閉了所有的activity碴卧,再重新開啟MainActivity回到主頁!不管你用什么方法厢汹,能實現(xiàn)就好螟深。

關(guān)于Locale這里可以查看官方文檔,很詳細烫葬,附上鏈接:區(qū)域設置|Android開發(fā)者

完事界弧!就是這么簡單!

另外我是把語言選擇的相關(guān)信息存在sp里搭综,在Application中也做了相同的操作垢箕,保證切換語言后下次進入還能是用戶自己選擇的語言。

附上國家地區(qū)語言縮寫代碼:

中文(中國):values-zh-rCN
中文(臺灣):values-zh-rTW
中文(香港):values-zh-rHK
英語(美國):values-en-rUS
英語(英國):values-en-rGB
英文(澳大利亞):values-en-rAU
英文(加拿大):values-en-rCA
英文(愛爾蘭):values-en-rIE
英文(印度):values-en-rIN
英文(新西蘭):values-en-rNZ
英文(新加坡):values-en-rSG
英文(南非):values-en-rZA
阿拉伯文(埃及):values-ar-rEG
阿拉伯文(以色列):values-ar-rIL
保加利亞文: values-bg-rBG
加泰羅尼亞文:values-ca-rES
捷克文:values-cs-rCZ
丹麥文:values-da-rDK
德文(奧地利):values-de-rAT
德文(瑞士):values-de-rCH
德文(德國):values-de-rDE
德文(列支敦士登):values-de-rLI
希臘文:values-el-rGR
西班牙文(西班牙):values-es-rES
西班牙文(美國):values-es-rUS
芬蘭文(芬蘭):values-fi-rFI
法文(比利時):values-fr-rBE
法文(加拿大):values-fr-rCA
法文(瑞士):values-fr-rCH
法文(法國):values-fr-rFR
希伯來文:values-iw-rIL
印地文:values-hi-rIN
克羅里亞文:values-hr-rHR
匈牙利文:values-hu-rHU
印度尼西亞文:values-in-rID
意大利文(瑞士):values-it-rCH
意大利文(意大利):values-it-rIT
日文:values-ja-rJP
韓文:values-ko-rKR
立陶宛文:valueslt-rLT
拉脫維亞文:values-lv-rLV
挪威博克馬爾文:values-nb-rNO
荷蘭文(比利時):values-nl-BE
荷蘭文(荷蘭):values-nl-rNL
波蘭文:values-pl-rPL
葡萄牙文(巴西):values-pt-rBR
葡萄牙文(葡萄牙):values-pt-rPT
羅馬尼亞文:values-ro-rRO
俄文:values-ru-rRU
斯洛伐克文:values-sk-rSK
斯洛文尼亞文:values-sl-rSI
塞爾維亞文:values-sr-rRS
瑞典文:values-sv-rSE
泰文:values-th-rTH
塔加洛語:values-tl-rPH
土耳其文:values–r-rTR
烏克蘭文:values-uk-rUA
越南文:values-vi-rVN

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末兑巾,一起剝皮案震驚了整個濱河市条获,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蒋歌,老刑警劉巖帅掘,帶你破解...
    沈念sama閱讀 211,265評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異堂油,居然都是意外死亡修档,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評論 2 385
  • 文/潘曉璐 我一進店門府框,熙熙樓的掌柜王于貴愁眉苦臉地迎上來吱窝,“玉大人,你說我怎么就攤上這事≡合浚” “怎么了兴使?”我有些...
    開封第一講書人閱讀 156,852評論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長照激。 經(jīng)常有香客問我发魄,道長,這世上最難降的妖魔是什么俩垃? 我笑而不...
    開封第一講書人閱讀 56,408評論 1 283
  • 正文 為了忘掉前任欠母,我火速辦了婚禮,結(jié)果婚禮上吆寨,老公的妹妹穿的比我還像新娘。我一直安慰自己踩寇,他們只是感情好啄清,可當我...
    茶點故事閱讀 65,445評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著俺孙,像睡著了一般辣卒。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上睛榄,一...
    開封第一講書人閱讀 49,772評論 1 290
  • 那天荣茫,我揣著相機與錄音,去河邊找鬼场靴。 笑死啡莉,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的旨剥。 我是一名探鬼主播咧欣,決...
    沈念sama閱讀 38,921評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼轨帜!你這毒婦竟也來了魄咕?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,688評論 0 266
  • 序言:老撾萬榮一對情侶失蹤蚌父,失蹤者是張志新(化名)和其女友劉穎哮兰,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體苟弛,經(jīng)...
    沈念sama閱讀 44,130評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡喝滞,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,467評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了嗡午。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片囤躁。...
    茶點故事閱讀 38,617評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出狸演,到底是詐尸還是另有隱情言蛇,我是刑警寧澤,帶...
    沈念sama閱讀 34,276評論 4 329
  • 正文 年R本政府宣布宵距,位于F島的核電站腊尚,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏满哪。R本人自食惡果不足惜婿斥,卻給世界環(huán)境...
    茶點故事閱讀 39,882評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望哨鸭。 院中可真熱鬧民宿,春花似錦、人聲如沸像鸡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽只估。三九已至志群,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蛔钙,已是汗流浹背锌云。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留吁脱,地道東北人桑涎。 一個月前我還...
    沈念sama閱讀 46,315評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像豫喧,于是被迫代替她去往敵國和親石洗。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,486評論 2 348

推薦閱讀更多精彩內(nèi)容