2013-07-31 138 views
0

我已經看到一些使用谷歌翻譯網頁的文章。google翻譯Objective-C

NSString* englishString = [englishInputArray objectAtIndex:i]; 


    NSString *urlPath = [NSString stringWithFormat:@"/translate_a/t?client=t&text=%@&langpair=en|fr",englishString]; 

    NSURL *url = [[NSURL alloc] initWithScheme:@"http" host:@"translate.google.com" path:urlPath]; 

    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init] ; 
    [request setURL:url]; 
    [request setHTTPMethod:@"GET"]; 

    NSURLResponse *response; 
    NSError *error; 
    NSData *data; 
    data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]; 

    NSString *result = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding]; 

    NSLog(@"Text: %@",result); 

我有兩個問題: 1)從網頁看起來像這樣

[[["Bonjour","Hello","",""]],[["interjection",["bonjour","salut","all\u00f4","tiens"]]],"en",,[["Bonjour",[5],1,0,1000,0,1,0]],[["Hello",4,,,""],["Hello",5,[["Bonjour",1000,1,0]],[[0,5]],"Hello"]],,,[],1] 

除了做字符串操作json的回報是有辦法獨自得到確切的翻譯字符串即在這種情況下,只有「Bonjour」。

2:有人知道這是免費服務嗎? Google apis似乎是付費服務。但是如果你使用網頁是免費的服務。

+2

1你知道「解析」和「NSJSONSerialization」類的概念嗎? 2.不,如果您想將其用作API,那麼這是一項付費服務​​。但是,如果你只訪問網站,那是免費的。 – 2013-07-31 03:40:53

+0

Thannks的答覆。但關於第二部分再次有點困惑。因此,如果我以我在示例中顯示的代碼snipet中使用的方式使用Google服務,那麼這看起來不像付費服務[它不是api]。那麼它應該是免費服務? – user1771823

+0

嗯,它看起來完全像一個API,據我所知,它是支付。但你知道它... – 2013-07-31 14:28:40

回答

2
  1. 不是。我用過的所有API都是JSON或XML。如果您只能將數據解析爲可讀結構,則沒有理由使用字符串操作

  2. 如果您正在尋找使用未付費的其他服務,請記住,通常存在嚴格的限制。嘗試類似:SDL https://www.beglobal.com/developers/api-documentation/

您是否閱讀過Google的Translate API文檔? https://developers.google.com/translate/

例如執行像這樣

GET https://www.googleapis.com/language/translate/v2?key=INSERT-YOUR-KEY&source=en&target=de&q=Hello%20world 

GET請求應返回以下響應:

{ 
    "data": { 
     "translations": [ 
      { 
       "translatedText": "Hallo Welt" 
      } 
     ] 
    } 
} 

有了這個,你可以只解析JSON和顯示數據