Android 如何更改应用程序的语言

Android 如何更改应用程序的语言,android,internationalization,Android,Internationalization,可能重复: 我是Android新手。在我的应用程序中,用户可以从三种语言中选择一种语言。根据用户选择的语言,应更改整个应用程序的语言。我如何才能做到这一点?您可以设置区域设置 Resources res = context.getResources(); // Change locale settings in the app. DisplayMetrics dm = res.getDisplayMetrics(); android.content.res.Co

可能重复:


我是Android新手。在我的应用程序中,用户可以从三种语言中选择一种语言。根据用户选择的语言,应更改整个应用程序的语言。我如何才能做到这一点?

您可以设置区域设置

    Resources res = context.getResources();
    // Change locale settings in the app.
    DisplayMetrics dm = res.getDisplayMetrics();
    android.content.res.Configuration conf = res.getConfiguration();
    conf.locale = new Locale(language_code.toLowerCase());
    res.updateConfiguration(conf, dm);
如果您有特定于语言的内容,您可以根据设置进行更改。
有关更多详细信息,您可以查看并使用以下内容以编程方式更改语言:

Locale locale = new Locale("en_US"); 
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
context.getApplicationContext().getResources().updateConfiguration(config, null);
为您想要的任何语言编写语言的国家代码,以代替“en_US”。例如,对于日语,
ja_JP
;对于阿拉伯语,
ar
。查看列表

并在
res/values ja
中为日语或
res/values ar
中为阿拉伯语创建文件夹

然后制作一个
string.xml
文件,并在布局中使用您想要的任何语言。它将从values文件夹获取默认语言,否则,如果您需要手动获取,则它将从外部文件夹
values ar
等获取

阿拉伯语的
res/values ar
示例:

<?xml version="1.0" encoding="UTF-8"?>
  <resources>
    <string name="label">حسب</string>
    <string name="name">بحث</string> 
    <string name="search">بحث :</string>
 </resource>

حسب
بحث 
بحث :

在哪里调用您的代码!?在需要的地方调用它。调用一次是否足以将其应用于整个应用程序?还是每一个活动?谢谢你的代码为我工作,改变了我应用程序的语言。但我也想根据这一点改变键盘的语言,这并没有改变,你能帮我吗?语言列表的链接已被弃用。下面是最新的列表。使用此选项以编程方式更改语言:
code'Locale=new Locale(“en_US”);setDefault(Locale);配置配置=新配置();config.locale=locale;context.getApplicationContext().getResources().updateConfiguration(配置,null);setContentView(R.layout.activity_main)代码'