Antwort schreiben 
input method funktioniert nicht mit perl/Tk
Verfasser Nachricht
oojika


Beiträge: 172
Beitrag #1
input method funktioniert nicht mit perl/Tk
Hallo zusammen,

ich habe folgendes Problem:

Obwohl ich auf japanischen Input umschalte, reagiert das Entry-Feld
eines perl/Tk-Programmes nicht darauf, sondern gibt einfach den eingegebenen
Text wieder. D.h. ich kann keine Hiragana oder Katakana eingeben.

Japanischer Input funktioniert auf der shell, im vim, in
OpenOffice und in java Eingabefeldern (d.h. fonts sind da, input
method funktionert).

Ich kann auch mit perl utf8-Zeichen aus files lesen, ausgeben
(auch auf Konsole), auch im Text als Strings einbetten und in
Tk anzeigen lassen. Nur die Eingabe funktioniert nicht bei
perl-Anwendungen.


Das Problem tritt sowohl unter Linux als auch unter mac auf.

Systeme:
Linux: OpenSUSE 11.2

perl: 5.10.0
perl/Tk: 804.028
anthy: 9100h
scim: 1.4.7
scim-anthy: 1.2.7

macos X 10.6 snow leopard

kotoeri
perl 5.12
TK ?? (zusammen mit perl 5.12 per 'port install' installiert

In der Doku habe ich bisher nichts gefunden. Gibt es da einen
bekannten Bug? Oder eine Einstellung, die mir weiterhilft?
(LANG ist bei mir auf de_DE.UTF-8 eingestellt).

Beispielprogramm
#!/usr/bin/perl

use utf8 ;
use Tk;

$top = new MainWindow();
my $entry=$top->Entry(
-text => "こんにちは"
)->pack;

MainLoop;


Das Entry zeigt den japanischen Text an, eingeben kann man
aber nur lateinische Buchstaben (trotz umschalten auf Hiragana).

PS: Mit dem python-Modul tkinter funktioniert es ebenfalls nicht.

Um das nochmal klarzustellen: Ich kann japanische Texte auf
meine Rechnern lesen, schreiben, eingeben, drucken etc, das
Problem begrenzt sich auf perl (Tk) und python (tkinter).

Vielleicht ist ja ein perl-Hacker im Forum? hoho

Danke & Grüße

oojika

Möööööhp...

oojika }:-)
21.06.11 20:43
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
system


Beiträge: 85
Beitrag #2
RE: input method funktioniert nicht mit perl/Tk
Früher war es so, dass Tk weder auf Mac noch auf Linux spezielle Eingabemethoden unterstützt hat und es sah auch nicht so aus, als würde sich da irgendjemand drum kümmern. Weiß nicht, ob sich da bei den aktuellen Linux-Versionen etwas geändert hat, aber da die aktuelle Mac-Version von Tk immer noch auf X11 aufsetzt und man darüber die Cocoa-Eingabemethoden gar nicht ansprechen kann, wird sich da sicherlich nichts getan haben. Ich würde es einfach mit einem anderen Toolkit probieren. Bei QT funktioniert die Eingabe sowohl unter Mac als auch Linux wunderbar.
21.06.11 22:24
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
frostschutz
Technik

Beiträge: 1.783
Beitrag #3
RE: input method funktioniert nicht mit perl/Tk
Die Japanisch-Eingabe bei deinem Beispielprogramm funktioniert bei mir unter Linux. Ich bin allerdings vor einiger Zeit von scim auf ibus umgestiegen. Da scim sich bei mir mit dem neuen Firefox nicht vertragen hat und ich das Problem nicht direkt ausfindig machen konnte. Mit ibus funktioniert die Eingabe nun quasi überall und da das auch Anthy verwendet, ist es abgesehen von kleinen optischen Unterschieden, nicht schlechter als scim. Auch die Tastenkombinationen sind gleich (oder konfigurierbar) so daß man sich nicht umgewöhnen braucht.

