From bfbcf2b7964e85c4d9683b226b458e998f32d9f1 Mon Sep 17 00:00:00 2001 From: srowen Date: Tue, 18 Oct 2011 10:04:57 +0000 Subject: [PATCH] Use new translate v2 API; v1 is deprecated and we should probably not have been encouraging people to access it automatically as it was apparently quite abused. v2 is for-pay; bring your own key. But, no more rate limiting. git-svn-id: https://zxing.googlecode.com/svn/trunk@1977 59b500cc-1b3d-0410-9834-0bbf25fbcc57 --- .../com/google/zxing/HtmlAssetTranslator.java | 12 +++- .../zxing/StringsResourceTranslator.java | 57 +++++++++---------- 2 files changed, 36 insertions(+), 33 deletions(-) diff --git a/javase/src/com/google/zxing/HtmlAssetTranslator.java b/javase/src/com/google/zxing/HtmlAssetTranslator.java index 9937b8d45..7e157faf4 100644 --- a/javase/src/com/google/zxing/HtmlAssetTranslator.java +++ b/javase/src/com/google/zxing/HtmlAssetTranslator.java @@ -34,9 +34,11 @@ import java.io.FileFilter; import java.io.FilenameFilter; import java.io.IOException; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collection; import java.util.LinkedList; import java.util.Queue; +import java.util.regex.Pattern; /** *

A utility which auto-translates the English-language text in a directory of HTML documents using @@ -56,9 +58,11 @@ import java.util.Queue; */ public final class HtmlAssetTranslator { + private static final Pattern COMMA = Pattern.compile(","); + private HtmlAssetTranslator() {} - public static void main(String[] args) throws Exception { + public static void main(String[] args) throws IOException { File assetsDir = new File(args[0]); Collection languagesToTranslate = parseLanguagesToTranslate(assetsDir, args[1]); Collection filesToTranslate = parseFilesToTranslate(args); @@ -71,6 +75,7 @@ public final class HtmlAssetTranslator { Collection languages = new ArrayList(); if ("all".equals(languageArg)) { FileFilter fileFilter = new FileFilter() { + @Override public boolean accept(File file) { return file.isDirectory() && file.getName().startsWith("html-") && !"html-en".equals(file.getName()); } @@ -79,7 +84,7 @@ public final class HtmlAssetTranslator { languages.add(languageDir.getName().substring(5)); } } else { - languages.add(languageArg); + languages.addAll(Arrays.asList(COMMA.split(languageArg))); } return languages; } @@ -103,6 +108,7 @@ public final class HtmlAssetTranslator { StringsResourceTranslator.translateString("Translated by Google Translate.", language); File[] sourceFiles = englishHtmlDir.listFiles(new FilenameFilter() { + @Override public boolean accept(File dir, String name) { return name.endsWith(".html") && (filesToTranslate.isEmpty() || filesToTranslate.contains(name)); } @@ -128,7 +134,7 @@ public final class HtmlAssetTranslator { } catch (ParserConfigurationException pce) { throw new IllegalStateException(pce); } catch (SAXException sae) { - throw new IOException(sae.toString()); + throw new IOException(sae); } Element rootElement = document.getDocumentElement(); diff --git a/javase/src/com/google/zxing/StringsResourceTranslator.java b/javase/src/com/google/zxing/StringsResourceTranslator.java index db7af5e2e..fadf163c4 100644 --- a/javase/src/com/google/zxing/StringsResourceTranslator.java +++ b/javase/src/com/google/zxing/StringsResourceTranslator.java @@ -28,6 +28,7 @@ import java.io.OutputStreamWriter; import java.io.Reader; import java.io.Writer; import java.net.URL; +import java.net.URLConnection; import java.net.URLEncoder; import java.nio.charset.Charset; import java.util.Arrays; @@ -51,13 +52,12 @@ import java.util.regex.Pattern; */ public final class StringsResourceTranslator { - private static final long MIN_API_CALL_INTERVAL_MS = 10 * 1000L; - + private static final String API_KEY = "INSERT-YOUR-KEY"; + private static final Charset UTF8 = Charset.forName("UTF-8"); private static final Pattern ENTRY_PATTERN = Pattern.compile("([^<]+)"); private static final Pattern STRINGS_FILE_NAME_PATTERN = Pattern.compile("values-(.+)"); - private static final Pattern TRANSLATE_RESPONSE_PATTERN = Pattern.compile( - "\\{\"translatedText\":\"([^\"]+)\"\\}"); + private static final Pattern TRANSLATE_RESPONSE_PATTERN = Pattern.compile("translatedText\":\\s*\"([^\"]+)\""); private static final String APACHE_2_LICENSE = "