Thread Alle Labels neu generieren
(9 answers)
Opened by DrMaex at 2012-06-26 19:03 2012-06-28T21:54:59 pktm Mir ist nicht ganz klar, wie dieser Hash aussehen sollte. Meintest du die deutschen Texte als Keys? Dann könntest du die Elemente deines deutschen Arrays als Textvariable benutzen. Ich hatte eher an eine Variable pro lokalisiertem Widget gedacht. Wird wohl am Ende ziemlich auf dasselbe herauslaufen. Ich hab's mal auf Hash erweitert, sieht jetzt so aus: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ........ my $lang = 'de'; # default-Sprache my %widgetinfo; my @allwidgets; ........ my $mybutton; my $btntxt = $map->{$lang}->{btn_click_me}; $mybutton = $mw->Button( -textvariable => \$btntxt, )->pack(); $widgetinfo{$mybutton} = [\$btntxt, 'btn_click_me']; push @allwidgets, $mybutton; ........ sub update_window { foreach my $mybutton (@allwidgets) { my ($txtvar_ref, $txtname) = @{$widgetinfo{$mybutton}}; $$txtvar_ref = $map->{$lang}->{$txtname}; } } # /update_window Den anonymen Array habe ich nur eingeführt, um die Verwendung von cget() in sub update_window zu vermeiden. Gruß
GUIfreund |