From eff5d542ea257ffe3eb40a9be17a36bc9c91c42f Mon Sep 17 00:00:00 2001 From: Mike <45373284+munkhuushmgl@users.noreply.github.com> Date: Fri, 15 Oct 2021 11:25:53 -0700 Subject: [PATCH] samples: added new translate document samples (#608) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * samples: added new translate document samples * 🦉 Updates from OwlBot See https://github.com/googleapis/repo-automation-bots/blob/master/packages/owl-bot/README.md * fixed lint and removed main * 🦉 Updates from OwlBot See https://github.com/googleapis/repo-automation-bots/blob/master/packages/owl-bot/README.md * fixed import lint * removed mac files & added resources * chore: year bump * changed doc file * added polling algorithm * 🦉 Updates from OwlBot See https://github.com/googleapis/repo-automation-bots/blob/master/packages/owl-bot/README.md * made requested the changes * format * made requested changes regarding comment & String concant Co-authored-by: Owl Bot --- translate/snippets/resources/fake_invoice.pdf | Bin 0 -> 88986 bytes .../BatchTranslateDocument.java | 123 ++++++++++++++++++ .../translatev3beta1/TranslateDocument.java | 76 +++++++++++ .../BatchTranslateDocumentTests.java | 118 +++++++++++++++++ .../TranslateDocumentTests.java | 73 +++++++++++ 5 files changed, 390 insertions(+) create mode 100644 translate/snippets/resources/fake_invoice.pdf create mode 100644 translate/snippets/src/main/java/com/example/translatev3beta1/BatchTranslateDocument.java create mode 100644 translate/snippets/src/main/java/com/example/translatev3beta1/TranslateDocument.java create mode 100644 translate/snippets/src/test/java/com/example/translatev3beta1/BatchTranslateDocumentTests.java create mode 100644 translate/snippets/src/test/java/com/example/translatev3beta1/TranslateDocumentTests.java diff --git a/translate/snippets/resources/fake_invoice.pdf b/translate/snippets/resources/fake_invoice.pdf new file mode 100644 index 0000000000000000000000000000000000000000..b9107fba129d5c78ce6688e366c06f700b758c03 GIT binary patch literal 88986 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

(TtN<*H*5C)SpU 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 mNrE&QD=meRh5lz2!0 future = + client.batchTranslateDocumentAsync(request); + + System.out.println("Waiting for operation to complete..."); + + // random number between timeout + long randomNumber = ThreadLocalRandom.current().nextInt(timeout, timeout + 100); + BatchTranslateDocumentResponse response = future.get(randomNumber, TimeUnit.SECONDS); + + System.out.println("Total Pages: " + response.getTotalPages()); + } + } +} +// [END translate_v3beta1_batch_translate_document] diff --git a/translate/snippets/src/main/java/com/example/translatev3beta1/TranslateDocument.java b/translate/snippets/src/main/java/com/example/translatev3beta1/TranslateDocument.java new file mode 100644 index 00000000000..7a342a3802e --- /dev/null +++ b/translate/snippets/src/main/java/com/example/translatev3beta1/TranslateDocument.java @@ -0,0 +1,76 @@ +/* + * Copyright 2021 Google LLC + * + * 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.example.translatev3beta1; + +// [START translate_v3beta1_translate_document] + +import com.google.cloud.translate.v3beta1.DocumentInputConfig; +import com.google.cloud.translate.v3beta1.LocationName; +import com.google.cloud.translate.v3beta1.TranslateDocumentRequest; +import com.google.cloud.translate.v3beta1.TranslateDocumentResponse; +import com.google.cloud.translate.v3beta1.TranslationServiceClient; +import com.google.protobuf.ByteString; +import java.io.FileInputStream; +import java.io.IOException; + +public class TranslateDocument { + + public static void translateDocument() throws IOException { + // TODO(developer): Replace these variables before running the sample. + String projectId = "YOUR-PROJECT-ID"; + String filePath = "your-text"; + translateDocument(projectId, filePath); + } + + // Translating Document + public static void translateDocument(String projectId, String filePath) throws IOException { + // Initialize client that sends requests. This client can be reused for multiple requests. After + // completing all of your requests, call the "close" method on the client to clean + // up any remaining background resources. + try (TranslationServiceClient client = TranslationServiceClient.create()) { + // The ``global`` location is not supported for batch translation + LocationName parent = LocationName.of(projectId, "us-central1"); + + // Supported file types: https://cloud.google.com/translate/docs/supported-formats + ByteString content = ByteString.readFrom(new FileInputStream(filePath)); + + DocumentInputConfig documentInputConfig = + DocumentInputConfig.newBuilder() + .setContent(content) + .setMimeType("application/pdf") + .build(); + + TranslateDocumentRequest request = + TranslateDocumentRequest.newBuilder() + .setParent(parent.toString()) + .setTargetLanguageCode("fr-FR") + .setDocumentInputConfig(documentInputConfig) + .build(); + + TranslateDocumentResponse response = client.translateDocument(request); + + // To view translated document, write `response.document_translation.byte_stream_outputs` + // to file. If not provided in the TranslationRequest, the translated file will only be + // returned through a byte-stream and its output mime type will be the same as the input + // file's mime type + System.out.println( + "Response: Detected Language Code - " + + response.getDocumentTranslation().getDetectedLanguageCode()); + } + } +} +// [END translate_v3beta1_translate_document] diff --git a/translate/snippets/src/test/java/com/example/translatev3beta1/BatchTranslateDocumentTests.java b/translate/snippets/src/test/java/com/example/translatev3beta1/BatchTranslateDocumentTests.java new file mode 100644 index 00000000000..588ae493691 --- /dev/null +++ b/translate/snippets/src/test/java/com/example/translatev3beta1/BatchTranslateDocumentTests.java @@ -0,0 +1,118 @@ +/* + * Copyright 2021 Google LLC + * + * 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.example.translatev3beta1; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import com.google.api.gax.paging.Page; +import com.google.cloud.storage.Blob; +import com.google.cloud.storage.Storage; +import com.google.cloud.storage.StorageOptions; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.PrintStream; +import java.util.UUID; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.TimeoutException; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.JUnit4; + +/** Tests for Batch Translate Document sample. */ +@RunWith(JUnit4.class) +@SuppressWarnings("checkstyle:abbreviationaswordinname") +public class BatchTranslateDocumentTests { + + private static final String PROJECT_ID = System.getenv("GOOGLE_CLOUD_PROJECT"); + private static final String INPUT_URI = + "gs://java-docs-samples-testing/translation/invoice2.docx"; + private static final String PREFIX = "BATCH_DOC_TRANSLATION_OUTPUT_"; + private static final String OUTPUT_URI = + String.format("gs://%s/%s%s/", PROJECT_ID, PREFIX, UUID.randomUUID()); + + private ByteArrayOutputStream bout; + private PrintStream out; + private PrintStream originalPrintStream; + + private static void cleanUpBucket() { + Storage storage = StorageOptions.getDefaultInstance().getService(); + Page blobs = + storage.list( + PROJECT_ID, + Storage.BlobListOption.currentDirectory(), + Storage.BlobListOption.prefix(PREFIX)); + + deleteDirectory(storage, blobs); + } + + private static void deleteDirectory(Storage storage, Page blobs) { + for (Blob blob : blobs.iterateAll()) { + System.out.println(blob.getBlobId()); + if (!blob.delete()) { + Page subBlobs = + storage.list( + PROJECT_ID, + Storage.BlobListOption.currentDirectory(), + Storage.BlobListOption.prefix(blob.getName())); + + deleteDirectory(storage, subBlobs); + } + } + } + + private static void requireEnvVar(String varName) { + assertNotNull(String.format(varName), System.getenv(varName)); + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("GOOGLE_APPLICATION_CREDENTIALS"); + requireEnvVar("GOOGLE_CLOUD_PROJECT"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + originalPrintStream = System.out; + System.setOut(out); + + // clean up bucket before the use to prevent concurrency issue. + cleanUpBucket(); + } + + @After + public void tearDown() { + cleanUpBucket(); + System.out.flush(); + System.setOut(originalPrintStream); + } + + @Test + public void testBatchTranslateDocument() + throws InterruptedException, ExecutionException, IOException, TimeoutException { + BatchTranslateDocument.batchTranslateDocument( + PROJECT_ID, "en-US", "fr-FR", INPUT_URI, OUTPUT_URI, 1000); + + String got = bout.toString(); + assertThat(got).contains("Total Pages:"); + } +} diff --git a/translate/snippets/src/test/java/com/example/translatev3beta1/TranslateDocumentTests.java b/translate/snippets/src/test/java/com/example/translatev3beta1/TranslateDocumentTests.java new file mode 100644 index 00000000000..02780eee0d5 --- /dev/null +++ b/translate/snippets/src/test/java/com/example/translatev3beta1/TranslateDocumentTests.java @@ -0,0 +1,73 @@ +/* + * Copyright 2021 Google LLC + * + * 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.example.translatev3beta1; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.PrintStream; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.JUnit4; + +/** Tests for Translate Document sample. */ +@RunWith(JUnit4.class) +@SuppressWarnings("checkstyle:abbreviationaswordinname") +public class TranslateDocumentTests { + private static final String PROJECT_ID = System.getenv("GOOGLE_CLOUD_PROJECT"); + + private ByteArrayOutputStream bout; + private PrintStream out; + private PrintStream originalPrintStream; + + private static void requireEnvVar(String varName) { + assertNotNull(String.format(varName), System.getenv(varName)); + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("GOOGLE_APPLICATION_CREDENTIALS"); + requireEnvVar("GOOGLE_CLOUD_PROJECT"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + originalPrintStream = System.out; + System.setOut(out); + } + + @After + public void tearDown() { + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + } + + @Test + public void testTranslateText() throws IOException { + TranslateDocument.translateDocument(PROJECT_ID, "resources/fake_invoice.pdf"); + String got = bout.toString(); + assertThat(got).contains("Response: Detected Language Code"); + } +}