summaryrefslogtreecommitdiffstats
path: root/perl-install/install_steps_interactive.pm
blob: a0c9c90838eca4f30238efc2d9a75b905c99122b (plain)
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
package install_steps_interactive; # $Id$


use diagnostics;
use strict;
use vars qw(@ISA $new_bootstrap);

@ISA = qw(install_steps);


#-######################################################################################
#- misc imports
#-######################################################################################
use common;
use partition_table qw(:types);
use partition_table::raw;
use install_steps;
use install_interactive;
use install_any;
use install_messages;
use detect_devices;
use run_program;
use devices;
use fsedit;
use loopback;
use mouse;
use modules;
use modules::interactive;
use lang;
use keyboard;
use any;
use fs;
use log;

#-######################################################################################
#- In/Out Steps Functions
#-######################################################################################
sub errorInStep {
    my ($o, $err) = @_;
    $o->ask_warn(N("Error"), [ N("An error occurred"), formatError($err) ]);
}

sub kill_action {
    my ($o) = @_;
    $o->kill;
}

#-######################################################################################
#- Steps Functions
#-######################################################################################
#------------------------------------------------------------------------------
sub selectLanguage {
    my ($o) = @_;

    $o->{locale}{lang} = any::selectLanguage($o, $o->{locale}{lang}, $o->{locale}{langs} ||= {});
    install_steps::selectLanguage($o);

    if ($o->isa('interactive::gtk')) {
	$o->ask_warn('', formatAlaTeX(
"If you see this message it is because you chose a language for
which DrakX does not include a translation yet; however the fact
that it is listed means there is some support for it anyway.

That is, once GNU/Linux will be installed, you will be able to at
least read and write in that language; and possibly more (various
fonts, spell checkers, various programs translated etc. that
varies from language to language).")) if $o->{locale}{lang} !~ /^en/ && !lang::load_mo();
    } else {
	#- no need to have this in po since it is never translated
	$o->ask_warn('', "The characters of your language can't be displayed in console,
so the messages will be displayed in english during installation") if $ENV{LANGUAGE} eq 'C';
    }
}
    
sub acceptLicense {
    my ($o) = @_;

    my $r = $::testing ? 'Accept' : 'Refuse';

    ($::recovery ?
     $o->ask_yesorno('', N("Do you want to recover your system?"), 0) :
     $o->ask_from_({ title => N("License agreement"), 
		     cancel => N("Quit"),
		     messages => formatAlaTeX(install_messages::main_license() . "\n\n\n" . install_messages::warning_about_patents()),
		     interactive_help_id => 'acceptLicense',
		     callbacks => { ok_disabled => sub { $r eq 'Refuse' } },
		   },
		   [ { list => [ N_("Accept"), N_("Refuse") ], val => \$r, type => 'list', format => sub { translate($_[0]) } } ]))
      or do {
	  install_any::ejectCdrom();
	  $o->exit;
      };
}

#------------------------------------------------------------------------------
sub selectKeyboard {
    my ($o, $clicked) = @_;

    my $from_usb = keyboard::from_usb();
    my $l = keyboard::lang2keyboards(lang::langs($o->{locale}{langs}));

    if ($::expert || $clicked || !($from_usb || @$l && $l->[0][1] >= 90) || listlength(lang::langs($o->{locale}{langs})) > 1) {
	add2hash($o->{keyboard}, $from_usb);
	my @best = uniq($from_usb ? $from_usb->{KEYBOARD} : (), (map { $_->[0] } @$l), 'us_intl');

	my $format = sub { translate(keyboard::KEYBOARD2text($_[0])) };
	my $other;
	my $ext_keyboard = my $KEYBOARD = $o->{keyboard}{KEYBOARD};
	$o->ask_from_(
		      { title => N("Keyboard"), 
			messages => N("Please choose your keyboard layout."),
			interactive_help_id => 'selectKeyboard',
			advanced_messages => N("Here is the full list of available keyboards"),
			advanced_label => N("More"),
			callbacks => { changed => sub { $other = $_[0] == 1 } },
		      },
		      [ if_(@best > 1, { val => \$KEYBOARD, type => 'list', format => $format, sort => 1,
					 list => [ @best ] }),
			{ val => \$ext_keyboard, type => 'list', format => $format,
			  list => [ difference2([ keyboard::KEYBOARDs() ], \@best) ], advanced => @best > 1 }
		      ]);
	$o->{keyboard}{KEYBOARD} = $other ? $ext_keyboard : $KEYBOARD;
	delete $o->{keyboard}{unsafe};
    }
    keyboard::group_toggle_choose($o, $o->{keyboard}) or goto &selectKeyboard;
    install_steps::selectKeyboard($o);
}

#------------------------------------------------------------------------------
sub selectInstallClass {
    my ($o) = @_;

    if (my @l = install_any::find_root_parts($o->{fstab}, $o->{prefix})) {
	log::l("proposing to upgrade partitions " . join(" ", map { $_->{part}{device} } @l));

	my @releases = uniq(map { $_->{release} } @l);
	if (@releases != @l) {
	    #- same release name so adding the device to differentiate them:
	    $_->{release} .= " ($_->{part}{device})" foreach @l;
	}

	my $p;
	$o->ask_from_({ title => N("Install/Upgrade"),
			messages => N("Is this an install or an upgrade?"),
			interactive_help_id => 'selectInstallClass',
		      },
		      [ { val => \$p,
			  list => [ @l, N_("Install") ], 
			  type => 'list',
			  format => sub { ref($_[0]) ? N("Upgrade %s", $_[0]{release}) : translate($_[0]) }
			} ]);
	if (ref $p) {
	    my $part = $p->{part};
	    log::l("choosing to upgrade partition $part->{device}");
	    install_any::use_root_part($o->{all_hds}, $part, $o->{prefix});
	    foreach (grep { $_->{mntpoint} } @{$o->{fstab}}) {
		my ($options, $_unknown) = fs::mount_options_unpack($_);
		$options->{encrypted} or next;
		$o->ask_from_({ focus_first => 1 },
			      [ { label => N("Encryption key for %s", $_->{mntpoint}),
				  hidden => 1, val => \$_->{encrypt_key} } ]);
	    }
	    $o->{isUpgrade} = 1;
	}
    }
}

#------------------------------------------------------------------------------
sub selectMouse {
    my ($o, $force) = @_;

    $force ||= $o->{mouse}{unsafe};

    if ($force) {
	my $prev = $o->{mouse}{type} . '|' . $o->{mouse}{name};

	$o->ask_from_({ messages => N("Please choose your type of mouse."),
			interactive_help_id => 'selectMouse',
		      },
		     [ { list => [ mouse::fullnames() ], separator => '|', val => \$prev, format => sub { join('|', map { translate($_) } split('\|', $_[0])) } } ]);
	$o->{mouse} = mouse::fullname2mouse($prev);
    }

    if ($force && $o->{mouse}{type} eq 'serial') {
	$o->{mouse}{device} = 
	  $o->ask_from_listf_raw({ title => N("Mouse Port"),
				   messages => N("Please choose which serial port your mouse is connected to."),
				   interactive_help_id => 'selectSerialPort',
				 },
			    \&mouse::serial_port2text,
			    [ mouse::serial_ports() ]) or return &selectMouse;
    }
    if (arch() =~ /ppc/ && $o->{mouse}{nbuttons} == 1) {
	#- set a sane default F11/F12
	$o->{mouse}{button2_key} = 87;
	$o->{mouse}{button3_key} = 88;
	$o->ask_from('', N("Buttons emulation"),
		[
		{ label => N("Button 2 Emulation"), val => \$o->{mouse}{button2_key}, list => [ mouse::ppc_one_button_keys() ], format => \&mouse::ppc_one_button_key2text },
		{ label => N("Button 3 Emulation"), val => \$o->{mouse}{button3_key}, list => [ mouse::ppc_one_button_keys() ], format => \&mouse::ppc_one_button_key2text },
		]) or return;
    }
    
    if ($o->{mouse}{device} eq "usbmouse") {
	modules::interactive::load_category($o, 'bus/usb', 1, 1);
	eval { 
	    devices::make("usbmouse");
	    modules::load(qw(hid mousedev usbmouse));
	};
    }

    $o->SUPER::selectMouse;
    1;
}
#------------------------------------------------------------------------------
sub setupSCSI {
    my ($o) = @_;

    if (!$::noauto && arch() =~ /i.86/) {
	if ($o->{pcmcia} ||= !$::testing && c::pcmcia_probe()) {
	    my $w = $o->wait_message(N("PCMCIA"), N("Configuring PCMCIA cards..."));
	    my $results = modules::configure_pcmcia($o->{pcmcia});
	    undef $w;
	    $results and $o->ask_warn('', $results);
	}
    }
    { 
	my $_w = $o->wait_message(N("IDE"), N("Configuring IDE"));
	modules::load(modules::category2modules('disk/cdrom'));
    }
    modules::interactive::load_category($o, 'bus/firewire', 1);

    my $have_non_scsi = detect_devices::hds(); #- at_least_one scsi device if we have no disks
    modules::interactive::load_category($o, 'disk/scsi|hardware_raid|firewire', 1, !$have_non_scsi);
    modules::interactive::load_category($o, 'disk/scsi|hardware_raid|firewire') if !detect_devices::hds(); #- we really want a disk!

    install_interactive::tellAboutProprietaryModules($o);

    install_any::getHds($o, $o);
}

sub ask_mntpoint_s { #- }{}
    my ($o, $fstab) = @_;

    my @fstab = grep { isTrueFS($_) } @$fstab;
    @fstab = grep { isSwap($_) } @$fstab if @fstab == 0;
    @fstab = @$fstab if @fstab == 0;
    die N("No partition available") if @fstab == 0;

    {
	my $_w = $o->wait_message('', N("Scanning partitions to find mount points"));
	install_any::suggest_mount_points($fstab, $o->{prefix}, 'uniq');
	log::l("default mntpoint $_->{mntpoint} $_->{device}") foreach @fstab;
    }
    if (@fstab == 1) {
	$fstab[0]{mntpoint} = '/';
    } else {
	$o->ask_from_({ messages => N("Choose the mount points"),
			interactive_help_id => 'ask_mntpoint_s',
		      },
		      [ map { { label => partition_table::description($_), 
				  val => \$_->{mntpoint},
				    not_edit => 0,
				      list => [ '', fsedit::suggestions_mntpoint(fsedit::empty_all_hds()) ] }
			  } grep { !$_->{real_mntpoint} || common::usingRamdisk() } @fstab ]) or return;
    }
    $o->SUPER::ask_mntpoint_s($fstab);
}

#------------------------------------------------------------------------------
sub doPartitionDisks {
    my ($o) = @_;

    if (arch() =~ /ppc/ && detect_devices::get_mac_generation() =~ /NewWorld/) { #- need to make bootstrap part if NewWorld machine - thx Pixel ;^)
	if (defined $partition_table::mac::bootstrap_part) {
	    #- don't do anything if we've got the bootstrap setup
	    #- otherwise, go ahead and create one somewhere in the drive free space
	} else {
            undef = $partition_table::mac::freepart; #- please "perl -w"
            my $freepart = $partition_table::mac::freepart;
	    if ($freepart && $freepart->{size} >= 1) {	        
		log::l("creating bootstrap partition on drive /dev/$freepart->{hd}{device}, block $freepart->{start}");
		$partition_table::mac::bootstrap_part = $freepart->{part};	
		log::l("bootstrap now at $partition_table::mac::bootstrap_part");
		fsedit::add($freepart->{hd}, { start => $freepart->{start}, size => 1 << 11, type => 0x401, mntpoint => '' }, $o->{all_hds}, { force => 1, primaryOrExtended => 'Primary' });
		$new_bootstrap = 1;    
	    } else {
		$o->ask_warn('', N("No free space for 1MB bootstrap! Install will continue, but to boot your system, you'll need to create the bootstrap partition in DiskDrake"));
	    }
	}
    }

    if (!$o->{isUpgrade}) {
        install_interactive::partitionWizard($o);
    }
}

#------------------------------------------------------------------------------
sub rebootNeeded {
    my ($o) = @_;
    $o->ask_warn('', N("You need to reboot for the partition table modifications to take place"));

    install_steps::rebootNeeded($o);
}

#------------------------------------------------------------------------------
sub choosePartitionsToFormat {
    my ($o, $fstab) = @_;

    $o->SUPER::choosePartitionsToFormat($fstab);

    my @l = grep { !$_->{isMounted} && $_->{mntpoint} && 
		   (!isSwap($_) || $::expert) &&
		   (!isFat_or_NTFS($_) || $_->{notFormatted} || $::expert) &&
		   (!isOtherAvailableFS($_) || $::expert || $_->{toFormat})
	       } @$fstab;
    $_->{toFormat} = 1 foreach grep { isSwap($_) && !$::expert } @$fstab;

    return if @l == 0 || !$::expert && every { $_->{toFormat} } @l;

    #- keep it temporary until the guy has accepted
    $_->{toFormatTmp} = $_->{toFormat} || $_->{toFormatUnsure} foreach @l;

    $o->ask_from_(
        { messages => N("Choose the partitions you want to format"),
	  interactive_help_id => 'formatPartitions',
          advanced_messages => N("Check bad blocks?"),
        },
        [ map { 
	    my $e = $_;
	    ({
	      text => partition_table::description($e), type => 'bool',
	      val => \$e->{toFormatTmp}
	     }, if_(!isLoopback($_) && !isThisFs("reiserfs", $_) && !isThisFs("xfs", $_) && !isThisFs("jfs", $_), {
	      text => partition_table::description($e), type => 'bool', advanced => 1, 
	      disabled => sub { !$e->{toFormatTmp} },
	      val => \$e->{toFormatCheck}
        })) } @l ]
    ) or die 'already displayed';
    #- ok now we can really set toFormat
    foreach (@l) {
	$_->{toFormat} = delete $_->{toFormatTmp};
	$_->{isFormatted} = 0;
    }
}


sub formatMountPartitions {
    my ($o, $_fstab) = @_;
    my $w;
    catch_cdie {
        fs::formatMount_all($o->{all_hds}{raids}, $o->{fstab}, $o->{prefix}, sub {
        	my ($msg) = @_;
        	$w ||= $o->wait_message('', $msg);
        	$w->set($msg);
        });
    } sub { 
	$@ =~ /fsck failed on (\S+)/ or return;
	$o->ask_yesorno('', N("Failed to check filesystem %s. Do you want to repair the errors? (beware, you can lose data)", $1), 1);
    };
    undef $w; #- help perl (otherwise wait_message stays forever in newt)
    die N("Not enough swap space to fulfill installation, please add some") if availableMemory() < 40 * 1024;
}

#------------------------------------------------------------------------------
sub setPackages {
    my ($o, $rebuild_needed) = @_;

    my $w = $o->wait_message('', $rebuild_needed ? N("Looking for available packages and rebuilding rpm database...") :
			     N("Looking for available packages..."));
    install_any::setPackages($o, $rebuild_needed);

    $w->set(N("Looking at packages already installed..."));
    pkgs::selectPackagesAlreadyInstalled($o->{packages}, $o->{prefix});

    if ($rebuild_needed) {
	$w->set(N("Finding packages to upgrade..."));
	pkgs::selectPackagesToUpgrade($o->{packages}, $o->{prefix});
    }
}
#------------------------------------------------------------------------------
sub choosePackages {
    my ($o, $packages, $compssUsers, $_first_time) = @_;

    #- this is done at the very beginning to take into account
    #- selection of CD by user if using a cdrom.
    $o->chooseCD($packages) if $o->{method} eq 'cdrom' && !$::oem;

    my $w = $o->wait_message('', N("Looking for available packages..."));
    my $availableC = &install_steps::choosePackages;
    my $individual;

    require pkgs;

    my $min_size = pkgs::selectedSize($packages);
    unless ($min_size < $availableC) {
	undef $w;
	$o->ask_warn('', N("Your system does not have enough space left for installation or upgrade (%d > %d)",
			   $min_size, $availableC));
	install_steps::rebootNeeded($o);
    }

    my $min_mark = 4;

    my $b = pkgs::saveSelected($packages);
    my $_level = pkgs::setSelectedFromCompssList($packages, { map { $_ => 1 } map { @{$compssUsers->{$_}{flags}} } @{$o->{compssUsersSorted}} }, $min_mark, 0);
    my $max_size = pkgs::selectedSize($packages) + 1; #- avoid division by zero.
    log::l("max size (level $min_mark) is : " . formatXiB($max_size));
    pkgs::restoreSelected($b);
    undef $w;

  chooseGroups:
    $o->chooseGroups($packages, $compssUsers, $min_mark, \$individual, $max_size) if !$o->{isUpgrade} && !$::corporate && $o->{meta_class} ne 'desktop';

    ($o->{packages_}{ind}) =
      pkgs::setSelectedFromCompssList($packages, $o->{compssUsersChoice}, $min_mark, $availableC);

    $o->choosePackagesTree($packages) or goto chooseGroups if $individual;

    install_any::warnAboutRemovedPackages($o, $o->{packages});
    install_any::warnAboutNaughtyServers($o) or goto chooseGroups if !$o->{isUpgrade};
}

sub choosePackagesTree {
    my ($o, $packages, $o_limit_to_medium) = @_;

    $o->ask_many_from_list('', N("Choose the packages you want to install"),
			   {
			    list => [ grep { !$o_limit_to_medium || pkgs::packageMedium($packages, $_) == $o_limit_to_medium }
				      @{$packages->{depslist}} ],
			    value => \&URPM::Package::flag_selected,
			    label => \&URPM::Package::name,
			    sort => 1,
			   });
}
sub loadSavePackagesOnFloppy {
    my ($o, $packages) = @_;
    $o->ask_from('', 
N("Please choose load or save package selection on floppy.
The format is the same as auto_install generated floppies."),
		 [ { val => \ (my $choice), list => [ N_("Load from floppy"), N_("Save on floppy") ], format => \&translate, type => 'list' } ]) or return;

    if ($choice eq 'Load from floppy') {
	while (1) {
	    my $w = $o->wait_message(N("Package selection"), N("Loading from floppy"));
	    log::l("load package selection from floppy");
	    my $O = eval { install_any::loadO(undef, 'floppy') };
	    if ($@) {
		undef $w;	#- close wait message.
		$o->ask_okcancel('', N("Insert a floppy containing package selection"))
		  or return;
	    } else {
		install_any::unselectMostPackages($o);
		foreach (@{$O->{default_packages} || []}) {
		    my $pkg = pkgs::packageByName($packages, $_);
		    pkgs::selectPackage($packages, $pkg) if $pkg;
		}
		return 1;
	    }
	}
    } else {
	log::l("save package selection to floppy");
	install_any::g_default_packages($o, 'quiet');
    }
}
sub chooseGroups {
    my ($o, $packages, $compssUsers, $min_level, $individual, $max_size) = @_;

    #- for all groups available, determine package which belongs to each one.
    #- this will enable getting the size of each groups more quickly due to
    #- limitation of current implementation.
    #- use an empty state for each one (no flag update should be propagated).
    
#- OLD VERSION
    my $b = pkgs::saveSelected($packages);
    install_any::unselectMostPackages($o);
    pkgs::setSelectedFromCompssList($packages, {}, $min_level, $max_size);
    my $system_size = pkgs::selectedSize($packages);
    my ($sizes, $pkgs) = pkgs::computeGroupSize($packages, $min_level);
    pkgs::restoreSelected($b);
    log::l("system_size: $system_size");

    my @groups = @{$o->{compssUsersSorted}};
    my %stable_flags = grep_each { $::b } %{$o->{compssUsersChoice}};
    delete $stable_flags{$_} foreach map { @{$compssUsers->{$_}{flags}} } @groups;

    my $compute_size = sub {
	my %pkgs;
	my %flags = %stable_flags; @flags{@_} = ();
	my $total_size;
	A: while (my ($k, $size) = each %$sizes) {
	    Or: foreach (split "\t", $k) {
		  foreach (split "&&") {
		      exists $flags{$_} or next Or;
		  }
		  $total_size += $size;
		  $pkgs{$_} = 1 foreach @{$pkgs->{$k}};
		  next A;
	      }
	  }
	log::l("computed size $total_size");
	log::l("chooseGroups: ", join(" ", sort keys %pkgs));

	int $total_size;
    };
    my %val = map {
	$_ => every { $o->{compssUsersChoice}{$_} } @{$compssUsers->{$_}{flags}}
    } @groups;

#    @groups = grep { $size{$_} = round_down($size{$_} / sqr(1024), 10) } @groups; #- don't display the empty or small one (eg: because all packages are below $min_level)
    my ($size, $unselect_all);
    my $available_size = install_any::getAvailableSpace($o) / sqr(1024);
    my $size_to_display = sub { 
	my $lsize = $system_size + $compute_size->(map { @{$compssUsers->{$_}{flags}} } grep { $val{$_} } @groups);

	#- if a profile is deselected, deselect everything (easier than deselecting the profile packages)
	$unselect_all ||= $size > $lsize;
	$size = $lsize;
	N("Total size: %d / %d MB", pkgs::correctSize($size / sqr(1024)), $available_size);
    };

    while (1) {
	if ($available_size < 140) {
	    # too small to choose anything. Defaulting to no group chosen
	    $val{$_} = 0 foreach keys %val;
	    last;
	}

	$o->reallyChooseGroups($size_to_display, $individual, \%val) or return;

	last if $::testing || pkgs::correctSize($size / sqr(1024)) < $available_size;
       
	$o->ask_warn('', N("Selected size is larger than available space"));	
    }

    $o->{compssUsersChoice}{$_} = 0 foreach map { @{$compssUsers->{$_}{flags}} } grep { !$val{$_} } keys %val;
    $o->{compssUsersChoice}{$_} = 1 foreach map { @{$compssUsers->{$_}{flags}} } grep {  $val{$_} } keys %val;

    log::l("compssUsersChoice: " . (!$val{$_} && "not ") . "selected [$_] as [$o->{compssUsers}{$_}{label}]") foreach keys %val;

    #- do not try to deselect package (by default no groups are selected).
    $o->{isUpgrade} or $unselect_all and install_any::unselectMostPackages($o);
    #- if no group have been chosen, ask for using base system only, or no X, or normal.
    if (!$o->{isUpgrade} && !any { $_ } values %val) {
	my $docs = !$o->{excludedocs};	
	my $minimal = !any { $_ } values %{$o->{compssUsersChoice}};

	$o->ask_from(N("Type of install"), 
		     N("You haven't selected any group of packages.
Please choose the minimal installation you want:"),
		     [
		      { val => \$o->{compssUsersChoice}{X}, type => 'bool', text => N("With X"), disabled => sub { $minimal } },
		      { val => \$docs, type => 'bool', text => N("With basic documentation (recommended!)"), disabled => sub { $minimal } },
		      { val => \$minimal, type => 'bool', text => N("Truly minimal install (especially no urpmi)") },
		     ],
		     changed => sub { $o->{compssUsersChoice}{X} = $docs = 0 if $minimal },
	) or return &chooseGroups;

	$o->{excludedocs} = !$docs || $minimal;

	#- reselect according to user selection.
	if ($minimal) {
	    $o->{compssUsersChoice}{$_} = 0 foreach keys %{$o->{compssUsersChoice}};
	} else {
	    my $X = $o->{compssUsersChoice}{X}; #- don't let setDefaultPackages modify this one
	    install_any::setDefaultPackages($o, 'clean');
	    $o->{compssUsersChoice}{X} = $X;
	}
	install_any::unselectMostPackages($o);
    }
    1;
}

sub reallyChooseGroups {
    my ($o, $size_to_display, $individual, $val) = @_;

    my $size_text = &$size_to_display;

    my ($path, $all);
    $o->ask_from_({ messages => N("Package Group Selection"),
		    interactive_help_id => 'choosePackages',
		    callbacks => { changed => sub { $size_text = &$size_to_display } },
		  }, [
        { val => \$size_text, type => 'label' }, {},
	 (map { 
	       my $old = $path;
	       $path = $o->{compssUsers}{$_}{path};
	       if_($old ne $path, { val => translate($path) }),
		 {
		  val => \$val->{$_},
		  type => 'bool',
		  disabled => sub { $all },
		  text => translate($o->{compssUsers}{$_}{label}),
		  help => translate($o->{compssUsers}{$_}{descr}),
		 }
	   } @{$o->{compssUsersSorted}}),
	 if_($o->{meta_class} eq 'desktop', { text => N("All"), val => \$all, type => 'bool' }),
	 if_($individual, { text => N("Individual package selection"), val => $individual, advanced => 1, type => 'bool' }),
    ]);

    if ($all) {
	$val->{$_} = 1 foreach keys %$val;
    }
    1;    
}

sub chooseCD {
    my ($o, $packages) = @_;
    my @mediums = grep { $_ != $install_any::boot_medium } pkgs::allMediums($packages);
    my @mediumsDescr;
    my %mediumsDescr;

    if (!common::usingRamdisk()) {
	#- mono-cd in case of no ramdisk
	foreach (@mediums) {
	    pkgs::mediumDescr($packages, $install_any::boot_medium) eq pkgs::mediumDescr($packages, $_) and next;
	    undef $packages->{mediums}{$_}{selected};
	}
	log::l("low memory install, using single CD installation (as it is not ejectable)");
	return;
    }

    #- the boot medium is already selected.
    $mediumsDescr{pkgs::mediumDescr($packages, $install_any::boot_medium)} = 1;

    #- build mediumDescr according to mediums, this avoid asking multiple times
    #- all the medium grouped together on only one CD.
    foreach (@mediums) {
	my $descr = pkgs::mediumDescr($packages, $_);
	$packages->{mediums}{$_}{ignored} and next;
	exists $mediumsDescr{$descr} or push @mediumsDescr, $descr;
	$mediumsDescr{$descr} ||= $packages->{mediums}{$_}{selected};
    }

    #- if no other medium available or a poor beginner, we are choosing for him!
    #- note first CD is always selected and should not be unselected!
    return if @mediumsDescr == () || !$::expert;

#    $o->set_help('chooseCD');
    $o->ask_many_from_list('',
N("If you have all the CDs in the list below, click Ok.
If you have none of those CDs, click Cancel.
If only some CDs are missing, unselect them, then click Ok."),
			   {
			    list => \@mediumsDescr,
			    label => sub { N("Cd-Rom labeled \"%s\"", $_[0]) },
			    val => sub { \$mediumsDescr{$_[0]} },
			   }) or do {
			       $mediumsDescr{$_} = 0 foreach @mediumsDescr; #- force unselection of other CDs.
			   };

    #- restore true selection of medium (which may have been grouped together)
    foreach (@mediums) {
	my $descr = pkgs::mediumDescr($packages, $_);
	$packages->{mediums}{$_}{ignored} and next;
	$packages->{mediums}{$_}{selected} = $mediumsDescr{$descr};
	log::l("select status of medium $_ is $packages->{mediums}{$_}{selected}");
    }
}

#------------------------------------------------------------------------------
sub installPackages {
    my ($o, $packages) = @_;
    my ($current, $total) = (0, 0);

    my $w = $o->wait_message(N("Installing"), N("Preparing installation"));

    my $old = \&pkgs::installCallback;
    local *pkgs::installCallback = sub {
	my ($data, $type, $id, $subtype, $_amount, $total_) = @_;
	if ($type eq 'user' && $subtype eq 'install') {
	    $total = $total_;
	} elsif ($type eq 'inst' && $subtype eq 'start') {
	    my $p = $data->{depslist}[$id];
	    $w->set(N("Installing package %s\n%d%%", $p->name, $total && 100 * $current / $total));
	    $current += $p->size;
	} else { goto $old }
    };

    #- the modification is not local as the box should be living for other package installation.
    #- BEWARE this is somewhat duplicated (but not exactly from gtk code).
    undef *install_any::changeMedium;
    *install_any::changeMedium = sub {
	my ($method, $medium) = @_;

	#- if not using a cdrom medium, always abort.
	$method eq 'cdrom' && !$::oem and do {
	    my $name = pkgs::mediumDescr($o->{packages}, $medium);
	    local $| = 1; print "\a";
	    my $r = $name !~ /commercial/i || ($o->{useless_thing_accepted2} ||= $o->ask_from_list_('', formatAlaTeX(install_messages::com_license()), [ N_("Accept"), N_("Refuse") ], "Accept") eq "Accept");
            $r &&= $o->ask_okcancel('', N("Change your Cd-Rom!

Please insert the Cd-Rom labelled \"%s\" in your drive and press Ok when done.
If you don't have it, press Cancel to avoid installation from this Cd-Rom.", $name), 1);
            return $r;
	};
    };
    my $install_result;
    catch_cdie { $install_result = $o->install_steps::installPackages($packages) }
      sub {
	  if ($@ =~ /^error ordering package list: (.*)/) {
	      $o->ask_yesorno('', [
N("There was an error ordering packages:"), $1, N("Go on anyway?") ], 1) and return 1;
	      ${$_[0]} = "already displayed";
	  } elsif ($@ =~ /^error installing package list: (.*)/) {
	      $o->ask_yesorno('', [
N("There was an error installing packages:"), $1, N("Go on anyway?") ], 1) and return 1;
	      ${$_[0]} = "already displayed";
	  }
	  0;
      };
    if ($pkgs::cancel_install) {
	$pkgs::cancel_install = 0;
	die "setstep choosePackages\n";
    }
    $install_result;
}

sub afterInstallPackages($) {
    my ($o) = @_;
    my $_w = $o->wait_message('', N("Post-install configuration"));
    $o->SUPER::afterInstallPackages;
}

sub updateModulesFromFloppy {
    my ($o) = @_;
    $o->ask_okcancel('', N("Please insert the Update Modules floppy in drive %s", $o->{updatemodules}), 1) or return;
    $o->SUPER::updateModulesFromFloppy;
}

#------------------------------------------------------------------------------
sub configureNetwork {
    my ($o) = @_;
    require network::network;
    network::network::easy_dhcp($o->{netc}, $o->{intf}) and $o->{netcnx}{type} = 'lan';
    $o->SUPER::configureNetwork;
}

#------------------------------------------------------------------------------
sub installUpdates {
    my ($o) = @_;
    my $u = $o->{updates} ||= {};
    
    $o->hasNetwork or return;

    if (is_empty_hash_ref($u)) {
	$o->ask_yesorno_({ messages => formatAlaTeX(
N("You now have the opportunity to download updated packages. These packages
have been updated after the distribution was released. They may
contain security or bug fixes.

To download these packages, you will need to have a working Internet 
connection.

Do you want to install the updates ?")),
			   interactive_help_id => 'installUpdates',
					       }) or return;
    }

    #- bring all interface up for installing crypto packages.
    install_interactive::upNetwork($o);

    #- update medium available and working.
    my $update_medium;
    do {
	require crypto;
	eval {
	    my @mirrors = do {
		my $_w = $o->wait_message('', N("Contacting Mandrakelinux web site to get the list of available mirrors..."));
		crypto::mirrors($o->{distro_type});
	    };
	    #- if no mirror have been found, use current time zone and propose among available.
	    $u->{mirror} ||= crypto::bestMirror($o->{timezone}{timezone}, $o->{distro_type});
	    $o->ask_from_({ messages => N("Choose a mirror from which to get the packages"),
			    cancel => N("Cancel"),
			  }, [ { separator => '|',
				 format => \&crypto::mirror2text,
				 list => \@mirrors,
				 val => \$u->{mirror},
			       },
			     ],
			 ) or $u->{mirror} = '';
	};
	return if $@ || !$u->{mirror};

	eval {
	    if ($u->{mirror}) {
		my $_w = $o->wait_message('', N("Contacting the mirror to get the list of available packages..."));
		$update_medium = crypto::getPackages($o->{prefix}, $o->{packages}, $u->{mirror});
	    }
	};
    } while $@ || !$update_medium && $o->ask_yesorno('', N("Unable to contact mirror %s", $u->{mirror}) . ($@ ? " :\n$@" : "") . "\n\n" . N("Would you like to try again?"));

    if ($update_medium) {
	if ($o->choosePackagesTree($o->{packages}, $update_medium)) {
	    $o->{isUpgrade} = 1; #- now force upgrade mode, else update will be installed instead of upgraded.
	    $o->pkg_install;
	} else {
	    #- make sure to not try to install the packages (which are automatically selected by getPackage above).
	    #- this is possible by deselecting the medium (which can be re-selected above).
	    delete $update_medium->{selected};
	}
	#- update urpmi even, because there is an hdlist available and everything is good,
	#- this will allow user to update the medium but update his machine later.
	$o->install_urpmi;
    }
 
    #- stop interface using ppp only. FIXME REALLY TOCHECK isdn (costly network) ?
    # FIXME damien install_interactive::downNetwork($o, 'pppOnly');
}


#------------------------------------------------------------------------------
sub configureTimezone {
    my ($o, $clicked) = @_;

    require timezone;
    $o->{timezone}{timezone} = $o->ask_from_treelist('', N("Which is your timezone?"), '/', [ timezone::getTimeZones() ], $o->{timezone}{timezone}) || return;

    my $ntp = to_bool($o->{timezone}{ntp});
    $o->ask_from_({ interactive_help_id => 'configureTimezoneGMT' }, [
	  { text => N("Hardware clock set to GMT"), val => \$o->{timezone}{UTC}, type => 'bool' },
	  { text => N("Automatic time synchronization (using NTP)"), val => \$ntp, type => 'bool' },
    ]) or goto &configureTimezone
	    if $::expert || $clicked;
    if ($ntp) {
	my $servers = timezone::ntp_servers();
	$o->{timezone}{ntp} ||= 'pool.ntp.org';

	$o->ask_from_({},
	    [ { label => N("NTP Server"), val => \$o->{timezone}{ntp}, list => [ keys %$servers ], not_edit => 0,
		format => sub { $servers->{$_[0]} ? "$servers->{$_[0]} ($_[0])" : $_[0] } } ]
        ) or goto &configureTimezone;
    } else {
	$o->{timezone}{ntp} = '';
    }
    install_steps::configureTimezone($o);
    1;
}

#------------------------------------------------------------------------------
sub configureServices { 
    my ($o, $clicked) = @_;
    require services;
    $o->{services} = services::ask($o) if $::expert || $clicked;
    install_steps::configureServices($o);
}


sub summaryBefore {
    my ($o) = @_;

    #- auto-detection
    $o->configurePrinter(0);
    install_any::preConfigureTimezone($o);
    #- get back network configuration.
    require network::network;
    eval {
	network::network::read_all_conf($o->{prefix}, $o->{netc} ||= {}, $o->{intf} ||= {}, $o->{netcnx} ||= {});
    };
    log::l("summaryBefore: network configuration: ", formatError($@)) if $@;
}

sub summary_prompt {
    my ($o, $l, $check_complete) = @_;

    foreach (@$l) {
	my $val = $_->{val};
	($_->{format}, $_->{val}) = (sub { $val->() || N("not configured") }, '');
    }
    
    $o->ask_from_({
		   messages => N("Summary"),
		   interactive_help_id => 'summary',
		   cancel   => '',
		   callbacks => { complete => sub { !$check_complete->() } },
		  }, $l);
}

sub summary {
    my ($o) = @_;

    my @l;

    push @l, {
	group => N("System"), 
	label => N("Keyboard"), 
	val => sub { $o->{keyboard} && translate(keyboard::keyboard2text($o->{keyboard})) },
	clicked => sub { $o->selectKeyboard(1) },
    };

    my $timezone_manually_set;  
    push @l, {
	group => N("System"),
	label => N("Country / Region"),
	val => sub { lang::c2name($o->{locale}{country}) },
	clicked => sub {
	    any::selectCountry($o, $o->{locale}) or return;

	    my $pkg_locale = locale_to_main_locale(lang::getlocale_for_country($o->{locale}{lang}, $o->{locale}{country}));
	    my @pkgs = pkgs::packagesProviding($o->{packages}, "locales-$pkg_locale");
	    $o->pkg_install(map { $_->name } @pkgs) if @pkgs;

	    lang::write($o->{prefix}, $o->{locale});
	    if (!$timezone_manually_set) {
		delete $o->{timezone};
		install_any::preConfigureTimezone($o); #- now we can precise the timezone thanks to the country
	    }
	},
    };
    push @l, {
	group => N("System"),
	label => N("Timezone"),
	val => sub { $o->{timezone}{timezone} },
	clicked => sub { $timezone_manually_set = $o->configureTimezone(1) || $timezone_manually_set },
    };

    push @l, {
	group => N("System"),
	label => N("Mouse"),
	val => sub { translate($o->{mouse}{type}) . ' ' . translate($o->{mouse}{name}) },
	clicked => sub { $o->selectMouse(1); mouse::write($o, $o->{mouse}) },
    };

    push @l, {
	group => N("Hardware"),
	label => N("Printer"),
	val => sub {
	    if (is_empty_hash_ref($o->{printer}{configured})) {
		require pkgs;
		my $p = pkgs::packageByName($o->{packages}, 'cups');
		$p && $p->flag_installed ? N("Remote CUPS server") : N("No printer");
	    } elsif (defined($o->{printer}{configured}{$o->{printer}{DEFAULT}})  &&
		     (my $p = find { $_ && ($_->{make} || $_->{model}) }
		      $o->{printer}{configured}{$o->{printer}{DEFAULT}}{queuedata})) {
		"$p->{make} $p->{model}";
	    } elsif ($p = find { $_ && ($_->{make} || $_->{model}) }
		      map { $_->{queuedata} } (values %{$o->{printer}{configured}})) {
		"$p->{make} $p->{model}";
	    } else {
		N("Remote CUPS server"); #- fall back in case of something wrong.
	    }
	},
	clicked => sub { $o->configurePrinter(1) },
    };
  
    my @sound_cards = detect_devices::getSoundDevices();

    my $sound_index = 0;
    foreach my $device (@sound_cards) {
	$device->{sound_slot_index} = $sound_index;
	push @l, {
	    group => N("Hardware"),
	    label => N("Sound card"),
	    val => sub { 
		$device->{driver} && modules::module2description($device->{driver}) || $device->{description};
	    },
	    clicked => sub {
	        require harddrake::sound; 
	        harddrake::sound::config($o, $device);
	    },
	};
     $sound_index++;
    }

    if (!@sound_cards && ($o->{compssUsersChoice}{GAMES} || $o->{compssUsersChoice}{AUDIO})) {
	#- if no sound card are detected AND the user selected things needing a sound card,
	#- propose a special case for ISA cards
	push @l, {
	    group => N("Hardware"),
	    label => N("Sound card"),
	    val => sub {},
	    clicked => sub {
	        if ($o->ask_yesorno('', N("Do you have an ISA sound card?"))) {
	    	  $o->do_pkgs->install(qw(alsaconf sndconfig));
	    	  $o->ask_warn('', N("Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound card"));
	        } else {
	    	  $o->ask_warn('', N("No sound card detected. Try \"harddrake\" after installation"));
	        }
	    },
	};
    }

    foreach my $tv (detect_devices::getTVcards()) {
	push @l, {
	    group => N("Hardware"),
	    label => N("TV card"),
	    val => sub { $tv->{description} }, 
	    clicked => sub { 
	        require harddrake::v4l; 
	        harddrake::v4l::config($o, $tv->{driver});
	    }
	};
    }

    push @l, {
	group => N("Hardware"),
	label => N("Graphical interface"),
	val => sub { $o->{raw_X} ? Xconfig::various::to_string($o->{raw_X}) : '' },
	clicked => sub { configureX($o, 'expert') }, 
    };

    push @l, {
	group => N("Network & Internet"),
	label => N("Network"),
	val => sub { $o->{netcnx}{type} },
	clicked => sub { 
	    local $::expert = $::expert;
	    require network::netconnect;
	    network::netconnect::main($o->{prefix}, $o->{netcnx} ||= {}, $o, $o->{netc}, $o->{mouse}, $o->{intf}, 0, 1);
	    #- in case netcnx type is not updated.
	    require network::network;
	    network::network::probe_netcnx_type($o->{prefix}, $o->{netc}, $o->{intf}, $o->{netcnx});
	},
    };

    $::o->{miscellaneous} ||= {};
    push @l, {
	group => N("Network & Internet"),
	label => N("Proxies"),
	val => sub { $::o->{miscellaneous}{http_proxy} || $::o->{miscellaneous}{ftp_proxy} ? N("configured") : N("not configured") },
	clicked => sub { 
	    require network::network;
         network::network::miscellaneous_choose($o, $::o->{miscellaneous});
         network::network::proxy_configure($::o->{miscellaneous}) if !$::testing;
	},
    };

    push @l, {
	group => N("Security"),
	label => N("Security Level"),
	val => sub { 
	    require security::level;
	    security::level::to_string($o->{security});
	},
	clicked => sub {
	    require security::level;
	    security::level::level_choose($o, \$o->{security}, \$o->{libsafe}, \$o->{security_user})
		and install_any::set_security($o);
	},
    };

    push @l, {
	group => N("Security"),
	label => N("Firewall"),
	val => sub { 
	    require network::shorewall;
	    my $shorewall = network::shorewall::read($o, 'silent');
	    $shorewall && !$shorewall->{disabled} ? N("activated") : N("disabled");
	},
	clicked => sub { 
	    require network::drakfirewall;
	    network::drakfirewall::main($o, $o->{security} <= 3);
	},
    } if detect_devices::getNet();

    push @l, {
	group => N("Boot"),
	label => N("Bootloader"),
	val => sub { 
	    #-PO: example: lilo-graphic on /dev/hda1
	    N("%s on %s", $o->{bootloader}{method}, $o->{bootloader}{boot})
	},
	clicked => sub { any::setupBootloader($o, $o->{bootloader}, $o->{all_hds}, $o->{fstab}, $o->{security}) },
    };

    push @l, {
	group => N("System"),
	label => N("Services"),
	val => sub {
	    require services;
	    my ($l, $activated) = services::services();
	    N("Services: %d activated for %d registered", int(@$activated), int(@$l));
	},
	clicked => sub { 
	    require services;
	    $o->{services} = services::ask($o) and services::doit($o, $o->{services});
	},
    };

    my $check_complete = sub {
	$o->{raw_X} || !$::testing && !pkgs::packageByName($o->{packages}, 'XFree86')->flag_installed ||
	$o->ask_yesorno('', N("You have not configured X. Are you sure you really want this?"));
    };

    $o->summary_prompt(\@l, $check_complete);

    $o->cleanupPrinter;
    install_steps::configureTimezone($o) if !$timezone_manually_set;  #- do not forget it.
}

#------------------------------------------------------------------------------
sub configurePrinter {
    my ($o, $clicked) = @_;

    require printer::main;
    require printer::printerdrake;
    require printer::detect;

    #- $clicked = 0: Preparation of "Summary" step, check whether there are
    #- are local printers. Continue for automatically setting up print
    #- queues if so, return otherwise
    #- $clicked = 1: User clicked "Configure" button in "Summary", enter
    #- Printerdrake for manual configuration
    my $go_on = $clicked ? 2 : $o && printer::detect::local_detect();
    $go_on-- or return;

    #- install packages needed for printer::getinfo()
    $::testing or $o->do_pkgs->install('foomatic-db-engine');

    #- take default configuration, this include choosing the right spooler
    #- currently used by the system.
    my $printer = $o->{printer} ||= {};
    eval { add2hash($printer, printer::main::getinfo($o->{prefix})) };

    $printer->{PAPERSIZE} = $o->{locale}{lang} eq 'en_US' || $o->{locale}{country} eq 'CA' ? 'Letter' : 'A4';
    printer::printerdrake::main($printer, $o, $clicked, sub { install_interactive::upNetwork($o, 'pppAvoided') });

}

sub cleanupPrinter {
    my ($o) = @_;
    #- Clean up $o->{printer} so that the records for an auto-installation
    #- contain only the important stuff
    return if !defined($o->{printer});
    require printer::printerdrake;
    printer::printerdrake::final_cleanup($o->{printer});
}
    
#------------------------------------------------------------------------------
sub setRootPassword {
    my ($o, $clicked) = @_;
    my $sup = $o->{superuser} ||= {};
    $sup->{password2} ||= $sup->{password} ||= "";

    if ($o->{security} >= 1 || $clicked) {
	require authentication;
        my $authentication_kind = authentication::to_kind($o->{authentication} ||= {});

	$o->ask_from_({
	 title => N("Set root password and network authentication methods"), 
	 messages => N("Set root password"),
	 interactive_help_id => "setRootPassword",
	 cancel => ($o->{security} <= 2 && !$::corporate ? 
		    #-PO: keep this short or else the buttons will not fit in the window
		    N("No password") : ''),
	 focus_first => 1,
	 callbacks => { 
	     complete => sub {
		 $sup->{password} eq $sup->{password2} or $o->ask_warn('', [ N("The passwords do not match"), N("Please try again") ]), return 1,0;
		 length $sup->{password} < 2 * $o->{security}
		   and $o->ask_warn('', N("This password is too short (it must be at least %d characters long)", 2 * $o->{security})), return 1,0;
		 return 0
        } } }, [
{ label => N("Password"), val => \$sup->{password},  hidden => 1 },
{ label => N("Password (again)"), val => \$sup->{password2}, hidden => 1 },
{ label => N("Authentication"), val => \$authentication_kind, list => [ authentication::kinds() ], format => \&authentication::kind2description, advanced => 1 },
        ]) or delete $sup->{password};

	authentication::ask_parameters($o, $o->{netc}, $o->{authentication}, $authentication_kind) or goto &setRootPassword;
    }
    install_steps::setRootPassword($o);
}

#------------------------------------------------------------------------------
#-addUser
#------------------------------------------------------------------------------
sub addUser {
    my ($o, $clicked) = @_;
    $o->{users} ||= [];

    if ($o->{security} < 1) {
	push @{$o->{users}}, { password => 'mandrake', realname => 'default', icon => 'automagic' } 
	  if !member('mandrake', map { $_->{name} } @{$o->{users}});
    }
    if ($o->{security} >= 1 || $clicked) {
	any::ask_users($o, $o->{users}, $o->{security});
    }
    add2hash($o, any::get_autologin());
    any::autologin($o, $o);

    install_steps::addUser($o);
}

#------------------------------------------------------------------------------
sub setupBootloaderBefore {
    my ($o) = @_;
    my $_w = $o->wait_message('', N("Preparing bootloader..."));
    $o->SUPER::setupBootloaderBefore;
}

#------------------------------------------------------------------------------
sub setupBootloader {
    my ($o, $ent_number) = @_;
    if (arch() =~ /ppc/) {
	my $machtype = detect_devices::get_mac_generation();
	if ($machtype !~ /NewWorld/) {
	    $o->ask_warn('', N("You appear to have an OldWorld or Unknown\n machine, the yaboot bootloader will not work for you.\nThe install will continue, but you'll\n need to use BootX or some other means to boot your machine"));
	    log::l("OldWorld or Unknown Machine - no yaboot setup");
	    return;
	}
    }
    if (arch() =~ /^alpha/) {
	$o->ask_yesorno('', N("Do you want to use aboot?"), 1) or return;
	catch_cdie { $o->SUPER::setupBootloader } sub {
	    $o->ask_yesorno('', 
N("Error installing aboot, 
try to force installation even if that destroys the first partition?"));
	};
    } else {
	if ($ent_number == 1) {
	    any::setupBootloader_simple($o, $o->{bootloader}, $o->{all_hds}, $o->{fstab}, $o->{security}) or return;
	} else {
	    any::setupBootloader($o, $o->{bootloader}, $o->{all_hds}, $o->{fstab}, $o->{security}) or return;
	}

	{
	    my $_w = $o->wait_message('', N("Installing bootloader"));
	    eval { $o->SUPER::setupBootloader };
	}
	if (my $err = $@) {
	    $err =~ s/^\w+ failed// or die;
            $err = formatError($err);
            while ($err =~ s/^Warning:.*//m) {}
	    $o->ask_warn('', [ N("Installation of bootloader failed. The following error occured:"), $err ]);
	    die "already displayed";
	} elsif (arch() =~ /ppc/) {
	    my $of_boot = cat_("$o->{prefix}/tmp/of_boot_dev") || die "Can't open $o->{prefix}/tmp/of_boot_dev";
	    chop($of_boot);
	    $o->ask_warn('', N("You may need to change your Open Firmware boot-device to\n enable the bootloader.  If you don't see the bootloader prompt at\n reboot, hold down Command-Option-O-F at reboot and enter:\n setenv boot-device %s,\\\\:tbxi\n Then type: shut-down\nAt your next boot you should see the bootloader prompt.", $of_boot));
	}
    }
}

sub miscellaneous {
    my ($o, $_clicked) = @_;

    if ($o->{meta_class} ne 'desktop' && !$o->{isUpgrade}) {
	require security::level;
	security::level::level_choose($o, \$o->{security}, \$o->{libsafe}, \$o->{security_user});

	if ($o->{security} > 2 && find { isFat($_) } @{$o->{fstab}}) {
	    $o->ask_okcancel('', N("In this security level, access to the files in the Windows partition is restricted to the administrator."))
	      or goto &miscellaneous;
	}
    }

    install_steps::miscellaneous($o);
}

#------------------------------------------------------------------------------
sub configureX {
    my ($o, $expert) = @_;

    install_steps::configureXBefore($o);
    symlink "$o->{prefix}/etc/gtk", "/etc/gtk";

    my $options = { 
	allowFB => $o->{allowFB},
    };

    require Xconfig::main;
    if (my $raw_X = Xconfig::main::configure_everything_or_configure_chooser($o, $options, !$expert, $o->{keyboard}, $o->{mouse})) {
	$o->{raw_X} = $raw_X;
	install_steps::configureXAfter($o);
    }
}

#------------------------------------------------------------------------------
sub generateAutoInstFloppy {
    my ($o, $replay) = @_;
    my @imgs = install_any::getAndSaveAutoInstallFloppies($o, $replay) or return;

    my $floppy = detect_devices::floppy();
    $o->ask_okcancel('', N("Insert a blank floppy in drive %s", $floppy), 1) or return;

    my $i;
    foreach (@imgs) {
	if ($i++) {
	    $o->ask_okcancel('', N("Please insert another floppy for drivers disk"), 1) or return;
	}
	my $_w = $o->wait_message('', N("Creating auto install floppy..."));
	require commands;
	commands::dd("if=$_", 'of=' . devices::make($floppy));
	common::sync();
    }	
}

#------------------------------------------------------------------------------
sub exitInstall {
    my ($o, $alldone) = @_;

    return $o->{step} = '' if !$alldone && !$o->ask_yesorno('', 
N("Some steps are not completed.

Do you really want to quit now?"), 0);

    install_steps::exitInstall($o);

    $o->exit unless $alldone;

    $o->ask_from_no_check(
	{
	 messages => formatAlaTeX(install_messages::install_completed()),
	 interactive_help_id => 'exitInstall',
	 ok => N("Reboot"),
	},      
	[
	 { val => \ (my $_t1 = N("Generate auto install floppy")), clicked => sub {
		   my $t = $o->ask_from_list_('', 
N("The auto install can be fully automated if wanted,
in that case it will take over the hard drive!!
(this is meant for installing on another box).

You may prefer to replay the installation.
"), [ N_("Replay"), N_("Automated") ]);
		   $t and $o->generateAutoInstFloppy($t eq 'Replay');
	       }, advanced => 1 },
	 { val => \ (my $_t2 = N("Save packages selection")), clicked => sub { install_any::g_default_packages($o) }, advanced => 1 },
	]
	) if $alldone;
}


#-######################################################################################
#- Misc Steps Functions
#-######################################################################################

1;
sambashare:638 ../bin/draksambashare:705 #: ../bin/draksambashare:805 ../bin/draksambashare:812 #: ../bin/draksambashare:951 ../bin/draksambashare:1105 #: ../bin/draksambashare:1124 ../bin/draksambashare:1156 #: ../bin/draksambashare:1213 ../bin/draksambashare:1263 #: ../bin/draksambashare:1365 ../bin/draksambashare:1374 #: ../bin/draksambashare:1396 ../bin/draksambashare:1405 #: ../bin/draksambashare:1424 ../bin/draksambashare:1433 #: ../bin/draksambashare:1445 ../lib/network/connection/xdsl.pm:332 #: ../lib/network/connection_manager.pm:41 #: ../lib/network/connection_manager.pm:47 #: ../lib/network/connection_manager.pm:60 #: ../lib/network/connection_manager.pm:115 #: ../lib/network/connection_manager.pm:119 ../lib/network/drakvpn.pm:45 #: ../lib/network/drakvpn.pm:52 ../lib/network/ndiswrapper.pm:27 #: ../lib/network/ndiswrapper.pm:42 ../lib/network/ndiswrapper.pm:86 #: ../lib/network/ndiswrapper.pm:102 ../lib/network/netconnect.pm:131 #: ../lib/network/netconnect.pm:179 ../lib/network/netconnect.pm:235 #: ../lib/network/netconnect.pm:276 ../lib/network/netconnect.pm:821 #: ../lib/network/thirdparty.pm:115 ../lib/network/thirdparty.pm:132 #: ../lib/network/thirdparty.pm:215 ../lib/network/thirdparty.pm:217 #: ../lib/network/thirdparty.pm:238 #, c-format msgid "Error" msgstr "Lỗi" #: ../bin/drakconnect:676 ../lib/network/connection/ethernet.pm:160 #, c-format msgid "IP address should be in format 1.2.3.4" msgstr "Địa chỉ IP phải có dạng 1.2.3.4" #: ../bin/drakconnect:680 ../lib/network/connection/ethernet.pm:165 #, c-format msgid "Netmask should be in format 255.255.224.0" msgstr "Địa chỉ netmask nên có định dạng là 255.255.224.0" #: ../bin/drakconnect:685 ../bin/drakconnect:767 ../bin/drakconnect:953 #, c-format msgid "No IP" msgstr "Không có IP" #: ../bin/drakconnect:686 ../bin/drakconnect:768 #, c-format msgid "No Mask" msgstr "Không có Mask" #: ../bin/drakconnect:689 ../lib/network/netconnect.pm:806 #, c-format msgid "Gateway address should be in format 1.2.3.4" msgstr "Địa chỉ Gateway nên có dạng 1.2.3.4" #: ../bin/drakconnect:705 ../bin/drakgw:307 #, c-format msgid "" "No ethernet network adapter has been detected on your system. Please run the " "hardware configuration tool." msgstr "" "Không có adapter mạng ethernet được tìm thấy trong hệ thống. Hãy chạy công " "cụ cấu hình phần cứng." #: ../bin/drakconnect:714 #, c-format msgid "Remove a network interface" msgstr "Bỏ giao diện mạng" #: ../bin/drakconnect:718 #, c-format msgid "Select the network interface to remove:" msgstr "Chọn giao diện mạng để bỏ:" #: ../bin/drakconnect:719 ../bin/drakgw:123 ../lib/network/netconnect.pm:358 #: ../lib/network/netconnect.pm:393 #, c-format msgid "Net Device" msgstr "Thiết bị mạng" #: ../bin/drakconnect:751 #, c-format msgid "" "An error occurred while deleting the \"%s\" network interface:\n" "\n" "%s" msgstr "" "Lỗi xảy ra khi xóa giao diện mạng \"%s\":\n" "\n" "%s" #: ../bin/drakconnect:752 #, c-format msgid "" "Congratulations, the \"%s\" network interface has been successfully deleted" msgstr "Chúc mừng, giao diện mạng \"%s\" đã được xóa" #: ../bin/drakconnect:769 #, c-format msgid "up" msgstr "lên" #: ../bin/drakconnect:769 #, c-format msgid "down" msgstr "xuống" #: ../bin/drakconnect:804 ../bin/net_monitor:465 #, c-format msgid "Connected" msgstr "Đã kết nối" #: ../bin/drakconnect:804 ../bin/net_monitor:465 #, c-format msgid "Not connected" msgstr "Chưa kết nối" #: ../bin/drakconnect:806 #, c-format msgid "Disconnect..." msgstr "Ngắt kết nối..." #: ../bin/drakconnect:806 #, c-format msgid "Connect..." msgstr "Kết nối..." #: ../bin/drakconnect:847 #, c-format msgid "Deactivate now" msgstr "Bất hoạt bây giờ" #: ../bin/drakconnect:847 #, c-format msgid "Activate now" msgstr "Kích hoạt bây giờ" #: ../bin/drakconnect:855 #, c-format msgid "" "You do not have any configured interface.\n" "Configure them first by clicking on 'Configure'" msgstr "" "Bạn không có giao diện nào đã được định cấu hình.\n" "Cấu hình chúng bằng cách nhấn vào 'Configure'" #: ../bin/drakconnect:869 #, c-format msgid "LAN Configuration" msgstr "Cấu hình LAN" #: ../bin/drakconnect:881 #, c-format msgid "Adapter %s: %s" msgstr "Adapter %s: %s" #: ../bin/drakconnect:890 #, c-format msgid "Boot Protocol" msgstr "Giao thức khởi động" #: ../bin/drakconnect:891 #, c-format msgid "Started on boot" msgstr "Được chạy lúc khởi động " #: ../bin/drakconnect:927 #, c-format msgid "" "This interface has not been configured yet.\n" "Run the \"Add an interface\" assistant from the Mandriva Linux Control Center" msgstr "" "Giao diện này vẫn còn chưa được cấu hình.\n" "Hãy chạy \"Bổ sung giao diện\" trong Trung Tâm Điều Khiển Mandriva Linuxlinux" #: ../bin/drakconnect:975 #, c-format msgid "Internet connection configuration" msgstr "Cấu hình kết nối Internet" #: ../bin/drakconnect:979 ../bin/draknetprofile:129 ../bin/draknetprofile:131 #: ../bin/drakproxy:36 ../lib/network/drakvpn.pm:70 #: ../lib/network/drakvpn.pm:100 ../lib/network/ndiswrapper.pm:92 #: ../lib/network/netconnect.pm:479 #, c-format msgid "Warning" msgstr "Cảnh báo" #: ../bin/drakconnect:981 ../bin/net_applet:69 #, c-format msgid "" "You do not have any configured Internet connection.\n" "Run the \"%s\" assistant from the Mandriva Linux Control Center" msgstr "" "Bạn chưa cấu hình kết nối internet.\n" "Hãy chạy \"%s\" từ Trung Tâm Điều Khiển Mandriva Linuxlinux" #. -PO: here "Add Connection" should be translated the same was as in control-center #: ../bin/drakconnect:982 ../bin/net_applet:70 #, c-format msgid "Set up a new network interface (LAN, ISDN, ADSL, ...)" msgstr "Thiết lập giao diện mạng mới (LAN, ISDN, ADSL, ...)" #: ../bin/drakconnect:996 #, c-format msgid "Host name (optional)" msgstr "Tên chủ (host) (tùy ý)" #: ../bin/drakconnect:997 ../lib/network/netconnect.pm:630 #, c-format msgid "First DNS Server (optional)" msgstr "Máy chủ DNS thứ nhất" #: ../bin/drakconnect:998 ../lib/network/netconnect.pm:631 #, c-format msgid "Second DNS Server (optional)" msgstr "Máy chủ DNS thứ hai" #: ../bin/drakconnect:999 #, c-format msgid "Third DNS server (optional)" msgstr "Máy chủ DNS thứ ba (chọn thêm)" #: ../bin/drakconnect:1021 #, c-format msgid "Internet Connection Configuration" msgstr "Cấu Hình Kết Nối Internet" #: ../bin/drakconnect:1022 #, c-format msgid "Internet access" msgstr "Truy cập Internet" #: ../bin/drakconnect:1024 ../bin/net_monitor:98 #, c-format msgid "Connection type: " msgstr "Kiểu kết nối:" #: ../bin/drakconnect:1027 #, c-format msgid "Status:" msgstr "Tình trạng:" #: ../bin/drakconnect:1028 ../lib/network/netconnect.pm:712 #, c-format msgid "Testing your connection..." msgstr "Đang kiểm tra kết nối..." #: ../bin/drakconnect:1032 #, c-format msgid "Parameters" msgstr "Các thông số" #: ../bin/drakgw:71 #, c-format msgid "Internet Connection Sharing" msgstr "Chia Sẻ Kết Nối Internet" #: ../bin/drakgw:75 #, c-format msgid "" "You are about to configure your computer to share its Internet connection.\n" "With that feature, other computers on your local network will be able to use " "this computer's Internet connection.\n" "\n" "Make sure you have configured your Network/Internet access using drakconnect " "before going any further.\n" "\n" "Note: you need a dedicated Network Adapter to set up a Local Area Network " "(LAN)." msgstr "" "Bạn sắp cấu hình cho máy tính chia sẻ kết nối Internet của nó.\n" "Với tính năng đó, các máy khác trong mạng cục bộ có thể sử dụng kết nối " "Internet của máy tính này.\n" "\n" "Hãy bảo đảm là bạn đã cấu hình truy cập Mạng/Internet bằng drakconnect trước " "đó.\n" "\n" "Lưu ý: bạn cần một bộ điều hợp mạng dành cho việc thiết lập mạng cục bộ " "(LAN)." #: ../bin/drakgw:91 #, c-format msgid "" "The setup of Internet Connection Sharing has already been done.\n" "It's currently enabled.\n" "\n" "What would you like to do?" msgstr "" "Thiết lập chia sẻ kết nối internet đã được hoàn thành.\n" "Hiện thời nó đang hoạt động.\n" "\n" "Bạn muốn làm gì?" #: ../bin/drakgw:95 #, c-format msgid "" "The setup of Internet connection sharing has already been done.\n" "It's currently disabled.\n" "\n" "What would you like to do?" msgstr "" "Thiết lập chia sẻ kết nối internet đã hoàn thành.\n" "Hiện tại không hoạt động.\n" "\n" "Bạn muốn làm gì?" #: ../bin/drakgw:101 #, c-format msgid "Reconfigure" msgstr "Cấu hình lại" #: ../bin/drakgw:122 #, c-format msgid "Please select the network interface directly connected to the internet." msgstr "" #: ../bin/drakgw:141 #, c-format msgid "" "There is only one configured network adapter on your system:\n" "\n" "%s\n" "\n" "I am about to setup your Local Area Network with that adapter." msgstr "" "Chỉ có một adapter mạng được cấu hình trong hệ thống của bạn:\n" "\n" "%s\n" "\n" "Chuẩn bị thiết lập mạng cục bộ của bạn với adapter đó." #: ../bin/drakgw:152 #, c-format msgid "" "Please choose what network adapter will be connected to your Local Area " "Network." msgstr "Hãy chọn adapter mạng nào sẽ được kết nối vào mạng cục bộ của bạn. " #: ../bin/drakgw:173 #, c-format msgid "Local Area Network settings" msgstr "Thiết lập mạng cục bộ" #: ../bin/drakgw:176 ../lib/network/vpn/openvpn.pm:227 #, fuzzy, c-format msgid "Local IP address" msgstr "Địa chỉ IP" #: ../bin/drakgw:178 #, c-format msgid "The internal domain name" msgstr "Tên miền nội bộ" #: ../bin/drakgw:184 #, c-format msgid "Potential LAN address conflict found in current config of %s!\n" msgstr "" "Khả năng xung đột địa chỉ LAN được tìm ra trong cấu hình hiện thời của %s!\n" #: ../bin/drakgw:200 #, c-format msgid "Domain Name Server (DNS) configuration" msgstr "Cấu hình Domain Name Server (DNS)" #: ../bin/drakgw:204 #, c-format msgid "Use this gateway as domain name server" msgstr "Dùng gateway này làm domain name server (dns)" #: ../bin/drakgw:205 #, c-format msgid "The DNS Server IP" msgstr "IP của máy chủ DHCP" #: ../bin/drakgw:232 #, c-format msgid "" "DHCP Server Configuration.\n" "\n" "Here you can select different options for the DHCP server configuration.\n" "If you do not know the meaning of an option, simply leave it as it is." msgstr "" "Cấu hình máy chủ DHCP.\n" "\n" "Tại đây có thể chọn các tùy chọn khác nhau cho cấu hình máy chủ DHCP.\n" "Nếu không biết ý nghĩa của tùy chọn nào đó, hãy để nguyên nó như vậy." #: ../bin/drakgw:239 #, c-format msgid "Use automatic configuration (DHCP)" msgstr "Dùng cấu hình tự động (DHCP)" #: ../bin/drakgw:240 #, c-format msgid "The DHCP start range" msgstr "Chuỗi bắt đầu của DHCP" #: ../bin/drakgw:241 #, c-format msgid "The DHCP end range" msgstr "Chuỗi kết thúc của DHCP" #: ../bin/drakgw:242 #, c-format msgid "The default lease (in seconds)" msgstr "Kênh thuê mặc định (theo giây)" #: ../bin/drakgw:243 #, c-format msgid "The maximum lease (in seconds)" msgstr "Kênh thuê tối đa (theo giây)" #: ../bin/drakgw:266 #, c-format msgid "Proxy caching server (SQUID)" msgstr "Proxy caching server (SQUID)" #: ../bin/drakgw:270 #, c-format msgid "Use this gateway as proxy caching server" msgstr "Dùng gateway này làm proxy caching server" #: ../bin/drakgw:271 #, c-format msgid "Admin mail" msgstr "Admin mail" #: ../bin/drakgw:272 #, c-format msgid "Visible hostname" msgstr "Visible hostname" #: ../bin/drakgw:273 #, c-format msgid "Proxy port" msgstr "Proxy port" #: ../bin/drakgw:274 #, c-format msgid "Cache size (MB)" msgstr "Kích thước cache (MB)" #: ../bin/drakgw:296 #, c-format msgid "Broadcast printer information" msgstr "Loan truyền thông tin máy in" #: ../bin/drakgw:313 #, c-format msgid "Internet Connection Sharing is now enabled." msgstr "Bây giờ chia sẻ kết nối internet có thể hoạt động." #: ../bin/drakgw:319 #, c-format msgid "Internet Connection Sharing is now disabled." msgstr "Bây giờ chia sẻ kết nối internet đã tắt." #: ../bin/drakgw:325 #, c-format msgid "" "Everything has been configured.\n" "You may now share Internet connection with other computers on your Local " "Area Network, using automatic network configuration (DHCP) and\n" " a Transparent Proxy Cache server (SQUID)." msgstr "" "Mọi thứ đã được cấu hình.\n" "Bây giờ bạn có thể chia sẻ kết nối Internet với các máy tính khác trong mạng " "cục bộ của bạn, sử dụng cấu hình mạng tự động (DHCP) và\n" "Transparent Proxy Cache server (SQUID)." #: ../bin/drakgw:359 #, c-format msgid "Disabling servers..." msgstr "đang tắt các server..." #: ../bin/drakgw:373 #, c-format msgid "Firewalling configuration detected!" msgstr "Phát hiện ra cấu hình tường lửa!" #: ../bin/drakgw:374 #, c-format msgid "" "Warning! An existing firewalling configuration has been detected. You may " "need some manual fixes after installation." msgstr "" "Cảnh báo! Cấu hình tường lửa hiện thời được phát hiện. Có thể bạn cần ấn " "định thêm một số chi tiết sau khi cài đặt." #: ../bin/drakgw:379 #, c-format msgid "Configuring..." msgstr "Đang cấu hình..." #: ../bin/drakgw:380 #, c-format msgid "Configuring firewall..." msgstr "" #: ../bin/drakhosts:100 #, c-format msgid "Please add an host to be able to modify it." msgstr "" #: ../bin/drakhosts:110 #, c-format msgid "Please modify information" msgstr "Vui lòng thay đổi thông tin" #: ../bin/drakhosts:111 #, c-format msgid "Please delete information" msgstr "Vui lòng xóa thông tin" #: ../bin/drakhosts:112 #, c-format msgid "Please add information" msgstr "Vui lòng thêm thông tin" #: ../bin/drakhosts:116 #, c-format msgid "IP address:" msgstr "Địa chỉ IP:" #: ../bin/drakhosts:117 #, c-format msgid "Host name:" msgstr "Tên máy" #: ../bin/drakhosts:118 #, c-format msgid "Host Aliases:" msgstr "Bí danh (aliases):" #: ../bin/drakhosts:122 ../bin/drakhosts:128 ../bin/draksambashare:229 #: ../bin/draksambashare:250 ../bin/draksambashare:397 #: ../bin/draksambashare:634 ../bin/draksambashare:801 #, c-format msgid "Error!" msgstr "Lỗi!" #: ../bin/drakhosts:122 #, c-format msgid "Please enter a valid IP address." msgstr "Vui lòng điền vào địa chỉ IP hợp lệ." #: ../bin/drakhosts:128 #, c-format msgid "Same IP is already in %s file." msgstr "Địa chỉ IP này đã có trong %s" #: ../bin/drakhosts:196 ../lib/network/connection/ethernet.pm:203 #, c-format msgid "Host name" msgstr "Tên máy chủ" #: ../bin/drakhosts:196 #, c-format msgid "Host Aliases" msgstr "Bí danh (aliases) của máy" #: ../bin/drakhosts:206 ../bin/drakhosts:236 #, fuzzy, c-format msgid "Manage hosts definitions" msgstr "DrakHOSTS quản lý định nghĩa của các máy" #: ../bin/drakhosts:222 ../bin/drakhosts:249 #, c-format msgid "Modify entry" msgstr "" #: ../bin/drakhosts:241 ../bin/draknfs:575 ../bin/draksambashare:1358 #: ../bin/draksambashare:1389 ../bin/draksambashare:1420 #: ../bin/drakvpn-old:253 ../bin/drakvpn-old:391 #, c-format msgid "Add" msgstr "Thêm" #: ../bin/drakhosts:242 #, fuzzy, c-format msgid "Add entry" msgstr "Thêm máy in" #: ../bin/drakhosts:245 #, c-format msgid "Failed to add host." msgstr "Không thể thêm máy." #: ../bin/drakhosts:248 ../bin/draknfs:582 ../bin/draksambashare:1315 #: ../bin/draksambashare:1360 ../bin/draksambashare:1391 #: ../bin/draksambashare:1428 #, c-format msgid "Modify" msgstr "Biến đổi" #: ../bin/drakhosts:252 #, c-format msgid "Failed to Modify host." msgstr "Không thể đổi máy" #: ../bin/drakhosts:255 ../bin/drakids:87 ../bin/drakids:96 ../bin/draknfs:589 #: ../bin/draksambashare:1316 ../bin/draksambashare:1368 #: ../bin/draksambashare:1399 ../bin/draksambashare:1436 #: ../bin/drakvpn-old:253 ../bin/drakvpn-old:391 #, c-format msgid "Remove" msgstr "Gỡ bỏ" #: ../bin/drakhosts:259 #, c-format msgid "Failed to remove host." msgstr "Không thể xóa máy đi" #: ../bin/drakhosts:262 ../bin/drakinvictus:141 ../bin/draknetprofile:147 #: ../bin/net_applet:139 ../lib/network/drakroam.pm:113 #: ../lib/network/netcenter.pm:113 #, c-format msgid "Quit" msgstr "Thoát" #: ../bin/drakids:28 #, c-format msgid "Allowed addresses" msgstr "Cho phép mọi địa chỉ" #: ../bin/drakids:41 ../bin/drakids:65 ../bin/drakids:181 ../bin/drakids:190 #: ../bin/drakids:215 ../bin/drakids:224 ../bin/drakids:234 ../bin/drakids:326 #: ../bin/net_applet:78 ../bin/net_applet:245 ../bin/net_applet:521 #: ../bin/net_applet:548 ../lib/network/drakfirewall.pm:255 #: ../lib/network/drakfirewall.pm:258 #, c-format msgid "Interactive Firewall" msgstr "Tường lửa" #: ../bin/drakids:65 ../bin/drakids:181 ../bin/drakids:190 ../bin/drakids:215 #: ../bin/drakids:224 ../bin/drakids:234 ../bin/drakids:326 #: ../bin/net_applet:245 ../bin/net_applet:521 #, c-format msgid "Unable to contact daemon" msgstr "Không thể kết nối được với máy chủ" #: ../bin/drakids:74 ../bin/drakids:102 #, c-format msgid "Log" msgstr "Bản ghi" #: ../bin/drakids:78 ../bin/drakids:97 ../bin/net_applet:665 #, fuzzy, c-format msgid "Allow" msgstr "Toàn bộ" #: ../bin/drakids:79 ../bin/drakids:88 ../bin/net_applet:666 #, c-format msgid "Block" msgstr "" #: ../bin/drakids:80 ../bin/drakids:89 ../bin/drakids:98 ../bin/drakids:109 #: ../bin/drakids:122 ../bin/drakids:130 ../bin/draknfs:191 #: ../bin/net_monitor:120 #, c-format msgid "Close" msgstr "Đóng" #: ../bin/drakids:83 #, fuzzy, c-format msgid "Allowed services" msgstr "Cho phép mọi địa chỉ" #: ../bin/drakids:92 #, fuzzy, c-format msgid "Blocked services" msgstr "Sao lưu các tập tin người dùng" #: ../bin/drakids:106 #, c-format msgid "Clear logs" msgstr "Xóa hết trong bản ghi" #: ../bin/drakids:107 ../bin/drakids:112 ../bin/net_applet:609 #, c-format msgid "Blacklist" msgstr "Danh sách cấm" #: ../bin/drakids:108 ../bin/drakids:125 ../bin/net_applet:614 #, c-format msgid "Whitelist" msgstr "Danh sách cho phép" #: ../bin/drakids:116 #, c-format msgid "Remove from blacklist" msgstr "Gỡ bỏ khỏi danh sách cấm" #: ../bin/drakids:117 #, c-format msgid "Move to whitelist" msgstr "Di chuyển qua danh sách cho phép" #: ../bin/drakids:129 #, c-format msgid "Remove from whitelist" msgstr "Gỡ bỏ khỏi danh sách cho phép" #: ../bin/drakids:247 #, c-format msgid "Date" msgstr "Ngày" #: ../bin/drakids:248 #, c-format msgid "Attacker" msgstr "Thông tin tấn công" #: ../bin/drakids:249 #, fuzzy, c-format msgid "Attack type" msgstr "Kiểu tấn công: %s" #: ../bin/drakids:250 ../bin/drakids:283 #, c-format msgid "Service" msgstr "Dịch vụ" #: ../bin/drakids:251 #, c-format msgid "Network interface" msgstr "Thiết bị mạng" #: ../bin/drakids:282 #, c-format msgid "Application" msgstr "Ứng dụng" #: ../bin/drakids:284 #, c-format msgid "Status" msgstr "Trạng thái" #: ../bin/drakids:286 #, fuzzy, c-format msgid "Allowed" msgstr "Toàn bộ" #: ../bin/drakids:287 #, c-format msgid "Blocked" msgstr "" #: ../bin/drakinvictus:36 #, c-format msgid "Invictus Firewall" msgstr "" #: ../bin/drakinvictus:53 #, fuzzy, c-format msgid "Start as master" msgstr "Được chạy lúc khởi động " #: ../bin/drakinvictus:72 #, fuzzy, c-format msgid "A password is required." msgstr "Yêu cầu mật khẩu" #: ../bin/drakinvictus:100 #, c-format msgid "" "This tool allows to set up network interfaces failover and firewall " "replication." msgstr "" #: ../bin/drakinvictus:102 #, c-format msgid "Network redundancy (leave empty if interface is not used)" msgstr "" #: ../bin/drakinvictus:105 #, fuzzy, c-format msgid "Real address" msgstr "Địa chỉ Mac" #: ../bin/drakinvictus:105 #, fuzzy, c-format msgid "Virtual shared address" msgstr "Địa chỉ nguồn Sainfo" #: ../bin/drakinvictus:105 #, c-format msgid "Virtual ID" msgstr "" #: ../bin/drakinvictus:110 ../lib/network/netconnect.pm:594 #: ../lib/network/vpn/vpnc.pm:56 #, c-format msgid "Password" msgstr "Mật khẩu" #: ../bin/drakinvictus:114 #, fuzzy, c-format msgid "Firewall replication" msgstr "Độ phân giải cuối cùng" #: ../bin/drakinvictus:116 #, c-format msgid "Synchronize firewall conntrack tables" msgstr "" #: ../bin/drakinvictus:123 #, fuzzy, c-format msgid "Synchronization network interface" msgstr "Công Cụ Đồng Bộ Hoá" #: ../bin/drakinvictus:132 #, fuzzy, c-format msgid "Connection mark bit" msgstr "Kết nối" #: ../bin/draknetprofile:36 #, fuzzy, c-format msgid "Network profiles" msgstr "Tùy Chọn Mạng" #: ../bin/draknetprofile:67 #, fuzzy, c-format msgid "Profile" msgstr "Hồ sơ" #: ../bin/draknetprofile:99 #, c-format msgid "New profile..." msgstr "Lý lịch mới..." #: ../bin/draknetprofile:102 #, c-format msgid "" "Name of the profile to create (the new profile is created as a copy of the " "current one):" msgstr "" "Tên lý lịch để tạo (lý lịch mới được tạo như bản sao của lý lịch hiện thời):" #: ../bin/draknetprofile:113 #, c-format msgid "The \"%s\" profile already exists!" msgstr "Lý lịch \"%s\" đang tồn tại rồi!" #: ../bin/draknetprofile:129 #, c-format msgid "You can not delete the default profile" msgstr "" #: ../bin/draknetprofile:131 #, c-format msgid "You can not delete the current profile" msgstr "Bạn không thể xóa lý lịch hiện thời" #: ../bin/draknetprofile:141 #, c-format msgid "" "This tool allows to activate an existing network profile, and to manage " "(clone, delete) profiles." msgstr "" #: ../bin/draknetprofile:141 #, c-format msgid "To modify a profile, you have to activate it first." msgstr "" #: ../bin/draknetprofile:144 #, c-format msgid "Activate" msgstr "Kích hoạt" #: ../bin/draknetprofile:145 #, fuzzy, c-format msgid "Clone" msgstr "Kết nối" #: ../bin/draknetprofile:146 #, c-format msgid "Delete" msgstr "Xóa" #: ../bin/draknfs:44 #, c-format msgid "map root user as anonymous" msgstr "gán người dùng root như khách không tên" #: ../bin/draknfs:45 #, c-format msgid "map all users to anonymous user" msgstr "gán tất cả người dùng thành khách không tên" #: ../bin/draknfs:46 #, c-format msgid "No user UID mapping" msgstr "Không có người dùng UID" #: ../bin/draknfs:47 #, c-format msgid "allow real remote root access" msgstr "cho phép root kết nối từ xa" #: ../bin/draknfs:61 ../bin/draknfs:62 ../bin/draknfs:63 #: ../bin/draksambashare:174 ../bin/draksambashare:175 #: ../bin/draksambashare:176 #, c-format msgid "/_File" msgstr "/_Tệp" #: ../bin/draknfs:62 ../bin/draksambashare:175 #, c-format msgid "/_Write conf" msgstr "" #: ../bin/draknfs:63 ../bin/draksambashare:176 #, c-format msgid "/_Quit" msgstr "/T_hoát" #: ../bin/draknfs:63 ../bin/draksambashare:176 #, c-format msgid "<control>Q" msgstr "<control>Q" #: ../bin/draknfs:66 ../bin/draknfs:67 ../bin/draknfs:68 #, fuzzy, c-format msgid "/_NFS Server" msgstr "Máy chủ DNS" #: ../bin/draknfs:67 ../bin/draksambashare:180 #, c-format msgid "/_Restart" msgstr "" #: ../bin/draknfs:68 ../bin/draksambashare:181 #, c-format msgid "/R_eload" msgstr "" #: ../bin/draknfs:87 #, c-format msgid "NFS server" msgstr "Máy chủ NFS" #: ../bin/draknfs:87 #, c-format msgid "Restarting/Reloading NFS server..." msgstr "Khởi động lại máy chủ NFS..." #: ../bin/draknfs:88 #, c-format msgid "Error Restarting/Reloading NFS server" msgstr "Lỗi khi khởi động lại máy chủ NFS" #: ../bin/draknfs:104 ../bin/draksambashare:245 #, c-format msgid "Directory Selection" msgstr "Lựa chọn thư mục" #: ../bin/draknfs:109 ../bin/draksambashare:250 #, c-format msgid "Should be a directory." msgstr "Nên là một thư mục." #: ../bin/draknfs:140 #, c-format msgid "" "<span weight=\"bold\">NFS clients</span> may be specified in a number of " "ways:\n" "\n" "\n" "<span foreground=\"royalblue3\">single host:</span> a host either by an " "abbreviated name recognized be the resolver, fully qualified domain name, or " "an IP address\n" "\n" "\n" "<span foreground=\"royalblue3\">netgroups:</span> NIS netgroups may be given " "as @group.\n" "\n" "\n" "<span foreground=\"royalblue3\">wildcards:</span> machine names may contain " "the wildcard characters * and ?. For instance: *.cs.foo.edu matches all " "hosts in the domain cs.foo.edu.\n" "\n" "\n" "<span foreground=\"royalblue3\">IP networks:</span> you can also export " "directories to all hosts on an IP (sub-)network simultaneously. for example, " "either `/255.255.252.0' or `/22' appended to the network base address " "result.\n" msgstr "" "<span weight=\"bold\">Máy trạm NFS</span> có thể được chỉ định bằng nhiều " "cách:\n" "\n" "\n" "<span foreground=\"royalblue3\">Một máy trạm:</span> có thể chỉ định bởi tên " "được nhận bởi hệ thống hay bởi tên miền đầy đủ, hoặc một địa chỉ IP\n" "\n" "\n" "<span foreground=\"royalblue3\">netgroups:</span> NIS netgroups có thể được " "gán như @group.\n" "\n" "\n" "<span foreground=\"royalblue3\">wildcards:</span>tên máy có thể chứa các ký " "tự * và ?. Ví dụ: *cs.foo.edu sẽ tìm các tên trong tên miền cs.foo.edu.\n" "\n" "\n" "<span foreground=\"royalblue3\">Mạng IP:</span> bạn có thể xuất các thư mục " "đến tất các máy bằng địa chỉ IP (sub-)network. Ví dụ, có thể là " "`/255.255.252.0' hoặc `/22' vô cái địa chỉ mạng .\n" #: ../bin/draknfs:155 #, c-format msgid "" "<span weight=\"bold\">User ID options</span>\n" "\n" "\n" "<span foreground=\"royalblue3\">map root user as anonymous:</span> map " "requests from uid/gid 0 to the anonymous uid/gid (root_squash).\n" "\n" "\n" "<span foreground=\"royalblue3\">allow real remote root access:</span> turn " "off root squashing. This option is mainly useful for diskless clients " "(no_root_squash).\n" "\n" "\n" "<span foreground=\"royalblue3\">map all users to anonymous user:</span> map " "all uids and gids to the anonymous user (all_squash). Useful for NFS-" "exported public FTP directories, news spool directories, etc. The opposite " "option is no user UID mapping (no_all_squash), which is the default " "setting.\n" "\n" "\n" "<span foreground=\"royalblue3\">anonuid and anongid:</span> explicitly set " "the uid and gid of the anonymous account.\n" msgstr "" "<span weight=\"bold\">Lựa chọn cho User ID</span>\n" "\n" "\n" "<span foreground=\"royalblue3\">Gán người dùng root như người dùng ẩn danh:</" "span> gán những đường nối từ uid/gid 0 đến uid/gid (root_squash) người dùng " "ẩn danh.\n" "\n" "\n" "<span foreground=\"royalblue3\">cho phép người dùng có quyền như root kết " "nối:</span> tắt root squashing. Chức năng này chỉ có hữu dụng khi dùng máy " "không ổ cứng (no_root_squash).\n" "\n" "\n" "<span foreground=\"royalblue3\">gán tất cả người dùng như người dùng ẩn danh:" "<span> gán tất cả uids và gids như người dùng ẩn danh (all_squash). Hữu dụng " "khi dùng NFS cho cácthư mục trên máy chủ FTP, máy chủ news, v..v.. Lựa chọn " "ngược lại là không có gán UID (no_all_squash), cũng là lựa chọn chuẩn.\n" "\n" "\n" "<span foreground=\"royalblue3\">anonuid và anongid:</span> chỉ định rõ uid " "và gid của tài khoản người dùng ẩn danh.\n" #: ../bin/draknfs:171 #, c-format msgid "Synchronous access:" msgstr "Kết nối làm trùng hợp" #: ../bin/draknfs:172 #, c-format msgid "Secured Connection:" msgstr "Kết nối an toàn" #: ../bin/draknfs:173 #, c-format msgid "Read-Only share:" msgstr "Chia sẻ với quyền đọc" #: ../bin/draknfs:174 #, c-format msgid "Subtree checking:" msgstr "" #: ../bin/draknfs:176 #, c-format msgid "Advanced Options" msgstr "Các lựa chọn nâng cao" #: ../bin/draknfs:177 #, c-format msgid "" "<span foreground=\"royalblue3\">%s</span> this option requires that requests " "originate on an internet port less than IPPORT_RESERVED (1024). This option " "is on by default." msgstr "" "<span foreground=\"royalblue3\">%s</span> chức năng này yêu cầu những kết " "nối từ cổng phải thấp hơn IPPORT_RESERVED (1024). Đây là chức năng chuẩn." #: ../bin/draknfs:178 #, c-format msgid "" "<span foreground=\"royalblue3\">%s</span> allow either only read or both " "read and write requests on this NFS volume. The default is to disallow any " "request which changes the filesystem. This can also be made explicit by " "using this option." msgstr "" "<span foreground=\"royalblue3\"%s</span> cho phép đọc hoặc cả hai đọc và ghi " "trên vùng NFS này. Chuẩn là không cho phép thay đổi trên filesystem. Bạn " "cũng có thể chỉ định rõ ràng bằng cách sử dụng chức năng này." #: ../bin/draknfs:179 #, c-format msgid "" "<span foreground=\"royalblue3\">%s</span> disallows the NFS server to " "violate the NFS protocol and to reply to requests before any changes made by " "these requests have been committed to stable storage (e.g. disc drive)." msgstr "" "<span foreground=\"royalblue3\">%s</span> không cho phép máy chủ NFS vi phạm " "NFS protocol và trả lời các đường nối trước khi các thay đổi được áp dụng " "đến các ổ lưu trữ (chẳng hạn như ổ cứng)." #: ../bin/draknfs:180 #, c-format msgid "" "<span foreground=\"royalblue3\">%s</span> enable subtree checking which can " "help improve security in some cases, but can decrease reliability. See " "exports(5) man page for more details." msgstr "" #: ../bin/draknfs:185 ../bin/draksambashare:632 ../bin/draksambashare:799 #, c-format msgid "Information" msgstr "Thông tin" #: ../bin/draknfs:266 #, c-format msgid "Directory" msgstr "Thư mục" #: ../bin/draknfs:270 #, c-format msgid "Draknfs entry" msgstr "" #: ../bin/draknfs:279 #, c-format msgid "Please add an NFS share to be able to modify it." msgstr "Vui lòng thêm điểm chia sẻ NFS trước khi bạn muốn sửa đổi." #: ../bin/draknfs:353 ../bin/draksambashare:607 #, c-format msgid "Advanced options" msgstr "Các lựa chọn cao cấp" #: ../bin/draknfs:368 #, c-format msgid "NFS directory" msgstr "Thư mục NFS" #: ../bin/draknfs:369 ../bin/draksambashare:381 ../bin/draksambashare:597 #: ../bin/draksambashare:776 #, c-format msgid "Directory:" msgstr "Thư mục" #: ../bin/draknfs:370 #, c-format msgid "Host access" msgstr "Kết nối của máy trạm" #: ../bin/draknfs:371 #, c-format msgid "Access:" msgstr "Truy Cập:" #: ../bin/draknfs:372 #, c-format msgid "User ID Mapping" msgstr "" #: ../bin/draknfs:373 #, c-format msgid "User ID:" msgstr "" #: ../bin/draknfs:374 #, c-format msgid "Anonymous user ID:" msgstr "" #: ../bin/draknfs:375 #, c-format msgid "Anonymous Group ID:" msgstr "" #: ../bin/draknfs:412 #, fuzzy, c-format msgid "Please specify a directory to share." msgstr "Vui lòng điền vào chú thích cho điểm chia sẻ này." #: ../bin/draknfs:414 #, c-format msgid "Can't create this directory." msgstr "" #: ../bin/draknfs:417 #, c-format msgid "You must specify hosts access." msgstr "" #: ../bin/draknfs:497 #, c-format msgid "Share Directory" msgstr "" #: ../bin/draknfs:497 #, c-format msgid "Hosts Wildcard" msgstr "" #: ../bin/draknfs:497 #, c-format msgid "General Options" msgstr "Các tuỳ chọn chung" #: ../bin/draknfs:497 #, c-format msgid "Custom Options" msgstr "" #: ../bin/draknfs:509 ../bin/draksambashare:397 ../bin/draksambashare:634 #: ../bin/draksambashare:801 #, c-format msgid "Please enter a directory to share." msgstr "" #: ../bin/draknfs:516 #, c-format msgid "Please use the modify button to set right access." msgstr "" #: ../bin/draknfs:531 #, fuzzy, c-format msgid "Manage NFS shares" msgstr "DrakSamba quản lý điểm chia sẻ Samba" #: ../bin/draknfs:570 #, c-format msgid "DrakNFS manage NFS shares" msgstr "" #: ../bin/draknfs:579 #, c-format msgid "Failed to add NFS share." msgstr "" #: ../bin/draknfs:586 #, c-format msgid "Failed to Modify NFS share." msgstr "" #: ../bin/draknfs:593 #, c-format msgid "Failed to remove an NFS share." msgstr "" #: ../bin/drakproxy:36 #, c-format msgid "You need to log out and back in again for changes to take effect" msgstr "Bạn cần đăng xuất rồi đăng nhập trở lại để các thay đổi có tác dụng" #: ../bin/draksambashare:64 #, c-format msgid "User name" msgstr "Tên người dùng" #: ../bin/draksambashare:71 ../bin/draksambashare:99 #, c-format msgid "Share name" msgstr "Tên chia sẻ" #: ../bin/draksambashare:72 ../bin/draksambashare:100 #, c-format msgid "Share directory" msgstr "Thư mục chia sẻ" #: ../bin/draksambashare:73 ../bin/draksambashare:101 #: ../bin/draksambashare:118 #, c-format msgid "Comment" msgstr "Chú thích" #: ../bin/draksambashare:74 ../bin/draksambashare:119 #, c-format msgid "Browseable" msgstr "Duyệt được" #: ../bin/draksambashare:75 #, c-format msgid "Public" msgstr "Công cộng" #: ../bin/draksambashare:76 ../bin/draksambashare:124 #, c-format msgid "Writable" msgstr "Ghi được" #: ../bin/draksambashare:77 ../bin/draksambashare:165 #, c-format msgid "Create mask" msgstr "Tạo mask" #: ../bin/draksambashare:78 ../bin/draksambashare:166 #, c-format msgid "Directory mask" msgstr "Thư mục muốn mask" #: ../bin/draksambashare:79 #, c-format msgid "Read list" msgstr "Danh sách Đọc" #: ../bin/draksambashare:80 ../bin/draksambashare:125 #: ../bin/draksambashare:611 #, c-format msgid "Write list" msgstr "Danh sách Ghi" #: ../bin/draksambashare:81 ../bin/draksambashare:157 #, c-format msgid "Admin users" msgstr "Quản lý người dùng" #: ../bin/draksambashare:82 ../bin/draksambashare:158 #, c-format msgid "Valid users" msgstr "Người dùng hợp lệ" #: ../bin/draksambashare:83 #, c-format msgid "Inherit Permissions" msgstr "Tự hưởng các quyền" #: ../bin/draksambashare:84 ../bin/draksambashare:159 #, c-format msgid "Hide dot files" msgstr "Đừng hiển thị các tập tin ẩn" #: ../bin/draksambashare:85 ../bin/draksambashare:160 #, c-format msgid "Hide files" msgstr "Các tập tin ẩn" #: ../bin/draksambashare:86 ../bin/draksambashare:164 #, c-format msgid "Preserve case" msgstr "Giữ lại chữ hoa/không hoa" #: ../bin/draksambashare:87 #, c-format msgid "Force create mode" msgstr "Ép chế độ tạo" #: ../bin/draksambashare:88 #, c-format msgid "Force group" msgstr "Ép nhóm" #: ../bin/draksambashare:89 ../bin/draksambashare:163 #, c-format msgid "Default case" msgstr "Trường hợp mặc định" #: ../bin/draksambashare:116 #, c-format msgid "Printer name" msgstr "Tên máy in" #: ../bin/draksambashare:117 #, c-format msgid "Path" msgstr "Đường dẫn" #: ../bin/draksambashare:120 ../bin/draksambashare:603 #, c-format msgid "Printable" msgstr "Có thể in" #: ../bin/draksambashare:121 #, c-format msgid "Print Command" msgstr "Lệnh in" #: ../bin/draksambashare:122 #, c-format msgid "LPQ command" msgstr "Lệnh LPQ" #: ../bin/draksambashare:123 #, c-format msgid "Guest ok" msgstr "" #: ../bin/draksambashare:126 ../bin/draksambashare:167 #: ../bin/draksambashare:612 #, c-format msgid "Inherit permissions" msgstr "Tự hưởng permissions" #: ../bin/draksambashare:127 #, c-format msgid "Printing" msgstr "In ấn" #: ../bin/draksambashare:128 #, c-format msgid "Create mode" msgstr "Chế độ tạo" #: ../bin/draksambashare:129 #, c-format msgid "Use client driver" msgstr "Sử dụng driver của máy trạm" #: ../bin/draksambashare:155 #, c-format msgid "Read List" msgstr "Danh sách Đọc" #: ../bin/draksambashare:156 #, c-format msgid "Write List" msgstr "Danh sách Ghi" #: ../bin/draksambashare:161 #, c-format msgid "Force Group" msgstr "Ép Nhóm" #: ../bin/draksambashare:162 #, c-format msgid "Force create group" msgstr "Ép tạo nhóm" #: ../bin/draksambashare:178 ../bin/draksambashare:179 #: ../bin/draksambashare:180 ../bin/draksambashare:181 #, fuzzy, c-format msgid "/_Samba Server" msgstr "Máy chủ Web" #: ../bin/draksambashare:179 #, fuzzy, c-format msgid "/_Configure" msgstr "Cấu hình" #: ../bin/draksambashare:183 #, fuzzy, c-format msgid "/_Help" msgstr "Trợ giúp" #: ../bin/draksambashare:183 #, fuzzy, c-format msgid "/Samba Documentation" msgstr "Phân mảnh" #: ../bin/draksambashare:189 ../bin/draksambashare:190 #, c-format msgid "/_About" msgstr "/_Giới thiệu" #: ../bin/draksambashare:189 #, c-format msgid "/_Report Bug" msgstr "/_Báo cáo lỗi" #: ../bin/draksambashare:190 #, c-format msgid "/About..." msgstr "" #: ../bin/draksambashare:193 #, fuzzy, c-format msgid "Draksambashare" msgstr "Thông tin về Draksambashare" #: ../bin/draksambashare:195 #, c-format msgid "Copyright (C) %s by Mandriva" msgstr "" #: ../bin/draksambashare:197 #, fuzzy, c-format msgid "This is a simple tool to easily manage Samba configuration." msgstr "" "Mandriva Linux \n" "Release: %s\n" "Tác giả: Antoine Ginies\n" "\n" "Đây là một công cụ đơn giản việc quản lý cấu hình Samba." #: ../bin/draksambashare:199 #, c-format msgid "Mandriva Linux" msgstr "Mandriva Linux" #. -PO: put here name(s) and email(s) of translator(s) (eg: "John Smith <jsmith@nowhere.com>") #: ../bin/draksambashare:204 #, c-format msgid "_: Translator(s) name(s) & email(s)\n" msgstr "" #: ../bin/draksambashare:228 #, c-format msgid "Restarting/Reloading Samba server..." msgstr "Khởi động lại máy chủ Samba..." #: ../bin/draksambashare:229 #, c-format msgid "Error Restarting/Reloading Samba server" msgstr "Lỗi khi khởi động lại máy chủ Samba" #: ../bin/draksambashare:369 ../bin/draksambashare:576 #: ../bin/draksambashare:697 #, c-format msgid "Open" msgstr "Mở" #: ../bin/draksambashare:372 #, fuzzy, c-format msgid "DrakSamba add entry" msgstr "Thông tin về Draksambashare" #: ../bin/draksambashare:376 #, fuzzy, c-format msgid "Add a share" msgstr "Thêm một điểm chia sẻ Samba" #: ../bin/draksambashare:379 #, c-format msgid "Name of the share:" msgstr "Tên của điểm chia sẻ" #: ../bin/draksambashare:380 ../bin/draksambashare:596 #: ../bin/draksambashare:777 #, c-format msgid "Comment:" msgstr "Chú thích" #: ../bin/draksambashare:393 #, c-format msgid "" "Share with the same name already exist or share name empty, please choose " "another name." msgstr "" "Có vùng chia sẻ đã dùng tên này hoặc tên còn trống, vui lòng chọn tên khác." #: ../bin/draksambashare:400 #, c-format msgid "Can't create the directory, please enter a correct path." msgstr "Không thể tạo thư mục, vui lòng điền vào đường dẫn hợp lệ." #: ../bin/draksambashare:403 ../bin/draksambashare:632 #: ../bin/draksambashare:799 #, c-format msgid "Please enter a Comment for this share." msgstr "Vui lòng điền vào chú thích cho điểm chia sẻ này." #: ../bin/draksambashare:440 #, c-format msgid "pdf-gen - a PDF generator" msgstr "pdf-gen - công cụ tạo PDF" #: ../bin/draksambashare:441 #, c-format msgid "printers - all printers available" msgstr "printers - tất cả các máy in đang có" #: ../bin/draksambashare:445 #, c-format msgid "Add Special Printer share" msgstr "Thêm vào một điểm chia sẻ máy in" #: ../bin/draksambashare:448 #, c-format msgid "" "Goal of this wizard is to easily create a new special printer Samba share." msgstr "" "Mục đích của đồ thuật này là để tạo một điểm chia sẻ máy in thật dễ dàng." #: ../bin/draksambashare:455 #, c-format msgid "A PDF generator already exists." msgstr "Công cụ tạo PDF đã tồn tại." #: ../bin/draksambashare:479 #, c-format msgid "Printers and print$ already exist." msgstr "Máy in và print$ đã tồn tại." #: ../bin/draksambashare:529 ../bin/draksambashare:1199 #, c-format msgid "Congratulations" msgstr "Chúc mừng" #: ../bin/draksambashare:530 #, fuzzy, c-format msgid "The wizard successfully added the printer Samba share" msgstr "Đồ thuật đã tạo điểm chia sẻ Samba thành công" #: ../bin/draksambashare:551 #, c-format msgid "Please add or select a Samba printer share to be able to modify it." msgstr "Vui lòng thêm hoặc chọn điểm chia sẻ máy in để có thể sửa đổi nó." #: ../bin/draksambashare:579 #, c-format msgid "DrakSamba Printers entry" msgstr "" #: ../bin/draksambashare:592 #, c-format msgid "Printer share" msgstr "Máy in chia sẻ" #: ../bin/draksambashare:595 #, c-format msgid "Printer name:" msgstr "Tên máy in:" #: ../bin/draksambashare:601 ../bin/draksambashare:782 #, c-format msgid "Writable:" msgstr "Có thể Ghi" #: ../bin/draksambashare:602 ../bin/draksambashare:783 #, c-format msgid "Browseable:" msgstr "Có thể Duyệt" #: ../bin/draksambashare:609 #, c-format msgid "Printer access" msgstr "Kết nối đến máy in" #: ../bin/draksambashare:613 #, c-format msgid "Guest ok:" msgstr "" #: ../bin/draksambashare:614 #, c-format msgid "Create mode:" msgstr "Chế độ tạo:" #: ../bin/draksambashare:618 #, c-format msgid "Printer command" msgstr "Lệnh của máy in" #: ../bin/draksambashare:620 #, c-format msgid "Print command:" msgstr "Lệnh in" #: ../bin/draksambashare:621 #, c-format msgid "LPQ command:" msgstr "Lệnh LPQ" #: ../bin/draksambashare:622 #, c-format msgid "Printing:" msgstr "Đang in:" #: ../bin/draksambashare:638 #, c-format msgid "create mode should be numeric. ie: 0755." msgstr "Quyền tạo nên là số. chẳng hạn: 0755." #: ../bin/draksambashare:700 #, c-format msgid "DrakSamba entry" msgstr "" #: ../bin/draksambashare:705 #, c-format msgid "Please add or select a Samba share to be able to modify it." msgstr "Vui lòng thêm hoặc chọn điểm chia sẻ Samba để có thể thay đổi nó." #: ../bin/draksambashare:728 #, c-format msgid "Samba user access" msgstr "Quyền nối Samba của người dùng" #: ../bin/draksambashare:736 #, c-format msgid "Mask options" msgstr "Lựa chọn của Mask" #: ../bin/draksambashare:750 #, c-format msgid "Display options" msgstr "Lựa chọn của hiển thị" #: ../bin/draksambashare:772 #, c-format msgid "Samba share directory" msgstr "Thư mục chia sẻ Samba" #: ../bin/draksambashare:775 #, c-format msgid "Share name:" msgstr "Tên chia sẻ" #: ../bin/draksambashare:781 #, c-format msgid "Public:" msgstr "Công cộng" #: ../bin/draksambashare:805 #, c-format msgid "" "Create mask, create mode and directory mask should be numeric. ie: 0755." msgstr "Tạo mask, tạo quyền và thư mục nên là số. chẳng hạn: 0755." #: ../bin/draksambashare:812 #, c-format msgid "Please create this Samba user: %s" msgstr "Vui lòng tạo người dùng Samba: %s" #: ../bin/draksambashare:924 #, c-format msgid "Add Samba user" msgstr "" #: ../bin/draksambashare:939 #, c-format msgid "User information" msgstr "Thong tin người dùng" #: ../bin/draksambashare:941 #, c-format msgid "User name:" msgstr "Ngươì dùng:" #: ../bin/draksambashare:942 #, c-format msgid "Password:" msgstr "Mật khẩu:" #: ../bin/draksambashare:1056 #, c-format msgid "PDC - primary domain controller" msgstr "" #: ../bin/draksambashare:1057 #, c-format msgid "Standalone - standalone server" msgstr "" #: ../bin/draksambashare:1063 #, fuzzy, c-format msgid "Samba Wizard" msgstr "Người dùng của Samba" #: ../bin/draksambashare:1066 #, fuzzy, c-format msgid "Samba server configuration Wizard" msgstr "Cấu hình Thư Cảnh Báo" #: ../bin/draksambashare:1066 #, c-format msgid "" "Samba allows your server to behave as a file and print server for " "workstations running non-Linux systems." msgstr "" #: ../bin/draksambashare:1082 #, c-format msgid "PDC server: primary domain controller" msgstr "" #: ../bin/draksambashare:1082 #, c-format msgid "" "Server configured as a PDC is responsible for Windows authentication " "throughout the domain." msgstr "" #: ../bin/draksambashare:1082 #, c-format msgid "" "Single server installations may use smbpasswd or tdbsam password backends" msgstr "" #: ../bin/draksambashare:1082 #, c-format msgid "" "Domain master = yes, causes the server to register the NetBIOS name <pdc " "name>. This name will be recognized by other servers." msgstr "" #: ../bin/draksambashare:1099 #, c-format msgid "Wins support:" msgstr "" #: ../bin/draksambashare:1100 #, fuzzy, c-format msgid "admin users:" msgstr "Quản lý người dùng" #: ../bin/draksambashare:1100 #, c-format msgid "root @adm" msgstr "" #: ../bin/draksambashare:1101 #, c-format msgid "Os level:" msgstr "" #: ../bin/draksambashare:1101 #, c-format msgid "" "The global os level option dictates the operating system level at which " "Samba will masquerade during a browser election. If you wish to have Samba " "win an election and become the master browser, you can set the level above " "that of the operating system on your network with the highest current value. " "ie: os level = 34" msgstr "" #: ../bin/draksambashare:1105 #, c-format msgid "The domain is wrong." msgstr "" #: ../bin/draksambashare:1112 #, fuzzy, c-format msgid "Workgroup" msgstr "Ép nhóm" #: ../bin/draksambashare:1112 #, c-format msgid "Samba needs to know the Windows Workgroup it will serve." msgstr "" #: ../bin/draksambashare:1119 ../bin/draksambashare:1183 #, fuzzy, c-format msgid "Workgroup:" msgstr "Ép nhóm" #: ../bin/draksambashare:1120 #, fuzzy, c-format msgid "Netbios name:" msgstr "Tên máy" #: ../bin/draksambashare:1124 #, c-format msgid "The Workgroup is wrong." msgstr "" #: ../bin/draksambashare:1131 ../bin/draksambashare:1141 #, fuzzy, c-format msgid "Security mode" msgstr "Chính sách bảo mật" #: ../bin/draksambashare:1131 #, c-format msgid "" "User level: the client sends a session setup request directly following " "protocol negotiation. This request provides a username and password." msgstr "" #: ../bin/draksambashare:1131 #, c-format msgid "Share level: the client authenticates itself separately for each share" msgstr "" #: ../bin/draksambashare:1131 #, c-format msgid "" "Domain level: provides a mechanism for storing all user and group accounts " "in a central, shared, account repository. The centralized account repository " "is shared between domain (security) controllers." msgstr "" #: ../bin/draksambashare:1142 #, fuzzy, c-format msgid "Hosts allow" msgstr "Tên máy chủ" #: ../bin/draksambashare:1147 #, c-format msgid "Server Banner." msgstr "" #: ../bin/draksambashare:1147 #, c-format msgid "" "The banner is the way this server will be described in the Windows " "workstations." msgstr "" #: ../bin/draksambashare:1152 #, c-format msgid "Banner:" msgstr "" #: ../bin/draksambashare:1156 #, c-format msgid "The Server Banner is incorrect." msgstr "" #: ../bin/draksambashare:1163 #, fuzzy, c-format msgid "Samba Log" msgstr "Người dùng của Samba" #: ../bin/draksambashare:1163 #, c-format msgid "" "Log file: use file.%m to use a separate log file for each machine that " "connects" msgstr "" #: ../bin/draksambashare:1163 #, c-format msgid "Log level: set the log (verbosity) level (0 <= log level <= 10)" msgstr "" #: ../bin/draksambashare:1163 #, c-format msgid "Max Log size: put a capping on the size of the log files (in Kb)." msgstr "" #: ../bin/draksambashare:1170 ../bin/draksambashare:1185 #, fuzzy, c-format msgid "Log file:" msgstr "Hồ sơ" #: ../bin/draksambashare:1171 #, c-format msgid "Max log size:" msgstr "" #: ../bin/draksambashare:1172 #, fuzzy, c-format msgid "Log level:" msgstr "Mức độ" #: ../bin/draksambashare:1177 #, c-format msgid "The wizard collected the following parameters to configure Samba." msgstr "" #: ../bin/draksambashare:1177 #, c-format msgid "" "To accept these values, and configure your server, click the Next button or " "use the Back button to correct them." msgstr "" #: ../bin/draksambashare:1177 #, c-format msgid "" "If you have previously create some shares, they will appear in this " "configuration. Run 'drakwizard sambashare' to manage your shares." msgstr "" #: ../bin/draksambashare:1182 #, fuzzy, c-format msgid "Samba type:" msgstr "Người dùng của Samba" #: ../bin/draksambashare:1184 #, c-format msgid "Server banner:" msgstr "" #: ../bin/draksambashare:1199 #, fuzzy, c-format msgid "The wizard successfully configured your Samba server." msgstr "Đồ thuật đã tạo điểm chia sẻ Samba thành công" #: ../bin/draksambashare:1246 #, c-format msgid "The Samba wizard has unexpectedly failed:" msgstr "" #: ../bin/draksambashare:1277 #, fuzzy, c-format msgid "Manage Samba configuration" msgstr "Cấu hình Thư Cảnh Báo" #: ../bin/draksambashare:1365 #, c-format msgid "Failed to Modify Samba share." msgstr "Không thể thay đổi điểm chia sẻ Samba." #: ../bin/draksambashare:1374 #, c-format msgid "Failed to remove a Samba share." msgstr "Không thể xóa điểm chia sẻ Samba." #: ../bin/draksambashare:1381 #, c-format msgid "File share" msgstr "Tập tin chia sẻ" #: ../bin/draksambashare:1396 #, c-format msgid "Failed to Modify." msgstr "Không thể sửa đổi." #: ../bin/draksambashare:1405 #, c-format msgid "Failed to remove." msgstr "Không thể xóa." #: ../bin/draksambashare:1412 #, c-format msgid "Printers" msgstr "Máy in" #: ../bin/draksambashare:1424 #, c-format msgid "Failed to add user." msgstr "Không thể thêm người dùng." #: ../bin/draksambashare:1433 #, c-format msgid "Failed to change user password." msgstr "Không thể thay đổi mật khẩu của người dùng." #: ../bin/draksambashare:1445 #, c-format msgid "Failed to delete user." msgstr "Không thể xóa người dùng." #: ../bin/draksambashare:1450 #, c-format msgid "Userdrake" msgstr "Userdrake" #: ../bin/draksambashare:1458 #, c-format msgid "Samba Users" msgstr "Người dùng của Samba" #: ../bin/draksambashare:1449 #, fuzzy, c-format msgid "Please configure your Samba server" msgstr "Không thể thay đổi điểm chia sẻ Samba." #: ../bin/draksambashare:1449 #, c-format msgid "" "It seems this is the first time you run this tool.\n" "A wizard will appear to configure a basic Samba server" msgstr "" #: ../bin/draksambashare:1457 #, c-format msgid "DrakSamba manage Samba shares" msgstr "DrakSamba quản lý điểm chia sẻ Samba" #: ../bin/drakvpn-old:65 #, c-format msgid "DrakVPN" msgstr "DrakVPN" #: ../bin/drakvpn-old:87 #, c-format msgid "The VPN connection is enabled." msgstr "Kết nối VPN hoạt động." #: ../bin/drakvpn-old:88 #, c-format msgid "" "The setup of a VPN connection has already been done.\n" "\n" "It's currently enabled.\n" "\n" "What would you like to do?" msgstr "" "Hòan thành việc thiết lập kết nối VPN.\n" "\n" "Hiện thời nó đang hoạt động.\n" "\n" "Bạn muốn làm gì?" #: ../bin/drakvpn-old:93 #, c-format msgid "disable" msgstr "Tắt" #: ../bin/drakvpn-old:93 ../bin/drakvpn-old:119 #, c-format msgid "reconfigure" msgstr "cấu hình lại" #: ../bin/drakvpn-old:93 ../bin/drakvpn-old:119 ../bin/drakvpn-old:432 #, c-format msgid "dismiss" msgstr "gạt bỏ" #: ../bin/drakvpn-old:97 #, c-format msgid "Disabling VPN..." msgstr "Đang tắt VNP..." #: ../bin/drakvpn-old:106 #, c-format msgid "The VPN connection is now disabled." msgstr "Kết nối VPN bây giờ đã tắt." #: ../bin/drakvpn-old:113 #, c-format msgid "VPN connection currently disabled" msgstr "Hiện thời kết nối VPN đang tắt" #: ../bin/drakvpn-old:114 #, c-format msgid "" "The setup of a VPN connection has already been done.\n" "\n" "It's currently disabled.\n" "\n" "What would you like to do?" msgstr "" "Thiết lập kết nối VPN đã thực hiện xong.\n" "\n" "Hiện tại nó đang tắt.\n" "\n" "Bạn muốn làm gì?" #: ../bin/drakvpn-old:119 #, c-format msgid "enable" msgstr "cho hoạt động" #: ../bin/drakvpn-old:127 #, c-format msgid "Enabling VPN..." msgstr "Bật chạy VPN..." #: ../bin/drakvpn-old:133 #, c-format msgid "The VPN connection is now enabled." msgstr "Bây giờ kết nối VPN hoạt động." #: ../bin/drakvpn-old:147 ../bin/drakvpn-old:164 #, c-format msgid "Simple VPN setup." msgstr "Thiết lập VPN đơn giản" #: ../bin/drakvpn-old:148 #, c-format msgid "" "You are about to configure your computer to use a VPN connection.\n" "\n" "With this feature, computers on your local private network and computers\n" "on some other remote private networks, can share resources, through\n" "their respective firewalls, over the Internet, in a secure manner. \n" "\n" "The communication over the Internet is encrypted. The local and remote\n" "computers look as if they were on the same network.\n" "\n" "Make sure you have configured your Network/Internet access using\n" "drakconnect before going any further." msgstr "" "Bạn chuẩn bị cấu hình kết nối VPN cho máy tính.\n" "\n" "Với tính năng này, các máy trong mạng riêng của bạn và các máy ở mạng\n" "riêng khác có thể chia sẻ tài nguyên qua hệ thống tường lửa, truyền trên\n" "Internet, bằng phương thức bảo mật. \n" "\n" "Truyền thông qua Internet được bảo mật. Máy tính cục bộ và máy ở xa\n" "được xem như trong cùng một mạng.\n" "\n" "Hãy đảm bảo là truy cập mạng/Internet của bạn đã được cấu hình bằng\n" "drakconnect trước khi thực hiện cấu hình tiếp." #: ../bin/drakvpn-old:165 #, c-format msgid "" "VPN connection.\n" "\n" "This program is based on the following projects:\n" " - FreeSwan: \t\t\thttp://www.freeswan.org/\n" " - Super-FreeSwan: \t\thttp://www.freeswan.ca/\n" " - ipsec-tools: \t\t\thttp://ipsec-tools.sourceforge.net/\n" " - ipsec-howto: \t\thttp://www.ipsec-howto.org\n" " - the docs and man pages coming with the %s package\n" "\n" "Please read AT LEAST the ipsec-howto docs\n" "before going any further." msgstr "" "Kết nối mạng riêng ảo (VPN).\n" "\n" "Chương trình này dựa trên các dự án sau:\n" " - FreeSwan: \t\t\thttp://www.freeswan.org/\n" " - Super-FreeSwan: \t\thttp://www.freeswan.ca/\n" " - ipsec-tools: \t\t\thttp://ipsec-tools.sourceforge.net/\n" " - ipsec-howto: \t\thttp://www.ipsec-howto.org\n" " - the docs and man pages coming with the %s package\n" "\n" "Hãy đọc tài liệu ipsec-howto trước khi\n" "thực hiện tiếp." #: ../bin/drakvpn-old:208 #, c-format msgid "Problems installing package %s" msgstr "Các trục trặc cài đặt gói %s" #: ../bin/drakvpn-old:222 #, c-format msgid "Security Policies" msgstr "Chính sách bảo mật" #: ../bin/drakvpn-old:222 #, c-format msgid "IKE daemon racoon" msgstr "IKE daemon racoon" #: ../bin/drakvpn-old:224 #, c-format msgid "Configuration file" msgstr "Tập tin cấu hình" #: ../bin/drakvpn-old:225 #, c-format msgid "" "Configuration step!\n" "\n" "You need to define the Security Policies and then to \n" "configure the automatic key exchange (IKE) daemon. \n" "The KAME IKE daemon we're using is called 'racoon'.\n" "\n" "What would you like to configure?\n" msgstr "" "Bước cấu hình!\n" "\n" "Bạn cần định nghĩa Chính Sách Bảo Mật và sau đó \n" "sẽ cấu hình automatic key exchange (IKE) daemon. \n" "KAME IKE daemon đang dùng gọi là 'racoon'.\n" "\n" "Bạn muốn cấu hình cái gì?\n" #: ../bin/drakvpn-old:245 ../bin/drakvpn-old:382 #, c-format msgid "%s entries" msgstr "mục nhập %s" #: ../bin/drakvpn-old:246 #, c-format msgid "" "The %s file contents\n" "is divided into sections.\n" "\n" "You can now:\n" "\n" " - display, add, edit, or remove sections, then\n" " - commit the changes\n" "\n" "What would you like to do?\n" msgstr "" "Nội dung tập tin %s\n" "được chia thành các phần (section).\n" "\n" "Bạn có thể:\n" "\n" " - hiển thị, thêm, hiệu chỉnh hay xoá bỏ section, và\n" " - xác nhận sự thay đổi\n" "\n" "Bạn muốn làm gì?\n" #: ../bin/drakvpn-old:253 ../bin/drakvpn-old:391 #, c-format msgid "" "_:display here is a verb\n" "Display" msgstr "Hiển thị" #: ../bin/drakvpn-old:253 ../bin/drakvpn-old:391 #, c-format msgid "Edit" msgstr "Biên soạn" #: ../bin/drakvpn-old:253 ../bin/drakvpn-old:391 #, c-format msgid "Commit" msgstr "Xác nhận" #: ../bin/drakvpn-old:267 ../bin/drakvpn-old:271 ../bin/drakvpn-old:406 #: ../bin/drakvpn-old:410 #, c-format msgid "" "_:display here is a verb\n" "Display configuration" msgstr "Cấu hình hiển thị" #: ../bin/drakvpn-old:272 #, c-format msgid "" "The %s file does not exist.\n" "\n" "This must be a new configuration.\n" "\n" "You'll have to go back and choose 'add'.\n" msgstr "" "Tập tin %s không tồn tại.\n" "\n" "Nó hẳn là một cấu hình mới.\n" "\n" "Bạn phải trở về trước và nhấn 'Thêm'.\n" #: ../bin/drakvpn-old:301 #, c-format msgid "" "Add a Security Policy.\n" "\n" "You can now add a Security Policy.\n" "\n" "Choose continue when you are done to write the data.\n" msgstr "" "Thêm chính sách bảo mật.\n" "\n" "Bây giờ bạn có thể thực hiện.\n" "\n" "Hãy chọn tiếp tục khi đã nhập xong dữ liệu.\n" #: ../bin/drakvpn-old:333 ../bin/drakvpn-old:523 #, c-format msgid "Edit section" msgstr "Hiệu chỉnh bộ phận" #: ../bin/drakvpn-old:334 #, c-format msgid "" "Your %s file has several sections or connections.\n" "\n" "You can choose here below the one you want to edit \n" "and then click on next.\n" msgstr "" "Tập tin %s có một số section hay kết nối.\n" "\n" "Bạn có thể chọn bên dưới đây cái nào bạn muốn\n" "hiệu chỉnh và nhấn tiếp theo.\n" #: ../bin/drakvpn-old:337 ../bin/drakvpn-old:357 ../bin/drakvpn-old:528 #: ../bin/drakvpn-old:574 #, c-format msgid "Section names" msgstr "Tên bộ phận" #: ../bin/drakvpn-old:344 #, c-format msgid "" "Edit a Security Policy.\n" "\n" "You can now edit a Security Policy.\n" "\n" "Choose continue when you are done to write the data.\n" msgstr "" "Hiệu chỉnh chính sách bảo mật.\n" "\n" "Bây giờ bạn có thể hiệu chỉnh.\n" "\n" "Hãy chọn tiếp tục khi đã nhập xong dữ liệu.\n" #: ../bin/drakvpn-old:353 ../bin/drakvpn-old:570 #, c-format msgid "Remove section" msgstr "Gỡbỏ bộ phận" #: ../bin/drakvpn-old:354 ../bin/drakvpn-old:571 #, c-format msgid "" "Your %s file has several sections or connections.\n" "\n" "You can choose here below the one you want to remove\n" "and then click on next.\n" msgstr "" "Tập tin %s có một số section hoặc kết nối.\n" "\n" "Bạn có thể chọn một mục nhập section bên dưới\n" "để xoá bỏ rồi nhấn tiếp theo.\n" #: ../bin/drakvpn-old:383 #, c-format msgid "" "The racoon.conf file configuration.\n" "\n" "The contents of this file is divided into sections.\n" "You can now:\n" " - display \t\t (display the file contents)\n" " - add\t\t\t (add one section)\n" " - edit \t\t\t (modify parameters of an existing section)\n" " - remove \t\t (remove an existing section)\n" " - commit \t\t (writes the changes to the real file)" msgstr "" "Cấu hình tập tin racoon.conf\n" "\n" "Nội dung của tập tin này được chia thành các section.\n" "Bạn có thể:\n" " - display \t\t (hiển thị nội dung tập tin)\n" " - add\t\t\t (thêm một section)\n" " - edit \t\t\t (thay đổi các tham số của section hiện có)\n" " - remove \t\t (bỏ một section hiện có)\n" " - commit \t\t (ghi các thay đổi vào tập tin)" #: ../bin/drakvpn-old:411 #, c-format msgid "" "The %s file does not exist\n" "\n" "This must be a new configuration.\n" "\n" "You'll have to go back and choose configure.\n" msgstr "" "Tập tin %s không tồn tại\n" "\n" "Đây phải là một cấu hình mới.\n" "\n" "Bạn phải quay lại và chọn cấu hình.\n" #: ../bin/drakvpn-old:425 #, c-format msgid "racoon.conf entries" msgstr "mục nhập racoon.conf" #: ../bin/drakvpn-old:426 #, c-format msgid "" "The 'add' sections step.\n" "\n" "Here below is the racoon.conf file skeleton:\n" "\t'path'\n" "\t'remote'\n" "\t'sainfo' \n" "\n" "Choose the section you would like to add.\n" msgstr "" "Bước 'thêm' các section.\n" "\n" "Dưới đây là bộ khung của tập tin acoon.conf:\n" "\t'path'\n" "\t'remote'\n" "\t'sainfo' \n" "\n" "Hãy chọn section mà bạn muốn thêm.\n" #: ../bin/drakvpn-old:432 #, c-format msgid "path" msgstr "đường dẫn" #: ../bin/drakvpn-old:432 #, c-format msgid "remote" msgstr "từ xa" #: ../bin/drakvpn-old:432 #, c-format msgid "sainfo" msgstr "sainfo" #: ../bin/drakvpn-old:440 #, c-format msgid "" "The 'add path' section step.\n" "\n" "The path sections have to be on top of your racoon.conf file.\n" "\n" "Put your mouse over the certificate entry to obtain online help." msgstr "" "Bước tạo 'add path' section.\n" "\n" "Các path section phải nằm ở đầu tập tin racoon.conf\n" "\n" "Nhấn chuột lên certificate entry để nhận trợ giúp." #: ../bin/drakvpn-old:443 #, c-format msgid "path type" msgstr "Loại đường dẫn" #: ../bin/drakvpn-old:447 #, c-format msgid "" "path include path: specifies a path to include\n" "a file. See File Inclusion.\n" "\tExample: path include '/etc/racoon'\n" "\n" "path pre_shared_key file: specifies a file containing\n" "pre-shared key(s) for various ID(s). See Pre-shared key File.\n" "\tExample: path pre_shared_key '/etc/racoon/psk.txt' ;\n" "\n" "path certificate path: racoon(8) will search this directory\n" "if a certificate or certificate request is received.\n" "\tExample: path certificate '/etc/cert' ;\n" "\n" "File Inclusion: include file \n" "other configuration files can be included.\n" "\tExample: include \"remote.conf\" ;\n" "\n" "Pre-shared key File: Pre-shared key file defines a pair\n" "of the identifier and the shared secret key which are used at\n" "Pre-shared key authentication method in phase 1." msgstr "" "path include path: chỉ ra đường dẫn trong tập\n" "tin. Hãy xem File Inclusion.\n" "\tVí dụ: path include '/etc/racoon'\n" "\n" "path pre_shared_key file: chỉ ra tập tin có chứa\n" "pre-shared key(s) cho các ID. Hãy xem Pre-shared key File.\n" "\tVí dụ: path pre_shared_key '/etc/racoon/psk.txt' ;\n" "\n" "path certificate path: racoon(8) sẽ tìm kiếm trong thư mục\n" "này nếu nhận được certificate hay certificate request.\n" "\tVí dụ: path certificate '/etc/cert' ;\n" "\n" "File Inclusion: include file \n" "other configuration files can be included.\n" "\tExample: include \"remote.conf\" ;\n" "\n" "Pre-shared key File: Pre-shared key file defines a pair\n" "of the identifier and the shared secret key which are used at\n" "Pre-shared key authentication method in phase 1." #: ../bin/drakvpn-old:467 ../bin/drakvpn-old:560 #, c-format msgid "real file" msgstr "tập tin thực" #: ../bin/drakvpn-old:490 #, c-format msgid "" "Make sure you already have the path sections\n" "on the top of your racoon.conf file.\n" "\n" "You can now choose the remote settings.\n" "Choose continue or previous when you are done.\n" msgstr "" "Đảm bảo là đã có các path section\n" "ở phần đầu của tập tin racoon.conf rồi.\n" "\n" "Bây giờ có thể chọn các thiết lập từ xa.\n" "Chọn tiếp tục hay về trước khi chọn xong.\n" #: ../bin/drakvpn-old:507 #, c-format msgid "" "Make sure you already have the path sections\n" "on the top of your %s file.\n" "\n" "You can now choose the sainfo settings.\n" "Choose continue or previous when you are done.\n" msgstr "" "Đảm bảo là đã có các path section ở\n" "phần đầu của tập tin %s rồi.\n" "\n" "Bây giờ có thể chọn các thiết lập sainfo.\n" "Chọn tiếp tục hay về trước khi đã chọn xong.\n" #: ../bin/drakvpn-old:524 #, c-format msgid "" "Your %s file has several sections or connections.\n" "\n" "You can choose here in the list below the one you want\n" "to edit and then click on next.\n" msgstr "" "Tập tin %s có một số section hoặc kết nối.\n" "\n" "Bạn có thể chọn trong danh sách dưới đây\n" "cái mà bạn muốn hiệu chỉnh rồi nhấn tiếp theo.\n" #: ../bin/drakvpn-old:535 #, c-format msgid "" "Your %s file has several sections.\n" "\n" "\n" "You can now edit the remote section entries.\n" "\n" "Choose continue when you are done to write the data.\n" msgstr "" "Tập tin %s có một số section.\n" "\n" "\n" "Bạn có thể hiệu chỉnh mục nhập remote section.\n" "\n" "Chọn tiếp tục khi đã chọn xong để ghi lại dữ liệu.\n" #: ../bin/drakvpn-old:544 #, c-format msgid "" "Your %s file has several sections.\n" "\n" "You can now edit the sainfo section entries.\n" "\n" "Choose continue when you are done to write the data." msgstr "" "Tập tin %s có một số section.\n" "\n" "Bạn có thể hiệu chỉnh mục nhập sainfo section.\n" "\n" "Chọn tiếp tục khi đã chọn xong để ghi lại dữ liệu." #: ../bin/drakvpn-old:552 #, c-format msgid "" "This section has to be on top of your\n" "%s file.\n" "\n" "Make sure all other sections follow these path\n" "sections.\n" "\n" "You can now edit the path entries.\n" "\n" "Choose continue or previous when you are done.\n" msgstr "" "Section này phải nằm ở phần đầu tập\n" "tin %s.\n" "\n" "Hãy đảm bảo là mọi section khác đi theo các path\n" "section này.\n" "\n" "Bạn có thể hiệu chỉnh mục nhập đường dẫn (path entry).\n" "\n" "Chọn tiếp tục hoặc về trước khi bạn làm xong.\n" #: ../bin/drakvpn-old:559 #, c-format msgid "path_type" msgstr "path_type" #: ../bin/drakvpn-old:599 #, c-format msgid "Congratulations!" msgstr "Chúc mừng!" #: ../bin/drakvpn-old:600 #, c-format msgid "" "Everything has been configured.\n" "\n" "You may now share resources through the Internet,\n" "in a secure way, using a VPN connection.\n" "\n" "You should make sure that the tunnels shorewall\n" "section is configured." msgstr "" "Đã cấu hình xong mọi thứ.\n" "\n" "Bây giờ bạn có thể chia sẻ tài nguyên qua Internet,\n" "với phương cách bảo mật, sử dụng kết nối VPN.\n" "\n" "Bạn cần đảm bảo là đã cấu hình tunnels shorewall\n" "section." #: ../bin/drakvpn-old:620 #, c-format msgid "Sainfo source address" msgstr "" #: ../bin/drakvpn-old:621 #, c-format msgid "" "sainfo (source_id destination_id | anonymous) { statements }\n" "defines the parameters of the IKE phase 2\n" "(IPsec-SA establishment).\n" "\n" "source_id and destination_id are constructed like:\n" "\n" "\taddress address [/ prefix] [[port]] ul_proto\n" "\n" "Examples: \n" "\n" "sainfo anonymous (accepts connections from anywhere)\n" "\tleave blank this entry if you want anonymous\n" "\n" "sainfo address 203.178.141.209 any address 203.178.141.218 any\n" "\t203.178.141.209 is the source address\n" "\n" "sainfo address 172.16.1.0/24 any address 172.16.2.0/24 any\n" "\t172.16.1.0/24 is the source address" msgstr "" "sainfo (source_id destination_id | anonymous) { statements }\n" "định nghĩa các tham số của IKE phase 2\n" "(Việc thiết lập IPsec-SA).\n" "\n" "source_id và destination_id có cấu trúc như sau:\n" "\n" "\taddress address [/ prefix] [[port]] ul_proto\n" "\n" "Ví dụ: \n" "\n" "sainfo anonymous (chấp nhận mọi kết nối từ bất cứ đâu)\n" "\tđể trống mục này nếu bạn muốn anonymous\n" "\n" "sainfo address 203.178.141.209 any address 203.178.141.218 any\n" "\t203.178.141.209 là địa chỉ nguồn\n" "\n" "sainfo address 172.16.1.0/24 any address 172.16.2.0/24 any\n" "\t172.16.1.0/24 là địa chỉ nguồn" #: ../bin/drakvpn-old:638 #, c-format msgid "Sainfo source protocol" msgstr "Giao thức nguồn Sainfo" #: ../bin/drakvpn-old:639 #, c-format msgid "" "sainfo (source_id destination_id | anonymous) { statements }\n" "defines the parameters of the IKE phase 2\n" "(IPsec-SA establishment).\n" "\n" "source_id and destination_id are constructed like:\n" "\n" "\taddress address [/ prefix] [[port]] ul_proto\n" "\n" "Examples: \n" "\n" "sainfo anonymous (accepts connections from anywhere)\n" "\tleave blank this entry if you want anonymous\n" "\n" "sainfo address 203.178.141.209 any address 203.178.141.218 any\n" "\tthe first 'any' allows any protocol for the source" msgstr "" "sainfo (source_id destination_id | anonymous) { statements }\n" "định nghĩa các tham số cho IKE phase 2\n" "(Thiết lập IPsec-SA).\n" "\n" "source_id and destination_id có cấu trúc:\n" "\n" "\taddress address [/ prefix] [[port]] ul_proto\n" "\n" "Ví dụ: \n" "\n" "sainfo anonymous (chấp nhận mọi kết nối từ bất cứ đâu)\n" "\tđể trống mục này nếu muốn anonymous\n" "\n" "sainfo address 203.178.141.209 any address 203.178.141.218 any\n" "\t 'any' đầu tiên cho phép mọi giao thức từ nguồn kết nối đến" #: ../bin/drakvpn-old:653 #, c-format msgid "Sainfo destination address" msgstr "Địa chỉ đích Sainfo" #: ../bin/drakvpn-old:654 #, c-format msgid "" "sainfo (source_id destination_id | anonymous) { statements }\n" "defines the parameters of the IKE phase 2\n" "(IPsec-SA establishment).\n" "\n" "source_id and destination_id are constructed like:\n" "\n" "\taddress address [/ prefix] [[port]] ul_proto\n" "\n" "Examples: \n" "\n" "sainfo anonymous (accepts connections from anywhere)\n" "\tleave blank this entry if you want anonymous\n" "\n" "sainfo address 203.178.141.209 any address 203.178.141.218 any\n" "\t203.178.141.218 is the destination address\n" "\n" "sainfo address 172.16.1.0/24 any address 172.16.2.0/24 any\n" "\t172.16.2.0/24 is the destination address" msgstr "" "sainfo (source_id destination_id | anonymous) { statements }\n" "định nghĩa tham số cho IKE phase 2\n" "(Thiết lập IPsec-SA).\n" "\n" "source_id và destination_id có cấu trúc như sau:\n" "\n" "\taddress address [/ prefix] [[port]] ul_proto\n" "\n" "Ví dụ: \n" "\n" "sainfo anonymous (chấp nhận mọi kết nối từ bất cứ đâu)\n" "\tđể trống mục nhập này nếu muốn anonymous\n" "\n" "sainfo address 203.178.141.209 any address 203.178.141.218 any\n" "\t203.178.141.218 là địa chỉ đích\n" "\n" "sainfo address 172.16.1.0/24 any address 172.16.2.0/24 any\n" "\t172.16.2.0/24 là địa chỉ đích" #: ../bin/drakvpn-old:671 #, c-format msgid "Sainfo destination protocol" msgstr "Giao thức đích Sainfo" #: ../bin/drakvpn-old:672 #, c-format msgid "" "sainfo (source_id destination_id | anonymous) { statements }\n" "defines the parameters of the IKE phase 2\n" "(IPsec-SA establishment).\n" "\n" "source_id and destination_id are constructed like:\n" "\n" "\taddress address [/ prefix] [[port]] ul_proto\n" "\n" "Examples: \n" "\n" "sainfo anonymous (accepts connections from anywhere)\n" "\tleave blank this entry if you want anonymous\n" "\n" "sainfo address 203.178.141.209 any address 203.178.141.218 any\n" "\tthe last 'any' allows any protocol for the destination" msgstr "" "sainfo (source_id destination_id | anonymous) { statements }\n" "định nghĩa các tham số cho IKE phase 2\n" "(Thiết lập IPsec-SA).\n" "\n" "source_id và destination_id có cấu trúc như sau:\n" "\n" "\taddress address [/ prefix] [[port]] ul_proto\n" "\n" "Ví dụ: \n" "\n" "sainfo anonymous (chấp nhận mọi kết nối từ bất cứ đâu)\n" "\tđể trống mục này nếu muốn anonymous\n" "\n" "sainfo address 203.178.141.209 any address 203.178.141.218 any\n" "\t 'any' cuối cùng cho phép mọi giao thức từ đích" #: ../bin/drakvpn-old:686 #, c-format msgid "PFS group" msgstr "Nhóm PFS" #: ../bin/drakvpn-old:688 #, c-format msgid "" "define the group of Diffie-Hellman exponentiations.\n" "If you do not require PFS then you can omit this directive.\n" "Any proposal will be accepted if you do not specify one.\n" "group is one of the following: modp768, modp1024, modp1536.\n" "Or you can define 1, 2, or 5 as the DH group number." msgstr "" "định ra nhóm mũ hoá Diffie-Hellman. nếu bạn không\n" "đòi hỏi PFS thì bạn có thể bỏ qua chỉ dẫn (directive) này.\n" "Bất kỳ yêu cầu nào sẽ được chấp nhận nếu không định ra.\n" "nhóm là một trong số sau: modp768, modp1024, modp1536.\n" "Hoặc bạn có thể định ra 1, 2, hay 5 làm số hiệu nhóm DH." #: ../bin/drakvpn-old:693 #, c-format msgid "Lifetime number" msgstr "Số lifetime" #: ../bin/drakvpn-old:694 #, c-format msgid "" "define a lifetime of a certain time which will be pro-\n" "posed in the phase 1 negotiations. Any proposal will be\n" "accepted, and the attribute(s) will not be proposed to\n" "the peer if you do not specify it(them). They can be\n" "individually specified in each proposal.\n" "\n" "Examples: \n" "\n" " lifetime time 1 min; # sec,min,hour\n" " lifetime time 1 min; # sec,min,hour\n" " lifetime time 30 sec;\n" " lifetime time 30 sec;\n" " lifetime time 60 sec;\n" "\tlifetime time 12 hour;\n" "\n" "So, here, the lifetime numbers are 1, 1, 30, 30, 60 and 12.\n" msgstr "" "định ra một lifetime cho thời gian cụ thể mà sẽ được\n" "đòi hỏi trong các phase 1 negotiation. Bất kỳ yêu cầu nào\n" "sẽ được chấp nhận và sẽ không đòi hỏi các thuộc tính\n" "(attribute) cho peer nếu không chỉ định chúng. Chúng có\n" "thể được định ra riêng cho từng yêu cầu (proposal).\n" "\n" "Ví dụ: \n" "\n" " lifetime time 1 min; # sec,min,hour\n" " lifetime time 1 min; # sec,min,hour\n" " lifetime time 30 sec;\n" " lifetime time 30 sec;\n" " lifetime time 60 sec;\n" "\tlifetime time 12 hour;\n" "\n" "Trong ví dụ này, số lifetime là 1, 1, 30, 30, 60 và 12.\n" #: ../bin/drakvpn-old:710 #, c-format msgid "Lifetime unit" msgstr "Đơn vị Lifetime" #: ../bin/drakvpn-old:712 #, c-format msgid "" "define a lifetime of a certain time which will be pro-\n" "posed in the phase 1 negotiations. Any proposal will be\n" "accepted, and the attribute(s) will not be proposed to\n" "the peer if you do not specify it(them). They can be\n" "individually specified in each proposal.\n" "\n" "Examples: \n" "\n" " lifetime time 1 min; # sec,min,hour\n" " lifetime time 1 min; # sec,min,hour\n" " lifetime time 30 sec;\n" " lifetime time 30 sec;\n" " lifetime time 60 sec;\n" "\tlifetime time 12 hour;\n" "\n" "So, here, the lifetime units are 'min', 'min', 'sec', 'sec', 'sec' and " "'hour'.\n" msgstr "" "chỉ định lifetime cho thời gian cụ thể sẽ được đòi hỏi\n" "trong các phase 1 negotiation. Bất kỳ yêu cầu nào cũng\n" "sẽ được chấp nhận, và sẽ không đòi hỏi các thuộc tính\n" "(attribute) cho peer nếu bạn không chỉ định. Chúng có thể\n" "được chỉ ra riêng trong từng yêu cầu (proposal).\n" "\n" "Ví dụ: \n" "\n" " lifetime time 1 min; # sec,min,hour\n" " lifetime time 1 min; # sec,min,hour\n" " lifetime time 30 sec;\n" " lifetime time 30 sec;\n" " lifetime time 60 sec;\n" "\tlifetime time 12 hour;\n" "\n" "Trong ví dụ này, đơn vị lifetime là 'min', 'min', 'sec', 'sec', 'sec' và " "'hour'.\n" #: ../bin/drakvpn-old:728 ../bin/drakvpn-old:813 #, c-format msgid "Encryption algorithm" msgstr "Thuật toán mã hóa" #: ../bin/drakvpn-old:730 #, c-format msgid "Authentication algorithm" msgstr "Thuật toán chứng thực" #: ../bin/drakvpn-old:732 #, c-format msgid "Compression algorithm" msgstr "Thuật toán nén" #: ../bin/drakvpn-old:733 #, c-format msgid "deflate" msgstr "giảm" #: ../bin/drakvpn-old:740 #, c-format msgid "Remote" msgstr "Từ xa" #: ../bin/drakvpn-old:741 #, c-format msgid "" "remote (address | anonymous) [[port]] { statements }\n" "specifies the parameters for IKE phase 1 for each remote node.\n" "The default port is 500. If anonymous is specified, the state-\n" "ments apply to all peers which do not match any other remote\n" "directive.\n" "\n" "Examples: \n" "\n" "remote anonymous\n" "remote ::1 [8000]" msgstr "" "remote (address | anonymous) [[port]] { statements }\n" "định ra các tham số cho IKE phase 1 cho từng remote node.\n" "Port mặc định là 500. Nếu anonymous được chỉ định, các khai\n" "báo sẽ được áp dụng cho các peer không khớp với bất kỳ chỉ\n" "dẫn từ xa nào (remote directive).\n" "\n" "Ví dụ: \n" "\n" "remote anonymous\n" "remote ::1 [8000]" #: ../bin/drakvpn-old:749 #, c-format msgid "Exchange mode" msgstr "Chế độ trao đổi" #: ../bin/drakvpn-old:751 #, c-format msgid "" "defines the exchange mode for phase 1 when racoon is the\n" "initiator. Also it means the acceptable exchange mode\n" "when racoon is responder. More than one mode can be\n" "specified by separating them with a comma. All of the\n" "modes are acceptable. The first exchange mode is what\n" "racoon uses when it is the initiator.\n" msgstr "" "chỉ định exchange mode cho phase 1 khi racoon là\n" "initiator. Cũng như vậy nó có nghĩa là exchange mode\n" "được chấp nhận khi racoon là responder. Có thể chỉ định\n" "nhiều mode được tách bằng dấu phẩy. Toàn bộ các\n" "là được chấp nhận. Exchange mode đầu tiên là cái mà\n" "racoon sử dụng khi nó là initiator.\n" #: ../bin/drakvpn-old:757 #, c-format msgid "Generate policy" msgstr "Chính sách chung" #: ../bin/drakvpn-old:758 ../bin/drakvpn-old:774 ../bin/drakvpn-old:787 #, c-format msgid "off" msgstr "tắt" #: ../bin/drakvpn-old:758 ../bin/drakvpn-old:774 ../bin/drakvpn-old:787 #, c-format msgid "on" msgstr "bật" #: ../bin/drakvpn-old:759 #, c-format msgid "" "This directive is for the responder. Therefore you\n" "should set passive on in order that racoon(8) only\n" "becomes a responder. If the responder does not have any\n" "policy in SPD during phase 2 negotiation, and the direc-\n" "tive is set on, then racoon(8) will choose the first pro-\n" "posal in the SA payload from the initiator, and generate\n" "policy entries from the proposal. It is useful to nego-\n" "tiate with the client which is allocated IP address\n" "dynamically. Note that inappropriate policy might be\n" "installed into the responder's SPD by the initiator. So\n" "that other communication might fail if such policies\n" "installed due to some policy mismatches between the ini-\n" "tiator and the responder. This directive is ignored in\n" "the initiator case. The default value is off." msgstr "" "Chỉ dẫn (directive) này là cho responder. Vì thế bạn \n" "nên bật passive để racoon(8) chỉ trở thành một\n" "responder. Nếu responder không có bất kỳ chính sách\n" "nào trong SPD ở phase 2 negotiation, và chỉ dẫn (direc-\n" "tive) được bật, thì racoon(8) sẽ chọn yêu cầu đầu tiên\n" "trong SA payload từ initiator, và tạo các mục nhập chính\n" "sách (policy entry) từ yêu cầu (proposal). Việc này có ích\n" "khi negotiate với client được cấp phát IP address động.\n" "Lưu ý là chính sách không phù hợp có thể được cài đặt\n" "vào trong SPD của responder bởi initiator. Vì thế nên việc\n" "truyền thông khác sẽ bị lỗi nếu có chính sách không phù hợp\n" "installed due to some policy mismatches between the ini-\n" "tiator and the responder. This directive is ignored in\n" "the initiator case. The default value is off." #: ../bin/drakvpn-old:773 #, c-format msgid "Passive" msgstr "Thụ động" #: ../bin/drakvpn-old:775 #, c-format msgid "" "If you do not want to initiate the negotiation, set this\n" "to on. The default value is off. It is useful for a\n" "server." msgstr "" "Nếu không muốn sơ khởi negotiation, đặt nó \n" "thành on. Mặc định là off. Hữu ích cho một\n" "server." #: ../bin/drakvpn-old:778 #, c-format msgid "Certificate type" msgstr "Kiểu chứng thực" #: ../bin/drakvpn-old:780 #, c-format msgid "My certfile" msgstr "Tập tin chứng thực" #: ../bin/drakvpn-old:781 #, c-format msgid "Name of the certificate" msgstr "Tên chứng thực" #: ../bin/drakvpn-old:782 #, c-format msgid "My private key" msgstr "Khóa riêng của tôi (private key)" #: ../bin/drakvpn-old:783 #, c-format msgid "Name of the private key" msgstr "Tên khóa cá nhân (private key)" #: ../bin/drakvpn-old:784 #, c-format msgid "Peers certfile" msgstr "Chứng thực peer" #: ../bin/drakvpn-old:785 #, c-format msgid "Name of the peers certificate" msgstr "Tên chứng thực peer" #: ../bin/drakvpn-old:786 #, c-format msgid "Verify cert" msgstr "Thẩm tra chứng thực" #: ../bin/drakvpn-old:788 #, c-format msgid "" "If you do not want to verify the peer's certificate for\n" "some reason, set this to off. The default is on." msgstr "" "Nếu vì một lý do nào đó mà bạn không muốn kiểm tra\n" "chứng thực của peer, đặt nó thành off. Mặc định là on." #: ../bin/drakvpn-old:790 #, c-format msgid "My identifier" msgstr "Định danh của tôi" #: ../bin/drakvpn-old:791 #, c-format msgid "" "specifies the identifier sent to the remote host and the\n" "type to use in the phase 1 negotiation. address, FQDN,\n" "user_fqdn, keyid and asn1dn can be used as an idtype.\n" "they are used like:\n" "\tmy_identifier address [address];\n" "\t\tthe type is the IP address. This is the default\n" "\t\ttype if you do not specify an identifier to use.\n" "\tmy_identifier user_fqdn string;\n" "\t\tthe type is a USER_FQDN (user fully-qualified\n" "\t\tdomain name).\n" "\tmy_identifier FQDN string;\n" "\t\tthe type is a FQDN (fully-qualified domain name).\n" "\tmy_identifier keyid file;\n" "\t\tthe type is a KEY_ID.\n" "\tmy_identifier asn1dn [string];\n" "\t\tthe type is an ASN.1 distinguished name. If\n" "\t\tstring is omitted, racoon(8) will get DN from\n" "\t\tSubject field in the certificate.\n" "\n" "Examples: \n" "\n" "my_identifier user_fqdn \"myemail@mydomain.com\"" msgstr "" "chỉ ra identifier để gửi đến remote host và loại (type) để\n" "dùng trong phase 1 negotiation. address, FQDN,\n" "user_fqdn, keyid và asn1dn được dùng như một idtype.\n" "chúng được dùng như sau:\n" "\tmy_identifier address [address];\n" "\t\t type là IP address. Đây là type mặc định nếu bạn\n" "\t\tkhông chỉ ra một identifier để dùng.\n" "\tmy_identifier user_fqdn string;\n" "\t\ttype là một USER_FQDN (user fully-qualified\n" "\t\tdomain name).\n" "\tmy_identifier FQDN string;\n" "\t\ttype là một FQDN (fully-qualified domain name).\n" "\tmy_identifier keyid file;\n" "\t\ttype là một KEY_ID.\n" "\tmy_identifier asn1dn [string];\n" "\t\ttype là một ASN.1 distinguished name. Nếu\n" "\t\tstring bị bỏ sót, racoon(8) sẽ lấy DN từ trường\n" "\t\tSubject trong certificate.\n" "\n" "Ví dụ: \n" "\n" "my_identifier user_fqdn \"myemail@mydomain.com\"" #: ../bin/drakvpn-old:811 #, c-format msgid "Peers identifier" msgstr "Trình nhận dạng peer" #: ../bin/drakvpn-old:812 #, c-format msgid "Proposal" msgstr "Đề xuất" #: ../bin/drakvpn-old:814 #, c-format msgid "" "specify the encryption algorithm used for the\n" "phase 1 negotiation. This directive must be defined. \n" "algorithm is one of the following: \n" "\n" "DES, 3DES, blowfish, cast128 for oakley.\n" "\n" "For other transforms, this statement should not be used." msgstr "" "thuật toán mã hoá dùng cho phase 1 negotiation.\n" "Cần định nghĩa chỉ dẫn này. \n" "thuật toán có thể là: \n" "\n" "DES, 3DES, blowfish, cast128 cho oakley.\n" "\n" "Đối với các dạng thức khác, không nên dùng khai báo này." #: ../bin/drakvpn-old:821 #, c-format msgid "Hash algorithm" msgstr "Thuật toán Hash" #: ../bin/drakvpn-old:822 #, c-format msgid "Authentication method" msgstr "phương thức chứng thực" #: ../bin/drakvpn-old:823 #, c-format msgid "DH group" msgstr "Nhóm DH" #: ../bin/drakvpn-old:830 #, c-format msgid "Command" msgstr "Lệnh" #: ../bin/drakvpn-old:831 #, c-format msgid "Source IP range" msgstr "Dãy IP nguồn" #: ../bin/drakvpn-old:832 #, c-format msgid "Destination IP range" msgstr "Dãy IP đích" #: ../bin/drakvpn-old:833 #, c-format msgid "Upper-layer protocol" msgstr "Giao thức Upper-layer" #: ../bin/drakvpn-old:833 ../bin/drakvpn-old:840 #, c-format msgid "any" msgstr "bất kỳ" #: ../bin/drakvpn-old:835 #, c-format msgid "Flag" msgstr "Flag" #: ../bin/drakvpn-old:836 #, c-format msgid "Direction" msgstr "Hướng" #: ../bin/drakvpn-old:837 #, c-format msgid "IPsec policy" msgstr "Chính sách IPsec" #: ../bin/drakvpn-old:837 #, c-format msgid "ipsec" msgstr "ipsec" #: ../bin/drakvpn-old:837 #, c-format msgid "discard" msgstr "bỏ" #: ../bin/drakvpn-old:840 #, c-format msgid "Mode" msgstr "Phương thức" #: ../bin/drakvpn-old:840 #, c-format msgid "tunnel" msgstr "tunnel" #: ../bin/drakvpn-old:840 #, c-format msgid "transport" msgstr "vận chuyển" #: ../bin/drakvpn-old:842 #, c-format msgid "Source/destination" msgstr "Nguồn/đích" #: ../bin/drakvpn-old:843 #, c-format msgid "Level" msgstr "Mức độ" #: ../bin/drakvpn-old:843 #, c-format msgid "require" msgstr "yêu cầu" #: ../bin/drakvpn-old:843 #, c-format msgid "default" msgstr "mặc định" #: ../bin/drakvpn-old:843 #, c-format msgid "use" msgstr "dùng" #: ../bin/drakvpn-old:843 #, c-format msgid "unique" msgstr "đơn nhất" #: ../bin/net_applet:62 #, fuzzy, c-format msgid "Network is up on interface %s." msgstr "Mạng hoạt động ở giao diện %s" #: ../bin/net_applet:63 #, fuzzy, c-format msgid "IP address: %s" msgstr "Địa chỉ IP:" #: ../bin/net_applet:64 #, fuzzy, c-format msgid "Gateway: %s" msgstr "Cổng kết nối:" #: ../bin/net_applet:65 #, c-format msgid "Connected to %s (link level: %d %%)" msgstr "" #: ../bin/net_applet:67 #, fuzzy, c-format msgid "Network is down on interface %s." msgstr "Mạng hoạt động ở giao diện %s" #: ../bin/net_applet:75 ../bin/net_monitor:468 #, c-format msgid "Connect %s" msgstr "Kết nối %s" #: ../bin/net_applet:76 ../bin/net_monitor:468 #, c-format msgid "Disconnect %s" msgstr "Ngắt kết nối %s" #: ../bin/net_applet:77 #, c-format msgid "Monitor Network" msgstr "Theo dõi mạng" #: ../bin/net_applet:79 #, c-format msgid "Manage wireless networks" msgstr "Quản lý mạng không dây" #: ../bin/net_applet:81 #, fuzzy, c-format msgid "Manage VPN connections" msgstr "Quản lý kết nối" #: ../bin/net_applet:85 #, c-format msgid "Configure Network" msgstr "Cấu hình mạng" #: ../bin/net_applet:87 #, c-format msgid "Watched interface" msgstr "giao diện theo dõi" #: ../bin/net_applet:88 ../bin/net_applet:89 ../bin/net_applet:91 #, c-format msgid "Auto-detect" msgstr "Dò tìm Tự động" #: ../bin/net_applet:96 #, c-format msgid "Active interfaces" msgstr "" #: ../bin/net_applet:120 #, c-format msgid "Profiles" msgstr "Hồ sơ" #: ../bin/net_applet:130 ../lib/network/connection.pm:170 #: ../lib/network/drakvpn.pm:62 ../lib/network/vpn/openvpn.pm:365 #: ../lib/network/vpn/openvpn.pm:379 ../lib/network/vpn/openvpn.pm:390 #, fuzzy, c-format msgid "VPN connection" msgstr "Kết nối LAN" #: ../bin/net_applet:325 #, fuzzy, c-format msgid "Network connection" msgstr "Tùy Chọn Mạng" #: ../bin/net_applet:445 #, c-format msgid "More networks" msgstr "" #: ../bin/net_applet:472 #, c-format msgid "Interactive Firewall automatic mode" msgstr "" #: ../bin/net_applet:477 #, c-format msgid "Always launch on startup" msgstr "Luôn chạy khi khởi động" #: ../bin/net_applet:482 #, c-format msgid "Wireless networks" msgstr "Mạng không dây" #: ../bin/net_applet:489 ../bin/net_monitor:96 #, c-format msgid "Settings" msgstr "Các thiết lập" #: ../bin/net_applet:564 #, c-format msgid "Interactive Firewall: intrusion detected" msgstr "Tường lửa hoạt động: phát hiện có đột nhập" #: ../bin/net_applet:581 #, c-format msgid "What do you want to do with this attacker?" msgstr "Bạn muốn bỏ kẻ tấn công vào danh sách đen không?" #: ../bin/net_applet:584 #, c-format msgid "Attack details" msgstr "Thông tin tấn công" #: ../bin/net_applet:588 #, c-format msgid "Attack time: %s" msgstr "Thời gian tấn công: %s" #: ../bin/net_applet:589 #, c-format msgid "Network interface: %s" msgstr "Giao diện mạng: %s" #: ../bin/net_applet:590 #, c-format msgid "Attack type: %s" msgstr "Kiểu tấn công: %s" #: ../bin/net_applet:591 #, c-format msgid "Protocol: %s" msgstr "Giao thức: %s" #: ../bin/net_applet:592 #, c-format msgid "Attacker IP address: %s" msgstr "IP address của kẻ tấn công: %s" #: ../bin/net_applet:593 #, c-format msgid "Attacker hostname: %s" msgstr "Hostname của kẻ tấn công: %s" #: ../bin/net_applet:596 #, c-format msgid "Service attacked: %s" msgstr "Dịch vụ bị tấn công: %s" #: ../bin/net_applet:597 #, c-format msgid "Port attacked: %s" msgstr "Cổng bị tấn công: %s" #: ../bin/net_applet:599 #, c-format msgid "Type of ICMP attack: %s" msgstr "Kiểu tấn công ICMP: %s" #: ../bin/net_applet:604 #, c-format msgid "Always blacklist (do not ask again)" msgstr "Luôn trong danh sách đen (không phải hỏi lại)" #: ../bin/net_applet:619 #, c-format msgid "Ignore" msgstr "Bỏ qua" #: ../bin/net_applet:637 ../bin/net_applet:650 #, fuzzy, c-format msgid "Interactive Firewall: new service" msgstr "Tường lửa hoạt động: phát hiện có đột nhập" #: ../bin/net_applet:660 #, fuzzy, c-format msgid "Do you want to open this service?" msgstr "Bạn muốn cấu hình không?" #: ../bin/net_applet:663 #, fuzzy, c-format msgid "Remember this answer" msgstr "Ghi nhớ mật khẩu này" #: ../bin/net_monitor:60 ../bin/net_monitor:65 #, c-format msgid "Network Monitoring" msgstr "Giám sát mạng" #: ../bin/net_monitor:101 #, c-format msgid "Global statistics" msgstr "Thống kê toàn hệ thống" #: ../bin/net_monitor:104 #, c-format msgid "Instantaneous" msgstr "tức thời" #: ../bin/net_monitor:104 #, c-format msgid "Average" msgstr "Trung bình" #: ../bin/net_monitor:105 #, c-format msgid "" "Sending\n" "speed:" msgstr "" "Tốc độ\n" "gửi:" #: ../bin/net_monitor:105 ../bin/net_monitor:106 ../bin/net_monitor:111 #, c-format msgid "unknown" msgstr "không xác định" #: ../bin/net_monitor:106 #, c-format msgid "" "Receiving\n" "speed:" msgstr "" "Tốc độ\n" "nhận:" #: ../bin/net_monitor:110 #, c-format msgid "" "Connection\n" "time: " msgstr "" "Thời gian\n" "kết nối: " #: ../bin/net_monitor:117 #, c-format msgid "Use same scale for received and transmitted" msgstr "Dùng cùng scale để nhận và truyền" #: ../bin/net_monitor:136 #, c-format msgid "Wait please, testing your connection..." msgstr "Hãy chờ, đang thử kết nối của bạn ..." #: ../bin/net_monitor:185 ../bin/net_monitor:198 #, c-format msgid "Disconnecting from Internet " msgstr "Ngắt kết nối khỏi internet " #: ../bin/net_monitor:185 ../bin/net_monitor:198 #, c-format msgid "Connecting to Internet " msgstr "Kết nối vào Internet " #: ../bin/net_monitor:229 #, c-format msgid "Disconnection from Internet failed." msgstr "Không ngắt được kết nối Internet." #: ../bin/net_monitor:230 #, c-format msgid "Disconnection from Internet complete." msgstr "Hoàn thành việc ngắt kết nối Internet." #: ../bin/net_monitor:232 #, c-format msgid "Connection complete." msgstr "Hoàn thành kết nối." #: ../bin/net_monitor:233 #, c-format msgid "" "Connection failed.\n" "Verify your configuration in the Mandriva Linux Control Center." msgstr "" "Không kết nối được.\n" "Hãy kiểm tra cấu hình trong Trung Tâm Điều Khiển Mandriva Linux." #: ../bin/net_monitor:338 #, c-format msgid "Color configuration" msgstr "Cấu hình màu sắc" #: ../bin/net_monitor:395 ../bin/net_monitor:407 #, c-format msgid "sent: " msgstr "đã gửi: " #: ../bin/net_monitor:398 ../bin/net_monitor:411 #, c-format msgid "received: " msgstr "đã nhận: " #: ../bin/net_monitor:401 #, c-format msgid "average" msgstr "trung bình" #: ../bin/net_monitor:404 #, c-format msgid "Local measure" msgstr "Đo cục bộ" #: ../bin/net_monitor:461 #, c-format msgid "" "Warning, another internet connection has been detected, maybe using your " "network" msgstr "" "Cảnh báo, phát hiện thấy một kết nối Internet khác, có thể là đang dùng mạng " "của bạn" #: ../bin/net_monitor:472 #, c-format msgid "No internet connection configured" msgstr "Chưa có kết nối Internet nào được cấu hình" #: ../lib/network/connection.pm:16 #, c-format msgid "Unknown connection type" msgstr "Kiểu kết nối không xác định" #: ../lib/network/connection.pm:136 #, c-format msgid "Network access settings" msgstr "" #: ../lib/network/connection.pm:137 #, c-format msgid "Access settings" msgstr "" #: ../lib/network/connection.pm:138 #, fuzzy, c-format msgid "Address settings" msgstr "Thiết lập DVB adapter" #: ../lib/network/connection.pm:172 ../lib/network/connection/cable.pm:44 #: ../lib/network/connection/wireless.pm:43 ../lib/network/vpn/openvpn.pm:127 #: ../lib/network/vpn/openvpn.pm:171 ../lib/network/vpn/openvpn.pm:339 #, c-format msgid "None" msgstr "Không" #: ../lib/network/connection.pm:184 #, c-format msgid "Allow users to manage the connection" msgstr "" #: ../lib/network/connection.pm:185 #, c-format msgid "Start the connection at boot" msgstr "" #: ../lib/network/connection.pm:251 #, fuzzy, c-format msgid "Link detected on interface %s" msgstr "(dò tìm được tại cổng %s)" #: ../lib/network/connection.pm:252 ../lib/network/connection/ethernet.pm:274 #, c-format msgid "Link beat lost on interface %s" msgstr "" #: ../lib/network/connection/cable.pm:13 #, c-format msgid "Cable" msgstr "" #: ../lib/network/connection/cable.pm:14 #, fuzzy, c-format msgid "Cable modem" msgstr "Card loại: " #: ../lib/network/connection/cable.pm:45 #, c-format msgid "Use BPALogin (needed for Telstra)" msgstr "Dùng BPALogin (cần cho Telstra)" #: ../lib/network/connection/cellular.pm:47 #, c-format msgid "Access Point Name" msgstr "" #: ../lib/network/connection/cellular_bluetooth.pm:10 #, fuzzy, c-format msgid "Bluetooth" msgstr "Thiết bị bluetooth" #: ../lib/network/connection/cellular_bluetooth.pm:11 #, c-format msgid "Bluetooth Dial Up Networking" msgstr "" #: ../lib/network/connection/cellular_card.pm:8 #, c-format msgid "GPRS/Edge/3G" msgstr "" #: ../lib/network/connection/cellular_card.pm:67 #: ../lib/network/vpn/openvpn.pm:391 #, c-format msgid "PIN number" msgstr "" #: ../lib/network/connection/cellular_card.pm:130 #, fuzzy, c-format msgid "Unable to open device %s" msgstr "Không thể fork: %s" #: ../lib/network/connection/cellular_card.pm:155 #, fuzzy, c-format msgid "Please check that your SIM card is inserted." msgstr "" "\n" "Hãy kiểm tra mọi tùy chọn được cần đến.\n" #: ../lib/network/connection/cellular_card.pm:161 #, c-format msgid "" "You entered a wrong PIN code.\n" "Entering the wrong PIN code multiple times may lock your SIM card!" msgstr "" #: ../lib/network/connection/dvb.pm:12 #, c-format msgid "DVB" msgstr "" #: ../lib/network/connection/dvb.pm:13 #, c-format msgid "Satellite (DVB)" msgstr "" #: ../lib/network/connection/dvb.pm:56 #, c-format msgid "Adapter card" msgstr "Adapter card" #: ../lib/network/connection/dvb.pm:57 #, c-format msgid "Net demux" msgstr "Net demux" #: ../lib/network/connection/dvb.pm:58 #, c-format msgid "PID" msgstr "PID" #: ../lib/network/connection/ethernet.pm:10 #, c-format msgid "Ethernet" msgstr "" #: ../lib/network/connection/ethernet.pm:53 #, c-format msgid "Unable to find network interface for selected device (using %s driver)." msgstr "" #: ../lib/network/connection/ethernet.pm:61 ../lib/network/vpn/openvpn.pm:207 #, c-format msgid "Manual configuration" msgstr "Cấu hình thủ công" #: ../lib/network/connection/ethernet.pm:62 #, c-format msgid "Automatic IP (BOOTP/DHCP)" msgstr "IP tự động (BOOTP/DHCP)" #: ../lib/network/connection/ethernet.pm:116 #, fuzzy, c-format msgid "IP settings" msgstr "Thiết lập PLL :" #: ../lib/network/connection/ethernet.pm:129 #, c-format msgid "" "Please enter the IP configuration for this machine.\n" "Each item should be entered as an IP address in dotted-decimal\n" "notation (for example, 1.2.3.4)." msgstr "" "Hãy nhập cấu hình IP cho máy tính này.\n" "Mỗi một mục cần được điền vào một địa chỉ IP là ký hiệu thập\n" "phân và dấu chấm đầy đủ (VD: 1.2.3.4)." #: ../lib/network/connection/ethernet.pm:138 #, c-format msgid "DNS server 1" msgstr "DNS server 1" #: ../lib/network/connection/ethernet.pm:139 #, c-format msgid "DNS server 2" msgstr "DNS server 2" #: ../lib/network/connection/ethernet.pm:140 #, c-format msgid "Search domain" msgstr "Tìm kiếm miền" #: ../lib/network/connection/ethernet.pm:141 #, c-format msgid "By default search domain will be set from the fully-qualified host name" msgstr "" "Theo mặc định, tên miền dò tìm sẽ đặt theo máy chủ có tên đầy đủ hợp lệ" #: ../lib/network/connection/ethernet.pm:149 #, c-format msgid "Do not fallback to Zeroconf (169.254.0.0 network)" msgstr "" #: ../lib/network/connection/ethernet.pm:170 #, c-format msgid "Warning: IP address %s is usually reserved!" msgstr "Cảnh báo: địa chỉ IP %s hay bị đảo !" #: ../lib/network/connection/ethernet.pm:176 #, c-format msgid "%s already in use\n" msgstr "Đang dùng %s rồi\n" #: ../lib/network/connection/ethernet.pm:225 #, c-format msgid "Enable IPv6 to IPv4 tunnel" msgstr "" #: ../lib/network/connection/ethernet.pm:273 #, c-format msgid "Link beat detected on interface %s" msgstr "" #: ../lib/network/connection/ethernet.pm:276 #, c-format msgid "Requesting a network address on interface %s (%s protocol)..." msgstr "" #: ../lib/network/connection/ethernet.pm:277 #, c-format msgid "Got a network address on interface %s (%s protocol)" msgstr "" #: ../lib/network/connection/ethernet.pm:278 #, c-format msgid "Failed to get a network address on interface %s (%s protocol)" msgstr "" #: ../lib/network/connection/isdn.pm:8 #, c-format msgid "ISDN" msgstr "" #: ../lib/network/connection/isdn.pm:153 ../lib/network/netconnect.pm:197 #: ../lib/network/netconnect.pm:200 ../lib/network/netconnect.pm:218 #: ../lib/network/netconnect.pm:471 ../lib/network/netconnect.pm:567 #: ../lib/network/netconnect.pm:570 #, c-format msgid "Unlisted - edit manually" msgstr "Không liệt kê - tự điều chỉnh" #: ../lib/network/connection/isdn.pm:196 ../lib/network/netconnect.pm:403 #, c-format msgid "ISA / PCMCIA" msgstr "ISA / PCMCIA" #: ../lib/network/connection/isdn.pm:196 ../lib/network/netconnect.pm:403 #, c-format msgid "I do not know" msgstr "Tôi không biết" #: ../lib/network/connection/isdn.pm:197 ../lib/network/netconnect.pm:403 #, c-format msgid "PCI" msgstr "PCI" #: ../lib/network/connection/isdn.pm:198 ../lib/network/netconnect.pm:403 #, c-format msgid "USB" msgstr "USB" #. -PO: POTS means "Plain old telephone service" #: ../lib/network/connection/pots.pm:10 #, c-format msgid "POTS" msgstr "" #. -PO: POTS means "Plain old telephone service" #. -PO: remove it if it doesn't have an equivalent in your language #. -PO: for example, in French, it can be translated as "RTC" #: ../lib/network/connection/pots.pm:16 #, c-format msgid "Analog telephone modem (POTS)" msgstr "" #: ../lib/network/connection/providers/cellular.pm:13 #: ../lib/network/connection/providers/cellular.pm:20 #: ../lib/network/connection/providers/cellular.pm:25 #: ../lib/network/connection/providers/cellular.pm:30 #: ../lib/network/connection/providers/xdsl.pm:492 #: ../lib/network/connection/providers/xdsl.pm:504 #: ../lib/network/connection/providers/xdsl.pm:516 #: ../lib/network/connection/providers/xdsl.pm:528 #: ../lib/network/connection/providers/xdsl.pm:539 #: ../lib/network/connection/providers/xdsl.pm:551 #: ../lib/network/connection/providers/xdsl.pm:563 #: ../lib/network/connection/providers/xdsl.pm:575 #: ../lib/network/connection/providers/xdsl.pm:588 #: ../lib/network/connection/providers/xdsl.pm:599 #: ../lib/network/connection/providers/xdsl.pm:610 #: ../lib/network/netconnect.pm:33 #, c-format msgid "France" msgstr "Pháp" #: ../lib/network/connection/providers/xdsl.pm:47 #: ../lib/network/connection/providers/xdsl.pm:57 #, c-format msgid "Algeria" msgstr "Angêri" #: ../lib/network/connection/providers/xdsl.pm:67 #: ../lib/network/connection/providers/xdsl.pm:77 #, c-format msgid "Argentina" msgstr "Argentina" #: ../lib/network/connection/providers/xdsl.pm:87 #: ../lib/network/connection/providers/xdsl.pm:96 #: ../lib/network/connection/providers/xdsl.pm:105 #, c-format msgid "Austria" msgstr "Áo" #: ../lib/network/connection/providers/xdsl.pm:114 #: ../lib/network/connection/providers/xdsl.pm:124 #: ../lib/network/connection/providers/xdsl.pm:134 #, c-format msgid "Australia" msgstr "Úc" #: ../lib/network/connection/providers/xdsl.pm:144 #: ../lib/network/connection/providers/xdsl.pm:153 #: ../lib/network/connection/providers/xdsl.pm:164 #: ../lib/network/connection/providers/xdsl.pm:173 #: ../lib/network/connection/providers/xdsl.pm:182 #: ../lib/network/netconnect.pm:36 #, c-format msgid "Belgium" msgstr "Bỉ" #: ../lib/network/connection/providers/xdsl.pm:191 #: ../lib/network/connection/providers/xdsl.pm:201 #: ../lib/network/connection/providers/xdsl.pm:210 #: ../lib/network/connection/providers/xdsl.pm:219 #, c-format msgid "Brazil" msgstr "Braxin" #: ../lib/network/connection/providers/xdsl.pm:228 #: ../lib/network/connection/providers/xdsl.pm:237 #, c-format msgid "Bulgaria" msgstr "Bulgaria" #: ../lib/network/connection/providers/xdsl.pm:246 #: ../lib/network/connection/providers/xdsl.pm:255 #: ../lib/network/connection/providers/xdsl.pm:264 #: ../lib/network/connection/providers/xdsl.pm:273 #: ../lib/network/connection/providers/xdsl.pm:282 #: ../lib/network/connection/providers/xdsl.pm:291 #: ../lib/network/connection/providers/xdsl.pm:300 #: ../lib/network/connection/providers/xdsl.pm:309 #: ../lib/network/connection/providers/xdsl.pm:318 #: ../lib/network/connection/providers/xdsl.pm:327 #: ../lib/network/connection/providers/xdsl.pm:336 #: ../lib/network/connection/providers/xdsl.pm:345 #: ../lib/network/connection/providers/xdsl.pm:354 #: ../lib/network/connection/providers/xdsl.pm:363 #: ../lib/network/connection/providers/xdsl.pm:372 #: ../lib/network/connection/providers/xdsl.pm:381 #: ../lib/network/connection/providers/xdsl.pm:390 #: ../lib/network/connection/providers/xdsl.pm:399 #: ../lib/network/connection/providers/xdsl.pm:408 #: ../lib/network/connection/providers/xdsl.pm:417 #, c-format msgid "China" msgstr "Trung Quốc" #: ../lib/network/connection/providers/xdsl.pm:426 #: ../lib/network/connection/providers/xdsl.pm:436 #, c-format msgid "Czech Republic" msgstr "Czech Republic" #: ../lib/network/connection/providers/xdsl.pm:446 #: ../lib/network/connection/providers/xdsl.pm:455 #: ../lib/network/connection/providers/xdsl.pm:464 #, c-format msgid "Denmark" msgstr "Đan Mạch" #: ../lib/network/connection/providers/xdsl.pm:473 #, c-format msgid "Egypt" msgstr "Ai Cập" #: ../lib/network/connection/providers/xdsl.pm:483 #, c-format msgid "Finland" msgstr "Phần Lan" #: ../lib/network/connection/providers/xdsl.pm:621 #: ../lib/network/connection/providers/xdsl.pm:630 #: ../lib/network/connection/providers/xdsl.pm:640 #, c-format msgid "Germany" msgstr "Đức" #: ../lib/network/connection/providers/xdsl.pm:650 #, c-format msgid "Greece" msgstr "Hy lạp" #: ../lib/network/connection/providers/xdsl.pm:659 #, c-format msgid "Hungary" msgstr "Hungary" #: ../lib/network/connection/providers/xdsl.pm:668 #, c-format msgid "Ireland" msgstr "Ai len" #: ../lib/network/connection/providers/xdsl.pm:677 #: ../lib/network/connection/providers/xdsl.pm:687 #: ../lib/network/connection/providers/xdsl.pm:697 #: ../lib/network/connection/providers/xdsl.pm:707 #: ../lib/network/connection/providers/xdsl.pm:717 #: ../lib/network/connection/providers/xdsl.pm:727 #: ../lib/network/connection/providers/xdsl.pm:737 #: ../lib/network/connection/providers/xdsl.pm:747 #: ../lib/network/connection/providers/xdsl.pm:757 #: ../lib/network/connection/providers/xdsl.pm:767 #: ../lib/network/connection/providers/xdsl.pm:777 #, c-format msgid "Israel" msgstr "Israel" #: ../lib/network/connection/providers/xdsl.pm:787 #, c-format msgid "India" msgstr "Ấn Độ" #: ../lib/network/connection/providers/xdsl.pm:796 #: ../lib/network/connection/providers/xdsl.pm:805 #, c-format msgid "Iceland" msgstr "Iceland" #: ../lib/network/connection/providers/xdsl.pm:814 #: ../lib/network/connection/providers/xdsl.pm:825 #: ../lib/network/connection/providers/xdsl.pm:835 #: ../lib/network/connection/providers/xdsl.pm:846 #: ../lib/network/netconnect.pm:35 #, c-format msgid "Italy" msgstr "Ý" #: ../lib/network/connection/providers/xdsl.pm:858 #, c-format msgid "Sri Lanka" msgstr "Sri Lanka" #: ../lib/network/connection/providers/xdsl.pm:870 #, c-format msgid "Lithuania" msgstr "Lithuania" #: ../lib/network/connection/providers/xdsl.pm:879 #: ../lib/network/connection/providers/xdsl.pm:889 #, c-format msgid "Mauritius" msgstr "Mauritius" #: ../lib/network/connection/providers/xdsl.pm:900 #, c-format msgid "Morocco" msgstr "Morocco" #: ../lib/network/connection/providers/xdsl.pm:910 #: ../lib/network/connection/providers/xdsl.pm:919 #: ../lib/network/connection/providers/xdsl.pm:928 #: ../lib/network/connection/providers/xdsl.pm:937 #: ../lib/network/netconnect.pm:34 #, c-format msgid "Netherlands" msgstr "Hà Lan" #: ../lib/network/connection/providers/xdsl.pm:946 #: ../lib/network/connection/providers/xdsl.pm:952 #: ../lib/network/connection/providers/xdsl.pm:958 #: ../lib/network/connection/providers/xdsl.pm:964 #: ../lib/network/connection/providers/xdsl.pm:970 #: ../lib/network/connection/providers/xdsl.pm:976 #: ../lib/network/connection/providers/xdsl.pm:982 #, c-format msgid "Norway" msgstr "Na uy" #: ../lib/network/connection/providers/xdsl.pm:990 #, c-format msgid "Pakistan" msgstr "Pakistan" #: ../lib/network/connection/providers/xdsl.pm:1001 #: ../lib/network/connection/providers/xdsl.pm:1011 #, c-format msgid "Poland" msgstr "Poland" #: ../lib/network/connection/providers/xdsl.pm:1022 #, c-format msgid "Portugal" msgstr "Portugal" #: ../lib/network/connection/providers/xdsl.pm:1031 #, c-format msgid "Russia" msgstr "Nga" #: ../lib/network/connection/providers/xdsl.pm:1042 #, c-format msgid "Singapore" msgstr "Singapore" #: ../lib/network/connection/providers/xdsl.pm:1051 #, c-format msgid "Senegal" msgstr "Senegal" #: ../lib/network/connection/providers/xdsl.pm:1061 #, c-format msgid "Slovenia" msgstr "Slovenia" #: ../lib/network/connection/providers/xdsl.pm:1072 #: ../lib/network/connection/providers/xdsl.pm:1084 #: ../lib/network/connection/providers/xdsl.pm:1096 #: ../lib/network/connection/providers/xdsl.pm:1109 #: ../lib/network/connection/providers/xdsl.pm:1119 #: ../lib/network/connection/providers/xdsl.pm:1129 #: ../lib/network/connection/providers/xdsl.pm:1140 #: ../lib/network/connection/providers/xdsl.pm:1150 #: ../lib/network/connection/providers/xdsl.pm:1160 #: ../lib/network/connection/providers/xdsl.pm:1170 #: ../lib/network/connection/providers/xdsl.pm:1180 #: ../lib/network/connection/providers/xdsl.pm:1190 #: ../lib/network/connection/providers/xdsl.pm:1201 #: ../lib/network/connection/providers/xdsl.pm:1212 #: ../lib/network/connection/providers/xdsl.pm:1224 #: ../lib/network/connection/providers/xdsl.pm:1236 #, c-format msgid "Spain" msgstr "Tây Ban Nha" #: ../lib/network/connection/providers/xdsl.pm:1249 #, c-format msgid "Sweden" msgstr "Thụy điển" #: ../lib/network/connection/providers/xdsl.pm:1258 #: ../lib/network/connection/providers/xdsl.pm:1267 #: ../lib/network/connection/providers/xdsl.pm:1277 #, c-format msgid "Switzerland" msgstr "Switzerland" #: ../lib/network/connection/providers/xdsl.pm:1286 #, c-format msgid "Thailand" msgstr "Thái" #: ../lib/network/connection/providers/xdsl.pm:1296 #, c-format msgid "Tunisia" msgstr "Tunisia" #: ../lib/network/connection/providers/xdsl.pm:1307 #, c-format msgid "Turkey" msgstr "Thổ Nhĩ Kỳ" #: ../lib/network/connection/providers/xdsl.pm:1320 #, c-format msgid "United Arab Emirates" msgstr "Các Tiểu Vương Quốc Ả Rập Thống Nhất" #: ../lib/network/connection/providers/xdsl.pm:1330 #: ../lib/network/connection/providers/xdsl.pm:1340 #: ../lib/network/netconnect.pm:38 #, c-format msgid "United Kingdom" msgstr "Anh Quốc" #: ../lib/network/connection/wireless.pm:11 #, c-format msgid "Wireless" msgstr "" #: ../lib/network/connection/wireless.pm:27 #, c-format msgid "Use a Windows driver (with ndiswrapper)" msgstr "Dùng Windows driver (bằng ndiswrapper)" #: ../lib/network/connection/wireless.pm:44 #, c-format msgid "Open WEP" msgstr "Open WEP" #: ../lib/network/connection/wireless.pm:45 #, c-format msgid "Restricted WEP" msgstr "Restricted WEP" #: ../lib/network/connection/wireless.pm:46 #, c-format msgid "WPA Pre-Shared Key" msgstr "WPA Pre-Shared Key" #: ../lib/network/connection/wireless.pm:44 #, c-format msgid "WPA2/WPA Enterprise" msgstr "" #: ../lib/network/connection/wireless.pm:231 #, c-format msgid "Windows driver" msgstr "" #: ../lib/network/connection/wireless.pm:298 #, c-format msgid "" "Your wireless card is disabled, please enable the wireless switch (RF kill " "switch) first." msgstr "" #: ../lib/network/connection/wireless.pm:322 #, fuzzy, c-format msgid "Wireless settings" msgstr "Kết nối không dây" #: ../lib/network/connection/wireless.pm:328 #, c-format msgid "Ad-hoc" msgstr "Ad-hoc" #: ../lib/network/connection/wireless.pm:328 #, c-format msgid "Managed" msgstr "Được quản lý" #: ../lib/network/connection/wireless.pm:328 #, c-format msgid "Master" msgstr "Master" #: ../lib/network/connection/wireless.pm:328 #, c-format msgid "Repeater" msgstr "Repeater" #: ../lib/network/connection/wireless.pm:328 #, c-format msgid "Secondary" msgstr "Thứ cấp" #: ../lib/network/connection/wireless.pm:328 #, c-format msgid "Auto" msgstr "Tự động" #: ../lib/network/connection/wireless.pm:333 #, c-format msgid "Encryption mode" msgstr "Phương thức mã hóa" #: ../lib/network/connection/wireless.pm:376 #, fuzzy, c-format msgid "EAP Login/Username" msgstr "Account đăng nhập (tên người dùng)" #: ../lib/network/connection/wireless.pm:378 #, c-format msgid "" "The login or username. Format is plain text. If you\n" "need to specify domain then try the untested syntax\n" " DOMAIN\\username" msgstr "" #: ../lib/network/connection/wireless.pm:381 #, fuzzy, c-format msgid "EAP Password" msgstr "Mật khẩu" #: ../lib/network/connection/wireless.pm:383 #, c-format msgid "" " Password: A string.\n" "Note that this is not the same thing as a psk.\n" "____________________________________________________\n" "RELATED ADDITIONAL INFORMATION:\n" "In the Advanced Page, you can select which EAP mode\n" "is used for authentication. For the eap mode setting\n" " Auto Detect: implies all possible modes are tried.\n" "\n" "If Auto Detect fails, try the PEAP TTLS combo bofore others\n" "Note:\n" "\tThe settings MD5, MSCHAPV2, OTP and GTC imply\n" "automatically PEAP and TTLS modes.\n" " TLS mode is completely certificate based and may ignore\n" "the username and password values specified here." msgstr "" #: ../lib/network/connection/wireless.pm:397 #, fuzzy, c-format msgid "EAP client certificate" msgstr "Tên chứng thực" #: ../lib/network/connection/wireless.pm:399 #, c-format msgid "" "The complete path and filename of client certificate. This is\n" "only used for EAP certificate based authentication. It could be\n" "considered as the alternative to username/password combo.\n" " Note: other related settings are shown on the Advanced page." msgstr "" #: ../lib/network/connection/wireless.pm:408 #, c-format msgid "" "RTS/CTS adds a handshake before each packet transmission to make sure that " "the\n" "channel is clear. This adds overhead, but increase performance in case of " "hidden\n" "nodes or large number of active nodes. This parameter sets the size of the\n" "smallest packet for which the node sends RTS, a value equal to the maximum\n" "packet size disable the scheme. You may also set this parameter to auto, " "fixed\n" "or off." msgstr "" "RTS/CTS thêm một handshake trước từng lần truyền packet để đảm bảo\n" "channel là sạch (clear). Việc này thêm overhead, nhưng tăng sự thực thi " "trong\n" "trường hợp các node ẩn hoặc với số lượng lớn các node hoạt động. Tham số " "này\n" "đặt kích thước cho packet nhỏ nhất để node đó gửi RTS, giá trị tương ứng với " "kích\n" "thước packet lớn nhất không cho phép trong lược đồ. Bạn cũng có thể đặt tham " "số\n" "này là auto, fixed hoặc off." #: ../lib/network/connection/wireless.pm:351 #, c-format msgid "" "Here, one can configure some extra wireless parameters such as:\n" "ap, channel, commit, enc, power, retry, sens, txpower (nick is already set " "as the hostname).\n" "\n" "See iwconfig(8) man page for further information." msgstr "" "Có thể cấu hình thêm các tham số cho mạng không dây tại đây như:\n" "ap, kênh, commit, enc, nguồn, số lần thử, sens, txpower (tên máy chủ được " "đặt là nick).\n" "\n" "Xem thêm trang hướng dẫn của iwconfig để biết thêm chi tiết." #: ../lib/network/connection/wireless.pm:359 #, c-format msgid "" "iwspy is used to set a list of addresses in a wireless network\n" "interface and to read back quality of link information for each of those.\n" "\n" "This information is the same as the one available in /proc/net/wireless :\n" "quality of the link, signal strength and noise level.\n" "\n" "See iwpspy(8) man page for further information." msgstr "" "iwspy dùng để đặt ra danh sách các địa chỉ trong giao diện mạng\n" "không dây và cho biết thông tin về chất lượng kết nối tới mỗi địa chỉ đó.\n" "\n" "Những thông tin này cũng giống như thông tin trong /proc/net/wireless :\n" "chất lượng kết nối, độ mạnh tín hiệu, độ nhiễu.\n" "/n" #: ../lib/network/connection/wireless.pm:369 #, c-format msgid "" "iwpriv enable to set up optionals (private) parameters of a wireless " "network\n" "interface.\n" "\n" "iwpriv deals with parameters and setting specific to each driver (as opposed " "to\n" "iwconfig which deals with generic ones).\n" "\n" "In theory, the documentation of each device driver should indicate how to " "use\n" "those interface specific commands and their effect.\n" "\n" "See iwpriv(8) man page for further information." msgstr "" "iwpriv có khả năng đặt các tham số tuỳ chọn (riêng biệt) cho giao diệnmạng " "không dây.\n" "\n" "iwpriv xử lý các tham số và tuỳ đặt cụ thể cho từng driver, (không giống " "nhưiwconfig làm việc với các driver thông thường).\n" "Về lý thuyết, tài liệu đi kèm mỗi driver các thiết bị sẽ hướng dẫn cách sử " "dụngcác lệnh đặc biệt và tác dụng của chúng.\n" "Xem trang hướng dẫn iwpriv để biết thêm chi tiết." #: ../lib/network/connection/wireless.pm:446 #, fuzzy, c-format msgid "EAP Protocol" msgstr "Giao thức" #: ../lib/network/connection/wireless.pm:447 #: ../lib/network/connection/wireless.pm:452 #, fuzzy, c-format msgid "Auto Detect" msgstr "Dò tìm Tự động" #: ../lib/network/connection/wireless.pm:447 #, c-format msgid "WPA2" msgstr "" #: ../lib/network/connection/wireless.pm:447 #, fuzzy, c-format msgid "WPA" msgstr "PAP" #: ../lib/network/connection/wireless.pm:449 #, c-format msgid "" "Auto Detect is recommended as it first tries WPA version 2 with\n" "a fallback to WPA version 1" msgstr "" #: ../lib/network/connection/wireless.pm:451 #, fuzzy, c-format msgid "EAP Mode" msgstr "Phương thức" #: ../lib/network/connection/wireless.pm:452 #, fuzzy, c-format msgid "PEAP" msgstr "PAP" #: ../lib/network/connection/wireless.pm:452 #, c-format msgid "TTLS" msgstr "" #: ../lib/network/connection/wireless.pm:452 #, c-format msgid "TLS" msgstr "" #: ../lib/network/connection/wireless.pm:452 #, fuzzy, c-format msgid "MSCHAPV2" msgstr "CHAP" #: ../lib/network/connection/wireless.pm:452 #, c-format msgid "MD5" msgstr "" #: ../lib/network/connection/wireless.pm:452 #, c-format msgid "OTP" msgstr "" #: ../lib/network/connection/wireless.pm:452 #, c-format msgid "GTC" msgstr "" #: ../lib/network/connection/wireless.pm:452 #, c-format msgid "LEAP" msgstr "" #: ../lib/network/connection/wireless.pm:452 #, c-format msgid "PEAP TTLS" msgstr "" #: ../lib/network/connection/wireless.pm:452 #, c-format msgid "TTLS TLS" msgstr "" #: ../lib/network/connection/wireless.pm:454 #, c-format msgid "EAP key_mgmt" msgstr "" #: ../lib/network/connection/wireless.pm:456 #, c-format msgid "" "list of accepted authenticated key management protocols.\n" "possible values are WPA-EAP, IEEE8021X, NONE" msgstr "" #: ../lib/network/connection/wireless.pm:458 #, c-format msgid "EAP outer identity" msgstr "" #: ../lib/network/connection/wireless.pm:460 #, c-format msgid "" "Anonymous identity string for EAP: to be used as the\n" "unencrypted identity with EAP types that support different\n" "tunnelled identity, e.g., TTLS" msgstr "" #: ../lib/network/connection/wireless.pm:463 #, c-format msgid "EAP phase2" msgstr "" #: ../lib/network/connection/wireless.pm:465 #, c-format msgid "" "Inner authentication with TLS tunnel parameters.\n" "input is string with field-value pairs, Examples:\n" "auth=MSCHAPV2 for PEAP or\n" "autheap=MSCHAPV2 autheap=MD5 for TTLS" msgstr "" #: ../lib/network/connection/wireless.pm:469 #, fuzzy, c-format msgid "EAP CA certificate" msgstr "Kiểu chứng thực" #: ../lib/network/connection/wireless.pm:471 #, c-format msgid "" "Full file path to CA certificate file (PEM/DER). This file\n" "can have one or more trusted CA certificates. If ca_cert are not\n" "included, server certificate will not be verified. If possible,\n" "a trusted CA certificate should always be configured\n" "when using TLS or TTLS or PEAP." msgstr "" #: ../lib/network/connection/wireless.pm:476 #, c-format msgid "EAP certificate subject match" msgstr "" #: ../lib/network/connection/wireless.pm:478 #, c-format msgid "" " Substring to be matched against the subject of\n" "the authentication server certificate. If this string is set,\n" "the server sertificate is only accepted if it contains this\n" "string in the subject. The subject string is in following format:\n" "/C=US/ST=CA/L=San Francisco/CN=Test AS/emailAddress=as@example.com" msgstr "" #: ../lib/network/connection/wireless.pm:483 #, c-format msgid "EAP extra directives" msgstr "" #: ../lib/network/connection/wireless.pm:485 #, c-format msgid "" "Here one can pass extra settings to wpa_supplicant\n" "The expected format is a string field=value pair. Multiple values\n" "maybe specified, separating each value with the # character.\n" "Note: directives are passed unchecked and may cause the wpa\n" "negotiation to fail silently. Supported directives are preserved\n" "across editing.\n" "Supported directives are :\n" "\tdisabled, id_str, bssid, priority, auth_alg, eapol_flags,\n" "\tproactive_key_caching, peerkey, ca_path, private_key,\n" "\tprivate_key_passwd, dh_file, altsubject_match, phase1,\n" "\tfragment_size and eap_workaround, pairwise, group\n" "\tOthers such as key_mgmt, eap maybe used to force\n" "\tspecial settings different from the U.I settings." msgstr "" #: ../lib/network/connection/wireless.pm:505 #, c-format msgid "An encryption key is required." msgstr "" #: ../lib/network/connection/wireless.pm:393 #, c-format msgid "" "Freq should have the suffix k, M or G (for example, \"2.46G\" for 2.46 GHz " "frequency), or add enough '0' (zeroes)." msgstr "" "Tần số nên có tiếp vị ngữ k, M hay G (ví dụ: \"2.46G\" là cho tần số 2.46 " "GHz), hay thêm đủ '0' (các số không)." #: ../lib/network/connection/wireless.pm:399 #, c-format msgid "" "Rate should have the suffix k, M or G (for example, \"11M\" for 11M), or add " "enough '0' (zeroes)." msgstr "" "Rate nên có tiếp vị ngữ k, M hay G (ví dụ: \"11M\" cho 11M), hoặc thêm đủ " "'0' (các số không)." #: ../lib/network/connection/wireless.pm:411 #, c-format msgid "Allow access point roaming" msgstr "" #: ../lib/network/connection/wireless.pm:514 #, c-format msgid "Associated to wireless network \"%s\" on interface %s" msgstr "" #: ../lib/network/connection/wireless.pm:515 #, c-format msgid "Lost association to wireless network on interface %s" msgstr "" #: ../lib/network/connection/xdsl.pm:8 #, fuzzy, c-format msgid "DSL" msgstr "SSL" #: ../lib/network/connection/xdsl.pm:76 ../lib/network/netconnect.pm:763 #, c-format msgid "Alcatel speedtouch USB modem" msgstr "Alcatel speedtouch USB modem" #: ../lib/network/connection/xdsl.pm:104 #, c-format msgid "" "The ECI Hi-Focus modem cannot be supported due to binary driver distribution " "problem.\n" "\n" "You can find a driver on http://eciadsl.flashtux.org/" msgstr "" "Không hỗ trợ được modem ECI Hi-Focus do lỗi bản phân phối driver nhị phân.\n" "\n" "Bạn có thể tìm driver tại http://eciadsl.flashtux.org/" #: ../lib/network/connection/xdsl.pm:164 #, c-format msgid "" "Modems using Conexant AccessRunner chipsets cannot be supported due to " "binary firmware distribution problem." msgstr "" #: ../lib/network/connection/xdsl.pm:184 #, c-format msgid "DSL over CAPI" msgstr "DSL over CAPI" #: ../lib/network/connection/xdsl.pm:187 #, c-format msgid "Dynamic Host Configuration Protocol (DHCP)" msgstr "Dynamic Host Configuration Protocol (DHCP)" #: ../lib/network/connection/xdsl.pm:188 #, c-format msgid "Manual TCP/IP configuration" msgstr "Cấu hình thủ công TCP/IP" #: ../lib/network/connection/xdsl.pm:189 #, c-format msgid "Point to Point Tunneling Protocol (PPTP)" msgstr "Point to Point Tunneling Protocol (PPTP)" #: ../lib/network/connection/xdsl.pm:190 #, c-format msgid "PPP over Ethernet (PPPoE)" msgstr "PPP over Ethernet (PPPoE)" #: ../lib/network/connection/xdsl.pm:191 #, c-format msgid "PPP over ATM (PPPoA)" msgstr "PPP over ATM (PPPoA)" #: ../lib/network/connection/xdsl.pm:231 #, c-format msgid "Virtual Path ID (VPI):" msgstr "Virtual Path ID (VPI):" #: ../lib/network/connection/xdsl.pm:232 #, c-format msgid "Virtual Circuit ID (VCI):" msgstr "Virtual Circuit ID (VCI):" #: ../lib/network/connection/xdsl.pm:332 #: ../lib/network/connection_manager.pm:41 ../lib/network/drakvpn.pm:45 #: ../lib/network/netconnect.pm:131 ../lib/network/thirdparty.pm:115 #, c-format msgid "Could not install the packages (%s)!" msgstr "Không cài đặt được gói (%s)!" #: ../lib/network/connection_manager.pm:53 #: ../lib/network/connection_manager.pm:88 #, fuzzy, c-format msgid "Network settings" msgstr "Thiết lập mạng cục bộ" #: ../lib/network/connection_manager.pm:54 #: ../lib/network/connection_manager.pm:89 #, fuzzy, c-format msgid "Please enter settings for network" msgstr "Vui lòng xóa thông tin" #: ../lib/network/connection_manager.pm:58 ../lib/network/netconnect.pm:177 #, c-format msgid "Configuring device..." msgstr "Đang cấu hình thiết bị..." #: ../lib/network/connection_manager.pm:146 #, fuzzy, c-format msgid "Connecting..." msgstr "Kết nối..." #: ../lib/network/connection_manager.pm:164 #, fuzzy, c-format msgid "Disconnecting..." msgstr "Ngắt kết nối..." #: ../lib/network/connection_manager.pm:201 #, c-format msgid "SSID" msgstr "" #: ../lib/network/connection_manager.pm:202 #, c-format msgid "Signal strength" msgstr "" #: ../lib/network/connection_manager.pm:203 #, c-format msgid "Encryption" msgstr "Mã hóa" #: ../lib/network/connection_manager.pm:244 ../lib/network/netconnect.pm:209 #, fuzzy, c-format msgid "Scanning for networks..." msgstr "Đang rà quét mạng ..." #: ../lib/network/connection_manager.pm:281 ../lib/network/drakroam.pm:111 #, c-format msgid "Disconnect" msgstr "Ngắt kết nối" #: ../lib/network/connection_manager.pm:281 ../lib/network/drakroam.pm:110 #, c-format msgid "Connect" msgstr "Kết nối" #: ../lib/network/drakfirewall.pm:12 #, c-format msgid "Web Server" msgstr "Máy chủ Web" #: ../lib/network/drakfirewall.pm:17 #, c-format msgid "Domain Name Server" msgstr "Máy Chủ Tên Miền" #: ../lib/network/drakfirewall.pm:22 #, c-format msgid "SSH server" msgstr "Máy chủ SSH" #: ../lib/network/drakfirewall.pm:27 #, c-format msgid "FTP server" msgstr "Máy chủ FTP" #: ../lib/network/drakfirewall.pm:32 #, c-format msgid "Mail Server" msgstr "Máy Chủ Thư" #: ../lib/network/drakfirewall.pm:37 #, c-format msgid "POP and IMAP Server" msgstr "Máy chủ IMAP và POP" #: ../lib/network/drakfirewall.pm:42 #, c-format msgid "Telnet server" msgstr "Máy chủ Telnet" #: ../lib/network/drakfirewall.pm:48 #, c-format msgid "Windows Files Sharing (SMB)" msgstr "Chi sẻ tập tin Windows (SMB)" #: ../lib/network/drakfirewall.pm:54 #, c-format msgid "CUPS server" msgstr "Máy chủ CUPS" #: ../lib/network/drakfirewall.pm:60 #, c-format msgid "Echo request (ping)" msgstr "Echo request (ping)" #: ../lib/network/drakfirewall.pm:65 #, c-format msgid "BitTorrent" msgstr "BitTorrent" #: ../lib/network/drakfirewall.pm:74 #, c-format msgid "Port scan detection" msgstr "" #: ../lib/network/drakfirewall.pm:166 ../lib/network/drakfirewall.pm:172 #, fuzzy, c-format msgid "Firewall configuration" msgstr "Cấu hình thủ công" #: ../lib/network/drakfirewall.pm:166 #, c-format msgid "" "drakfirewall configurator\n" "\n" "This configures a personal firewall for this Mandriva Linux machine.\n" "For a powerful and dedicated firewall solution, please look to the\n" "specialized Mandriva Security Firewall distribution." msgstr "" "Chương trình cấu hình Drakfirewall\n" "\n" "Chương trình này cấu hình một tường lửa cá nhân cho máy Mandriva Linux.\n" "Về giải pháp tường lửa mạnh và chuyên dụng, hãy tìm xem phân phối\n" "tường lửa bảo mật chuyên dụng của Mandriva." #: ../lib/network/drakfirewall.pm:172 #, c-format msgid "" "drakfirewall configurator\n" "\n" "Make sure you have configured your Network/Internet access with\n" "drakconnect before going any further." msgstr "" "Chương trình cấu hình Drakfirewall\n" "\n" "Hãy bảo đảm là bạn đã cấu hình truy cập Mạng/Internet bằng\n" "drakconnect trước khi tiếp tục." #: ../lib/network/drakfirewall.pm:189 #, c-format msgid "Which services would you like to allow the Internet to connect to?" msgstr "Bạn muốn cho phép kết nối Internet đến dịch vụ nào?" #: ../lib/network/drakfirewall.pm:190 ../lib/network/shorewall.pm:145 #, c-format msgid "Firewall" msgstr "Tường lửa" #: ../lib/network/drakfirewall.pm:192 #, c-format msgid "" "You can enter miscellaneous ports. \n" "Valid examples are: 139/tcp 139/udp 600:610/tcp 600:610/udp.\n" "Have a look at /etc/services for information." msgstr "" "Bạn có thể nhập các port ngẫu nhiên.\n" "Ví dụ hợp lệ là: 139/tcp 139/udp 600:610/tcp 600:610/udp.\n" "Hãy xem /etc/services để biết thêm thông tin." #: ../lib/network/drakfirewall.pm:198 #, c-format msgid "" "Invalid port given: %s.\n" "The proper format is \"port/tcp\" or \"port/udp\", \n" "where port is between 1 and 65535.\n" "\n" "You can also give a range of ports (eg: 24300:24350/udp)" msgstr "" "Port không hợp lệ là: %s.\n" "Định dạng đúng là \"port/tcp\" hay \"port/udp\", \n" "với port từ 1 đến 65535.\n" "\n" "Bạn cũng có thể cho một dãy port (ví dụ: 24300:24350/udp)" #: ../lib/network/drakfirewall.pm:208 #, c-format msgid "Everything (no firewall)" msgstr "Mọi thứ (không có tường lửa)" #: ../lib/network/drakfirewall.pm:210 #, c-format msgid "Other ports" msgstr "Các cổng khác" #: ../lib/network/drakfirewall.pm:211 #, c-format msgid "Log firewall messages in system logs" msgstr "" #: ../lib/network/drakfirewall.pm:256 #, fuzzy, c-format msgid "" "You can be warned when someone accesses to a service or tries to intrude " "into your computer.\n" "Please select which network activities should be watched." msgstr "" "Hệ thống có thể thông báo ai đang nối vào dịch vụ hoặc đang muốn xâm nhập " "vào máy bạn.\n" "Vui lòng chỉ định những sự kiện nào nên được thông báo." #: ../lib/network/drakfirewall.pm:261 #, c-format msgid "Use Interactive Firewall" msgstr "Sử dụng tường lửa" #: ../lib/network/drakroam.pm:22 #, c-format msgid "No device found" msgstr "Không tìm thấy thiết bị" #: ../lib/network/drakroam.pm:58 #, c-format msgid "Hostname changed to \"%s\"" msgstr "" #: ../lib/network/drakroam.pm:109 ../lib/network/netcenter.pm:72 #, c-format msgid "Configure" msgstr "Cấu hình" #: ../lib/network/drakroam.pm:112 ../lib/network/netcenter.pm:77 #, c-format msgid "Refresh" msgstr "Cập nhật" #: ../lib/network/drakroam.pm:123 ../lib/network/netconnect.pm:769 #, c-format msgid "Wireless connection" msgstr "Kết nối không dây" #: ../lib/network/drakvpn.pm:30 #, fuzzy, c-format msgid "VPN configuration" msgstr "Cấu hình DVB" #: ../lib/network/drakvpn.pm:34 #, fuzzy, c-format msgid "Choose the VPN type" msgstr "Chọn kích thước mới" #: ../lib/network/drakvpn.pm:49 #, c-format msgid "Initializing tools and detecting devices for %s..." msgstr "" #: ../lib/network/drakvpn.pm:52 #, fuzzy, c-format msgid "Unable to initialize %s connection type!" msgstr "Kiểu kết nối không xác định" #: ../lib/network/drakvpn.pm:60 #, c-format msgid "Please select an existing VPN connection or enter a new name." msgstr "" #: ../lib/network/drakvpn.pm:64 #, fuzzy, c-format msgid "Configure a new connection..." msgstr "Đang kiểm tra kết nối..." #: ../lib/network/drakvpn.pm:66 #, fuzzy, c-format msgid "New name" msgstr "Tên thật" #: ../lib/network/drakvpn.pm:70 #, c-format msgid "You must select an existing connection or enter a new name." msgstr "" #: ../lib/network/drakvpn.pm:81 #, fuzzy, c-format msgid "Please enter the required key(s)" msgstr "Hãy nhập địa chỉ liên kết (URL) của máy chủ WebDAV" #: ../lib/network/drakvpn.pm:86 #, fuzzy, c-format msgid "Please enter the settings of your VPN connection" msgstr "Quản lý mạng không dây" #: ../lib/network/drakvpn.pm:94 ../lib/network/netconnect.pm:299 #, c-format msgid "Do you want to start the connection now?" msgstr "" #: ../lib/network/drakvpn.pm:100 #, fuzzy, c-format msgid "Connection failed." msgstr "Tên kết nối" #: ../lib/network/drakvpn.pm:108 #, c-format msgid "" "The VPN connection is now configured.\n" "\n" "This VPN connection can be automatically started together with a network " "connection.\n" "It can be done by reconfiguring the network connection and selecting this " "VPN connection.\n" msgstr "" #: ../lib/network/ifw.pm:129 #, c-format msgid "Port scanning" msgstr "Cổng đang bị quét" #: ../lib/network/ifw.pm:130 #, c-format msgid "Service attack" msgstr "Dịch vụ bị tấn công" #: ../lib/network/ifw.pm:131 #, c-format msgid "Password cracking" msgstr "Đoán Mật khẩu" #: ../lib/network/ifw.pm:132 #, c-format msgid "\"%s\" attack" msgstr "\"%s\" tấn công" #: ../lib/network/ifw.pm:134 #, c-format msgid "A port scanning attack has been attempted by %s." msgstr "%s đang cố thực hiện tấn công quét cổng." #: ../lib/network/ifw.pm:135 #, c-format msgid "The %s service has been attacked by %s." msgstr "Dịch vụ %s đã bị %s tấn công." #: ../lib/network/ifw.pm:136 #, c-format msgid "A password cracking attack has been attempted by %s." msgstr "%s đang thực hiện tấn công bẻ khóa mật khẩu." #: ../lib/network/ifw.pm:137 #, c-format msgid "A \"%s\" attack has been attempted by %s" msgstr "Một tấn công %s đang cố thực hiện bởi %s" #: ../lib/network/ifw.pm:146 #, c-format msgid "" "The \"%s\" application is trying to make a service (%s) available to the " "network." msgstr "" #. -PO: this should be kept lowercase since the expression is meant to be used between brackets #: ../lib/network/ifw.pm:150 #, fuzzy, c-format msgid "port %d" msgstr "Báo cáo" #: ../lib/network/modem.pm:42 ../lib/network/modem.pm:43 #: ../lib/network/modem.pm:44 ../lib/network/netconnect.pm:611 #: ../lib/network/netconnect.pm:628 ../lib/network/netconnect.pm:644 #, c-format msgid "Manual" msgstr "Thủ công" #: ../lib/network/modem.pm:42 ../lib/network/modem.pm:43 #: ../lib/network/modem.pm:44 ../lib/network/modem.pm:63 #: ../lib/network/modem.pm:76 ../lib/network/modem.pm:81 #: ../lib/network/modem.pm:110 ../lib/network/netconnect.pm:606 #: ../lib/network/netconnect.pm:611 ../lib/network/netconnect.pm:623 #: ../lib/network/netconnect.pm:628 ../lib/network/netconnect.pm:644 #: ../lib/network/netconnect.pm:646 #, c-format msgid "Automatic" msgstr "Tự động" #: ../lib/network/ndiswrapper.pm:27 #, c-format msgid "No device supporting the %s ndiswrapper driver is present!" msgstr "Không có thiết bị hỗ trợ %s ndiswrapper driver!" #: ../lib/network/ndiswrapper.pm:33 #, c-format msgid "Please select the Windows driver (.inf file)" msgstr "Hãy chọn Windows driver (tập tin .inf)" #: ../lib/network/ndiswrapper.pm:42 #, c-format msgid "Unable to install the %s ndiswrapper driver!" msgstr "Không thể cài đặt %s ndiswrapper driver!" #: ../lib/network/ndiswrapper.pm:103 #, c-format msgid "" "The selected device has already been configured with the %s driver.\n" "Do you really want to use a ndiswrapper driver?" msgstr "" "Thiết bị được chọn đã được cấu hình bằng %s driver.\n" "Bạn có thật sự muốn dùng ndiswrapper driver không?" #: ../lib/network/ndiswrapper.pm:118 #, c-format msgid "Unable to load the ndiswrapper module!" msgstr "Không thể nạp ndiswrapper module!" #: ../lib/network/ndiswrapper.pm:124 #, c-format msgid "Unable to find the ndiswrapper interface!" msgstr "Không tìm thấy giao diện ndiswrapper!" #: ../lib/network/ndiswrapper.pm:115 #, c-format msgid "Choose an ndiswrapper driver" msgstr "Hãy chọn ndiswrapper driver" #: ../lib/network/ndiswrapper.pm:118 #, c-format msgid "Use the ndiswrapper driver %s" msgstr "Dùng ndiswrapper driver %s" #: ../lib/network/ndiswrapper.pm:118 #, c-format msgid "Install a new driver" msgstr "Cài đặt driver mới" #: ../lib/network/ndiswrapper.pm:129 #, c-format msgid "Select a device:" msgstr "Chọn thiết bị:" #: ../lib/network/netcenter.pm:30 #, fuzzy, c-format msgid "Network Center" msgstr "Thiết bị mạng" #: ../lib/network/netcenter.pm:62 ../lib/network/netconnect.pm:212 #, c-format msgid "Please select your network:" msgstr "" #: ../lib/network/netcenter.pm:68 #, fuzzy, c-format msgid "" "_: This is a verb\n" "Monitor" msgstr "Theo dõi mạng" #: ../lib/network/netconnect.pm:37 #, c-format msgid "United States" msgstr "Hoa Kỳ" #: ../lib/network/netconnect.pm:60 ../lib/network/netconnect.pm:501 #: ../lib/network/netconnect.pm:515 #, c-format msgid "Manual choice" msgstr "Lựa chọn thủ công" #: ../lib/network/netconnect.pm:60 #, c-format msgid "Internal ISDN card" msgstr "Card ISDN lắp trong" #: ../lib/network/netconnect.pm:65 #, c-format msgid "Protocol for the rest of the world" msgstr "Giao thức cho phần còn lại của thế giới" #: ../lib/network/netconnect.pm:123 #, c-format msgid "Choose the connection you want to configure" msgstr "Chọn kết nối để cấu hình" #: ../lib/network/netconnect.pm:145 ../lib/network/netconnect.pm:356 #: ../lib/network/netconnect.pm:796 #, c-format msgid "Select the network interface to configure:" msgstr "Chọn giao diện mạng để cấu hình:" #: ../lib/network/netconnect.pm:164 #, c-format msgid "No device can be found for this connection type." msgstr "" #: ../lib/network/netconnect.pm:173 #, fuzzy, c-format msgid "Hardware Configuration" msgstr "Đồ thuật Cấu hình" #: ../lib/network/netconnect.pm:194 #, c-format msgid "Please select your provider:" msgstr "" #: ../lib/network/netconnect.pm:249 #, c-format msgid "" "Please select your connection protocol.\n" "If you do not know it, keep the preselected protocol." msgstr "" #: ../lib/network/netconnect.pm:293 ../lib/network/netconnect.pm:663 #, c-format msgid "Connection control" msgstr "" #: ../lib/network/netconnect.pm:323 #, c-format msgid "Connection Configuration" msgstr "Cấu hình kết nối" #: ../lib/network/netconnect.pm:323 #, c-format msgid "Please fill or check the field below" msgstr "Hãy điền hoặc kiểm tra trường dưới đây" #: ../lib/network/netconnect.pm:326 #, c-format msgid "Your personal phone number" msgstr "Số điện thoại cá nhân của bạn" #: ../lib/network/netconnect.pm:327 #, c-format msgid "Provider name (ex provider.net)" msgstr "Tên nhà cung cấp (VD: provider.net)" #: ../lib/network/netconnect.pm:329 #, c-format msgid "Provider DNS 1 (optional)" msgstr "DNS 1 của nhà cung cấp (không bắt buộc)" #: ../lib/network/netconnect.pm:330 #, c-format msgid "Provider DNS 2 (optional)" msgstr "DNS 2 của nhà cung cấp (không bắt buộc)" #: ../lib/network/netconnect.pm:340 #, c-format msgid "Card IO_1" msgstr "Card IO_1" #: ../lib/network/netconnect.pm:359 ../lib/network/netconnect.pm:364 #, c-format msgid "External ISDN modem" msgstr "Modem ISDN lắp ngoài" #: ../lib/network/netconnect.pm:392 #, c-format msgid "Select a device!" msgstr "Chọn thiết bị !" #: ../lib/network/netconnect.pm:401 ../lib/network/netconnect.pm:411 #: ../lib/network/netconnect.pm:421 ../lib/network/netconnect.pm:454 #: ../lib/network/netconnect.pm:468 #, c-format msgid "ISDN Configuration" msgstr "Cấu hình ISDN" #: ../lib/network/netconnect.pm:402 #, c-format msgid "What kind of card do you have?" msgstr "Bạn có loại card nào ?" #: ../lib/network/netconnect.pm:412 #, c-format msgid "" "\n" "If you have an ISA card, the values on the next screen should be right.\n" "\n" "If you have a PCMCIA card, you have to know the \"irq\" and \"io\" of your " "card.\n" msgstr "" "\n" "Nếu bạn có card ISA thì giá trị trên màn hình tiếp theo thường đúng.\n" "\n" "Nếu bạn có card PCMCIA, bạn cần biết thông số IRQ và IO của card.\n" #: ../lib/network/netconnect.pm:416 #, c-format msgid "Continue" msgstr "Tiếp tục" #: ../lib/network/netconnect.pm:416 #, c-format msgid "Abort" msgstr "Hủy bỏ" #: ../lib/network/netconnect.pm:422 #, c-format msgid "Which of the following is your ISDN card?" msgstr "Cái nào sau đây là ISDN card của bạn?" #: ../lib/network/netconnect.pm:440 #, c-format msgid "" "A CAPI driver is available for this modem. This CAPI driver can offer more " "capabilities than the free driver (like sending faxes). Which driver do you " "want to use?" msgstr "" "Có sẵn CAPI driver cho modem này. CAPI driver cung cấp nhiều chức năng hơn " "driver miễn phí (như tính năng gửi fax). Bạn muốn dùng driver nào?" #: ../lib/network/netconnect.pm:454 #, c-format msgid "Which protocol do you want to use?" msgstr "Bạn muốn sử dụng giao thức nào?" #: ../lib/network/netconnect.pm:468 #, c-format msgid "" "Select your provider.\n" "If it is not listed, choose Unlisted." msgstr "" "Chọn nhà cung cấp dịch vụ.\n" " Nếu không có trong danh sách, chọn Không có trong danh sách" #: ../lib/network/netconnect.pm:470 ../lib/network/netconnect.pm:566 #, c-format msgid "Provider:" msgstr "Nhà cung cấp dịch vụ:" #: ../lib/network/netconnect.pm:479 #, c-format msgid "" "Your modem is not supported by the system.\n" "Take a look at http://www.linmodems.org" msgstr "" "Hệ thống không hỗ trợ modem của bạn.\n" "Hãy xem tại http://www.linmodems.org" #: ../lib/network/netconnect.pm:498 #, c-format msgid "Select the modem to configure:" msgstr "Chọn modem để cấu hình:" #: ../lib/network/netconnect.pm:500 #, c-format msgid "Modem" msgstr "Modem" #: ../lib/network/netconnect.pm:535 #, c-format msgid "Please choose which serial port your modem is connected to." msgstr "Hãy chọn cổng nối tiếp (serial) nối với modem của bạn." #: ../lib/network/netconnect.pm:564 #, c-format msgid "Select your provider:" msgstr "Chọn nhà cung cấp dịch vụ:" #: ../lib/network/netconnect.pm:588 #, c-format msgid "Dialup: account options" msgstr "Dialup: các tùy chọn tài khoản" #: ../lib/network/netconnect.pm:591 #, c-format msgid "Connection name" msgstr "Tên kết nối" #: ../lib/network/netconnect.pm:592 #, c-format msgid "Phone number" msgstr "Số điện thoại" #: ../lib/network/netconnect.pm:593 #, c-format msgid "Login ID" msgstr "ID đăng nhập" #: ../lib/network/netconnect.pm:608 ../lib/network/netconnect.pm:641 #, c-format msgid "Dialup: IP parameters" msgstr "Dialup: tham số IP" #: ../lib/network/netconnect.pm:611 #, c-format msgid "IP parameters" msgstr "Tham số IP" #: ../lib/network/netconnect.pm:613 #, c-format msgid "Subnet mask" msgstr "Subnet mask" #: ../lib/network/netconnect.pm:625 #, c-format msgid "Dialup: DNS parameters" msgstr "Dialup: các tham số DNS" #: ../lib/network/netconnect.pm:628 #, c-format msgid "DNS" msgstr "DNS" #: ../lib/network/netconnect.pm:629 #, c-format msgid "Domain name" msgstr "Tên miền" #: ../lib/network/netconnect.pm:632 #, c-format msgid "Set hostname from IP" msgstr "Đặt hostname từ IP" #: ../lib/network/netconnect.pm:645 #, c-format msgid "Gateway IP address" msgstr "Địa chỉ IP của Gateway" #: ../lib/network/netconnect.pm:678 #, c-format msgid "Automatically at boot" msgstr "Tự động khi khởi động " #: ../lib/network/netconnect.pm:680 #, c-format msgid "By using Net Applet in the system tray" msgstr "Bằng việc dùng Net Applet trên khay hệ thống" #: ../lib/network/netconnect.pm:682 #, c-format msgid "Manually (the interface would still be activated at boot)" msgstr "Thủ công (giao diện mạng vẫnđược kích hoạt khi khởi động)" #: ../lib/network/netconnect.pm:691 #, c-format msgid "How do you want to dial this connection?" msgstr "Bạn muốn quay số kết nối này?" #: ../lib/network/netconnect.pm:704 #, c-format msgid "Do you want to try to connect to the Internet now?" msgstr "Bạn có muốn thử kết nối Internet bây giờ không?" #: ../lib/network/netconnect.pm:731 #, c-format msgid "The system is now connected to the Internet." msgstr "Hệ thống đã được kết nối với Internet." #: ../lib/network/netconnect.pm:732 #, c-format msgid "For security reasons, it will be disconnected now." msgstr "Vì lý do bảo mật, bây giờ sẽ ngắt kết nối." #: ../lib/network/netconnect.pm:733 #, c-format msgid "" "The system does not seem to be connected to the Internet.\n" "Try to reconfigure your connection." msgstr "" "Hệ thống có vẻ như không kết nối với Internet.\n" "Hãy thử cấu hình lại kết nối của bạn." #: ../lib/network/netconnect.pm:748 #, c-format msgid "" "Congratulations, the network and Internet configuration is finished.\n" "\n" msgstr "" "Chúc mừng, việc cấu hình Mạng và Internet đã kết thúc.\n" "\n" #: ../lib/network/netconnect.pm:751 #, c-format msgid "" "After this is done, we recommend that you restart your X environment to " "avoid any hostname-related problems." msgstr "" "Sau khi xong, bạn nên khởi động lại môi trường X để tránh mọi sự cố liên " "quan tới tên máy chủ (hostname)." #: ../lib/network/netconnect.pm:752 #, c-format msgid "" "Problems occurred during configuration.\n" "Test your connection via net_monitor or mcc. If your connection does not " "work, you might want to relaunch the configuration." msgstr "" "Có trục trặc trong quá trình cấu hình.\n" "Chạy thử kết nối qua net_monitor hay mcc. Nếu kết nối không hoạt động, có " "thể sẽ phải thực hiện lại việc cấu hình" #: ../lib/network/netconnect.pm:764 #, c-format msgid "Sagem USB modem" msgstr "Modem Sagem USB" #: ../lib/network/netconnect.pm:765 ../lib/network/netconnect.pm:766 #, c-format msgid "Bewan modem" msgstr "Modem Bewan" #: ../lib/network/netconnect.pm:767 #, c-format msgid "ECI Hi-Focus modem" msgstr "Modem ECI Hi-Focus" #: ../lib/network/netconnect.pm:768 #, c-format msgid "LAN connection" msgstr "Kết nối LAN" #: ../lib/network/netconnect.pm:770 #, c-format msgid "ADSL connection" msgstr "Kết nối ADSL" #: ../lib/network/netconnect.pm:771 #, c-format msgid "Cable connection" msgstr "Kết nối cáp" #: ../lib/network/netconnect.pm:772 #, c-format msgid "ISDN connection" msgstr "Kết nối ISDN" #: ../lib/network/netconnect.pm:773 #, c-format msgid "Modem connection" msgstr "Kết nối modem" #: ../lib/network/netconnect.pm:774 #, c-format msgid "DVB connection" msgstr "Kết nối DVB" #: ../lib/network/netconnect.pm:776 #, c-format msgid "(detected on port %s)" msgstr "(dò tìm được tại cổng %s)" #. -PO: here, "(detected)" string will be appended to eg "ADSL connection" #: ../lib/network/netconnect.pm:778 #, c-format msgid "(detected %s)" msgstr "(dò tìm được %s)" #: ../lib/network/netconnect.pm:778 #, c-format msgid "(detected)" msgstr "(dò tìm được)" #: ../lib/network/netconnect.pm:779 #, c-format msgid "Network Configuration" msgstr "Cấu Hình Mạng" #: ../lib/network/netconnect.pm:780 #, c-format msgid "Zeroconf hostname resolution" msgstr "Tên của máy Zeroconf" #: ../lib/network/netconnect.pm:781 #, c-format msgid "" "If desired, enter a Zeroconf hostname.\n" "This is the name your machine will use to advertise any of\n" "its shared resources that are not managed by the network.\n" "It is not necessary on most networks." msgstr "" "Nếu muốn, hãy nhập Zeroconf hostname.\n" "Đây là tên máy tính của bạn được dùng để báo các nguồn \n" "chia sẻ của nó mà mạng không quản lý.\n" "Phần này không cần thiết lắm cho mạng." #: ../lib/network/netconnect.pm:785 #, c-format msgid "Zeroconf Host name" msgstr "Tên chủ Zeroconf" #: ../lib/network/netconnect.pm:786 #, c-format msgid "Zeroconf host name must not contain a ." msgstr "Tên chủ Zeroconf phải không chứa dấu chấm" #: ../lib/network/netconnect.pm:787 #, c-format msgid "" "Because you are doing a network installation, your network is already " "configured.\n" "Click on Ok to keep your configuration, or cancel to reconfigure your " "Internet & Network connection.\n" msgstr "" "Vì bạn đang cài đặt mạng, mà mạng của bạn đã được cầu hình rồi.\n" "Nhấn OK để giữ cấu hình của bạn, hoặc Bỏ qua để cấu hình lại kết nối " "Internet và mạng.\n" #: ../lib/network/netconnect.pm:790 #, c-format msgid "The network needs to be restarted. Do you want to restart it?" msgstr "Cần khởi chạy lại mạng. Bạn có muốn khởi chạy lại nó không?" #: ../lib/network/netconnect.pm:791 #, c-format msgid "" "A problem occurred while restarting the network: \n" "\n" "%s" msgstr "" "Trục trặc xảy ra khi khởi động lại mạng: \n" "\n" "%s" #: ../lib/network/netconnect.pm:792 #, c-format msgid "" "We are now going to configure the %s connection.\n" "\n" "\n" "Press \"%s\" to continue." msgstr "" "Bây giờ là lúc cấu hình cho kết nối %s.\n" "\n" "\n" "Nhấn \"%s\" để tiếp tục." #: ../lib/network/netconnect.pm:793 #, c-format msgid "Configuration is complete, do you want to apply settings?" msgstr "Hoàn thành việc cấu hình, bạn muốn áp dụng các thiết lập không?" #: ../lib/network/netconnect.pm:794 #, c-format msgid "" "You have configured multiple ways to connect to the Internet.\n" "Choose the one you want to use.\n" "\n" msgstr "" "Bạn đã cấu hình nhiều đường kết nối vào Internet.\n" "Hãy chọn một đường kết nối bạn muốn dùng.\n" "\n" #: ../lib/network/netconnect.pm:795 #, c-format msgid "Internet connection" msgstr "Kết nối Internet" #: ../lib/network/netconnect.pm:797 #, c-format msgid "Configuring network device %s (driver %s)" msgstr "Cấu hình thiết bị mạng %s (driver %s)" #: ../lib/network/netconnect.pm:798 #, c-format msgid "" "The following protocols can be used to configure a LAN connection. Please " "choose the one you want to use." msgstr "" "Những giao thức sau đây có thể dùng để cấu hình kết nối LAN. Hãy chọn giao " "thức bạn muốn dùng." #: ../lib/network/netconnect.pm:799 #, c-format msgid "" "Please enter your host name.\n" "Your host name should be a fully-qualified host name,\n" "such as ``mybox.mylab.myco.com''.\n" "You may also enter the IP address of the gateway if you have one." msgstr "" "Hãy điền tên máy chủ của bạn.\n" "Tên máy chủ phải là tên đầy đủ hợp lệ, ví dụ như\n" " ``mybox.mylab.myco.com''.\n" "Bạn có thể điền địa chỉ IP của cổng kết nối nếu có." #: ../lib/network/netconnect.pm:804 #, c-format msgid "Last but not least you can also type in your DNS server IP addresses." msgstr "" "Cuối cùng nhưng không kém phần quan trọng, bạn phải điền địa\n" "địa chỉ IP của máy chủ DNS." #: ../lib/network/netconnect.pm:805 #, c-format msgid "DNS server address should be in format 1.2.3.4" msgstr "Địa chỉ máy chủ DNS nên có dạng 1.2.3.4" #: ../lib/network/netconnect.pm:807 #, c-format msgid "Gateway device" msgstr "Thiết bị Gateway" #: ../lib/network/netconnect.pm:821 #, c-format msgid "" "An unexpected error has happened:\n" "%s" msgstr "" "Xảy ra lỗi không mong muốn:\n" "%s" #: ../lib/network/network.pm:429 #, c-format msgid "Proxies configuration" msgstr "Cấu hình máy chủ ủy nhiệm" #: ../lib/network/network.pm:430 #, c-format msgid "" "Here you can set up your proxies configuration (eg: http://" "my_caching_server:8080)" msgstr "" #: ../lib/network/network.pm:431 #, c-format msgid "HTTP proxy" msgstr "Máy chủ ủy nhiệm HTTP" #: ../lib/network/network.pm:432 #, c-format msgid "Use HTTP proxy for HTTPS connections" msgstr "" #: ../lib/network/network.pm:433 #, c-format msgid "HTTPS proxy" msgstr "" #: ../lib/network/network.pm:434 #, c-format msgid "FTP proxy" msgstr "Máy chủ ủy nhiệm FTP" #: ../lib/network/network.pm:435 #, fuzzy, c-format msgid "No proxy for (comma separated list):" msgstr "%d dấu phẩy phân cách các chuỗi" #: ../lib/network/network.pm:440 #, c-format msgid "Proxy should be http://..." msgstr "Máy chủ ủy nhiệm nên là http://..." #: ../lib/network/network.pm:441 #, fuzzy, c-format msgid "Proxy should be http://... or https://..." msgstr "Máy chủ ủy nhiệm nên là http://..." #: ../lib/network/network.pm:442 #, c-format msgid "URL should begin with 'ftp:' or 'http:'" msgstr "URL nên bắt đầu bằng 'fpt:' hay 'http:'" #: ../lib/network/shorewall.pm:61 #, c-format msgid "" "Please select the interfaces that will be protected by the firewall.\n" "\n" "All interfaces directly connected to Internet should be selected,\n" "while interfaces connected to a local network may be unselected.\n" "\n" "Which interfaces should be protected?\n" msgstr "" #: ../lib/network/shorewall.pm:136 #, c-format msgid "Keep custom rules" msgstr "" #: ../lib/network/shorewall.pm:137 #, c-format msgid "Drop custom rules" msgstr "" #: ../lib/network/shorewall.pm:142 #, c-format msgid "" "Your firewall configuration has been manually edited and contains\n" "rules that may conflict with the configuration that has just been set up.\n" "What do you want to do?" msgstr "" #: ../lib/network/thirdparty.pm:135 #, c-format msgid "Some components (%s) are required but aren't available for %s hardware." msgstr "" #: ../lib/network/thirdparty.pm:136 #, c-format msgid "Some packages (%s) are required but aren't available." msgstr "Cần một số gói tin (%s) nhưng hiện không thấy có." #: ../lib/network/thirdparty.pm:138 #, c-format msgid "" "These packages can be found in Mandriva Club or in Mandriva commercial " "releases." msgstr "" "Những gói tin này có thể tìm thấy tại Mandriva Club hoặc phân phối thương " "mại của Mandriva." #: ../lib/network/thirdparty.pm:139 #, c-format msgid "The following component is missing: %s" msgstr "" #: ../lib/network/thirdparty.pm:141 #, c-format msgid "" "The required files can also be installed from this URL:\n" "%s" msgstr "" "Các tập tin cần thiết cũng có thể được cài đặt từ URL này:\n" "%s" #: ../lib/network/thirdparty.pm:180 #, c-format msgid "Firmware files are required for this device." msgstr "" #: ../lib/network/thirdparty.pm:183 ../lib/network/thirdparty.pm:188 #, c-format msgid "Use a floppy" msgstr "Dùng đĩa mềm" #: ../lib/network/thirdparty.pm:179 ../lib/network/thirdparty.pm:186 #, c-format msgid "Use my Windows partition" msgstr "Dùng phân vùng Windows" #: ../lib/network/thirdparty.pm:180 #, c-format msgid "Select file" msgstr "Chọn tập tin" #: ../lib/network/thirdparty.pm:191 #, fuzzy, c-format msgid "Please select the firmware file (for example: %s)" msgstr "Hãy chọn Windows driver (tập tin .inf)" #: ../lib/network/thirdparty.pm:215 #, c-format msgid "Unable to find \"%s\" on your Windows system!" msgstr "Không tìm thấy \"%s\" trong hệ thống Windows!" #: ../lib/network/thirdparty.pm:217 #, c-format msgid "No Windows system has been detected!" msgstr "Không phát hiện thấy hệ thống Windows!" #: ../lib/network/thirdparty.pm:227 #, c-format msgid "Insert floppy" msgstr "Nạp đĩa mềm" #: ../lib/network/thirdparty.pm:228 #, c-format msgid "" "Insert a FAT formatted floppy in drive %s with %s in root directory and " "press %s" msgstr "" "Nạp một đĩa mềm đã format vào ổ %s với %s trong thư mục root rồi nhấn %s" #: ../lib/network/thirdparty.pm:228 #, c-format msgid "Next" msgstr "Tiếp theo" #: ../lib/network/thirdparty.pm:238 #, c-format msgid "Floppy access error, unable to mount device %s" msgstr "Lỗi truy cập đĩa mềm, không thể gắn kết thiết bị %s" #: ../lib/network/thirdparty.pm:327 #, c-format msgid "Looking for required software and drivers..." msgstr "Đang tìm kiếm phần mềm và driver..." #: ../lib/network/thirdparty.pm:340 #, c-format msgid "Please wait, running device configuration commands..." msgstr "Hãy chờ, đang chạy lệnh cấu hình thiết bị..." #: ../lib/network/vpn/openvpn.pm:107 #, c-format msgid "X509 Public Key Infrastructure" msgstr "" #: ../lib/network/vpn/openvpn.pm:108 #, c-format msgid "Static Key" msgstr "" #: ../lib/network/vpn/openvpn.pm:115 #, c-format msgid "Type" msgstr "Kiểu" #. -PO: please don't translate the CA acronym #: ../lib/network/vpn/openvpn.pm:142 #, c-format msgid "Certificate Authority (CA)" msgstr "" #: ../lib/network/vpn/openvpn.pm:148 #, c-format msgid "Certificate" msgstr "" #: ../lib/network/vpn/openvpn.pm:154 #, c-format msgid "Key" msgstr "Khoá" #: ../lib/network/vpn/openvpn.pm:160 #, fuzzy, c-format msgid "TLS control channel key" msgstr "Phím Ctrl trái" #: ../lib/network/vpn/openvpn.pm:167 #, c-format msgid "Key direction" msgstr "" #: ../lib/network/vpn/openvpn.pm:175 #, fuzzy, c-format msgid "Authenticate using username and password" msgstr "Không thể đăng nhập bằng tên người dùng %s (mật khẩu sai?)" #: ../lib/network/vpn/openvpn.pm:181 #, c-format msgid "Check server certificate" msgstr "" #: ../lib/network/vpn/openvpn.pm:187 #, fuzzy, c-format msgid "Cipher algorithm" msgstr "Thuật toán mã hóa" #: ../lib/network/vpn/openvpn.pm:191 #, c-format msgid "Default" msgstr "Mặc định" #: ../lib/network/vpn/openvpn.pm:195 #, c-format msgid "Size of cipher key" msgstr "" #: ../lib/network/vpn/openvpn.pm:206 #, fuzzy, c-format msgid "Get from server" msgstr "Máy chủ Telnet" #: ../lib/network/vpn/openvpn.pm:216 #, fuzzy, c-format msgid "Gateway port" msgstr "Cổng kết nối" #: ../lib/network/vpn/openvpn.pm:232 #, fuzzy, c-format msgid "Remote IP address" msgstr "Địa chỉ IP của Gateway" #: ../lib/network/vpn/openvpn.pm:237 #, fuzzy, c-format msgid "Use TCP protocol" msgstr "Giao thức" #: ../lib/network/vpn/openvpn.pm:243 #, c-format msgid "Virtual network device type" msgstr "" #: ../lib/network/vpn/openvpn.pm:250 #, c-format msgid "Virtual network device number (optional)" msgstr "" #: ../lib/network/vpn/openvpn.pm:365 #, c-format msgid "Starting connection.." msgstr "" #: ../lib/network/vpn/openvpn.pm:380 #, c-format msgid "Please insert your token" msgstr "" #: ../lib/network/vpn/vpnc.pm:9 #, c-format msgid "Cisco VPN Concentrator" msgstr "" #: ../lib/network/vpn/vpnc.pm:43 #, fuzzy, c-format msgid "Group name" msgstr "ID Nhóm" #: ../lib/network/vpn/vpnc.pm:47 #, c-format msgid "Group secret" msgstr "" #: ../lib/network/vpn/vpnc.pm:52 #, c-format msgid "Username" msgstr "Tên người dùng" #: ../lib/network/vpn/vpnc.pm:61 #, c-format msgid "Use Cisco-UDP encapsulation" msgstr "" #: ../lib/network/vpn/vpnc.pm:67 #, c-format msgid "Use specific UDP port" msgstr "" #~ msgid "Failed to add printers." #~ msgstr "Không thể thêm máy in" #~ msgid "Get Online Help" #~ msgstr "Nhận hỗ trợ trực tuyến"