NSLocale和国家名称
我用这个代码来得到哪个国家的iPhone属于:
NSLocale *locale = [NSLocale currentLocale]; NSString *countryCode = [locale objectForKey: NSLocaleCountryCode]; NSString *country = [locale displayNameForKey: NSLocaleCountryCode value: countryCode];
我想要用英语来说明国家名称,但是如果iPhone使用其他语言,则会以该语言返回国家名称…
查询displayName的英文语言环境
喜欢这个:
NSLocale *locale = [NSLocale currentLocale]; NSString *countryCode = [locale objectForKey: NSLocaleCountryCode]; NSLocale *usLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]; NSString *country = [usLocale displayNameForKey: NSLocaleCountryCode value: countryCode];
下面是一些代码,用于获取有关SWIFT中可用的NSLocale对象的信息,只需将代码放入Playground:
func printInEnglish() { // get all available Identifiers let allLocaleIdentifiers : Array<String> = NSLocale.availableLocaleIdentifiers as Array<String> // init an english NSLocale to get the english name of all NSLocale-Objects let englishLocale : NSLocale = NSLocale.init(localeIdentifier : "en_US") // enumerate all available Identifiers for anyLocaleID in allLocaleIdentifiers { // get the english name var theEnglishName : String? = englishLocale.displayName(forKey: NSLocale.Key.identifier, value: anyLocaleID) if theEnglishName == nil {theEnglishName = "no english name available"} // create a NSLocale-Object let anyLocale : NSLocale = NSLocale.init(localeIdentifier : anyLocaleID) // ask for CurrencyCode, CurrencySymbol and CountryCode, ... of the created NSLocale-Object var theCurrencyCode : String? = anyLocale.object(forKey: NSLocale.Key.currencyCode) as? String if theCurrencyCode == nil {theCurrencyCode = "no Currency Code available"} var theCurrencySymbol : String? = anyLocale.object(forKey: NSLocale.Key.currencySymbol) as? String if theCurrencySymbol == nil {theCurrencySymbol = "no currency symbol available"} var theCountryCode : String? = anyLocale.object(forKey: NSLocale.Key.countryCode) as? String if theCountryCode == nil {theCountryCode = "no country code available"} var theLanguageCode : String? = anyLocale.object(forKey: NSLocale.Key.languageCode) as? String if theLanguageCode == nil {theLanguageCode = "no language code available"} // print the result -> see the result in LoggingArea of xCode print("Identifier : \(anyLocaleID)\nName : \(theEnglishName!)\nCurrencyCode : \(theCurrencyCode!)\nSymbol : \(theCurrencySymbol!)\nLanguageCode : \(theLanguageCode!)\nCountryCode : \(theCountryCode!)\n----------------------------") } } printInEnglish()
你得到这样的信息(例子):