【问题标题】:How To Set Default Language for Android app?如何为 Android 应用设置默认语言?
【发布时间】:2014-05-23 21:35:50
【问题描述】:

我已经用两种语言创建了一个应用程序。第二个(英语),当用户的默认系统语言是英语时使用。如果不是,则使用第一个。

我想将第二种语言(即英语)设置为默认语言, 这意味着当用户打开我的应用并且他的系统语言不是第一个,也不是英语时,英语将显示为默认语言。

我试过了:

    Locale locale = new Locale("en_US");
    Locale.setDefault(locale);
    Configuration config = new Configuration();
    config.locale = locale;
    context.getApplicationContext.getResources().updateConfiguration(config, null);

但每次都出现“无法解析上下文”错误..这段代码是对的还是..?

【问题讨论】:

  • 您不需要这样做。当语言与提供的任何替代语言不匹配时,将使用您放入“基本”文件夹中的任何资源(例如值与值-es)。
  • 它给出错误是因为你没有定义上下文变量,所以在你的第一个活动中你可以在 setContentView(), Locale locale = new Locale("en_US"); Locale.setDefault(locale);配置配置 = 新配置(); config.locale = 语言环境; getApplicationContext().getResources().updateConfiguration(config, null);这对我有用。

标签: java android


【解决方案1】:

好的,

为了让一切清楚, 我意识到res/values 是一个默认目录,而其他目录只是“在语言的情况下”。所以我所要做的就是将英语切换到 /res/values 而另一种语言转到res/values-es

【讨论】:

    【解决方案2】:

    您应该使用 res 文件夹定义您支持的所有语言,即res/valuesres/values-enres/values-fr。系统会处理其他所有事情,您不需要任何代码。

    【讨论】:

      【解决方案3】:

      如果你正在参加一项活动,你可以这样做:

      this.getApplicationContext().getResources().updateConfiguration(config, null);

      ...修复您的错误。 否则你需要传入上下文。

      确保在getApplicationContext() 末尾添加括号。您的代码中没有这样做。

      【讨论】:

        【解决方案4】:

        我也遇到过同样的情况,我的应用最初是用葡萄牙语 (BR) 创建的,所以我们走向了全球,我有第二语言 En-Us,所以我的解决方案是创建一种新语言(点击翻译编辑器 +巴西)...所以我有我的默认语言(葡萄牙语)第二(英语)第三(葡萄牙语)

        然后我将资源/值替换为默认的英文字符串设置...

        【讨论】:

          猜你喜欢
          • 2020-12-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-07-12
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多