国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Android 實(shí)現(xiàn)資源國際化(多語言)

這篇具有很好參考價(jià)值的文章主要介紹了Android 實(shí)現(xiàn)資源國際化(多語言)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

目錄

一、介紹

二、字符串資源

三、圖片資源

四、日期和時(shí)間格式

五、其他

六、應(yīng)用內(nèi)切換語言

七、資源文件命名規(guī)則


一、介紹

????????Android國際化(多語言)是一種開發(fā)技術(shù),旨在使Android應(yīng)用程序能夠在「不同語言和文化環(huán)境」下運(yùn)行,并為用戶提供本地化的體驗(yàn)。這是為了確保應(yīng)用程序在全球范圍內(nèi)都能夠被理解和使用,而不僅僅局限于特定地區(qū)或語言的用戶。通過遵循一下命名規(guī)則,Android系統(tǒng)能夠在用戶更改語言和地區(qū)設(shè)置時(shí)「自動(dòng)選擇正確的資源文件」,以提供本地化的用戶體驗(yàn)。

二、字符串資源

????????將應(yīng)用中的文本內(nèi)容(如標(biāo)簽、按鈕文本、提示信息等)提取為字符串資源,并將這些字符串放入XML文件中,而不是直接硬編碼到代碼中。這樣,可以為不同的語言和地區(qū)創(chuàng)建不同的字符串資源文件,以便本地化。

android 國際化,Android 基礎(chǔ)梳理,android

android 國際化,Android 基礎(chǔ)梳理,android

三、圖片資源

????????提供不同語言/分辨率設(shè)置圖片資源,以適應(yīng)不同設(shè)備和地區(qū)的要求。例如圖片上包含藝術(shù)字,這樣的話就需要根據(jù)不同地區(qū)和語言來分別加在。

android 國際化,Android 基礎(chǔ)梳理,android

四、日期和時(shí)間格式

????????在應(yīng)用程序中使用本地化的日期和時(shí)間格式,以便根據(jù)用戶的區(qū)域設(shè)置顯示正確的日期和時(shí)間。

????//傳入不同格式,根據(jù)當(dāng)前語言顯示對(duì)應(yīng)格式
????private?static?SimpleDateFormat?getFormat(String?enFormat,String?zhFormat){
????????SimpleDateFormat?dateFormat;
????????if?(LangSPUtils.isEn(MyApplication.getContext()))?{
????????????dateFormat?=?new?SimpleDateFormat(enFormat,?Locale.ENGLISH);
????????}else?{
????????????dateFormat?=?new?SimpleDateFormat(zhFormat,Locale.SIMPLIFIED_CHINESE);
????????}
????????return?dateFormat;
????}
????
????public?static?final?String?EN_YYYY_MMM_DD?=?"yyyy.MMM.dd";
????public?static?final?String?ZH_YYYY_MM_DD?=?"yyyy年MM月dd日";
????
????public?static?String?getNowDateString(Date?date)?{
????????return?getFormat(EN_YYYY_MMM_DD,ZH_YYYY_MM_DD).format(date);
????}

五、其他

如果在細(xì)致一些可以在以下方面著手

  • 5.1 「支持多屏幕尺寸和分辨率」:確保應(yīng)用程序的布局和資源適應(yīng)不同的屏幕尺寸和分辨率,以便在各種設(shè)備上正確顯示。

  • 5.2 「支持多方向」:為應(yīng)用程序的布局和資源提供橫向和縱向兩種方向的支持,以適應(yīng)設(shè)備的旋轉(zhuǎn)。

  • 5.3 「貨幣和數(shù)字格式」:根據(jù)用戶的區(qū)域設(shè)置來顯示貨幣符號(hào)、千位分隔符和小數(shù)點(diǎn)等數(shù)字格式。

  • 5.4 「文字順序」:有些地區(qū)文字是從右至左顯示,而非從左往后。

  • 5.5 「版本」:res中的資源不只可以根據(jù)方向/語言來設(shè)置,也可以根據(jù)系統(tǒng)版本來進(jìn)行設(shè)置。

六、應(yīng)用內(nèi)切換語言

????????Application中讀取用戶語言設(shè)置,如果沒讀取到用戶設(shè)置語言,則使用系統(tǒng)默認(rèn)語言。

