代码之家  ›  专栏  ›  技术社区  ›  Daniel Murali

localizedString(forRegionCode:)使用了应用程序不支持的语言

  •  1
  • Daniel Murali  · 技术社区  · 6 年前

    iPad设置:

    语言顺序为:

    1. 中国人

    这个 应用程序 支持:

    • 中国人

    这个 豆荚

    • 中国人
    • 法语

    现在,在吊舱里,当我打电话的时候 NSLocalizedString 是这样的: NSLocalizedString("Search", tableName: nil, bundle: loginBundle, value: "", comment: "Search") 我得到了中文翻译(如预期的那样)。

    然而,当我打电话时 NSLocale.current.localizedString(forRegionCode:) NSLocale.current.languageCode "zh" NSLocale.current.regionCode "DE"

    1 回复  |  直到 6 年前
        1
  •  1
  •   Pranav Kasetti    6 年前

    应用程序中使用的语言首先是特定于设备的,然后是特定于应用程序的。因此,它首先在设备上使用最受欢迎的语言,该语言在捆绑包中也可用。特别是,您可以通过查看 Locale.preferredLanguages.first .

    看见 here . 因此,您可以通过以下方式获得您想要的:

    Locale(identifier: Bundle.main.preferredLocalizations[0]).localizedString(forRegionCode:)