获取iDevice系统语言以发出IF

时间:2016-03-22 17:51:14

标签: ios swift nslocale

我试图从用户的iDevice获取系统语言,基本上我想要1个图像,如果它是法语,而另一个是英语

任何想法?

我的代码(不会以任何方式显示图片)

let preferredLanguage = NSLocale.preferredLanguages()[0] as String

if preferredLanguage == "en" {
    navigationItem.titleView = imageView
} else if preferredLanguage == "fr" {
    navigationItem.titleView = imageViewFR
}

2 个答案:

答案 0 :(得分:2)

您不需要编写(容易出错)只是为了本地化图像。只需将图片文件放入应用包中的相应本地化文件夹即可 - 然后NSBundle.pathForResourceUIImage(named:)等API会自动加载与用户首选语言相对应的图片。 (如果不同语言的图像具有不同的尺寸,则您不需要单独的图像视图 - 只需使用自动布局。)

请参阅Apple的文档中的Localized Resources in BundlesAdding Additional Resources You Want to Localize

答案 1 :(得分:0)

原来@rmaddy是对的,这是答案

    let preferredLanguage = NSLocale.currentLocale().objectForKey(NSLocaleLanguageCode) as! String

    if preferredLanguage == "fr" {
        navigationItem.titleView = imageViewFR
    } else {
        navigationItem.titleView = imageView
    }

获取我们需要使用NSLocale.currentLocale()的系统语言然后它工作了!谢谢@rmaddy