In diesem Post möchte ich kurz ein minimales Beispiel zur Nutzung der Google Translate API via Python 3 zur Verfügung stellen das für alle nützlich ist, die schnell und einfach zu einer Übersetzung kommen wollen.
Google empfiehlt im Moment die neueren API Client Libraries zu nutzen um auf Dienste zuzugreifen, das erfordert allerdings die Erzeugung einer JSON-Datei, die euren Dienstkontoschlüssel erzeugt. Hier geht es zur entsprechenden Seite, die natürlich nur funktioniert, wenn ihr auch einen Google Account habt.
Das Ganze ist leider nicht gerade intuitiv gelöst, ein wenig Hilfe zum Thema Authentifizierung gibt es hier. Meiner Meinung nach hat sich Google keinen Gefallen damit getan, den Authentifizierungsprozess so zu verkomplizieren, den meisten wäre ein einfacher API-Key sicher lieber und würde ausreichen. Aber das haben sie sich (leider) von Amazon abgeguckt.
Die JSON-Datei sollte am Ende in etwa wie folgt aussehen
{ "type": "service_account", "project_id": "myproject-199001", "private_key_id": "14c25600b1bdfaaaaadbb5bdbbd9af43a973df139", "private_key": "-----BEGIN PRIVATE KEY-----\\nKWhtvRWtUFuuQqoFmRkpjhI\nKWht....vRWtUFuuQ\nKWhtvRWtUFuuQqoFmRkpjhI=\n-----END PRIVATE KEY-----\n", "client_email": "yourmail@yourproject-199001.iam.gserviceaccount.com", "client_id": "222228262765471841234", "auth_uri": "https://accounts.google.com/o/oauth2/auth", "token_uri": "https://accounts.google.com/o/oauth2/token", "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/yourmail%40yourproject-199001.iam.gserviceaccount.com" }
Legt die Datei im gleichen Ordner wie das folgende python-Script unter dem Namen google_key.json ab.
Dann müsst ihr noch die client libraries für python installieren
pip install --upgrade google-cloud-translate
Und hier schließlich der Python-Code den ihr z.B. in die Datei translate.py speichern könnt
# -*- coding: utf-8 -*- import os from google.cloud import translate os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = 'google_key.json' # Instantiates a client translate_client = translate.Client() source_language = 'en' target_language = 'de' translate_this = ['hello', 'world'] for string in translate_this: translation = translate_client.translate( string, target_language=target_language, source_language=source_language) print(source_language,":",string, " -- ", target_language, ":", translation["translatedText"])
Damit die Google-Bibliothek den Key findet ist eine Umgebungsvariable notwendig, die ich einfach direkt im Script setze. Dadurch spielt das benutzte Betriebssystem keine Rolle mehr. Wenn ich die Übersetzung mehrfach verwenden wollt, empfiehlt es sich natürlich diese Variable global zu setzen.