В iOS 9 вы можете временно переопределить язык приложения:
func completionHandler(_ placemarks: [CLPlacemark]?, _ error: Error?) {
if let place = placemarks?.first {
print(place.thoroughfare!)
print(place.locality)
print(place.location)
print(place.subLocality)
}
}
let location = CLLocation(latitude: 48.858370, longitude: 2.294481)
if #available(iOS 11.0, *) {
CLGeocoder().reverseGeocodeLocation(location, preferredLocale: Locale(identifier: "fa_IR"), completionHandler: completionHandler)
} else {
UserDefaults.standard.set(["fa_IR"], forKey: "AppleLanguages")
CLGeocoder().reverseGeocodeLocation(location) { placemarks, error in
// Remove the language override
UserDefaults.standard.removeObject(forKey: "AppleLanguages")
completionHandler(placemarks, error)
}
}
Суть в том, что ваше приложение становится непродолжительным, независимо от настроек пользователя. Все, что зависит от локали (например, NSLocalizedString
или NumberFormatter
), будет затронуто.