随着公司发展,要进行app国际化,顺便弄个小Demo,分享给大家
经过调研,目前实现国际化的方式有两种:

1、一种是安卓系统自己根据手机选择的语言加载values文件夹下相对应strings文件

2、一种是通过手动设置实现

下面一个个来实现

一、通过安卓系统自己根据手机选择的语言加载values文件夹下相对应strings文件

首先我们要创建响应的strings文件,studio中操作如下:

android 国家地区 安卓更改国家地区_重启

android 国家地区 安卓更改国家地区_加载_02

我以韩国为例,创建韩国values文件夹并添加strings文件

android 国家地区 安卓更改国家地区_android_03

通过上面的操作,我们已经建立了相应国家对应的strings文件如下:

android 国家地区 安卓更改国家地区_加载_04

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));


    }

通过调用该方法就会将中文设置为英文,重点是设置后不会立即生效,需要关闭当前页面,再次进入才会生效 我通过手动关闭页面再重启来模拟实现
效果图

android 国家地区 安卓更改国家地区_加载_05

很简单的东西,记录下,方便以后使用