public class ChangeLanguageHelper { public static final int LANGUAGE_CHINA = 1; public static final int LANGUAGE_ENGLISH = 2; public static final int LANGUAGE_DEFAULT = 0; private static Context mContext = null; private static String country = null; private static String mLanguage = ""; private static Resources mResources; private static Locale mDefaultLocale; public static void init(Context context) { mResources = context.getResources(); country = context.getResources().getConfiguration().locale.getCountry(); mContext = context.getApplicationContext(); int appLanguage = Configure.getAppLanguage(); changeLanguage(appLanguage); } /** * 获取当前字符串资源的内容 */ public static String getStringById(int id) { String string; if (mLanguage != null && !"".equals(mLanguage)) { string = mResources.getString(id, mLanguage); } else { string = mResources.getString(id, ""); } if (string != null && string.length() > 0) { return string; } return ""; } public static void changeLanguage(int language) { boolean isChangeLanguage = false; if (language != Configure.getAppLanguage()) { isChangeLanguage = true; } Configuration config = mResources.getConfiguration(); // 获得设置对象 DisplayMetrics dm = mResources.getDisplayMetrics(); // 获得屏幕参数:主要是分辨率,像素等。 switch (language) { case LANGUAGE_CHINA: config.locale = Locale.SIMPLIFIED_CHINESE; // 中文 config.setLayoutDirection(Locale.SIMPLIFIED_CHINESE); mLanguage = "zh-CN"; country = "CN"; Configure.setAppLanguage(LANGUAGE_CHINA); break; case LANGUAGE_ENGLISH: config.locale = Locale.ENGLISH; // 英文 config.setLayoutDirection(Locale.ENGLISH); mLanguage = "en"; country = "US"; Configure.setAppLanguage(LANGUAGE_ENGLISH); break; case LANGUAGE_DEFAULT: country = Locale.getDefault().getCountry(); if ("US".equals(country) || "GB".equals(country)) { mDefaultLocale = Locale.ENGLISH; } else { mDefaultLocale = Locale.SIMPLIFIED_CHINESE; } config.locale = mDefaultLocale; // 系统默认语言 config.setLayoutDirection(mDefaultLocale); Configure.setAppLanguage(LANGUAGE_DEFAULT); break; } mResources.updateConfiguration(config, dm); if (isChangeLanguage) { EventBus.getDefault().post(new AppEvent.ChangeLanguage()); } } public static boolean getDefaultLanguage() { return ("CN".equals(country)); } }
Android 中英文切换工具类
猜你喜欢
转载自blog.csdn.net/meng326125/article/details/85681551
今日推荐
周排行