summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwjoe <joe@lc8n.com>2011-12-22 10:01:41 +0000
committerwjoe <joe@lc8n.com>2011-12-22 10:01:41 +0000
commit4da00837aca48d8fc0b33a3689390481b458cd13 (patch)
tree9aa4d438aca0d4f7ab5f0b6c3771d3e307ac4e12
Initial commit (last edited 12/09/2011)
-rw-r--r--blatranslate.java136
1 files changed, 136 insertions, 0 deletions
diff --git a/blatranslate.java b/blatranslate.java
new file mode 100644
index 0000000..af1f402
--- /dev/null
+++ b/blatranslate.java
@@ -0,0 +1,136 @@
+/*
+ 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 <http://www.gnu.org/licenses/>.
+*/
+
+/*
+ Copyright 2011 Joe Robinson <joe@lc8n.com>
+ based on code by Jamie Walters <jagw@jagw.co.uk>
+ based on code by Joe Robinson <joe@lc8n.com>
+*/
+
+
+import java.net.URL;
+import java.net.URLConnection;
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.util.ArrayList;
+
+public class blatranslate {
+
+ public static void main(String[] args) throws IOException
+ {
+ String query = "";
+ String sourceLang = "?";
+ String targetLang = "";
+ String sourceString = "";
+ /* 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<String> results = new ArrayList<String>();
+ ArrayList<String> langs = new ArrayList<String>();
+ 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<lines.length; i++){
+ // Get the useful information (the urls!)
+ if(lines[i].trim().startsWith("\"translatedText\"")){
+ tempString = lines[i];
+ // Blat the non-url information
+ tempString = tempString.substring(23, tempString.length()-1);
+ results.add(tempString);
+ }
+ else if(lines[i].trim().startsWith("\"detectedSourceLanguage\"")){
+ tempString = lines[i];
+ // Blat the non-url information
+ tempString = tempString.substring(31, tempString.length()-1);
+ langs.add(tempString);
+ }
+ if (langs.size() < i) {
+ langs.add(sourceLang);
+ }
+ }
+
+ }
+ // Print results
+ if(results.size() > 0){
+ for(int i=0; i< results.size(); i++){
+ if (i != 0) {
+ System.out.print(" | ");
+ }
+ int count = i + 1;
+
+ if(langs.size() > i-1 && langs.size() > 0) {
+ System.out.print("Translation ("+langs.get(i)+" to "+targetLang+"): " + results.get(i));
+ } else {
+ System.out.print("Translation ("+sourceLang+" to "+targetLang+"): " + results.get(i));
+ }
+ }
+ } else {
+ System.out.print("Error: no results.\n");
+ System.exit(1);
+ }
+ System.out.print("\n");
+ }
+
+}