ubuntuusers.de

Input zeilenweise verarbeiten und wieder zusammenfügen

Status: Gelöst | Ubuntu-Version: Kubuntu 11.04 (Natty Narwhal)
Antworten |

themroc

Avatar von themroc

Anmeldungsdatum:
5. November 2006

Beiträge: 1552

Wohnort: JWD bei Berlin

Ich habe folgendes Problem.

Ich benutze eine Klipperaktion, mit der mir der gerade markierte Text mit GoogleTranslate übersetzt wird und als Messagebox ausgegeben wird.

So sieht klipperrc aus:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
[$Version]
update_info=klipper-kconfigxt.upd:KlipperNoSpacesInKeyNames

[Action_0]
Automatic=true
Description=All
Number of commands=2
Regexp=^*

[Action_0/Command_0]
Commandline[$e]=kdialog --title "Übersetzung" --msgbox " $$( gtranslate de en "%s" | sed -e '1d' ) "
Description=Nach Englisch übersetzten
Enabled=true
Icon=
Output=0

[Action_0/Command_1]
Commandline[$e]=kdialog --title "Übersetzung" --msgbox " $$( gtranslate en de "%s" | sed -e '1d' ) "
Description=Nach Deutsch übersetzten
Enabled=true
Icon=
Output=0

[General]
MaxClipItems=20
NoActionsForWM_CLASS=
Number of Actions=1
StripWhiteSpace=
TimeoutForActionPopups=
Version=v0.9.7

Ich benutze gtranslate aus dem ppa:

1
2
3
sudo apt-add-repository ppa:tldm217/tahutek.net
sudo apt-get update
sudo apt-get install gtranslate

Das funktioniert so weit für einzelne Abschnitte auch zufriedenstellend und übersichtlich. Das Problem ist, dass gtranslate bei mehreren Abschnitten die Leerzeilen entfernt, so dass nichts mehr lesbar ist. siehe Bild.

Die Frage:

Wie kann ich die Eingabe Zeilenweise zerlegen, so dass ich sie einzelnen übersetzen und dann als gesamte Ausgabe formatiert in der Messagebox anzeigen kann?

Vielleicht noch zur Ergänzung: Man kann die klipperrc in ~/.kde/share/config einfach ersetzten. Nach dem Neustart sollte dann die Aktion funktionieren. Aufruf bei markiertem Text mit STRG + ALT + r.

Bilder

themroc

(Themenstarter)
Avatar von themroc

Anmeldungsdatum:
5. November 2006

Beiträge: 1552

Wohnort: JWD bei Berlin

OK, jetzt habe ich es selber gelöst:

klipperrc:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
[$Version]
update_info=klipper-kconfigxt.upd:KlipperNoSpacesInKeyNames

[Action_0]
Automatic=true
Description=All
Number of commands=2
Regexp=^*

[Action_0/Command_0]
Commandline[$e]=OLDIFS=$$IFS; IFS=$$'\n'; kdialog --title "Übersetzung" --msgbox " $$( for LINE in `echo "%s"` ; do gtranslate de en "$$LINE" | sed -e '1d'; echo ""; done;) "; IFS=$$OLDIFS
Description=Nach Englisch übersetzten
Enabled=true
Icon=
Output=0

[Action_0/Command_1]
Commandline[$e]=OLDIFS=$$IFS; IFS=$$'\n'; kdialog --title "Übersetzung" --msgbox " $$( for LINE in `echo "%s"` ; do gtranslate en de "$$LINE" | sed -e '1d'; echo ""; done;) "; IFS=$$OLDIFS
Description=Nach Deutsch übersetzten
Enabled=true
Icon=
Output=0

[General]
MaxClipItems=20
NoActionsForWM_CLASS=
Number of Actions=1
StripWhiteSpace=
TimeoutForActionPopups=
Version=v0.9.7

Das Ergebnis anbei. Keine Ahnung, warum Heise hinter dem ersten Absatz zwei Newlines hat. Aber so ist es lesbar.

Bilder
Antworten |