diff --git a/po/ko.po b/po/ko.po index fb200dd7..76ea202d 100644 --- a/ po/ko.po+++ b/ po/ko.po@@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: urpmi 3.3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-03-26 21:20+0100\n" +"POT-Creation-Date: 2014-05-11 21:49+0200\n" "PO-Revision-Date: 2007-09-26 20:03+0200\n" "Last-Translator: Jaegeum Choe <baedaron@hananet.net>\n" "Language-Team: Korean <baedaron@hananet.net>\n" @@ -29,64 +29,64 @@ msgstr "%s 설치 중...\n" msgid "Packages installation" msgstr "패키지 설치 중..." -#: ../gurpm/RPMProgressDialog.pm:125 +#: ../gurpm/RPMProgressDialog.pm:128 #, c-format msgid "Please wait..." msgstr "잠시만 기다려 주십시오..." -#: ../gurpm/RPMProgressDialog.pm:287 +#: ../gurpm/RPMProgressDialog.pm:290 #, fuzzy, c-format msgid "Verifying package signatures..." msgstr "다음 팩키지들이 설치될 것입니다." -#: ../gurpm/RPMProgressDialog.pm:306 ../urpm/install.pm:107 +#: ../gurpm/RPMProgressDialog.pm:309 ../urpm/install.pm:107 #, fuzzy, c-format msgid "Preparing..." msgstr "부트 로더 준비중" -#: ../gurpm/RPMProgressDialog.pm:310 +#: ../gurpm/RPMProgressDialog.pm:313 #, fuzzy, c-format msgid "Removing package `%s' ..." msgstr "%s 패키지 설치중" -#: ../gurpm/RPMProgressDialog.pm:314 +#: ../gurpm/RPMProgressDialog.pm:316 #, c-format msgid "Installing package `%s' (%s/%s)..." msgstr "패키지 설치 중: [%s] (%s/%s)..." -#: ../gurpm/RPMProgressDialog.pm:342 +#: ../gurpm/RPMProgressDialog.pm:345 #, fuzzy, c-format msgid "Downloading package `%s'..." msgstr "패키지 내려받는 중: [%s] (%s/%s)..." -#: ../gurpm/RPMProgressDialog.pm:346 +#: ../gurpm/RPMProgressDialog.pm:349 #, c-format msgid "Cancel" msgstr "취소" -#: ../gurpm/RPMProgressDialog.pm:356 ../urpm.pm:453 ../urpm/download.pm:857 -#: ../urpm/get_pkgs.pm:278 ../urpm/media.pm:1078 ../urpm/media.pm:1604 -#: ../urpm/media.pm:1755 +#: ../gurpm/RPMProgressDialog.pm:359 ../urpm.pm:453 ../urpm/download.pm:857 +#: ../urpm/get_pkgs.pm:278 ../urpm/media.pm:1126 ../urpm/media.pm:1647 +#: ../urpm/media.pm:1798 #, fuzzy, c-format msgid "...retrieving failed: %s" msgstr "FAT크기조정 실패: %s" -#: ../gurpmi:38 +#: ../gurpmi:45 #, fuzzy, c-format msgid "RPM installation" msgstr "설치 준비중입니다" -#: ../gurpmi:52 +#: ../gurpmi:59 #, c-format msgid "Error: unable to find file %s, will cancel operation" msgstr "Error: %s 파일을 찾을 수 없습니다. 작업을 취소합니다. " -#: ../gurpmi:53 ../gurpmi2:167 ../gurpmi2:197 +#: ../gurpmi:60 ../gurpmi2:169 ../gurpmi2:199 #, c-format msgid "_Ok" msgstr "확인 (_O)" -#: ../gurpmi:73 +#: ../gurpmi:80 #, c-format msgid "" "You have selected a source package:\n" @@ -106,7 +106,7 @@ msgstr "" "\n" "어떻하시겠습니까?" -#: ../gurpmi:81 ../gurpmi:92 +#: ../gurpmi:88 ../gurpmi:99 #, c-format msgid "" "You are about to install the following software packages on your computer:\n" @@ -121,7 +121,7 @@ msgstr "" "\n" "계속 진행하시겠습니까?" -#: ../gurpmi:87 +#: ../gurpmi:94 #, c-format msgid "" "You are about to install the following software package on your computer:\n" @@ -136,22 +136,22 @@ msgstr "" "\n" "추후를 위해서 패키지를 저장할 것을 권장합니다. 선택하십시요." -#: ../gurpmi:105 +#: ../gurpmi:112 #, c-format msgid "_Install" msgstr "설치(_I)" -#: ../gurpmi:106 +#: ../gurpmi:113 #, c-format msgid "_Save" msgstr "저장(_S)" -#: ../gurpmi:107 ../gurpmi2:167 +#: ../gurpmi:114 ../gurpmi2:169 #, c-format msgid "_Cancel" msgstr "취소 (_C)" -#: ../gurpmi:115 +#: ../gurpmi:122 #, fuzzy, c-format msgid "Choose location to save file" msgstr "파일 선택" @@ -259,42 +259,42 @@ msgstr "" "%s\n" "계속 진행하시겠습니까?" -#: ../gurpmi2:126 +#: ../gurpmi2:115 #, c-format msgid "Warning" msgstr "경고" -#: ../gurpmi2:126 +#: ../gurpmi2:115 #, c-format msgid "Ok" msgstr "확인" -#: ../gurpmi2:163 +#: ../gurpmi2:165 #, fuzzy, c-format msgid " (to upgrade)" msgstr "업그레이드" -#: ../gurpmi2:164 +#: ../gurpmi2:166 #, fuzzy, c-format msgid " (to install)" msgstr "설치 종료" -#: ../gurpmi2:167 +#: ../gurpmi2:169 #, c-format msgid "Package choice" msgstr "패키지 선택" -#: ../gurpmi2:168 +#: ../gurpmi2:170 #, c-format msgid "One of the following packages is needed:" msgstr "다음 패키지들 중 하나가 필요합니다:" -#: ../gurpmi2:198 +#: ../gurpmi2:200 #, c-format msgid "_Abort" msgstr "중단(_A)" -#: ../gurpmi2:233 +#: ../gurpmi2:235 #, fuzzy, c-format msgid "" "The following packages have to be removed for others to be upgraded:\n" @@ -304,62 +304,67 @@ msgstr "" "다음 패키지들이 제거될 것입니다.%s\n" "계속 설치를 진행하시겠습니까?" -#: ../gurpmi2:244 ../urpmi:615 +#: ../gurpmi2:246 ../urpmi:615 #, c-format msgid "%s of additional disk space will be used." msgstr "" -#: ../gurpmi2:245 ../urpmi:616 +#: ../gurpmi2:247 ../urpmi:616 #, c-format msgid "%s of disk space will be freed." msgstr "" -#: ../gurpmi2:246 ../urpmi:617 +#: ../gurpmi2:248 ../urpmi:617 #, c-format msgid "%s of packages will be retrieved." msgstr "" -#: ../gurpmi2:247 ../urpmi:618 +#: ../gurpmi2:249 ../urpmi:618 #, c-format msgid "Proceed with the installation of one package?" msgid_plural "Proceed with the installation of the %d packages?" msgstr[0] "" -#: ../gurpmi2:253 ../urpmi:606 +#: ../gurpmi2:255 ../urpmi:606 #, c-format msgid ""package interactive_gtk;
use diagnostics;
use strict;
use vars qw(@ISA);
@ISA = qw(interactive);
use interactive;
use common qw(:common :functional);
use my_gtk qw(:helpers :wrappers);
1;
sub new {
$::windowheight ||= 400 if $::isStandalone;
goto &interactive::new;
}
sub suspend { my ($o) = @_; $o->{suspended} = common::setVirtual(1) }
sub resume { my ($o) = @_; common::setVirtual(delete $o->{suspended}) }
sub exit {
c::_exit($_[0]) #- workaround
}
sub ask_from_listW {
my ($o, $title, $messages, $l, $def) = @_;
ask_from_list_with_helpW($o, $title, $messages, $l, undef, $def);
}
sub ask_from_list_with_helpW {
my ($o, $title, $messages, $l, $help, $def) = @_;
my $r;
my $w = my_gtk->new(first(deref($title)), %$o);
$w->{retval} = $def || $l->[0]; #- nearly especially for the X test case (see timeout in Xconfigurator.pm)
if (@$l < 5) {
my $defW;
my $tips = new Gtk::Tooltips;
my $f = sub { $w->{retval} = $_[1]; Gtk->main_quit };
gtkadd($w->{window},
gtkpack(create_box_with_title($w, @$messages),
gtkadd(@$l < 3 && sum(map { length $_ } @$l) < 60 ? create_hbox() : create_vbox(),
map {
my $b = new Gtk::Button($_);
$tips->set_tip($b, $help->{$_}) if $help && $help->{$_};
$b->signal_connect(clicked => [ $f, $_ ]);
$_ eq $def and $defW = $b;
$b;
} @$l),
),
);
$defW->grab_focus if $defW;
$w->{rwindow}->set_position('center') if $::isStandalone;
$r = $w->main;
} else {
#- use ask_from_list_with_help only when needed, as key bindings are
#- dropped by List (CList does not seems to accepts Tooltips).
$help ? $w->_ask_from_list_with_help($title, $messages, $l, $help, $def) :
$w->_ask_from_list($title, $messages, $l, $def);
$r = $w->main;
}
$r or die "ask_from_list cancel";
}
sub ask_from_treelistW {
my ($o, $title, $messages, $separator, $l, $def) = @_;
my $sep = quotemeta $separator;
my $w = my_gtk->new($title);
my $tree = Gtk::CTree->new(1, 0);
my %wtree;
my $parent; $parent = sub {
if (my $w = $wtree{"$_[0]$separator"}) { return $w }
my $s;
foreach (split $sep, $_[0]) {
$wtree{"$s$_$separator"} ||=
$tree->insert_node($s ? $parent->($s) : undef, undef, [$_], 5, (undef) x 4, 0, 0);
$s .= "$_$separator";
}
$wtree{$s};
};
my ($root, $leaf, $wdef, $ndef);
foreach (@$l) {
($root, $leaf) = /(.*)$sep(.+)/ or ($root, $leaf) = ('', $_);
my $node = $tree->insert_node($parent->($root), undef, [$leaf], 5, (undef) x 4, 1, 0);
if ($def eq $_) {
$wdef = $node;
my $s; $tree->expand($wtree{$s .= "$_$separator"}) foreach split $sep, $root;
foreach my $nb (1 .. @$l) {
if ($tree->node_nth($nb) == $node) {
$tree->set_focus_row($ndef = $nb);
last;
}
}
}
}
undef %wtree;
my $curr;
my $leave = sub {
$curr->row->is_leaf or return;
my @l; for (; $curr; $curr = $curr->row->parent) {
unshift @l, first $tree->node_get_pixtext($curr, 0);
}
$w->{retval} = join $separator, @l;
Gtk->main_quit;
};
$w->{ok_clicked} = $leave;
$w->{cancel_clicked} = sub { $w->destroy; die "ask_from_list cancel" }; #- make sure windows doesn't live any more.
gtkadd($w->{window},
gtkpack($w->create_box_with_title(@$messages),
gtkpack_(new Gtk::VBox(0,7),
1, gtkset_usize(createScrolledWindow($tree), 300, min(350, $::windowheight - 60)),
0, $w->create_okcancel)));
$tree->set_column_auto_resize(0, 1);
$tree->set_selection_mode('browse');
$tree->signal_connect(tree_select_row => sub { $curr = $_[1]; });
$tree->signal_connect(button_press_event => sub { &$leave if $_[1]{type} =~ /^2/ });
$tree->signal_connect(key_press_event => sub {
my ($w, $e) = @_;
my $c = chr($e->{keyval} & 0xff);
$curr or return;
if ($e->{keyval} >= 0x100 ? $c eq "\r" || $c eq "\x8d" : $c eq ' ') {
if ($curr->row->is_leaf) { &$leave }
else { $tree->toggle_expansion($curr) }
}
1;
});
$tree->grab_focus;
$tree->set_row_height($tree->style->font->ascent + $tree->style->font->descent + 1);
$w->{rwindow}->show;
if ($wdef) {
$tree->select($wdef);
$tree->node_moveto($wdef, 0, 0.5, 0);
}
$w->main or die "ask_from_list cancel";
}
sub ask_many_from_list_with_help_refW {
my ($o, $title, $messages, @L) = @_;
my $w = my_gtk->new('', %$o);
my $tips = new Gtk::Tooltips;
my @boxes = map {
my $l = $_;
my $box = gtkpack(new Gtk::VBox(0,0),
map_index {
my $i = $::i;
my $o = Gtk::CheckButton->new($_);
$tips->set_tip($o, $l->[1][$i]) if $l->[1][$i];
$o->set_active(${$l->[2][$i]});
$o->signal_connect(clicked => sub { invbool $l->[2][$i] });
$o;
} @{$l->[0]});
@{$l->[0]} > 11 ? gtkset_usize(createScrolledWindow($box), 0, 250) : $box;
} @L;
gtkadd($w->{window},
gtkpack_(create_box_with_title($w, @$messages),
(map {; 1, $_ } @boxes),
0, $w->create_okcancel,
)
);
$w->{ok}->grab_focus;
$w->main;
}
sub ask_from_entries_refW {
my ($o, $title, $messages, $l, $val, %hcallback) = @_;
my ($title_, @okcancel) = deref($title);
my $ignore = 0; #-to handle recursivity
my $w = my_gtk->new($title_, %$o);
$w->sync; # for XPM's creation
my $set_icon = sub {
my ($i, $button) = @_;
gtkdestroy($i->{icon});
my $f = $i->{icon2f}->(${$i->{val}});
$i->{icon} = -e $f ?
new Gtk::Pixmap(gtkcreate_xpm($w->{window}, $f)) :
new Gtk::Label(translate(${$i->{val}}));
$button->add($i->{icon});
$i->{icon}->show;
};
#-the widgets
my @widgets = map {
my $i = $_;
$i->{type} = "iconlist" if $i->{type} eq "list" && $i->{not_edit} && $i->{icon2f};
if ($i->{type} eq "list") {
my $w = new Gtk::Combo;
$w->set_use_arrows_always(1);
$w->entry->set_editable(!$i->{not_edit});
$w->set_popdown_strings(@{$i->{list}});
$w->disable_activate;
$w;
} elsif ($i->{type} eq "iconlist") {
my $w = new Gtk::Button;
$w->signal_connect(clicked => sub {
${$i->{val}} = next_val_in_array(${$i->{val}}, $i->{list});
$set_icon->($i, $w);
});
$set_icon->($i, $w);
gtkpack_(new Gtk::HBox(0,10), 1, new Gtk::HBox(0,0), 0, $w, 1, new Gtk::HBox(0,0), );
} elsif ($i->{type} eq "bool") {
my $w = Gtk::CheckButton->new($i->{text});
$w->set_active(${$i->{val}});
$w->signal_connect(clicked => sub { $ignore or invbool \${$i->{val}} });
$w;
} elsif ($i->{type} eq "range") {
my $adj = create_adjustment(${$i->{val}}, $i->{min}, $i->{max});
$adj->signal_connect(value_changed => sub { ${$i->{val}} = $adj->get_value });
my $w = new Gtk::HScale($adj);
$w->set_digits(0);
$w;
} else {
new Gtk::Entry;
}
} @{$val};
my $ok = $w->create_okcancel(@okcancel);
sub widget {
my ($w, $ref) = @_;
($ref->{type} eq "list" && @{$ref->{list}}) ? $w->entry : $w
}
my @updates = mapn {
my ($w, $ref) = @_;
sub {
$ref->{type} =~ /bool|range|iconlist/ and return;
${$ref->{val}} = widget($w, $ref)->get_text;
};
} \@widgets, $val;
my @updates_inv = mapn {
my ($w, $ref) = @_;
sub {
$ref->{type} =~ /iconlist/ and return;
$ref->{type} eq "bool" ?
$w->set_active(${$ref->{val}}) :
widget($w, $ref)->set_text(${$ref->{val}})
};
} \@widgets, $val;
for (my $i = 0; $i < @$l; $i++) {
my $ind = $i; #-cos lexical bindings pb !!
my $widget = widget($widgets[$i], $val->[$i]);
my $changed_callback = sub {
return if $ignore; #-handle recursive deadlock
&{$updates[$ind]};
if ($hcallback{changed}) {
&{$hcallback{changed}}($ind);
#update all the value
$ignore = 1;
&$_ foreach @updates_inv;
$ignore = 0;
};
};
my $may_go_to_next = sub {
my ($W, $e) = @_;
if (($e->{keyval} & 0x7f) == 0xd) {
$W->signal_emit_stop("key_press_event");
if ($ind == $#$l) {
@$l == 1 ? $w->{ok}->clicked : $w->{ok}->grab_focus;
} else {
widget($widgets[$ind+1],$val->[$ind+1])->grab_focus;
}
}
};
if ($hcallback{focus_out}) {
my $focusout_callback = sub {
return if $ignore;
&{$hcallback{focus_out}}($ind);
#update all the value
$ignore = 1;
&$_ foreach @updates_inv;
$ignore = 0;
};
$widget->signal_connect(focus_out_event => $focusout_callback);
}
if (ref $widget eq "Gtk::HScale") {
$widget->signal_connect(key_press_event => $may_go_to_next);
}
if (ref $widget eq "Gtk::Entry") {
$widget->signal_connect(changed => $changed_callback);
$widget->signal_connect(key_press_event => $may_go_to_next);
$widget->set_text(${$val->[$i]{val}});
$widget->set_visibility(0) if $val->[$i]{hidden};
}
&{$updates[$i]};
}
my @entry_list = mapn { [($_[0], $_[1])]} $l, \@widgets;
gtkadd($w->{window},
gtkpack(
create_box_with_title($w, @$messages),
create_packtable({}, @entry_list),
$ok
));
widget($widgets[0],$val->[0])->grab_focus();
if ($hcallback{complete}) {
my $callback = sub {
my ($error, $focus) = &{$hcallback{complete}};
#-update all the value
$ignore = 1;
foreach (@updates_inv) { &{$_};}
$ignore = 0;
if ($error) {
$focus ||= 0;
widget($widgets[$focus], $val->[$focus])->grab_focus();
} else {
return 1;
}
};
$w->main($callback);
} else {
$w->main();
}
}
sub wait_messageW($$$) {
my ($o, $title, $messages) = @_;
my $w = my_gtk->new($title, %$o, grab => 1);
gtkadd($w->{window}, my $hbox = new Gtk::HBox(0,0));
$hbox->pack_start(my $box = new Gtk::VBox(0,0), 1, 1, 10);
$box->pack_start($_, 1, 1, 4) foreach my @l = map { new Gtk::Label($_) } @$messages;
($w->{wait_messageW} = $l[$#l])->signal_connect(expose_event => sub { $w->{displayed} = 1 });
$w->{rwindow}->set_position('center') if $::isStandalone;
$w->{window}->show_all;
$w->sync until $w->{displayed};
$w;
}
sub wait_message_nextW {
my ($o, $messages, $w) = @_;
my $msg = join "\n", @$messages;
return if $msg eq $w->{wait_messageW}->get; #- needed otherwise no expose_event :(
$w->{displayed} = 0;
$w->{wait_messageW}->set($msg);
$w->flush until $w->{displayed};
}
sub wait_message_endW {
my ($o, $w) = @_;
$w->destroy;
}
sub kill {
my ($o) = @_;
$o->{before_killing} ||= 0;
while (my $e = shift @tempory::objects) { $e->destroy }
while (@interactive::objects > $o->{before_killing}) {
my $w = pop @interactive::objects;
$w->destroy;
}
$o->{before_killing} = @interactive::objects;
}
|