????public?static?void?setLanguage(Context?context,?String?lang)?{
????????Locale?sta?=?context.getResources().getConfiguration().locale;
????????Resources?resources?=?context.getResources();//?獲得res資源對(duì)象
????????Configuration?config?=?resources.getConfiguration();//?獲得設(shè)置對(duì)象
????????DisplayMetrics?dm?=?resources.getDisplayMetrics();//?獲得屏幕參數(shù):主要是分辨率,像素等。
????????//?獲取設(shè)置語言
????????if?(!MStringUtils.isNullOrEmpty(lang))?{
????????????if?(LangSPUtils.zh_CN.equals(lang))?{
????????????????config.locale?=?Locale.SIMPLIFIED_CHINESE;
????????????????LangSPUtils.putString(LangSPUtils.KEY_LANG,?LangSPUtils.zh_CN,?context);
????????????}?else?if?(LangSPUtils.zh_TW.equals(lang))?{
????????????????config.locale?=?Locale.TRADITIONAL_CHINESE;
????????????????LangSPUtils.putString(LangSPUtils.KEY_LANG,?LangSPUtils.zh_TW,?context);
????????????}?else?{
????????????????config.locale?=?Locale.US;?//?英文
????????????????LangSPUtils.putString(LangSPUtils.KEY_LANG,?LangSPUtils.en_US,?context);
????????????}
????????}?else?{
????????????//?第一次語言設(shè)置,取系統(tǒng)語言
????????????String?languages?=?sta.getLanguage();
????????????String?country?=?sta.getCountry();
????????????if?(languages=="zh"){
????????????????if?(country.equals("CN")){
????????????????????config.locale?=?Locale.SIMPLIFIED_CHINESE;
????????????????????LangSPUtils.putString(LangSPUtils.KEY_LANG,?LangSPUtils.zh_CN,?context);
????????????????}else{
????????????????????//再細(xì)致一些可以分香港/澳門/臺(tái)灣繁體
????????????????????config.locale?=?Locale.TRADITIONAL_CHINESE;
????????????????????LangSPUtils.putString(LangSPUtils.KEY_LANG,?LangSPUtils.zh_TW,?context);
????????????????}
????????????}else?{
????????????????config.locale?=?Locale.US;?//?英文
????????????????LangSPUtils.putString(LangSPUtils.KEY_LANG,?LangSPUtils.en_US,?context);
????????????}
????????}
????}

????????Activity.attachBaseContext()中設(shè)置使用的語言資源。

public?class?LaunchActivity?extends?Activity?{
????protected?void?attachBaseContext(Context?newBase)?{
????????String?lang?=?LangSPUtils.getString(LangSPUtils.KEY_LANG,this);
????????if?(!MStringUtils.isNullOrEmpty(lang)){
????????????Configuration?configuration?=?newBase.getResources().getConfiguration();
????????????if?(LangSPUtils.zh_CN.equals(lang))?{
????????????????configuration.setLocale(Locale.SIMPLIFIED_CHINESE);
????????????}?else?if?(LangSPUtils.zh_TW.equals(lang))?{
????????????????configuration.setLocale(Locale.TRADITIONAL_CHINESE);
????????????}?else?{
????????????????configuration.setLocale(Locale.US);
????????????}
            // 字體大小不跟隨系統(tǒng)
            configuration.fontScale = 1;
            Context targetContext = newBase.createConfigurationContext(configuration);
            //兼容appcompat 1.2.0后切換語言失效問題
            final ContextThemeWrapper wrappedContext = new ContextThemeWrapper(targetContext,R.style.Base_Theme_AppCompat_Empty) {
                @Override
                public void applyOverrideConfiguration(Configuration overrideConfiguration) {
                    if (overrideConfiguration != null) {
                        overrideConfiguration.setTo(configuration);
                    }
                    super.applyOverrideConfiguration(overrideConfiguration);
                }
            };
            super.attachBaseContext(wrappedContext);
????????}else?{
????????????super.attachBaseContext(newBase);
????????}
????}

????@Override
????protected?void?onCreate(@Nullable?Bundle?savedInstanceState)?{
????????super.onCreate(savedInstanceState);
????}

}
?

注:如果設(shè)置的時(shí)候不重啟Activity是不生效的。 如果設(shè)置完語言不重啟應(yīng)用(進(jìn)程),Application的上下文獲取的語言還是啟動(dòng)時(shí)的語言。

