Android多国语言翻译 国际化(i18n)

i18n 是“国际化”(Internationalization)的缩写,其中 i 是单词 “internationalization” 的第一个字母,18 代表字母 in 之间的 18 个字母,n 是单词的最后一个字母。这种缩写形式主要用于软件开发领域,以简洁地表示支持多语言的概念。

多语言或国际化在软件中通常指的是使软件能够适配多种语言和地区的过程,不仅包括翻译文本,还包括考虑日期和时间格式、货币单位、数字格式、排序规则等地区差异性问题。

使用 i18n 作为国际化的缩写,可以让开发者快速识别代码库中与多语言支持相关的部分,比如文件夹、函数、变量名等。类似的还有 l10n,用来表示“本地化”(Localization),即根据特定国家或地区的语言和文化习惯调整软件的过程。
在这里插入图片描述

语言目录详细对应关系

Arabic, Egypt (ar-rEG) —————————–阿拉伯语,埃及
Arabic, Israel (ar-rIL) ——————————-阿拉伯语,以色列
Bulgarian, Bulgaria (bg-rBG) ———————保加利亚语,保加利亚
Catalan, Spain (ca-rES) —————————加泰隆语,西班牙
Czech, Czech Republic (cs-rCZ) —————–捷克语,捷克共和国
Danish, Denmark(da-rDK) ————————丹麦语,丹麦
German, Austria (de-rAT) ————————-德语,奥地利
German, Switzerland (de-rCH) ——————-德语,瑞士
German, Germany (de-rDE) ———————-德语,德国
German, Liechtenstein (de-rLI) ——————德语,列支敦士登的
Greek, Greece (el-rGR) —————————-希腊语,希腊
English, Australia (en-rAU) ————————-英语,澳大利亚
English, Canada (en-rCA) ————————–英语,加拿大
English, Britain (en-rGB) —————————-英语,英国
English, Ireland (en-rIE) —————————–英语,爱尔兰
English, India (en-rIN) ——————————–英语,印度
English, New Zealand (en-rNZ) ———————英语,新西兰
English, Singapore(en-rSG) ————————–英语,新加坡
English, US (en-rUS) ———————————–英语,美国
English, Zimbabwe (en-rZA) ————————–英语,津巴布韦
Spanish (es-rES) —————————————-西班牙
Spanish, US (es-rUS) ———————————–西班牙语,美国
Finnish, Finland (fi-rFI) ———————————芬兰语,芬兰
French, Belgium (fr-rBE) ——————————-法语,比利时
French, Canada (fr-rCA) ——————————-法语,加拿大
French, Switzerland (fr-rCH) ————————–法语,瑞士
French, France (fr-rFR) ——————————–法语,法国
Hebrew, Israel (he-rIL) ———————————希伯来语,以色列
Hindi, India (hi-rIN) ————————————-印地语,印度
Croatian, Croatia (hr-rHR) —————————-克罗地亚语,克罗地亚
Hungarian, Hungary (hu-rHU) ————————匈牙利语,匈牙利
Indonesian, Indonesia (id-rID) ————————印尼语,印尼
Italian, Switzerland (it-rCH) —————————-意大利语,瑞士
Italian, Italy (it-rIT) —————————————意大利语,意大利
Japanese (ja-rJP) —————————————-日语
Korean (ko-rKR) ——————————————朝鲜语
Lithuanian, Lithuania (lt-rLT) ————————–立陶宛语,立陶宛
Latvian, Latvia (lv-rLV) ———————————拉托维亚语,拉托维亚
Norwegian-Bokmol, Norway(nb-rNO) —————挪威语,挪威
Dutch, Belgium (nl-rBE) ——————————–荷兰语,比利时
Dutch, Netherlands (nl-rNL) —————————荷兰语,荷兰
Polish (pl-rPL) ——————————————-波兰
Portuguese, Brazil (pt-rBR) —————————葡萄牙语,巴西
Portuguese, Portugal (pt-rPT) ————————葡萄牙语,葡萄牙
Romanian, Romania (ro-rRO) ————————罗马尼亚语,罗马尼亚
Russian (ru-rRU) —————————————-俄语
Slovak, Slovakia (sk-rSK) ——————————斯洛伐克语,斯洛伐克
Slovenian, Slovenia (sl-rSI) —————————-斯洛文尼亚语,斯洛文尼亚
Serbian (sr-rRS) —————————————-塞尔维亚语
Swedish, Sweden (sv-rSE) —————————-瑞典语,瑞典
Thai, Thailand (th-rTH) ——————————–泰语,泰国
Tagalog, Philippines (tl-rPH) ————————–菲律宾语,菲律宾
Turkish, Turkey (tr-rTR) ——————————-土耳其语,土耳其
Ukrainian, Ukraine (uk-rUA) ————————–联合王国
Vietnamese, Vietnam (vi-rVN) ———————–越南语,越南
Chinese, PRC (zh-rCN)——————————–中文,中国
Chinese, Taiwan (zh-rTW)—————————–中文,台湾

RTL工具类

