Handleiding voor het gebruik van Google Translate API
Categories:
Als je API-automatisering voor vertaalwerk nodig hebt, is Google Translate API een goede keuze. De vertaalkwaliteit is mogelijk iets minder dan DeepL, maar biedt een betere prijs-kwaliteitverhouding, met name vanwege de maandelijkse gratis limiet van 500.000 tekens.
Productinleiding
Google Translate is algemeen bekend. Hier introduceer ik de API-service, voluit Google Cloud Translation. Via de API kunnen bulkvertalingen, aangepaste vertaalmodellen en documentvertalingen worden geautomatiseerd.

Prijzen
Maandelijkse gratis limiet van 500.000 tekens, boven dit limiet in rekening gebracht per teken.

Verschil tussen Basis- en Premiumversie
| Functie | Basisversie | Premiumversie |
|---|---|---|
| Gratis limiet | 500.000 tekens/maand | 500.000 tekens/maand |
| Per miljoen tekens | 20 USD | 80 USD |
| Documentvertaling | 0,08 per pagina | 0,25 per pagina |
| Aangepaste vertaling | ✘ | ✔ |
Aan de slag

- Activeer de API. Als de factureringsfunctie niet is geactiveerd, wordt hier gevraagd om een factureringsaccount toe te voegen. Een creditcard in buitenlandse valuta is vereist.


$cred = gcloud auth print-access-token
$project_id = "example"
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://cloudresourcemanager.googleapis.com/v3/projects/${project_id}" | Select-Object -Expand Content
- Testen
$cred = gcloud auth print-access-token
$project_id = "example"
$body = @{
"sourceLanguageCode" = "en"
"targetLanguageCode" = "zh"
"contents" = @("Hello, world!")
"mimeType" = "text/plain"
}
$body = $body | ConvertTo-Json
$headers = @{
"Authorization" = "Bearer $cred"
"Content-Type" = "application/json; charset=utf-8"
"x-goog-user-project" = $project_id
}
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-Uri "https://translation.googleapis.com/v3/projects/${project_id}:translateText" `
-Body $body | Select-Object -Expand Content

Linux met curl-opdracht:
export CRED=$(gcloud auth print-access-token)
export PROJECT_ID="example"
export SOURCE_LANGUAGE_CODE="en"
export TARGET_LANGUAGE_CODE="zh"
export CONTENTS="Hello, world!"
export MIME_TYPE="text/plain"
curl -X POST -H "Authorization: Bearer $CRED" -H "Content-Type: application/json; charset=utf-8" -H "x-goog-user-project: $PROJECT_ID" -d "{
\"sourceLanguageCode\": \"$SOURCE_LANGUAGE_CODE\",
\"targetLanguageCode\": \"$TARGET_LANGUAGE_CODE\",
\"contents\": [\"$CONTENTS\"],
\"mimeType\": \"$MIME_TYPE\"
}" "https://translation.googleapis.com/v3/projects/$PROJECT_ID:translateText"
Tot zover kun je Google Translate API gebruiken voor bulkvertalingen.
Toepassingsvoorbeelden
- Vertaal websites of applicaties
- Train aangepaste vertaalmodellen
- Voeg ondertitels in verschillende talen toe aan video’s
- Genereer audio in verschillende talen voor video’s
- Vertaal gestructureerde documenten
- Vertaal klantinteracties in real-time
Aanvullende leesstof
- Cloud Translation documentatie
- Authenticatie bij Cloud Translation
- Authenticatie met API-sleutels
- Bron- en doeltaal worden geïdentificeerd met ISO-639-codes
- Aangepaste vertalingsoverzicht
Slot
De officiële documentatie van Google Translate is langdradig. Er zijn meerdere manieren om dezelfde functionaliteit te implementeren, met diverse routes voor authenticatie en oproepen. Dit artikel kiest de eenvoudigste en meest aanbevolen methode voor gewone gebruikers.
- Voor authenticatie kies ik lokale authenticatie (gcloud CLI)
- Voor gebruik kies ik REST API (Curl/Invoke-WebRequest)
- Tussen basis- en premiumversie kies ik premiumversie
Dit is een oorspronkelijk artikel gepubliceerd op blog.jqknono.dev, het is niet toegestaan om zonder toestemming te herpubliceren.