?

七、資源文件命名規(guī)則

  • values目錄中的默認(rèn)資源文件:values/strings.xml。這是應(yīng)用的默認(rèn)資源文件,用于包含默認(rèn)語言的字符串資源。

  • 針對(duì)不同語言和地區(qū)的資源文件:「values-<語言代碼>-r<地區(qū)代碼>/strings.xml」,其中 <語言代碼> 是語言的ISO 639-1代碼,而 <地區(qū)代碼> 是地區(qū)的ISO 3166-1 alpha-2代碼。例如,values-es-rES/strings.xml表示西班牙語(Spanish,ISO 639-1代碼為"es")的資源文件,地區(qū)為西班牙(ISO 3166-1 alpha-2代碼為"ES")。

  • 針對(duì)不同語言的資源文件:「values-<語言代碼>/strings.xml」。只要是英語,一律使用該資源文件下的資源。

  • 中文(中國):values-zh-rCN

  • 中文(中國臺(tái)灣):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-ru-rRU

  • 日文:values-ja-rJP

  • 韓文:values-ko-rKR

  • 阿拉伯文(埃及):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

  • 法文(比利時(shí)):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

  • 立陶宛文:valueslt-rLT

  • 拉脫維亞文:values-lv-rLV

  • 挪威博克馬爾文:values-nb-rNO

  • 荷蘭文(比利時(shí)):values-nl-BE

  • 荷蘭文(荷蘭):values-nl-rNL

  • 波蘭文:values-pl-rPL

  • 葡萄牙文(巴西):values-pt-rBR

  • 葡萄牙文(葡萄牙):values-pt-rPT

  • 羅馬尼亞文:values-ro-rRO

  • 斯洛伐克文: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

  • 緬甸語 : values-my文章來源地址http://www.zghlxwxcb.cn/news/detail-758937.html