针对RTL语言,如果不想重新切图


    /**
     * RTL语言及其通常用的简称
     * 1. 阿拉伯语 (Arabic) - `ar`
     * 2. 波斯语 (Persian/Farsi) - `fa`
     * 3. 乌尔都语 (Urdu) - `ur`
     * 4. 希伯来语 (Hebrew) - `he`(过去曾被表示为`iw`)
     * 5. 叙利亚语 (Syriac) - `syr`
     * 6. 巴什基尔语 (Bashkir) - `ba`
     * 7. 吉尔吉斯语 (Kyrgyz) - `ky`
     * 8. 塔塔尔语 (Tatar) - `tt`
     * 9. 乌兹别克语(使用阿拉伯字母)(Uzbek Arabic script) - `uz_Arab`
     * 10. 犹太-佩尔维安语 (Judeo-Persian) - 无特定ISO代码,通常使用波斯语编码`fa`
     *
     * @return
     */
    public static boolean isRTL(Context context) {
    
    
        String language = context.getResources().getConfiguration().locale.getLanguage();
        final String RTL = "[ar,fa,iw,ur,ur,he,syr,ba,ky,tt,uz_Arab]";
        return RTL.contains(language);
    }

    public static void autoImageViewRTL(ImageView imageView) {
    
    
        if (imageView == null) {
    
    
            return;
        }
        imageView.setScaleX(isRTL(imageView.getContext()) ? -1.0f : 1.0f);
    }
}
    <locale android:name="af"/> <!-- 南非荷兰语 -->
    <locale android:name="am"/> <!-- 阿姆哈拉语 -->
    <locale android:name="ar"/> <!-- 阿拉伯语 -->
    <locale android:name="as"/> <!-- 阿萨姆语 -->
    <locale android:name="az"/> <!-- 阿塞拜疆语 -->
    <locale android:name="be"/> <!-- 白俄罗斯语 -->
    <locale android:name="bg"/> <!-- 保加利亚语 -->
    <locale android:name="bn"/> <!-- 孟加拉语 -->
    <locale android:name="bs"/> <!-- 波斯尼亚语 -->
    <locale android:name="ca"/> <!-- 加泰罗尼亚语 -->
    <locale android:name="cs"/> <!-- 捷克语 -->
    <locale android:name="da"/> <!-- 丹麦语 -->
    <locale android:name="de"/> <!-- 德语 -->
    <locale android:name="el"/> <!-- 希腊语 -->
    <locale android:name="en-AU"/> <!-- 英语(澳大利亚)-->
    <locale android:name="en-CA"/> <!-- 英语(加拿大)-->
    <locale android:name="en-GB"/> <!-- 英语(英国)-->
    <locale android:name="en-IN"/> <!-- 英语(印度)-->
    <locale android:name="en-US"/> <!-- 英语(美国)-->
    <locale android:name="en-XA"/> <!-- 英语(伪口音)-->
    <locale android:name="es"/> <!-- 西班牙语(西班牙)-->
    <locale android:name="es-US"/> <!-- 西班牙语(美国)-->
    <locale android:name="et"/> <!-- 爱沙尼亚语 -->
    <locale android:name="eu"/> <!-- 巴斯克语 -->
    <locale android:name="fa"/> <!-- 波斯语 -->
    <locale android:name="fi"/> <!-- 芬兰语 -->
    <locale android:name="fr"/> <!-- 法语(法国)-->
    <locale android:name="fr-CA"/> <!-- 法语(加拿大)-->
    <locale android:name="gl"/> <!-- 加利西亚语 -->
    <locale android:name="gu"/> <!-- 古吉拉特语 -->
    <locale android:name="hi"/> <!-- 印地语 -->
    <locale android:name="hr"/> <!-- 克罗地亚语 -->
    <locale android:name="hu"/> <!-- 匈牙利语 -->
    <locale android:name="hy"/> <!-- 亚美尼亚语 -->
    <locale android:name="in"/> <!-- 印度尼西亚语 id / in -->
    <locale android:name="is"/> <!-- 冰岛语 -->
    <locale android:name="it"/> <!-- 意大利语 -->
    <locale android:name="iw"/> <!-- 希伯来语 -->
    <locale android:name="ja"/> <!-- 日语 -->
    <locale android:name="ka"/> <!-- 格鲁吉亚语 -->
    <locale android:name="kk"/> <!-- 哈萨克语 -->
    <locale android:name="km"/> <!-- 高棉语 -->
    <locale android:name="kn"/> <!-- 卡纳达语 -->
    <locale android:name="ko"/> <!-- 韩语 -->
    <locale android:name="ky"/> <!-- 吉尔吉斯 -->
    <locale android:name="lo"/> <!-- 老挝语 -->
    <locale android:name="lt"/> <!-- 立陶宛语 -->
    <locale android:name="lv"/> <!-- 拉脱维亚语 -->
    <locale android:name="mk"/> <!-- 马其顿语 -->
    <locale android:name="ml"/> <!-- 马拉雅拉姆语 -->
    <locale android:name="mn"/> <!-- 蒙古语 -->
    <locale android:name="mr"/> <!-- 马拉地语 -->
    <locale android:name="ms"/> <!-- 马来语 -->
    <locale android:name="my"/> <!-- 缅甸语 -->
    <locale android:name="my-MM"/> <!-- 缅甸语(缅甸)-->
    <locale android:name="nb"/> <!-- 挪威语 -->
    <locale android:name="ne"/> <!-- 尼泊尔语 -->
    <locale android:name="nl"/> <!-- 荷兰语 -->
    <locale android:name="or"/> <!-- Odia -->
    <locale android:name="pa"/> <!-- 旁遮普语 -->
    <locale android:name="pl"/> <!-- 波兰语 -->
    <locale android:name="pt-BR"/> <!-- 葡萄牙语(巴西)-->
    <locale android:name="pt-PT"/> <!-- 葡萄牙语(葡萄牙)-->
    <locale android:name="ro"/> <!-- 罗马尼亚语 -->
    <locale android:name="ru"/> <!-- 俄语 -->
    <locale android:name="si"/> <!-- 僧伽罗语 -->
    <locale android:name="sk"/> <!-- 斯洛伐克语 -->
    <locale android:name="sl"/> <!-- 斯洛文尼亚语 -->
    <locale android:name="sq"/> <!-- 阿尔巴尼亚语 -->
    <locale android:name="sr"/> <!-- 塞尔维亚语(西里尔文)-->
    <locale android:name="sr-Latn"/> <!-- 塞尔维亚语(拉丁语)-->
    <locale android:name="sv"/> <!-- 瑞典语 -->
    <locale android:name="sw"/> <!-- 斯瓦希里语 -->
    <locale android:name="ta"/> <!-- 泰米尔语 -->
    <locale android:name="te"/> <!-- 泰卢固语 -->
    <locale android:name="th"/> <!-- 泰语 -->
    <locale android:name="tl"/> <!-- 菲律宾语 -->
    <locale android:name="tr"/> <!-- 土耳其语 -->
    <locale android:name="uk"/> <!-- 乌克兰语 -->
    <locale android:name="ur"/> <!-- 乌尔都语 -->
    <locale android:name="uz"/> <!-- 乌兹别克语 -->
    <locale android:name="vi"/> <!-- 越南语 -->
    <locale android:name="zh-CN"/> <!-- 中文(简体)-->
    <locale android:name="zh-HK"/> <!-- 中文(香港)-->
    <locale android:name="zh-TW"/> <!-- 中文(繁体)-->
    <locale android:name="zu"/> <!-- 祖鲁语 -->
