2011-01-05 8 views

Antwort

5

Es ist eine REST-API verfügbar beschrieben here. Sie sollten die leicht genug von C.

1

Dank pwc i seine Ressource verwendet zugreifen können und erstellt es mit Rohren und hier ist der Quellcode für sie

char chrptr_GoogleResponse [0x1000]; 
    char* chrptr_pos2 = NULL; 
    char* translate_text = search_str;   
    char* lang_pairs = "&langpair=es%7Cen'";  // language pairs 
    bool boNoError = true; 

    strcpy(chrarray_GoogleCommand, "curl -s -e http://www.my-ajax-site.com \ 
      'https://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q="); 

    strcat(chrarray_GoogleCommand, translate_text); 
    strcat(chrarray_GoogleCommand, lang_pairs); 

    popen(chrarray_GoogleCommand, "r"); 

    FILE* fileptrFile = popen(chrarray_GoogleCommand, "r"); 

if (fileptrFile == NULL) 
    { 
     printf("Error on opening pipe\n."); 
     exit(EXIT_FAILURE); 
    } 

while (!feof (fileptrFile)) 
    { 
     fgets (chrptr_GoogleResponse , 0x1000 , fileptrFile) ; 

     chrptr_pos1 = strstr(chrptr_GoogleResponse, "{\"translatedText\":\"") ; 
     if (chrptr_pos1) 
     { 
      chrptr_pos1 = chrptr_pos1 + strlen("{\"translatedText\":\"") ; 
      chrptr_pos2 = strstr(chrptr_GoogleResponse, "\"}, \"responseDetails\": null, \"responseStatus\": 200}") ; 
      if (chrptr_pos2) 
      { 
       memcpy(chrptr_temp, chrptr_pos1, chrptr_pos2 - chrptr_pos1); 
       memset((void*) ((unsigned long) chrptr_temp + (unsigned long) chrptr_pos2 - (unsigned long) chrptr_pos1), 0, 1); 
      } 
      else 
       boNoError = false ; 
     } 
     else 
      boNoError = false ; 

     if (feof (fileptrFile)) 
      break; 
    } 
    pclose(fileptrFile); 

    if (boNoError) 
     strcpy(search_str, chrptr_temp); //copy translated text.