25

私のiPhoneアプリは、ユーザーの緯度と経度に基づいてアドレスを解決することになっています。reverseGeocodeLocationは正常に機能しますが、結果は英語です。

結果を他の言語にローカライズする方法はありますか?

アップルや他の場所でそれに関する情報を見つけることができませんでした。

私が使用するコードは次のとおりです。

CLGeocoder *geocoder = [[[CLGeocoder alloc] init] autorelease];
CLLocation *location = [[[CLLocation alloc] 
       initWithLatitude:coord.latitude longitude:coord.longitude] autorelease];

[geocoder reverseGeocodeLocation:location completionHandler:^(NSArray *placemarks, NSError *error) {
    NSLog(@"reverseGeocodeLocation:completionHandler: Completion Handler called!");

    if (error){
        NSLog(@"Geocode failed with error: %@", error);
        [self displayError:error];
        return;
    }
    if(placemarks && placemarks.count > 0)
    {
      //do something
        CLPlacemark *topResult = [placemarks objectAtIndex:0];

        NSString *addressTxt = [NSString stringWithFormat:@"%@ %@,%@ %@", 
           [topResult subThoroughfare],[topResult thoroughfare],
           [topResult locality], [topResult administrativeArea]];
    }
}
4

4 に答える 4

1

Mattt Thompsonは、彼のサイトNSHipsterでアドレスをローカライズするためにAddressBookUI.frameworkのメソッドを使用することについて素晴らしい記事を書いています。彼はまた、彼が説明したAddressBookUI.frameworkアプローチを使用するこのタイプのローカリゼーションを実行するためのクラスを含むフォーマットライブラリをgithubに持っています。

于 2012-12-01T20:39:57.683 に答える
0

iOS11 以降、Apple は、ローカライズされた言語を出力するようにロケールを設定できる別の API を提供しています。

- (void)reverseGeocodeLocation:(CLLocation *)location preferredLocale:(nullable NSLocale *)locale
 completionHandler:(CLGeocodeCompletionHandler)completionHandler API_AVAILABLE(macos(10.13), ios(11.0), watchos(4.0), tvos(11.0));
于 2018-09-12T02:51:26.390 に答える