导语:
最近一个项目上有要求完成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>

同理我们可以找专业人士来辅助我们的工作,完成国际化翻译。
国际简写编码问题:
下面列举一些常用国家的国际化简写编码:

  1. 国家/地区 语言代码 国家/地区 语言代码
    简体中文(中国) 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 国际化 中英文翻译的细节处理相关推荐

  1. Android App 国际化详解

    前言 internationalization (国际化)简称 i18n,因为在i和n之间还有18个字符,localization(本地化),简称L10n.一般用语言_地区的形式表示一种语言,如zh_ ...

  2. 敬业签苹果ios手机便签APP文本中英文翻译功能如何使用?

    一.打开苹果手机便签敬业签App并登录账号,可点击底部中间的+按钮新增便签文字内容保存并点击查看,或者从已有内容中点击选择要翻译的便签内容,进入查看内容详情页面: 二.在查看便签内容详情页面右上角找到 ...

  3. 安卓Android studio国际化方法插件安装---快速翻译工具

    internationalization (国际化)简称 i18n,因为在i和n之间还有18个字符,localization(本地化 ),简称L10n. 一般用语言_地区的形式表示一种语言,如 zh_ ...

  4. 〖Android〗Android App项目资源字符串检查(检查是否缺少对应的翻译,导致系统切换语言后崩溃)...

    Android项目开发过程中,容易出现缺少对应中英文翻译的情况,这个Python脚本是用于检查字符串是否缺少了对应的翻译 1 #!/usr/bin/env python 2 # encoding: u ...

  5. Android官方文档training中英文翻译目录大全:29篇已翻译,45篇未翻译

    Android官方文档training中英文翻译目录大全:29篇已翻译,45篇未翻译 1. Getting Started Building Your First App: 原文: https://d ...

  6. android英语学习app实战,Android高端的翻译APP,英语学习APP制作

    Android高端的翻译APP,英语学习APP制作,学生作品 采用金山词霸的api接口进行制作 可以学单词 背单词 单词查询 单词播报 英文名句语音朗读等 界面 简洁明了 数据库仅仅使用了本地的Gre ...

  7. android中英文切换功能,Android APP 中英文切换

    实习期间,师父要求做app的中英文切换,就顺便记录了下. 一.AndroidManifest.xml文件(清单文件) 在每个要切换语言的Activity下面添加: android:configChan ...

  8. android app英文 英文模式,Android APP 中英文切换

    实习期间,师父要求做app的中英文切换,就顺便记录了下. 一.AndroidManifest.xml文件(清单文件) 在每个要切换语言的Activity下面添加: android:configChan ...

  9. android app 多国语语言快速翻译

    android app 多国语语言快速翻译 在excel中输入A2单元格输入 设置 用公式提取出app_name: =IFERROR(IF(ISBLANK(A2),"",MID(A ...

最新文章

  1. R语言logistic回归、判别分析(LDA)、多元自适应样条回归MARS分析案例:分析乳腺癌数据集明确细针穿刺肿瘤活检结果
  2. Mysql修复损坏表并写脚本自动修复
  3. 雷军旗下金山云冲刺IPO:3年营收74亿,小米系贡献23%,CEO王育林仅持股2.1%
  4. mysql报错注入_关于Mysql注入过程中的三种报错方式
  5. HDFS数据副本的摆放策略
  6. 某数加密的流程与原理简析
  7. CSS3的过渡和转换
  8. 上传声音 微信小程序_SpringBoot开发案例之微信小程序录音上传
  9. Java操作Oracle
  10. pandas 在某个列表中的值 筛选列_Pandas学习笔记(二)
  11. 猫眼(门镜)中的光学
  12. 数据结构期末作业思路分享——库存管理小程序(云数据库)
  13. Fc=70M,Fs=102.4M,B=40M的线性调频信号Matlab实现
  14. 中国移动通信互联网短信网关接口协议及相关下载
  15. 2022年11月10篇论文推荐
  16. 一个IT前辈的JIRA使用心得
  17. The Fool HDU - 6555
  18. springBoot配置全局异常处理器
  19. 伪静态网站安全攻防如何理解
  20. 华为鸿蒙2.0开发文档和API

热门文章

  1. 【目标跟踪】|单目标跟踪指标
  2. 查看表空间和表的使用率
  3. 电影“防火墙” 引发的黑客攻击迅雷(转)
  4. L2TP协议及AVP
  5. java学习5:公告管理案例
  6. DecisionTreeRegressor参数详解
  7. 【软考】【知识产权与法律法规】
  8. java.acp是什么,ACP是什么?看这一篇就够啦
  9. java火车票售票系统_基于java的火车票售票系统,界面Swing
  10. Excel密码保护破解代码