关于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>

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

  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国际化工作就分三步走完成啦!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/67108.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

英文android系统,安卓系统中英文对照

安卓系统中英文对照 来源&#xff1a;华强电子网 作者&#xff1a;华仔 浏览&#xff1a;926 时间&#xff1a;2017-04-11 17:24 标签&#xff1a; 摘要&#xff1a; 模拟安卓机身内存里的\system\app&#xff0c; app文件夹里就是装系统自带的文件。将那些不要的&#xff0c;也…

安卓开发需求之一:实现中英文切换

大家好&#xff0c;今天给大家分享一下中英文切换&#xff0c;其实不止是中英文&#xff0c;只是这个比较有代表性&#xff0c;什么语言都可以切换。 安卓里面控制语言就是新建包&#xff0c;在res里面新建values-zh-rCN和values-en-rUS&#xff0c;zh代表的是中文&#xff0c…

安卓开发中英文切换需求

其实不止是中英文&#xff0c;只是这个比较有代表性&#xff0c;什么语言都可以切换。 安卓里面控制语言就是新建包&#xff0c;在res里面新建values-zh-rCN和values-en-rUS&#xff0c;zh代表的是中文&#xff0c;en代表的是英文。把strings相对应的内容复制过去。我把我的代…

Android开发-应用中英文(语言)切换(二)

APP中针对不同国家不同地区的人群使用那么应用的语言自然也要能够随时进行切换&#xff0c;最近做的项目有中文和英文切换的需求&#xff0c;所以在了解了一下网上常用的方法后记录一下我使用的方法&#xff0c;只是简单的应用&#xff0c;后续如果有不同需求需要自己去改。♻ …

抓考研英语单词主要矛盾的经验分享,考研英语真题词频统计

按 这篇考研经验总结文章提到过&#xff0c;我自身对于一个英文句子如果单词都认识那么大概率可以自然翻译出来&#xff08;大概是得益于看英文电影&#xff08;偶尔不带翻译字幕&#xff09;和英文芯片手册多的原因培养了语感&#xff09;&#xff0c;所以主要矛盾是单词&…

23、24考研党必备的网站推荐

23、24考研党必备的网站推荐 23考研进入到后半场&#xff0c;24考研也即将迎来备考高潮。不知道以下将要推荐的网站同学们有没有在用了呢。要知道考研是一场信息战&#xff0c;考验的不只是我们的学习能力&#xff0c;还有寻找资源的能力。接下来就给大家盘点几个我总结的考研…

【软件设计师暴击考点】软件工程知识高频考点【一】

👨‍💻个人主页:@元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏:软件设计师考点暴击 ⭐🅰️系统路线学习点击跳转⭐ 下午题⭐【软件设计师暴击考点】下午题高频考点暴击系列 上午题⭐【

【软件设计师暴击考点】UML知识高频考点暴击系列

👨‍💻个人主页:@元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏:软件设计师考点暴击 ⭐🅰️系统路线学习点击跳转⭐ 下午题⭐【软件设计师暴击考点】下午题高频考点暴击系列 上午题⭐【

【软件设计师暴击考点】数据库系统高频考点暴击系列

👨‍💻个人主页:@元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏:软件设计师考点暴击 ⭐🅰️系统路线学习点击跳转⭐ 下午题⭐【软件设计师暴击考点】下午题高频考点暴击系列 上午题⭐【

【软件设计师暴击考点】面向对象考点暴击系列

👨‍💻个人主页:@元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏:软件设计师考点暴击 ⭐🅰️推荐文章⭐ ⭐🅰️系统路线学习点击跳转⭐ 下午题⭐【软件设计师暴击考

软件设计师冲刺:临考快速记忆

章节章节01 - 计算机组成原理与体系结构07 - 法律法规与标准化与多媒体基础02 - 操作系统基本原理08 - 设计模式03 - 数据库系统09 - 软件工程04 - 计算机网络10 - 面向对象05 - 数据结构与算法11 - 结构化开发与UML06 - 程序设计语言与语言处理程序基础12 - 下午题历年真题End…

软件设计师-软考中级-下午题答题笔记-答题技巧-解题方式-下午题内容学习

目录 数据流图&#xff08;DFD&#xff09; 数据流图基本概念 数据字典 数据流图平衡原则 答题技巧 数据库设计 数据库设计过程&#xff08;了解&#xff09; ER模型 答题技巧 UML建模 用例图 类图和对象图 顺序图 活动图 状态图 通信图 数据结构及算法 考察…

软件设计师--其他高频考点总结

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 秩沅 原创 收录于专栏 软件设计师高频考点合集 视频2022软件设计师-提炼高频考点-个人学习过程的总结&#xff0c;仅供参考&#x…

【软件设计师】高频考点集锦

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;软考…

软件设计师の备考经验帖及复习资料

文章目录 Laptoy祝大家逢考必过9月1号备考-11月05号考试复习资料推荐up主&#xff1a;[zst_2001](https://space.bilibili.com/91286799) 跟着视频来基本必过刷题软件&#xff1a;软考通报考地址及证书 Laptoy祝大家逢考必过 9月1号备考-11月05号考试 复习资料 章节章节01 - …

软件设计师备考资料及策略

参加软考的意义对不同的人来说可能是不一样的&#xff0c;你可能是想在找工作的时候写在简历上加分、积分落户、升职加薪、政策补贴或者是个税抵扣等。本人单纯地只是不想在以后自己的简历上太空&#xff0c;因此参加了考试&#xff0c;我参加了2022年下半年的软件设计师考试&a…

【软件设计师暴击考点】下午题高频考点暴击系列

👨‍💻个人主页:@元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏:软件设计师考点暴击 ⭐🅰️系统路线学习点击跳转⭐ 下午题视频总结:

软件设计师下午题高频考点技巧总结

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 秩沅 原创 收录于专栏 软件设计师高频考点合集 下午题视频总结上午题视频总结 &#x1f496;其他文章 &#x1f636;‍&#x1f3…

实测 ? 2019 史上最全 28个国外国内免费虚拟手机号平台

顾名思义 就是 免费 接受验证码 , 不是广告!!!!!!!!! 审核人员 可以自己尝试 不要给我和谐了 国内接码平台 国内&#xff08;Z-SMS)(http://www.z-sms.com/) 国内&#xff08;小鸟接码(http://www.xnsms.com/) 速码http://www.z-sms.com/(免费&#xff0c;免注册) 百万码 ht…

ES(Elasticsearch) 存储限流修改

在Elasticsearch的早期版本中&#xff0c;过度的合并将会拖慢集群&#xff0c;以至于索引和搜索请求慢得无法接收&#xff0c;或者是所有得节点都无法响应&#xff0c;这都是因为合并时对I/O产生了压力&#xff0c;导致新分段得写入很缓慢。此外&#xff0c;由于I/O得等待&…