Ios 在swift中使用错误的设备语言
我正在尝试用swift获取当前的电话语言。我想我知道怎么做…但我用错了语言。我的应用程序已经完成了2个本地化(英语和西班牙语)。但是我想得到真正的iOS语言,所以我可以说用户,“我们正在准备翻译成意大利语”,或者类似的东西 我使用的是iOS 13.2.2/XCode 11.2.1 我已经尝试了许多方法来实现这一点,请参见我为该代码获得的结果:Ios 在swift中使用错误的设备语言,ios,swift,iphone,Ios,Swift,Iphone,我正在尝试用swift获取当前的电话语言。我想我知道怎么做…但我用错了语言。我的应用程序已经完成了2个本地化(英语和西班牙语)。但是我想得到真正的iOS语言,所以我可以说用户,“我们正在准备翻译成意大利语”,或者类似的东西 我使用的是iOS 13.2.2/XCode 11.2.1 我已经尝试了许多方法来实现这一点,请参见我为该代码获得的结果: print(NSLocale.current.languageCode as Any) print(Locale.current.lang
print(NSLocale.current.languageCode as Any)
print(Locale.current.languageCode as Any)
print(Locale(identifier: Locale.current.identifier).identifier)
print(Locale.preferredLanguages)
print(NSLocale.preferredLanguages)
print(Locale.current.regionCode as Any)
print(NSLocale.preferredLanguages[0] )
print(NSLocale.components(fromLocaleIdentifier:
NSLocale.preferredLanguages.first!)[NSLocale.Key.languageCode.rawValue])
这些都不能给我正确的结果
例如,在设置->常规->语言和区域->iPhone语言->意大利语中将iOS语言设置为意大利语
我得到:
我怎样才能得到“它”
谢谢为什么不创建一份默认语言的副本(假设是英语),将其标记为意大利语,并添加短语“我们正在准备很快将其翻译成意大利语” 这样,你的应用程序会“认为”它支持意大利语,但实际上会显示英语文本 不过,此解决方案有一些局限性:
如果用户在他/她的设备中配置给定的语言层次结构:意大利语/西班牙语/英语,他/她会认为由于缺乏对意大利语的支持,将使用西班牙语。实际上,该应用程序将使用英语(伪装成意大利语),因此可能会引起一些混乱。如果要在一个长通话中合并,则是
NSLocale.components(fromLocaleIdentifier:
NSLocale.preferredLanguages.first!)[NSLocale.Key.languageCode.rawValue]
初始输出:
(lldb) e NSLocale.preferredLanguages
([String]) $R10 = 2 values {
[0] = "it-US"
[1] = "en"
}
使用Xcode 11.2/iOS 13.2进行测试
在应用程序启动之前,必须更改iPhone设备语言 也许是因为你的应用程序基础语言是西班牙语?我知道,但我想了解手机的真实语言。。。这甚至是可能的?所以答案是不可能在电话里听到真实的语言….?我不知道怎么做。谢谢你的回复。我进行了测试,但得到了as result=>Optional(“es”)如何向控制台写入该输出?有个“指纹”告诉我一个警告。。也许是。。。。
(lldb) e NSLocale.preferredLanguages
([String]) $R10 = 2 values {
[0] = "it-US"
[1] = "en"
}