how to localize address result from reverseGeocodeLocation?
i found how to localize country name, maybe it'll help:
CLPlacemark *placemark;NSString *identifier = [NSLocale localeIdentifierFromComponents: [NSDictionary dictionaryWithObject: placemark.ISOcountryCode forKey: NSLocaleCountryCode]];NSLocale *usLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];NSString *country = [usLocale displayNameForKey: NSLocaleIdentifier value: identifier];
insert any country id instead @"en_US"
Solution for Swift 4, iOS 11
You can force to get geocoding results in chosen locale language by setting argument: preferredLocale: Locale.init(identifier: "en_US")
.
CLGeocoder().reverseGeocodeLocation(location, preferredLocale: Locale.init(identifier: "en_US"), completionHandler: {(placemarks, error) -> Void in print(location) if error != nil { print("Reverse geocoder failed with error" + error!.localizedDescription) return } if placemarks!.count > 0 { let pm = placemarks![0] print(pm.administrativeArea!, pm.locality!) } else { print("Problem with the data received from geocoder") }})
Mattt Thompson has a great writeup on using a method from the AddressBookUI.framework for localizing addresses on his site NSHipster. He also has a formatting library on github which contains a class for doing this type of localization which uses the AddressBookUI.framework approach he has described.