Android7.1.1之后设置APP语言的方式(不跟随系统),向下兼容。

标签: Android8.0 Android多语言
2人阅读 评论(0) 收藏 举报
分类:
public class LanguageUtils {
    public static Context attachBaseContext(Context context, String language) {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
            return createConfigurationResources(context, language);
        } else {
            applyLanguage(context, language);
            return context;
        }
    }

    /**
     * 7.1.1以下设置语言的方式
     *
     * @param context
     * @param newLanguage
     */
    public static void applyLanguage(Context context, String newLanguage) {
        Resources resources = context.getResources();
        Configuration configuration = resources.getConfiguration();
//        Locale locale = SupportLanguageUtil.getSupportLanguage(newLanguage);

//        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
//            // apply locale
//            configuration.setLocale(locale);
//        } else {
        // updateConfiguration
        switch (newLanguage) {
            case "en_US":
                configuration.locale = Locale.ENGLISH;
                break;
            case "zh_CN":
                configuration.locale = Locale.SIMPLIFIED_CHINESE;
                break;
            default:
                configuration.locale = Locale.ENGLISH;
                break;
        }
        DisplayMetrics dm = resources.getDisplayMetrics();
        resources.updateConfiguration(configuration, dm);
//        }
    }

    /**
     * 7.1.1以上设置语言的方式
     *
     * @param context
     * @param language
     * @return
     */

    @TargetApi(Build.VERSION_CODES.N)
    private static Context createConfigurationResources(Context context, String language) {
        Resources resources = context.getResources();
        Configuration configuration = resources.getConfiguration();
//        Locale locale;
//        if (TextUtils.isEmpty(language)) {
//            //如果没有指定语言使用系统首选语言
//            locale = SupportLanguageUtil.getSystemPreferredLanguage();
//        } else {
//            //指定了语言使用指定语言,没有则使用首选语言
//            locale = SupportLanguageUtil.getSupportLanguage(language);
//        }
        switch (language) {
            case "en_US":
                configuration.setLocale(Locale.ENGLISH);
                break;
            case "zh_CN":
                configuration.setLocale(Locale.SIMPLIFIED_CHINESE);
                break;
            default:
                configuration.setLocale(Locale.ENGLISH);
                break;
        }
        return context.createConfigurationContext(configuration);
    }
}
参考文章:Android 国际化(多语言)兼容8.0
查看评论

ios 实现app语言切换,不跟随系统

实现的功能是第一次app打开
  • LIUSIYU641
  • LIUSIYU641
  • 2014-10-16 09:57:44
  • 1122

iOS本地化(跟随系统语言变化)

目的:App中的显示语言根据系统语言的变化而变化 xcode版本:7.3一.App名称本地化1.新建一个source文件,选择string files,文件命名为InfoPlist(必须是这个名字,...
  • jay6971134
  • jay6971134
  • 2016-05-12 15:19:16
  • 924

android实现只切换本应用的语言(不切换android 系统语言)

android 应用支持国际化语言的配置。  在android 工程中的res文件夹下 创建values-国家代码,例如values-en,values-zh 这样就可以和android 系统中设置的...
  • a22422931
  • a22422931
  • 2016-02-03 16:56:38
  • 1622

iOS应用程序实现内部多语言国际化,不跟随系统语言改变的步骤

此文章为转载,特此说明 当前xcode版本7.2 手机端 iOS 9.3        我们的项目已经非常庞大了,也上线了,老板突然说要加一个多语言功能,在他眼里程序员就是个魔术师,点一个...
  • pbz106
  • pbz106
  • 2017-01-13 15:44:38
  • 459

Android 设置App字体不跟随系统字体改变

对于个别app不需要根据系统字体的大小来改变的,可以在activity基类(app中所有的activity都应该有继承于我们自己定义的一个BaseActivity类)中加上以下code。经测试可行。 ...
  • m0_37177456
  • m0_37177456
  • 2017-07-11 17:36:48
  • 577

iOS应用内部切换语言,不跟随系统

前言:网络上关于iOS国际化的文章很多,但基本上都是基于跟随系统语言的国际化,笔者就不赘述了-0 – 今天要讲的是不跟随系统的切换语言版本方案,即程序内部的切换语言版本方案。 ...
  • x32sky
  • x32sky
  • 2014-09-03 18:30:16
  • 14432

Android 切换系统语言功能实现(下)

转载请标明出处: http://blog.csdn.net/u011974987/article/details/50801770; 概述:简单介绍下这个需求的缘由,这段时间因公司业务需要,其中有...
  • u011974987
  • u011974987
  • 2016-03-04 12:47:24
  • 4377

iOS多语言(国际化)开发(跟随系统 + APP内手动设置)

iOS多语言(国际化)开发(跟随系统 + APP内手动设置) && 修改系统默认开发语言
  • feng2qing
  • feng2qing
  • 2017-03-05 22:30:05
  • 5024

Android APP字体大小跟随系统设置

项目适配遇到的问题,在Android 4.0以上的系统当中,用户能够在系统设置对字体大小进行更改,这样一来,在自己的应用当中由于字体大小的变化会导致显示不全,布局错乱等问题的存在。这个设置直接会影响到...
  • ylyg050518
  • ylyg050518
  • 2016-11-22 11:23:56
  • 2054

关于android 根据系统语言更改 app名字和其他配置

上次在实验室的项目里面,上面要求要根据系统的语言更改app的名字,比如中文就显示 中文名字 ,如果是英文就显示 英文名字,网上资料查了半天,搞得我云里雾里的。 自己查了下,android对于多语言的...
  • ZXC641483573
  • ZXC641483573
  • 2017-06-16 23:08:32
  • 585
    个人资料
    等级:
    访问量: 6387
    积分: 153
    排名: 110万+
    文章分类
    文章存档