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

2024-03-01 08:50

本文主要是介绍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"/> <!-- 祖鲁语 -->
CodeLanguageCodeLanguage
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英语(加拿大)orOdia
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 / intr土耳其语
is冰岛语uk乌克兰语
it意大利语ur乌尔都语
iw希伯来语uz乌兹别克语
ja日语vi越南语
ka格鲁吉亚语zh-CN中文(简体)
kk哈萨克语zh-HK中文(香港)
km高棉语zh-TW中文(繁体)
kn卡纳达语zu祖鲁语

这篇关于Android多国语言翻译 国际化(i18n)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:https://blog.csdn.net/iblade/article/details/135021407
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/761872

相关文章

C语言进阶(预处理命令详解)

《C语言进阶(预处理命令详解)》文章讲解了宏定义规范、头文件包含方式及条件编译应用,强调带参宏需加括号避免计算错误,头文件应声明函数原型以便主函数调用,条件编译通过宏定义控制代码编译,适用于测试与模块... 目录1.宏定义1.1不带参宏1.2带参宏2.头文件的包含2.1头文件中的内容2.2工程结构3.条件编

Go语言并发之通知退出机制的实现

《Go语言并发之通知退出机制的实现》本文主要介绍了Go语言并发之通知退出机制的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录1、通知退出机制1.1 进程/main函数退出1.2 通过channel退出1.3 通过cont

Go语言编译环境设置教程

《Go语言编译环境设置教程》Go语言支持高并发(goroutine)、自动垃圾回收,编译为跨平台二进制文件,云原生兼容且社区活跃,开发便捷,内置测试与vet工具辅助检测错误,依赖模块化管理,提升开发效... 目录Go语言优势下载 Go  配置编译环境配置 GOPROXYIDE 设置(VS Code)一些基本

深入理解Go语言中二维切片的使用

《深入理解Go语言中二维切片的使用》本文深入讲解了Go语言中二维切片的概念与应用,用于表示矩阵、表格等二维数据结构,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧... 目录引言二维切片的基本概念定义创建二维切片二维切片的操作访问元素修改元素遍历二维切片二维切片的动态调整追加行动态

Android kotlin中 Channel 和 Flow 的区别和选择使用场景分析

《Androidkotlin中Channel和Flow的区别和选择使用场景分析》Kotlin协程中,Flow是冷数据流,按需触发,适合响应式数据处理;Channel是热数据流,持续发送,支持... 目录一、基本概念界定FlowChannel二、核心特性对比数据生产触发条件生产与消费的关系背压处理机制生命周期

Android ClassLoader加载机制详解

《AndroidClassLoader加载机制详解》Android的ClassLoader负责加载.dex文件,基于双亲委派模型,支持热修复和插件化,需注意类冲突、内存泄漏和兼容性问题,本文给大家介... 目录一、ClassLoader概述1.1 类加载的基本概念1.2 android与Java Class

Go语言中make和new的区别及说明

《Go语言中make和new的区别及说明》:本文主要介绍Go语言中make和new的区别及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1 概述2 new 函数2.1 功能2.2 语法2.3 初始化案例3 make 函数3.1 功能3.2 语法3.3 初始化

Go语言中nil判断的注意事项(最新推荐)

《Go语言中nil判断的注意事项(最新推荐)》本文给大家介绍Go语言中nil判断的注意事项,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1.接口变量的特殊行为2.nil的合法类型3.nil值的实用行为4.自定义类型与nil5.反射判断nil6.函数返回的

Go语言数据库编程GORM 的基本使用详解

《Go语言数据库编程GORM的基本使用详解》GORM是Go语言流行的ORM框架,封装database/sql,支持自动迁移、关联、事务等,提供CRUD、条件查询、钩子函数、日志等功能,简化数据库操作... 目录一、安装与初始化1. 安装 GORM 及数据库驱动2. 建立数据库连接二、定义模型结构体三、自动迁

Go语言代码格式化的技巧分享

《Go语言代码格式化的技巧分享》在Go语言的开发过程中,代码格式化是一个看似细微却至关重要的环节,良好的代码格式化不仅能提升代码的可读性,还能促进团队协作,减少因代码风格差异引发的问题,Go在代码格式... 目录一、Go 语言代码格式化的重要性二、Go 语言代码格式化工具:gofmt 与 go fmt(一)