Googletrans 的 translator() 没有将文本翻译成英文

translator() from Googletrans not translating the texts to English

我正在尝试将简短描述字段翻译成英文,因为有些行不是英文的。但是使用下面的代码我无法翻译。翻译列和原始列看起来完全一样。请查看输出的附件图像。

from googletrans import Translator
translator = Translator()

mask = data['Short description'] !='en'

data['Short description_translated'] = data['Short description']
f = lambda x: translator.translate(x, dest='en').text
data.loc[mask, 'Short description_translated'] = data.loc[mask, 'Short description'].apply(f)
print (data)

Output

您正在使用的 googletrans API 与 translate.google.com 是相同的服务。 Googletrans 不使用 official Google Translation API。它使用 Google 翻译 Ajax API。 您可以使用 Python 客户端库或 Google 官方翻译 API 中提供的 REST API。 您可以参考下面提到的代码。

使用 Python 客户端库:

from os import environ

from google.cloud import translate

project_id = environ.get("PROJECT_ID", "")
assert project_id
parent = f"projects/{project_id}"
client = translate.TranslationServiceClient()

sample_text = "Bonjour"
target_language_code = "en"

response = client.translate_text(
    contents=[sample_text],
    target_language_code=target_language_code,
    parent=parent,
)

for translation in response.translations:
    print(translation.translated_text)

使用 REST API:

创建一个 request.json 文件并使用下面提到的 curl 命令。

request.json

{
  "q": ["Bonjour", "Merci"],
  "target": "en"
}

卷曲命令

curl -X POST \
-H "Authorization: Bearer "$(gcloud auth application-default print- 
access-token) \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
https://translation.googleapis.com/language/translate/v2