*****
**国际化**
[TOC=6]
# 1. 国际化
安卓中,国际化十分简单。 其实就是文件夹的问题。一般我们分两种情况。
一是app根据系统语言调用对应的资源文件夹,二是在app里面根据用户的需求来更改语言。前者比较简单,只需求创建对应国家的strings.xml,然后发在对应的文件夹里面就可以了。app会根据系统语言选择对应的文件夹资源。(图片资源的国际化也是一样的)
下面我们先看看常用的原因文件夹命名:
Android多国语言文件夹文件汇总如下:
中文(中国):values-zh-rCN
中文(台湾):values-zh-rTW
中文(香港):values-zh-rHK
英语(美国):values-en-rUS
英语(英国):values-en-rGB
英文(澳大利亚):values-en-rAU
英文(加拿大):values-en-rCA
英文(爱尔兰):values-en-rIE
英文(印度):values-en-rIN
英文(新西兰):values-en-rNZ
英文(新加坡):values-en-rSG
英文(南非):values-en-rZA
阿拉伯文(埃及):values-ar-rEG
阿拉伯文(以色列):values-ar-rIL
保加利亚文: values-bg-rBG
加泰罗尼亚文:values-ca-rES
捷克文:values-cs-rCZ
丹麦文:values-da-rDK
德文(奥地利):values-de-rAT
德文(瑞士):values-de-rCH
德文(德国):values-de-rDE
德文(列支敦士登):values-de-rLI
希腊文:values-el-rGR
西班牙文(西班牙):values-es-rES
西班牙文(美国):values-es-rUS
芬兰文(芬兰):values-fi-rFI
法文(比利时):values-fr-rBE
法文(加拿大):values-fr-rCA
法文(瑞士):values-fr-rCH
法文(法国):values-fr-rFR
希伯来文:values-iw-rIL
印地文:values-hi-rIN
克罗里亚文:values-hr-rHR
匈牙利文:values-hu-rHU
印度尼西亚文:values-in-rID
意大利文(瑞士):values-it-rCH
意大利文(意大利):values-it-rIT
日文:values-ja-rJP
韩文:values-ko-rKR
立陶宛文:valueslt-rLT
拉脱维亚文:values-lv-rLV
挪威博克马尔文:values-nb-rNO
荷兰文(比利时):values-nl-BE
荷兰文(荷兰):values-nl-rNL
波兰文:values-pl-rPL
葡萄牙文(巴西):values-pt-rBR
葡萄牙文(葡萄牙):values-pt-rPT
罗马尼亚文:values-ro-rRO
俄文:values-ru-rRU
斯洛伐克文:values-sk-rSK
斯洛文尼亚文:values-sl-rSI
塞尔维亚文:values-sr-rRS
瑞典文:values-sv-rSE
泰文:values-th-rTH
塔加洛语:values-tl-rPH
土耳其文:values--r-rTR
乌克兰文:values-uk-rUA
越南文:values-vi-rVN
第二种是是用代码让用户自己设置来更改语言。同样,我们需要把strings.xml放到对应的文件夹。代码也很简单。
~~~
/**
* 切换英文
*/
public void en(View v){
Resources resources = getResources();// 获得res资源对象
Configuration config = resources.getConfiguration();// 获得设置对象
DisplayMetrics dm = resources.getDisplayMetrics();// 获得屏幕参数:主要是分辨率,像素等。
config.locale = Locale.ENGLISH; // 英文
resources.updateConfiguration(config, dm);
finish();//如果不重启当前界面,是不会立马修改的
startActivity(new Intent(this,MainActivity.class));
}
/**
* 切换中文
*/
public void cn(View v){
Resources resources = getResources();// 获得res资源对象
Configuration config = resources.getConfiguration();// 获得设置对象
DisplayMetrics dm = resources.getDisplayMetrics();// 获得屏幕参数:主要是分辨率,像素等。
config.locale = Locale.CHINA; // 简体中文
resources.updateConfiguration(config, dm);
finish();////如果不重启当前界面,是不会立马修改的
startActivity(new Intent(this,MainActivity.class));
}
~~~
![](https://box.kancloud.cn/45c19d2dcdf0d33ec6188c87b052796d_471x719.jpg)
- 班规
- 第一单元 Git
- 1.1 Git简介
- 1.2 Git安装
- 1.3 版本控制
- 1.4 远程仓库
- 1.5 分支管理
- 1.6 Git命令总结
- 1.7 在Android Studio中使用Git
- 第一单元 作业
- 第二单元 项目立项
- 2.1 需求文档
- 2.2 原型图
- 2.3 接口文档
- 2.4 项目实现
- 2.5 制定开发计划
- 第二单元 作业
- 第三单元 MVP搭建项目框架
- 3.1 代码架构模式
- 3.2 普通方式写代码
- 3.3 使用MVC重构代码
- 3.4 使用MVP重构代码
- 3.5 使用接口提高代码通用性
- 3.6 内存泄漏
- 3.7 使用契约统一管理接口
- 第三单元 作业
- 第四单元 MVP架构优化
- 4.1 MVP基类封装与泛型应用
- 4.3 BaseActivity的封装
- 第五单元 Volley网络框架
- 5.1 Volley网络框架
- 第六单元 Glide实现图片异步加载
- 6.1 开始使用
- 6.2 占位符
- 6.3 Glide缓存
- 6.4 GlideGifVideo与色彩模式
- 第七单元 传统屏幕适配
- 7.1 相对布局
- 7.1 权重
- 7.3 .9Patch
- 7.4 dimens适配
- 7.5 国际化
- 7.6 shape实现自定义样式
- 7.7 自定义样式
- 7.8 沉浸式状态栏
- 第八单元 RecyclerView
- 8.1 RecycleView
- 第九单元 自定义View
- 第十单元 自定义View实战
- 第十一单元 自定义View进阶
- 第二十单元 属性动画
- 第十三单元 异常捕获机制
- 第十四单元 原生登录、注册模块
- 第十五单元 第三方登录、分享、统计
- 第十六单元 HTML5新特性
- 第十七单元 CSS3新特性
- 第十八单元 WebView与JS交互
- 第一周周考
- 第二周周考
- 第三周周考
- 月考