当前位置: 首页 > 知识库问答 >
问题:

Android以编程方式检查应用程序是否为某种语言本地化

许典
2023-03-14

我有一个应用程序,需要提供其他设备语言本地化的字符串。只要我的应用程序知道另一台设备的语言,它就会创建一个新的资源类。与此问题类似。

如果不支持该语言,则刚创建的资源对象在获取字符串时可能会后退(假设其他设备设置为en\u US):

  1. strings.xml
  2. zh/strings.xml
  3. 值/strings.xml

与第三种回退方式不同,我希望回退到我自己设备的语言(假设我的设备设置为es\u es,那么它将是):

  1. 字符串中的值。xml
  2. 字符串中的值。xml
  3. 值es rES/字符串。xml
  4. 值/字符串。xml
  5. 值/字符串。xml

如果我可以以编程方式检查我的应用程序是否支持语言/区域,我可以很容易地实现这一点。找到了这个AssetManager.getLocales(),但认为它没有帮助。

是否有办法实现所需的回退或检查应用程序是否本地化为特定语言/区域的方法?

共有1个答案

尉迟清野
2023-03-14

请参见此处。对其进行了测试,并以双符号字符串的形式获得了正确的设备区域设置。代码为:

String Language = Locale.getDefault().getLanguage() //returns eg. "de" for german
 类似资料:
  • 我们以编程方式安装了应用程序。 如果应用程序已安装在设备中,则应用程序将自动打开。 指引我。我完全不知道。谢谢。

  • 我需要检查我的手机的Android版本,如果版本低于4.0.0,我应该执行以下代码,否则不应该执行。我怎么能这么做?我用这句台词弄到了安卓版。 我如何检查是否低于4.0.0。建议我一个解决方案。

  • 问题内容: 我发现了只在Android N设备上才能复制的真正奇怪的错误。 在浏览我的应用程序时,可以更改语言。这是更改它的代码。 该代码在我的巡回活动(带电话)中效果很好,但是在接下来的所有活动中,所有String资源都是错误的。屏幕旋转将其修复。我该怎么办?我应该以其他方式更改Android N的语言环境还是仅仅是系统错误? PS这是我发现的。第一次启动MainActivity时(在​​我的旅

  • 问题内容: 如标题所述,我想以编程方式检查域的DNS响应是否受DNSSEC保护。 我该怎么办? 如果有Pythonic解决方案,那就太好了。 更新:更改了响应请求,对于您的困惑感到抱歉 问题答案: 使用DNS解析器(例如),您可以查询域的DNSKEY RRset并打开(dnssec OK)查询标志。如果查询成功,则答案将设置(已认证数据)标志,并将包含区域的RRSIG签名(如果已签名)。 更新:使

  • 有什么方法可以获得手机当前运行的API版本吗?

  • 有没有一种方法可以通过编程方式检查Play Store上是否有我的应用程序的更新版本? 我可以有代码运行每次用户启动应用程序检查播放商店吗?如果有更新的版本,那么用户可以被引导到PlayStore。这意味着没有必要检查自动更新。