/*
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see .
*/
/*
Copyright 2011 Joe Robinson
based on code by Jamie Walters
based on code by Joe Robinson
*/
import java.net.URL;
import java.net.URLConnection;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.io.UnsupportedEncodingException;
public class blatranslate {
public static void main(String[] args) throws IOException, UnsupportedEncodingException
{
String query = "";
String sourceLang = "?";
String targetLang = "";
String sourceString = "";
OutputStreamWriter outStream=new OutputStreamWriter(System.out,"UTF-8");
Writer out=outStream;
/* Build query from query or arguments, depending on whether
arguments were given. */
if (args.length == 0) {
try {
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
String[] split = br.readLine().split(" ");
sourceLang = split[0];
targetLang = split[1];
for (int i = 2; i < split.length; i++) {
query = query + split[i] + "+";
}
} catch (Exception e) {
System.err.println("Error:" + e.getMessage());
System.exit(1);
}
} else {
for (int i = 2; i < args.length; i++) {
query += args[i] + " ";
}
sourceLang = args[0];
targetLang = args[1];
}
if (sourceLang.equals("?")) {
sourceLang = "";
} else {
sourceString = "&source="+sourceLang;
}
// Change all ' ' to '+'
query = query.replaceAll(" ", "+");
query = query.replaceAll(",", "");
String[] parts = null;
//URL which provides XML response
URL url = new URL("https://www.googleapis.com/language/translate/v2?q="+query+"&target="+targetLang+sourceString+"&pp=1&key=AIzaSyCUJgcjfq20vONzLuNrSuVgT4nuMvz7d2c");
URLConnection urlc = url.openConnection();
BufferedReader br = new BufferedReader(new InputStreamReader(urlc.getInputStream()));
String line;
String[] lines;
ArrayList results = new ArrayList();
ArrayList langs = new ArrayList();
ArrayList urls = new ArrayList();
String result = "";
String tempString = "";
//Read every line
while ((line = br.readLine()) != null)
{
// Splits the google output by the commas
lines = line.split(",");
for(int i=0; i 0){
for(int i=0; i< results.size(); i++){
if (i != 0) {
out.write(" | ");
}
int count = i + 1;
if(langs.size() > i-1 && langs.size() > 0) {
out.write("Translation ("+langs.get(i)+" to "+targetLang+"): " + results.get(i));
} else {
out.write("Translation ("+sourceLang+" to "+targetLang+"): " + results.get(i) + " ("+outStream.getEncoding()+")");
}
}
} else {
out.write("Error: no results.\n");
System.exit(1);
out.flush();
out.close();
}
out.write("\n");
out.flush();
out.close();
}
}