Lernen ist wie Rudern gegen den Strom. Sobald man aufhört, treibt man zurück.
21.06.11 23:39
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
oojika


Beiträge: 172
Beitrag #4
RE: input method funktioniert nicht mit perl/Tk
Hallo zusammen,

danke für die Tips mit QT und einer anderen input method, ich werde es
mal ausprobieren. Wenn die unicode-Eingabe in perl/Tk auf bestimmten
Plattformen und mit bestimmten input methods nicht supportet ist,
dann könnten sie es wenigstens in die Doku schreiben... hoho

Ich habe auch noch was gefunden, was das Problem auf Linux aber nicht
behoben hat:

$top->useinputmethods(1);

Allerdings gibt es dazu ein Äquivalent für python/tkinter, und das
funktioniert schon mal auf meiner Linux-Kiste, so daß das für mich auch
noch eine Option ist.

Vielen Dank!

PS: Im xterm auf mac, das ja auch über X11 läuft, kann ich kotoeri
benutzen, d.h. hier gibt es wohl eine Schnittstelle zum mac-System.

Möööööhp...

oojika }:-)
(Dieser Beitrag wurde zuletzt bearbeitet: 22.06.11 09:39 von oojika.)
22.06.11 09:34
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
oojika


Beiträge: 172
Beitrag #5
Solution: input method funktioniert nicht mit perl/Tk
Hallo zusammen,

jetzt funktioniert die japanische Eingabe mit perl/Tk!!!
Euere Tips haben mich auf den richtigen Weg gebracht... hoho

1) Ich verwende statt anthy (Linux) bzw. kotoeri (mac) jetzt kinput2
(zusammen mit canna)

2) Die Umgebungsvariable XMODIFIERS muß auf die Input Method gesetzt werden:

XMODIFIERS="@im=kinput2"


3) Man muß entweder die locale-Variablen (LANG, LC_ALL, LC*) auf
japanisch setzen (ja_JP.UTF-8) oder de_DE.UTF-8 in die Konfigurationsdatei
'Kinput2' eintragen (das habe ich gemacht).

4) Man muß in die Datei ~/.Xdefaults


*inputMethod: kinput2
*sendbackKeyPress: false

eintragen.

5) Natürlich muß man die beiden Server canna und kinput2 vorher
starten, z.B.:

cannaserver -syslog
kinput2 -canna -kinput [-font ... -kanjifont ... -kanafont...] &


6) Einschalten tut man den japanischen Input mit

shift-Leertaste

im Texteingabefeld.

Auf diese Weise funktioniert es auf mac und linux mit python (tkinter)
und perl/Tk!

Vielen Dank nochmal!


PS: Eine Kleinigkeit stört mich noch: Wenn man den japanischen
Text eingibt, werden die kana-Eingaben in einer winzigen Schrift
angezeigt, unabhängig davon, welchen Font man beim Aufruf von kinput2
bzw. in der config-Datei (dort gibt es noch eine Default-Schriftangabe)
bzw. im perl/python-Programm angegeben hat. Weiß jemand, woran
das liegt?

Möööööhp...

oojika }:-)
26.06.11 08:19
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
input method funktioniert nicht mit perl/Tk
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
Computer nicht ausschalten Yano 3 1.844 15.11.24 14:33
Letzter Beitrag: Nicky343
IME zeigt Kanji nicht an Nemi 23 9.123 12.10.17 12:56
Letzter Beitrag: Nia
Linux ibus anthy mouzc Zirkumflex funktioniert nicht yoshi030 5 3.421 14.09.14 14:07
Letzter Beitrag: Hellstorm
Windows-Programme behalten ihre Tastatur nicht mehr Yano 0 1.833 12.05.14 11:36
Letzter Beitrag: Yano
IME Start mit Input Mode Hiragana samidare 6 6.907 24.04.10 06:55
Letzter Beitrag: yamaneko