Locale: 应用当前的语言

3

如何通过编程找到应用程序使用的语言。例如,设备语言环境设置为es_MX,但我的应用程序仅支持en_US,因此该应用程序仅以英文显示文本。

在这种情况下,如何通过编程找到应用程序正在使用英语而不是西班牙语?

以下所有代码都返回ex_MX。

    Locale locale = getResources().getConfiguration().getLocales().get(0);
    Locale l = Resources.getSystem().getConfiguration().getLocales().get(0);
    Locale l1 = Locale.getDefault();
2个回答

0
请参考此链接的答案,因为您必须在启动应用程序时获取区域设置。如果您在整个生命周期中仅设置一次区域设置,则将默认获得您在区域设置中设置的语言。

https://dev59.com/CmAg5IYBdhLWcg3wpMWz#23556454


我的使用情况不同。该应用程序没有设置任何语言环境,仅使用设备上设置的语言环境。但是,如果设置了应用程序不支持的语言环境,则应用程序将默认使用最接近的语言(例如,es而不是es_MX)。我们如何知道应用程序当前正在使用哪种语言? - Prabhu Swaminathan

0

您可以获取系统语言。

Resources.getSystem().getConfiguration().locale.getLanguage();

用于应用程序默认语言

String CurrentLanguage = Locale.getDefault().getLanguage();

在我的情况下,这两种方法都将返回设备设置的语言为es_MX。但是由于我的应用程序不支持es_MX,只支持es,因此应用程序将使用es。 - Prabhu Swaminathan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接