到了這里,關(guān)于Android 實(shí)現(xiàn)資源國際化(多語言)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Android國際化各國語言簡寫

    2024年02月16日
    瀏覽(24)
  • SpringBoot集成國際化多語言配置

    SpringBoot集成國際化多語言配置

    在當(dāng)今全球化的環(huán)境下,為了更好地滿足用戶的多語言需求,越來越多的應(yīng)用程序需要支持國際化多語言配置。Spring Boot作為一種快速開發(fā)框架,提供了方便的國際化支持,使得應(yīng)用程序可以輕松地適應(yīng)不同的語言環(huán)境。通過集成Spring Boot的國際化多語言配置,應(yīng)用程序可以根

    2024年02月07日
    瀏覽(28)
  • Flutter之國際化(多語言處理)

    Flutter之國際化(多語言處理)

    項(xiàng)目內(nèi)最近加入國際化內(nèi)容,那么我們需要轉(zhuǎn)化對(duì)應(yīng)語言內(nèi)容,來展示UI App國際化開發(fā)主要包括: 文本國際化 Widget顯示的國際化 某些文本在對(duì)應(yīng)語言環(huán)境下應(yīng)該顯示為所選擇語言內(nèi)容; 目前我項(xiàng)目內(nèi)使用的是: Flutter Intl 插件: 1.安裝 Flutter Intl 插件 在Android studio內(nèi)直接搜

    2024年02月14日
    瀏覽(34)
  • WPF本地化/國際化,多語言切換

    WPF本地化/國際化,多語言切換

    之前寫過winformwinform使用本地化,中英文切換_winform 中英文切換_故里2130的博客-CSDN博客 基本的技術(shù)差不多,但是后來又發(fā)現(xiàn)了一個(gè)ResXManager工具,可以更好方便快捷的使用。 首先下載,網(wǎng)絡(luò)不好的話,去官網(wǎng)下載,然后安裝,重啟vs即可 wpf做多語言切換 有很多種,可以使用

    2024年02月11日
    瀏覽(25)
  • 用i18n 實(shí)現(xiàn)vue2+element UI的國際化多語言切換詳細(xì)步驟及代碼

    用i18n 實(shí)現(xiàn)vue2+element UI的國際化多語言切換詳細(xì)步驟及代碼

    這個(gè)地方要注意自己的vue版本和i1n8的匹配程度,如果是vue2點(diǎn)幾,記得安裝i18n的@8版本,不然會(huì)自動(dòng)安裝的最新版本,后面會(huì)報(bào)錯(cuò)哦,查詢了下資料,好像最新版本是適配的vue3。 在src下面新建i18n文件夾,然后在里面新建index.js,里面的內(nèi)容如下 新建i18n文件夾里面新建config文

    2024年02月14日
    瀏覽(31)
  • vue2+element-ui使用vue-i18n進(jìn)行國際化的多語言/國際化

    vue2+element-ui使用vue-i18n進(jìn)行國際化的多語言/國際化

    注意:vue2.0要用8版本的,使用9版本的會(huì)報(bào)錯(cuò) 在src目錄下,創(chuàng)建新的文件夾,命名為i18n zh.js en.js index.js main.js 使用方式一 效果圖 使用方式二 效果圖 使用方式三,在 效果圖 ` 注意:這種方式存在更新this.$i18n.locale的值時(shí)無法自動(dòng)切換的問題,需要刷新頁面才能切換語言。解

    2024年02月07日
    瀏覽(24)
  • 【Unity Localization】基礎(chǔ)教程-帶你入門Unity官方國際化本地化多語言插件Localization 單獨(dú)修改配置文件即可一體化控制全局文本實(shí)現(xiàn)多語言轉(zhuǎn)換

    【Unity Localization】基礎(chǔ)教程-帶你入門Unity官方國際化本地化多語言插件Localization 單獨(dú)修改配置文件即可一體化控制全局文本實(shí)現(xiàn)多語言轉(zhuǎn)換

    Unity Localization 基礎(chǔ)教程 隨著經(jīng)濟(jì)全球化的趨勢(shì),游戲也逐漸變的不分國界。在進(jìn)行游戲內(nèi)文本的國際化本土化多語言切換時(shí)往往是需要制作組耗費(fèi)大量精力,那么今天要學(xué)習(xí)的這款Unity官方推出的國際化本地化插件 Localization 就可以進(jìn)行多語言文本的全局管理達(dá)到快速切換文

    2024年02月03日
    瀏覽(19)
  • 【Unity編輯器擴(kuò)展】語言國際化工具,生成多語言Excel自動(dòng)翻譯并導(dǎo)出多語言表

    【Unity編輯器擴(kuò)展】語言國際化工具,生成多語言Excel自動(dòng)翻譯并導(dǎo)出多語言表

    ?多語言是個(gè)非常簡單且常用的功能。但是重復(fù)工作量大,程序手動(dòng)把多語言Key配置到多語言表經(jīng)常會(huì)出現(xiàn)錯(cuò)漏,或者幾經(jīng)改版,有些Key已經(jīng)不用卻沒有剔除,久而久之造成冗余。這中簡單且重復(fù)的工作必須讓工具來完成。 多語言通過Key,Value的形式保存,通過多語言API GF.

    2024年02月11日
    瀏覽(18)
  • Shell腳本中文英文多語言國際化和命令行批處理(bash sh cmd bat)中定義函數(shù)的簡單寫法

    有時(shí)候?yàn)榱朔奖銊e人使用,我們會(huì)選擇去編寫各種各樣的命令行腳本:給Windows用戶編寫 .bat cmd批處理腳本,給macOS、Linux用戶編寫 .sh bash shell腳本。 面向國內(nèi)用戶當(dāng)然應(yīng)當(dāng)首選中文作為腳本的顯示語言,如果還要支持海外用戶使用,那么能提供國際化多語言( i18n )支持那是

    2024年02月08日
    瀏覽(23)
  • vue-i18n國際化多語言與多套UI組件庫使用(Element Plus、Ant Design Vue、Naive UI)

    vue-i18n國際化多語言與多套UI組件庫使用(Element Plus、Ant Design Vue、Naive UI)

    demo源碼:Vue3 UI Lang 因調(diào)研需要,需在同一個(gè)項(xiàng)目中集成好幾種UI組件庫的多語言實(shí)現(xiàn),查看各種組件庫的表現(xiàn)情況,以便選定組件庫。 注意:這只在調(diào)研過程中會(huì)如此,實(shí)際開發(fā)項(xiàng)目中極少存在一個(gè)項(xiàng)目中集成多個(gè)UI組件庫的情況。 本demo實(shí)際試驗(yàn)阿拉伯語、法語、葡萄牙語

    2024年02月08日
    瀏覽(51)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包