我有两个成对使用的应用程序,它们都使用GMSServices的GMSGeocoder进行reverseGeocodeCoordinate搜索。但在第一个结果是英语,其他 - 用设备本地语言。设备相同。
我搜索了很多,发现现在没办法让GMSGeocoder使用指定的语言来获得结果。这是不可能的,我们应该使用谷歌API请求。但它以某种方式工作,我不知道如何仅用英语使第二个应用程序返回结果。
类似的关注mapView - 同一设备上的不同语言。
如何在不考虑设备本地化的情况下为GMSServices设置英语?
答案 0 :(得分:1)
GMSGeocoder向您发送了县名,但未向国家/地区发送ISO代码。
您可以使用本机CLGeocoder类从纬度和经度获取counytyISOcode。例如:
CLLocation *location = (your location)
CLGeocoder *geocoder = [[CLGeocoder alloc] init];
[geocoder reverseGeocodeLocation:location completionHandler:
^(NSArray* placemarks, NSError* error){
if ([placemarks count] > 0)
{
CLPlacemark *placemark = [placemarks objectAtIndex:0];
NSLog(@"Your counry is %@",placemark. ISOcountryCode);
}
}];
答案 1 :(得分:0)
从stackoverflow.com/a/24333593/4195406
复制粘贴回答在- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
添加
NSArray *languages = [[NSUserDefaults standardUserDefaults] objectForKey:@"AppleLanguages"];
if (![[languages firstObject] isEqualToString:@"en"]) {
[[NSUserDefaults standardUserDefaults] setObject:@[@"en"] forKey:@"AppleLanguages"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
这对我有用
答案 2 :(得分:0)
除了@Dren回答 - 它还有助于在数组中添加regionCode
NSArray *languages = [[NSUserDefaults standardUserDefaults] objectForKey:@"AppleLanguages"];
if (![[languages firstObject] isEqualToString:@"he"]) {
[[NSUserDefaults standardUserDefaults] setObject:@[@"he",@"he-IL"] forKey:@"AppleLanguages"];
[[NSUserDefaults standardUserDefaults] synchronize];
}