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

时间:2018-11-22 11:51:11

标签: ios swift xcode locale

iPad设置:

语言顺序为:

  1. 法语
  2. 中文

并且该地区设置为德国。

应用支持:

  • 中文

吊舱支持:

  • 中文
  • 法语。

现在,在广告连播中,当我这样呼叫NSLocalizedString时: NSLocalizedString("Search", tableName: nil, bundle: loginBundle, value: "", comment: "Search")我得到了中文的翻译(符合预期)。

但是,当我打电话给NSLocale.current.localizedString(forRegionCode:)时,我用的是法语而不是中文的国家名称。 NSLocale.current.languageCode"zh",而NSLocale.current.regionCode"DE"

如何获取当前使用语言的国家/地区名称?

1 个答案:

答案 0 :(得分:1)

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

请参见here。因此,您可以获得所需的东西:

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

要确保将捆绑软件的首选本地化设置为中文,还可以使用Locale(标识符:“ zh”)手动选择Locale。但是使用应用程序捆绑包可以解决此问题,而无需进行硬编码。