iPad设置:
语言顺序为:
并且该地区设置为德国。
应用支持:
吊舱支持:
现在,在广告连播中,当我这样呼叫NSLocalizedString
时:
NSLocalizedString("Search", tableName: nil, bundle: loginBundle, value: "", comment: "Search")
我得到了中文的翻译(符合预期)。
但是,当我打电话给NSLocale.current.localizedString(forRegionCode:)
时,我用的是法语而不是中文的国家名称。 NSLocale.current.languageCode
是"zh"
,而NSLocale.current.regionCode
是"DE"
如何获取当前使用语言的国家/地区名称?
答案 0 :(得分:1)
应用程序中使用的语言首先是特定于设备的,然后是特定于应用程序的。因此,它首先使用设备上最喜欢的语言,该语言在捆绑包中也可用。特别是,您可以通过查看Locale.preferredLanguages.first
来测试问题发生的原因。
请参见here。因此,您可以获得所需的东西:
Locale(identifier: Bundle.main.preferredLocalizations[0]).localizedString(forRegionCode:)
要确保将捆绑软件的首选本地化设置为中文,还可以使用Locale(标识符:“ zh”)手动选择Locale。但是使用应用程序捆绑包可以解决此问题,而无需进行硬编码。