Code Language Code Language
af 南非荷兰语 ko 韩语
am 阿姆哈拉语 ky 吉尔吉斯
ar 阿拉伯语 lo 老挝语
as 阿萨姆语 lt 立陶宛语
az 阿塞拜疆语 lv 拉脱维亚语
be 白俄罗斯语 mk 马其顿语
bg 保加利亚语 ml 马拉雅拉姆语
bn 孟加拉语 mn 蒙古语
bs 波斯尼亚语 mr 马拉地语
ca 加泰罗尼亚语 ms 马来语
cs 捷克语 my 缅甸语
da 丹麦语 my-MM 缅甸语(缅甸)
de 德语 nb 挪威语
el 希腊语 ne 尼泊尔语
en-AU 英语(澳大利亚) nl 荷兰语
en-CA 英语(加拿大) or Odia
en-GB 英语(英国) pa 旁遮普语
en-IN 英语(印度) pl 波兰语
en-US 英语(美国) pt-BR 葡萄牙语(巴西)
en-XA 英语(伪口音) pt-PT 葡萄牙语(葡萄牙)
es 西班牙语(西班牙) ro 罗马尼亚语
es-US 西班牙语(美国) ru 俄语
et 爱沙尼亚语 si 僧伽罗语
eu 巴斯克语 sk 斯洛伐克语
fa 波斯语 sl 斯洛文尼亚语
fi 芬兰语 sq 阿尔巴尼亚语
fr 法语(法国) sr 塞尔维亚语(西里尔文)
fr-CA 法语(加拿大) sr-Latn 塞尔维亚语(拉丁语)
gl 加利西亚语 sv 瑞典语
gu 古吉拉特语 sw 斯瓦希里语
hi 印地语 ta 泰米尔语
hr 克罗地亚语 te 泰卢固语
hu 匈牙利语 th 泰语
hy 亚美尼亚语 tl 菲律宾语
in 印度尼西亚语 id / in tr 土耳其语
is 冰岛语 uk 乌克兰语
it 意大利语 ur 乌尔都语
iw 希伯来语 uz 乌兹别克语
ja 日语 vi 越南语
ka 格鲁吉亚语 zh-CN 中文(简体)
kk 哈萨克语 zh-HK 中文(香港)
km 高棉语 zh-TW 中文(繁体)
kn 卡纳达语 zu 祖鲁语

猜你喜欢

转载自blog.csdn.net/iblade/article/details/135021407