随着公司发展,要进行app国际化,顺便弄个小Demo,分享给大家
经过调研,目前实现国际化的方式有两种:
1、一种是安卓系统自己根据手机选择的语言加载values文件夹下相对应strings文件
2、一种是通过手动设置实现
下面一个个来实现
一、通过安卓系统自己根据手机选择的语言加载values文件夹下相对应strings文件
首先我们要创建响应的strings文件,studio中操作如下:
我以韩国为例,创建韩国values文件夹并添加strings文件
通过上面的操作,我们已经建立了相应国家对应的strings文件如下:
strings文件
中文:
<resources>
<string name="app_name">TestApplication</string>
<string name="change_language">改变语言</string>
</resources>
韩文:
<resources>
<string name="app_name">TestApplication</string>
<string name="change_language">한국 思密达</string>
</resources>
只要这样做,android系统就会根据手机系统语言进行加载。
二、通过手动设置
通过手动设置无非就是提供一个方法供使用
方法如下:
private void setLanguage() {
/**
* 切换韩文
*/
// 获得res资源对象
Resources resources = getResources();
Configuration config = resources.getConfiguration();
// 获得屏幕参数:主要是分辨率,像素等。
DisplayMetrics dm = resources.getDisplayMetrics();
// 韩语
config.locale = Locale.KOREA;
isChange = true;
resources.updateConfiguration(config, dm);
//模拟重启页面
finish();
startActivity(new Intent(this, CustomTextActivity.class));
}
通过调用该方法就会将中文设置为英文,重点是设置后不会立即生效,需要关闭当前页面,再次进入才会生效 我通过手动关闭页面再重启来模拟实现
效果图
很简单的东西,记录下,方便以后使用