Skip to content

Commit 36016e5

Browse files
committed
修复获取指定的语种下的资源后导致获取系统语种失效的问题
1 parent ec6100a commit 36016e5

File tree

11 files changed

+31
-19
lines changed

11 files changed

+31
-19
lines changed

MultiLanguages.apk

-8.47 KB
Binary file not shown.

MultiLanguages.gif

578 KB
Loading

README.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
1-
# 国际化适配框架
1+
# 国际化框架
2+
3+
![](MultiLanguages.gif)
24

35
#### 集成步骤
46

57
dependencies {
6-
implementation 'com.hjq:language:2.0'
8+
implementation 'com.hjq:language:3.0'
79
}
810

911
#### 初始化框架

app/build.gradle

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ android {
77
applicationId "com.hjq.language.demo"
88
minSdkVersion 14
99
targetSdkVersion 28
10-
versionCode 20
11-
versionName "2.0"
10+
versionCode 30
11+
versionName "3.0"
1212
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
1313
}
1414
buildTypes {
@@ -29,5 +29,5 @@ dependencies {
2929
// 标题栏:https://github.com/getActivity/TitleBar
3030
implementation 'com.hjq:titlebar:6.0'
3131
// 吐司工具类:https://github.com/getActivity/ToastUtils
32-
implementation 'com.hjq:toast:6.0'
32+
implementation 'com.hjq:toast:8.0'
3333
}

app/src/main/java/com/hjq/language/demo/BaseActivity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,4 @@ protected void attachBaseContext(Context newBase) {
1313
// 国际化适配(绑定语种)
1414
super.attachBaseContext(LanguagesManager.attach(newBase));
1515
}
16-
}
16+
}

app/src/main/java/com/hjq/language/demo/LanguageActivity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,12 @@ public class LanguageActivity extends BaseActivity
1717
protected void onCreate(Bundle savedInstanceState) {
1818
super.onCreate(savedInstanceState);
1919
setContentView(R.layout.activity_language);
20+
2021
findViewById(R.id.btn_language_auto).setOnClickListener(this);
2122
findViewById(R.id.btn_language_cn).setOnClickListener(this);
2223
findViewById(R.id.btn_language_tw).setOnClickListener(this);
2324
findViewById(R.id.btn_language_en).setOnClickListener(this);
2425

25-
2626
((TextView) findViewById(R.id.tv_language_system)).setText(LanguagesManager.getLanguageString(this, LanguagesManager.getSystemLanguage(), R.string.current_language));
2727

2828
Locale locale = LanguagesManager.getAppLanguage(this);

build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ allprojects {
1616
jcenter()
1717
google()
1818
maven {url "https://jitpack.io"}
19+
maven {url 'https://maven.google.com'}
1920
}
2021

2122
//解决app:mockableAndroidJar错误的问题

library/build.gradle

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,23 +5,21 @@ apply plugin: 'com.novoda.bintray-release'
55
android {
66
compileSdkVersion 26
77

8-
resourcePrefix "language_"
9-
108
defaultConfig {
119
minSdkVersion 14
1210
targetSdkVersion 26
13-
versionCode 20
14-
versionName "2.0"
11+
versionCode 30
12+
versionName "3.0"
1513
}
1614
}
1715

1816
publish {
1917
userOrg = 'getactivity'//填写bintray用户名,注意大小写
2018
groupId = 'com.hjq'//定义的maven group id最终引用形式
2119
artifactId = 'language'//maven的artifact id
22-
version = '2.0'//maven 上发布版本号
20+
version = '3.0'//maven 上发布版本号
2321
description = 'Android Multi Languages Adaptation Framework'//描述,自己定义
24-
website = "https://github.com/getActivity/"//项目在github中的地址
22+
website = "https://github.com/getActivity/MultiLanguages"//项目在github中的地址
2523
}
2624

2725
tasks.withType(Javadoc) {//防止编码问题

library/src/main/java/com/hjq/language/LanguagesChange.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import android.content.ComponentCallbacks;
44
import android.content.Context;
55
import android.content.res.Configuration;
6+
import android.content.res.Resources;
67
import android.os.Build;
78

89
import java.util.Locale;
@@ -16,7 +17,16 @@
1617
final class LanguagesChange implements ComponentCallbacks {
1718

1819
/** 系统语种 */
19-
private static Locale sSystemLanguage = Locale.getDefault();
20+
private static Locale sSystemLanguage;
21+
22+
static {
23+
// 获取当前系统的语种
24+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
25+
sSystemLanguage = Resources.getSystem().getConfiguration().getLocales().get(0);
26+
} else {
27+
sSystemLanguage = Resources.getSystem().getConfiguration().locale;
28+
}
29+
}
2030

2131
/**
2232
* 获取系统的语种

library/src/main/java/com/hjq/language/LanguagesManager.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,8 +95,8 @@ public static boolean equalsCountry(Locale locale1, Locale locale2) {
9595
/**
9696
* 获取某个语种下的 String
9797
*/
98-
public static String getLanguageString(Context context, Locale locale, int stringId) {
99-
return getLanguageResources(context, locale).getString(stringId);
98+
public static String getLanguageString(Context context, Locale locale, int id) {
99+
return getLanguageResources(context, locale).getString(id);
100100
}
101101

102102
/**

0 commit comments

Comments
 (0)