From f35664f0ad753df3dc4ca3b47c2f91263973af34 Mon Sep 17 00:00:00 2001
From: 18034727885 <973609879@qq.com>
Date: 星期四, 09 七月 2026 13:54:51 +0800
Subject: [PATCH] 修复初始语言非法语的问题
---
xldutils-kotlin/src/main/java/cn/sinata/xldutils/utils/LanguageUtil.java | 47 ++++++++++++++++++-----------------------------
1 files changed, 18 insertions(+), 29 deletions(-)
diff --git a/xldutils-kotlin/src/main/java/cn/sinata/xldutils/utils/LanguageUtil.java b/xldutils-kotlin/src/main/java/cn/sinata/xldutils/utils/LanguageUtil.java
index f19d0f1..bb3031a 100644
--- a/xldutils-kotlin/src/main/java/cn/sinata/xldutils/utils/LanguageUtil.java
+++ b/xldutils-kotlin/src/main/java/cn/sinata/xldutils/utils/LanguageUtil.java
@@ -6,11 +6,27 @@
import android.os.Build;
import android.os.LocaleList;
import android.text.TextUtils;
-import android.util.DisplayMetrics;
import java.util.Locale;
public class LanguageUtil {
+ private static String defaultLanguage = "";
+
+ public static void setDefaultLanguage(String language) {
+ defaultLanguage = language;
+ }
+
+ //获取语言
+ public static String getLanguage() {
+ return SPUtils.Companion.instance().getString("language", defaultLanguage);
+ }
+
+ //设置语言
+ public static void saveLanguage(Context context, String language) {
+ SPUtils.Companion.instance().put("language", language).apply();
+ LanguageUtil.changeAppLanguage(context, language, "");
+ }
+
private static Locale getLocaleByLanguage(String language) {
if (TextUtils.isEmpty(language)) {
return Locale.FRENCH;
@@ -46,7 +62,7 @@
* @param context
* @param newLanguage 想要切换的语言类型 比如 Const.Language.ENGLISH ,"zh"
*/
- public static void changeAppLanguage(Context context, String newLanguage, String country) {
+ private static void changeAppLanguage(Context context, String newLanguage, String country) {
if (TextUtils.isEmpty(newLanguage)) {
return;
}
@@ -64,32 +80,5 @@
configuration.locale = locale;
resources.updateConfiguration(configuration, resources.getDisplayMetrics());
}
- }
-
- /**
- * 如果是7.0以下,我们需要调用changeAppLanguage方法,
- * 如果是7.0及以上系统,直接把我们想要切换的语言类型保存在SharedPreferences中,然后重新启动MainActivity即可
- */
- public static void setLanguage(String language, String country, Context appContext) {
- if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N) {
- changeAppLanguage(appContext, language, country);
- }
- SPUtils.Companion.instance().put("language", language);
- SPUtils.Companion.instance().put("country", country);
- }
-
-
- public static void set(boolean isEnglish, Context context) {
- Configuration configuration = context.getResources().getConfiguration();
- DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
- if (isEnglish) {
- //设置英文
- configuration.locale = Locale.ENGLISH;
- } else {
- //设置中文
- configuration.locale = Locale.SIMPLIFIED_CHINESE;
- }
- //更新配置
- context.getResources().updateConfiguration(configuration, displayMetrics);
}
}
--
Gitblit v1.7.1