我使用翻译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使社区能够使用简单的标记语言和Web浏览器协同编写文档.Wiki网站中的单个页面称为”wiki页面“,而整个页面集合通常称为”wiki页面“。通过超链接很好地互连,是“维基”。维基本质上是一个用于创建,浏览和搜索信息的数据库。维基允许非线性,不断发展,复杂和网络化的文本,论证和交互。“
所以基本上我的问题是如何将段落传递到谷歌翻译api v2并获得翻译的回复?我搜索过几个帖子,但找不到任何对我有用的帖子。
希望你们明白我想要的东西。
提前致谢。
答案 0 :(得分: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();
}