From 2735737054c37545c89afe890d33d76eb8fa5857 Mon Sep 17 00:00:00 2001 From: Puneith Kaul Date: Tue, 27 Sep 2016 17:34:42 -0700 Subject: [PATCH 01/22] added first commit of translate --- translate/pom.xml | 31 +++++++++++++++++++ .../cloud/translate/samples/Translate.java | 0 2 files changed, 31 insertions(+) create mode 100644 translate/pom.xml create mode 100644 translate/src/main/java/com/google/cloud/translate/samples/Translate.java diff --git a/translate/pom.xml b/translate/pom.xml new file mode 100644 index 00000000000..44568927b18 --- /dev/null +++ b/translate/pom.xml @@ -0,0 +1,31 @@ + + + 4.0.0 + + com.google.cloud + doc-samples + 1.0.0 + + com.google.cloud.translate.samples + translate + 1.0-SNAPSHOT + translate + http://maven.apache.org + + UTF-8 + + + + com.google.cloud + google-cloud-pom + 0.3.1-SNAPSHOT + + + junit + junit + 3.8.1 + test + + + diff --git a/translate/src/main/java/com/google/cloud/translate/samples/Translate.java b/translate/src/main/java/com/google/cloud/translate/samples/Translate.java new file mode 100644 index 00000000000..e69de29bb2d From fd18d9ebd2e62ca927d507c4721787b3b64dc455 Mon Sep 17 00:00:00 2001 From: Puneith Kaul Date: Tue, 27 Sep 2016 18:00:39 -0700 Subject: [PATCH 02/22] added correct translate dependency --- translate/pom.xml | 4 +-- .../cloud/translate/samples/Translate.java | 25 +++++++++++++++++++ 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/translate/pom.xml b/translate/pom.xml index 44568927b18..d6a8c17a299 100644 --- a/translate/pom.xml +++ b/translate/pom.xml @@ -18,8 +18,8 @@ com.google.cloud - google-cloud-pom - 0.3.1-SNAPSHOT + google-cloud-translate + 0.3.0 junit diff --git a/translate/src/main/java/com/google/cloud/translate/samples/Translate.java b/translate/src/main/java/com/google/cloud/translate/samples/Translate.java index e69de29bb2d..2e2041b1ac2 100644 --- a/translate/src/main/java/com/google/cloud/translate/samples/Translate.java +++ b/translate/src/main/java/com/google/cloud/translate/samples/Translate.java @@ -0,0 +1,25 @@ +/* + * Copyright 2016 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.translate.samples; + +import com.google.api.services.translate.Translate; + +public class Translate { + public static void main(String[] args) { + System.out.println("Translate"); + } +} From 9c75dac79e51cc105ea7fcc3ab3f6ecee197313b Mon Sep 17 00:00:00 2001 From: Puneith Kaul Date: Tue, 27 Sep 2016 18:03:07 -0700 Subject: [PATCH 03/22] renamed sample file to TranslateText --- .../translate/samples/{Translate.java => TranslateText.java} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename translate/src/main/java/com/google/cloud/translate/samples/{Translate.java => TranslateText.java} (96%) diff --git a/translate/src/main/java/com/google/cloud/translate/samples/Translate.java b/translate/src/main/java/com/google/cloud/translate/samples/TranslateText.java similarity index 96% rename from translate/src/main/java/com/google/cloud/translate/samples/Translate.java rename to translate/src/main/java/com/google/cloud/translate/samples/TranslateText.java index 2e2041b1ac2..aae056a7043 100644 --- a/translate/src/main/java/com/google/cloud/translate/samples/Translate.java +++ b/translate/src/main/java/com/google/cloud/translate/samples/TranslateText.java @@ -18,7 +18,7 @@ import com.google.api.services.translate.Translate; -public class Translate { +public class TranslateText { public static void main(String[] args) { System.out.println("Translate"); } From 78bf1f6bbc345cb730e55d9159a555426bd9bb58 Mon Sep 17 00:00:00 2001 From: Puneith Kaul Date: Wed, 28 Sep 2016 14:05:23 -0700 Subject: [PATCH 04/22] added pom entries and added first sample translate code --- translate/pom.xml | 17 +++++++++++++++++ .../cloud/translate/samples/TranslateText.java | 15 +++++++++++++-- 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/translate/pom.xml b/translate/pom.xml index d6a8c17a299..f2e409bdb00 100644 --- a/translate/pom.xml +++ b/translate/pom.xml @@ -28,4 +28,21 @@ test + + + + maven-assembly-plugin + + + + com.google.cloud.translate.samples.TranslateText + + + + jar-with-dependencies + + + + + diff --git a/translate/src/main/java/com/google/cloud/translate/samples/TranslateText.java b/translate/src/main/java/com/google/cloud/translate/samples/TranslateText.java index aae056a7043..a6390feddca 100644 --- a/translate/src/main/java/com/google/cloud/translate/samples/TranslateText.java +++ b/translate/src/main/java/com/google/cloud/translate/samples/TranslateText.java @@ -16,10 +16,21 @@ package com.google.cloud.translate.samples; -import com.google.api.services.translate.Translate; +import com.google.cloud.translate.Translate; +import com.google.cloud.translate.Translation; +import com.google.cloud.translate.testing.RemoteTranslateHelper; public class TranslateText { + private static final Translate TRANSLATE = RemoteTranslateHelper.create().options().service(); + + public void detectLanguages() { + } + + public void translateText(String sourceText) { + Translation translation = TRANSLATE.translate(sourceText); + System.out.println(translation.translatedText()); + } public static void main(String[] args) { - System.out.println("Translate"); + new TranslateText().translateText("Hola"); } } From 9d16b79504215403d55d35169f0580e0192d11ce Mon Sep 17 00:00:00 2001 From: Puneith Kaul Date: Thu, 29 Sep 2016 11:42:09 -0700 Subject: [PATCH 05/22] added language detect code --- .../translate/samples/TranslateText.java | 34 ++++++++++++++++--- 1 file changed, 30 insertions(+), 4 deletions(-) diff --git a/translate/src/main/java/com/google/cloud/translate/samples/TranslateText.java b/translate/src/main/java/com/google/cloud/translate/samples/TranslateText.java index a6390feddca..7e449fee200 100644 --- a/translate/src/main/java/com/google/cloud/translate/samples/TranslateText.java +++ b/translate/src/main/java/com/google/cloud/translate/samples/TranslateText.java @@ -16,6 +16,10 @@ package com.google.cloud.translate.samples; +import java.util.List; +import com.google.common.collect.ImmutableList; + +import com.google.cloud.translate.Detection; import com.google.cloud.translate.Translate; import com.google.cloud.translate.Translation; import com.google.cloud.translate.testing.RemoteTranslateHelper; @@ -23,14 +27,36 @@ public class TranslateText { private static final Translate TRANSLATE = RemoteTranslateHelper.create().options().service(); - public void detectLanguages() { + /** + * Detect the language of input text + */ + public static void detectLanguage(String sourceText) { + List detections = TRANSLATE.detect(ImmutableList.of(sourceText)); + + System.out.println("Language(s) detected:"); + for(Detection detection : detections) { + System.out.println("\t"+detection); + } } - public void translateText(String sourceText) { + /** + * Translates the source text in any language to english + */ + public static void translateText(String sourceText) { Translation translation = TRANSLATE.translate(sourceText); - System.out.println(translation.translatedText()); + System.out.println("Source Text:\n\t"+sourceText); + System.out.println("Translated Text:\n\t"+translation.translatedText()); } + public static void main(String[] args) { - new TranslateText().translateText("Hola"); + String command = args[0]; + String text = args[1]; + + if(command.equals("detect")) { + TranslateText.detectLanguage(text); + } + else if(command.equals("translate")) { + TranslateText.translateText(text); + } } } From 292354d1677f8e6a9740d3bd593e5a719931ca0b Mon Sep 17 00:00:00 2001 From: Puneith Kaul Date: Thu, 29 Sep 2016 12:02:44 -0700 Subject: [PATCH 06/22] removed line added README --- translate/README.md | 49 +++++++++++++++++++ .../translate/samples/TranslateText.java | 1 - 2 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 translate/README.md diff --git a/translate/README.md b/translate/README.md new file mode 100644 index 00000000000..8d245baf43e --- /dev/null +++ b/translate/README.md @@ -0,0 +1,49 @@ +# Google Cloud Translate Sample + +This sample demonstrates the use of [Google Cloud Translate +API][Translate-Docs] for translating and detecting language text. + +[Translate-Docs]: https://cloud.google.com/translate/docs/ + +## Java Version + +This sample requires you to have +[Java8](https://docs.oracle.com/javase/8/docs/technotes/guides/install/install_overview.html). + +## Download Maven + +This sample uses the [Apache Maven][maven] build system. Before getting started, +be +sure to [download][maven-download] and [install][maven-install] it. When you use +Maven as described here, it will automatically download the needed client +libraries. + +[maven]: https://maven.apache.org +[maven-download]: https://maven.apache.org/download.cgi +[maven-install]: https://maven.apache.org/install.html + +## Run the sample + +To build the sample, we use Maven. + +```bash +mvn clean compile assembly:single +``` + +We can then run the assembled JAR file with the `java` command. The variable +$COMMAND takes two values `detect' and `translate'. + +``` +MAIN_CLASS=com.google.cloud.translate.samples.TranslateText +JAR_FILE=translate-1.0-SNAPSHOT-jar-with-dependencies.jar +java -cp $JAR_FILE $MAIN_CLASS +``` + +Example Usage: + +``` +INPUT="A quick brown fox jumped over a lazy dog." + +java -cp $JAR_FILE $MAIN_CLASS detect "$INPUT" +java -cp $JAR_FILE $MAIN_CLASS translate "$INPUT" +``` diff --git a/translate/src/main/java/com/google/cloud/translate/samples/TranslateText.java b/translate/src/main/java/com/google/cloud/translate/samples/TranslateText.java index 7e449fee200..f6e89f2b846 100644 --- a/translate/src/main/java/com/google/cloud/translate/samples/TranslateText.java +++ b/translate/src/main/java/com/google/cloud/translate/samples/TranslateText.java @@ -32,7 +32,6 @@ public class TranslateText { */ public static void detectLanguage(String sourceText) { List detections = TRANSLATE.detect(ImmutableList.of(sourceText)); - System.out.println("Language(s) detected:"); for(Detection detection : detections) { System.out.println("\t"+detection); From a33ff9a0537a7565b188de77fc7d6288b512bc06 Mon Sep 17 00:00:00 2001 From: Puneith Kaul Date: Thu, 29 Sep 2016 13:25:23 -0700 Subject: [PATCH 07/22] added source and target lang options --- translate/README.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/translate/README.md b/translate/README.md index 8d245baf43e..fd72292dcf7 100644 --- a/translate/README.md +++ b/translate/README.md @@ -35,15 +35,20 @@ $COMMAND takes two values `detect' and `translate'. ``` MAIN_CLASS=com.google.cloud.translate.samples.TranslateText -JAR_FILE=translate-1.0-SNAPSHOT-jar-with-dependencies.jar -java -cp $JAR_FILE $MAIN_CLASS +JAR_FILE=target/translate-1.0-SNAPSHOT-jar-with-dependencies.jar +java -cp $JAR_FILE $MAIN_CLASS + ``` Example Usage: ``` INPUT="A quick brown fox jumped over a lazy dog." +SOURCE_LANG="en" +TARGET_LANG="fr" java -cp $JAR_FILE $MAIN_CLASS detect "$INPUT" java -cp $JAR_FILE $MAIN_CLASS translate "$INPUT" +java -cp $JAR_FILE $MAIN_CLASS translate "$INPUT" $SOURCE_LANG $TARGET_LANG +java -cp $JAR_FILE $MAIN_CLASS langsupport ``` From 8f444e963f344fa6db0cb01ae488f612da49e91f Mon Sep 17 00:00:00 2001 From: Puneith Kaul Date: Thu, 29 Sep 2016 13:25:40 -0700 Subject: [PATCH 08/22] added source and target lang function --- .../translate/samples/TranslateText.java | 46 +++++++++++++++++-- 1 file changed, 41 insertions(+), 5 deletions(-) diff --git a/translate/src/main/java/com/google/cloud/translate/samples/TranslateText.java b/translate/src/main/java/com/google/cloud/translate/samples/TranslateText.java index f6e89f2b846..307ce4a73c0 100644 --- a/translate/src/main/java/com/google/cloud/translate/samples/TranslateText.java +++ b/translate/src/main/java/com/google/cloud/translate/samples/TranslateText.java @@ -21,6 +21,8 @@ import com.google.cloud.translate.Detection; import com.google.cloud.translate.Translate; +import com.google.cloud.translate.Translate.TranslateOption; +import com.google.cloud.translate.Language; import com.google.cloud.translate.Translation; import com.google.cloud.translate.testing.RemoteTranslateHelper; @@ -34,7 +36,7 @@ public static void detectLanguage(String sourceText) { List detections = TRANSLATE.detect(ImmutableList.of(sourceText)); System.out.println("Language(s) detected:"); for(Detection detection : detections) { - System.out.println("\t"+detection); + System.out.println("\t" + detection); } } @@ -43,19 +45,53 @@ public static void detectLanguage(String sourceText) { */ public static void translateText(String sourceText) { Translation translation = TRANSLATE.translate(sourceText); - System.out.println("Source Text:\n\t"+sourceText); - System.out.println("Translated Text:\n\t"+translation.translatedText()); + System.out.println("Source Text:\n\t" + sourceText); + System.out.println("Translated Text:\n\t" + translation.translatedText()); + } + + /** + * Translate the source text from source to target language + */ + public static void translateTextWithOptions(String sourceText, String sourceLang, String targetLang) { + TranslateOption srcLang = TranslateOption.sourceLanguage(sourceLang); + TranslateOption tgtLang = TranslateOption.targetLanguage(targetLang); + + Translation translation = TRANSLATE.translate(sourceText, srcLang, tgtLang); + System.out.println("Source Text:\n\tLang: " + sourceLang + ", " + sourceText); + System.out.println("TranslatedText:\n\tLang: " + targetLang + ", " + translation.translatedText()); + } + + /** + * Displays a list of supported languages (codes). + */ + public static void displaySupportedLanguages() { + List languages = TRANSLATE.listSupportedLanguages(); + + for(Language language : languages) { + System.out.println("Name: " + language.name() + ", Code: " + language.code()); + } } public static void main(String[] args) { String command = args[0]; - String text = args[1]; + String text; if(command.equals("detect")) { + text = args[1]; TranslateText.detectLanguage(text); } else if(command.equals("translate")) { - TranslateText.translateText(text); + text = args[1]; + try { + String sourceLang = args[2]; + String targetLang = args[3]; + TranslateText.translateTextWithOptions(text, sourceLang, targetLang); + } catch(ArrayIndexOutOfBoundsException ex) { + TranslateText.translateText(text); + } + } + else if(command.equals("langsupport")) { + TranslateText.displaySupportedLanguages(); } } } From eb03dd1b49180d986a805c1c18dd7ceb02dc30b6 Mon Sep 17 00:00:00 2001 From: Puneith Kaul Date: Thu, 29 Sep 2016 13:27:57 -0700 Subject: [PATCH 09/22] organized README functions --- translate/README.md | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/translate/README.md b/translate/README.md index fd72292dcf7..1e073b8780b 100644 --- a/translate/README.md +++ b/translate/README.md @@ -46,9 +46,20 @@ Example Usage: INPUT="A quick brown fox jumped over a lazy dog." SOURCE_LANG="en" TARGET_LANG="fr" +``` + +Languages supported by the API +``` +java -cp $JAR_FILE $MAIN_CLASS langsupport +``` +Detect input text language +``` java -cp $JAR_FILE $MAIN_CLASS detect "$INPUT" +``` + +Translate input text (with options) +``` java -cp $JAR_FILE $MAIN_CLASS translate "$INPUT" java -cp $JAR_FILE $MAIN_CLASS translate "$INPUT" $SOURCE_LANG $TARGET_LANG -java -cp $JAR_FILE $MAIN_CLASS langsupport ``` From de5d1b1f8badafa77693c7022604c2c2d570d7fc Mon Sep 17 00:00:00 2001 From: Puneith Kaul Date: Thu, 29 Sep 2016 13:28:51 -0700 Subject: [PATCH 10/22] organized README functions --- translate/README.md | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/translate/README.md b/translate/README.md index 1e073b8780b..4a3e85d4384 100644 --- a/translate/README.md +++ b/translate/README.md @@ -48,18 +48,18 @@ SOURCE_LANG="en" TARGET_LANG="fr" ``` -Languages supported by the API -``` -java -cp $JAR_FILE $MAIN_CLASS langsupport -``` - -Detect input text language -``` -java -cp $JAR_FILE $MAIN_CLASS detect "$INPUT" -``` - -Translate input text (with options) -``` -java -cp $JAR_FILE $MAIN_CLASS translate "$INPUT" -java -cp $JAR_FILE $MAIN_CLASS translate "$INPUT" $SOURCE_LANG $TARGET_LANG -``` + * Languages supported by the API + ``` + java -cp $JAR_FILE $MAIN_CLASS langsupport + ``` + + * Detect input text language + ``` + java -cp $JAR_FILE $MAIN_CLASS detect "$INPUT" + ``` + + * Translate input text (with options) + ``` + java -cp $JAR_FILE $MAIN_CLASS translate "$INPUT" + java -cp $JAR_FILE $MAIN_CLASS translate "$INPUT" $SOURCE_LANG $TARGET_LANG + ``` From a9eb8b84b8de7cb596a5bf0295c15de1eb392945 Mon Sep 17 00:00:00 2001 From: Puneith Kaul Date: Thu, 29 Sep 2016 13:35:14 -0700 Subject: [PATCH 11/22] added TranslateAPI Features --- translate/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/translate/README.md b/translate/README.md index 4a3e85d4384..f63e4621683 100644 --- a/translate/README.md +++ b/translate/README.md @@ -48,6 +48,8 @@ SOURCE_LANG="en" TARGET_LANG="fr" ``` +Translate API Features: + * Languages supported by the API ``` java -cp $JAR_FILE $MAIN_CLASS langsupport From a53a8f3f0108cb1d50428a410ea2e4454af173c8 Mon Sep 17 00:00:00 2001 From: Puneith Kaul Date: Thu, 29 Sep 2016 13:56:56 -0700 Subject: [PATCH 12/22] added PrintStream as output --- .../translate/samples/TranslateText.java | 34 +++++++++++-------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/translate/src/main/java/com/google/cloud/translate/samples/TranslateText.java b/translate/src/main/java/com/google/cloud/translate/samples/TranslateText.java index 307ce4a73c0..2b11ebeaa08 100644 --- a/translate/src/main/java/com/google/cloud/translate/samples/TranslateText.java +++ b/translate/src/main/java/com/google/cloud/translate/samples/TranslateText.java @@ -17,6 +17,7 @@ package com.google.cloud.translate.samples; import java.util.List; +import java.io.PrintStream; import com.google.common.collect.ImmutableList; import com.google.cloud.translate.Detection; @@ -32,43 +33,48 @@ public class TranslateText { /** * Detect the language of input text */ - public static void detectLanguage(String sourceText) { + public static void detectLanguage(String sourceText, PrintStream out) { List detections = TRANSLATE.detect(ImmutableList.of(sourceText)); System.out.println("Language(s) detected:"); for(Detection detection : detections) { - System.out.println("\t" + detection); + out.printf("\t%s\n", detection); } } /** * Translates the source text in any language to english */ - public static void translateText(String sourceText) { + public static void translateText(String sourceText, PrintStream out) { Translation translation = TRANSLATE.translate(sourceText); - System.out.println("Source Text:\n\t" + sourceText); - System.out.println("Translated Text:\n\t" + translation.translatedText()); + out.printf("Source Text:\n\t%s\n", sourceText); + out.printf("Translated Text:\n\t%s\n", translation.translatedText()); } /** * Translate the source text from source to target language */ - public static void translateTextWithOptions(String sourceText, String sourceLang, String targetLang) { + public static void translateTextWithOptions( + String sourceText, + String sourceLang, + String targetLang, + PrintStream out) { + TranslateOption srcLang = TranslateOption.sourceLanguage(sourceLang); TranslateOption tgtLang = TranslateOption.targetLanguage(targetLang); Translation translation = TRANSLATE.translate(sourceText, srcLang, tgtLang); - System.out.println("Source Text:\n\tLang: " + sourceLang + ", " + sourceText); - System.out.println("TranslatedText:\n\tLang: " + targetLang + ", " + translation.translatedText()); + out.printf("Source Text:\n\tLang: %s, %s\n", sourceLang, sourceText); + out.printf("TranslatedText:\n\tLang: %s, %s\n", targetLang, translation.translatedText()); } /** * Displays a list of supported languages (codes). */ - public static void displaySupportedLanguages() { + public static void displaySupportedLanguages(PrintStream out) { List languages = TRANSLATE.listSupportedLanguages(); for(Language language : languages) { - System.out.println("Name: " + language.name() + ", Code: " + language.code()); + out.printf("Name: %s, Code: %s\n", language.name(), language.code()); } } @@ -78,20 +84,20 @@ public static void main(String[] args) { if(command.equals("detect")) { text = args[1]; - TranslateText.detectLanguage(text); + TranslateText.detectLanguage(text, System.out); } else if(command.equals("translate")) { text = args[1]; try { String sourceLang = args[2]; String targetLang = args[3]; - TranslateText.translateTextWithOptions(text, sourceLang, targetLang); + TranslateText.translateTextWithOptions(text, sourceLang, targetLang, System.out); } catch(ArrayIndexOutOfBoundsException ex) { - TranslateText.translateText(text); + TranslateText.translateText(text, System.out); } } else if(command.equals("langsupport")) { - TranslateText.displaySupportedLanguages(); + TranslateText.displaySupportedLanguages(System.out); } } } From e8fd7901f974dcbcc1e267dc0b7f829d73ab6206 Mon Sep 17 00:00:00 2001 From: Puneith Kaul Date: Thu, 29 Sep 2016 14:50:45 -0700 Subject: [PATCH 13/22] added tests --- translate/pom.xml | 7 +- .../translate/samples/TranslateText.java | 4 +- .../translate/samples/TranslateTextTest.java | 121 ++++++++++++++++++ 3 files changed, 129 insertions(+), 3 deletions(-) create mode 100644 translate/src/test/java/com/google/cloud/translate/samples/TranslateTextTest.java diff --git a/translate/pom.xml b/translate/pom.xml index f2e409bdb00..442b36c6b28 100644 --- a/translate/pom.xml +++ b/translate/pom.xml @@ -24,9 +24,14 @@ junit junit - 3.8.1 + 4.12 test + + com.google.truth + truth + 0.30 + diff --git a/translate/src/main/java/com/google/cloud/translate/samples/TranslateText.java b/translate/src/main/java/com/google/cloud/translate/samples/TranslateText.java index 2b11ebeaa08..ff105efabcd 100644 --- a/translate/src/main/java/com/google/cloud/translate/samples/TranslateText.java +++ b/translate/src/main/java/com/google/cloud/translate/samples/TranslateText.java @@ -63,8 +63,8 @@ public static void translateTextWithOptions( TranslateOption tgtLang = TranslateOption.targetLanguage(targetLang); Translation translation = TRANSLATE.translate(sourceText, srcLang, tgtLang); - out.printf("Source Text:\n\tLang: %s, %s\n", sourceLang, sourceText); - out.printf("TranslatedText:\n\tLang: %s, %s\n", targetLang, translation.translatedText()); + out.printf("Source Text:\n\tLang: %s, Text: %s\n", sourceLang, sourceText); + out.printf("TranslatedText:\n\tLang: %s, Text: %s\n", targetLang, translation.translatedText()); } /** diff --git a/translate/src/test/java/com/google/cloud/translate/samples/TranslateTextTest.java b/translate/src/test/java/com/google/cloud/translate/samples/TranslateTextTest.java new file mode 100644 index 00000000000..f27e4016af2 --- /dev/null +++ b/translate/src/test/java/com/google/cloud/translate/samples/TranslateTextTest.java @@ -0,0 +1,121 @@ +/* + * Copyright 2016 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.translate.samples; + +import static com.google.common.truth.Truth.assertThat; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.JUnit4; + +import java.util.List; +import java.util.Arrays; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; + +/** + * Unit tests for {@link Analyze}. + */ +@RunWith(JUnit4.class) +public class TranslateTextTest { + + @Test public void testSupportedLanguages() throws Exception { + // Supported languages + List languages = Arrays.asList( + "Afrikaans", "Albanian", "Amharic", "Arabic", "Armenian", "Azerbaijani", "Basque", + "Belarusian", "Bengali", "Bosnian", "Bulgarian", "Catalan", "Cebuano", "Chichewa", + "Chinese", "Chinese", "Corsican", "Croatian", "Czech", "Danish", "Dutch", "English", + "Esperanto", "Estonian", "Filipino", "Finnish", "French", "Frisian", "Galician", + "Georgian", "German", "Greek", "Gujarati", "Haitian", "Hausa", "Hawaiian", "Hebrew", + "Hindi", "Hmong", "Hungarian", "Icelandic", "Igbo", "Indonesian", "Irish", "Italian", + "Japanese", "Javanese", "Kannada", "Kazakh", "Khmer", "Korean", "Kurdish", "Kyrgyz", + "Lao", "Latin", "Latvian", "Lithuanian", "Luxembourgish", "Macedonian", "Malagasy", + "Malay", "Malayalam", "Maltese", "Maori", "Marathi", "Mongolian", "Myanmar", "Nepali", + "Norwegian", "Pashto", "Persian", "Polish", "Portuguese", "Punjabi", "Romanian", + "Russian", "Samoan", "Scots", "Serbian", "Sesotho", "Shona", "Sindhi", "Sinhala", + "Slovak", "Slovenian", "Somali", "Spanish", "Sundanese", "Swahili", "Swedish", + "Tajik", "Tamil", "Telugu", "Thai", "Turkish", "Ukrainian", "Urdu", "Uzbek", + "Vietnamese", "Welsh", "Xhosa", "Yiddish", "Yoruba", "Zulu"); + + // Arrange + ByteArrayOutputStream bout = new ByteArrayOutputStream(); + PrintStream out = new PrintStream(bout); + + // Act + TranslateText.displaySupportedLanguages(out); + + // Assert + String got = bout.toString(); + for(String language : languages) { + assertThat(got).contains(language); + } + } + + @Test public void testEnglishLangDetection() throws Exception { + // Arrange + ByteArrayOutputStream bout = new ByteArrayOutputStream(); + PrintStream out = new PrintStream(bout); + + // Act + TranslateText.detectLanguage("With power comes great responsibility.", out); + + // Assert + String got = bout.toString(); + assertThat(got).contains("language=en, confidence=0.79742646"); + } + + @Test public void testGermanLangDetection() throws Exception { + // Arrange + ByteArrayOutputStream bout = new ByteArrayOutputStream(); + PrintStream out = new PrintStream(bout); + + // Act + TranslateText.detectLanguage("Mit Macht kommt große Verantwortung.", out); + + // Assert + String got = bout.toString(); + assertThat(got).contains("language=de, confidence=0.9293963"); + + } + + @Test public void testDefaultIdentityTranslation() throws Exception { + // Arrange + ByteArrayOutputStream bout = new ByteArrayOutputStream(); + PrintStream out = new PrintStream(bout); + + // Act + String proverb = "What you do not wish for yourself, do not do to others."; + TranslateText.translateText(proverb, out); + + // Assert + String got = bout.toString(); + assertThat(got).contains(proverb); + } + + @Test public void testGermanToSpanishTranslation() throws Exception { + // Arrange + ByteArrayOutputStream bout = new ByteArrayOutputStream(); + PrintStream out = new PrintStream(bout); + + // Act + TranslateText.translateTextWithOptions("Mit Macht kommt große Verantwortung.", "de", "es", out); + + // Assert + String got = bout.toString(); + assertThat(got).contains("Con el poder viene una gran responsabilidad."); + } +} From 930e00fecf234e8a1c151ea5a6bd383cc59ea22c Mon Sep 17 00:00:00 2001 From: Puneith Kaul Date: Thu, 29 Sep 2016 15:01:51 -0700 Subject: [PATCH 14/22] added style check --- translate/pom.xml | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/translate/pom.xml b/translate/pom.xml index 442b36c6b28..cd219af01d7 100644 --- a/translate/pom.xml +++ b/translate/pom.xml @@ -2,11 +2,6 @@ 4.0.0 - - com.google.cloud - doc-samples - 1.0.0 - com.google.cloud.translate.samples translate 1.0-SNAPSHOT @@ -15,6 +10,12 @@ UTF-8 + + com.google.cloud + shared-configuration + 1.0.0 + ../java-repo-tools + com.google.cloud @@ -48,6 +49,15 @@ + + org.apache.maven.plugins + 3.3 + maven-compiler-plugin + + 1.8 + 1.8 + + From 1756145b24fe81876a37254afc3cba3b77d9829e Mon Sep 17 00:00:00 2001 From: Puneith Kaul Date: Thu, 29 Sep 2016 15:14:38 -0700 Subject: [PATCH 15/22] fixed import order --- .../translate/samples/TranslateText.java | 30 +++++++++---------- .../translate/samples/TranslateTextTest.java | 6 ++-- 2 files changed, 17 insertions(+), 19 deletions(-) diff --git a/translate/src/main/java/com/google/cloud/translate/samples/TranslateText.java b/translate/src/main/java/com/google/cloud/translate/samples/TranslateText.java index ff105efabcd..32543a3c57e 100644 --- a/translate/src/main/java/com/google/cloud/translate/samples/TranslateText.java +++ b/translate/src/main/java/com/google/cloud/translate/samples/TranslateText.java @@ -16,33 +16,33 @@ package com.google.cloud.translate.samples; -import java.util.List; -import java.io.PrintStream; -import com.google.common.collect.ImmutableList; - import com.google.cloud.translate.Detection; +import com.google.cloud.translate.Language; import com.google.cloud.translate.Translate; import com.google.cloud.translate.Translate.TranslateOption; -import com.google.cloud.translate.Language; import com.google.cloud.translate.Translation; import com.google.cloud.translate.testing.RemoteTranslateHelper; +import com.google.common.collect.ImmutableList; + +import java.io.PrintStream; +import java.util.List; public class TranslateText { private static final Translate TRANSLATE = RemoteTranslateHelper.create().options().service(); /** - * Detect the language of input text + * Detect the language of input text. */ public static void detectLanguage(String sourceText, PrintStream out) { List detections = TRANSLATE.detect(ImmutableList.of(sourceText)); System.out.println("Language(s) detected:"); - for(Detection detection : detections) { + for (Detection detection : detections) { out.printf("\t%s\n", detection); } } /** - * Translates the source text in any language to english + * Translates the source text in any language to english. */ public static void translateText(String sourceText, PrintStream out) { Translation translation = TRANSLATE.translate(sourceText); @@ -51,7 +51,7 @@ public static void translateText(String sourceText, PrintStream out) { } /** - * Translate the source text from source to target language + * Translate the source text from source to target language. */ public static void translateTextWithOptions( String sourceText, @@ -73,7 +73,7 @@ public static void translateTextWithOptions( public static void displaySupportedLanguages(PrintStream out) { List languages = TRANSLATE.listSupportedLanguages(); - for(Language language : languages) { + for (Language language : languages) { out.printf("Name: %s, Code: %s\n", language.name(), language.code()); } } @@ -82,21 +82,19 @@ public static void main(String[] args) { String command = args[0]; String text; - if(command.equals("detect")) { + if (command.equals("detect")) { text = args[1]; TranslateText.detectLanguage(text, System.out); - } - else if(command.equals("translate")) { + } else if (command.equals("translate")) { text = args[1]; try { String sourceLang = args[2]; String targetLang = args[3]; TranslateText.translateTextWithOptions(text, sourceLang, targetLang, System.out); - } catch(ArrayIndexOutOfBoundsException ex) { + } catch (ArrayIndexOutOfBoundsException ex) { TranslateText.translateText(text, System.out); } - } - else if(command.equals("langsupport")) { + } else if (command.equals("langsupport")) { TranslateText.displaySupportedLanguages(System.out); } } diff --git a/translate/src/test/java/com/google/cloud/translate/samples/TranslateTextTest.java b/translate/src/test/java/com/google/cloud/translate/samples/TranslateTextTest.java index f27e4016af2..34d37e573d3 100644 --- a/translate/src/test/java/com/google/cloud/translate/samples/TranslateTextTest.java +++ b/translate/src/test/java/com/google/cloud/translate/samples/TranslateTextTest.java @@ -22,10 +22,10 @@ import org.junit.runner.RunWith; import org.junit.runners.JUnit4; -import java.util.List; -import java.util.Arrays; import java.io.ByteArrayOutputStream; import java.io.PrintStream; +import java.util.Arrays; +import java.util.List; /** * Unit tests for {@link Analyze}. @@ -60,7 +60,7 @@ public class TranslateTextTest { // Assert String got = bout.toString(); - for(String language : languages) { + for (String language : languages) { assertThat(got).contains(language); } } From 792cb56f6e94bab091e276a83ca1c8151f92a7af Mon Sep 17 00:00:00 2001 From: Puneith Kaul Date: Thu, 29 Sep 2016 15:19:23 -0700 Subject: [PATCH 16/22] added @param --- .../cloud/translate/samples/TranslateText.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/translate/src/main/java/com/google/cloud/translate/samples/TranslateText.java b/translate/src/main/java/com/google/cloud/translate/samples/TranslateText.java index 32543a3c57e..55a165e614f 100644 --- a/translate/src/main/java/com/google/cloud/translate/samples/TranslateText.java +++ b/translate/src/main/java/com/google/cloud/translate/samples/TranslateText.java @@ -32,6 +32,9 @@ public class TranslateText { /** * Detect the language of input text. + * + * @param sourceText source text to be detected for language + * @param out print stream */ public static void detectLanguage(String sourceText, PrintStream out) { List detections = TRANSLATE.detect(ImmutableList.of(sourceText)); @@ -43,6 +46,9 @@ public static void detectLanguage(String sourceText, PrintStream out) { /** * Translates the source text in any language to english. + * + * @param sourceText source text to be translated + * @param out print stream */ public static void translateText(String sourceText, PrintStream out) { Translation translation = TRANSLATE.translate(sourceText); @@ -52,6 +58,11 @@ public static void translateText(String sourceText, PrintStream out) { /** * Translate the source text from source to target language. + * + * @param sourceText source text to be translated + * @param sourceLang source language of the text + * @param targetLang target language of translated text + * @param out print stream */ public static void translateTextWithOptions( String sourceText, @@ -68,7 +79,9 @@ public static void translateTextWithOptions( } /** - * Displays a list of supported languages (codes). + * Displays a list of supported languages and codes. + * + * @param out print stream */ public static void displaySupportedLanguages(PrintStream out) { List languages = TRANSLATE.listSupportedLanguages(); From cdc4117d52c0969eef9546964795dd415ec4c32f Mon Sep 17 00:00:00 2001 From: Puneith Kaul Date: Fri, 30 Sep 2016 13:40:20 -0700 Subject: [PATCH 17/22] fixed PR comments --- translate/README.md | 6 +++--- translate/pom.xml | 19 ++++++++++++++++--- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/translate/README.md b/translate/README.md index f63e4621683..d4a3aa2525e 100644 --- a/translate/README.md +++ b/translate/README.md @@ -31,13 +31,13 @@ mvn clean compile assembly:single ``` We can then run the assembled JAR file with the `java` command. The variable -$COMMAND takes two values `detect' and `translate'. +$COMMAND takes two values `detect` and `translate'. ``` MAIN_CLASS=com.google.cloud.translate.samples.TranslateText JAR_FILE=target/translate-1.0-SNAPSHOT-jar-with-dependencies.jar java -cp $JAR_FILE $MAIN_CLASS - + ``` Example Usage: @@ -50,7 +50,7 @@ TARGET_LANG="fr" Translate API Features: - * Languages supported by the API + * List the languages supported by the API ``` java -cp $JAR_FILE $MAIN_CLASS langsupport ``` diff --git a/translate/pom.xml b/translate/pom.xml index cd219af01d7..6225bd486c2 100644 --- a/translate/pom.xml +++ b/translate/pom.xml @@ -1,6 +1,19 @@ - - + + 4.0.0 com.google.cloud.translate.samples translate From c3c48ce858892b77a04a9d05fcfa5128f67265bb Mon Sep 17 00:00:00 2001 From: Puneith Kaul Date: Fri, 30 Sep 2016 19:10:54 -0700 Subject: [PATCH 18/22] added range check --- .../translate/samples/TranslateTextTest.java | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/translate/src/test/java/com/google/cloud/translate/samples/TranslateTextTest.java b/translate/src/test/java/com/google/cloud/translate/samples/TranslateTextTest.java index 34d37e573d3..cad33dd2cc0 100644 --- a/translate/src/test/java/com/google/cloud/translate/samples/TranslateTextTest.java +++ b/translate/src/test/java/com/google/cloud/translate/samples/TranslateTextTest.java @@ -75,7 +75,14 @@ public class TranslateTextTest { // Assert String got = bout.toString(); - assertThat(got).contains("language=en, confidence=0.79742646"); + assertThat(got).contains("language=en"); + + // Assert + Double confidence = Double.parseDouble( + got.split("confidence=")[1].split("}")[0] + ); + assertThat(confidence).isLessThan(1.0); + assertThat(confidence).isGreaterThan(0.7); } @Test public void testGermanLangDetection() throws Exception { @@ -88,8 +95,14 @@ public class TranslateTextTest { // Assert String got = bout.toString(); - assertThat(got).contains("language=de, confidence=0.9293963"); + assertThat(got).contains("language=de"); + // Assert + Double confidence = Double.parseDouble( + got.split("confidence=")[1].split("}")[0] + ); + assertThat(confidence).isLessThan(1.0); + assertThat(confidence).isGreaterThan(0.9); } @Test public void testDefaultIdentityTranslation() throws Exception { From 1d8fd5ef63b0bc771898d89a89b269c84303a5a9 Mon Sep 17 00:00:00 2001 From: Puneith Kaul Date: Fri, 30 Sep 2016 19:18:55 -0700 Subject: [PATCH 19/22] fixed README and pom --- translate/README.md | 11 +++++------ translate/pom.xml | 11 ++--------- 2 files changed, 7 insertions(+), 15 deletions(-) diff --git a/translate/README.md b/translate/README.md index d4a3aa2525e..1ab27eb25a8 100644 --- a/translate/README.md +++ b/translate/README.md @@ -34,9 +34,8 @@ We can then run the assembled JAR file with the `java` command. The variable $COMMAND takes two values `detect` and `translate'. ``` -MAIN_CLASS=com.google.cloud.translate.samples.TranslateText JAR_FILE=target/translate-1.0-SNAPSHOT-jar-with-dependencies.jar -java -cp $JAR_FILE $MAIN_CLASS +java -jar $JAR_FILE ``` @@ -52,16 +51,16 @@ Translate API Features: * List the languages supported by the API ``` - java -cp $JAR_FILE $MAIN_CLASS langsupport + java -jar $JAR_FILE langsupport ``` * Detect input text language ``` - java -cp $JAR_FILE $MAIN_CLASS detect "$INPUT" + java -jar $JAR_FILE detect "$INPUT" ``` * Translate input text (with options) ``` - java -cp $JAR_FILE $MAIN_CLASS translate "$INPUT" - java -cp $JAR_FILE $MAIN_CLASS translate "$INPUT" $SOURCE_LANG $TARGET_LANG + java -jar $JAR_FILE translate "$INPUT" + java -jar $JAR_FILE translate "$INPUT" $SOURCE_LANG $TARGET_LANG ``` diff --git a/translate/pom.xml b/translate/pom.xml index 6225bd486c2..2eddfbdd0df 100644 --- a/translate/pom.xml +++ b/translate/pom.xml @@ -21,6 +21,8 @@ limitations under the License. translate http://maven.apache.org + 1.8 + 1.8 UTF-8 @@ -62,15 +64,6 @@ limitations under the License. - - org.apache.maven.plugins - 3.3 - maven-compiler-plugin - - 1.8 - 1.8 - - From 91c0ee99d6f1fc2be98532169826461e82c0bfaa Mon Sep 17 00:00:00 2001 From: Puneith Kaul Date: Fri, 30 Sep 2016 19:20:16 -0700 Subject: [PATCH 20/22] fixed README tick --- translate/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translate/README.md b/translate/README.md index 1ab27eb25a8..ff2e9131d2e 100644 --- a/translate/README.md +++ b/translate/README.md @@ -31,7 +31,7 @@ mvn clean compile assembly:single ``` We can then run the assembled JAR file with the `java` command. The variable -$COMMAND takes two values `detect` and `translate'. +$COMMAND takes three values `langsupport`, `detect` and `translate`. ``` JAR_FILE=target/translate-1.0-SNAPSHOT-jar-with-dependencies.jar From 001f4004df0ecd8e197485da7a1a37dd002e7164 Mon Sep 17 00:00:00 2001 From: Puneith Kaul Date: Mon, 3 Oct 2016 12:08:36 -0700 Subject: [PATCH 21/22] added within instead of less and greater than for test --- .../google/cloud/translate/samples/TranslateTextTest.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/translate/src/test/java/com/google/cloud/translate/samples/TranslateTextTest.java b/translate/src/test/java/com/google/cloud/translate/samples/TranslateTextTest.java index cad33dd2cc0..88b63cbb792 100644 --- a/translate/src/test/java/com/google/cloud/translate/samples/TranslateTextTest.java +++ b/translate/src/test/java/com/google/cloud/translate/samples/TranslateTextTest.java @@ -81,8 +81,7 @@ public class TranslateTextTest { Double confidence = Double.parseDouble( got.split("confidence=")[1].split("}")[0] ); - assertThat(confidence).isLessThan(1.0); - assertThat(confidence).isGreaterThan(0.7); + assertThat(confidence).isWithin(0.7).of(1.0); } @Test public void testGermanLangDetection() throws Exception { @@ -101,8 +100,7 @@ public class TranslateTextTest { Double confidence = Double.parseDouble( got.split("confidence=")[1].split("}")[0] ); - assertThat(confidence).isLessThan(1.0); - assertThat(confidence).isGreaterThan(0.9); + assertThat(confidence).isWithin(0.9).of(1.0); } @Test public void testDefaultIdentityTranslation() throws Exception { From a28e44031c3f88e5ed405aadb19864050857d7c7 Mon Sep 17 00:00:00 2001 From: Puneith Kaul Date: Mon, 3 Oct 2016 12:25:46 -0700 Subject: [PATCH 22/22] added function to create translate service --- .../translate/samples/TranslateText.java | 43 ++++++++++++++++--- 1 file changed, 36 insertions(+), 7 deletions(-) diff --git a/translate/src/main/java/com/google/cloud/translate/samples/TranslateText.java b/translate/src/main/java/com/google/cloud/translate/samples/TranslateText.java index 55a165e614f..3e0e46532dc 100644 --- a/translate/src/main/java/com/google/cloud/translate/samples/TranslateText.java +++ b/translate/src/main/java/com/google/cloud/translate/samples/TranslateText.java @@ -16,20 +16,19 @@ package com.google.cloud.translate.samples; +import com.google.cloud.RetryParams; import com.google.cloud.translate.Detection; import com.google.cloud.translate.Language; import com.google.cloud.translate.Translate; import com.google.cloud.translate.Translate.TranslateOption; +import com.google.cloud.translate.TranslateOptions; import com.google.cloud.translate.Translation; -import com.google.cloud.translate.testing.RemoteTranslateHelper; import com.google.common.collect.ImmutableList; import java.io.PrintStream; import java.util.List; public class TranslateText { - private static final Translate TRANSLATE = RemoteTranslateHelper.create().options().service(); - /** * Detect the language of input text. * @@ -37,7 +36,8 @@ public class TranslateText { * @param out print stream */ public static void detectLanguage(String sourceText, PrintStream out) { - List detections = TRANSLATE.detect(ImmutableList.of(sourceText)); + Translate translate = createTranslateService(); + List detections = translate.detect(ImmutableList.of(sourceText)); System.out.println("Language(s) detected:"); for (Detection detection : detections) { out.printf("\t%s\n", detection); @@ -51,7 +51,8 @@ public static void detectLanguage(String sourceText, PrintStream out) { * @param out print stream */ public static void translateText(String sourceText, PrintStream out) { - Translation translation = TRANSLATE.translate(sourceText); + Translate translate = createTranslateService(); + Translation translation = translate.translate(sourceText); out.printf("Source Text:\n\t%s\n", sourceText); out.printf("Translated Text:\n\t%s\n", translation.translatedText()); } @@ -70,10 +71,11 @@ public static void translateTextWithOptions( String targetLang, PrintStream out) { + Translate translate = createTranslateService(); TranslateOption srcLang = TranslateOption.sourceLanguage(sourceLang); TranslateOption tgtLang = TranslateOption.targetLanguage(targetLang); - Translation translation = TRANSLATE.translate(sourceText, srcLang, tgtLang); + Translation translation = translate.translate(sourceText, srcLang, tgtLang); out.printf("Source Text:\n\tLang: %s, Text: %s\n", sourceLang, sourceText); out.printf("TranslatedText:\n\tLang: %s, Text: %s\n", targetLang, translation.translatedText()); } @@ -84,13 +86,40 @@ public static void translateTextWithOptions( * @param out print stream */ public static void displaySupportedLanguages(PrintStream out) { - List languages = TRANSLATE.listSupportedLanguages(); + Translate translate = createTranslateService(); + List languages = translate.listSupportedLanguages(); for (Language language : languages) { out.printf("Name: %s, Code: %s\n", language.name(), language.code()); } } + /** + * Create Google Translate API Service. + * + * @return Google Translate Service + */ + public static Translate createTranslateService() { + TranslateOptions translateOption = TranslateOptions.builder() + .retryParams(retryParams()) + .connectTimeout(60000) + .readTimeout(60000) + .build(); + return translateOption.service(); + } + + /** + * Retry params for the Translate API. + */ + private static RetryParams retryParams() { + return RetryParams.builder() + .retryMaxAttempts(3) + .maxRetryDelayMillis(30000) + .totalRetryPeriodMillis(120000) + .initialRetryDelayMillis(250) + .build(); + } + public static void main(String[] args) { String command = args[0]; String text;