2013-08-01 98 views
2

我已經使用翻譯api v2翻譯簡單的單詞或text.but現在我想翻譯整個段落。我試圖通過整段,但它沒有奏效。如何將整段傳遞給Google Translate API v2?

這是我的代碼:

public String requestTranslation(String txt, String src, String dst) 
    { 
     if(txt.length()>0) 
     { 
      String request = requestURL + requestKey + requestSrc + src + requestDst + dst + requestTxt; 
      StringBuffer sb = new StringBuffer(); 
      try { 
       request += URLEncoder.encode(txt, "UTF-8"); 
       URL url = new URL(request); 
       URLConnection connection = url.openConnection(); 
       connection.setConnectTimeout(0); 
       connection.connect(); 

       InputStreamReader inputStreamReader = new InputStreamReader(connection.getInputStream(), "UTF-8"); 
       BufferedReader in = new BufferedReader(inputStreamReader, 512); 

       String line; 
       while ((line = in.readLine()) != null) { 
        sb.append(line); 
       } 
       in.close(); 

       JSONObject jObj; 
       JSONArray data = null; 

        jObj = new JSONObject(sb.toString()); 
        jObj = jObj.getJSONObject("data"); 
        data = jObj.getJSONArray("translations"); 

        for(int i = 0; i < data.length(); i++) 
        { 
         JSONObject c = data.getJSONObject(i); 
         // Storing each json item in variable 
         txt = c.getString("translatedText"); 
        } 
        return txt; 
       //return sb.toString(); 
      } 
      catch (Exception e) 
      { 
       e.printStackTrace(); 
      } 

     } 
     return null; 
    } 

我已經通過了文字 「你怎麼樣?」它的工作完美。但是,當我傳遞整個段落然後它從http連接得到異常。

段落是這樣的:

「維基使社區協作編寫文檔,使用簡單的標記語言和網絡瀏覽器在維基網站的單頁作爲一個參考。‘wiki頁面’,而整個網頁集合通常都是通過超鏈接相互連接的,它就是「維基」。維基本質上是一個用於創建,瀏覽和搜索信息的數據庫。維基允許非線性,不斷髮展,複雜和網絡化的文本,爭論和互動「。

所以基本上我的問題是我怎麼可以通過段谷歌翻譯api v2並獲得翻譯響應?我GOOGLE了幾個職位,但無法找到任何適用於我的作品。

希望你們明白我想要什麼。

在此先感謝。

回答

1

爲了解決這個問題,我已經將段落劃分爲多個具有預定義範圍的字符串。所以它的工作很好。它只有一個問題,當我們使用預定義範圍時它會打破這個詞,所以它不能被翻譯。否則它的工作原理:

StringBuilder sb = new StringBuilder(); 
        if(Message.length()>200) 
        { 
         //sb.append(requestTranslation(Message,"en", "gu")); 
         for(int i=0;i<Message.length();) 
         { 
          if(i+200<=Message.length()) 
          { 
           sb.append(requestTranslation(Message.substring(i, i+200),"en", "gu")); 
           i+=200; 
          } 
          else 
          { 
           sb.append(requestTranslation(Message.substring(i, Message.length()),"en", "gu")); 
           i+=200; 
          } 
         } 
         Log.d("Translated Text:- ", sb.toString()); 
         Message = sb.toString(); 
        }