Thursday, July 17, 2014

Google Translate API

+(void)googleTranslateText : (NSString *)inputText
             fromLang : (NSString *)fromLanguage
               toLang : (NSString *)toLanguage
withCompletionHandler : (void (^)(NSString *result))completionHandler {
 
 
  NSString *googleTranslateURLStr = [NSString stringWithFormat:@"https://www.googleapis.com/language/translate/v2?key=%@&source=%@&target=%@&q=%@&prettyprint=true",kGOOGLE_API_KEY, fromLanguage, toLanguage, inputText];
  googleTranslateURLStr = [googleTranslateURLStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
 
  NSLog(@"googleTranslateURLStr : %@", googleTranslateURLStr);
 
  NSURL *googleTranslateURL = [NSURL URLWithString:googleTranslateURLStr];
 
  dispatch_queue_t queue    = dispatch_queue_create("com.biranchi.touristGuide", 0);
  dispatch_async(queue, ^{
   
   
    NSData *data = [[NSData alloc] initWithContentsOfURL:googleTranslateURL];
   
//    NSString *str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
//    NSLog(@"Google Translated Str : %@", str);
   
   
    NSError *err = nil;
    NSDictionary *jsonDict = [NSJSONSerialization JSONObjectWithData:data options:0 error:&err];
    //NSLog(@"err : %@", err);
    NSLog(@"JSON Dict : %@", jsonDict);
   
    NSString *translatedText = @"";
    NSArray *translationsArr = [[jsonDict objectForKey:@"data"] objectForKey:@"translations"];
    if(translationsArr && [translationsArr count]){
      translatedText = [[translationsArr objectAtIndex:0] objectForKey:@"translatedText"];
    }
   
    dispatch_async(dispatch_get_main_queue(), ^{
     
      NSString *responseString = [NSString stringWithFormat:@"%@", translatedText];
      completionHandler(responseString);

    });
  });//end
 
}

No comments: