nprogram’s blog

気ままに、プログラミングのトピックについて書いていきます

Google Cloud Translationを用いて、各言語に同時に翻訳実行します

翻訳の自動化について

翻訳の自動化はGoogle Cloud Translation以外には、DeepLのAPIを用いることも可能です

Google Translate Sample

# Imports the Google Cloud Translation library
from google.cloud import translate
import pandas as pd


# Initialize Translation client
def translate_text(
        target_string: str,
        project_id: str,
        source_language: str,
        target_language: str) -> translate.TranslationServiceClient:
    """Translating Text."""

    client = translate.TranslationServiceClient()

    location = "global"

    parent = f"projects/{project_id}/locations/{location}"

    # Translate text from English to French
    # Detail on supported types can be found here:
    # https://cloud.google.com/translate/docs/supported-formats
    response = client.translate_text(
        request={
            "parent": parent,
            "contents": [target_string],
            "mime_type": "text/plain",  # mime types: text/plain, text/html
            "source_language_code": source_language,
            "target_language_code": target_language,
        }
    )

    return response.translations[0].translated_text


project_id = "spherical-bloom-394122"
target_text = "吾輩わがはいは猫である。名前はまだ無い。どこで生れたかとんと見当けんとうがつかぬ。何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している。"

result = translate_text(target_text, project_id, "ja", "en")
print(type(result))
print(result)

language_list = ["ja", "en", "fr", "de", "it", "pt", "es", "nl", "ru", "ko", "zh-hans", "zh-hant", "tr"]

translated_text_list = []

for target_language in language_list:
    if "ja" == target_language:
        continue
    result_text = translate_text(target_text, project_id, "ja", target_language)
    translated_text_list.append(result_text)

print(type(translated_text_list))
print(translated_text_list)

data = [
    [language_list],
    [translated_text_list],
]

df = pd.DataFrame(data)

df