如何更改应用程序的语言

时间:2011-06-24 07:36:29

标签: android internationalization

  

可能重复:
  Change language programatically in Android

我是Android新手。在我的应用程序中,用户可以选择三种语言的语言。根据用户选择的语言,应该更改整个应用程序的语言。我怎么能这样做?

2 个答案:

答案 0 :(得分:50)

使用此选项以编程方式更改语言:

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。检查this link以获取列表。

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>

答案 1 :(得分:6)

您可以设置区域设置。

    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 this also