/* 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(); } }