Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
-
Chimerer
- Beiträge: 514
- Registriert: 28.01.2002 16:10:44
Beitrag
von Chimerer » 01.03.2002 21:30:52
Ich hab hier mal ein Script gecodet, das den meiner Meinung nach akzeptablen Translator von Google in einer Xshell benutzbar macht. Eignet sich wenn man nur mal kurz ein Wort oder einen Satz übersetzt haben will und dafür nicht gleich X und einen grafischen Browser starten möchte. (Lynx muss installiert sein.)
Feature: Einmal abgefragte Ausdrücke werden in ~/google/translations abgespeichert und werden bei erneuter Abfrage aus der lokalen Datei gezogen.
Code: Alles auswählen
#!/bin/sh
test -d ~/google
if [ $? != 0 ]
then
mkdir ~/google > /dev/null
fi
touch ~/google/translations
if ( test -z "$1" ) || ( test -z "$2" )
then
echo -e "Usage: ./trans.sh \"expression to translate\" \"lang-lang\"\nPossible values for lang-lang are de-en (deutsch-englisch)"
echo -e "\t\t\t\t en-de (englisch-deutsch)"
echo -e "\t\t\t\t en-es (englisch-spanisch)"
echo -e "\t\t\t\t en-fr (englisch-französisch)"
echo -e "\t\t\t\t en-it (englisch-italienisch)"
echo -e "\t\t\t\t en-pt (englisch-portugiesisch)"
echo -e "\t\t\t\t de-en (deutsch-englisch)"
echo -e "usw."
else
lang=`echo $2 | tr '-' '|'`
ausdruck=`echo $1 | tr " " "+"`
clear
echo "Google-Translator Backend by Chimerer"
echo "-------------------------------------"
echo -e "\nFolgender Ausdruck wurde übersetzt: "$1"\nMit diesem Sprachenparameter: "$2"\n\nÜbersetzt bedeutet der Ausdruck soviel wie:"
grep "$ausdruck" ~/google/translations > /dev/null
if [ $? == 0 ]
then
grep "$ausdruck" ~/google/translations | cut -f2
echo
else
translated="`lynx -source "http://translate.google.com/translate_t?text=$ausdruck&langpair=$lang" | cut -f 8 -d "<" | grep ^textarea | cut -c 46-`"
echo -e "$translated\n"
fi
fi
grep "$ausdruck" ~/google/translations > /dev/null
if [ $? != 0 ]
then
test -z "$translated"
if [ $? != 0 ]
then
echo -e "$ausdruck\t$translated" >> ~/google/translations
fi
fi
-
xraver
- Beiträge: 805
- Registriert: 05.01.2002 19:42:11
- Wohnort: Halberstadt
Beitrag
von xraver » 04.03.2002 17:48:20
...also bei mir läuft es nicht.
Irgentwas in Zeile 31 will net so.
Aber die Idee ist gut. Aber schöner ware es noch wenn man einen ganzen Text durch die pipe zu deinen Script jagen könnte
.
-
Chimerer
- Beiträge: 514
- Registriert: 28.01.2002 16:10:44
Beitrag
von Chimerer » 04.03.2002 21:18:45
Post mal den genauen Codeteil, der bei dir nicht funktioniert oder die Fehlermeldung.
Aber die Idee ist gut. Aber schöner ware es noch wenn man einen ganzen Text durch die pipe zu deinen Script jagen könnte
Ich werd mich bei Gelegenheit hinsetzen und das Script dementsprechend umschreiben.
-
xraver
- Beiträge: 805
- Registriert: 05.01.2002 19:42:11
- Wohnort: Halberstadt
Beitrag
von xraver » 04.03.2002 22:24:45
xraver@raverbase:~$ ./translate
./translate: line 31: syntax error near unexpected token `else'
./translate: line 31: `else '
xraver@raverbase:~$
Vorher hatt er noch rumgemeckert das er die verzeichnisse nicht erstellen konnte, also habe ich sie selber erstellt.
-
Chimerer
- Beiträge: 514
- Registriert: 28.01.2002 16:10:44
Beitrag
von Chimerer » 05.03.2002 21:44:51
Der if-Block sollte eigentlich funktionieren. Vielleicht hat er Probleme mit der Zeile, die mit
bedeutet der Ausdruck soviel wie:"
enden sollte, das aber nicht tut da die Formatierung durch die zu kleine Tablebreite verloren gegangen ist.
Also der Teil
bedeutet der Ausdruck soviel wie:"
gehört noch in die vorherige Zeile. Genauso gehört
f 8 -d "<" | grep ^textarea | cut -c 46-`"
auch noch in seine vorherige Zeile.
-
caba
- Beiträge: 8
- Registriert: 10.07.2002 09:42:28
- Lizenz eigener Beiträge: GNU General Public License
- Wohnort: Offenburg
-
Kontaktdaten:
Beitrag
von caba » 10.07.2002 10:07:15
also bei mir funzt das script, aber nur wenn ich nicht mehr als ein Wort zum übersetzen eingebe
z.B
Wenn ich 'I Love You' eingebe bekomm ich eine leere ausgabe
Wenn ich "Love" eingebe bekomm ich Liebe zurück....
aber trotzdem super sache....
mfg manuel
-
Porschecity
- Beiträge: 33
- Registriert: 04.08.2002 18:25:56
-
Kontaktdaten:
Beitrag
von Porschecity » 05.08.2002 22:42:26
bei funktioniert's auch!
YaST - Yet another Sucking Tool
-
Chimerer
- Beiträge: 514
- Registriert: 28.01.2002 16:10:44
Beitrag
von Chimerer » 11.08.2002 19:37:52
So, mein erster Beitrag seit langem.
@tucer: Hast du den zu übersetzenden Begriff auch mit " eingerahmt?
Also so:
./trans.sh "I love you" en-de
-
josef
- Beiträge: 82
- Registriert: 27.07.2002 21:57:09
- Wohnort: Dresden
-
Kontaktdaten:
Beitrag
von josef » 13.08.2002 07:42:54
Wenn ich mal was beisteuern darf...
Code: Alles auswählen
echo "-------------------------------------"
echo -e "\nFolgender Ausdruck wurde übersetzt: "$1"\nMit diesem Sprachenparameter: "$2"\n\nÜbersetzt bedeutet der Ausdruck soviel wie:"
- grep "$ausdruck" ~/google/translations > /dev/null
+ grep "$lang $ausdruck" ~/google/translations > /dev/null
if [ $? == 0 ]
then
- grep "$ausdruck" ~/google/translations | cut -f2
+ grep "$lang $ausdruck" ~/google/translations | cut -f3
echo
else
translated="`lynx -source "http://translate.google.com/translate_t?text=$ausdruck&langpair=$lang" | cut -f 8 -d "<" | grep ^textarea | cut -c 46-`"
@@ -38,13 +38,13 @@
fi
fi
-grep "$ausdruck" ~/google/translations > /dev/null
+grep "$lang $ausdruck" ~/google/translations > /dev/null
if [ $? != 0 ]
then
test -z "$translated"
if [ $? != 0 ]
then
- echo -e "$ausdruck\t$translated" >> ~/google/translations
+ echo -e "$lang\t$ausdruck\t$translated" >> ~/google/translations
fi
fi
Der Cache ist nämlich nur gültig, wenn die Sprachkombination dieselbe ist
Bitte beachten, daß das bei den grep's Tabulatoren und keine Leerzeichen sind. Normalerweise sollte man \t dafür nehmen können, aber das geht nicht - Bug in grep?
Unser chatbot (das ist das Viech was mein Logo ziert) verwendet jetzt eine leicht modifizierte Version davon.
Ich gehe mal von einem Public Domain- oder GPL-Status aus
-
Chimerer
- Beiträge: 514
- Registriert: 28.01.2002 16:10:44
Beitrag
von Chimerer » 14.08.2002 17:02:49
Wenn ich mal was beisteuern darf...
Klar.
Ich gehe mal von einem Public Domain- oder GPL-Status aus
Wo läuft denn der Chatbot?
-
josef
- Beiträge: 82
- Registriert: 27.07.2002 21:57:09
- Wohnort: Dresden
-
Kontaktdaten:
Beitrag
von josef » 17.08.2002 09:55:36
Chimerer hat geschrieben:
Wo läuft denn der Chatbot?
Siehe
http://ggz.sourceforge.net/docs/grubby/user-manual.html.
Es ist auch ein IRC-Gateway geplant.
Das nächste Release sollte eigentlich jetzt (zu Beginn der Semesterferien) erscheinen,
wird sich allerdings etwas verzögern, nicht zuletzt wegen des Wasserpegels hier...