是否可以在仍然使用 Android 资源的情况下以编程方式更改应用的语言?
如果没有,是否可以请求特定语言的资源?
我想让用户从应用程序更改应用程序的语言。
最佳答案
这是可能的。您可以设置区域设置。但是,我不建议这样做。我们在早期阶段就尝试过,它基本上是在对抗系统。
我们对更改语言有相同的要求,但决定接受 UI 应与手机 UI 相同的事实。它可以通过设置区域设置来工作,但问题太多。根据我的经验,每次进入 Activity (每个 Activity )时都必须设置它。如果您仍然需要这个,这里有一个代码(我再次不推荐)
Resources res = context.getResources();
// Change locale settings in the app.
DisplayMetrics dm = res.getDisplayMetrics();
android.content.res.Configuration conf = res.getConfiguration();
conf.setLocale(new Locale(language_code.toLowerCase())); // API 17+ only.
// Use conf.locale = new Locale(...) if targeting lower versions
res.updateConfiguration(conf, dm);
如果您有特定于语言的内容 - 您可以根据设置更改该内容。
<小时/>2020 年 3 月 26 日更新
public static void setLocale(Activity activity, String languageCode) {
Locale locale = new Locale(languageCode);
Locale.setDefault(locale);
Resources resources = activity.getResources();
Configuration config = resources.getConfiguration();
config.setLocale(locale);
resources.updateConfiguration(config, resources.getDisplayMetrics());
}
- 注意:语言代码不能包含“-”且只能是 2 个小写字母
关于android - 在 Android 中以编程方式更改应用程序语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61174989/