如何更改UIAlertView的语言以匹配设备语言?

时间:2013-01-14 05:58:42

标签: iphone ios sdk localization uialertview

我的应用程序有一个localizable.strings文件,支持英语,法语和德语。我点击一个按钮时会弹出一个警报视图,这样我怎样才能使这个警报视图的语言与设备的语言相匹配设置为? 任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:14)

与应用中的任何其他本地化字符串一样,将UIAlertView消息,标题和按钮标题本地化在Localizable.strings文件中。

见这个例子:

UIAlertView *alert2 = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Connection Error", nil) message:NSLocalizedString(@"Couldn't connect to the internet. Please check your network connection", nil) delegate:self cancelButtonTitle:NSLocalizedString(@"Ok", nil) otherButtonTitles:nil, nil];

答案 1 :(得分:0)

检查语言的设备区域设置。

NSString *localeLang = [[NSLocale preferredLanguages] objectAtIndex:0];

这将返回该语言的代码...您可以在此搜索中找到使用哪些语言代码的列表:

http://www.google.com/search?client=safari&rls=en&q=ISO+639-1+codes&ie=UTF-8&oe=UTF-8

应该注意的是,某些语言 * 可能 * 有多个代码,我从未检查过,所以我不知道。

答案 2 :(得分:0)

对于Swift 2.0,请参阅此示例:

let alert = UIAlertController(
        title: (NSLocalizedString("alert_Title" , comment: "Alert title.") as String),
        message: "Your message here",
        preferredStyle: .Alert)

    alert.addAction(UIAlertAction(
        title: (NSLocalizedString("alert_RateButton" , comment: "Alert button to rate in App Store.") as String),
        style: .Default,
        handler: { action in UIApplication.sharedApplication().openURL(NSURL(
            string: "https://itunes.apple.com/your_app_at_app_store")!)
            print("Going to App at AppStore")
    }))

    // DISMISS
    alert.addAction(UIAlertAction(
        title: (NSLocalizedString("alert_BackButton" , comment: "Alert back button.") as String),
        style: .Default,
        handler: nil))
    presentViewController(
        alert,
        animated: true,
        completion: nil)
}

享受。