Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在swift中使用错误的设备语言_Ios_Swift_Iphone - Fatal编程技术网

Ios 在swift中使用错误的设备语言

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

我正在尝试用swift获取当前的电话语言。我想我知道怎么做…但我用错了语言。我的应用程序已经完成了2个本地化(英语和西班牙语)。但是我想得到真正的iOS语言,所以我可以说用户,“我们正在准备翻译成意大利语”,或者类似的东西

我使用的是iOS 13.2.2/XCode 11.2.1

我已经尝试了许多方法来实现这一点,请参见我为该代码获得的结果:

    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"
}