AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Texte mit Google übersetzen
Thema durchsuchen
Ansicht
Themen-Optionen

Texte mit Google übersetzen

Ein Thema von Larsi · begonnen am 15. Feb 2010 · letzter Beitrag vom 23. Mär 2015
Antwort Antwort
Seite 1 von 2  1 2      
Larsi

Registriert seit: 10. Feb 2007
2.262 Beiträge
 
Delphi 2007 Professional
 
#1

Texte mit Google übersetzen

  Alt 15. Feb 2010, 15:32
Hi,
ich habe mal ein Beispiel programmiert, wie man in Delphi mithilfe des Google Übersetzungs Service Texte übersetzen kann. Hierfür wird der Quelltext der Url, in welcher der zu übersetzende Text steht ausgelesen, und die Übersetzung extrahiert. Bis jetzt kann man nur DE > EN oder EN > DE übersetzen aber das zu erweitern, stellt ja keine Schwierigkeit dar. Indys werden benötigt. Sobald Google den HTML Code ändert, geht das natürlich nicht mehr, lässt sich aber einfach abändern. Hier der Code der eigentlichen Funktion:

Delphi-Quellcode:
uses IdHttp;

function Übersetzung(const Ausgangstext: string; i: integer): string;
var
a : Integer;
x : Integer;
t: string;
r: string;
idhttp1: TIdHttp;
begin
//Umlaute, Zeilenumbrüche, Leerzeichen ersetzen
Idhttp1 := TidHttp.Create();
t := StringReplace(Ausgangstext, ' ', '+',[rfReplaceAll, rfIgnoreCase]);
t := StringReplace(t, 'ä', 'ae', [rfReplaceAll, rfIgnoreCase]);
t:= StringReplace(t, 'ö', 'oe', [rfReplaceAll, rfIgnoreCase]);
t := StringReplace(t, 'ü', 'ue', [rfReplaceAll, rfIgnoreCase]);
t := StringReplace(t, #13#10, '', [rfReplaceAll, rfIgnoreCase]);
//Deutsch > Englisch oder Englisch > Deutsch
if i = 0 then
r := Idhttp1.Get('http://translate.google.de/translate_t?hl=&ie=UTF-8&text=' + t + '+%0D%0A&sl=de&tl=en#');
if i = 1 then
r := Idhttp1.Get('http://translate.google.de/translate_t?hl=&ie=UTF-8&text=' + t + '+%0D%0A&sl=en&tl=de#');
//Text im Quellcode, der vor der Übersetzung steht
x := Pos('gtrans value="', r);
//Text im Quellcode, der nach der Übersetzung steht
a := Pos('<br>">', r);
//Text zwischen Anfangs- und Endtext auslesen
Result := Copy(r, x + 14, a - x - 14);
end;
Beispielaufrufe:

Delphi-Quellcode:
//Deutsch zu Englisch
Memo2.Text := Übersetzung(Memo1.Text, 0);

//Englisch zu Deutsch
Memo2.Text := Übersetzung(Memo1.Text, 1);
Angehängte Dateien
Dateityp: rar _bersetzer_851.rar (244,6 KB, 114x aufgerufen)
Ein Tag ohne Delphi ist ein verlorener Tag!

Homepage zu meinem neuen Programm: StreamZ

Geändert von Larsi (14. Nov 2019 um 12:17 Uhr)
  Mit Zitat antworten Zitat
Balu der Bär
(Gast)

n/a Beiträge
 
#2

Re: Texte mit Google übersetzen

  Alt 15. Feb 2010, 15:43
Sicher das Google das automatisierte Nutzen seines Services auf dieser Art gestattet?
  Mit Zitat antworten Zitat
fatalerror
(Gast)

n/a Beiträge
 
#3

Re: Texte mit Google übersetzen

  Alt 15. Feb 2010, 15:44
da gibt es doch die Google Ajax translate api, damit sollte es eigentlich einfacher funktionieren. Marco Canto hat doch mal bei einer genialen Demonstration dies vorgeführt.
Habe jetzt bei einer kurzen Recherche nur folgenden Link gefunden: Marco Cantu Translate
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.993 Beiträge
 
Delphi 12 Athens
 
#4

Re: Texte mit Google übersetzen

  Alt 15. Feb 2010, 15:49
Delphi-Quellcode:
if i = 0 then t := t + '+%0D%0A&sl=de&tl=en';
if i = 1 then t := t + '+%0D%0A&sl=en&tl=de';
r := Idhttp1.Get('http://translate.google.de/translate_t?hl=&ie=UTF-8&text=' + t);
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von implementation
implementation

Registriert seit: 5. Mai 2008
940 Beiträge
 
FreePascal / Lazarus
 
#5

Re: Texte mit Google übersetzen

  Alt 15. Feb 2010, 16:00
Die Sprachauswahl ließe sich noch umschreiben:
Delphi-Quellcode:
const
  Languages: array[0..1] of string = ('en', 'de');

function Uebersetzung(const Ausgangstext, sl, tl: string): string;
begin
  ...
  //if i = 0 then
  //r := Idhttp1.Get('http://translate.google.de/translate_t?hl=&ie=UTF-8&text=' + t + '+%0D%0A&sl=de&tl=en#');
  //if i = 1 then
  //r := Idhttp1.Get('http://translate.google.de/translate_t?hl=&ie=UTF-8&text=' + t + '+%0D%0A&sl=en&tl=de#');
  r := IdHttp1.Get('http://translate.google.de/translate_t?hl=&ie=UTF-8&text=' + t + '+%0D%0A&sl='+sl+'&tl='+tl);
...
end;

...

Foo := Uebersetzung('Bar','de','en'); // Übersetze 'Bar' von Deutsch nach Englisch
Fuu := Uebersetzung(Foo,Languages[0],Languages[1]); // und wieder zurück
  Mit Zitat antworten Zitat
Larsi

Registriert seit: 10. Feb 2007
2.262 Beiträge
 
Delphi 2007 Professional
 
#6

Re: Texte mit Google übersetzen

  Alt 15. Feb 2010, 16:01
T ist aber der Ausgangstext.
Ein Tag ohne Delphi ist ein verlorener Tag!

Homepage zu meinem neuen Programm: StreamZ
  Mit Zitat antworten Zitat
Benutzerbild von markus5766h
markus5766h

Registriert seit: 5. Mär 2009
Ort: Hamburg
569 Beiträge
 
Delphi XE8 Professional
 
#7

Re: Texte mit Google übersetzen

  Alt 15. Feb 2010, 16:25
Hallo,
ab welcher Version geht denn so was

function Übersetzung(const Ausgangstext: string; i: integer): string;


bei mir würde Delphi meckern : [Error] ... Illegal character in input file: 'Ü' ($DC)
Markus H.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.993 Beiträge
 
Delphi 12 Athens
 
#8

Re: Texte mit Google übersetzen

  Alt 15. Feb 2010, 16:32
Zitat von markus5766h:
ab welcher Version geht denn so was
ab TurboDelphi
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von markus5766h
markus5766h

Registriert seit: 5. Mär 2009
Ort: Hamburg
569 Beiträge
 
Delphi XE8 Professional
 
#9

Re: Texte mit Google übersetzen

  Alt 15. Feb 2010, 16:43
@himitsu : danke für die Erleuchtung
Markus H.
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.529 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Texte mit Google übersetzen

  Alt 23. Mär 2015, 07:55
Das wollte ich gerade mal ausprobieren.

Man muss das HTTP durch einen SSL-IO-Handler ergänzen, damit es überhaupt läuft (da jetzt https-Adresse).

Bei einem Verbindungstest musste ich noch das HandleReditrects aktivieren, um den "HTTP/1.1 301 Moved Permanently" Fehler zu vermeiden.

Insgesamt funktioniert es aber nicht (Keine Fehlermeldung, wird einfach nichts zurückgeliefert).

Kennt jemand eine einfach funktionierende Lösung über diesen HPPT-Aufruf?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:30 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz