Language SDK 使用文档

Language SDK 是一个应用语言切换框架,通过 LanguageController 类可实现对应用语言的初始化和修改,获取应用当前语言码和系统语言码。

引入

工程根目录的 build.gradle:

allprojects {
   repositories {
       maven { url 'http://artifactory.jd.com/libs-releases-local/' }
  }
}

module build.gradle:

dependencies {
    compile 'com.jingdong.wireless.jdsdk:android-sdk-language:1.7.5'
}

初始化语言

在每个 Activity 和 Application 的 attachBaseContext() 方法中通过 LanguageController.createLanguageContext() 设置语言,

@Override
public void attachBaseContext(Context base) {
    super.attachBaseContext(base = LanguageController.createLanguageContext(base));
    ...
}
  • SDK 会从 SharedPreferences 中获取应用保存的语言设置,如果没有相关设置时将使用 "follow_system" (跟随系统);
  • 如果 SharedPreferences 中没有相关设置时不希望应用跟随系统,可以使用带两个参数的 LanguageController.createLanguageContext(Context, String),第二个参数为默认语言码,在没有语言相关设置时会使用;
  • SDK 内部提供了四种语言码(将跟随系统也视为一种语言码):
    • LanguageController.LANGUAGE_CODE_EN_US (en_US, 英文)
    • LanguageController.LANGUAGE_CODE_ZH_CN (zh_CN, 中文)
    • LanguageController.LANGUAGE_CODE_TH_TH (th_TH, 泰文)
    • LanguageController.LANGUAGE_CODE_FOLLOW_SYSTEM (follow_system, 跟随系统)
  • 你还可以设置其他语言码

说明

语言码:每种语言的标识,由语言和国家两部分组成,类中涉及到的语言码均是“languagecountry”形式,如 zh_CN(简体中文),zh(小写)代表中文,CN(大写)代表中国,两者用 `` (下划线)连接

切换语言

LanguageController.setAppLanguageCode(Context context, String languageSetting, String classNameOfActivityToResart)
LanguageController.setAppLanguageCode(Context context, String languageSetting, Class classOfActivityToResart)

应用可通过上面两个方法改变语言:

  • 第一个参数为当前上下文;
  • 第二个参数为要切换的语言码;
  • 第三个参数为 Activity 的class对象或全称类名(应为应用的首页)

更新语言后 SDK 会销毁所有 Activity 并启动第三个参数指定的 Activity

其他接口介绍

LanguageController 类其他接口:

方法 参数 返回值
public static String getDefaultLanguageSetting() 获取应用默认语言码,如果没有设置返回 follow_system
public static String getLanguageCodeSetting(Context) 上下文对象 获取应用当前的语言设置
public static String getAppLanguageCode(Context) 上下文对象 获取应用当前使用的语言码
public static boolean isAppCurrentLanguage(Context, String) 上下文对象,语言码 判断应用是否在使用指定语言
public static String getSystemLanguageCode() 获取系统语言码
public static boolean isSystemCurrentLanguage(String) 语言码 判断系统是否在使用指定语言

混淆配置

如果项目打包时需要混淆代码,请在混淆配置文件中添加如下配置:

# Language sdk
-keep class com.jingdong.sdk.language.** {*;}

results matching ""

    No results matching ""