关于Android app 国际化 中英文翻译的细节处理
导语:
最近一个项目上有要求完成app国际化,也就是如果系统语言是英文,那么你的app打开时就会自动读取string 中的字符串资源,自动完成匹配,以满足国际化需求,那么我们就按照步骤走,完成我们的app国际化道路。
步骤1:
建立相关资源文件夹:
我们要在value 文件夹下建相关的文件夹盛放app国际化资源,如图片,strings字符串文件,等等,规格是:value-国家简写编号:那么我们大中国的就是value-zh
那么文件结构就是:
好,完成第一步啦。
步骤二:
步骤二呢就是需要我们往不同的国际资源中填充资源,在保证文件名相同的情况下做好适配工作,比如
//我们匹配汉语字符串资源在 value-zh 文件夹中strings文件下
<string name="change_chanese">是否切换成汉语?</string>
//在英语文件夹下我们要如此 value-en 文件夹中strings文件下
<string name="change_chanese">Do you want to switch to Chinese?
</string>
同理我们可以找专业人士来辅助我们的工作,完成国际化翻译。
国际简写编码问题:
下面列举一些常用国家的国际化简写编码:
- 国家/地区 语言代码 国家/地区 语言代码
简体中文(中国) zh-cn 繁体中文(台湾地区) zh-tw
繁体中文(香港) zh-hk 英语(香港) en-hk
英语(美国) en-us 英语(英国) en-gb
英语(全球) en-ww 英语(加拿大) en-ca
英语(澳大利亚) en-au 英语(爱尔兰) en-ie
英语(芬兰) en-fi 芬兰语(芬兰) fi-fi
英语(丹麦) en-dk 丹麦语(丹麦) da-dk
英语(以色列) en-il 希伯来语(以色列) he-il
英语(南非) en-za 英语(印度) en-in
英语(挪威) en-no 英语(新加坡) en-sg
英语(新西兰) en-nz 英语(印度尼西亚) en-id
英语(菲律宾) en-ph 英语(泰国) en-th
英语(马来西亚) en-my 英语(阿拉伯) en-xa
韩文(韩国) ko-kr 日语(日本) ja-jp
荷兰语(荷兰) nl-nl 荷兰语(比利时) nl-be
葡萄牙语(葡萄牙) pt-pt 葡萄牙语(巴西) pt-br
法语(法国) fr-fr 法语(卢森堡) fr-lu
法语(瑞士) fr-ch 法语(比利时) fr-be
法语(加拿大) fr-ca 西班牙语(拉丁美洲) es-la
西班牙语(西班牙) es-es 西班牙语(阿根廷) es-ar
西班牙语(美国) es-us 西班牙语(墨西哥) es-mx
西班牙语(哥伦比亚) es-co 西班牙语(波多黎各) es-pr
德语(德国) de-de 德语(奥地利) de-at
德语(瑞士) de-ch 俄语(俄罗斯) ru-ru
意大利语(意大利) it-it 希腊语(希腊) el-gr
挪威语(挪威) no-no 匈牙利语(匈牙利) hu-hu
土耳其语(土耳其) tr-tr 捷克语(捷克共和国) cs-cz
斯洛文尼亚语 sl-sl 波兰语(波兰) pl-pl
瑞典语(瑞典) sv-se 西班牙语 (智利) es-cl
那么我们应用的时候就是value-zh(中国),value-en(美国)这样如此类推,,,
最后我们要用代码切换:
思路就是:用SharedPreference 保存在本地设置,然后每次开启app时候在application中提前设置:
上代码:
protected void switchLanguage(String language) {//设置应用语言类型Resources resources = getResources();Configuration config = resources.getConfiguration();DisplayMetrics dm = resources.getDisplayMetrics();if (language.equals("en")) {config.locale = Locale.US;} else {config.locale = Locale.SIMPLIFIED_CHINESE;}resources.updateConfiguration(config, dm);//保存设置语言的类型SharedPreferenceUtils.setParam(getApplicationContext(),"language", language);}
如何应用:
1.在application中做好初始化工作:
首先设置一门语言,用于本app,
2.在需要切换时候先要执行切换语言代码,然后清空堆栈内的activity,最后跳转到主页,相当于重启app刷新UI
如何清空堆栈内的activity(跳转时候设置:setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);):
Intent intent = new Intent(A.this,Main.class)
.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
//为保险起见,再一次杀掉进程 android.os.Process.killProcess(android.os.Process.myPid());
System.exit(0);
最后:
大功告成,我们的app国际化工作就分三步走完成啦!
关于Android app 国际化 中英文翻译的细节处理相关推荐
- Android App 国际化详解
前言 internationalization (国际化)简称 i18n,因为在i和n之间还有18个字符,localization(本地化),简称L10n.一般用语言_地区的形式表示一种语言,如zh_ ...
- 敬业签苹果ios手机便签APP文本中英文翻译功能如何使用?
一.打开苹果手机便签敬业签App并登录账号,可点击底部中间的+按钮新增便签文字内容保存并点击查看,或者从已有内容中点击选择要翻译的便签内容,进入查看内容详情页面: 二.在查看便签内容详情页面右上角找到 ...
- 安卓Android studio国际化方法插件安装---快速翻译工具
internationalization (国际化)简称 i18n,因为在i和n之间还有18个字符,localization(本地化 ),简称L10n. 一般用语言_地区的形式表示一种语言,如 zh_ ...
- 〖Android〗Android App项目资源字符串检查(检查是否缺少对应的翻译,导致系统切换语言后崩溃)...
Android项目开发过程中,容易出现缺少对应中英文翻译的情况,这个Python脚本是用于检查字符串是否缺少了对应的翻译 1 #!/usr/bin/env python 2 # encoding: u ...
- Android官方文档training中英文翻译目录大全:29篇已翻译,45篇未翻译
Android官方文档training中英文翻译目录大全:29篇已翻译,45篇未翻译 1. Getting Started Building Your First App: 原文: https://d ...
- android英语学习app实战,Android高端的翻译APP,英语学习APP制作
Android高端的翻译APP,英语学习APP制作,学生作品 采用金山词霸的api接口进行制作 可以学单词 背单词 单词查询 单词播报 英文名句语音朗读等 界面 简洁明了 数据库仅仅使用了本地的Gre ...
- android中英文切换功能,Android APP 中英文切换
实习期间,师父要求做app的中英文切换,就顺便记录了下. 一.AndroidManifest.xml文件(清单文件) 在每个要切换语言的Activity下面添加: android:configChan ...
- android app英文 英文模式,Android APP 中英文切换
实习期间,师父要求做app的中英文切换,就顺便记录了下. 一.AndroidManifest.xml文件(清单文件) 在每个要切换语言的Activity下面添加: android:configChan ...
- android app 多国语语言快速翻译
android app 多国语语言快速翻译 在excel中输入A2单元格输入 设置 用公式提取出app_name: =IFERROR(IF(ISBLANK(A2),"",MID(A ...
最新文章
- R语言logistic回归、判别分析(LDA)、多元自适应样条回归MARS分析案例:分析乳腺癌数据集明确细针穿刺肿瘤活检结果
- Mysql修复损坏表并写脚本自动修复
- 雷军旗下金山云冲刺IPO:3年营收74亿,小米系贡献23%,CEO王育林仅持股2.1%
- mysql报错注入_关于Mysql注入过程中的三种报错方式
- HDFS数据副本的摆放策略
- 某数加密的流程与原理简析
- CSS3的过渡和转换
- 上传声音 微信小程序_SpringBoot开发案例之微信小程序录音上传
- Java操作Oracle
- pandas 在某个列表中的值 筛选列_Pandas学习笔记(二)
- 猫眼(门镜)中的光学
- 数据结构期末作业思路分享——库存管理小程序(云数据库)
- Fc=70M,Fs=102.4M,B=40M的线性调频信号Matlab实现
- 中国移动通信互联网短信网关接口协议及相关下载
- 2022年11月10篇论文推荐
- 一个IT前辈的JIRA使用心得
- The Fool HDU - 6555
- springBoot配置全局异常处理器
- 伪静态网站安全攻防如何理解
- 华为鸿蒙2.0开发文档和API