how to localize address result from reverseGeocodeLocation? how to localize address result from reverseGeocodeLocation? ios ios

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.