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
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
package printer;
# $Id$
#use diagnostics;
#use strict;
use common;
use run_program;
#-if we are in an DrakX config
my $prefix = "";
#-location of the printer database in an installed system
my $PRINTER_DB_FILE = "/usr/share/foomatic/db/compiled/overview.xml";
#-configuration directory of Foomatic
my $FOOMATICCONFDIR = "/etc/foomatic";
#-location of the file containing the default spooler's name
my $FOOMATIC_DEFAULT_SPOOLER = "$FOOMATICCONFDIR/defaultspooler";
%spooler = (
_("CUPS - Common Unix Printing System") => "cups",
_("LPRng - LPR New Generation") => "lprng",
_("LPD - Line Printer Daemon") => "lpd",
_("PDQ - Print, Don't Queue") => "pdq"
# _("PDQ - Marcia, click here!") => "pdq"
);
%spooler_inv = reverse %spooler;
%shortspooler = (
_("CUPS") => "cups",
_("LPRng") => "lprng",
_("LPD") => "lpd",
_("PDQ") => "pdq"
);
%shortspooler_inv = reverse %shortspooler;
%printer_type = (
_("Local printer") => "LOCAL",
_("Remote printer") => "REMOTE",
_("Printer on remote CUPS server") => "CUPS",
_("Printer on remote lpd server") => "LPD",
_("Network printer (TCP/Socket)") => "SOCKET",
_("Printer on SMB/Windows 95/98/NT server") => "SMB",
_("Printer on NetWare server") => "NCP",
_("Enter a printer device URI") => "URI",
_("Pipe job into a command") => "POSTPIPE"
);
%printer_type_inv = reverse %printer_type;
#------------------------------------------------------------------------------
sub set_prefix($) { $prefix = $_[0]; }
sub default_printer_type($) { "LOCAL" }
sub spooler {
# LPD is taken from the menu for the moment because the classic LPD is
# highly unsecure. Depending on how the GNU lpr development is going on
# LPD support can be reactivated by uncommenting the line which is
# commented out now.
#return @spooler_inv{qw(cups lpd lprng pdq)};
return @spooler_inv{qw(cups lprng pdq)};
}
sub printer_type($) {
my ($printer) = @_;
for ($printer->{SPOOLER}) {
/cups/ && return @printer_type_inv{qw(LOCAL),
qw(LPD SOCKET SMB),
$::expert ? qw(URI) : ()};
/lpd/ && return @printer_type_inv{qw(LOCAL LPD SOCKET SMB NCP),
$::expert ? qw(POSTPIPE URI) : ()};
/lprng/ && return @printer_type_inv{qw(LOCAL LPD SOCKET SMB NCP),
$::expert ? qw(POSTPIPE URI) : ()};
/pdq/ && return @printer_type_inv{qw(LOCAL LPD SOCKET),
$::expert ? qw(URI) : ()};
}
}
sub get_default_spooler () {
if (-f "$prefix$FOOMATIC_DEFAULT_SPOOLER") {
open DEFSPOOL, "< $prefix$FOOMATIC_DEFAULT_SPOOLER";
my $spool = <DEFSPOOL>;
chomp $spool;
close DEFSPOOL;
if ($spool =~ /cups|lpd|lprng|pdq/) {
return $spool;
}
}
}
sub set_default_spooler ($) {
my ($printer) = @_;
# Make Foomatic config directory if it does not exist yet
if (!(-d "$prefix$FOOMATICCONFDIR")) {mkdir "$prefix$FOOMATICCONFDIR";}
# Mark the default driver in a file
open DEFSPOOL, "> $prefix$FOOMATIC_DEFAULT_SPOOLER" ||
die "Cannot create $prefix$FOOMATIC_DEFAULT_SPOOLER!";
print DEFSPOOL $printer->{SPOOLER};
close DEFSPOOL;
}
sub set_permissions {
my ($file, $perms, $owner, $group) = @_;
# We only need to set the permissions during installation to be able to
# print test pages. After installation the devfsd daemon does the business
# automatically.
if (!$::isInstall) {return 1;}
if ($owner && $group) {
run_program::rooted($prefix, "/bin/chown", "$owner.$group", $file)
|| die "Could not start chown!";
} elsif ($owner) {
run_program::rooted($prefix, "/bin/chown", $owner, $file)
|| die "Could not start chown!";
} elsif ($group) {
run_program::rooted($prefix, "/bin/chgrp", $group, $file)
|| die "Could not start chgrp!";
}
run_program::rooted($prefix, "/bin/chmod", $perms, $file)
|| die "Could not start chmod!";
}
sub restart_service ($) {
my ($service) = @_;
run_program::rooted($prefix, "/etc/rc.d/init.d/$service", "restart");
if (($? >> 8) != 0) {
return 0;
} else {
# CUPS needs some time to come up.
if ($service eq "cups") {
wait_for_cups();
}
return 1;
}
}
sub start_service ($) {
my ($service) = @_;
run_program::rooted($prefix, "/etc/rc.d/init.d/$service", "start");
if (($? >> 8) != 0) {
return 0;
} else {
# CUPS needs some time to come up.
if ($service eq "cups") {
wait_for_cups();
}
return 1;
}
}
sub stop_service ($) {
my ($service) = @_;
run_program::rooted($prefix, "/etc/rc.d/init.d/$service", "stop");
if (($? >> 8) != 0) {return 0;} else {return 1;}
}
sub service_starts_on_boot ($) {
my ($service) = @_;
local *F;
open F, ($::testing ? "$prefix" : "chroot $prefix/ ") .
"/bin/sh -c \"export LC_ALL=C; /sbin/chkconfig --list $service 2>&1\" |" ||
return 0;
while (<F>) {
chomp;
if ($_ =~ /:on/) {
close F;
return 1;
}
}
close F;
return 0;
}
sub start_service_on_boot ($) {
my ($service) = @_;
run_program::rooted($prefix, "/sbin/chkconfig", "--add", $service)
|| return 0;
return 1;
}
sub SIGHUP_daemon {
my ($service) = @_;
# PDQ has no daemon, exit.
if ($service eq "pdq") {return 1};
# CUPS needs auto-configuration
if ($service eq "cups") {
run_program::rooted($prefix, "/usr/sbin/setcupsconfig");
}
# Name of the daemon
my $daemon;
if (($service eq "lpr") || ($service eq "lpd") || ($service eq "lprng")) {
$daemon = "lpd";
} elsif ($service eq "cups") {
$daemon = "cupsd";
} elsif ($service eq "devfs") {
$daemon = "devfsd";
} else {
$daemon = $service;
}
# Send the SIGHUP
run_program::rooted($prefix, "/usr/bin/killall", "-HUP", $daemon);
# CUPS needs some time to come up.
if ($service eq "cups") {
wait_for_cups();
}
return 1;
}
sub wait_for_cups {
# CUPS needs some time to come up. Wait up to 30 seconds, checking
# whether CUPS is ready.
my $cupsready = 0;
my $i;
for ($i = 0; $i < 30; $i++) {
run_program::rooted($prefix, "/usr/bin/lpstat", "-r");
if (($? >> 8) != 0) {
# CUPS is not ready, continue
sleep 1;
} else {
# CUPS is ready, quit
$cupsready = 1;
last;
}
}
return cupsready;
}
sub assure_device_is_available_for_cups {
# Checks whether CUPS already "knows" a certain port, it does not
# know it usually when the appropriate kernel module is loaded
# after CUPS was started or when the printer is turned on after
# CUPS was started. CUPS 1.1.12 and newer refuses to set up queues
# on devices which it does not know, it points these queues to
# file:/dev/null instead. Restart CUPS if necessary to assure that
# CUPS knows the device.
my ($device) = @_;
local *F;
open F, ($::testing ? "$prefix" : "chroot $prefix/ ") .
"/bin/sh -c \"export LC_ALL=C; /usr/sbin/lpinfo -v\" |" ||
die "Could not run \"lpinfo\"!";
while (<F>) {
print "##### $device $_";
if ($_ =~ /$device/) { # Found a line containing the device name,
# so CUPS knows it.
close F;
return 1;
}
}
close F;
return SIGHUP_daemon("cups");
}
sub network_running {
# If the network is not running return 0, otherwise 1.
local *F;
open F, ($::testing ? "$prefix" : "chroot $prefix/ ") .
"/bin/sh -c \"export LC_ALL=C; /sbin/ifconfig\" |" ||
die "Could not run \"ifconfig\"!";
while (<F>) {
if (($_ !~ /^lo\s+/) && # The loopback device can have been started by
# the spooler's startup script
($_ =~ /^(\S+)\s+/)) { # In this line starts an entry for a
# running network
close F;
return 1;
}
}
close F;
return 0;
}
sub get_security_level {
# Get security level by reading /etc/profile (only after install).
# This is a preliminary solution until msec puts the security level
# definition into the correct file.
$file = "/etc/profile";
if (-f $file) {
local *F;
open F, "< $file" || return 0;
while (<F>) {
if ($_ =~ /^\s*SECURE_LEVEL=([0-5])\s*$/) {
close F;
return $1;
}
}
close F;
}
return 0;
}
sub spooler_in_security_level {
# Was the current spooler already added to the current security level?
my ($spooler, $level) = @_;
my $sp;
if (($spooler eq "lpr") || ($spooler eq "lprng")) {
$sp = "lpd";
} else {
$sp = $spooler;
}
$file = "$prefix/etc/security/msec/server.$level";
if (-f $file) {
local *F;
open F, "< $file" || return 0;
while (<F>) {
if ($_ =~ /^\s*$sp\s*$/) {
close F;
return 1;
}
}
close F;
}
return 0;
}
sub add_spooler_to_security_level {
my ($spooler, $level) = @_;
my $sp;
if (($spooler eq "lpr") || ($spooler eq "lprng")) {
$sp = "lpd";
} else {
$sp = $spooler;
}
$file = "$prefix/etc/security/msec/server.$level";
if (-f $file) {
local *F;
open F, ">> $file" || return 0;
print F "$sp\n";
close F;
}
return 1;
}
sub files_exist {
my @files = @_;
for (@files) {
if (! -f "$prefix$_") {return 0;}
}
return 1;
}
sub set_alternative {
my ($command, $executable) = @_;
local *F;
# Read the list of executables for the given command to find the number
# of the desired executable
open F, ($::testing ? "$prefix" : "chroot $prefix/ ") .
"/bin/sh -c \"export LC_ALL=C; /bin/echo | update-alternatives --config $command \" |" ||
die "Could not run \"update-alternatives\"!";
my $choice = 0;
while (<F>) {
chomp;
if ($_ =~ m/^[\* ][\+ ]\s*([0-9]+)\s+(\S+)\s*$/) { # list entry?
if ($2 eq $executable) {
$choice = $1;
last;
}
}
}
close F;
# If the executable was found, assign the command to it
if ($choice > 0) {
system(($::testing ? "$prefix" : "chroot $prefix/ ") .
"/bin/sh -c \"/bin/echo $choice | update-alternatives --config $command > /dev/null 2>&1\"");
}
return 1;
}
sub pdq_panic_button {
my $setting = $_[0];
if (-f "/usr/sbin/pdqpanicbutton") {
run_program::rooted($prefix, "/usr/sbin/pdqpanicbutton", "--$setting")
|| die "Could not $setting PDQ panic buttons!";
}
}
sub copy_printer_params($$) {
my ($from, $to) = @_;
map { $to->{$_} = $from->{$_} } grep { $_ ne 'configured' } keys %$from;
#- avoid cycles-----------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
}
sub getinfo($) {
my ($prefix) = @_;
my $printer = {};
my @QUEUES;
set_prefix($prefix);
# Initialize $printer data structure
resetinfo($printer);
return $printer;
}
#------------------------------------------------------------------------------
sub resetinfo($) {
my ($printer) = @_;
$printer->{QUEUE} = "";
$printer->{OLD_QUEUE} = "";
$printer->{OLD_CHOICE} = "";
$printer->{ARGS} = "";
$printer->{DBENTRY} = "";
$printer->{DEFAULT} = "";
$printer->{currentqueue} = {};
# -check which printing system was used previously and load the information
# -about its queues
read_configured_queues($printer);
}
sub read_configured_queues($) {
my ($printer) = @_;
my @QUEUES;
# Get the default spooler choice from the config file
$printer->{SPOOLER} ||= get_default_spooler();
if (!$printer->{SPOOLER}) {
#- Find the first spooler where there are queues
my $spooler;
for $spooler (qw(cups pdq lprng lpd)) {
#- poll queue info
local *F;
open F, ($::testing ? "$prefix" : "chroot $prefix/ ") .
"foomatic-configure -P -q -s $spooler |" ||
die "Could not run foomatic-configure";
eval (join('',(<F>)));
close F;
#- Have we found queues?
if ($#QUEUES != -1) {
$printer->{SPOOLER} = $spooler;
last;
}
}
} else {
#- Poll the queues of the current default spooler
local *F;
open F, ($::testing ? "$prefix" : "chroot $prefix/ ") .
"foomatic-configure -P -q -s $printer->{SPOOLER} |" ||
die "Could not run foomatic-configure";
eval (join('',(<F>)));
close F;
}
$printer->{configured} = {};
my $i;
my $N = $#QUEUES + 1;
for ($i = 0; $i < $N; $i++) {
$printer->{configured}{$QUEUES[$i]->{'queuedata'}{'queue'}} =
$QUEUES[$i];
if ((!$QUEUES[$i]->{'make'}) || (!$QUEUES[$i]->{'model'})) {
if ($printer->{SPOOLER} eq "cups") {
$printer->{OLD_QUEUE} = $QUEUES[$i]->{'queuedata'}{'queue'};
my $descr = get_descr_from_ppd($printer);
$descr =~ m/^([^\|]*)\|([^\|]*)\|.*$/;
$printer->{configured}{$QUEUES[$i]->{'queuedata'}{'queue'}}{'queuedata'}{'make'} ||= $1;
$printer->{configured}{$QUEUES[$i]->{'queuedata'}{'queue'}}{'queuedata'}{'model'} ||= $2;
# Read out which PPD file was originally used to set up this
# queue
local *F;
if (open F, "< $prefix/etc/cups/ppd/$QUEUES[$i]->{'queuedata'}{'queue'}.ppd") {
while (<F>) {
if ($_ =~ /^\*%MDKMODELCHOICE:(.+)$/) {
$printer->{configured}{$QUEUES[$i]->{'queuedata'}{'queue'}}{'queuedata'}{'ppd'} = $1;
}
}
close F;
}
# Mark that we have a CUPS queue but do not know the name
# the PPD file in /usr/share/cups/model
if (!$printer->{configured}{$QUEUES[$i]->{'queuedata'}{'queue'}}{'queuedata'}{'ppd'}) {
$printer->{configured}{$QUEUES[$i]->{'queuedata'}{'queue'}}{'queuedata'}{'ppd'} = '1';
}
$printer->{configured}{$QUEUES[$i]->{'queuedata'}{'queue'}}{'queuedata'}{'driver'} = 'CUPS/PPD';
$printer->{OLD_QUEUE} = "";
# Read out the printer's options
$printer->{configured}{$QUEUES[$i]->{'queuedata'}{'queue'}}{'args'} = read_cups_options($QUEUES[$i]->{'queuedata'}{'queue'});
}
$printer->{configured}{$QUEUES[$i]->{'queuedata'}{'queue'}}{'queuedata'}{'make'} ||= "";
$printer->{configured}{$QUEUES[$i]->{'queuedata'}{'queue'}}{'queuedata'}{'model'} ||= _("Unknown model");
} else {
$printer->{configured}{$QUEUES[$i]->{'queuedata'}{'queue'}}{'queuedata'}{'make'} = $QUEUES[$i]->{'make'};
$printer->{configured}{$QUEUES[$i]->{'queuedata'}{'queue'}}{'queuedata'}{'model'} = $QUEUES[$i]->{'model'};
}
# Fill in "options" field
if (my $args = $printer->{configured}{$QUEUES[$i]->{'queuedata'}{'queue'}}{'args'}) {
my $arg;
my @options;
for $arg (@{$args}) {
push(@options, "-o");
my $optstr = $arg->{'name'} . "=" . $arg->{'default'};
push(@options, $optstr);
}
@{$printer->{configured}{$QUEUES[$i]->{'queuedata'}{'queue'}}{'queuedata'}{options}} = @options;
}
# Construct an entry line for tree view in main window of
# printerdrake
make_menuentry($printer, $QUEUES[$i]->{'queuedata'}{'queue'});
}
}
sub make_menuentry {
my ($printer, $queue) = @_;
my $spooler = $shortspooler_inv{$printer->{SPOOLER}};
my $connect = $printer->{configured}{$queue}{'queuedata'}{'connect'};
my $localremote;
if (($connect =~ m!^file:!) || ($connect =~ m!^ptal:!)) {
$localremote = _("Local Printers");
} else {
$localremote = _("Remote Printers");
}
my $make = $printer->{configured}{$queue}{'queuedata'}{'make'};
my $model = $printer->{configured}{$queue}{'queuedata'}{'model'};
my $connection;
if ($connect =~ m!^file:/dev/lp(\d+)$!) {
my $number = $1;
$connection = _(" on parallel port \#%s", $number);
} elsif ($connect =~ m!^file:/dev/usb/lp(\d+)$!) {
my $number = $1;
$connection = _(", USB printer \#%s", $number);
} elsif ($connect =~ m!^file:(.+)$!) {
$connection = _(", printing to %s", $1);
} elsif ($connect =~ m!^lpd://([^/]+)/([^/]+)/?$!) {
$connection = _("on LPD server \"%s\", printer \"%s\"", $2, $1);
} elsif ($connect =~ m!^socket://([^/:]+):([^/:]+)/?$!) {
$connection = _(", TCP/IP host \"%s\", port %s", $1, $2);
} elsif (($connect =~ m!^smb://([^/\@]+)/([^/\@]+)/?$!) ||
($connect =~ m!^smb://.*/([^/\@]+)/([^/\@]+)/?$!) ||
($connect =~ m!^smb://.*\@([^/\@]+)/([^/\@]+)/?$!)) {
$connection = _("on Windows server \"%s\", share \"%s\"", $1, $2);
} elsif (($connect =~ m!^ncp://([^/\@]+)/([^/\@]+)/?$!) ||
($connect =~ m!^ncp://.*/([^/\@]+)/([^/\@]+)/?$!) ||
($connect =~ m!^ncp://.*\@([^/\@]+)/([^/\@]+)/?$!)) {
$connection = _("on Novell server \"%s\", printer \"%s\"", $1, $2);
} elsif ($connect =~ m!^postpipe:(.+)$!) {
$connection = _(", using command %s", $1);
} else {
$connection = ($::expert ? ", URI: $connect" : "");
}
my $sep = "!";
$printer->{configured}{$queue}{'queuedata'}{'menuentry'} =
($::expert ? "$spooler$sep" : "") .
"$localremote$sep$queue: $make $model$connection";
}
sub read_printer_db(;$) {
my $spooler = $_[0];
my $dbpath = $prefix . $PRINTER_DB_FILE;
local $_; #- use of while (<...
local *DBPATH; #- don't have to do close ... and don't modify globals at least
# Generate the Foomatic printer/driver overview, read it from the
# appropriate file when it is already generated
if (!(-f $dbpath)) {
open DBPATH, ($::testing ? "$prefix" : "chroot $prefix/ ") .
"foomatic-configure -O -q |" ||
die "Could not run foomatic-configure";
} else {
open DBPATH, $dbpath or die "An error has occurred on $dbpath : $!";
}
my $entry = {};
my $inentry = 0;
my $indrivers = 0;
my $inautodetect = 0;
while (<DBPATH>) {
chomp;
if ($inentry) {
# We are inside a printer entry
if ($indrivers) {
# We are inside the drivers block of a printers entry
if (m!^\s*</drivers>\s*$!) {
# End of drivers block
$indrivers = 0;
} elsif (m!^\s*<driver>(.+)</driver>\s*$!) {
push (@{$entry->{drivers}}, $1);
}
} elsif ($inautodetect) {
# We are inside the autodetect block of a printers entry
# All entries inside this block will be ignored
if (m!^.*</autodetect>\s*$!) {
# End of autodetect block
$inautodetect = 0;
}
} else {
if (m!^\s*</printer>\s*$!) {
# entry completed
$inentry = 0;
# Expert mode:
# Make one database entry per driver with the entry name
# manufacturer|model|driver
if ($::expert) {
my $driver;
for $driver (@{$entry->{drivers}}) {
my $driverstr;
if ($driver eq "Postscript") {
$driverstr = "PostScript";
} else {
$driverstr = "GhostScript + $driver";
}
if ($driver eq $entry->{defaultdriver}) {
$driverstr .= " (recommended)";
}
$entry->{ENTRY} = "$entry->{make}|$entry->{model}|$driverstr";
$entry->{driver} = $driver;
# Duplicate contents of $entry because it is multiply entered to the database
map { $thedb{$entry->{ENTRY}}->{$_} = $entry->{$_} } keys %$entry;
}
} else {
# Recommended mode
# Make one entry per printer, with the recommended
# driver (manufacturerer|model)
$entry->{ENTRY} = "$entry->{make}|$entry->{model}";
if ($entry->{defaultdriver}) {
$entry->{driver} = $entry->{defaultdriver};
map { $thedb{$entry->{ENTRY}}->{$_} = $entry->{$_} } keys %$entry;
}
}
$entry = {};
} elsif (m!^\s*<id>\s*([^\s<>]+)\s*</id>\s*$!) {
# Foomatic printer ID
$entry->{printer} = $1;
} elsif (m!^\s*<make>(.+)</make>\s*$!) {
# Printer manufacturer
$entry->{make} = uc($1);
} elsif (m!^\s*<model>(.+)</model>\s*$!) {
# Printer model
$entry->{model} = $1;
} elsif (m!<driver>(.+)</driver>!) {
# Printer default driver
$entry->{defaultdriver} = $1;
} elsif (m!^\s*<drivers>\s*$!) {
# Drivers block
$indrivers = 1;
@{$entry->{drivers}} = ();
} elsif (m!^\s*<autodetect>\s*$!) {
# Autodetect block
$inautodetect = 1;
}
}
} else {
if (m!^\s*<printer>\s*$!) {
# new entry
$inentry = 1;
}
}
}
close DBPATH;
# Add raw queue
if ($spooler ne "pdq") {
$entry->{ENTRY} = _("Raw printer (No driver)");
$entry->{driver} = "raw";
$entry->{make} = "";
$entry->{model} = _("Unknown model");
map { $thedb{$entry->{ENTRY}}->{$_} = $entry->{$_} } keys %$entry;
}
#- Load CUPS driver database if CUPS is used as spooler
if (($spooler) && ($spooler eq "cups") && ($::expert)) {
#&$install('cups-drivers') unless $::testing;
#my $w;
#if ($in) {
# $w = $in->wait_message(_("CUPS starting"),
# _("Reading CUPS drivers database..."));
#}
poll_ppd_base();
}
@entries_db_short = sort keys %printer::thedb;
#%descr_to_db = map { $printer::thedb{$_}{DESCR}, $_ } @entries_db_short;
#%descr_to_help = map { $printer::thedb{$_}{DESCR}, $printer::thedb{$_}{ABOUT} } @entries_db_short;
#@entry_db_description = keys %descr_to_db;
#db_to_descr = reverse %descr_to_db;
}
sub read_foomatic_options ($) {
my ($printer) = @_;
# Generate the option data for the chosen printer/driver combo
my $COMBODATA;
local *F;
open F, ($::testing ? "$prefix" : "chroot $prefix/ ") .
"foomatic-configure -P -q -p $printer->{currentqueue}{'printer'}" .
" -d $printer->{currentqueue}{'driver'}" .
($printer->{OLD_QUEUE} ?
" -s $printer->{SPOOLER} -n $printer->{OLD_QUEUE}" : "") .
($printer->{SPECIAL_OPTIONS} ?
" $printer->{SPECIAL_OPTIONS}" : "")
. " |" ||
die "Could not run foomatic-configure";
eval (join('',(<F>)));
close F;
# Return the arguments field
return $COMBODATA->{'args'};
}
sub read_cups_options ($) {
my ($queue_or_file) = @_;
# Generate the option data from a CUPS PPD file/a CUPS queue
# Use the same Perl data structure as Foomatic uses to be able to
# reuse the dialog
local *F;
if ($queue_or_file =~ /.ppd.gz$/) { # compressed PPD file
open F, ($::testing ? "$prefix" : "chroot $prefix/ ") .
"gunzip -cd $queue_or_file | lphelp - |" || return 0;
} else { # PPD file not compressed or queue
open F, ($::testing ? "$prefix" : "chroot $prefix/ ") .
"lphelp $queue_or_file |" || return 0;
}
my $i;
my $j;
my @args = ();
my $line;
my $inoption = 0;
my $inchoices = 0;
# my $innumerical = 0;
while ($line = <F>) {
chomp $line;
if ($inoption) {
if ($inchoices) {
if ($line =~ /^\s*(\S+)\s+(\S.*)$/) {
push(@{$args[$i]{vals}}, {});
$j = $#{$args[$i]{vals}};
$args[$i]{vals}[$j]{value} = $1;
my $comment = $2;
# Did we find the default setting?
if ($comment =~ /default\)\s*$/) {
$args[$i]{default} = $args[$i]{vals}[$j]{value};
$comment =~ s/,\s*default\)\s*$//;
} else {
$comment =~ s/\)\s*$//;
}
# Remove opening paranthese
$comment =~ s/^\(//;
# Remove page size info
$comment =~ s/,\s*size:\s*[0-9\.]+x[0-9\.]+in$//;
$args[$i]{vals}[$j]{comment} = $comment;
} elsif (($line =~ /^\s*$/) && ($#{$args[$i]{vals}} > -1)) {
$inchoices = 0;
$inoption = 0;
}
# } elsif ($innumerical == 1) {
# if ($line =~ /^\s*The default value is ([0-9\.]+)\s*$/) {
# $args[$i]{default} = $1;
# $innumerical = 0;
# $inoption = 0;
# }
} else {
if ($line =~ /^\s*<choice>/) {
$inchoices = 1;
# } elsif ($line =~ /^\s*<value> must be a(.*) number in the range ([0-9\.]+)\.\.([0-9\.]+)\s*$/) {
# delete($args[$i]{vals});
# $args[$i]{min} = $2;
# $args[$i]{max} = $3;
# my $type = $1;
# if ($type =~ /integer/) {
# $args[$i]{type} = 'int';
# } else {
# $args[$i]{type} = 'float';
# }
# $innumerical = 1;
}
}
} else {
if ($line =~ /^\s*([^\s:][^:]*):\s+-o\s+([^\s=]+)=<choice>\s*$/) {
# if ($line =~ /^\s*([^\s:][^:]*):\s+-o\s+([^\s=]+)=<.*>\s*$/) {
$inoption = 1;
push(@args, {});
$i = $#args;
$args[$i]{comment} = $1;
$args[$i]{name} = $2;
$args[$i]{type} = 'enum';
@{$args[$i]{vals}} = ();
}
}
}
close F;
# Return the arguments field
return \@args;
}
#------------------------------------------------------------------------------
sub read_cups_printer_list {
my ($printer) = $_[0];
# This function reads in a list of all printers which the local CUPS
# daemon currently knows, including remote ones.
local *F;
open F, ($::testing ? "$prefix" : "chroot $prefix/ ") .
"lpstat -v |" || return ();
my @printerlist = ();
my $line;
while ($line = <F>) {
if ($line =~ m/^\s*device\s+for\s+([^:\s]+):\s*(\S+)\s*$/) {
my $queuename = $1;
my $comment = "";
if (($2 =~ m!^ipp://([^/:]+)[:/]!) &&
(!$printer->{configured}{$queuename})) {
$comment = _("(on %s)", $1);
} else {
$comment = _("(on this machine)");
}
push (@printerlist, "$queuename $comment");
}
}
close F;
return @printerlist;
}
sub get_cups_remote_queues {
my ($printer) = $_[0];
# This function reads in a list of all remote printers which the local
# CUPS daemon knows due to broadcasting of remote servers or
# "BrowsePoll" entries in the local /etc/cups/cupsd.conf/
local *F;
open F, ($::testing ? "$prefix" : "chroot $prefix/ ") .
"lpstat -v |" || return ();
my @printerlist = ();
my $line;
while ($line = <F>) {
if ($line =~ m/^\s*device\s+for\s+([^:\s]+):\s*(\S+)\s*$/) {
my $queuename = $1;
my $comment = "";
if (($2 =~ m!^ipp://([^/:]+)[:/]!) &&
(!$printer->{configured}{$queuename})) {
$comment = _("On CUPS server \"%s\"", $1);
my $sep = "!";
push (@printerlist,
($::expert ? _("CUPS") . $sep : "") .
_("Remote Printers") . "$sep$queuename: $comment"
. ($queuename eq $printer->{DEFAULT} ?
_(" (Default)") : ()));
}
}
}
close F;
return @printerlist;
}
sub set_cups_autoconf {
my $autoconf = $_[0];
# Read config file
local *F;
my $file = "$prefix/etc/sysconfig/printing";
if (!(-f $file)) {
@file_content = ();
} else {
open F, "< $file" or die "Cannot open $file!";
@file_content = <F>;
close F;
}
# Remove all valid "CUPS_CONFIG" lines
($_ =~ /^\s*CUPS_CONFIG/ and $_="") foreach @file_content;
# Insert the new "Printcap" line
if ($autoconf) {
push @file_content, "CUPS_CONFIG=automatic\n";
} else {
push @file_content, "CUPS_CONFIG=manual\n";
}
# Write back modified file
open F, "> $file" or die "Cannot open $file!";
print F @file_content;
close F;
# Restart CUPS
restart_service("cups");
return 1;
}
sub get_cups_autoconf {
local *F;
open F, ("< $prefix/etc/sysconfig/printing") || return 1;
my $line;
while ($line = <F>) {
if ($line =~ m!^[^\#]*CUPS_CONFIG=manual!) {
return 0;
}
}
return 1;
}
sub set_default_printer {
my ($printer) = $_[0];
run_program::rooted($prefix, "foomatic-configure",
"-D", "-q", "-s", $printer->{SPOOLER},
"-n", $printer->{DEFAULT}) || return 0;
return 1;
}
sub get_default_printer {
my $printer = $_[0];
local *F;
open F, ($::testing ? "$prefix" : "chroot $prefix/ ") .
"foomatic-configure -Q -q -s $printer->{SPOOLER} |" || return undef;
my $line;
while ($line = <F>) {
if ($line =~ m!^\s*<defaultqueue>(.*)</defaultqueue>\s*$!) {
return $1;
}
}
return undef;
}
sub read_cupsd_conf {
my @cupsd_conf;
local *F;
open F, "$prefix/etc/cups/cupsd.conf";
@cupsd_conf = <F>;
close F;
@cupsd_conf;
}
sub write_cupsd_conf {
my (@cupsd_conf) = @_;
local *F;
open F, ">$prefix/etc/cups/cupsd.conf";
print F @cupsd_conf;
close F;
#- restart cups after updating configuration.
restart_service("cups");
}
sub read_printers_conf {
my ($printer) = @_;
my $current = undef;
#- read /etc/cups/printers.conf file.
#- according to this code, we are now using the following keys for each queues.
#- DeviceURI > lpd://printer6/lp
#- Info > Info Text
#- Location > Location Text
#- State > Idle|Stopped
#- Accepting > Yes|No
local *PRINTERS; open PRINTERS, "$prefix/etc/cups/printers.conf" or return;
local $_;
while (<PRINTERS>) {
chomp;
/^\s*#/ and next;
if (/^\s*<(?:DefaultPrinter|Printer)\s+([^>]*)>/) { $current = { mode => 'cups', QUEUE => $1, } }
elsif (/\s*<\/Printer>/) { $current->{QUEUE} && $current->{DeviceURI} or next; #- minimal check of synthax.
add2hash($printer->{configured}{$current->{QUEUE}} ||= {}, $current); $current = undef }
elsif (/\s*(\S*)\s+(.*)/) { $current->{$1} = $2 }
}
close PRINTERS;
#- assume this printing system.
$printer->{SPOOLER} ||= 'cups';
}
sub get_direct_uri {
#- get the local printer to access via a Device URI.
my @direct_uri;
local *F; open F, ($::testing ? "$prefix" : "chroot $prefix/ ") . "/usr/sbin/lpinfo -v |";
local $_;
while (<F>) {
/^(direct|usb|serial)\s+(\S*)/ and push @direct_uri, $2;
}
close F;
@direct_uri;
}
sub get_descr_from_ppd {
my ($printer) = @_;
my %ppd;
#- if there is no ppd, this means this is a raw queue.
local *F; open F, "$prefix/etc/cups/ppd/$printer->{OLD_QUEUE}.ppd" or return "|" . _("Unknown model");
# "OTHERS|Generic PostScript printer|PostScript (en)";
local $_;
while (<F>) {
/^\*([^\s:]*)\s*:\s*\"([^\"]*)\"/ and do { $ppd{$1} = $2; next };
/^\*([^\s:]*)\s*:\s*([^\s\"]*)/ and do { $ppd{$1} = $2; next };
}
close F;
my $descr = ($ppd{NickName} || $ppd{ShortNickName} || $ppd{ModelName});
# Apply the beautifying rules of poll_ppd_base
if ($descr =~ /Foomatic \+ Postscript/) {
$descr =~ s/Foomatic \+ Postscript/PostScript/;
} elsif ($descr =~ /Foomatic/) {
$descr =~ s/Foomatic/GhostScript/;
} elsif ($descr =~ /CUPS\+GIMP-print/) {
$descr =~ s/CUPS\+GIMP-print/CUPS \+ GIMP-Print/;
} elsif ($descr =~ /Series CUPS/) {
$descr =~ s/Series CUPS/Series, CUPS/;
} elsif (!(uc($descr) =~ /POSTSCRIPT/)) {
$descr .= ", PostScript";
}
# Split the $descr into model and driver
my $model;
my $driver;
if ($descr =~ /^([^,]+), (.*)$/) {
$model = $1;
$driver = $2;
} else {
# Some PPDs do not have the ", <driver>" part.
$model = $descr;
$driver = "PostScript";
}
my $make = $ppd{Manufacturer};
my $lang = $ppd{LanguageVersion};
# Remove manufacturer's name from the beginning of the model name
if (($make) && ($model =~ /^$make[\s\-]+([^\s\-].*)$/)) {
$model = $1;
}
# Put out the resulting description string
uc($make) . '|' . $model . '|' . $driver .
($lang && (" (" . lc(substr($lang, 0, 2)) . ")"));
}
sub poll_ppd_base {
#- before trying to poll the ppd database available to cups, we have to make sure
#- the file /etc/cups/ppds.dat is no more modified.
#- if cups continue to modify it (because it reads the ppd files available), the
#- poll_ppd_base program simply cores :-)
run_program::rooted($prefix, "ifconfig lo 127.0.0.1"); #- else cups will not be happy! and ifup lo don't run ?
start_service("cups");
my $driversthere = scalar(keys %thedb);
foreach (1..60) {
local *PPDS; open PPDS, ($::testing ? "$prefix" : "chroot $prefix/ ") . "/usr/bin/poll_ppd_base -a |";
local $_;
while (<PPDS>) {
chomp;
my ($ppd, $mf, $descr, $lang) = split /\|/;
if ($ppd eq "raw") {next;}
my ($model, $driver);
if ($descr) {
if ($descr =~ /^([^,]+), (.*)$/) {
$model = $1;
$driver = $2;
} else {
# Some PPDs do not have the ", <driver>" part.
$model = $descr;
$driver = "PostScript";
}
}
# Rename Canon "BJC XXXX" models into "BJC-XXXX" so that the models
# do not appear twice
if ($mf eq "CANON") {
$model =~ s/BJC\s+/BJC-/;
}
$ppd && $mf && $descr and do {
my $key = "$mf|$model|$driver" . ($lang && " ($lang)");
$thedb{$key}{ppd} = $ppd;
$thedb{$key}{driver} = $driver;
$thedb{$key}{make} = $mf;
$thedb{$key}{model} = $model;
}
}
close PPDS;n>
#, c-format
msgid "Permissions"
msgstr "Permissões"
#: drakperm:60
#, c-format
msgid "Add a new rule"
msgstr "Adicionar nova regra"
#: drakperm:67 drakperm:102 drakperm:128
#, c-format
msgid "Edit current rule"
msgstr "Editar regra actual"
#: drakperm:110
#, c-format
msgid ""
"Here you can see files to use in order to fix permissions, owners, and "
"groups via msec.\n"
"You can also edit your own rules which will owerwrite the default rules."
msgstr ""
"Aqui pode ver ficheiros para usar e corrigir as permissões, os donos, e os "
"grupos via msec.\n"
"Pode também editar as suas próprias regras que irão substituir as regras "
"predefinidas."
#: drakperm:112
#, c-format
msgid ""
"The current security level is %s.\n"
"Select permissions to see/edit"
msgstr ""
"O nível de segurança actual é %s.\n"
"Seleccione as permissões para ver/editar"
#: drakperm:124
#, c-format
msgid "Up"
msgstr "Subir"
#: drakperm:124
#, c-format
msgid "Move selected rule up one level"
msgstr "Mover regra seleccionada um nível acima"
#: drakperm:125
#, c-format
msgid "Down"
msgstr "Descer"
#: drakperm:125
#, c-format
msgid "Move selected rule down one level"
msgstr "Mover regra seleccionada um nível abaixo"
#: drakperm:126
#, c-format
msgid "Add a rule"
msgstr "Adicionar regra"
#: drakperm:126
#, c-format
msgid "Add a new rule at the end"
msgstr "Adicionar nova regra no fim"
#: drakperm:127
#, c-format
msgid "Delete"
msgstr "Apagar"
#: drakperm:127
#, c-format
msgid "Delete selected rule"
msgstr "Apagar regra seleccionada"
#: drakperm:128 drakups:300 drakups:362 drakups:382
#, c-format
msgid "Edit"
msgstr "Editar"
#: drakperm:241
#, c-format
msgid "browse"
msgstr "procurar"
#: drakperm:246
#, c-format
msgid "user"
msgstr "utilizador"
#: drakperm:246
#, c-format
msgid "group"
msgstr "grupo"
#: drakperm:246
#, c-format
msgid "other"
msgstr "outro"
#: drakperm:249
#, c-format
msgid "Other"
msgstr "Outro"
#: drakperm:251
#, c-format
msgid "Read"
msgstr "Ler"
#. -PO: here %s will be either "user", "group" or "other"
#: drakperm:254
#, c-format
msgid "Enable \"%s\" to read the file"
msgstr "Permite a \"%s\" ler o ficheiro"
#: drakperm:258
#, c-format
msgid "Write"
msgstr "Escrever"
#. -PO: here %s will be either "user", "group" or "other"
#: drakperm:261
#, c-format
msgid "Enable \"%s\" to write the file"
msgstr "Permite a \"%s\" gravar o ficheiro"
#: drakperm:265
#, c-format
msgid "Execute"
msgstr "Executar"
#. -PO: here %s will be either "user", "group" or "other"
#: drakperm:268
#, c-format
msgid "Enable \"%s\" to execute the file"
msgstr "Permite a \"%s\" executar o ficheiro"
#: drakperm:271
#, c-format
msgid "Sticky-bit"
msgstr "Sticky-bit"
#: drakperm:271
#, c-format
msgid ""
"Used for directory:\n"
" only owner of directory or file in this directory can delete it"
msgstr ""
"Usado para directório:\n"
" apenas o dono do directório ou do ficheiro neste directório o pode apagar"
#: drakperm:272
#, c-format
msgid "Set-UID"
msgstr "Definir UID"
#: drakperm:272
#, c-format
msgid "Use owner id for execution"
msgstr "Usar id do dono para execução"
#: drakperm:273
#, c-format
msgid "Set-GID"
msgstr "Definir GID"
#: drakperm:273
#, c-format
msgid "Use group id for execution"
msgstr "Usar id do grupo para execução"
#: drakperm:290
#, c-format
msgid "User:"
msgstr "Utilizador:"
#: drakperm:291
#, c-format
msgid "Group:"
msgstr "Grupo:"
#: drakperm:295
#, c-format
msgid "Current user"
msgstr "Utilizador actual"
#: drakperm:296
#, c-format
msgid "When checked, owner and group will not be changed"
msgstr "Quando marcado, o dono e o grupo não serão mudados"
#: drakperm:306
#, c-format
msgid "Path selection"
msgstr "Selecção da localização"
#: drakperm:326
#, c-format
msgid "Property"
msgstr "Propriedades"
#: drakperm:376
#, c-format
msgid ""
"The first character of the path must be a slash (\"/\"):\n"
"\"%s\""
msgstr ""
"O primeiro caracter da localização deve ser uma barra (\"/\"):\n"
"\"%s\""
#: drakperm:386
#, c-format
msgid "Both the username and the group must valid!"
msgstr "O utilizador e o grupo devem ser válidos!"
#: drakperm:387
#, c-format
msgid "User: %s"
msgstr "Utilizador: %s"
#: drakperm:388
#, c-format
msgid "Group: %s"
msgstr "Grupo: %s"
#: draksec:54
#, c-format
msgid "ALL"
msgstr "TODOS"
#: draksec:55
#, c-format
msgid "LOCAL"
msgstr "LOCAL"
#: draksec:56
#, c-format
msgid "NONE"
msgstr "NENHUM"
#: draksec:57
#, c-format
msgid "Default"
msgstr "Predefinido"
#: draksec:58
#, c-format
msgid "Ignore"
msgstr "Ignorar"
#: draksec:91
#, c-format
msgid "Security Level and Checks"
msgstr "Nível de Segurança e Verificações"
#: draksec:114
#, c-format
msgid "Configure authentication required to access Mandriva tools"
msgstr "Configurar autenticação exigida para aceder às ferramentas Mandriva"
#: draksec:117
#, c-format
msgid "No password"
msgstr "Sem senha"
#: draksec:118
#, c-format
msgid "Root password"
msgstr "Senha de administrador"
#: draksec:119
#, c-format
msgid "User password"
msgstr "Senha de utilizador"
#: draksec:149 draksec:204
#, c-format
msgid "Software Management"
msgstr "Gestão de Programas"
#: draksec:150
#, c-format
msgid "Mandriva Update"
msgstr "Actualização Mandriva"
#: draksec:151
#, c-format
msgid "Software Media Manager"
msgstr "Gestor de Médias de Programas"
#: draksec:152
#, c-format
msgid "Configure 3D Desktop effects"
msgstr "Configurar efeitos de ecrã 3D"
#: draksec:153
#, c-format
msgid "Graphical Server Configuration"
msgstr "Configuração do Servidor Gráfico"
#: draksec:154
#, c-format
msgid "Mouse Configuration"
msgstr "Configuração do Rato"
#: draksec:155
#, c-format
msgid "Keyboard Configuration"
msgstr "Configuração do Teclado"
#: draksec:156
#, c-format
msgid "UPS Configuration"
msgstr "Configuração UPS"
#: draksec:157
#, c-format
msgid "Network Configuration"
msgstr "Configuração da Rede"
#: draksec:158
#, c-format
msgid "Hosts definitions"
msgstr "Definições de endereços"
#: draksec:159
#, c-format
msgid "Network Center"
msgstr "Gestão de Rede"
#: draksec:160
#, c-format
msgid "Wireless Network Roaming"
msgstr "Rede 'Roaming' Sem-fio"
#: draksec:161
#, c-format
msgid "VPN"
msgstr "VPN"
#: draksec:162
#, c-format
msgid "Proxy Configuration"
msgstr "Configuração 'Proxy'"
#: draksec:163
#, c-format
msgid "Connection Sharing"
msgstr "Partilha de Conexão"
#: draksec:165
#, c-format
msgid "Backups"
msgstr "Salvaguardas"
#: draksec:167 logdrake:52
#, c-format
msgid "Logs"
msgstr "Registos"
#: draksec:168
#, c-format
msgid "Services"
msgstr "Serviços"
#: draksec:169
#, c-format
msgid "Users"
msgstr "Utilizadores"
#: draksec:171
#, c-format
msgid "Boot Configuration"
msgstr "Configuração de Arranque"
#: draksec:205
#, c-format
msgid "Hardware"
msgstr "Material"
#: draksec:206
#, c-format
msgid "Network"
msgstr "Rede"
#: draksec:207
#, c-format
msgid "System"
msgstr "Sistema"
#: draksec:208
#, c-format
msgid "Boot"
msgstr "Arranque"
#: draksound:48
#, c-format
msgid "No Sound Card detected!"
msgstr "Nenhuma Placa de Som detectada!"
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
#: draksound:51
#, c-format
msgid ""
"No Sound Card has been detected on your machine. Please verify that a Linux-"
"supported Sound Card is correctly plugged in.\n"
"\n"
"\n"
"You can visit our hardware database at:\n"
"\n"
"\n"
"http://www.mandrivalinux.com/en/hardware.php3"
msgstr ""
"Não foi detectada nenhuma placa de som na sua máquina. Por favor verifique "
"se a placa de som suportada pelo Linux está bem ligada.\n"
"\n"
"\n"
"Pode visitar a nossa base de dados de material em:\n"
"\n"
"\n"
"http://www.mandrivalinux.com/en/hardware.php3"
#: draksound:58
#, c-format
msgid ""
"\n"
"\n"
"\n"
"Note: if you've an ISA PnP sound card, you'll have to use the alsaconf or "
"the sndconfig program. Just type \"alsaconf\" or \"sndconfig\" in a console."
msgstr ""
"\n"
"\n"
"\n"
"Nota: se tem uma placa som ISA PnP, terá de usar o programa alsaconf ou "
"sndconfig. Basta digitar \"alsaconf\" ou \"sndconfig\" numa consola."
#: drakups:71
#, c-format
msgid "Connected through a serial port or an usb cable"
msgstr "Conectado através de um porto série ou de um cabo usb"
#: drakups:72
#, c-format
msgid "Manual configuration"
msgstr "Configuração manual"
#: drakups:78
#, c-format
msgid "Add an UPS device"
msgstr "Adicionar dispositivo UPS"
#: drakups:81
#, c-format
msgid ""
"Welcome to the UPS configuration utility.\n"
"\n"
"Here, you'll add a new UPS to your system.\n"
msgstr ""
"Bem-vindo ao utilitário de configuração UPS.\n"
"\n"
"Aqui, poderá adicionar um novo UPS ao seu sistema.\n"
#: drakups:88
#, c-format
msgid ""
"We're going to add an UPS device.\n"
"\n"
"Do you want to autodetect UPS devices connected to this machine or to "
"manually select them?"
msgstr ""
"Vamos adicionar um dispositivo UPS.\n"
"\n"
"Deseja que os dispositivos UPS ligados a esta máquina sejam auto detectados "
"ou sejam manualmente seleccionados ?"
#: drakups:91
#, c-format
msgid "Autodetection"
msgstr "Autodetecção"
#: drakups:99 harddrake2:379
#, c-format
msgid "Detection in progress"
msgstr "Detecção em progresso"
#: drakups:118 drakups:157 logdrake:457 logdrake:463
#, c-format
msgid "Congratulations"
msgstr "Parabéns"
#: drakups:119
#, c-format
msgid "The wizard successfully added the following UPS devices:"
msgstr "O assistente adicionou com sucesso os seguintes dispositivos UPS:"
#: drakups:121
#, c-format
msgid "No new UPS devices was found"
msgstr "Nenhum dispositivo UPS novo encontrado"
#: drakups:126 drakups:138
#, c-format
msgid "UPS driver configuration"
msgstr "Configuração do controlador UPS"
#: drakups:126
#, c-format
msgid "Please select your UPS model."
msgstr "Por favor escolha o seu modelo UPS"
#: drakups:127
#, c-format
msgid "Manufacturer / Model:"
msgstr "Fabricante/Modelo:"
#: drakups:138
#, c-format
msgid ""
"We are configuring the \"%s\" UPS from \"%s\".\n"
"Please fill in its name, its driver and its port."
msgstr ""
"Estamos a configurar o UPS \"%s\" a partir de \"%s\".\n"
"Por favor preencha o nome, controlador e porto."
#: drakups:143
#, c-format
msgid "Name:"
msgstr "Nome:"
#: drakups:143
#, c-format
msgid "The name of your ups"
msgstr "O nome do seu ups"
#: drakups:144
#, c-format
msgid "Driver:"
msgstr "Controlador:"
#: drakups:144
#, c-format
msgid "The driver that manages your ups"
msgstr "O controlador que gere o seu UPS"
#: drakups:145
#, c-format
msgid "Port:"
msgstr "Porto:"
#: drakups:147
#, c-format
msgid "The port on which is connected your ups"
msgstr "O porto onde está ligado o seu ups"
#: drakups:157
#, c-format
msgid "The wizard successfully configured the new \"%s\" UPS device."
msgstr "O assistente configurou com sucesso o novo dispositivo UPS \"%s\"."
#: drakups:248
#, c-format
msgid "UPS devices"
msgstr "Dispositivos UPS"
#: drakups:249 drakups:268 drakups:284 harddrake2:86 harddrake2:113
#: harddrake2:120
#, c-format
msgid "Name"
msgstr "Nome"
#: drakups:249 harddrake2:136
#, c-format
msgid "Driver"
msgstr "Controlador"
#: drakups:249 harddrake2:56
#, c-format
msgid "Port"
msgstr "Porto"
#: drakups:267
#, c-format
msgid "UPS users"
msgstr "Utilizadores UPS"
#: drakups:283
#, c-format
msgid "Access Control Lists"
msgstr "Listas de Controlo de Acesso"
#: drakups:284
#, c-format
msgid "IP address"
msgstr "Endereço IP"
#: drakups:284
#, c-format
msgid "IP mask"
msgstr "Mascara IP"
#: drakups:296
#, c-format
msgid "Rules"
msgstr "Regras"
#: drakups:297
#, c-format
msgid "Action"
msgstr "Acção"
#: drakups:297 harddrake2:83
#, c-format
msgid "Level"
msgstr "Nível"
#: drakups:297
#, c-format
msgid "ACL name"
msgstr "Nome ACL"
#: drakups:297 finish-install:195
#, c-format
msgid "Password"
msgstr "Senha"
#: drakups:329
#, c-format
msgid "UPS Management"
msgstr "Gestão UPS"
#: drakups:333 drakups:342
#, c-format
msgid "DrakUPS"
msgstr "DrakUPS"
#: drakups:339
#, c-format
msgid "Welcome to the UPS configuration tools"
msgstr "Bem-vindo às ferramentas de configuração UPS"
#: drakxtv:67
#, c-format
msgid "No TV Card detected!"
msgstr "Nenhuma placa de TV detectada!"
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
#: drakxtv:69
#, c-format
msgid ""
"No TV Card has been detected on your machine. Please verify that a Linux-"
"supported Video/TV Card is correctly plugged in.\n"
"\n"
"\n"
"You can visit our hardware database at:\n"
"\n"
"\n"
"http://www.mandrivalinux.com/en/hardware.php3"
msgstr ""
"Não foi detectada nenhuma placa de TV na sua máquina. Por favor verifique se "
"a placa de Vídeo/TV suportada pelo Linux está bem ligada.\n"
"\n"
"\n"
"Pode visitar a nossa base de dados de material em :\n"
"\n"
"\n"
"http://www.mandrivalinux.com/en/hardware.php3"
#: finish-install:57
#, c-format
msgid "Keyboard"
msgstr "Teclado"
#: finish-install:58
#, c-format
msgid "Please, choose your keyboard layout."
msgstr "Por favor, escolha a disposição do seu teclado."
#: finish-install:105
#, c-format
msgid "Testing your connection..."
msgstr "A testar a sua conexão..."
#: finish-install:193 finish-install:211 finish-install:223
#, c-format
msgid "Encrypted home partition"
msgstr "Partição pessoal encriptada"
#: finish-install:193
#, c-format
msgid "Please enter a password for the %s user"
msgstr "Por favor indique a senha para o utilizador %s"
#: finish-install:196
#, c-format
msgid "Password (again)"
msgstr "Senha (novamente)"
#: finish-install:211
#, c-format
msgid "Creating encrypted home partition"
msgstr "A criar partição pessoal encriptada"
#: finish-install:223
#, c-format
msgid "Formatting encrypted home partition"
msgstr "A formatar partição pessoal encriptada"
#: harddrake2:30
#, c-format
msgid "Alternative drivers"
msgstr "Controladores alternativos"
#: harddrake2:31
#, c-format
msgid "the list of alternative drivers for this sound card"
msgstr "a lista dos controladores alternativos para esta placa de som"
#: harddrake2:33 harddrake2:122
#, c-format
msgid "Bus"
msgstr "Bus"
#: harddrake2:34
#, c-format
msgid ""
"this is the physical bus on which the device is plugged (eg: PCI, USB, ...)"
msgstr ""
"este é o bus físico no qual o dispositivo está ligado (ex: PCI, USB, ...)"
#: harddrake2:36 harddrake2:148
#, c-format
msgid "Bus identification"
msgstr "Identificação do Bus"
#: harddrake2:37
#, c-format
msgid ""
"- PCI and USB devices: this lists the vendor, device, subvendor and "
"subdevice PCI/USB ids"
msgstr ""
"- dispositivos PCI e USB : isto lista o vendedor, o dispositivo, subvendedor "
"e os subdispositivos ids PCI/USB"
#: harddrake2:39
#, c-format
msgid "Location on the bus"
msgstr "Posição no bus"
#: harddrake2:40
#, c-format
msgid ""
"- pci devices: this gives the PCI slot, device and function of this card\n"
"- eide devices: the device is either a slave or a master device\n"
"- scsi devices: the scsi bus and the scsi device ids"
msgstr ""
"- dispositivos pci : isto dá o slot PCI, dispositivo e função desta placa\n"
"- dispositivos eide : o dispositivo ou é slave ou master\n"
"- dispositivos scsi : o bus scsi o os ids do dispositivo scsi"
#: harddrake2:43
#, c-format
msgid "Drive capacity"
msgstr "Capacidade do disco"
#: harddrake2:43
#, c-format
msgid "special capacities of the driver (burning ability and or DVD support)"
msgstr ""
"capacidades especiais do controlador (capacidade de gravar e/ou suporte DVD)"
#: harddrake2:44
#, c-format
msgid "Description"
msgstr "Descrição"
#: harddrake2:44
#, c-format
msgid "this field describes the device"
msgstr "este campo descreve o dispositivo"
#: harddrake2:45
#, c-format
msgid "Old device file"
msgstr "Ficheiro antigo do dispositivo"
#: harddrake2:46
#, c-format
msgid "old static device name used in dev package"
msgstr "nome de dispositivo estático antigo usado no pacote dev"
#. -PO: here "module" is the "jargon term" for a kernel driver
#: harddrake2:49
#, c-format
msgid "Module"
msgstr "Módulo"
#: harddrake2:49
#, c-format
msgid "the module of the GNU/Linux kernel that handles the device"
msgstr "o módulo do kernel GNU/Linux que gere o dispositivo"
#: harddrake2:50
#, c-format
msgid "Extended partitions"
msgstr "Partições extendidas"
#: harddrake2:50
#, c-format
msgid "the number of extended partitions"
msgstr "o número de partições extendidas"
#: harddrake2:51
#, c-format
msgid "Geometry"
msgstr "Geometria"
#: harddrake2:51
#, c-format
msgid "Cylinder/head/sectors geometry of the disk"
msgstr "Cilindros/cabeças/sectores da geometria do disco"
#: harddrake2:52
#, c-format
msgid "Disk controller"
msgstr "Controlador do disco"
#: harddrake2:52
#, c-format
msgid "the disk controller on the host side"
msgstr "o controlador do disco na parte do endereço"
#: harddrake2:53
#, c-format
msgid "Identifier"
msgstr "Identificador"
#: harddrake2:53
#, c-format
msgid "usually the device serial number"
msgstr "normalmente o número série do dispositivo"
#: harddrake2:54
#, c-format
msgid "Media class"
msgstr "Classe da média"
#: harddrake2:54
#, c-format
msgid "class of hardware device"
msgstr "classe do dispositivo material"
#: harddrake2:55 harddrake2:84
#, c-format
msgid "Model"
msgstr "Modelo"
#: harddrake2:55
#, c-format
msgid "hard disk model"
msgstr "modelo do disco rígido"
#: harddrake2:56
#, c-format
msgid "network printer port"
msgstr "porto da impressora de rede"
#: harddrake2:57
#, c-format
msgid "Primary partitions"
msgstr "Partições primárias"
#: harddrake2:57
#, c-format
msgid "the number of the primary partitions"
msgstr "o número de partições primárias"
#: harddrake2:58 harddrake2:89
#, c-format
msgid "Vendor"
msgstr "Vendedor"
#: harddrake2:58
#, c-format
msgid "the vendor name of the device"
msgstr "o nome do vendedor do dispositivo"
#: harddrake2:59
#, c-format
msgid "PCI domain"
msgstr "Domínio PCI"
#: harddrake2:59 harddrake2:60
#, c-format
msgid "the PCI domain of the device"
msgstr "o domínio PCI do dispositivo"
#: harddrake2:60
#, c-format
msgid "PCI revision"
msgstr "Revisão PCI"
#: harddrake2:61
#, c-format
msgid "Bus PCI #"
msgstr "Bus PCI #"
#: harddrake2:61
#, c-format
msgid "the PCI bus on which the device is plugged"
msgstr "o bus PCI onde o dispositivo está ligado"
#: harddrake2:62
#, c-format
msgid "PCI device #"
msgstr "Dispositivo PCI #"
#: harddrake2:62
#, c-format
msgid "PCI device number"
msgstr "Número do dispositivo PCI"
#: harddrake2:63
#, c-format
msgid "PCI function #"
msgstr "Função PCI #"
#: harddrake2:63
#, c-format
msgid "PCI function number"
msgstr "Número da função PCI"
#: harddrake2:64
#, c-format
msgid "Vendor ID"
msgstr "ID do vendedor"
#: harddrake2:64
#, c-format
msgid "this is the standard numerical identifier of the vendor"
msgstr "este é o identificador numérico padrão do vendedor"
#: harddrake2:65
#, c-format
msgid "Device ID"
msgstr "ID do Dispositivo"
#: harddrake2:65
#, c-format
msgid "this is the numerical identifier of the device"
msgstr "este é o identificador numérico do dispositivo"
#: harddrake2:66
#, c-format
msgid "Sub vendor ID"
msgstr "ID do sub-vendedor"
#: harddrake2:66
#, c-format
msgid "this is the minor numerical identifier of the vendor"
msgstr "este é o menor identificador numérico do vendedor"
#: harddrake2:67
#, c-format
msgid "Sub device ID"
msgstr "ID do sub dispositivo"
#: harddrake2:67
#, c-format
msgid "this is the minor numerical identifier of the device"
msgstr "este é o menor identificador numérico do dispositivo"
#: harddrake2:68
#, c-format
msgid "Device USB ID"
msgstr "ID do Dispositivo USB"
#: harddrake2:68
#, c-format
msgid ".."
msgstr ".."
#: harddrake2:72
#, c-format
msgid "Bogomips"
msgstr "Bogomips"
#: harddrake2:72
#, c-format
msgid ""
"the GNU/Linux kernel needs to run a calculation loop at boot time to "
"initialize a timer counter. Its result is stored as bogomips as a way to "
"\"benchmark\" the cpu."
msgstr ""
"O kernel GNU/Linux precisa executar um ciclo de cálculos ao arrancar para "
"inicializar o contador de tempo. Os seus resultados são armazenados como "
"bogomips como maneira de ter um termo/referência de comparação ('benchmark') "
"do processador (cpu)."
#: harddrake2:73
#, c-format
msgid "Cache size"
msgstr "Tamanho da caixa"
#: harddrake2:73
#, c-format
msgid "size of the (second level) cpu cache"
msgstr "tamanho da caixa do cpu (segundo nível)"
#: harddrake2:74
#, c-format
msgid "Cpuid family"
msgstr "Família cpuid"
#: harddrake2:74
#, c-format
msgid "family of the cpu (eg: 6 for i686 class)"
msgstr "família do cpu (ex: 6 para a classe i686)"
#: harddrake2:75
#, c-format
msgid "Cpuid level"
msgstr "Nível cpuid"
#: harddrake2:75
#, c-format
msgid "information level that can be obtained through the cpuid instruction"
msgstr "o nível de informação que pode ser obtido através da instrução cpuid"
#: harddrake2:76
#, c-format
msgid "Frequency (MHz)"
msgstr "Frequência (MHz)"
#: harddrake2:76
#, c-format
msgid ""
"the CPU frequency in MHz (Megahertz which in first approximation may be "
"coarsely assimilated to number of instructions the cpu is able to execute "
"per second)"
msgstr ""
"a frequência do cpu em MHz (Megahertz que na primeira aproximação pode ser "
"assimilada grosseiramente para o número de instruções que o cpu é capaz de "
"executar por segundo)"
#: harddrake2:77
#, c-format
msgid "Flags"
msgstr "Opções"
#: harddrake2:77
#, c-format
msgid "CPU flags reported by the kernel"
msgstr "As opções (flags) do CPU comunicadas pelo kernel"
#: harddrake2:78 harddrake2:141
#, c-format
msgid "Cores"
msgstr "Núcleos"
#: harddrake2:78
#, c-format
msgid "CPU cores"
msgstr "Núcleos de CPU"
#: harddrake2:79
#, c-format
msgid "Core ID"
msgstr "ID do Núcleo"
#: harddrake2:80
#, c-format
msgid "Physical ID"
msgstr "ID Físico"
#: harddrake2:81
#, c-format
msgid "ACPI ID"
msgstr "ID ACPI"
#: harddrake2:82
#, c-format
msgid "Siblings"
msgstr "Irmãos"
#: harddrake2:83
#, c-format
msgid "sub generation of the cpu"
msgstr "sub geração do cpu"
#: harddrake2:84
#, c-format
msgid "generation of the cpu (eg: 8 for Pentium III, ...)"
msgstr "geração do cpu (ex: 8 para os Pentium III, ...)"
#: harddrake2:85
#, c-format
msgid "Model name"
msgstr "Nome do modelo"
#: harddrake2:85
#, c-format
msgid "official vendor name of the cpu"
msgstr "nome oficial do fabricante do cpu"
#: harddrake2:86
#, c-format
msgid "the name of the CPU"
msgstr "o nome do cpu"
#: harddrake2:87
#, c-format
msgid "Processor ID"
msgstr "ID do processador"
#: harddrake2:87
#, c-format
msgid "the number of the processor"
msgstr "o numero do cpu"
#: harddrake2:88
#, c-format
msgid "Model stepping"
msgstr "Numeração do modelo"
#: harddrake2:88
#, c-format
msgid "stepping of the cpu (sub model (generation) number)"
msgstr "numeração do cpu (número (geração) do sub-modelo)"
#: harddrake2:89
#, c-format
msgid "the vendor name of the processor"
msgstr "o nome do fabricante do cpu"
#: harddrake2:90
#, c-format
msgid "Write protection"
msgstr "Protecção de escrita"
#: harddrake2:90
#, c-format
msgid ""
"the WP flag in the CR0 register of the cpu enforce write protection at the "
"memory page level, thus enabling the processor to prevent unchecked kernel "
"accesses to user memory (aka this is a bug guard)"
msgstr ""
"a opção WP no registo CR0 do processador força a protecção de escrita ao "
"nível da página da memória, permitindo assim ao processador evitar acessos "
"não verificados do kernel à memória do utilizador (uma protecção contra "
"erros)"
#: harddrake2:94
#, c-format
msgid "Floppy format"
msgstr "Formato da disquete"
#: harddrake2:94
#, c-format
msgid "format of floppies supported by the drive"
msgstr "formato de disquetes suportado pelo dispositivo"
#: harddrake2:98
#, c-format
msgid "EIDE/SCSI channel"
msgstr "Canal EIDE/SCSI"
#: harddrake2:99
#, c-format
msgid "Disk identifier"
msgstr "Identificador do disco"
#: harddrake2:99
#, c-format
msgid "usually the disk serial number"
msgstr "normalmente o número série do disco"
#: harddrake2:100
#, c-format
msgid "Target id number"
msgstr "Número ID de destino"
#: harddrake2:100
#, c-format
msgid "the SCSI target identifier"
msgstr "o identificador de destino SCSI"
#: harddrake2:101
#, c-format
msgid "Logical unit number"
msgstr "Número da unidade lógica"
#: harddrake2:101
#, c-format
msgid ""
"the SCSI Logical Unit Number (LUN). SCSI devices connected to a host are "
"uniquely identified by a\n"
"channel number, a target id and a logical unit number"
msgstr ""
"o Número de Unidade Lógica SCSI (LUN). Os dispositivos SCSI ligados a uma "
"máquina são\n"
"identificados unicamente por um número de canal, um id de destino e um "
"número de unidade lógica"
#. -PO: here, "size" is the size of the ram chip (eg: 128Mo, 256Mo, ...)
#: harddrake2:108
#, c-format
msgid "Installed size"
msgstr "Tamanho instalado"
#: harddrake2:108
#, c-format
msgid "Installed size of the memory bank"
msgstr "Tamanho instalado do banco de memória"
#: harddrake2:109
#, c-format
msgid "Enabled Size"
msgstr "Tamanho activado"
#: harddrake2:109
#, c-format
msgid "Enabled size of the memory bank"
msgstr "Tamanho activado do banco de memória"
#: harddrake2:110 harddrake2:119
#, c-format
msgid "Type"
msgstr "Tipo"
#: harddrake2:110
#, c-format
msgid "type of the memory device"
msgstr "tipo de memória do dispositivo"
#: harddrake2:111
#, c-format
msgid "Speed"
msgstr "Velocidade"
#: harddrake2:111
#, c-format
msgid "Speed of the memory bank"
msgstr "Velocidade do banco de memória"
#: harddrake2:112
#, c-format
msgid "Bank connections"
msgstr "Conexões do Banco"
#: harddrake2:113
#, c-format
msgid "Socket designation of the memory bank"
msgstr "Designação do 'socket' do banco de memória"
#: harddrake2:117
#, c-format
msgid "Device file"
msgstr "Ficheiro do dispositivo"
#: harddrake2:117
#, c-format
msgid ""
"the device file used to communicate with the kernel driver for the mouse"
msgstr ""
"o ficheiro do dispositivo usado para comunicar com o controlador do kernel "
"para o rato"
#: harddrake2:118
#, c-format
msgid "Emulated wheel"
msgstr "Roda emulada"
#: harddrake2:118
#, c-format
msgid "whether the wheel is emulated or not"
msgstr "se a roda está emulada ou não"
#: harddrake2:119
#, c-format
msgid "the type of the mouse"
msgstr "o tipo do rato"
#: harddrake2:120
#, c-format
msgid "the name of the mouse"
msgstr "o nome do rato"
#: harddrake2:121
#, c-format
msgid "Number of buttons"
msgstr "Número de botões"
#: harddrake2:121
#, c-format
msgid "the number of buttons the mouse has"
msgstr "o número de botões que o rato tem"
#: harddrake2:122
#, c-format
msgid "the type of bus on which the mouse is connected"
msgstr "o tipo de 'bus' onde o rato está conectado"
#: harddrake2:123
#, c-format
msgid "Mouse protocol used by X11"
msgstr "Protocolo do rato usado pelo X11"
#: harddrake2:123
#, c-format
msgid "the protocol that the graphical desktop use with the mouse"
msgstr "o protocolo que o ambiente gráfico usa com o rato"
#: harddrake2:127
#, c-format
msgid "Identification"
msgstr "Identificação"
#: harddrake2:132 harddrake2:147
#, c-format
msgid "Connection"
msgstr "Conexão"
#: harddrake2:142
#, c-format
msgid "Performances"
msgstr "Desempenho"
#: harddrake2:149
#, c-format
msgid "Device"
msgstr "Dispositivo"
#: harddrake2:150
#, c-format
msgid "Partitions"
msgstr "Partições"
#: harddrake2:155
#, c-format
msgid "Features"
msgstr "Características"
#. -PO: please keep all "/" characters !!!
#: harddrake2:178 logdrake:78
#, c-format
msgid "/_Options"
msgstr "/_Opções"
#: harddrake2:179 harddrake2:208 logdrake:80
#, c-format
msgid "/_Help"
msgstr "/_Ajuda"
#: harddrake2:183
#, c-format
msgid "/Autodetect _printers"
msgstr "/Auto-detectar _impressoras"
#: harddrake2:184
#, c-format
msgid "/Autodetect _modems"
msgstr "/Auto-detectar _modems"
#: harddrake2:185
#, c-format
msgid "/Autodetect _jaz drives"
msgstr "/Auto-detectar controladores _jaz"
#: harddrake2:186
#, c-format
msgid "/Autodetect parallel _zip drives"
msgstr "/Auto-detectar controladores _zip paralelos"
#: harddrake2:190
#, c-format
msgid "Hardware Configuration"
msgstr "Configuração do Material"
#: harddrake2:197
#, c-format
msgid "/_Quit"
msgstr "/_Sair"
#: harddrake2:210
#, c-format
msgid "/_Fields description"
msgstr "/_Descrição dos campos"
#: harddrake2:212
#, c-format
msgid "Harddrake help"
msgstr "Ajuda Harddrake"
#: harddrake2:213
#, c-format
msgid ""
"Description of the fields:\n"
"\n"
msgstr ""
"Descrição dos campos:\n"
"\n"
#: harddrake2:221
#, c-format
msgid "Select a device!"
msgstr "Seleccione um dispositivo!"
#: harddrake2:221
#, c-format
msgid ""
"Once you've selected a device, you'll be able to see the device information "
"in fields displayed on the right frame (\"Information\")"
msgstr ""
"Assim que tiver seleccionado um dispositivo, poderá ver a informação do "
"dispositivo no painel direito (\"Informação\")"
#: harddrake2:227
#, c-format
msgid "/_Report Bug"
msgstr "/_Reportar Erro"
#: harddrake2:229
#, c-format
msgid "/_About..."
msgstr "/_Acerca..."
#: harddrake2:232
#, c-format
msgid "Harddrake"
msgstr "Harddrake"
#: harddrake2:236
#, c-format
msgid "This is HardDrake, a %s hardware configuration tool."
msgstr "Este é o HardDrake, uma ferramenta %s de configuração de material."
#: harddrake2:269
#, c-format
msgid "Detected hardware"
msgstr "Material detectado"
#: harddrake2:272 scannerdrake:286
#, c-format
msgid "Information"
msgstr "Informação"
#: harddrake2:274
#, c-format
msgid "Set current driver options"
msgstr "Definir opções do controlador actual"
#: harddrake2:281
#, c-format
msgid "Run config tool"
msgstr "Executar ferramenta de configuração"
#: harddrake2:301
#, c-format
msgid ""
"Click on a device in the left tree in order to display its information here."
msgstr ""
"Clique num dispositivo na árvore esquerda para mostrar aqui a sua informação."
#: harddrake2:322 notify-x11-free-driver-switch:13
#, c-format
msgid "unknown"
msgstr "desconhecido"
#: harddrake2:323
#, c-format
msgid "Unknown"
msgstr "Desconhecido"
#: harddrake2:343
#, c-format
msgid "Misc"
msgstr "Variado"
#: harddrake2:427
#, c-format
msgid "secondary"
msgstr "secundário"
#: harddrake2:427
#, c-format
msgid "primary"
msgstr "primário"
#: harddrake2:431
#, c-format
msgid "burner"
msgstr "gravador"
#: harddrake2:431
#, c-format
msgid "DVD"
msgstr "DVD"
#: harddrake2:535
#, c-format
msgid "The following packages need to be installed:\n"
msgstr "Os seguintes pacotes precisam ser instalados:\n"
#: localedrake:38
#, c-format
msgid "LocaleDrake"
msgstr "LocaleDrake"
#: localedrake:46
#, c-format
msgid "You should install the following packages: %s"
msgstr "Deve instalar os seguintes pacotes: %s"
#. -PO: the following is used to combine packages names. eg: "initscripts, harddrake, yudit"
#: localedrake:49
#, c-format
msgid ", "
msgstr ", "
#: logdrake:51
#, c-format
msgid "Mandriva Linux Tools Logs"
msgstr "Registos das Ferramentas Mandriva Linux"
#: logdrake:65
#, c-format
msgid "Show only for the selected day"
msgstr "Mostrar apenas para o dia seleccionado"
#: logdrake:72
#, c-format
msgid "/File/_New"
msgstr "/Ficheiro/_Novo"
#: logdrake:72
#, c-format
msgid "<control>N"
msgstr "<control>N"
#: logdrake:73
#, c-format
msgid "/File/_Open"
msgstr "/Ficheiro/_Abrir"
#: logdrake:73
#, c-format
msgid "<control>O"
msgstr "<control>A"
#: logdrake:74
#, c-format
msgid "/File/_Save"
msgstr "/Ficheiro/_Gravar"
#: logdrake:74
#, c-format
msgid "<control>S"
msgstr "<control>G"
#: logdrake:75
#, c-format
msgid "/File/Save _As"
msgstr "/Ficheiro/Gravar _Como"
#: logdrake:76
#, c-format
msgid "/File/-"
msgstr "/Ficheiro/-"
#: logdrake:79
#, c-format
msgid "/Options/Test"
msgstr "/Opções/Teste"
#: logdrake:81
#, c-format
msgid "/Help/_About..."
msgstr "/Ajuda/A_cerca..."
#: logdrake:110
#, c-format
msgid ""
"_:this is the auth.log log file\n"
"Authentication"
msgstr "Autenticação"
#: logdrake:111
#, c-format
msgid ""
"_:this is the user.log log file\n"
"User"
msgstr "Utilizador"
#: logdrake:112
#, c-format
msgid ""
"_:this is the /var/log/messages log file\n"
"Messages"
msgstr "Mensagens"
#: logdrake:113
#, c-format
msgid ""
"_:this is the /var/log/syslog log file\n"
"Syslog"
msgstr "Syslog"
#: logdrake:117
#, c-format
msgid "search"
msgstr "procurar"
#: logdrake:129
#, c-format
msgid "A tool to monitor your logs"
msgstr "Ferramenta para monitorizar os seus registos"
#: logdrake:131
#, c-format
msgid "Settings"
msgstr "Configurações"
#: logdrake:134
#, c-format
msgid "Matching"
msgstr "Correspondente"
#: logdrake:135
#, c-format
msgid "but not matching"
msgstr "mas não correspondente"
#: logdrake:138
#, c-format
msgid "Choose file"
msgstr "Escolher ficheiro"
#: logdrake:150
#, c-format
msgid "Calendar"
msgstr "Calendário"
#: logdrake:159
#, c-format
msgid "Content of the file"
msgstr "Conteúdo do ficheiro"
#: logdrake:163 logdrake:407
#, c-format
msgid "Mail alert"
msgstr "Alerta de correio"
#: logdrake:170
#, c-format
msgid "The alert wizard has failed unexpectedly:"
msgstr "O assistente de alerta falhou inesperadamente:"
#: logdrake:174
#, c-format
msgid "Save"
msgstr "Gravar"
#: logdrake:222
#, c-format
msgid "please wait, parsing file: %s"
msgstr "por favor aguarde, a analisar o ficheiro: %s"
#: logdrake:244
#, c-format
msgid "Sorry, log file isn't available!"
msgstr "Desculpe, o ficheiro de registo não está disponível!"
#: logdrake:292
#, c-format
msgid "Error while opening \"%s\" log file: %s\n"
msgstr "Erro ao abrir o ficheiro de registo \"%s\": %s\n"
#: logdrake:385
#, c-format
msgid "Apache World Wide Web Server"
msgstr "Servidor Apache WWW"
#: logdrake:386
#, c-format
msgid "Domain Name Resolver"
msgstr "Resolução do Nome de Domínio"
#: logdrake:387
#, c-format
msgid "Ftp Server"
msgstr "Servidor Ftp"
#: logdrake:388
#, c-format
msgid "Postfix Mail Server"
msgstr "Servidor de Correio Postfix"
#: logdrake:389
#, c-format
msgid "Samba Server"
msgstr "Servidor Samba"
#: logdrake:390
#, c-format
msgid "SSH Server"
msgstr "Servidor SSH"
#: logdrake:391
#, c-format
msgid "Webmin Service"
msgstr "Serviço Webmin"
#: logdrake:392
#, c-format
msgid "Xinetd Service"
msgstr "Serviço Xinetd"
#: logdrake:401
#, c-format
msgid "Configure the mail alert system"
msgstr "Configurar sistema de alerta por correio"
#: logdrake:402
#, c-format
msgid "Stop the mail alert system"
msgstr "Parar sistema de alerta por correio"
#: logdrake:410
#, c-format
msgid "Mail alert configuration"
msgstr "Configuração de alerta por correio"
#: logdrake:411
#, c-format
msgid ""
"Welcome to the mail configuration utility.\n"
"\n"
"Here, you'll be able to set up the alert system.\n"
msgstr ""
"Bem-vindo ao utilitário de configuração do correio.\n"
"\n"
"Aqui, pode configurar o sistema de alerta.\n"
#: logdrake:414
#, c-format
msgid "What do you want to do?"
msgstr "O que deseja fazer?"
#: logdrake:421
#, c-format
msgid "Services settings"
msgstr "Configuração de serviços"
#: logdrake:422
#, c-format
msgid ""
"You will receive an alert if one of the selected services is no longer "
"running"
msgstr ""
"Irá receber um alerta se um dos serviços seleccionados já não estiver a "
"correr"
#: logdrake:429
#, c-format
msgid "Load setting"
msgstr "Definição da carga"
#: logdrake:430
#, c-format
msgid "You will receive an alert if the load is higher than this value"
msgstr "Irá receber um alerta se a carga for superior a este valor"
#: logdrake:431
#, c-format
msgid ""
"_: load here is a noun, the load of the system\n"
"Load"
msgstr "Carga"
#: logdrake:436
#, c-format
msgid "Alert configuration"
msgstr "Configuração de alerta"
#: logdrake:437
#, c-format
msgid "Please enter your email address below "
msgstr "Por favor indique o seu endereço electrónico em baixo "
#: logdrake:438
#, c-format
msgid "and enter the name (or the IP) of the SMTP server you wish to use"
msgstr "e indique o nome (ou o IP) do servidor SMTP que deseja usar"
#: logdrake:445
#, c-format
msgid "\"%s\" neither is a valid email nor is an existing local user!"
msgstr ""
"\"%s\" não é um endereço electrónico válido nem um utilizador local "
"existente!"
#: logdrake:450
#, c-format
msgid ""
"\"%s\" is a local user, but you did not select a local smtp, so you must use "
"a complete email address!"
msgstr ""
"\"%s\" é um utilizador local, mas não seleccionou um smtp local, então deve "
"usar um endereço electrónico completo!"
#: logdrake:457
#, c-format
msgid "The wizard successfully configured the mail alert."
msgstr "O assistente configurou com sucesso o alerta de correio."
#: logdrake:463
#, c-format
msgid "The wizard successfully disabled the mail alert."
msgstr "O assistente desactivou com sucesso o alerta de correio."
#: logdrake:522
#, c-format
msgid "Save as.."
msgstr "Gravar como..."
#: notify-x11-free-driver-switch:20
#, c-format
msgid ""
"The proprietary driver for your graphic card can not be found, the system is "
"now using the free software driver (%s)."
msgstr ""
"Não é possível encontrar o controlador proprietário para a sua placa "
"gráfica, o sistema está agora a suar o controlador livre (%s)."
#: notify-x11-free-driver-switch:21
#, c-format
msgid "Reason: %s."
msgstr "Razão: %s."
#: scannerdrake:51
#, c-format
msgid ""
"SANE packages need to be installed to use scanners.\n"
"\n"
"Do you want to install the SANE packages?"
msgstr ""
"Os pacotes SANE precisam ser instalados para usar digitalizadores.\n"
"\n"
"Deseja instalar os pacotes SANE?"
#: scannerdrake:55
#, c-format
msgid "Aborting Scannerdrake."
msgstr "A abortar o Scannerdrake."
#: scannerdrake:60
#, c-format
msgid ""
"Could not install the packages needed to set up a scanner with Scannerdrake."
msgstr ""
"Não foi possível instalar os pacotes necessários para configurar um "
"digitalizador com o Scannerdrake."
#: scannerdrake:61
#, c-format
msgid "Scannerdrake will not be started now."
msgstr "O scannerdrake não irá ser iniciado agora."
#: scannerdrake:67 scannerdrake:505
#, c-format
msgid "Searching for configured scanners..."
msgstr "A procurar digitalizadores configurados..."
#: scannerdrake:71 scannerdrake:509
#, c-format
msgid "Searching for new scanners..."
msgstr "A procurar novos digitalizadores..."
#: scannerdrake:79 scannerdrake:531
#, c-format
msgid "Re-generating list of configured scanners..."
msgstr "A regenerar a lista de digitalizadores configurados..."
#: scannerdrake:101
#, c-format
msgid "The %s is not supported by this version of %s."
msgstr "O %s não é suportado por esta versão do %s."
#: scannerdrake:104 scannerdrake:115
#, c-format
msgid "Confirmation"
msgstr "Confirmação"
#: scannerdrake:104
#, c-format
msgid "%s found on %s, configure it automatically?"
msgstr "%s encontrado em %s, configurar automaticamente?"
#: scannerdrake:116
#, c-format
msgid "%s is not in the scanner database, configure it manually?"
msgstr "%s não está na base de dados do digitalizador, configurar manualmente?"
#: scannerdrake:130
#, c-format
msgid "Scanner configuration"
msgstr "Configuração do digitalizador"
#: scannerdrake:131
#, c-format
msgid "Select a scanner model (Detected model: %s, Port: %s)"
msgstr "Seleccione um modelo de digitalizador (Modelo detectado %s, Porto: %s)"
#: scannerdrake:133
#, c-format
msgid "Select a scanner model (Detected model: %s)"
msgstr "Seleccione um modelo de digitalizador (Modelo detectado %s)"
#: scannerdrake:134
#, c-format
msgid "Select a scanner model (Port: %s)"
msgstr "Seleccione um modelo de digitalizador (Porto: %s)"
#: scannerdrake:136 scannerdrake:139
#, c-format
msgid " (UNSUPPORTED)"
msgstr " (NÃO SUPORTADO)"
#: scannerdrake:142
#, c-format
msgid "The %s is not supported under Linux."
msgstr "O %s não é suportado em Linux."
#: scannerdrake:169 scannerdrake:183
#, c-format
msgid "Do not install firmware file"
msgstr "Não instalar ficheiro 'firmware'"
#: scannerdrake:172 scannerdrake:222
#, c-format
msgid "Scanner Firmware"
msgstr "'Firmware' do Digitalizador"
#: scannerdrake:173 scannerdrake:225
#, c-format
msgid ""
"It is possible that your %s needs its firmware to be uploaded everytime when "
"it is turned on."
msgstr ""
"É possível que o seu %s precise que o 'firmware' seja carregado sempre que é "
"ligado."
#: scannerdrake:174 scannerdrake:226
#, c-format
msgid "If this is the case, you can make this be done automatically."
msgstr "Se este é o caso, pode fazer com que isto seja feito automáticamente."
#: scannerdrake:175 scannerdrake:229
#, c-format
msgid ""
"To do so, you need to supply the firmware file for your scanner so that it "
"can be installed."
msgstr ""
"Para tal, precisa fornecer o ficheiro 'firmware' do seu digitalizador para "
"que possa ser instalado."
#: scannerdrake:176 scannerdrake:230
#, c-format
msgid ""
"You find the file on the CD or floppy coming with the scanner, on the "
"manufacturer's home page, or on your Windows partition."
msgstr ""
"Encontra o ficheiro no CD ou disquete que vem com o digitalizador, no sítio "
"do fabricante, ou na sua partição Windows."
#: scannerdrake:178 scannerdrake:237
#, c-format
msgid "Install firmware file from"
msgstr "Instalar ficheiro 'firmware' a partir de"
#: scannerdrake:180 scannerdrake:188 scannerdrake:239 scannerdrake:246
#, c-format
msgid "CD-ROM"
msgstr "CD-ROM"
#: scannerdrake:181 scannerdrake:190 scannerdrake:240 scannerdrake:248
#, c-format
msgid "Floppy Disk"
msgstr "Disquete"
#: scannerdrake:182 scannerdrake:192 scannerdrake:241 scannerdrake:250
#, c-format
msgid "Other place"
msgstr "Outro local"
#: scannerdrake:198
#, c-format
msgid "Select firmware file"
msgstr "Seleccionar ficheiro 'firmware'"
#: scannerdrake:201 scannerdrake:260
#, c-format
msgid "The firmware file %s does not exist or is unreadable!"
msgstr "O ficheiro 'firmware' %s não existe ou está ilegível!"
#: scannerdrake:224
#, c-format
msgid ""
"It is possible that your scanners need their firmware to be uploaded "
"everytime when they are turned on."
msgstr ""
"É possível que os seus digitalizadores precisem que o 'firmware' seja "
"carregado sempre que sejam ligados."
#: scannerdrake:228
#, c-format
msgid ""
"To do so, you need to supply the firmware files for your scanners so that it "
"can be installed."
msgstr ""
"Para tal, precisar fornecer os ficheiros 'firmware' para os seus "
"digitalizadores para que possam ser instalados."
#: scannerdrake:231
#, c-format
msgid ""
"If you have already installed your scanner's firmware you can update the "
"firmware here by supplying the new firmware file."
msgstr ""
"Se já instalou o 'firmware' do seu digitalizador pode actualizá-lo aqui ao "
"fornecer o novo ficheiro 'firmware'."
#: scannerdrake:233
#, c-format
msgid "Install firmware for the"
msgstr "Instalar 'firmware' para"
#: scannerdrake:256
#, c-format
msgid "Select firmware file for the %s"
msgstr "Seleccionar ficheiro 'firmware' para %s"
#: scannerdrake:274
#, c-format
msgid "Could not install the firmware file for the %s!"
msgstr "Não foi possível instalar o ficheiro 'firmware' para %s!"
#: scannerdrake:287
#, c-format
msgid "The firmware file for your %s was successfully installed."
msgstr "O ficheiro 'firmware' para o seu %s foi instalado com sucesso."
#: scannerdrake:297
#, c-format
msgid "The %s is unsupported"
msgstr "O %s não é suportado"
#: scannerdrake:302
#, c-format
msgid ""
"The %s must be configured by system-config-printer.\n"
"You can launch system-config-printer from the %s Control Center in Hardware "
"section."
msgstr ""
"%s deve ser configurado pelo system-config-printer.\n"
"Pode executar o system-config-printer a partir do Centro de Controlo %s na "
"secção Material."
#: scannerdrake:320
#, c-format
msgid "Setting up kernel modules..."
msgstr "A definir módulos kernel..."
#: scannerdrake:330 scannerdrake:337 scannerdrake:367
#, c-format
msgid "Auto-detect available ports"
msgstr "Auto-detectar portos disponíveis"
#: scannerdrake:331 scannerdrake:377
#, c-format
msgid "Device choice"
msgstr "Escolha de dispositivo"
#: scannerdrake:332 scannerdrake:378
#, c-format
msgid "Please select the device where your %s is attached"
msgstr "Por favor escolha o dispositivo onde o seu %s está ligado"
#: scannerdrake:333
#, c-format
msgid "(Note: Parallel ports cannot be auto-detected)"
msgstr "(Nota: os portos paralelos não podem ser auto-detectados)"
#: scannerdrake:335 scannerdrake:380
#, c-format
msgid "choose device"
msgstr "escolher dispositivo"
#: scannerdrake:369
#, c-format
msgid "Searching for scanners..."
msgstr "A procurar digitalizadores..."
#: scannerdrake:405 scannerdrake:412
#, c-format
msgid "Attention!"
msgstr "Atenção!"
#: scannerdrake:406
#, c-format
msgid ""
"Your %s cannot be configured fully automatically.\n"
"\n"
"Manual adjustments are required. Please edit the configuration file /etc/"
"sane.d/%s.conf. "
msgstr ""
"O seu %s não pode ser totalmente configurado automaticamente.\n"
"\n"
"Ajustes manuais são necessários. Por favor edite o ficheiro de configuração /"
"etc/sane.d/%s.conf. "
#: scannerdrake:407 scannerdrake:416
#, c-format
msgid ""
"More info in the driver's manual page. Run the command \"man sane-%s\" to "
"read it."
msgstr ""
"Mais informação na página do manual do controlador. Execute o comando \"man "
"sane-%s\" para o lêr."
#: scannerdrake:409 scannerdrake:418
#, c-format
msgid ""
"After that you may scan documents using \"XSane\" or \"Kooka\" from "
"Multimedia/Graphics in the applications menu."
msgstr ""
"A seguir pode digitalizar documentos usando o \"XSane\" ou o \"Kooka\" a "
"partir do menu de aplicações Multimédia/Gráficos."
#: scannerdrake:413
#, c-format
msgid ""
"Your %s has been configured, but it is possible that additional manual "
"adjustments are needed to get it to work. "
msgstr ""
"O seu %s foi configurado, mas é possível que sejam necessários ajustes "
"manuais para funcionar. "
#: scannerdrake:414
#, c-format
msgid ""
"If it does not appear in the list of configured scanners in the main window "
"of Scannerdrake or if it does not work correctly, "
msgstr ""
"Se não aparecer na lista de digitalizadores configurados da janela principal "
"do Scannerdrake ou se não funcionar correctamente, "
#: scannerdrake:415
#, c-format
msgid "edit the configuration file /etc/sane.d/%s.conf. "
msgstr "edite o ficheiro de configuração /etc/sane.d/%s.conf. "
#: scannerdrake:420
#, c-format
msgid "Congratulations!"
msgstr "Parabéns!"
#: scannerdrake:421
#, c-format
msgid ""
"Your %s has been configured.\n"
"You may now scan documents using \"XSane\" or \"Kooka\" from Multimedia/"
"Graphics in the applications menu."
msgstr ""
"O seu %s foi configurado.\n"
"Pode agora digitalizar documentos usando o \"XSane\" ou o \"Kooka\" a partir "
"do menu de aplicações Multimédia/Gráficos."
#: scannerdrake:446
#, c-format
msgid ""
"The following scanners\n"
"\n"
"%s\n"
"are available on your system.\n"
msgstr ""
"Os seguintes digitalizadores\n"
"\n"
"%s\n"
"estão disponíveis no seu sistema.\n"
#: scannerdrake:447
#, c-format
msgid ""
"The following scanner\n"
"\n"
"%s\n"
"is available on your system.\n"
msgstr ""
"O seguinte digitalizador\n"
"\n"
"%s\n"
"está disponível no seu sistema.\n"
#: scannerdrake:449 scannerdrake:452
#, c-format
msgid "There are no scanners found which are available on your system.\n"
msgstr "Não há digitalizadores disponíveis no seu sistema.\n"
#: scannerdrake:460
#, c-format
msgid "Scanner Management"
msgstr "Gestão de Digitalizadores"
#: scannerdrake:466
#, c-format
msgid "Search for new scanners"
msgstr "Procurar novos digitalizadores"
#: scannerdrake:472
#, c-format
msgid "Add a scanner manually"
msgstr "Adicionar digitalizador manualmente"
#: scannerdrake:479
#, c-format
msgid "Install/Update firmware files"
msgstr "Instalar/Actualizar ficheiros 'firmware'"
#: scannerdrake:485
#, c-format
msgid "Scanner sharing"
msgstr "Partilha do digitalizador"
#: scannerdrake:544 scannerdrake:709
#, c-format
msgid "All remote machines"
msgstr "Todas as máquinas remotas"
#: scannerdrake:556 scannerdrake:859
#, c-format
msgid "This machine"
msgstr "Esta máquina"
#: scannerdrake:595
#, c-format
msgid "Scanner Sharing"
msgstr "Partilha do Digitalizador"
#: scannerdrake:596
#, c-format
msgid ""
"Here you can choose whether the scanners connected to this machine should be "
"accessible by remote machines and by which remote machines."
msgstr ""
"Aqui pode escolher se os digitalizadores ligados a esta máquina devem ser "
"acessíveis a máquinas remotas e quais."
#: scannerdrake:597
#, c-format
msgid ""
"You can also decide here whether scanners on remote machines should be made "
"available on this machine."
msgstr ""
"Também pode decidir aqui se os digitalizadores em máquinas remotas devem ser "
"disponibilizados nesta máquina."
#: scannerdrake:600
#, c-format
msgid "The scanners on this machine are available to other computers"
msgstr ""
"Os digitalizadores nesta máquina estão disponíveis para outros computadores"
#: scannerdrake:602
#, c-format
msgid "Scanner sharing to hosts: "
msgstr "Partilha do digitalizador para endereços: "
#: scannerdrake:607 scannerdrake:624
#, c-format
msgid "No remote machines"
msgstr "Nenhuma máquina remota"
#: scannerdrake:616
#, c-format
msgid "Use scanners on remote computers"
msgstr "Usar digitalizadores em computadores remotos"
#: scannerdrake:619
#, c-format
msgid "Use the scanners on hosts: "
msgstr "Usar os digitalizadores nos endereços: "
#: scannerdrake:646 scannerdrake:718 scannerdrake:868
#, c-format
msgid "Sharing of local scanners"
msgstr "Partilha dos digitalizadores locais"
#: scannerdrake:647
#, c-format
msgid ""
"These are the machines on which the locally connected scanner(s) should be "
"available:"
msgstr ""
"Estas são as máquinas onde o(s) digitalizador(es) ligados localmente devem "
"estar disponiveis:"
#: scannerdrake:658 scannerdrake:808
#, c-format
msgid "Add host"
msgstr "Adicionar endereço"
#: scannerdrake:664 scannerdrake:814
#, c-format
msgid "Edit selected host"
msgstr "Editar endereço seleccionado"
#: scannerdrake:673 scannerdrake:823
#, c-format
msgid "Remove selected host"
msgstr "Remover endereço seleccionado"
#: scannerdrake:682 scannerdrake:832
#, c-format
msgid "Done"
msgstr "Terminado"
#: scannerdrake:697 scannerdrake:705 scannerdrake:710 scannerdrake:756
#: scannerdrake:847 scannerdrake:855 scannerdrake:860 scannerdrake:906
#, c-format
msgid "Name/IP address of host:"
msgstr "Nome/Endereço IP do endereço:"
#: scannerdrake:719 scannerdrake:869
#, c-format
msgid "Choose the host on which the local scanners should be made available:"
msgstr ""
"Escolha o endereço onde os digitalizadores locais devem estar disponíveis:"
#: scannerdrake:730 scannerdrake:880
#, c-format
msgid "You must enter a host name or an IP address.\n"
msgstr "Deve indicar o nome de endereço ou um endereço IP.\n"
#: scannerdrake:741 scannerdrake:891
#, c-format
msgid "This host is already in the list, it cannot be added again.\n"
msgstr "Este endereço já está na lista, não pode ser adicionado novamente.\n"
#: scannerdrake:796
#, c-format
msgid "Usage of remote scanners"
msgstr "Uso de digitalizadores remotos"
#: scannerdrake:797
#, c-format
msgid "These are the machines from which the scanners should be used:"
msgstr "Estas são as máquinas nas quais os digitalizadores devem ser usados:"
#: scannerdrake:954
#, c-format
msgid ""
"saned needs to be installed to share the local scanner(s).\n"
"\n"
"Do you want to install the saned package?"
msgstr ""
"O saned precisa ser instalado para partilhar o(s) digitalizador(es) locai"
"(s).\n"
"\n"
"Deseja instalar o pacote saned?"
#: scannerdrake:958 scannerdrake:962
#, c-format
msgid "Your scanner(s) will not be available on the network."
msgstr ""
"O(s) seu(s) digitalizador(es) não irá(ão) estar disponível(eis) na rede."
#: scannerdrake:961
#, c-format
msgid "Could not install the packages needed to share your scanner(s)."
msgstr ""
"Não foi possível instalar os pacotes precisos para partilhar o seu scanner."
#: service_harddrake:139
#, c-format
msgid "The graphic card '%s' is no more supported by the '%s' driver"
msgstr "A placa gráfica %s já não é suportada pelo controlador '%s'"
#: service_harddrake:181
#, c-format
msgid "The proprietary kernel driver was not found for '%s' X.org driver"
msgstr ""
"O controlador proprietário do kernel não encontrou para o controlador X.org "
"'%s'"
#: service_harddrake:220
#, c-format
msgid "Some devices in the \"%s\" hardware class were removed:\n"
msgstr "Alguns dispositivos na classe de material \"%s\" foram removidos:\n"
#: service_harddrake:221
#, c-format
msgid "- %s was removed\n"
msgstr "- %s foi removido\n"
#: service_harddrake:224
#, c-format
msgid "Some devices were added: %s\n"
msgstr "Foram adicionados alguns dispositivos: %s\n"
#: service_harddrake:225
#, c-format
msgid "- %s was added\n"
msgstr "- %s foi adicionado\n"
#: service_harddrake:344
#, c-format
msgid "Hardware probing in progress"
msgstr "Detecção de material em progresso"
#: service_harddrake_confirm:7
#, c-format
msgid "Hardware changes in \"%s\" class (%s seconds to answer)"
msgstr "Alterações de material na classe \"%s\" (%s segundos para responder)"
#: service_harddrake_confirm:8
#, c-format
msgid "Do you want to run the appropriate config tool?"
msgstr "Deseja executar a ferramenta de configuração adequada?"
#: ../menu/localedrake-system.desktop.in.h:1
msgid "System Regional Settings"
msgstr "Definições Regionais do Sistema"
#: ../menu/localedrake-system.desktop.in.h:2
msgid "System wide language & country configurator"
msgstr "Configuração da língua e país do sistema"
#: ../menu/harddrake.desktop.in.h:1
msgid "HardDrake"
msgstr "HardDrake"
#: ../menu/harddrake.desktop.in.h:2
msgid "Hardware Central Configuration/information tool"
msgstr "Configuração/Informação Central do Material"
#: ../menu/harddrake.desktop.in.h:3
msgid "Hardware Configuration Tool"
msgstr "Ferramenta de Configuração do Material"
#: ../menu/localedrake-user.desktop.in.h:1
msgid "Language & country configuration"
msgstr "Configuração da língua e país"
#: ../menu/localedrake-user.desktop.in.h:2
msgid "Regional Settings"
msgstr "Configurações Regionais"
#~ msgid ""
#~ "Display theme\n"
#~ "under console"
#~ msgstr ""
#~ "Mostrar tema\n"
#~ "na consola"
#~ msgid "Create new theme"
#~ msgstr "Criar novo tema"
#~ msgid "X coordinate of text box"
#~ msgstr "Coordenação x da caixa de texto"
#~ msgid "Y coordinate of text box"
#~ msgstr "Coordenação y da caixa de texto"
#~ msgid "Text box width"
#~ msgstr "Largura da caixa de texto"
#~ msgid "Text box height"
#~ msgstr "Altura da caixa de texto"
#~ msgid ""
#~ "The progress bar X coordinate\n"
#~ "of its upper left corner"
#~ msgstr ""
#~ "A coordenada x da barra de progresso\n"
#~ "do canto superior esquerdo"
#~ msgid ""
#~ "The progress bar Y coordinate\n"
#~ "of its upper left corner"
#~ msgstr ""
#~ "A coordenada y da barra de progresso\n"
#~ "do canto superior esquerdo"
#~ msgid "The width of the progress bar"
#~ msgstr "A largura da barra de progresso"
#~ msgid "The height of the progress bar"
#~ msgstr "A altura da barra de progresso"
#~ msgid "X coordinate of the text"
#~ msgstr "Coordenada x do texto"
#~ msgid "Y coordinate of the text"
#~ msgstr "Coordenada y do texto"
#~ msgid "Text box transparency"
#~ msgstr "Transparência da caixa de texto"
#~ msgid "Progress box transparency"
#~ msgstr "Transparência da caixa de progresso"
#~ msgid "Text size"
#~ msgstr "Tamanho do texto"
#~ msgid "Progress Bar"
#~ msgstr "Barra de Progresso"
#~ msgid "Choose progress bar color 1"
#~ msgstr "Escolher cor 1 da barra de progresso"
#~ msgid "Choose progress bar color 2"
#~ msgstr "Escolher cor 2 da barra de progresso"
#~ msgid "Choose progress bar background"
#~ msgstr "Escolher fundo da barra de progresso"
#~ msgid "Gradient type"
#~ msgstr "Tipo de gradiente"
#~ msgid "Text"
#~ msgstr "Texto"
#~ msgid "Choose text color"
#~ msgstr "Escolher cor do texto"
#~ msgid "Choose picture"
#~ msgstr "Escolher imagem"
#~ msgid "Silent bootsplash"
#~ msgstr "Arranque inicial silencioso"
#~ msgid "Choose text zone color"
#~ msgstr "Escolher cor da zona do texto"
#~ msgid "Text color"
#~ msgstr "Cor do texto"
#~ msgid "Background color"
#~ msgstr "Cor de fundo"
#~ msgid "Verbose bootsplash"
#~ msgstr "Arranque detalhado"
#~ msgid "Theme name"
#~ msgstr "Nome do tema"
#~ msgid "Final resolution"
#~ msgstr "Resolução final"
#~ msgid "Display logo on Console"
#~ msgstr "Mostrar logo na consola"
#~ msgid "Save theme"
#~ msgstr "Gravar tema"
#~ msgid "Please enter a theme name"
#~ msgstr "Por favor indique um nome para o tema"
#~ msgid "Please select a splash image"
#~ msgstr "Por favor escolha uma imagem de arranque"
#~ msgid "saving Bootsplash theme..."
#~ msgstr "a gravar o tema de arranque..."
#~ msgid "Unable to load image file %s"
#~ msgstr "Não é possível carregar a imagem %s"
#~ msgid "choose image"
#~ msgstr "escolher imagem"
#~ msgid "Color selection"
#~ msgstr "Selecção da cor"
#~ msgid "Coma bug"
#~ msgstr "Erro 'coma'"
#~ msgid "whether this cpu has the Cyrix 6x86 Coma bug"
#~ msgstr "se este cpu tem o erro Coma dos Cyrix 6x86"
#~ msgid "Fdiv bug"
#~ msgstr "Erro Fdiv"
#~ msgid ""
#~ "Early Intel Pentium chips manufactured have a bug in their floating point "
#~ "processor which did not achieve the required precision when performing a "
#~ "Floating point DIVision (FDIV)"
#~ msgstr ""
#~ "Os primeiros chips Intel Pentium fabricados têm um erro no seu "
#~ "processador de ponto flutuante que não permite a precisão esperada quando "
#~ "executa uma DIVisão de um ponto Flutuante (FDIV)"
#~ msgid "Is FPU present"
#~ msgstr "Presença FPU"
#~ msgid "yes means the processor has an arithmetic coprocessor"
#~ msgstr "sim significa que o processador tem um co-processador aritmético"
#~ msgid "Whether the FPU has an irq vector"
#~ msgstr "Se o FPU tem um vector irq"
#~ msgid ""
#~ "yes means the arithmetic coprocessor has an exception vector attached"
#~ msgstr ""
#~ "sim significa que o co-processador aritmético tem um vector de excepção "
#~ "anexado"
#~ msgid "F00f bug"
#~ msgstr "Erro F00f"
#~ msgid ""
#~ "early pentiums were buggy and freezed when decoding the F00F bytecode"
#~ msgstr ""
#~ "os primeiros Pentium não eram fiáveis e bloqueavam ao descodificar o "
#~ "código F00F"
#~ msgid "Halt bug"
#~ msgstr "Erro 'halt'"
#~ msgid ""
#~ "Some of the early i486DX-100 chips cannot reliably return to operating "
#~ "mode after the \"halt\" instruction is used"
#~ msgstr ""
#~ "Alguns dos primeiros chips i486DX-100 não podem voltar ao modo "
#~ "operacional de maneira segura depois de ter usado a instrução \"halt\"."
#~ msgid "Bugs"
#~ msgstr "Erros"
#~ msgid "FPU"
#~ msgstr "FPU"
#~ msgid "Unknown/Others"
#~ msgstr "Desconhecido/Outros"
#~ msgid ""
#~ "Here, you can setup the security level and administrator of your "
#~ "machine.\n"
#~ "\n"
#~ "\n"
#~ "The '<span weight=\"bold\">Security Administrator</span>' is the one who "
#~ "will receive security alerts if the\n"
#~ "'<span weight=\"bold\">Security Alerts</span>' option is set. It can be a "
#~ "username or an email.\n"
#~ "\n"
#~ "\n"
#~ "The '<span weight=\"bold\">Security Level</span>' menu allows you to "
#~ "select one of the six preconfigured security levels\n"
#~ "provided with msec. These levels range from '<span weight=\"bold\">poor</"
#~ "span>' security and ease of use, to\n"
#~ "'<span weight=\"bold\">paranoid</span>' config, suitable for very "
#~ "sensitive server applications:\n"
#~ "\n"
#~ "\n"
#~ "<span foreground=\"royalblue3\">Poor</span>: This is a totally unsafe but "
#~ "very\n"
#~ "easy to use security level. It should only be used for machines not "
#~ "connected to\n"
#~ "any network and that are not accessible to everybody.\n"
#~ "\n"
#~ "\n"
#~ "<span foreground=\"royalblue3\">Standard</span>: This is the standard "
#~ "security\n"
#~ "recommended for a computer that will be used to connect to the Internet "
#~ "as a\n"
#~ "client.\n"
#~ "\n"
#~ "\n"
#~ "<span foreground=\"royalblue3\">High</span>: There are already some\n"
#~ "restrictions, and more automatic checks are run every night.\n"
#~ "\n"
#~ "\n"
#~ "<span foreground=\"royalblue3\">Higher</span>: The security is now high "
#~ "enough\n"
#~ "to use the system as a server which can accept connections from many "
#~ "clients. If\n"
#~ "your machine is only a client on the Internet, you should choose a lower "
#~ "level.\n"
#~ "\n"
#~ "\n"
#~ "<span foreground=\"royalblue3\">Paranoid</span>: This is similar to the "
#~ "previous\n"
#~ "level, but the system is entirely closed and security features are at "
#~ "their\n"
#~ "maximum"
#~ msgstr ""
#~ "Aqui pode configurar o nível de segurança e o administrador da sua "
#~ "máquina.\n"
#~ "\n"
#~ "\n"
#~ "O <span weight=\"bold\">Administrador de Segurança </span> é aquele que "
#~ "irá receber os alertas de segurança\n"
#~ "se a opção '<span weight=\"bold\">Alerta de Segurança</span>' é definida. "
#~ "Pode ser um nome\n"
#~ "de utilizador ou um endereço de correio electrónico.\n"
#~ "\n"
#~ "\n"
#~ "O menu '<span weight=\"bold\">Nível de Segurança</span>' permite-lhe "
#~ "escolher um dos seis níveis de segurança\n"
#~ "pré-configurados fornecidos com o msec. Esta extensão de níveis vão "
#~ "desde\n"
#~ "segurança '<span weight=\"bold\">baixo</span>' e de fácil uso, até à "
#~ "configuração '<span weight=\"bold\">paranoica</span>'\n"
#~ "apropriada a aplicações de servidor muito sensíveis:\n"
#~ "\n"
#~ "\n"
#~ "<span foreground=\"royalblue3\">Baixo</span>: Este é um nível de "
#~ "segurança completamente inseguro\n"
#~ "mas de fácil uso. Deve ser apenas usado por máquinas não conectadas a\n"
#~ "qualquer rede e que não estejam acessíveis a toda a gente.\n"
#~ "\n"
#~ "\n"
#~ "<span foreground=\"royalblue3\">Padrão</span>: Este é o nível de "
#~ "segurança padrão recomendado\n"
#~ "para um computador que seja usado para conectar à internet como cliente\n"
#~ "\n"
#~ "\n"
#~ "<span foreground=\"royalblue3\">Elevado</span>: Existem já algumas "
#~ "restrições,\n"
#~ "e mais verificações automáticas são executadas todas as noites.\n"
#~ "\n"
#~ "\n"
#~ "<span foreground=\"royalblue3\">Superior</span>: A segurança é agora\n"
#~ "suficiente para o uso\n"
#~ "do sistema como um servidor que pode aceitar conexões de vários "
#~ "clientes.\n"
#~ "Se a sua máquina é apenas um cliente na Internet, deve escolher um nível\n"
#~ "mais baixo.\n"
#~ "\n"
#~ "\n"
#~ "<span foreground=\"royalblue3\">Paranoica</span>: Este é similar ao nível "
#~ "anterior, mas o sistema\n"
#~ "é inteiramente fechado e as opções de segurança estão ao seu máximo."
#~ msgid "(default value: %s)"
#~ msgstr "(valor predefinido: %s)"
#~ msgid "Security Level:"
#~ msgstr "Nível de Segurança:"
#~ msgid "Security Alerts:"
#~ msgstr "Alertas de Segurança:"
#~ msgid "Security Administrator:"
#~ msgstr "Administrador de Segurança:"
#~ msgid "Basic options"
#~ msgstr "Opções básicas"
#~ msgid "Network Options"
#~ msgstr "Opções de Rede"
#~ msgid "System Options"
#~ msgstr "Opções do Sistema"
#~ msgid "Periodic Checks"
#~ msgstr "Verificações Periódicas"
#~ msgid "Please wait, setting security level..."
#~ msgstr "Por favor aguarde, a definir o nível de segurança..."
#~ msgid "Please wait, setting security options..."
#~ msgstr "Por favor aguarde, a definir as opções de segurança..."
|