summaryrefslogtreecommitdiffstats
path: root/perl-install/install_any.pm
blob: c6a17b7ebccbf3fff2830c3b8221633f6bc83db5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
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
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
package install_any; # $Id$

use strict;

use vars qw(@ISA %EXPORT_TAGS @EXPORT_OK $boot_medium $current_medium $asked_medium @advertising_images);

@ISA = qw(Exporter);
%EXPORT_TAGS = (
    all => [ qw(getNextStep spawnShell addToBeDone) ],
);
@EXPORT_OK = map { @$_ } values %EXPORT_TAGS;

#-######################################################################################
#- misc imports
#-######################################################################################
use MDK::Common::System;
use common;
use run_program;
use fs::type;
use fs::format;
use partition_table;
use devices;
use fsedit;
use modules;
use detect_devices;
use lang;
use any;
use log;

#- boot medium (the first medium to take into account).
$boot_medium = 1;
$current_medium = $boot_medium;
$asked_medium = $boot_medium;

our $global_ftp_prefix;

sub drakx_version() { 
    $::move ? sprintf "DrakX-move v%s", cat_('/usr/bin/stage2/move.pm') =~ /move\.pm,v (\S+ \S+ \S+)/
	    : sprintf "DrakX v%s built %s", $::testing ? ('TEST', scalar gmtime()) : (split('/', cat__(getFile("install/stage2/VERSION"))))[2,3];
}

#-######################################################################################
#- Media change variables&functions
#-######################################################################################
my $postinstall_rpms = '';
my $cdrom;
my %iso_images;

sub mountCdrom {
    my ($mountpoint, $o_cdrom) = @_;
    $o_cdrom = $cdrom if !defined $o_cdrom;
    eval { fs::mount($o_cdrom, $mountpoint, "iso9660", 'readonly') };
}

sub useMedium($) {
    #- before ejecting the first CD, there are some files to copy!
    #- does nothing if the function has already been called.
    $_[0] > 1 and method_allows_medium_change($::o->{method}) and setup_postinstall_rpms($::prefix, $::o->{packages});

    $asked_medium eq $_[0] or log::l("selecting new medium '$_[0]'");
    $asked_medium = $_[0];
}
sub changeMedium($$) {
    my ($method, $medium_name) = @_;
    log::l("change to medium $medium_name for method $method (refused by default)");
    0;
}
sub relGetFile($) {
    local $_ = $_[0];
    if (my ($arch) = m|\.([^\.]*)\.rpm$|) {
	$_ = "$::o->{packages}{mediums}{$asked_medium}{rpmsdir}/$_";
	s/%{ARCH}/$arch/g;
	s,^/+,,g;
    }
    $_;
}
sub askChangeMedium($$) {
    my ($method, $medium_name) = @_;
    my $allow;
    do {
	local $::o->{method} = $method = 'cdrom' if $medium_name =~ /^\d+s$/; #- Suppl CD
	eval { $allow = changeMedium($method, $medium_name) };
    } while $@; #- really it is not allowed to die in changeMedium!!! or install will core with rpmlib!!!
    log::l($allow ? "accepting medium $medium_name" : "refusing medium $medium_name");
    $allow;
}

sub method_is_from_ISO_images($) {
    my ($method) = @_;
    $method eq "disk-iso" || $method eq "nfs-iso";
}
sub method_allows_medium_change($) {
    my ($method) = @_;
    $method eq "cdrom" || method_is_from_ISO_images($method);
}

sub look_for_ISO_images() {
    $iso_images{media} = [];

    ($iso_images{loopdev}, $iso_images{mountpoint}) = cat_("/proc/mounts") =~ m|(/dev/loop\d+)\s+(/tmp/image) iso9660| or return;

    my $get_iso_ids = sub {
	my ($F) = @_;
	my ($vol_id, $app_id) = c::get_iso_volume_ids(fileno $F);
	#- the ISO volume names must end in -Disc\d+
	my ($cd_set) = $vol_id =~ /^(.*)-Disc\d+$/;
	$cd_set && { cd_set => $cd_set, app_id => $app_id };
    };

    sysopen(my $F, $iso_images{loopdev}, 0) or return;
    put_in_hash(\%iso_images, $get_iso_ids->($F));

    my $iso_dir = $ENV{ISOPATH};
    #- strip old root and remove iso file from path if present
    $iso_dir =~ s!^/sysroot!!; $iso_dir =~ s![^/]*\.iso$!!;

    foreach my $iso_file (glob("$iso_dir/*.iso")) {
	my $iso_dev = devices::set_loop($iso_file) or return;
	if (sysopen($F, $iso_dev, 0)) {
	    my $iso_ids = $get_iso_ids->($F);
	    push @{$iso_images{media}}, { file => $iso_file, %$iso_ids } if $iso_ids;
	    close($F); #- needed to delete loop device
	}
	devices::del_loop($iso_dev);
    }
    1;
}

sub find_ISO_image_labelled($) {
    %iso_images or look_for_ISO_images() or return;
    my ($iso_label) = @_;
    find { $_->{app_id} eq $iso_label && $_->{cd_set} eq $iso_images{cd_set} } @{$iso_images{media}};
}

sub changeIso($) {
    my ($iso_label) = @_;
    my $iso_info = find_ISO_image_labelled($iso_label) or return;

    eval { fs::umount($iso_images{mountpoint}) };
    $@ and warnAboutFilesStillOpen();
    devices::del_loop($iso_images{loopdev});

    $iso_images{loopdev} = devices::set_loop($iso_info->{file});
    eval { 
	fs::mount($iso_images{loopdev}, $iso_images{mountpoint}, "iso9660", 'readonly');
	log::l("using ISO image '$iso_label'");
	1;
    };
}

sub errorOpeningFile($) {
    my ($file) = @_;
    $file eq 'XXX' and return; #- special case to force closing file after rpmlib transaction.
    $current_medium eq $asked_medium and log::l("errorOpeningFile $file"), return; #- nothing to do in such case.
    $::o->{packages}{mediums}{$asked_medium}{selected} or return; #- not selected means no need to worry about.
    my $current_method = $::o->{packages}{mediums}{$asked_medium}{method} || $::o->{method};

    my $max = 32; #- always refuse after $max tries.
    if ($current_method eq "cdrom") {
	cat_("/proc/mounts") =~ m,(/dev/\S+)\s+(/mnt/cdrom|/tmp/image),
	    and ($cdrom, my $mountpoint) = ($1, $2);
	return unless $cdrom;
	ejectCdrom($cdrom, $mountpoint);
	while ($max > 0 && askChangeMedium($current_method, $asked_medium)) {
	    $current_medium = $asked_medium;
	    mountCdrom("/tmp/image");
	    my $getFile = getFile($file); 
	    $getFile && @advertising_images and copy_advertising($::o);
	    $getFile and return $getFile;
	    $current_medium = 'unknown'; #- do not know what CD is inserted now.
	    ejectCdrom($cdrom, $mountpoint);
	    --$max;
	}
    } else {
	while ($max > 0 && askChangeMedium($current_method, $asked_medium)) {
	    $current_medium = $asked_medium;
	    my $getFile = getFile($file); $getFile and return $getFile;
	    $current_medium = 'unknown'; #- do not know what CD image has been copied.
	    --$max;
	}
    }

    #- Do not unselect supplementary CDs.
    return if $asked_medium =~ /^\d+s$/;

    #- keep in mind the asked medium has been refused on this way.
    #- this means it is no more selected.
    $::o->{packages}{mediums}{$asked_medium}{selected} = undef;

    #- on cancel, we can expect the current medium to be undefined too,
    #- this enables remounting if selecting a package back.
    $current_medium = 'unknown';

    return;
}
sub getFile {
    my ($f, $o_method, $o_altroot) = @_;
    my $current_method = ($asked_medium ? $::o->{packages}{mediums}{$asked_medium}{method} : '') || $::o->{method};
    log::l("getFile $f:$o_method ($asked_medium:$current_method)");
    my $rel = relGetFile($f);
    do {
	if ($f =~ m|^http://|) {
	    require http;
	    http::getFile($f);
	} elsif ($o_method =~ /crypto|update/i) {
	    require crypto;
	    crypto::getFile($f);
	} elsif ($current_method eq "ftp") {
	    require ftp;
	    ftp::getFile($rel, @{ $::o->{packages}{mediums}{$asked_medium}{ftp_prefix} || $global_ftp_prefix || [] });
	} elsif ($current_method eq "http") {
	    require http;
	    http::getFile(($ENV{URLPREFIX} || $o_altroot) . "/$rel");
	} else {
	    #- try to open the file, but examine if it is present in the repository,
	    #- this allows handling changing a media when some of the files on the
	    #- first CD have been copied to other to avoid media change...
	    my $f2 = "$postinstall_rpms/$f";
	    $o_altroot ||= '/tmp/image';
	    $f2 = "$o_altroot/$rel" if $rel !~ m,^/, && (!$postinstall_rpms || !-e $f2);
	    #- $f2 = "/$rel" if !$::o->{packages}{mediums}{$asked_medium}{rpmsdir} && !-e $f2; #- not a relative path, should not be necessary with new media layout
	    my $F; open($F, $f2) ? $F : do { $f2 !~ /XXX/ and log::l("Can not open $f2: $!"); undef };
	}
    } || errorOpeningFile($f);
}
sub getAndSaveFile {
    my ($file, $local) = @_ == 1 ? ("install/stage2/live$_[0]", $_[0]) : @_;
    local $/ = \ (16 * 1024);
    my $f = ref($file) ? $file : getFile($file) or return;
    open(my $F, ">$local") or log::l("getAndSaveFile(opening $local): $!"), return;
    local $_;
    while (<$f>) { syswrite($F, $_) or die("getAndSaveFile($local): $!") }
    1;
}


#-######################################################################################
#- Post installation RPMS from cdrom only, functions
#-######################################################################################
sub setup_postinstall_rpms($$) {
    my ($prefix, $packages) = @_;

    $postinstall_rpms and return;
    $postinstall_rpms = "$prefix/usr/postinstall-rpm";

    require pkgs;

    log::l("postinstall rpms directory set to $postinstall_rpms");
    clean_postinstall_rpms(); #- make sure in case of previous upgrade problem.
    mkdir_p($postinstall_rpms);

    my %toCopy;
    #- compute closure of package that may be copied, use INSTALL category
    #- in rpmsrate.
    $packages->{rpmdb} ||= pkgs::rpmDbOpen();
    foreach (@{$packages->{needToCopy} || []}) {
	my $p = pkgs::packageByName($packages, $_) or next;
	pkgs::selectPackage($packages, $p, 0, \%toCopy);
    }
    delete $packages->{rpmdb};

    my @toCopy = grep { $_ && !$_->flag_selected } map { $packages->{depslist}[$_] } keys %toCopy;

    #- extract headers of package, this is necessary for getting
    #- the complete filename of each package.
    #- copy the package files in the postinstall RPMS directory.
    #- last arg is default medium '' known as the CD#1.
    #- cp_af does not handle correctly a missing file.
    eval { cp_af((grep { -r $_ } map { "/tmp/image/" . relGetFile($_->filename) } @toCopy), $postinstall_rpms) };

    log::l("copying Auto Install Floppy");
    getAndSaveInstallFloppies($::o, $postinstall_rpms, 'auto_install');
}

sub clean_postinstall_rpms() {
    $postinstall_rpms and -d $postinstall_rpms and rm_rf($postinstall_rpms);
}


#-######################################################################################
#- Functions
#-######################################################################################
sub getNextStep {
    my ($o) = @_;
    find { !$o->{steps}{$_}{done} && $o->{steps}{$_}{reachable} } @{$o->{orderedSteps}};
}

sub spawnShell() {
    return if $::o->{localInstall} || $::testing;

    if (my $shellpid = fork()) {
        output('/var/run/drakx_shell.pid', $shellpid);
        return;
    }

    $ENV{DISPLAY} ||= ":0"; #- why not :pp

    local *F;
    sysopen F, "/dev/tty2", 2 or log::l("cannot open /dev/tty2 -- no shell will be provided: $!"), goto cant_spawn;

    open STDIN, "<&F" or goto cant_spawn;
    open STDOUT, ">&F" or goto cant_spawn;
    open STDERR, ">&F" or goto cant_spawn;
    close F;

    print drakx_version(), "\n";

    c::setsid();

    ioctl(STDIN, c::TIOCSCTTY(), 0) or warn "could not set new controlling tty: $!";

    my @args; -e '/etc/bashrc' and @args = qw(--rcfile /etc/bashrc);
    foreach (qw(/bin/bash /usr/bin/busybox /bin/sh)) {
        -x $_ or next;
        my $program_name = /busybox/ ? "/bin/sh" : $_;  #- since perl_checker is too dumb
        exec { $_ } $program_name, @args or log::l("exec of $_ failed: $!");
    }

    log::l("cannot open any shell");
cant_spawn:
    c::_exit(1);
}

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

    #- make sure of this place to be available for installation, this could help a lot.
    #- currently doing a very small install use 36Mb of postinstall-rpm, but installing
    #- these packages may eat up to 90Mb (of course not all the server may be installed!).
    #- 65mb may be a good choice to avoid almost all problem of insuficient space left...
    my $minAvailableSize = 65 * sqr(1024);

    my $n = !$::testing && getAvailableSpace_mounted($o->{prefix}) || 
            getAvailableSpace_raw($o->{fstab}) * 512 / 1.07;
    $n - max(0.1 * $n, $minAvailableSize);
}

sub getAvailableSpace_mounted {
    my ($prefix) = @_;
    my $dir = -d "$prefix/usr" ? "$prefix/usr" : $prefix;
    my (undef, $free) = MDK::Common::System::df($dir) or return;
    log::l("getAvailableSpace_mounted $free KB");
    $free * 1024 || 1;
}
sub getAvailableSpace_raw {
    my ($fstab) = @_;

    do { $_->{mntpoint} eq '/usr' and return $_->{size} } foreach @$fstab;
    do { $_->{mntpoint} eq '/'    and return $_->{size} } foreach @$fstab;

    if ($::testing) {
	my $nb = 450;
	log::l("taking ${nb}MB for testing");
	return $nb << 11;
    }
    die "missing root partition";
}

sub preConfigureTimezone {
    my ($o) = @_;
    require timezone;
   
    #- can not be done in install cuz' timeconfig %post creates funny things
    add2hash($o->{timezone}, timezone::read()) if $o->{isUpgrade};

    $o->{timezone}{timezone} ||= timezone::bestTimezone($o->{locale}{country});

    my $utc = every { !isFat_or_NTFS($_) } @{$o->{fstab}};
    my $ntp = timezone::ntp_server();
    add2hash_($o->{timezone}, { UTC => $utc, ntp => $ntp });
}

sub ask_if_suppl_media {
    my ($o) = @_;
    our $suppl_already_asked;
    my $msg = $suppl_already_asked
      ? N("Do you have further supplementary media?")
      : formatAlaTeX(
#-PO: keep the double empty lines between sections, this is formatted a la LaTeX
	    N("The following media have been found and will be used during install: %s.


Do you have a supplementary installation media to configure?",
	    join ", ", sort uniq(map { $_->{descr} } values %{$o->{packages}{mediums}})));
    $o->ask_from(
	'', $msg,
	[ {
	    val => \my $suppl,
	    list => [ N_("None"), N_("CD-ROM"), N_("Network (http)"), N_("Network (ftp)") ],
	    type => 'list',
	    format => \&translate,
	} ],
    );
    $suppl_already_asked = 1;
    return $suppl;
}

#- if the supplementary media is networked, but not the main one, network
#- support must be installed and network started.
sub prep_net_suppl_media {
    return if our $net_suppl_media_configured;
    $net_suppl_media_configured = 1;
    my ($o) = @_;
    #- install basesystem now
    $::o->do_pkgs->ensure_is_installed('basesystem', undef, 1);
    #- from install_steps_interactive:
    local $::expert = $::expert;
    require network::netconnect;
    network::netconnect::main($o->{netcnx} ||= {}, $o, $o->{modules_conf}, $o->{netc}, $o->{mouse}, $o->{intf}, 0, 1);
    require install_interactive;
    install_interactive::upNetwork($o);
    sleep(3);
}

sub selectSupplMedia {
    my ($o, $suppl_method) = @_;
    #- ask whether there are supplementary media
    my $prev_asked_medium = $asked_medium;
    if ($suppl_method && (my $suppl = ask_if_suppl_media($o)) ne 'None') {
	#- translate to method name
	$suppl_method = {
	    'CD-ROM' => 'cdrom',
	    'Network (http)' => 'http',
	    'Network (ftp)' => 'ftp',
	}->{$suppl};
	#- by convention, the media names for suppl. CDs match /^\d+s$/
	my $medium_name = $suppl_method eq 'cdrom'
	    ? (max(map { $_->{medium} =~ /^(\d+)s$/ ? $1 : 0 } values %{$o->{packages}{mediums}}) + 1) . "s"
	    : int(keys %{$o->{packages}{mediums}}) + 1;
	#- configure network if needed
	prep_net_suppl_media($o) if !scalar keys %{$o->{intf}} && $suppl_method !~ /^(?:cdrom|disk)/;
	local $::isWizard = 0;
	my $main_method = $o->{method};
	local $o->{method} = $suppl_method;
	if ($suppl_method eq 'cdrom') {
	    (my $cdromdev) = detect_devices::cdroms();
	    $o->ask_warn('', N("No device found")), return 'error' if !$cdromdev;
	    $cdrom = $cdromdev->{device};
	    devices::make($cdrom);
	    ejectCdrom($cdrom);
	    if ($o->ask_okcancel('', N("Insert the CD"), 1)) {
		#- mount suppl CD in /mnt/cdrom to avoid umounting /tmp/image
		mountCdrom("/mnt/cdrom", $cdrom);
		if ($@) {
		    log::l($@);
		    $o->ask_warn('', N("Unable to mount CD-ROM"));
		    return 'error';
		}
		useMedium($medium_name);

		#- probe for an hdlists file and then look for all hdlists listed herein
		eval { pkgs::psUsingHdlists($o, $suppl_method, "/mnt/cdrom", $o->{packages}, $medium_name) };
		log::l("psUsingHdlists failed: $@") if $@;

		#- copy latest compssUsers.pl and rpmsrate somewhere locally
		getAndSaveFile("/mnt/cdrom/media/media_info/compssUsers.pl", "/tmp/compssUsers.pl");
		getAndSaveFile("/mnt/cdrom/media/media_info/rpmsrate", "/tmp/rpmsrate");

		#- umount supplementary CD. Will re-ask for it later
		getFile("XXX"); #- close still opened filehandles
		log::l("Umounting suppl. CD, back to medium 1");
		eval { fs::umount("/mnt/cdrom") };
		#- re-mount CD 1 if this was a cdrom install
		if ($main_method eq 'cdrom') {
		    eval { 
			my $dev = detect_devices::tryOpen($cdrom);	    
			ioctl($dev, c::CDROMEJECT(), 1);
		    };
		    $o->ask_warn('', N("Insert the CD 1 again"));
		    mountCdrom("/tmp/image", $cdrom);
		    log::l($@) if $@;
		    $asked_medium = 1;
		}
	    }
	} else {
	    my $url;
	    local $global_ftp_prefix;
	    if ($suppl_method eq 'ftp') { #- mirrors are ftp only (currently)
		$url = $o->askSupplMirror(N("URL of the mirror?")) or return 'error';
		$url =~ m!^ftp://(?:(.*?)(?::(.*?))?\@)?([^/]+)/(.*)!
		    and $global_ftp_prefix = [ $3, $4, $1, $2 ]; #- for getFile
	    } else {
		$url = $o->ask_from_entry('', N("URL of the mirror?")) or return 'error';
		$url =~ s!/+\z!!;
	    }
	    useMedium($medium_name);
	    require http if $suppl_method eq 'http';
	    require ftp if $suppl_method eq 'ftp';
	    #- first, try to find an hdlists file
	    eval { pkgs::psUsingHdlists($o, $suppl_method, $url, $o->{packages}, $medium_name, \&setup_suppl_medium) };
	    if ($@) {
		log::l("psUsingHdlists failed: $@");
	    } else {
		#- copy latest compssUsers.pl and rpmsrate somewhere locally
		if ($suppl_method eq 'ftp') {
		    getAndSaveFile("media/media_info/compssUsers.pl", "/tmp/compssUsers.pl");
		    getAndSaveFile("media/media_info/rpmsrate", "/tmp/rpmsrate");
		} else {
		    getAndSaveFile("$url/media/media_info/compssUsers.pl", "/tmp/compssUsers.pl");
		    getAndSaveFile("$url/media/media_info/rpmsrate", "/tmp/rpmsrate");
		}
		useMedium($prev_asked_medium); #- back to main medium
		return $suppl_method;
	    }
	    #- then probe for an hdlist.cz
	    my $f = eval {
		if ($suppl_method eq 'http') {
		    http::getFile("$url/media_info/hdlist.cz");
		} elsif ($suppl_method eq 'ftp') {
		    getFile("media_info/hdlist.cz");
		} else { undef }
	    };
	    if (!defined $f) {
		log::l($@) if $@;
		#- no hdlist found
		$o->ask_warn('', N("Can't find a package list file on this mirror. Make sure the location is correct."));
		useMedium($prev_asked_medium);
		return 'error';
	    }
	    my $supplmedium = pkgs::psUsingHdlist(
		$suppl_method,
		$o->{packages},
		"hdlist$medium_name.cz", #- hdlist
		$medium_name,
		'', #- rpmsdir
		"Supplementary media $medium_name", #- description
		1, # selected
		$f,
	    );
	    close $f;
	    if ($supplmedium) {
		log::l("read suppl hdlist (via $suppl_method)");
		setup_suppl_medium($supplmedium, $url, $suppl_method);
	    } else {
		log::l("no suppl hdlist");
		$suppl_method = 'error';
	    }
	}
    } else {
	$suppl_method = '';
    }
    useMedium($prev_asked_medium); #- back to main medium
    return $suppl_method;
}

sub setup_suppl_medium {
    my ($supplmedium, $url, $suppl_method) = @_;
    $supplmedium->{prefix} = $url; #- for install_urpmi
    if ($suppl_method eq 'ftp') {
	$url =~ m!^ftp://(?:(.*?)(?::(.*?))?\@)?([^/]+)/(.*)!
	    and $supplmedium->{ftp_prefix} = [ $3, $4, $1, $2 ]; #- for getFile
    }
    $supplmedium->{selected} = 1;
    $supplmedium->{method} = $suppl_method;
    $supplmedium->{with_hdlist} = 'media_info/hdlist.cz'; #- for install_urpmi
}

sub _media_rank {
    my ($x) = @_;
    my ($y, $s) = $x =~ /(\d+)(s?)\)\.cz/;
    $s and $y += 100;
    $y;
}

sub load_rate_files {
    my ($o) = @_;
    #- must be done after getProvides
    #- if there is a supplementary media, the rpmsrate/compssUsers are overridable
    pkgs::read_rpmsrate(
	$o->{packages},
	$o->{rpmsrate_flags_chosen},
	getFile(-e "/tmp/rpmsrate" ? "/tmp/rpmsrate" : "media/media_info/rpmsrate")
    );
    ($o->{compssUsers}, $o->{gtk_display_compssUsers}) = pkgs::readCompssUsers(
	-e '/tmp/compssUsers.pl' ? '/tmp/compssUsers.pl' : 'media/media_info/compssUsers.pl'
    );
    defined $o->{compssUsers} or die "Can't read compssUsers.pl file, aborting installation\n";
}

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

    require pkgs;
    if (!$o->{packages} || is_empty_array_ref($o->{packages}{depslist})) {
	($o->{packages}, my $suppl_method, my $copy_rpms_on_disk) = pkgs::psUsingHdlists($o, $o->{method});

	1 while $suppl_method = $o->selectSupplMedia($suppl_method);

	#- open rpm db according to right mode needed.
	$o->{packages}{rpmdb} ||= pkgs::rpmDbOpen($rebuild_needed);

	#- always try to select basic kernel (else on upgrade, kernel will never be updated provided a kernel is already
	#- installed and provides what is necessary).
	pkgs::selectPackage($o->{packages},
			    pkgs::bestKernelPackage($o->{packages}) || die("missing kernel package"), 1);

	pkgs::selectPackage($o->{packages},
			    pkgs::packageByName($o->{packages}, 'basesystem') || die("missing basesystem package"), 1);

	my $rpmsrate_flags_was_chosen = $o->{rpmsrate_flags_chosen};

	put_in_hash($o->{rpmsrate_flags_chosen} ||= {}, rpmsrate_always_flags($o)); #- must be done before pkgs::read_rpmsrate()
	load_rate_files($o);

	copy_rpms_on_disk($o) if $copy_rpms_on_disk;

	set_rpmsrate_default_category_flags($o, $rpmsrate_flags_was_chosen);

	push @{$o->{default_packages}}, default_packages($o);
	select_default_packages($o);
    } else {
	#- this has to be done to make sure necessary files for urpmi are
	#- present.
	pkgs::psUpdateHdlistsDeps($o->{packages});

	#- open rpm db (always without rebuilding db, it should be false at this point).
	$o->{packages}{rpmdb} ||= pkgs::rpmDbOpen();
    }
}

sub copy_rpms_on_disk {
    my ($o) = @_;
    mkdir "$o->{prefix}/$_", 0755 foreach qw(var var/ftp var/ftp/pub var/ftp/pub/Mandrakelinux var/ftp/pub/Mandrakelinux/media);
    local *changeMedium = sub {
	my ($method, $medium) = @_;
	my $name = pkgs::mediumDescr($o->{packages}, $medium);
	if (method_allows_medium_change($method)) {
	    my $r;
	    if ($method =~ /-iso$/) {
		$r = install_any::changeIso($name);
	    } else {
		cat_("/proc/mounts") =~ m,(/dev/\S+)\s+(/mnt/cdrom|/tmp/image),
		    and ($cdrom, my $mountpoint) = ($1, $2);
		ejectCdrom($cdrom, $mountpoint);
		$r = $o->ask_okcancel('', N("Change your Cd-Rom!
Please insert the Cd-Rom labelled \"%s\" in your drive and press Ok when done.", $name), 1);
	    }
	    return $r;
	} else {
	    return 1;
	}
    };
    my $total = $o->{mediumsize};
    log::l("totalsize=$total");
    my $pid;
    #- will we show a progress bar?
    my $copy_has_progress_bar = !method_allows_medium_change($o->{method}) || $o->{method} =~ /-iso$/;
    if ($copy_has_progress_bar) {
	#- display the progress bar only for non-cdrom installation methods
	$pid = fork();
	if (!$pid && defined $pid) { #- child
	    my ($wait_w, $wait_message) = fs::format::wait_message($o); #- nb, this is only called when interactive
	    $wait_message->(N("Copying in progress"));
	    #- from commands.pm. TODO: factorize, possibly in MDK::Common.
	    my $f; $f = sub {
		my ($e) = @_;
		my $s = (lstat($e))[12];
		$s += sum(map { &$f($_) } glob_("$e/*")) if !-l _ && -d _;
		$s;
	    };
	    while (1) {
		my $s = $f->("$o->{prefix}/var/ftp/pub/Mandrakelinux/media") / 1024;
		$wait_message->('', $s, $total);
		sleep 1;
		last if $s > $total - 100;
	    }
	    undef $wait_w;
	    c::_exit(0);
	}
    }
    foreach my $k (pkgs::allMediums($o->{packages})) {
	my $m = $o->{packages}{mediums}{$k};
	if ($k != $current_medium) {
	    do {
		askChangeMedium($o->{method}, $k)
		    or next;
		mountCdrom("/tmp/image", $cdrom);
	    } while !-d "/tmp/image/$m->{rpmsdir}";
	    $current_medium = $k;
	}
	log::l("copying /tmp/image/$m->{rpmsdir} to $o->{prefix}/var/ftp/pub/Mandrakelinux/media");
	my $wait_w;
	unless ($copy_has_progress_bar) { $wait_w = $o->wait_message(N("Please wait"), N("Copying in progress")) }
	eval {
	    cp_af("/tmp/image/$m->{rpmsdir}", "$o->{prefix}/var/ftp/pub/Mandrakelinux/media");
	};
	undef $wait_w;
	log::l($@) if $@;
	$m->{prefix} = "$o->{prefix}/var/ftp/pub/Mandrakelinux";
	$m->{method} = 'disk';
	$m->{with_hdlist} = 'media_info/hdlist.cz'; #- for install_urpmi
    }
    kill 15, $pid if defined $pid;
    #- now the install will continue as 'disk'
    $o->{method} = 'disk';
    #- shoud be enough to fool errorOpeningFile
    $current_medium = 1;
    our $copied_rpms_on_disk = 1;
}

sub set_rpmsrate_default_category_flags {
    my ($o, $rpmsrate_flags_was_chosen) = @_;

    #- if no cleaning needed, populate by default, clean is used for second or more call to this function.
    if ($::auto_install && ($o->{rpmsrate_flags_chosen} || {})->{CAT_ALL}) {
	$o->{rpmsrate_flags_chosen}{"CAT_$_"} = 1 foreach map { @{$_->{flags}} } @{$o->{compssUsers}};
    }
    if (!$rpmsrate_flags_was_chosen && !$o->{isUpgrade}) {
	#- use default selection seen in compssUsers directly.
	$_->{selected} = $_->{default_selected} foreach @{$o->{compssUsers}};
	set_rpmsrate_category_flags($o, $o->{compssUsers});
    }
}

sub set_rpmsrate_category_flags {
    my ($o, $compssUsers) = @_;

    $o->{rpmsrate_flags_chosen}{$_} = 0 foreach grep { /^CAT_/ } keys %{$o->{rpmsrate_flags_chosen}};
    $o->{rpmsrate_flags_chosen}{"CAT_$_"} = 1 foreach map { @{$_->{flags}} } grep { $_->{selected} } @$compssUsers;
    $o->{rpmsrate_flags_chosen}{CAT_SYSTEM} = 1;
}


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

    my $rpmsrate_flags_chosen = {};
    $rpmsrate_flags_chosen->{uc($_)} = 1 foreach grep { modules::probe_category("multimedia/$_") } modules::sub_categories('multimedia');
    $rpmsrate_flags_chosen->{uc($_)} = 1 foreach map { $_->{driver} =~ /Flag:(.*)/ } detect_devices::probeall();
    $rpmsrate_flags_chosen->{DOCS} = !$o->{excludedocs};
    $rpmsrate_flags_chosen->{UTF8} = $o->{locale}{utf8};
    $rpmsrate_flags_chosen->{BURNER} = 1 if detect_devices::burners();
    $rpmsrate_flags_chosen->{DVD} = 1 if detect_devices::dvdroms();
    $rpmsrate_flags_chosen->{USB} = 1 if $o->{modules_conf}->get_probeall("usb-interface");
    $rpmsrate_flags_chosen->{PCMCIA} = 1 if detect_devices::hasPCMCIA();
    $rpmsrate_flags_chosen->{HIGH_SECURITY} = 1 if $o->{security} > 3;
    $rpmsrate_flags_chosen->{BIGMEM} = 1 if detect_devices::BIGMEM();
    $rpmsrate_flags_chosen->{SMP} = 1 if detect_devices::hasSMP();
    $rpmsrate_flags_chosen->{CDCOM} = 1 if any { $_->{descr} =~ /commercial/i } values %{$o->{packages}{mediums}};
    $rpmsrate_flags_chosen->{TV} = 1 if detect_devices::getTVcards();
    $rpmsrate_flags_chosen->{'3D'} = 1 if 
      detect_devices::matching_desc__regexp('Matrox.* G[245][05]0') ||
      detect_devices::matching_desc__regexp('Rage X[CL]') ||
      detect_devices::matching_desc__regexp('3D Rage (?:LT|Pro)') ||
      detect_devices::matching_desc__regexp('Voodoo [35]') ||
      detect_devices::matching_desc__regexp('Voodoo Banshee') ||
      detect_devices::matching_desc__regexp('8281[05].* CGC') ||
      detect_devices::matching_desc__regexp('Rage 128') ||
      detect_devices::matching_desc__regexp('Radeon ') || #- all Radeon card are now 3D with 4.3.0
      detect_devices::matching_desc__regexp('[nN]Vidia.*T[nN]T2') || #- TNT2 cards
      detect_devices::matching_desc__regexp('[nN][vV]idia.*NV[56]') ||
      detect_devices::matching_desc__regexp('[nN][vV]idia.*Vanta') ||
      detect_devices::matching_desc__regexp('[nN][vV]idia.*[gG]e[fF]orce') || #- GeForce cards
      detect_devices::matching_desc__regexp('[nN][vV]idia.*NV1[15]') ||
      detect_devices::matching_desc__regexp('[nN][vV]idia.*Quadro');

    foreach (lang::langsLANGUAGE($o->{locale}{langs})) {
	$rpmsrate_flags_chosen->{qq(LOCALES"$_")} = 1;
    }
    $rpmsrate_flags_chosen->{'CHARSET"' . lang::l2charset($o->{locale}{lang}) . '"'} = 1;

    $rpmsrate_flags_chosen;
}

sub default_packages {
    my ($o) = @_;
    my @l;

    push @l, "brltty" if cat_("/proc/cmdline") =~ /brltty=/;
    push @l, "nfs-utils-clients" if $o->{method} eq "nfs";
    push @l, "numlock" if $o->{miscellaneous}{numlock};
    push @l, "mdadm" if !is_empty_array_ref($o->{all_hds}{raids});
    push @l, "lvm2" if !is_empty_array_ref($o->{all_hds}{lvms});
    push @l, "alsa", "alsa-utils" if any { $o->{modules_conf}->get_alias("sound-slot-$_") =~ /^snd-/ } 0 .. 4;
    my $dmi_System = detect_devices::dmidecode_category('System');
    my $dmi_BIOS = detect_devices::dmidecode_category('BIOS');
    my $dmi_Base_Board = detect_devices::dmidecode_category('Base Board');
    if ($dmi_System->{Manufacturer} =~ /Dell Computer/ && $dmi_System->{'Product Name'} =~ /Inspiron|Latitude/) {
        modules::append_to_modules_loaded_at_startup_for_all_kernels('i8k');
        push @l, "i8kutils";
    }
    if ($dmi_System->{Manufacturer} =~ /TOSHIBA/ && $dmi_BIOS->{Vendor} =~ /TOSHIBA/) {
        modules::append_to_modules_loaded_at_startup_for_all_kernels('toshiba');
        push @l, "toshutils";
    }
    if ($dmi_BIOS->{Vendor} eq 'COMPAL' && $dmi_BIOS->{Characteristics} =~ /Function key-initiated network boot is supported/
          || $dmi_Base_Board->{Manufacturer} =~ /^ACER/ && $dmi_Base_Board->{'Product Name'} =~ /TravelMate 610/) {
        modules::append_to_modules_loaded_at_startup_for_all_kernels('acerhk');
    }

    push @l, "grub" if isLoopback(fs::get::root($o->{fstab}));
    push @l, uniq(grep { $_ } map { fs::format::package_needed_for_partition_type($_) } @{$o->{fstab}});

    my @locale_pkgs = map { pkgs::packagesProviding($o->{packages}, 'locales-' . $_) } lang::langsLANGUAGE($o->{locale}{langs});
    unshift @l, uniq(map { $_->name } @locale_pkgs);

    @l;
}

sub select_default_packages {
    my ($o) = @_;
    pkgs::selectPackage($o->{packages}, pkgs::packageByName($o->{packages}, $_) || next) foreach @{$o->{default_packages}};
}

sub unselectMostPackages {
    my ($o) = @_;
    pkgs::unselectAllPackages($o->{packages});
    select_default_packages($o);
}

sub warnAboutNaughtyServers {
    my ($o) = @_;
    my @naughtyServers = pkgs::naughtyServers($o->{packages}) or return 1;
    my $r = $o->ask_from_list_('', 
formatAlaTeX(
             #-PO: keep the double empty lines between sections, this is formatted a la LaTeX
             N("You have selected the following server(s): %s


These servers are activated by default. They do not have any known security
issues, but some new ones could be found. In that case, you must make sure
to upgrade as soon as possible.


Do you really want to install these servers?
", join(", ", @naughtyServers))), [ N_("Yes"), N_("No") ], 'Yes') or return;
    if ($r ne 'Yes') {
	log::l("unselecting naughty servers");
	pkgs::unselectPackage($o->{packages}, pkgs::packageByName($o->{packages}, $_)) foreach @naughtyServers;
    }
    1;
}

sub warnAboutRemovedPackages {
    my ($o, $packages) = @_;
    my @removedPackages = keys %{$packages->{state}{ask_remove} || {}} or return;
    if (!$o->ask_yesorno('', 
formatAlaTeX(
             #-PO: keep the double empty lines between sections, this is formatted a la LaTeX
             N("The following packages will be removed to allow upgrading your system: %s


Do you really want to remove these packages?
", join(", ", @removedPackages))), 1)) {
	$packages->{state}{ask_remove} = {};
    }
}

sub addToBeDone(&$) {
    my ($f, $step) = @_;

    return &$f() if $::o->{steps}{$step}{done};

    push @{$::o->{steps}{$step}{toBeDone}}, $f;
}

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

    my $when_network_is_up = sub {
	my ($f) = @_;
	#- defer running xxx - no network yet
	addToBeDone {
	    require install_steps;
	    install_steps::upNetwork($o, 'pppAvoided');
	    $f->();
	} 'configureNetwork';
    };
    require authentication;
    authentication::set($o, $o->{netc}, $o->{authentication} ||= {}, $when_network_is_up);
}

sub killCardServices() {
    my $pid = chomp_(cat_("/tmp/cardmgr.pid"));
    $pid and kill(15, $pid); #- send SIGTERM
}

sub unlockCdrom() {
    my $cdrom = cat_("/proc/mounts") =~ m!(/dev/\S+)\s+(?:/mnt/cdrom|/tmp/image)! && $1 or return;
    eval { ioctl(detect_devices::tryOpen($cdrom), c::CDROM_LOCKDOOR(), 0) };
}

sub ejectCdrom {
    my ($o_cdrom, $o_mountpoint) = @_;
    getFile("XXX"); #- close still opened filehandle
    my $cdrom;
    if ($o_mountpoint) {
	$cdrom = $o_cdrom || cat_("/proc/mounts") =~ m!(/dev/\S+)\s+(/mnt/cdrom|/tmp/image)! && $1 or return;
    } else {
	$cdrom = cat_("/proc/mounts") =~ m!(/dev/$o_cdrom)\s+(/mnt/cdrom|/tmp/image)! && $1 or return;
	$o_mountpoint ||= $2 || '/tmp/image';
    }

    #- umount BEFORE opening the cdrom device otherwise the umount will
    #- D state if the cdrom is already removed
    eval { fs::umount($o_mountpoint) };
    $@ and warnAboutFilesStillOpen();
    eval { 
	my $dev = detect_devices::tryOpen($cdrom);
	ioctl($dev, c::CDROMEJECT(), 1) if ioctl($dev, c::CDROM_DRIVE_STATUS(), 0) == c::CDS_DISC_OK();
    };
}

sub warnAboutFilesStillOpen() {
    log::l("files still open: ", readlink($_)) foreach map { glob_("$_/fd/*") } glob_("/proc/*");
}

sub install_urpmi {
    my ($method, $packages, $mediums) = @_;

    my $hdInstallPath = any::hdInstallPath();

    #- rare case where urpmi cannot be installed (no hd install path).
    our $copied_rpms_on_disk;
    $method eq 'disk' && !$hdInstallPath && !$copied_rpms_on_disk and return;

    log::l("install_urpmi $method");
    #- clean to avoid opening twice the rpm db.
    delete $packages->{rpmdb};

    #- import pubkey in rpmdb.
    my $db = pkgs::rpmDbOpenForInstall();
    $packages->parse_pubkeys(db => $db);
    foreach my $medium (values %$mediums) {
	$packages->import_needed_pubkeys($medium->{pubkey}, db => $db, callback => sub {
					     my (undef, undef, $_k, $id, $imported) = @_;
					     if ($id) {
						 log::l(($imported ? "imported" : "found") . " key=$id for medium $medium->{descr}");
						 $medium->{key_ids}{$id} = undef;
					     }
					 });
    }

    my @cfg;
    foreach (sort { $a->{medium} <=> $b->{medium} } values %$mediums) {
	my $name = $_->{fakemedium};
	if ($_->{ignored} || $_->{selected}) {
	    my $curmethod = $_->{method} || $::o->{method};
	    my $dir = (($copied_rpms_on_disk ? "/var/ftp/pub/Mandrakelinux" : '')
		|| $_->{prefix} || ${{ nfs => "file://mnt/nfs", 
					   disk => "file:/" . $hdInstallPath,
					   ftp => $ENV{URLPREFIX},
					   http => $ENV{URLPREFIX},
					   cdrom => "removable://mnt/cdrom" }}{$curmethod} ||
		       #- for live_update or live_install script.
		       readlink("/tmp/image/media") =~ m,^(/.*)/media/*$, && "removable:/$1") . "/$_->{rpmsdir}";
	    #- use list file only if visible password or macro.
	    my $need_list = $dir =~ m,^(?:[^:]*://[^/:\@]*:[^/:\@]+\@|.*%{),; #- }

	    #- build a list file if needed.
	    if ($need_list) {
		my $mask = umask 077;
		open(my $LIST, ">$::prefix/var/lib/urpmi/list.$name") or log::l("failed to write list.$name");
		umask $mask;

		#- build list file using internal data, synthesis file should exist.
		if ($_->{end} > $_->{start}) {
		    #- WARNING this method of build only works because synthesis (or hdlist)
		    #-         has been read.
		    foreach (@{$packages->{depslist}}[$_->{start} .. $_->{end}]) {
			my $arch = $_->arch;
			my $ldir = $dir;
			$ldir =~ s|/([^/]*)%{ARCH}|/./$1$arch|; $ldir =~ s|%{ARCH}|$arch|g;
			print $LIST "$ldir/" . $_->filename . "\n";
		    }
		} else {
		    #- need to use another method here to build list file.
		    open(my $F, "parsehdlist '$::prefix/var/lib/urpmi/hdlist.$name.cz' |");
		    local $_; 
		    while (<$F>) {
                        my ($arch) = /\.([^\.]+)\.rpm$/;
			my $ldir = $dir;
			$ldir =~ s|/([^/]*)%{ARCH}|/./$1$arch|; $ldir =~ s|%{ARCH}|$arch|g;
			print $LIST "$ldir/$_";
		    }
		    close $F;
		}
		close $LIST;
	    }

	    #- build a names file
	    if (open my $F, ">", "$::prefix/var/lib/urpmi/names.$name") {
		if (defined $_->{start} && defined $_->{end}) {
		    foreach ($_->{start} .. $_->{end}) {
			print $F $packages->{depslist}[$_]->name . "\n";
		    }
		}
		close $F;
	    }

	    #- build synthesis file if there are still not existing (ie not copied from mirror).
	    if (-s "$::prefix/var/lib/urpmi/synthesis.hdlist.$name.cz" <= 32) {
		unlink "$::prefix/var/lib/urpmi/synthesis.hdlist.$name.cz";
		run_program::rooted($::prefix, "parsehdlist", ">", "/var/lib/urpmi/synthesis.hdlist.$name",
				    "--synthesis", "/var/lib/urpmi/hdlist.$name.cz");
		run_program::rooted($::prefix, "gzip", "-S", ".cz", "/var/lib/urpmi/synthesis.hdlist.$name");
	    }

	    my ($qname, $qdir) = ($name, $dir);
	    $qname =~ s/(\s)/\\$1/g; $qdir =~ s/(\s)/\\$1/g;

	    #- compute correctly reference to media/media_info
	    my $with;
	    if ($_->{update}) {
		$with = "media_info/hdlist.cz";
	    } elsif ($_->{with_hdlist}) {
		$with = $_->{with_hdlist};
	    } else {
		$with = $_->{rpmsdir};
		$with =~ s|/[^/]*%{ARCH}.*||;
		$with =~ s|/+|/|g; $with =~ s|/$||; $with =~ s|[^/]||g; $with =~ s!/!../!g;
		$with .= "../media/media_info/$_->{hdlist}";
	    }

	    #- output new urpmi.cfg format here.
	    push @cfg, "$qname " . ($need_list ? "" : $qdir) . " {
  hdlist: hdlist.$name.cz
  with_hdlist: $with" . ($need_list ? "
  list: list.$name" : "") . (keys(%{$_->{key_ids}}) ? "
  key-ids: " . join(',', keys(%{$_->{key_ids}})) : "") . ($dir =~ /removable:/ && "
  removable: /dev/cdrom") . ($_->{update} ? "
  update" : "") . "
}

";
	} else {
	    #- remove not selected media by removing hdlist and synthesis files copied.
	    log::l("removing media $name");
	    unlink "$::prefix/var/lib/urpmi/hdlist.$name.cz";
	    unlink "$::prefix/var/lib/urpmi/synthesis.hdlist.$name.cz";
	}
    }
    eval { output "$::prefix/etc/urpmi/urpmi.cfg", @cfg };
}


#-###############################################################################
#- kde stuff
#-###############################################################################
sub kderc_largedisplay {
    my ($prefix) = @_;

    update_gnomekderc($_, 'KDE', 
		     Contrast => 7,
		     kfmIconStyle => "Large",
		     kpanelIconStyle => "Normal", #- to change to Large when icons looks better
		     KDEIconStyle => "Large") foreach list_skels($prefix, '.kderc');

    substInFile {
	s/^(GridWidth)=85/$1=100/;
	s/^(GridHeight)=70/$1=75/;
    } $_ foreach list_skels($prefix, '.kde/share/config/kfmrc');
}

sub kdemove_desktop_file {
    my ($prefix) = @_;
    my @toMove = qw(doc.kdelnk news.kdelnk updates.kdelnk home.kdelnk printer.kdelnk floppy.kdelnk cdrom.kdelnk FLOPPY.kdelnk CDROM.kdelnk);

    #- remove any existing save in Trash of each user and
    #- move appropriate file there after an upgrade.
    foreach my $dir (grep { -d $_ } list_skels($prefix, 'Desktop')) {
	renamef("$dir/$_", "$dir/Trash/$_") 
	  foreach grep { -e "$dir/$_" } @toMove, grep { /\.rpmorig$/ } all($dir);
    }
}


#-###############################################################################
#- auto_install stuff
#-###############################################################################
sub auto_inst_file() { "$::prefix/root/drakx/auto_inst.cfg.pl" }

sub report_bug() {
    any::report_bug('auto_inst' => g_auto_install('', 1));
}

sub g_auto_install {
    my ($b_replay, $b_respect_privacy) = @_;
    my $o = {};

    require pkgs;
    $o->{default_packages} = pkgs::selected_leaves($::o->{packages});

    my @fields = qw(mntpoint fs_type size);
    $o->{partitions} = [ map { 
	my %l; @l{@fields} = @$_{@fields}; \%l;
    } grep { 
	$_->{mntpoint} && fs::format::known_type($_);
    } @{$::o->{fstab}} ];
    
    exists $::o->{$_} and $o->{$_} = $::o->{$_} foreach qw(locale authentication mouse netc timezone superuser intf keyboard users partitioning isUpgrade manualFstab nomouseprobe crypto security security_user libsafe netcnx useSupermount autoExitInstall X services); #- TODO modules bootloader 

    $o->{printer} = $::o->{printer} if $::o->{printer};

    local $o->{partitioning}{auto_allocate} = !$b_replay;
    $o->{autoExitInstall} = !$b_replay;
    $o->{interactiveSteps} = [ 'doPartitionDisks', 'formatPartitions' ] if $b_replay;

    #- deep copy because we're modifying it below
    $o->{users} = [ @{$o->{users} || []} ];

    my @user_info_to_remove = (
	if_($b_respect_privacy, qw(name realname home pw)), 
	qw(oldu oldg password password2),
    );
    $_ = { %{$_ || {}} }, delete @$_{@user_info_to_remove} foreach $o->{superuser}, @{$o->{users} || []};

    if ($b_respect_privacy && $o->{netcnx}) {
	if (my $type = $o->{netcnx}{type}) {
	    my @netcnx_type_to_remove = qw(passwd passwd2 login phone_in phone_out);
	    $_ = { %{$_ || {}} }, delete @$_{@netcnx_type_to_remove} foreach $o->{netcnx}{$type};
	}
    }
    
    require Data::Dumper;
    my $str = join('', 
"#!/usr/bin/perl -cw
#
# You should check the syntax of this file before using it in an auto-install.
# You can do this with 'perl -cw auto_inst.cfg.pl' or by executing this file
# (note the '#!/usr/bin/perl -cw' on the first line).
", Data::Dumper->Dump([$o], ['$o']), "\0");
    $str =~ s/ {8}/\t/g; #- replace all 8 space char by only one tabulation, this reduces file size so much :-)
    $str;
}

sub getAndSaveInstallFloppies {
    my ($o, $dest_dir, $name) = @_;    

    if ($postinstall_rpms && -d $postinstall_rpms && -r "$postinstall_rpms/auto_install.img") {
	log::l("getAndSaveInstallFloppies: using file saved as $postinstall_rpms/auto_install.img");
	cp_af("$postinstall_rpms/auto_install.img", "$dest_dir/$name.img");
	"$dest_dir/$name.img";
    } else {
	my $image = cat_("/proc/cmdline") =~ /pcmcia/ ? "pcmcia" :
	  arch() =~ /ia64|ppc/ ? "all"  : #- we only use all.img there
	  ${{ disk => 'hd_grub', 'disk-iso' => 'hd_grub', cdrom => 'cdrom', ftp => 'network', nfs => 'network', http => 'network' }}{$o->{method}};
	my $have_drivers = $image eq 'network';
	$image .= arch() =~ /sparc64/ && "64"; #- for sparc64 there are a specific set of image.

	if ($have_drivers) {
	    getAndSaveFile("install/images/${image}_drivers.img", "$dest_dir/${name}_drivers.img") or log::l("failed to write Install Floppy (${image}_drivers.img) to $dest_dir/${name}_drivers.img"), return;
	}
	getAndSaveFile("install/images/$image.img", "$dest_dir/$name.img") or log::l("failed to write Install Floppy ($image.img) to $dest_dir/$name.img"), return;

	"$dest_dir/$name.img", if_($have_drivers, "$dest_dir/${name}_drivers.img");
    }
}

sub getAndSaveAutoInstallFloppies {
    my ($o, $replay) = @_;
    my $name = ($replay ? 'replay' : 'auto') . '_install';
    my $dest_dir = "$o->{prefix}/root/drakx";

    eval { modules::load('loop') };

    if (arch() =~ /ia64/) {
	#- nothing yet
    } else {
	my $mountdir = "$o->{prefix}/root/aif-mount"; -d $mountdir or mkdir $mountdir, 0755;
	my $param = 'kickstart=floppy ' . generate_automatic_stage1_params($o);

	my @imgs = getAndSaveInstallFloppies($o, $dest_dir, $name) or return;

	foreach my $img (@imgs) {
	    my $dev = devices::set_loop($img) or log::l("couldn't set loopback device"), return;
	    find { eval { fs::mount($dev, $mountdir, $_, 0); 1 } } qw(ext2 vfat) or return;

	    if (-e "$mountdir/menu.lst") {
		# hd_grub boot disk is different than others
		substInFile {
		    s/^(\s*timeout.*)/timeout 1/;
		    s/\bautomatic=method:disk/$param/;
		} "$mountdir/menu.lst";
	    } elsif (-e "$mountdir/syslinux.cfg") {
		#- make room first
		unlink "$mountdir/help.msg", "$mountdir/boot.msg";

		substInFile { 
		    s/timeout.*/$replay ? 'timeout 1' : ''/e;
		    s/^(\s*append)/$1 $param/; 
		} "$mountdir/syslinux.cfg";

		output "$mountdir/boot.msg", $replay ? '' : "\n0c" .
"!! If you press enter, an auto-install is going to start.
   All data on this computer is going to be lost,
   including any Windows partitions !!
" . "07\n";
	    }

	    if (@imgs == 1 || $img =~ /drivers/) {
		local $o->{partitioning}{clearall} = !$replay;
		eval { output("$mountdir/auto_inst.cfg", g_auto_install($replay)) };
		$@ and log::l("Warning: <", formatError($@), ">");
	    }
	
	    fs::umount($mountdir);
	    devices::del_loop($dev);
	}
	rmdir $mountdir;
	@imgs;
    }
}


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

    my ($_h, $fh) = media_browser($o, 'save', 'package_list.pl') or return;

    require Data::Dumper;
    my $str = Data::Dumper->Dump([ { default_packages => pkgs::selected_leaves($o->{packages}) } ], ['$o']);
    $str =~ s/ {8}/\t/g;
    print $fh
	   "# You should always check the syntax with 'perl -cw auto_inst.cfg.pl'\n" .
	   "# before testing.  To use it, boot with ``linux defcfg=floppy''\n" .
	   $str . "\0";
}

sub loadO {
    my ($O, $f) = @_; $f ||= auto_inst_file();
    my $o;
    if ($f =~ /^(floppy|patch)$/) {
	my $f = $f eq "floppy" ? 'auto_inst.cfg' : "patch";
	unless ($::testing) {
            my $dev = devices::make(detect_devices::floppy());
            foreach my $fs (arch() =~ /sparc/ ? 'romfs' : ('ext2', 'vfat')) {
                eval { fs::mount($dev, '/mnt', $fs, 'readonly'); 1 } and goto mount_ok;
            }
            die "Could not mount floppy [$dev]";
          mount_ok:
	    $f = "/mnt/$f";
	}
	-e $f or $f .= '.pl';

	my $_b = before_leaving {
	    fs::umount("/mnt") unless $::testing;
	    modules::unload(qw(vfat fat));
	};
	$o = loadO($O, $f);
    } else {
	my $fh;
	if (ref $f) {
	    $fh = $f;
	} else {
	    -e "$f.pl" and $f .= ".pl" unless -e $f;

	    if (-e $f) { open $fh, $f } else { $fh = getFile($f) or die N("Error reading file %s", $f) }
	}
	{
	    local $/ = "\0";
	    no strict;
	    eval <$fh>;
	    close $fh;
	    $@ and die;
	}
	$O and add2hash_($o ||= {}, $O);
    }
    $O and bless $o, ref $O;

    #- handle backward compatibility for things that changed
    foreach (@{$o->{partitions} || []}, @{$o->{manualFstab} || []}) {
	if (my $type = delete $_->{type}) {
	    if ($type =~ /^(0x)?(\d*)$/) {
		fs::type::set_pt_type($_, $type);
	    } else {
		fs::type::set_fs_type($_, $type);
	    }
	}
    }
    #- {rpmsrate_flags_chosen} was called {compssUsersChoice}
    if (my $rpmsrate_flags_chosen = delete $o->{compssUsersChoice}) {
	$o->{rpmsrate_flags_chosen} = $rpmsrate_flags_chosen;
    }
    #- compssUsers flags are now named CAT_XXX
    if ($o->{rpmsrate_flags_chosen} &&
	! any { /^CAT_/ } keys %{$o->{rpmsrate_flags_chosen}}) {
	#- we don't really know if this is needed for compatibility, but it won't hurt :)
	foreach (keys %{$o->{rpmsrate_flags_chosen}}) {
	    $o->{rpmsrate_flags_chosen}{"CAT_$_"} = $o->{rpmsrate_flags_chosen}{$_};
	}
	#- it used to be always selected
	$o->{rpmsrate_flags_chosen}{CAT_SYSTEM} = 1;
    }

    $o;
}

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

    my $method = $o->{method};
    my @ks;

    if ($o->{method} eq 'http') {
	$ENV{URLPREFIX} =~ m!(http|ftp)://([^/:]+)(.*)! or die;
	$method = $1; #- in stage1, FTP via HTTP proxy is available through FTP config, not HTTP
	@ks = (server => $2, directory => $3);
    } elsif ($o->{method} eq 'ftp') {
	@ks = (server => $ENV{HOST}, directory => $ENV{PREFIX}, user => $ENV{LOGIN}, pass => $ENV{PASSWORD});
    } elsif ($o->{method} eq 'nfs') {
	cat_("/proc/mounts") =~ m|(\S+):(\S+)\s+/tmp/nfsimage| or internal_error("can not find nfsimage");
	@ks = (server => $1, directory => $2);
    }
    @ks = (method => $method, @ks);

    if (member($o->{method}, qw(http ftp nfs))) {
	if ($ENV{PROXY}) {
	    push @ks, proxy_host => $ENV{PROXY}, proxy_port => $ENV{PROXYPORT};
	}
	my ($intf) = values %{$o->{intf}};
	push @ks, interface => $intf->{DEVICE};
	if ($intf->{BOOTPROTO} eq 'dhcp') {
	    push @ks, network => 'dhcp';
	} else {
	    push @ks, network => 'static', ip => $intf->{IPADDR}, netmask => $intf->{NETMASK}, gateway => $o->{netc}{GATEWAY};
	    require network::network;
	    if (my @dnss = network::network::dnsServers($o->{netc})) {
		push @ks, dns => $dnss[0];
	    }
	}
    }

    #- sync it with ../mdk-stage1/automatic.c
    my %aliases = (method => 'met', network => 'netw', interface => 'int', gateway => 'gat', netmask => 'netm',
		   adsluser => 'adslu', adslpass => 'adslp', hostname => 'hos', domain => 'dom', server => 'ser',
		   directory => 'dir', user => 'use', pass => 'pas', disk => 'dis', partition => 'par');
    
    'automatic=' . join(',', map { ($aliases{$_->[0]} || $_->[0]) . ':' . $_->[1] } group_by2(@ks));
}

sub guess_mount_point {
    my ($part, $prefix, $user) = @_;

    my %l = (
	     '/'     => 'etc/fstab',
	     '/boot' => 'vmlinuz',
	     '/tmp'  => '.X11-unix',
	     '/usr'  => 'X11R6',
	     '/var'  => 'catman',
	    );

    my $handle = any::inspect($part, $prefix) or return;
    my $d = $handle->{dir};
    my $mnt = find { -e "$d/$l{$_}" } keys %l;
    $mnt ||= (stat("$d/.bashrc"))[4] ? '/root' : '/home/user' . ++$$user if -e "$d/.bashrc";
    $mnt ||= (any { -d $_ && (stat($_))[4] >= 500 && -e "$_/.bashrc" } glob_($d)) ? '/home' : '';
    ($mnt, $handle);
}

sub suggest_mount_points {
    my ($fstab, $prefix, $uniq) = @_;

    my $user;
    foreach my $part (grep { isTrueFS($_) } @$fstab) {
	$part->{mntpoint} && !$part->{unsafeMntpoint} and next; #- if already found via an fstab

	my ($mnt, $handle) = guess_mount_point($part, $prefix, \$user) or next;

	next if $uniq && fs::get::mntpoint2part($mnt, $fstab);
	$part->{mntpoint} = $mnt; delete $part->{unsafeMntpoint};

	#- try to find other mount points via fstab
	fs::merge_info_from_fstab($fstab, $handle->{dir}, $uniq, 'loose') if $mnt eq '/';
    }
    $_->{mntpoint} and log::l("suggest_mount_points: $_->{device} -> $_->{mntpoint}") foreach @$fstab;
}

sub find_root_parts {
    my ($fstab, $prefix) = @_;
    map { 
	my $handle = any::inspect($_, $prefix);
	my $f = $handle && (find { -f $_ } map { "$handle->{dir}/etc/$_" } 'mandrakelinux-release', 'mandrake-release', 'redhat-release');
	if ($f) {
	    my $s = cat_($f);
	    chomp($s);
	    $s =~ s/\s+for\s+\S+//;
	    log::l("find_root_parts found $_->{device}: $s");
	    { release => $s, part => $_, release_file => $f };
	} else { () }
    } @$fstab;
}

sub migrate_device_names {
    my ($all_hds, $from_fstab, $new_root, $root_from_fstab, $o_in) = @_;

    log::l("warning: fstab says root partition is $root_from_fstab->{device}, whereas we were reading fstab from $new_root->{device}");
    my ($old_prefix, $old_part_number) = devices::simple_partition_scan($root_from_fstab);
    my ($new_prefix, $new_part_number) = devices::simple_partition_scan($new_root);

    if ($old_part_number != $new_part_number) {
	log::l("argh, $root_from_fstab->{device} and $old_part_number->{device} are not the same partition number");
	return;
    }

    log::l("replacing $old_prefix with $new_prefix");
    
    my %h;
    foreach (@$from_fstab) {
	if ($_->{device} =~ s!^\Q$old_prefix!$new_prefix!) {
	    #- this is simple to handle, nothing more to do
	} elsif ($_->{part_number}) {
	    my $device_prefix = devices::part_prefix($_);
	    push @{$h{$device_prefix}}, $_;
	} else {
	    #- hopefully this does not need anything special
	}
    }
    my @from_fstab_per_hds = values %h or return;


    my @current_hds = grep { $new_root->{rootDevice} ne $_->{device} } fs::get::hds($all_hds);

    found_one:
    @from_fstab_per_hds or return;

    foreach my $from_fstab_per_hd (@from_fstab_per_hds) {
	my ($matching, $other) = partition { 
	    my $hd = $_;
	    every {
		my $wanted = $_;
		my $part = find { $_->{part_number} eq $wanted->{part_number} } partition_table::get_normal_parts($hd);
		$part && $part->{fs_type} && fs::type::can_be_this_fs_type($wanted, $part->{fs_type});
	    } @$from_fstab_per_hd;
	} @current_hds;
	@$matching == 1 or next;

	my ($hd) = @$matching;
	@current_hds = @$other;
	@from_fstab_per_hds = grep { $_ != $from_fstab_per_hd } @from_fstab_per_hds;

	log::l("$hd->{device} nicely corresponds to " . join(' ', map { $_->{device} } @$from_fstab_per_hd));
	foreach (@$from_fstab_per_hd) {
	    partition_table::compute_device_name($_, $hd);
	}
	goto found_one;
    }
	
    #- we can not find one and only one matching hd
    my @from_fstab_not_handled = map { @$_ } @from_fstab_per_hds;
    log::l("we still do not know what to do with: " . join(' ', map { $_->{device} } @from_fstab_not_handled));


    if (!$o_in) {
	die 'still have';
	log::l("well, ignoring them!");
	return;
    }

    my $propositions_valid = every {
	my $wanted = $_;
	my @parts = grep { $_->{part_number} eq $wanted->{part_number}
			     && $_->{fs_type} && fs::type::can_be_this_fs_type($wanted, $_->{fs_type}) } fs::get::hds_fstab(@current_hds);
	$wanted->{propositions} = \@parts;
	@parts > 0;
    } @from_fstab_not_handled;

    $o_in->ask_from('', 
		    N("The following disk(s) were renamed:"),
		    [ map {
			{ label => N("%s (previously named as %s)", $_->{mntpoint}, $_->{device}),
			  val => \$_->{device}, format => sub { $_[0] && $_->{device} },
			  list => [ '', 
				    $propositions_valid ? @{$_->{propositions}} : 
				    fs::get::hds_fstab(@current_hds) ] };
		    } @from_fstab_not_handled ]);
}

sub use_root_part {
    my ($all_hds, $part, $o_in) = @_;
    my $migrate_device_names;
    {
	my $handle = any::inspect($part, $::prefix) or die;

	my @from_fstab = fs::read_fstab($handle->{dir}, '/etc/fstab', 'keep_default');

	my $root_from_fstab = fs::get::root_(\@from_fstab);
	if (!fsedit::is_same_hd($root_from_fstab, $part)) {
	    $migrate_device_names = 1;
	    log::l("from_fstab contained: $_->{device} $_->{mntpoint}") foreach @from_fstab;
	    migrate_device_names($all_hds, \@from_fstab, $part, $root_from_fstab, $o_in);
	    log::l("from_fstab now contains: $_->{device} $_->{mntpoint}") foreach @from_fstab;
	}
	fs::add2all_hds($all_hds, @from_fstab);
	log::l("fstab is now: $_->{device} $_->{mntpoint}") foreach fs::get::fstab($all_hds);
    }
    isSwap($_) and $_->{mntpoint} = 'swap' foreach fs::get::really_all_fstab($all_hds); #- use all available swap.
    $migrate_device_names;
}

sub getHds {
    my ($o, $o_in) = @_;

  getHds: 
    my $all_hds = fsedit::get_hds($o->{partitioning}, $o_in);
    my $hds = $all_hds->{hds};

    if (is_empty_array_ref($hds) && !$::move) { #- no way
	die N("An error occurred - no valid devices were found on which to create new filesystems. Please check your hardware for the cause of this problem");
    }

    #- try to figure out if the same number of hds is available, use them if ok.
    @{$o->{all_hds}{hds} || []} == @$hds and return 1;

    fs::get_raw_hds('', $all_hds);
    fs::add2all_hds($all_hds, @{$o->{manualFstab}});

    $o->{all_hds} = $all_hds;
    $o->{fstab} = [ fs::get::really_all_fstab($all_hds) ];
    fs::merge_info_from_mtab($o->{fstab});

    my @win = grep { isFat_or_NTFS($_) && maybeFormatted($_) && !$_->{is_removable} } @{$o->{fstab}};
    log::l("win parts: ", join ",", map { $_->{device} } @win) if @win;
    if (@win == 1) {
	#- Suggest /boot/efi on ia64.
	$win[0]{mntpoint} = arch() =~ /ia64/ ? "/boot/efi" : "/mnt/windows";
    } else {
	my %w; foreach (@win) {
	    my $v = $w{$_->{device_windobe}}++;
	    $_->{mntpoint} = $_->{unsafeMntpoint} = "/mnt/win_" . lc($_->{device_windobe}) . ($v ? $v+1 : ''); #- lc cuz of StartOffice(!) cf dadou
	}
    }

    my @sunos = grep { $_->{pt_type} == 2 } @{$o->{fstab}}; #- take only into account root partitions.
    if (@sunos) {
	my $v = '';
	map { $_->{mntpoint} = $_->{unsafeMntpoint} = "/mnt/sunos" . ($v && ++$v) } @sunos;
    }
    #- a good job is to mount SunOS root partition, and to use mount point described here in /etc/vfstab.

    1;
}

my %media_browser;
sub media_browser {
    my ($in, $save, $o_suggested_name) = @_;

    my %media_type2text = (
	fd => N("Floppy"),
	hd => N("Hard Disk"),
	cdrom => N("CDROM"),
    );
    my @network_protocols = (if_(!$save, N_("HTTP")), N_("FTP"), N_("NFS"));

    my $to_text = sub {
	my ($hd) = @_;
	($media_type2text{$hd->{media_type}} || $hd->{media_type}) . ': ' . partition_table::description($hd);
    };

  ask_media:
    my $all_hds = fsedit::get_hds({}, $in);
    fs::get_raw_hds('', $all_hds);

    my @raw_hds = grep { !$save || $_->{media_type} ne 'cdrom' } @{$all_hds->{raw_hds}};
    my @dev_and_text = group_by2(
	(map { $_ => $to_text->($_) } @raw_hds),
	(map { 
	    my $hd = $to_text->($_);
	    map { $_ => join('\1', $hd, partition_table::description($_)) } grep { isTrueFS($_) || isOtherAvailableFS($_) } fs::get::hds_fstab($_);
	} fs::get::hds($all_hds)),
	if_(member($::o->{method}, qw(ftp http nfs)) || install_steps::hasNetwork($::o),
	    map { $_ => join('\1', N("Network"), translate($_)) } @network_protocols),
    );

    $in->ask_from_({
	messages => N("Please choose a media"),
    }, [ 
	{ val => \$media_browser{dev}, separator => '\1', list => [ map { $_->[1] } @dev_and_text ] },
    ]) or return;

    my $dev = (find { $_->[1] eq $media_browser{dev} } @dev_and_text)->[0];

    if (member($dev, @network_protocols)) {
	install_interactive::upNetwork($::o);
	if ($dev eq 'HTTP') {
	    require http;
	    $media_browser{network} ||= 'http://';
	} else {
	    $in->ask_warn('', 'todo');
	    goto ask_media;
	}
	while (1) {
	    $in->ask_from('', 'URL', [
		{ val => \$media_browser{network} }
	    ]) or last;
		    
	    if ($dev eq 'HTTP') {
		my $fh = http::getFile($media_browser{network});
		$fh and return '', $fh;
	    }
	}
    } else {
	if (!$dev->{fs_type} || $dev->{fs_type} eq 'auto' || $dev->{fs_type} =~ /:/) {
	    if (my $p = fs::type::type_subpart_from_magic($dev)) {
		add2hash($p, $dev);
		$dev = $p;
	    } else {
		$in->ask_warn(N("Error"), N("Bad media %s", partition_table::description($dev)));
		goto ask_media;
	    }
	}
	my $file;
	if (my $h = any::inspect($dev, $::prefix, $save)) {
	    while (1) {
		$file = $in->ask_filename({ save => $save, 
					    directory => $h->{dir}, 
					    if_($o_suggested_name, file => "$h->{dir}/$o_suggested_name"),
					}) or last;
		if (-e $file && $save) {
		    $in->ask_yesorno('', N("File already exists. Overwrite it?")) or next;
		}
		if ($save) {
		    return $h, $file;
		} else {
		    my $fh;
		    open($fh, $file) and return $h, $fh;
		}
	    }
	    undef $h; #- help perl
	} else {
	    $in->ask_warn(N("Error"), formatError($@));
	}
	goto ask_media;
    }
}

sub log_sizes {
    my ($o) = @_;
    my @df = MDK::Common::System::df($o->{prefix});
    log::l(sprintf "Installed: %s(df), %s(rpm)",
	   formatXiB($df[0] - $df[1], 1024),
	   formatXiB(sum(run_program::rooted_get_stdout($o->{prefix}, 'rpm', '-qa', '--queryformat', '%{size}\n')))) if -x "$o->{prefix}/bin/rpm";
}

sub X_options_from_o {
    my ($o) = @_;
    { 
	freedriver => $o->{freedriver},
	allowFB => $o->{allowFB},
    };
}

sub screenshot_dir__and_move() {
    my ($dir1, $dir2) = ("$::prefix/root", '/tmp');
    if (-e $dir1) {
	if (-e "$dir2/DrakX-screenshots") {
	    cp_af("$dir2/DrakX-screenshots", $dir1);
	    rm_rf("$dir2/DrakX-screenshots");
	}
	$dir1;
    } else {
	$dir2;
    }
}

sub take_screenshot {
    my ($in) = @_;
    my $dir = screenshot_dir__and_move() . '/DrakX-screenshots';
    my $warn;
    if (!-e $dir) {
	mkdir $dir or $in->ask_warn('', N("Can not make screenshots before partitioning")), return;
	$warn = 1;
    }
    my $nb = 1;
    $nb++ while -e "$dir/$nb.png";
    system("fb2png /dev/fb0 $dir/$nb.png 0");

    $in->ask_warn('', N("Screenshots will be available after install in %s", "/root/DrakX-screenshots")) if $warn;
}

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

    return if $::rootwidth < 800;

    my $f;
    my $source_dir = "install/extra/advertising";
    foreach ("." . $o->{locale}{lang}, "." . substr($o->{locale}{lang},0,2), '') {
	$f = getFile("$source_dir$_/list") or next;
	$source_dir = "$source_dir$_";
    }
    if (my @files = <$f>) {
	my $dir = "$o->{prefix}/tmp/drakx-images";
	mkdir $dir;
	unlink glob_("$dir/*");
	foreach (@files) {
	    chomp;
	    getAndSaveFile("$source_dir/$_", "$dir/$_");
	    s/\.png/.pl/;
	    getAndSaveFile("$source_dir/$_", "$dir/$_");
	    s/\.pl/_icon.png/;
	    getAndSaveFile("$source_dir/$_", "$dir/$_");
	    s/_icon\.png/.png/;
	}
	@advertising_images = map { "$dir/$_" } @files;
    }
}

sub remove_advertising {
    my ($o) = @_;
    eval { rm_rf("$o->{prefix}/tmp/drakx-images") };
    @advertising_images = ();
}

sub disable_user_view() {
    substInFile { s/^UserView=.*/UserView=true/ } "$::prefix/usr/share/config/kdm/kdmrc";
    substInFile { s/^Browser=.*/Browser=0/ } "$::prefix/etc/X11/gdm/gdm.conf";
}

sub set_security {
    my ($o) = @_;
    {
	local $ENV{DRAKX_PASSWORD} = $o->{bootloader}{password};
	local $ENV{DURING_INSTALL} = 1;
	security::level::set($o->{security});
    }
    require security::various;
    security::various::config_libsafe($::prefix, $o->{libsafe});
    security::various::config_security_user($::prefix, $o->{security_user});
}

sub write_fstab {
    my ($o) = @_;
    fs::write_fstab($o->{all_hds}, $o->{prefix}) if !$o->{isUpgrade} || $o->{migrate_device_names};
}

my $clp_name = 'mdkinst.clp';
sub clp_on_disk() { "$::prefix/tmp/$clp_name" }

sub move_clp_to_disk() {
    return if -e clp_on_disk();

    my ($loop, $current_clp) = devices::find_clp_loop($clp_name) or return;
    log::l("move_clp_to_disk: copying $current_clp to ", clp_on_disk());
    cp_af($current_clp, clp_on_disk());
    run_program::run('losetup', '-r', $loop, clp_on_disk());

    #- in $current_clp eq "/tmp/$clp_name"
    unlink "/tmp/$clp_name";
}

#-###############################################################################
#- pcmcia various
#-###############################################################################
sub configure_pcmcia {
    my ($modules_conf, $pcic) = @_;

    #- try to setup pcmcia if cardmgr is not running.
    my $running if 0;
    return if $running;
    $running = 1;

    log::l("i try to configure pcmcia services");

    symlink "/tmp/stage2/$_", $_ foreach "/etc/pcmcia";

    eval { modules::load('pcmcia_core', $pcic, 'ds') };

    #- run cardmgr in foreground while it is configuring the card.
    run_program::run("cardmgr", "-f", "-m", "/modules");
    sleep(3);
    
    #- make sure to be aware of loaded module by cardmgr.
    modules::read_already_loaded($modules_conf);
}


1;
pm:725 diskdrake/interactive.pm:743 #: diskdrake/interactive.pm:747 diskdrake/removable.pm:23 #: diskdrake/smbnfs_gtk.pm:79 #, c-format msgid "Mount point" msgstr "Punct de montare" #: diskdrake/dav.pm:67 diskdrake/interactive.pm:406 #: diskdrake/interactive.pm:1160 diskdrake/removable.pm:24 #: diskdrake/smbnfs_gtk.pm:80 #, c-format msgid "Options" msgstr "Opțiuni" #: diskdrake/dav.pm:68 interactive.pm:387 interactive/gtk.pm:453 #, c-format msgid "Remove" msgstr "Înlătură" #: diskdrake/dav.pm:69 diskdrake/hd_gtk.pm:187 diskdrake/removable.pm:26 #: diskdrake/smbnfs_gtk.pm:82 interactive/http.pm:151 #, c-format msgid "Done" msgstr "Gata" #: diskdrake/dav.pm:78 diskdrake/hd_gtk.pm:128 diskdrake/hd_gtk.pm:292 #: diskdrake/interactive.pm:247 diskdrake/interactive.pm:260 #: diskdrake/interactive.pm:453 diskdrake/interactive.pm:524 #: diskdrake/interactive.pm:542 diskdrake/interactive.pm:547 #: diskdrake/interactive.pm:715 diskdrake/interactive.pm:1000 #: diskdrake/interactive.pm:1051 diskdrake/interactive.pm:1206 #: diskdrake/interactive.pm:1219 diskdrake/interactive.pm:1222 #: diskdrake/interactive.pm:1490 diskdrake/smbnfs_gtk.pm:42 do_pkgs.pm:23 #: do_pkgs.pm:28 do_pkgs.pm:44 do_pkgs.pm:60 do_pkgs.pm:65 do_pkgs.pm:82 #: fsedit.pm:246 interactive/http.pm:117 interactive/http.pm:118 #: modules/interactive.pm:19 scanner.pm:95 scanner.pm:106 scanner.pm:113 #: scanner.pm:120 wizards.pm:95 wizards.pm:99 wizards.pm:121 #, c-format msgid "Error" msgstr "Eroare" #: diskdrake/dav.pm:86 #, c-format msgid "Please enter the WebDAV server URL" msgstr "Introduceți adresa URL a serverului WebDAV" #: diskdrake/dav.pm:90 #, c-format msgid "The URL must begin with http:// or https://" msgstr "Adresa URL trebuie să înceapă cu http:// sau https://" #: diskdrake/dav.pm:106 diskdrake/hd_gtk.pm:417 diskdrake/interactive.pm:306 #: diskdrake/interactive.pm:391 diskdrake/interactive.pm:600 #: diskdrake/interactive.pm:818 diskdrake/interactive.pm:882 #: diskdrake/interactive.pm:1031 diskdrake/interactive.pm:1073 #: diskdrake/interactive.pm:1074 diskdrake/interactive.pm:1300 #: diskdrake/interactive.pm:1338 diskdrake/interactive.pm:1489 do_pkgs.pm:19 #: do_pkgs.pm:39 do_pkgs.pm:57 do_pkgs.pm:77 harddrake/sound.pm:442 #, c-format msgid "Warning" msgstr "Avertisment" #: diskdrake/dav.pm:106 #, c-format msgid "Are you sure you want to delete this mountpoint?" msgstr "Chiar doriți să ștergeți acest punct de montare?" #: diskdrake/dav.pm:124 #, c-format msgid "Server: " msgstr "Server: " #: diskdrake/dav.pm:125 diskdrake/interactive.pm:498 #: diskdrake/interactive.pm:1362 diskdrake/interactive.pm:1450 #, c-format msgid "Mount point: " msgstr "Punct de montare: " #: diskdrake/dav.pm:126 diskdrake/interactive.pm:1457 #, c-format msgid "Options: %s" msgstr "Opțiuni: %s" #: diskdrake/hd_gtk.pm:61 diskdrake/interactive.pm:301 #: diskdrake/smbnfs_gtk.pm:22 fs/mount_point.pm:108 #: fs/partitioning_wizard.pm:53 fs/partitioning_wizard.pm:236 #: fs/partitioning_wizard.pm:244 fs/partitioning_wizard.pm:283 #: fs/partitioning_wizard.pm:431 fs/partitioning_wizard.pm:494 #: fs/partitioning_wizard.pm:577 fs/partitioning_wizard.pm:580 #, c-format msgid "Partitioning" msgstr "Partiționare" #: diskdrake/hd_gtk.pm:73 #, c-format msgid "Click on a partition, choose a filesystem type then choose an action" msgstr "" "Faceți clic pe o partiție, alegeți un tip de sistem de fișiere și apoi o " "acțiune" #: diskdrake/hd_gtk.pm:110 diskdrake/interactive.pm:1181 #: diskdrake/interactive.pm:1191 diskdrake/interactive.pm:1244 #, c-format msgid "Read carefully" msgstr "Citiți cu atenție" #: diskdrake/hd_gtk.pm:110 #, c-format msgid "Please make a backup of your data first" msgstr "" "Înainte de a utiliza programul de partiționare a discurilor,\n" "este prudent să vă salvgardați datele!" #: diskdrake/hd_gtk.pm:111 diskdrake/interactive.pm:240 #, c-format msgid "Exit" msgstr "Ieșire" #: diskdrake/hd_gtk.pm:111 #, c-format msgid "Continue" msgstr "Continuă" #: diskdrake/hd_gtk.pm:182 fs/partitioning_wizard.pm:553 interactive.pm:653 #: interactive/gtk.pm:811 interactive/gtk.pm:829 interactive/gtk.pm:850 #: ugtk2.pm:936 #, c-format msgid "Help" msgstr "Ajutor" #: diskdrake/hd_gtk.pm:228 #, c-format msgid "" "You have one big Microsoft Windows partition.\n" "I suggest you first resize that partition\n" "(click on it, then click on \"Resize\")" msgstr "" "Dispuneți de o singură mare partiție Microsoft Windows.\n" "Va trebui s-o reduceți înainte de a putea crea alte partiții.\n" "(pentru asta faceți clic pe ea și apoi pe „Redimensionează”)" #: diskdrake/hd_gtk.pm:230 #, c-format msgid "Please click on a partition" msgstr "Faceți clic pe o partiție" #: diskdrake/hd_gtk.pm:244 diskdrake/smbnfs_gtk.pm:63 #, c-format msgid "Details" msgstr "Detalii" #: diskdrake/hd_gtk.pm:292 #, c-format msgid "No hard disk drives found" msgstr "Nu s-a găsit nici un disc dur" #: diskdrake/hd_gtk.pm:323 #, c-format msgid "Unknown" msgstr "Necunoscut" #: diskdrake/hd_gtk.pm:388 #, c-format msgid "Ext4" msgstr "Ext4" #: diskdrake/hd_gtk.pm:388 fs/partitioning_wizard.pm:401 #, c-format msgid "XFS" msgstr "XFS" #: diskdrake/hd_gtk.pm:388 fs/partitioning_wizard.pm:401 #, c-format msgid "Swap" msgstr "Swap" #: diskdrake/hd_gtk.pm:388 fs/partitioning_wizard.pm:401 #, c-format msgid "SunOS" msgstr "SunOS" #: diskdrake/hd_gtk.pm:388 fs/partitioning_wizard.pm:401 #, c-format msgid "HFS" msgstr "HFS" #: diskdrake/hd_gtk.pm:388 fs/partitioning_wizard.pm:401 #, c-format msgid "Windows" msgstr "Windows" #: diskdrake/hd_gtk.pm:389 fs/partitioning_wizard.pm:402 services.pm:184 #, c-format msgid "Other" msgstr "Alt tip" #: diskdrake/hd_gtk.pm:389 diskdrake/interactive.pm:1377 #: fs/partitioning_wizard.pm:402 #, c-format msgid "Empty" msgstr "Gol" #: diskdrake/hd_gtk.pm:396 #, c-format msgid "Filesystem types:" msgstr "Tipuri de sisteme de fișiere:" #: diskdrake/hd_gtk.pm:417 #, c-format msgid "This partition is already empty" msgstr "Această partiție este deja goală" #: diskdrake/hd_gtk.pm:426 #, c-format msgid "Use ``Unmount'' first" msgstr "Apăsați mai întîi pe „Demontează”" #: diskdrake/hd_gtk.pm:426 #, c-format msgid "Use ``%s'' instead (in expert mode)" msgstr "Utilizați mai de grabă „%s” (în modul expert)" #: diskdrake/hd_gtk.pm:426 diskdrake/interactive.pm:405 #: diskdrake/interactive.pm:642 diskdrake/removable.pm:25 #: diskdrake/removable.pm:48 #, c-format msgid "Type" msgstr "Tip" #: diskdrake/interactive.pm:211 #, c-format msgid "Choose another partition" msgstr "Alegeți o altă partiție" #: diskdrake/interactive.pm:211 #, c-format msgid "Choose a partition" msgstr "Alegeți o partiție" #: diskdrake/interactive.pm:273 diskdrake/interactive.pm:382 #: interactive/curses.pm:512 #, c-format msgid "More" msgstr "Mai multe" #: diskdrake/interactive.pm:281 diskdrake/interactive.pm:294 #: diskdrake/interactive.pm:569 diskdrake/interactive.pm:1285 #, c-format msgid "Confirmation" msgstr "Confirmare" #: diskdrake/interactive.pm:281 #, c-format msgid "Continue anyway?" msgstr "Continuați totuși?" #: diskdrake/interactive.pm:286 #, c-format msgid "Quit without saving" msgstr "Ieșire fără salvare" #: diskdrake/interactive.pm:286 #, c-format msgid "Quit without writing the partition table?" msgstr "Chiar doriți să ieșiți fără să se scrie în tabela de partiții?" #: diskdrake/interactive.pm:294 #, c-format msgid "Do you want to save /etc/fstab modifications" msgstr "Doriți să salvați modificările în /etc/fstab?" #: diskdrake/interactive.pm:301 fs/partitioning_wizard.pm:283 #, c-format msgid "You need to reboot for the partition table modifications to take place" msgstr "Trebuie să reporniți pentru a activa modificările tabelei de partiții" #: diskdrake/interactive.pm:306 #, c-format msgid "" "You should format partition %s.\n" "Otherwise no entry for mount point %s will be written in fstab.\n" "Quit anyway?" msgstr "" "Ar trebui să formatați partiția %s.\n" "Altfel nu va fi scrisă în fstab nici o intrare pentru punctul de montare " "%s.\n" "Terminați oricum?" #: diskdrake/interactive.pm:319 #, c-format msgid "Clear all" msgstr "Șterge toate partițiile" #: diskdrake/interactive.pm:320 #, c-format msgid "Auto allocate" msgstr "Partiționare automată" #: diskdrake/interactive.pm:326 #, c-format msgid "Toggle to normal mode" msgstr "Comută în regim normal" #: diskdrake/interactive.pm:326 #, c-format msgid "Toggle to expert mode" msgstr "Comută în regim expert" #: diskdrake/interactive.pm:338 #, c-format msgid "Hard drive information" msgstr "Informații despre discurile dure" #: diskdrake/interactive.pm:371 #, c-format msgid "All primary partitions are used" msgstr "Toate partițiile primare sînt alocate" #: diskdrake/interactive.pm:372 #, c-format msgid "I can not add any more partitions" msgstr "Nu se mai pot adăuga partiții" #: diskdrake/interactive.pm:373 #, c-format msgid "" "To have more partitions, please delete one to be able to create an extended " "partition" msgstr "" "Pentru a avea mai multe partiții, ștergeți una din ele pentru a putea creea " "o partiție extinsă " #: diskdrake/interactive.pm:384 #, c-format msgid "Reload partition table" msgstr "Reîncarcă tabela de partiții" #: diskdrake/interactive.pm:391 #, c-format msgid "Detailed information" msgstr "Informații detaliate" #: diskdrake/interactive.pm:403 #, c-format msgid "View" msgstr "Arată" #: diskdrake/interactive.pm:408 diskdrake/interactive.pm:831 #, c-format msgid "Resize" msgstr "Redimensionează" #: diskdrake/interactive.pm:409 #, c-format msgid "Format" msgstr "Formatează" #: diskdrake/interactive.pm:411 diskdrake/interactive.pm:963 #, c-format msgid "Add to RAID" msgstr "Adaugă la RAID" #: diskdrake/interactive.pm:412 diskdrake/interactive.pm:982 #, c-format msgid "Add to LVM" msgstr "Adaugă la LVM" #: diskdrake/interactive.pm:413 #, c-format msgid "Use" msgstr "Utilizează" #: diskdrake/interactive.pm:415 #, c-format msgid "Delete" msgstr "Șterge" #: diskdrake/interactive.pm:416 #, c-format msgid "Remove from RAID" msgstr "Înlătură din RAID" #: diskdrake/interactive.pm:417 #, c-format msgid "Remove from LVM" msgstr "Înlătură din LVM" #: diskdrake/interactive.pm:418 #, c-format msgid "Remove from dm" msgstr "Înlătură din dm" #: diskdrake/interactive.pm:419 #, c-format msgid "Modify RAID" msgstr "Modifică RAID" #: diskdrake/interactive.pm:420 #, c-format msgid "Use for loopback" msgstr "Utilizează pentru loopback" #: diskdrake/interactive.pm:431 #, c-format msgid "Create" msgstr "Creează" #: diskdrake/interactive.pm:453 #, c-format msgid "Failed to mount partition" msgstr "Montarea partiției a eșuat" #: diskdrake/interactive.pm:487 diskdrake/interactive.pm:489 #, c-format msgid "Create a new partition" msgstr "Creează o partiție nouă" #: diskdrake/interactive.pm:491 #, c-format msgid "Start sector: " msgstr "Sector de început: " #: diskdrake/interactive.pm:494 diskdrake/interactive.pm:1066 #, c-format msgid "Size in MB: " msgstr "Mărime în Mo: " #: diskdrake/interactive.pm:496 diskdrake/interactive.pm:1067 #, c-format msgid "Filesystem type: " msgstr "Tip sistem de fișiere: " #: diskdrake/interactive.pm:502 #, c-format msgid "Preference: " msgstr "Preferință: " #: diskdrake/interactive.pm:505 #, c-format msgid "Logical volume name " msgstr "Numele volumului logic " #: diskdrake/interactive.pm:507 #, c-format msgid "Encrypt partition" msgstr "Criptează partiția" #: diskdrake/interactive.pm:508 #, c-format msgid "Encryption key " msgstr "Cheia de criptare" #: diskdrake/interactive.pm:509 diskdrake/interactive.pm:1494 #, c-format msgid "Encryption key (again)" msgstr "Verificare cheie de criptare" #: diskdrake/interactive.pm:521 diskdrake/interactive.pm:1490 #, c-format msgid "The encryption keys do not match" msgstr "Cheile de criptare nu corespund" #: diskdrake/interactive.pm:522 #, c-format msgid "Missing encryption key" msgstr "Cheie de criptare absentă" #: diskdrake/interactive.pm:542 #, c-format msgid "" "You can not create a new partition\n" "(since you reached the maximal number of primary partitions).\n" "First remove a primary partition and create an extended partition." msgstr "" "Nu se poate creea o partiție nouă\n" "(de vreme ce s-a atins numărul maxim de partiții primare).\n" "Întîi ștergeți o partiție primară și creați în loc o partiție extinsă." #: diskdrake/interactive.pm:569 diskdrake/interactive.pm:1285 #: fs/partitioning.pm:48 #, c-format msgid "Check bad blocks?" msgstr "Verificare de sectoare defecte?" #: diskdrake/interactive.pm:600 #, c-format msgid "Remove the loopback file?" msgstr "Doriți ștergerea fișierului loopback?" #: diskdrake/interactive.pm:623 #, c-format msgid "" "After changing type of partition %s, all data on this partition will be lost" msgstr "" "După schimbarea tipului partiției %s, toate datele de pe această partiție " "vor fi pierdute." #: diskdrake/interactive.pm:639 #, c-format msgid "Change partition type" msgstr "Schimbă tipul partiției" #: diskdrake/interactive.pm:641 diskdrake/removable.pm:47 #, c-format msgid "Which filesystem do you want?" msgstr "Ce sistem de fișiere doriți?" #: diskdrake/interactive.pm:648 #, c-format msgid "Switching from %s to %s" msgstr "Se trece de la %s la %s" #: diskdrake/interactive.pm:683 #, c-format msgid "Set volume label" msgstr "Definiți eticheta de volum" #: diskdrake/interactive.pm:685 #, c-format msgid "Beware, this will be written to disk as soon as you validate!" msgstr "Atenție, acestea vor fi scrise pe disc imediat după ce validați!" #: diskdrake/interactive.pm:686 #, c-format msgid "Beware, this will be written to disk only after formatting!" msgstr "Atenție, acestea vor fi scrise pe disc imediat după formatare!" #: diskdrake/interactive.pm:688 #, c-format msgid "Which volume label?" msgstr "Care etichetă de volum?" #: diskdrake/interactive.pm:689 #, c-format msgid "Label:" msgstr "Etichetă:" #: diskdrake/interactive.pm:710 #, c-format msgid "Where do you want to mount the loopback file %s?" msgstr "Unde doriți să montați fișierul loopback %s?" #: diskdrake/interactive.pm:711 #, c-format msgid "Where do you want to mount device %s?" msgstr "Unde doriți să montați dispozitivul %s?" #: diskdrake/interactive.pm:716 #, c-format msgid "" "Cannot unset mount point as this partition is used for loop back.\n" "Remove the loopback first" msgstr "" "Nu se poate desființa acest punct de montare pentru că partiția e folosită " "pentru loopback.\n" "Ștergeți mai întîi fișierul loopback." #: diskdrake/interactive.pm:746 #, c-format msgid "Where do you want to mount %s?" msgstr "Unde doriți să montați %s?" #: diskdrake/interactive.pm:776 diskdrake/interactive.pm:871 #: fs/partitioning_wizard.pm:129 fs/partitioning_wizard.pm:205 #, c-format msgid "Resizing" msgstr "Redimensionare" #: diskdrake/interactive.pm:776 #, c-format msgid "Computing FAT filesystem bounds" msgstr "Se calculează limitele sistemului de fișiere FAT" #: diskdrake/interactive.pm:818 #, c-format msgid "This partition is not resizeable" msgstr "Dimensiunea acestei partiții nu poate fi modificată" #: diskdrake/interactive.pm:823 #, c-format msgid "All data on this partition should be backed-up" msgstr "Toate datele de pe această partiție ar trebui salvgardate mai întîi." #: diskdrake/interactive.pm:825 #, c-format msgid "After resizing partition %s, all data on this partition will be lost" msgstr "" "După redimensionarea partiției %s, toate datele de pe această partiție vor " "fi pierdute" #: diskdrake/interactive.pm:832 #, c-format msgid "Choose the new size" msgstr "Alegeți noua mărime" #: diskdrake/interactive.pm:833 #, c-format msgid "New size in MB: " msgstr "Noua mărime în Mo: " #: diskdrake/interactive.pm:834 #, c-format msgid "Minimum size: %s MB" msgstr "Mărime minimă: %s Mo" #: diskdrake/interactive.pm:835 #, c-format msgid "Maximum size: %s MB" msgstr "Mărime maximă: %s Mo" #: diskdrake/interactive.pm:882 fs/partitioning_wizard.pm:213 #, c-format msgid "" "To ensure data integrity after resizing the partition(s),\n" "filesystem checks will be run on your next boot into Microsoft Windows®" msgstr "" "Pentru a asigura integritatea datelor după redimensionarea\n" "partițiilor, verificări de sistem de fișiere vor fi lansate la următoarea " "pornire de Microsoft Windows®" #: diskdrake/interactive.pm:946 diskdrake/interactive.pm:1485 #, c-format msgid "Filesystem encryption key" msgstr "Cheia de criptare pentru sistemul de fișiere" #: diskdrake/interactive.pm:947 #, c-format msgid "Enter your filesystem encryption key" msgstr "Introduceți cheia de criptare ptentru sistemul de fișiere" #: diskdrake/interactive.pm:948 diskdrake/interactive.pm:1493 #, c-format msgid "Encryption key" msgstr "Cheia de criptare" #: diskdrake/interactive.pm:955 #, c-format msgid "Invalid key" msgstr "Cheie invalidă" #: diskdrake/interactive.pm:963 #, c-format msgid "Choose an existing RAID to add to" msgstr "Alegeți un RAID existent la care să adăugați" #: diskdrake/interactive.pm:965 diskdrake/interactive.pm:984 #, c-format msgid "new" msgstr "nou" #: diskdrake/interactive.pm:982 #, c-format msgid "Choose an existing LVM to add to" msgstr "Alegeți un LVM existent la care să adăugați" #: diskdrake/interactive.pm:994 diskdrake/interactive.pm:1003 #, c-format msgid "LVM name" msgstr "Nume LVM" #: diskdrake/interactive.pm:995 #, c-format msgid "Enter a name for the new LVM volume group" msgstr "Introduceți un nume pentru noul grup de volume LVM" #: diskdrake/interactive.pm:1000 #, c-format msgid "\"%s\" already exists" msgstr "„%s” există deja" #: diskdrake/interactive.pm:1031 #, c-format msgid "" "Physical volume %s is still in use.\n" "Do you want to move used physical extents on this volume to other volumes?" msgstr "" "Volumul fizic %s încă este utilizat.\n" "Doriți să deplasați unitățile de alocare fizice de pe acest volum pe alte " "volume?" #: diskdrake/interactive.pm:1033 #, c-format msgid "Moving physical extents" msgstr "Deplasare de unități de alocare fizice" #: diskdrake/interactive.pm:1051 #, c-format msgid "This partition can not be used for loopback" msgstr "Această partiție nu poate fi folosită pentru loopback" #: diskdrake/interactive.pm:1064 #, c-format msgid "Loopback" msgstr "Loopback" #: diskdrake/interactive.pm:1065 #, c-format msgid "Loopback file name: " msgstr "Numele fișierului loopback:" #: diskdrake/interactive.pm:1070 #, c-format msgid "Give a file name" msgstr "Dați un nume de fișier" #: diskdrake/interactive.pm:1073 #, c-format msgid "File is already used by another loopback, choose another one" msgstr "Fișierul este deja folosit de un alt loopback, alegeți un altul." #: diskdrake/interactive.pm:1074 #, c-format msgid "File already exists. Use it?" msgstr "Fișierul există deja. Să se folosească?" #: diskdrake/interactive.pm:1106 diskdrake/interactive.pm:1109 #, c-format msgid "Mount options" msgstr "Opțiuni de montare" #: diskdrake/interactive.pm:1116 #, c-format msgid "Various" msgstr "Diverse" #: diskdrake/interactive.pm:1162 #, c-format msgid "device" msgstr "dispozitiv" #: diskdrake/interactive.pm:1163 #, c-format msgid "level" msgstr "nivel" #: diskdrake/interactive.pm:1164 #, c-format msgid "chunk size in KiB" msgstr "mărimea blocului în KiO" #: diskdrake/interactive.pm:1182 #, c-format msgid "Be careful: this operation is dangerous." msgstr "Atenție: această operație este periculoasă." #: diskdrake/interactive.pm:1197 #, c-format msgid "Partitioning Type" msgstr "Tip de partiționare" #: diskdrake/interactive.pm:1197 #, c-format msgid "What type of partitioning?" msgstr "Ce tip de partiționare?" #: diskdrake/interactive.pm:1235 #, c-format msgid "You'll need to reboot before the modification can take place" msgstr "Va trebui să reporniți pentru a activa modificările" #: diskdrake/interactive.pm:1244 #, c-format msgid "Partition table of drive %s is going to be written to disk" msgstr "Tabela de partiții a unității %s va fi scrisă pe disc" #: diskdrake/interactive.pm:1263 fs/format.pm:102 fs/format.pm:109 #, c-format msgid "Formatting partition %s" msgstr "Se formatează partiția %s" #: diskdrake/interactive.pm:1276 #, c-format msgid "After formatting partition %s, all data on this partition will be lost" msgstr "" "După formatarea partiției %s, toate datele de pe această partiție vor fi " "pierdute" #: diskdrake/interactive.pm:1299 #, c-format msgid "Move files to the new partition" msgstr "Mută fișierele pe partiția nouă" #: diskdrake/interactive.pm:1299 #, c-format msgid "Hide files" msgstr "Ascunde fișierele" #: diskdrake/interactive.pm:1300 #, c-format msgid "" "Directory %s already contains data\n" "(%s)\n" "\n" "You can either choose to move the files into the partition that will be " "mounted there or leave them where they are (which results in hiding them by " "the contents of the mounted partition)" msgstr "" "Directorul %s conține deja date\n" "(%s)\n" "\n" "Puteți alege să deplasați fișierele pe partiția ce va fi montată, ori să le " "lăsați acolo unde sînt (ca rezultat ele vor fi ascunse conținutului " "partiției montate)" #: diskdrake/interactive.pm:1315 #, c-format msgid "Moving files to the new partition" msgstr "Se mută fișierele pe partiția nouă" #: diskdrake/interactive.pm:1319 #, c-format msgid "Copying %s" msgstr "Se copiează %s" #: diskdrake/interactive.pm:1323 #, c-format msgid "Removing %s" msgstr "Se înlătură %s" #: diskdrake/interactive.pm:1337 #, c-format msgid "partition %s is now known as %s" msgstr "partiția %s este cunoscută acum ca %s" #: diskdrake/interactive.pm:1338 #, c-format msgid "Partitions have been renumbered: " msgstr "Partițiile au fost renumerotate:" #: diskdrake/interactive.pm:1363 diskdrake/interactive.pm:1434 #, c-format msgid "Device: " msgstr "Dispozitiv: " #: diskdrake/interactive.pm:1364 #, c-format msgid "Volume label: " msgstr "Etichetă volum: " #: diskdrake/interactive.pm:1365 #, c-format msgid "UUID: " msgstr "UUID: " #: diskdrake/interactive.pm:1366 #, c-format msgid "DOS drive letter: %s (just a guess)\n" msgstr "Litera unității DOS: %s (doar o presupunere)\n" #: diskdrake/interactive.pm:1370 diskdrake/interactive.pm:1379 #: diskdrake/interactive.pm:1453 #, c-format msgid "Type: " msgstr "Tip: " #: diskdrake/interactive.pm:1374 diskdrake/interactive.pm:1438 #, c-format msgid "Name: " msgstr "Nume: " #: diskdrake/interactive.pm:1381 #, c-format msgid "Start: sector %s\n" msgstr "Început: sector %s\n" #: diskdrake/interactive.pm:1382 #, c-format msgid "Size: %s" msgstr "Mărime: %s" #: diskdrake/interactive.pm:1384 #, c-format msgid ", %s sectors" msgstr ", %s sectoare" #: diskdrake/interactive.pm:1386 #, c-format msgid "Cylinder %d to %d\n" msgstr "De la cilindrul %d la cilindrul %d\n" #: diskdrake/interactive.pm:1387 #, c-format msgid "Number of logical extents: %d\n" msgstr "Numărul unităților logice de alocare: %d\n" #: diskdrake/interactive.pm:1388 #, c-format msgid "Formatted\n" msgstr "Formatat\n" #: diskdrake/interactive.pm:1389 #, c-format msgid "Not formatted\n" msgstr "Neformatat\n" #: diskdrake/interactive.pm:1390 #, c-format msgid "Mounted\n" msgstr "Montat\n" #: diskdrake/interactive.pm:1391 #, c-format msgid "RAID %s\n" msgstr "RAID %s\n" #: diskdrake/interactive.pm:1393 #, c-format msgid "Encrypted" msgstr "Criptată" #: diskdrake/interactive.pm:1395 #, c-format msgid " (mapped on %s)" msgstr " (asociat pe %s)" #: diskdrake/interactive.pm:1396 #, c-format msgid " (to map on %s)" msgstr " (asociere pe %s)" #: diskdrake/interactive.pm:1397 #, c-format msgid " (inactive)" msgstr " (inactiv)" #: diskdrake/interactive.pm:1404 #, c-format msgid "" "Loopback file(s):\n" " %s\n" msgstr "" "Fișiere loopback: \n" " %s\n" #: diskdrake/interactive.pm:1405 #, c-format msgid "" "Partition booted by default\n" " (for MS-DOS boot, not for lilo)\n" msgstr "" "Partiția pornită implicit\n" " (pentru DOS/Windows, nu pentru LILO)\n" #: diskdrake/interactive.pm:1407 #, c-format msgid "Level %s\n" msgstr "Nivel %s\n" #: diskdrake/interactive.pm:1408 #, c-format msgid "Chunk size %d KiB\n" msgstr "Mărime bloc %d KiB\n" #: diskdrake/interactive.pm:1409 #, c-format msgid "RAID-disks %s\n" msgstr "Discuri-RAID %s\n" #: diskdrake/interactive.pm:1411 #, c-format msgid "Loopback file name: %s" msgstr "Numele fișierului loopback: %s" #: diskdrake/interactive.pm:1414 #, c-format msgid "" "\n" "Chances are, this partition is\n" "a Driver partition. You should\n" "probably leave it alone.\n" msgstr "" "\n" "Sînt șanse ca această partiție\n" "să conțină piloți, ar trebui\n" "probabil lăsată în pace.\n" #: diskdrake/interactive.pm:1417 #, c-format msgid "" "\n" "This special Bootstrap\n" "partition is for\n" "dual-booting your system.\n" msgstr "" "\n" "Această partiție de pornire\n" "este necesară dacă aveți mai\n" "multe sisteme de operare.\n" #: diskdrake/interactive.pm:1426 #, c-format msgid "Free space on %s (%s)" msgstr "Spațiu liber pe %s (%s)" #: diskdrake/interactive.pm:1435 #, c-format msgid "Read-only" msgstr "Doar citire" #: diskdrake/interactive.pm:1436 #, c-format msgid "Size: %s\n" msgstr "Mărime: %s\n" #: diskdrake/interactive.pm:1437 #, c-format msgid "Geometry: %s cylinders, %s heads, %s sectors\n" msgstr "Geometrie: %s cilindri, %s capete, %s sectoare\n" #: diskdrake/interactive.pm:1439 #, c-format msgid "Medium type: " msgstr "Tip de mediu: " #: diskdrake/interactive.pm:1440 #, c-format msgid "LVM-disks %s\n" msgstr "Discuri-LVM %s\n" #: diskdrake/interactive.pm:1441 #, c-format msgid "Partition table type: %s\n" msgstr "Tip de tabelă de partiții: %s\n" #: diskdrake/interactive.pm:1442 #, c-format msgid "on channel %d id %d\n" msgstr "pe canalul %d id %d\n" #: diskdrake/interactive.pm:1486 #, c-format msgid "Choose your filesystem encryption key" msgstr "Alegeți cheia de criptare a sistemului de fișiere" #: diskdrake/interactive.pm:1489 #, c-format msgid "This encryption key is too simple (must be at least %d characters long)" msgstr "" "Această cheie este prea simplă (ar trebui să fie de cel puțin %d caractere)" #: diskdrake/interactive.pm:1496 #, c-format msgid "Encryption algorithm" msgstr "Algoritm de criptare" #: diskdrake/removable.pm:46 #, c-format msgid "Change type" msgstr "Schimbă tipul" #: diskdrake/smbnfs_gtk.pm:81 interactive.pm:129 interactive.pm:550 #: interactive/curses.pm:260 interactive/http.pm:104 interactive/http.pm:160 #: interactive/stdio.pm:39 interactive/stdio.pm:148 mygtk2.pm:847 ugtk2.pm:415 #: ugtk2.pm:517 ugtk2.pm:526 ugtk2.pm:812 #, c-format msgid "Cancel" msgstr "Anulează" #: diskdrake/smbnfs_gtk.pm:164 #, c-format msgid "Cannot login using username %s (bad password?)" msgstr "Autentificare imposibilă cu utilizatorul %s (parolă incorectă?)" #: diskdrake/smbnfs_gtk.pm:168 diskdrake/smbnfs_gtk.pm:177 #, c-format msgid "Domain Authentication Required" msgstr "Domeniu de autentificare necesar" #: diskdrake/smbnfs_gtk.pm:169 #, c-format msgid "Which username" msgstr "Numele utilizatorului" #: diskdrake/smbnfs_gtk.pm:169 #, c-format msgid "Another one" msgstr "Un altul" #: diskdrake/smbnfs_gtk.pm:178 #, c-format msgid "" "Please enter your username, password and domain name to access this host." msgstr "" "Introduceți utilizatorul, parola și domeniul pentru a accesa această gazdă." #: diskdrake/smbnfs_gtk.pm:180 #, c-format msgid "Username" msgstr "Nume utilizator" #: diskdrake/smbnfs_gtk.pm:182 #, c-format msgid "Domain" msgstr "Domeniu" #: diskdrake/smbnfs_gtk.pm:206 #, c-format msgid "Search servers" msgstr "Caută servere" #: diskdrake/smbnfs_gtk.pm:211 #, c-format msgid "Search new servers" msgstr "Caută servere noi" #: do_pkgs.pm:19 do_pkgs.pm:57 #, c-format msgid "The package %s needs to be installed. Do you want to install it?" msgstr "Trebuie instalat pachetul %s. Doriți instalarea lui?" #: do_pkgs.pm:23 do_pkgs.pm:44 do_pkgs.pm:60 do_pkgs.pm:82 #, c-format msgid "Could not install the %s package!" msgstr "Nu s-a putut instala pachetul %s!" #: do_pkgs.pm:28 do_pkgs.pm:65 #, c-format msgid "Mandatory package %s is missing" msgstr "Llipsește pachetul obligatoriu %s" #: do_pkgs.pm:39 do_pkgs.pm:77 #, c-format msgid "The following packages need to be installed:\n" msgstr "Este necesară instalarea următoarelor pachetele: \n" #: do_pkgs.pm:241 #, c-format msgid "Installing packages..." msgstr "Instalare de pachete..." #: do_pkgs.pm:287 pkgs.pm:285 #, c-format msgid "Removing packages..." msgstr "Înlăturare de pachete..." #: fs/any.pm:17 #, c-format msgid "" "An error occurred - no valid devices were found on which to create new " "filesystems. Please check your hardware for the cause of this problem" msgstr "" "S-a produs o eroare: nu s-a găsit nici un dispozitiv valid pentru a crea " "noile sisteme de fișiere. Verificați componentele materiale pentru cauza " "problemei." #: fs/any.pm:75 fs/partitioning_wizard.pm:62 #, c-format msgid "You must have a FAT partition mounted in /boot/efi" msgstr "Trebuie să aveți o partiție FAT montată în /boot/efi" #: fs/format.pm:106 #, c-format msgid "Creating and formatting file %s" msgstr "Se creează și formatează fișierul %s" #: fs/format.pm:125 #, c-format msgid "I do not know how to set label on %s with type %s" msgstr "Imposibil de configurat eticheta de volum pe %s cu tipul %s" #: fs/format.pm:134 #, c-format msgid "setting label on %s failed, is it formatted?" msgstr "personalizarea etichetei de volum pe %s a eșuat, este formatat?" #: fs/format.pm:175 #, c-format msgid "I do not know how to format %s in type %s" msgstr "Nu se poate formata %s cu formatul %s" #: fs/format.pm:180 fs/format.pm:182 #, c-format msgid "%s formatting of %s failed" msgstr "formatarea cu %s a lui %s a eșuat" #: fs/loopback.pm:24 #, c-format msgid "Circular mounts %s\n" msgstr "Montări circulare %s\n" #: fs/mount.pm:85 #, c-format msgid "Mounting partition %s" msgstr "Se montează partiția %s" #: fs/mount.pm:86 #, c-format msgid "mounting partition %s in directory %s failed" msgstr "montarea partiției %s în directorul %s a eșuat" #: fs/mount.pm:91 fs/mount.pm:108 #, c-format msgid "Checking %s" msgstr "Se verifică %s" #: fs/mount.pm:125 partition_table.pm:409 #, c-format msgid "error unmounting %s: %s" msgstr "eroare la demontarea lui %s: %s" #: fs/mount.pm:140 #, c-format msgid "Enabling swap partition %s" msgstr "Se activează partiția swap %s" #: fs/mount_options.pm:112 #, c-format msgid "Enable Posix Access Control Lists" msgstr "Activează listele Posix de control al accesului" #: fs/mount_options.pm:114 #, c-format msgid "Flush write cache on file close" msgstr "Golește zona de pretampon la închiderea fișierului" #: fs/mount_options.pm:116 #, c-format msgid "Enable group disk quota accounting and optionally enforce limits" msgstr "Activează cota de disc a grupurilor și impune (opțional) limitele" #: fs/mount_options.pm:118 #, c-format msgid "" "Do not update inode access times on this filesystem\n" "(e.g, for faster access on the news spool to speed up news servers)." msgstr "" "Nu actualiza timpii de acces pe inode pentru acest sistem de fișiere\n" "(ex: pentru acces mai rapid la știri pe serverele de știri)." #: fs/mount_options.pm:121 #, c-format msgid "" "Update inode access times on this filesystem in a more efficient way\n" "(e.g, for faster access on the news spool to speed up news servers)." msgstr "" "Actualizează timpii de acces la inode într-un mod mai eficient pe acest " "sistem de fișiere\n" "(ex: pentru acces mai rapid la știri pe serverele de știri)." #: fs/mount_options.pm:124 #, c-format msgid "" "Can only be mounted explicitly (i.e.,\n" "the -a option will not cause the filesystem to be mounted)." msgstr "" "Nu poate fi montat decît în mod explicit \n" "(ex: opțiunea -a nu va provoca montarea sistemului de fișiere)." #: fs/mount_options.pm:127 #, c-format msgid "Do not interpret character or block special devices on the filesystem." msgstr "" "Ignoră fișierele speciale de tip caracter sau bloc pe sistemul de fișiere." #: fs/mount_options.pm:129 #, c-format msgid "" "Do not allow execution of any binaries on the mounted\n" "filesystem. This option might be useful for a server that has filesystems\n" "containing binaries for architectures other than its own." msgstr "" "Interzice execuția fișierelor binare din sistemul de fișiere\n" "montat. Această opțiune poate fi utilă pentru un server ce conține fișiere " "binare\n" "pentru arhitecturi diferite de-a lui." #: fs/mount_options.pm:133 #, c-format msgid "" "Do not allow set-user-identifier or set-group-identifier\n" "bits to take effect. (This seems safe, but is in fact rather unsafe if you\n" "have suidperl(1) installed.)" msgstr "" "Împiedică activarea biților SUID sau GUID.\n" "(Această metodă poate părea sigură, numai dacă nu aveți suidperl(1)\n" "instalat.)" #: fs/mount_options.pm:137 #, c-format msgid "Mount the filesystem read-only." msgstr "Montează sistemul de fișiere doar în citire." #: fs/mount_options.pm:139 #, c-format msgid "All I/O to the filesystem should be done synchronously." msgstr "Toate I/O pe sistemul de fișiere trebuiesc făcute sincronizat." #: fs/mount_options.pm:141 #, c-format msgid "Allow every user to mount and umount the filesystem." msgstr "" "Permite fiecărui utilizator să monteze și să demonteze sistemul de fișiere." #: fs/mount_options.pm:143 #, c-format msgid "Allow an ordinary user to mount the filesystem." msgstr "Permite utilizatorilor obișnuiți să monteze sistemul de fișiere." #: fs/mount_options.pm:145 #, c-format msgid "Enable user disk quota accounting, and optionally enforce limits" msgstr "Activează cota de disc utilizator și impune (opțional) limitele" #: fs/mount_options.pm:147 #, c-format msgid "Support \"user.\" extended attributes" msgstr "Suport pentru atributele extinse de utilizator" #: fs/mount_options.pm:149 #, c-format msgid "Give write access to ordinary users" msgstr "Acordă acces în scris utilizatorilor obișnuiți" #: fs/mount_options.pm:151 #, c-format msgid "Give read-only access to ordinary users" msgstr "Acordă acces doar în citire utilizatorilor obișnuiți" #: fs/mount_point.pm:82 #, c-format msgid "Duplicate mount point %s" msgstr "Punct de montare duplicat: %s" #: fs/mount_point.pm:97 #, c-format msgid "No partition available" msgstr "Nici o partiție disponibilă" #: fs/mount_point.pm:100 #, c-format msgid "Scanning partitions to find mount points" msgstr "Se examinează partițiile pentru a găsi puncte de montare" #: fs/mount_point.pm:107 #, c-format msgid "Choose the mount points" msgstr "Alegeți punctele de montare" #: fs/partitioning.pm:46 #, c-format msgid "Choose the partitions you want to format" msgstr "Alegeți partițiile pe care doriți să le formatați" #: fs/partitioning.pm:75 #, c-format msgid "" "Failed to check filesystem %s. Do you want to repair the errors? (beware, " "you can lose data)" msgstr "" "Verificarea sistemului de fișiere %s a eșuat. Doriți repararea erorilor? " "(atenție, se pot pierde date)" #: fs/partitioning.pm:78 #, c-format msgid "Not enough swap space to fulfill installation, please add some" msgstr "Swap insuficient pentru a termina instalarea, vă rog să-l măriți" #: fs/partitioning_wizard.pm:53 #, c-format msgid "" "You must have a root partition.\n" "For this, create a partition (or click on an existing one).\n" "Then choose action ``Mount point'' and set it to `/'" msgstr "" "Trebuie să aveți o partiție root.\n" "Pentru aceasta, creați o partiție (sau faceți clic pe una existentă).\n" "Alegeți apoi acțiunea „Punct de montare” și definiți-o ca „/”" #: fs/partitioning_wizard.pm:59 #, c-format msgid "" "You do not have a swap partition.\n" "\n" "Continue anyway?" msgstr "" "Nu aveți nici o partiție swap\n" "\n" "Continuați totuși?" #: fs/partitioning_wizard.pm:93 #, c-format msgid "Use free space" msgstr "Utilizează spațiul liber" #: fs/partitioning_wizard.pm:95 #, c-format msgid "Not enough free space to allocate new partitions" msgstr "Spațiu liber insuficient pentru a crea partiții noi" #: fs/partitioning_wizard.pm:103 #, c-format msgid "Use existing partitions" msgstr "Utilizează partițiile existente" #: fs/partitioning_wizard.pm:105 #, c-format msgid "There is no existing partition to use" msgstr "Nu există partiții utilizabile" #: fs/partitioning_wizard.pm:129 #, c-format msgid "Computing the size of the Microsoft Windows® partition" msgstr "Se calculează dimensiunea partiției Microsoft Windows®" #: fs/partitioning_wizard.pm:165 #, c-format msgid "Use the free space on a Microsoft Windows® partition" msgstr "Utilizează spațiul liber de pe partiția Microsoft Windows®" #: fs/partitioning_wizard.pm:169 #, c-format msgid "Which partition do you want to resize?" msgstr "Care partiție doriți s-o redimensionați?" #: fs/partitioning_wizard.pm:172 #, c-format msgid "" "Your Microsoft Windows® partition is too fragmented. Please reboot your " "computer under Microsoft Windows®, run the ``defrag'' utility, then restart " "the Mageia Linux installation." msgstr "" "Partiția voastră Microsoft Windows® este prea fragmentată. Reporniți " "calculatorul în Microsoft Windows®, lansați utilitarul „defrag”, apoi " "reporniți instalarea Mageia Linux." #: fs/partitioning_wizard.pm:180 #, c-format msgid "" "WARNING!\n" "\n" "\n" "Your Microsoft Windows® partition will be now resized.\n" "\n" "\n" "Be careful: this operation is dangerous. If you have not already done so, " "you first need to exit the installation, run \"chkdsk c:\" from a Command " "Prompt under Microsoft Windows® (beware, running graphical program \"scandisk" "\" is not enough, be sure to use \"chkdsk\" in a Command Prompt!), " "optionally run defrag, then restart the installation. You should also backup " "your data.\n" "\n" "\n" "When sure, press %s." msgstr "" "AVERTISMENT!\n" "\n" "\n" "Partiția voastră Microsoft Windows® va fi redimensionată.\n" "\n" "\n" "Atenție: această operație este periculoasă. Dacă nu ați făcut-o deja, " "trebuie să părăsiți instalarea, să lansați „chkdsk c:” din linia de comandă " "din Microsoft Windows® (atenție, executarea programului grafic „scandisk” nu " "este suficientă, mai sigur folosiți „chkdsk” din linia de comandă!). " "Opțional puteți defragmenta partiția, iar apoi reîncepeți instalarea. Ar fi " "preferabil să vă salvgardați datele înainte.\n" "\n" "\n" "Cînd sînteți sigur, apăsați %s." #. -PO: keep the double empty lines between sections, this is formatted a la LaTeX #: fs/partitioning_wizard.pm:189 fs/partitioning_wizard.pm:557 #: interactive.pm:549 interactive/curses.pm:263 ugtk2.pm:519 #, c-format msgid "Next" msgstr "Înainte" #: fs/partitioning_wizard.pm:195 #, c-format msgid "Partitionning" msgstr "Partiționare" #: fs/partitioning_wizard.pm:195 #, c-format msgid "Which size do you want to keep for Microsoft Windows® on partition %s?" msgstr "" "Cît spațiu doriți să păstrați pentru Microsoft Windows® pe partiția %s?" #: fs/partitioning_wizard.pm:196 #, c-format msgid "Size" msgstr "Mărime" #: fs/partitioning_wizard.pm:205 #, c-format msgid "Resizing Microsoft Windows® partition" msgstr "Se redimensionează partiția Microsoft Windows®" #: fs/partitioning_wizard.pm:210 #, c-format msgid "FAT resizing failed: %s" msgstr "Redimensionarea FAT a eșuat: %s" #: fs/partitioning_wizard.pm:226 #, c-format msgid "There is no FAT partition to resize (or not enough space left)" msgstr "" "Nu se poare redimensiona nici o partiție FAT (sau spațiu liber insuficient)" #: fs/partitioning_wizard.pm:231 #, c-format msgid "Remove Microsoft Windows®" msgstr "Înlătură Microsoft Windows®" #: fs/partitioning_wizard.pm:231 #, c-format msgid "Erase and use entire disk" msgstr "Șterge și utilizează tot discul" #: fs/partitioning_wizard.pm:235 #, fuzzy, c-format msgid "" "You have more than one hard disk drive, which one do you want the installer " "to use?" msgstr "" "Aveți mai multe discuri dure, pe care din ele doriți să instalați Linux?" #: fs/partitioning_wizard.pm:243 fsedit.pm:632 #, c-format msgid "ALL existing partitions and their data will be lost on drive %s" msgstr "TOATE partițiile existente și datele lor pe unitatea %s se vor pierde" #: fs/partitioning_wizard.pm:253 #, c-format msgid "Custom disk partitioning" msgstr "Partiționare de disc personalizată" #: fs/partitioning_wizard.pm:259 #, c-format msgid "Use fdisk" msgstr "Utilizează fdisk" #: fs/partitioning_wizard.pm:262 #, c-format msgid "" "You can now partition %s.\n" "When you are done, do not forget to save using `w'" msgstr "" "Acum puteți partiționa discul %s \n" "Cînd ați terminat, nu uitați să înregistrați folosind „w”" #: fs/partitioning_wizard.pm:401 #, c-format msgid "Ext2/3/4" msgstr "Ext2/3/4" #: fs/partitioning_wizard.pm:431 fs/partitioning_wizard.pm:577 #, c-format msgid "I can not find any room for installing" msgstr "Nu este spațiu suficient pentru instalare" #: fs/partitioning_wizard.pm:440 fs/partitioning_wizard.pm:584 #, c-format msgid "The DrakX Partitioning wizard found the following solutions:" msgstr "Asistentul de partiționare DrakX a găsit următoarele soluții:" #: fs/partitioning_wizard.pm:510 #, c-format msgid "Here is the content of your disk drive " msgstr "Iată conținutul discului vostru " #: fs/partitioning_wizard.pm:594 #, c-format msgid "Partitioning failed: %s" msgstr "Partiționarea a eșuat: %s" #: fs/type.pm:393 #, c-format msgid "You can not use JFS for partitions smaller than 16MB" msgstr "Nu puteți folosi JFS pentru partiții mai mici de 16Mo" #: fs/type.pm:394 #, c-format msgid "You can not use ReiserFS for partitions smaller than 32MB" msgstr "Nu puteți folosi ReiserFS pentru partiții mai mici de 32Mo" #: fsedit.pm:24 #, c-format msgid "simple" msgstr "simplu" #: fsedit.pm:28 #, c-format msgid "with /usr" msgstr "cu /usr" #: fsedit.pm:33 #, c-format msgid "server" msgstr "server" #: fsedit.pm:137 #, c-format msgid "BIOS software RAID detected on disks %s. Activate it?" msgstr "S-a detectat RAID din BIOS pentru discurile %s. Doriți să-l activați?" #: fsedit.pm:247 #, c-format msgid "" "I can not read the partition table of device %s, it's too corrupted for me :" "(\n" "I can try to go on, erasing over bad partitions (ALL DATA will be lost!).\n" "The other solution is to not allow DrakX to modify the partition table.\n" "(the error is %s)\n" "\n" "Do you agree to lose all the partitions?\n" msgstr "" "Nu se poate citi tabela de partiții a unității %s, este prea coruptă :(\n" "Se poate continua, ștergîndu-se toate partițiile greșite (se vor pierde " "TOATE DATELE!).\n" "Cealată soluție ar fi să se interzică modificarea tabelei de partiții.\n" "(eroarea este %s)\n" "\n" "Sînteți de acord să pierdeți toate partițiile?\n" #: fsedit.pm:427 #, c-format msgid "Mount points must begin with a leading /" msgstr "Punctele de montare trebuie sa înceapă cu un /" #: fsedit.pm:428 #, c-format msgid "Mount points should contain only alphanumerical characters" msgstr "Punctele de montare trebuie să conțină doar caractere alfanumerice" #: fsedit.pm:429 #, c-format msgid "There is already a partition with mount point %s\n" msgstr "Există deja o partiție cu punctul de montare %s\n" #: fsedit.pm:434 #, c-format msgid "" "You've selected a software RAID partition as root (/).\n" "No bootloader is able to handle this without a /boot partition.\n" "Please be sure to add a separate /boot partition" msgstr "" "Ați selectat o partiție RAID software pentru root (/).\n" "Nici un încărcător de sistem nu suportă această configurație fără\n" "o partiție /boot separată. Adăugați, deci, o partiție /boot" #: fsedit.pm:440 #, c-format msgid "" "Metadata version unsupported for a boot partition. Please be sure to add a /" "boot partition." msgstr "" "Versiune nesuportată de metadate pentru o partiție de pornire.Asigurați-vă " "că ați adăugat o partiție /boot." #: fsedit.pm:448 #, c-format msgid "" "You've selected a software RAID partition as /boot.\n" "No bootloader is able to handle this." msgstr "" "Ați selectat o partiție RAID software drept /boot.\n" "Nici un încărcător de sistem nu suportă acest lucru." #: fsedit.pm:452 #, c-format msgid "Metadata version unsupported for a boot partition." msgstr "Versiune nesuportată de metadate pentru o partiție de pornire." #: fsedit.pm:459 #, c-format msgid "" "You've selected an encrypted partition as root (/).\n" "No bootloader is able to handle this without a /boot partition.\n" "Please be sure to add a separate /boot partition" msgstr "" "Ați selectat o partiție criptată pentru root (/).\n" "Nici un încărcător de sistem nu suportă această configurație fără\n" "o partiție /boot separată. Adăugați, deci, o partiție /boot" #: fsedit.pm:465 fsedit.pm:483 #, c-format msgid "You can not use an encrypted filesystem for mount point %s" msgstr "" "Nu puteți utiliza un sistem de fișiere criptat pentru punctul de montare %s" #: fsedit.pm:469 #, c-format msgid "" "You can not use the LVM Logical Volume for mount point %s since it spans " "physical volumes" msgstr "" "Nu puteți folosi volumul logic LVM pentru punctul de montare %s deoarece " "este repartizat pe mai multe volume fizice." #: fsedit.pm:471 #, c-format msgid "" "You've selected the LVM Logical Volume as root (/).\n" "The bootloader is not able to handle this when the volume spans physical " "volumes.\n" "You should create a separate /boot partition first" msgstr "" "Ați selectat volumul logic LVM ca root (/).\n" "Încărcătorul de sistem nu poate manipula un volum repartizat pe mai multe " "volume fizice.\n" "Ar trebui să creați mai întîi o partiție /boot separată" #: fsedit.pm:475 fsedit.pm:477 #, c-format msgid "This directory should remain within the root filesystem" msgstr "Acest director ar trebui să rămînă pe partiția rădăcină (/)" #: fsedit.pm:479 fsedit.pm:481 #, c-format msgid "" "You need a true filesystem (ext2/3/4, reiserfs, xfs, or jfs) for this mount " "point\n" msgstr "" "Aveți nevoie de un sistem de fișiere adevărat (Ext2/Ext3, ReiserFS, XFS sau " "JFS) pentru acest punct de montare.\n" #: fsedit.pm:548 #, c-format msgid "Not enough free space for auto-allocating" msgstr "Spațiu liber insuficient pentru partiționarea automată" #: fsedit.pm:550 #, c-format msgid "Nothing to do" msgstr "Nimic de făcut" #: harddrake/data.pm:62 #, c-format msgid "SATA controllers" msgstr "Controlere SATA" #: harddrake/data.pm:71 #, c-format msgid "RAID controllers" msgstr "Controlere RAID" #: harddrake/data.pm:81 #, c-format msgid "(E)IDE/ATA controllers" msgstr "Controlere (E)IDE/ATA" #: harddrake/data.pm:92 #, c-format msgid "Card readers" msgstr "Cititoare de cartele" #: harddrake/data.pm:101 #, c-format msgid "Firewire controllers" msgstr "Controlere Firewire" #: harddrake/data.pm:110 #, c-format msgid "PCMCIA controllers" msgstr "Controlere PCMCIA" #: harddrake/data.pm:119 #, c-format msgid "SCSI controllers" msgstr "Controlere SCSI" #: harddrake/data.pm:128 #, c-format msgid "USB controllers" msgstr "Controlere USB" #: harddrake/data.pm:137 #, c-format msgid "USB ports" msgstr "Porturi USB" #: harddrake/data.pm:146 #, c-format msgid "SMBus controllers" msgstr "Controlere SMBus" #: harddrake/data.pm:155 #, c-format msgid "Bridges and system controllers" msgstr "Punți și controlere de sistem" #: harddrake/data.pm:167 #, c-format msgid "Floppy" msgstr "Unitate de dischetă" #: harddrake/data.pm:177 #, c-format msgid "Zip" msgstr "Unitate ZIP" #: harddrake/data.pm:193 #, c-format msgid "Hard Disk" msgstr "Disc dur" #: harddrake/data.pm:203 #, c-format msgid "USB Mass Storage Devices" msgstr "Dispozitive de stocare USB" #: harddrake/data.pm:212 #, c-format msgid "CDROM" msgstr "Unitate CD-ROM" #: harddrake/data.pm:222 #, c-format msgid "CD/DVD burners" msgstr "Inscriptoare CD/DVD" #: harddrake/data.pm:232 #, c-format msgid "DVD-ROM" msgstr "Unitate DVD-ROM" #: harddrake/data.pm:242 #, c-format msgid "Tape" msgstr "Unitate de bandă" #: harddrake/data.pm:253 #, c-format msgid "AGP controllers" msgstr "Controlere AGP" #: harddrake/data.pm:262 #, c-format msgid "Videocard" msgstr "Placă video" #: harddrake/data.pm:271 #, c-format msgid "DVB card" msgstr "Placă DVB" #: harddrake/data.pm:279 #, c-format msgid "Tvcard" msgstr "Placă TV" #: harddrake/data.pm:289 #, c-format msgid "Other MultiMedia devices" msgstr "Alte dispozitive multimedia" #: harddrake/data.pm:298 #, c-format msgid "Soundcard" msgstr "Placă de sunet" #: harddrake/data.pm:312 #, c-format msgid "Webcam" msgstr "Videocameră" #: harddrake/data.pm:327 #, c-format msgid "Processors" msgstr "Procesoare" #: harddrake/data.pm:337 #, c-format msgid "ISDN adapters" msgstr "Adaptoare ISDN" #: harddrake/data.pm:348 #, c-format msgid "USB sound devices" msgstr "Dispozitive audio USB" #: harddrake/data.pm:357 #, c-format msgid "Radio cards" msgstr "Plăci radio" #: harddrake/data.pm:366 #, c-format msgid "ATM network cards" msgstr "Plăci de rețea ATM" #: harddrake/data.pm:375 #, c-format msgid "WAN network cards" msgstr "Plăci de rețea WAN" #: harddrake/data.pm:384 #, c-format msgid "Bluetooth devices" msgstr "Dispozitive bluetooth" #: harddrake/data.pm:393 #, c-format msgid "Ethernetcard" msgstr "Plăci de rețea Ethernet" #: harddrake/data.pm:410 #, c-format msgid "Modem" msgstr "Modem" #: harddrake/data.pm:420 #, c-format msgid "ADSL adapters" msgstr "Adaptoare ADSL" #: harddrake/data.pm:432 #, c-format msgid "Memory" msgstr "Memorie" #: harddrake/data.pm:441 #, c-format msgid "Printer" msgstr "Imprimantă" #. -PO: these are joysticks controllers: #: harddrake/data.pm:455 #, c-format msgid "Game port controllers" msgstr "Controlere game port" #: harddrake/data.pm:464 #, c-format msgid "Joystick" msgstr "Joystick" #: harddrake/data.pm:474 #, c-format msgid "Keyboard" msgstr "Tastatură" #: harddrake/data.pm:488 #, c-format msgid "Tablet and touchscreen" msgstr "Tabletă și ecran tactil" #: harddrake/data.pm:497 #, c-format msgid "Mouse" msgstr "Maus" #: harddrake/data.pm:512 #, c-format msgid "Biometry" msgstr "Biometrie" #: harddrake/data.pm:520 #, c-format msgid "UPS" msgstr "UPS" #: harddrake/data.pm:529 #, c-format msgid "Scanner" msgstr "Scaner" #: harddrake/data.pm:540 #, c-format msgid "Unknown/Others" msgstr "Necunoscut/Altele" #: harddrake/data.pm:570 #, c-format msgid "cpu # " msgstr "CPU # " #: harddrake/sound.pm:303 #, c-format msgid "Please Wait... Applying the configuration" msgstr "Așteptați vă rog... Configurare în curs de aplicare" #: harddrake/sound.pm:366 #, c-format msgid "Enable PulseAudio" msgstr "Activează PulseAudio" #: harddrake/sound.pm:370 #, c-format msgid "Enable 5.1 sound with Pulse Audio" msgstr "Activează sunet 5.1 cu Pulse Audio" #: harddrake/sound.pm:375 #, c-format msgid "Enable user switching for audio applications" msgstr "Activează schimbarea utilizatorului pentru aplicațiile audio" #: harddrake/sound.pm:379 #, c-format msgid "Use Glitch-Free mode" msgstr "Utilizează modul Glitch-Free" #: harddrake/sound.pm:385 #, c-format msgid "Reset sound mixer to default values" msgstr "Reinițializează mixerul de sunet cu valorile implicite" #: harddrake/sound.pm:390 #, c-format msgid "Trouble shooting" msgstr "Depanare" #: harddrake/sound.pm:397 #, c-format msgid "No alternative driver" msgstr "Nu există pilot alternativ" #: harddrake/sound.pm:398 #, c-format msgid "" "There's no known OSS/ALSA alternative driver for your sound card (%s) which " "currently uses \"%s\"" msgstr "" "Nu există un pilot OSS/ALSA alternativ cunoscut pentru placa de sunet (%s) " "ce utilizează actualmente „%s”" #: harddrake/sound.pm:405 #, c-format msgid "Sound configuration" msgstr "Configurare sunet" #: harddrake/sound.pm:407 #, c-format msgid "" "Here you can select an alternative driver (either OSS or ALSA) for your " "sound card (%s)." msgstr "" "Aici puteți selecta un pilot alternativ (OSS sau ALSA) pentru placa voastră " "de sunet (%s)." #. -PO: here the first %s is either "OSS" or "ALSA", #. -PO: the second %s is the name of the current driver #. -PO: and the third %s is the name of the default driver #: harddrake/sound.pm:412 #, fuzzy, c-format msgid "" "\n" "\n" "Your card currently uses the %s\"%s\" driver (the default driver for your " "card is \"%s\")" msgstr "" "\n" "\n" "Actualmente placa utilizează pilotul %s%s” (pilotul ei implicit este „%s”)" #: harddrake/sound.pm:414 #, c-format msgid "" "OSS (Open Sound System) was the first sound API. It's an OS independent " "sound API (it's available on most UNIX(tm) systems) but it's a very basic " "and limited API.\n" "What's more, OSS drivers all reinvent the wheel.\n" "\n" "ALSA (Advanced Linux Sound Architecture) is a modularized architecture " "which\n" "supports quite a large range of ISA, USB and PCI cards.\n" "\n" "It also provides a much higher API than OSS.\n" "\n" "To use alsa, one can either use:\n" "- the old compatibility OSS api\n" "- the new ALSA api that provides many enhanced features but requires using " "the ALSA library.\n" msgstr "" "OSS (Open Sound System) a fost primul API de sunet. Este un API independent " "de SO (disponibil pentru majoritatea sistemelor UNIX), dar este un API " "primitiv și limitat.\n" "Mai mult, toți piloții OSS reinventează roata!\n" "\n" "ALSA (Advanced Linux Sound Architecture) este o arhitectură modulară ce \n" "suportă o gamă largă de plăci ISA, USB și PCI.\n" "\n" "De asemenea, oferă un API mult mai avasat decît OSS.\n" "\n" "Pentru a utiliza ALSA, puteți folosi:\n" "- compatibilitatea cu vechiul API OSS\n" "- noul API ALSA, ce oferă multe funcții îmbunătățite, dar necesită " "utilizarea bibliotecii ALSA.\n" #: harddrake/sound.pm:428 harddrake/sound.pm:511 #, c-format msgid "Driver:" msgstr "Pilot:" #: harddrake/sound.pm:442 #, c-format msgid "" "The old \"%s\" driver is blacklisted.\n" "\n" "It has been reported to oops the kernel on unloading.\n" "\n" "The new \"%s\" driver will only be used on next bootstrap." msgstr "" "Vechiul pilot %s se află pe lista neagră.\n" "\n" "Utilizatorii au raportat probleme cu el la oprirea nucleului.\n" "\n" "Noul pilot „%s” va fi utilizat de la viitoarea pornire." #: harddrake/sound.pm:450 #, c-format msgid "No open source driver" msgstr "Nu există pilot cu sursă deschisă" #: harddrake/sound.pm:451 #, c-format msgid "" "There's no free driver for your sound card (%s), but there's a proprietary " "driver at \"%s\"." msgstr "" "Nu există un pilot liber pentru placa voastră de sunet (%s), dar există unul " "proprietar la „%s”." #: harddrake/sound.pm:454 #, c-format msgid "No known driver" msgstr "Nu există pilot cunoscut" #: harddrake/sound.pm:455 #, c-format msgid "There's no known driver for your sound card (%s)" msgstr "Nu există un pilot cunoscut pentru placa de sunet (%s)" #: harddrake/sound.pm:470 #, c-format msgid "Sound trouble shooting" msgstr "Depanare sunet" #. -PO: keep the double empty lines between sections, this is formatted a la LaTeX #: harddrake/sound.pm:473 #, c-format msgid "" "The classic bug sound tester is to run the following commands:\n" "\n" "\n" "- \"lspcidrake -v | fgrep -i AUDIO\" will tell you which driver your card " "uses\n" "by default\n" "\n" "- \"grep sound-slot /etc/modprobe.conf\" will tell you what driver it\n" "currently uses\n" "\n" "- \"/sbin/lsmod\" will enable you to check if its module (driver) is\n" "loaded or not\n" "\n" "- \"/sbin/chkconfig --list sound\" and \"/sbin/chkconfig --list alsa\" will\n" "tell you if sound and alsa services are configured to be run on\n" "initlevel 3\n" "\n" "- \"aumix -q\" will tell you if the sound volume is muted or not\n" "\n" "- \"/sbin/fuser -v /dev/dsp\" will tell which program uses the sound card.\n" msgstr "" "Pentru a testa clasica hibă de sunet, trebuiesc lansate comenzile " "următoare:\n" "\n" "\n" "- „lspcidrake -v | fgrep -i AUDIO” vă va afișa numele pilotului implicit\n" "utilizat de placa de sunet\n" "\n" "- „grep sound-slot /etc/modprobe.conf” va afișa numele pilotului\n" "utilizat actualmente\n" "\n" "- „/sbin/lsmod” vă permite să verificați dacă modulul (pilotului) său\n" "este încărcat sau nu\n" "\n" "- „/sbin/chkconfig --list sound” și „/sbin/chkconfig --list alsa” vor\n" "afișa dacă serviciile sound și alsa sînt configurate să fie lansate în\n" "initlevel 3\n" "\n" "- „aumix -q” va afișa dacă sunetul este tăcut sau nu\n" "\n" "- „/sbin/fuser -v /dev/dsp” va afișa care din programe utilizează placa\n" "de sunet.\n" #: harddrake/sound.pm:500 #, c-format msgid "Let me pick any driver" msgstr "Permite alegerea oricărui pilot" #: harddrake/sound.pm:503 #, c-format msgid "Choosing an arbitrary driver" msgstr "Alegere arbitrară de pilot " #. -PO: keep the double empty lines between sections, this is formatted a la LaTeX #: harddrake/sound.pm:506 #, c-format msgid "" "If you really think that you know which driver is the right one for your " "card\n" "you can pick one in the above list.\n" "\n" "The current driver for your \"%s\" sound card is \"%s\" " msgstr "" "Dacă credeți că știți care este pilotul potrivit pentru placa de sunet,\n" "puteți alege unul din lista de mai sus.\n" "\n" "Pilotul curent al plăcii de sunet „%s” este „%s”" #: harddrake/v4l.pm:12 #, c-format msgid "Auto-detect" msgstr "Auto-detecție" #: harddrake/v4l.pm:97 harddrake/v4l.pm:285 harddrake/v4l.pm:337 #, c-format msgid "Unknown|Generic" msgstr "Necunoscut|Generic" #: harddrake/v4l.pm:130 #, c-format msgid "Unknown|CPH05X (bt878) [many vendors]" msgstr "Necunoscut|CPH05X (bt878) [numeroși producători]" #: harddrake/v4l.pm:131 #, c-format msgid "Unknown|CPH06X (bt878) [many vendors]" msgstr "Necunoscut|CPH06X (bt878) [numeroși producători]" #: harddrake/v4l.pm:475 #, c-format msgid "" "For most modern TV cards, the bttv module of the GNU/Linux kernel just auto-" "detect the rights parameters.\n" "If your card is misdetected, you can force the right tuner and card types " "here. Just select your tv card parameters if needed." msgstr "" "Pentru majoritatea plăcilor TV moderne, modulul bttv din nucleul GNU/Linux " "detectează automat parametrii corecți.\n" "Dacă placa nu vă este detectată, puteți forța aici tipul plăcii și al " "decodorului. Dacă este necesar, selectați si parametrii plăcii TV." #: harddrake/v4l.pm:478 #, c-format msgid "Card model:" msgstr "Modelul plăcii:" #: harddrake/v4l.pm:479 #, c-format msgid "Tuner type:" msgstr "Tipul tunerului: " #: interactive.pm:128 interactive.pm:549 interactive/curses.pm:263 #: interactive/http.pm:103 interactive/http.pm:156 interactive/stdio.pm:39 #: interactive/stdio.pm:148 interactive/stdio.pm:149 mygtk2.pm:847 #: ugtk2.pm:421 ugtk2.pm:519 ugtk2.pm:812 ugtk2.pm:835 #, c-format msgid "Ok" msgstr "OK" #: interactive.pm:228 modules/interactive.pm:72 ugtk2.pm:811 wizards.pm:156 #, c-format msgid "Yes" msgstr "Da" #: interactive.pm:228 modules/interactive.pm:72 ugtk2.pm:811 wizards.pm:156 #, c-format msgid "No" msgstr "Nu" #: interactive.pm:262 #, c-format msgid "Choose a file" msgstr "Alegeți un fișier" #: interactive.pm:387 interactive/gtk.pm:453 #, c-format msgid "Add" msgstr "Adaugă" #: interactive.pm:387 interactive/gtk.pm:453 #, c-format msgid "Modify" msgstr "Modifică" #: interactive.pm:549 interactive/curses.pm:263 ugtk2.pm:519 #, c-format msgid "Finish" msgstr "Finalizare" #: interactive.pm:550 interactive/curses.pm:260 ugtk2.pm:517 #, c-format msgid "Previous" msgstr "Înapoi" #: interactive/curses.pm:556 ugtk2.pm:872 #, c-format msgid "No file chosen" msgstr "Nici un fișier ales" #: interactive/curses.pm:560 ugtk2.pm:876 #, c-format msgid "You have chosen a directory, not a file" msgstr "Ați ales un director, nu un fișier" #: interactive/curses.pm:562 ugtk2.pm:878 #, c-format msgid "No such directory" msgstr "Director inexistent" #: interactive/curses.pm:562 ugtk2.pm:878 #, c-format msgid "No such file" msgstr "Fișier inexistent" #: interactive/gtk.pm:594 #, c-format msgid "Beware, Caps Lock is enabled" msgstr "Atenție, tasta Caps Lock este apăsată" #: interactive/stdio.pm:29 interactive/stdio.pm:154 #, c-format msgid "Bad choice, try again\n" msgstr "Alegere greșită, încercați din nou\n" #: interactive/stdio.pm:30 interactive/stdio.pm:155 #, c-format msgid "Your choice? (default %s) " msgstr "Ce alegeți? (implicit %s) " #: interactive/stdio.pm:54 #, c-format msgid "" "Entries you'll have to fill:\n" "%s" msgstr "" "Intrări pe care trebuie să le completați:\n" "%s" #: interactive/stdio.pm:70 #, c-format msgid "Your choice? (0/1, default `%s') " msgstr "Ce alegeți? (0/1, implicit „%s”) " #: interactive/stdio.pm:97 #, c-format msgid "Button `%s': %s" msgstr "Buton „%s”: %s" #: interactive/stdio.pm:98 #, c-format msgid "Do you want to click on this button?" msgstr "Vreți să apăsați pe acest buton?" #: interactive/stdio.pm:110 #, c-format msgid "Your choice? (default `%s'%s) " msgstr "Ce alegeți? (implicit „%s%s) " #: interactive/stdio.pm:110 #, c-format msgid " enter `void' for void entry" msgstr " introduceți „void” pentru o intrare vidă" #: interactive/stdio.pm:128 #, c-format msgid "=> There are many things to choose from (%s).\n" msgstr "=> Sînt multe lucruri de ales (%s).\n" #: interactive/stdio.pm:131 #, c-format msgid "" "Please choose the first number of the 10-range you wish to edit,\n" "or just hit Enter to proceed.\n" "Your choice? " msgstr "" "Alegeți primul număr din grupul de 10 pe care doriți să-l editați,\n" "sau apăsați „Enter” pentru a continua.\n" "Ce alegeți?" #: interactive/stdio.pm:144 #, c-format msgid "" "=> Notice, a label changed:\n" "%s" msgstr "" "=> Remarcați că un mesaj s-a schimbat:\n" "%s" #: interactive/stdio.pm:151 #, c-format msgid "Re-submit" msgstr "Retrimite" #. -PO: the string "default:LTR" can be translated *ONLY* as "default:LTR" #. -PO: or as "default:RTL", depending if your language is written from #. -PO: left to right, or from right to left; any other string is wrong. #: lang.pm:203 #, c-format msgid "default:LTR" msgstr "default:LTR" #: lang.pm:220 #, c-format msgid "Andorra" msgstr "Andora" #: lang.pm:221 timezone.pm:226 #, c-format msgid "United Arab Emirates" msgstr "Emiratele Arabe Unite" #: lang.pm:222 #, c-format msgid "Afghanistan" msgstr "Afganistan" #: lang.pm:223 #, c-format msgid "Antigua and Barbuda" msgstr "Antigua și Barbuda" #: lang.pm:224 #, c-format msgid "Anguilla" msgstr "Anguilla" #: lang.pm:225 #, c-format msgid "Albania" msgstr "Albania" #: lang.pm:226 #, c-format msgid "Armenia" msgstr "Armenia" #: lang.pm:227 #, c-format msgid "Netherlands Antilles" msgstr "Antilele olandeze" #: lang.pm:228 #, c-format msgid "Angola" msgstr "Angola" #: lang.pm:229 #, c-format msgid "Antarctica" msgstr "Antarctica" #: lang.pm:230 timezone.pm:271 #, c-format msgid "Argentina" msgstr "Argentina" #: lang.pm:231 #, c-format msgid "American Samoa" msgstr "Samoa americană" #: lang.pm:232 mirror.pm:12 timezone.pm:229 #, c-format msgid "Austria" msgstr "Austria" #: lang.pm:233 mirror.pm:11 timezone.pm:267 #, c-format msgid "Australia" msgstr "Australia" #: lang.pm:234 #, c-format msgid "Aruba" msgstr "Aruba" #: lang.pm:235 #, c-format msgid "Azerbaijan" msgstr "Azerbaijan" #: lang.pm:236 #, c-format msgid "Bosnia and Herzegovina" msgstr "Bosnia și Herțegovina" #: lang.pm:237 #, c-format msgid "Barbados" msgstr "Barbados" #: lang.pm:238 timezone.pm:211 #, c-format msgid "Bangladesh" msgstr "Bangladeș" #: lang.pm:239 mirror.pm:13 timezone.pm:231 #, c-format msgid "Belgium" msgstr "Belgia" #: lang.pm:240 #, c-format msgid "Burkina Faso" msgstr "Burkina Faso" #: lang.pm:241 timezone.pm:232 #, c-format msgid "Bulgaria" msgstr "Bulgaria" #: lang.pm:242 #, c-format msgid "Bahrain" msgstr "Bahrain" #: lang.pm:243 #, c-format msgid "Burundi" msgstr "Burundi" #: lang.pm:244 #, c-format msgid "Benin" msgstr "Benin" #: lang.pm:245 #, c-format msgid "Bermuda" msgstr "Bermude" #: lang.pm:246 #, c-format msgid "Brunei Darussalam" msgstr "Brunei Darussalam" #: lang.pm:247 #, c-format msgid "Bolivia" msgstr "Bolivia" #: lang.pm:248 mirror.pm:14 timezone.pm:272 #, c-format msgid "Brazil" msgstr "Brazilia" #: lang.pm:249 #, c-format msgid "Bahamas" msgstr "Bahamas" #: lang.pm:250 #, c-format msgid "Bhutan" msgstr "Bhutan" #: lang.pm:251 #, c-format msgid "Bouvet Island" msgstr "Insula Bouvet" #: lang.pm:252 #, c-format msgid "Botswana" msgstr "Botswana" #: lang.pm:253 timezone.pm:230 #, c-format msgid "Belarus" msgstr "Belarus" #: lang.pm:254 #, c-format msgid "Belize" msgstr "Belize" #: lang.pm:255 mirror.pm:15 timezone.pm:261 #, c-format msgid "Canada" msgstr "Canada" #: lang.pm:256 #, c-format msgid "Cocos (Keeling) Islands" msgstr "Insulele Cocos (Keeling)" #: lang.pm:257 #, c-format msgid "Congo (Kinshasa)" msgstr "Congo (Kinshasa)" #: lang.pm:258 #, c-format msgid "Central African Republic" msgstr "Republica Centr-Africană" #: lang.pm:259 #, c-format msgid "Congo (Brazzaville)" msgstr "Congo (Brazzaville)" #: lang.pm:260 mirror.pm:39 timezone.pm:255 #, c-format msgid "Switzerland" msgstr "Elveția" #: lang.pm:261 #, c-format msgid "Cote d'Ivoire" msgstr "Coasta de fildeș" #: lang.pm:262 #, c-format msgid "Cook Islands" msgstr "Insulele Cook" #: lang.pm:263 timezone.pm:273 #, c-format msgid "Chile" msgstr "Cile" #: lang.pm:264 #, c-format msgid "Cameroon" msgstr "Camerun" #: lang.pm:265 timezone.pm:212 #, c-format msgid "China" msgstr "China" #: lang.pm:266 #, c-format msgid "Colombia" msgstr "Columbia" #: lang.pm:267 mirror.pm:16 #, c-format msgid "Costa Rica" msgstr "Costa Rica" #: lang.pm:268 #, c-format msgid "Serbia & Montenegro" msgstr "Serbia și Muntenegru" #: lang.pm:269 #, c-format msgid "Cuba" msgstr "Cuba" #: lang.pm:270 #, c-format msgid "Cape Verde" msgstr "Cape Verde" #: lang.pm:271 #, c-format msgid "Christmas Island" msgstr "Insulele Crăciun" #: lang.pm:272 #, c-format msgid "Cyprus" msgstr "Cipru" #: lang.pm:273 mirror.pm:17 timezone.pm:233 #, c-format msgid "Czech Republic" msgstr "Republica Cehă" #: lang.pm:274 mirror.pm:22 timezone.pm:238 #, c-format msgid "Germany" msgstr "Germania" #: lang.pm:275 #, c-format msgid "Djibouti" msgstr "Djibuti" #: lang.pm:276 mirror.pm:18 timezone.pm:234 #, c-format msgid "Denmark" msgstr "Danemarca" #: lang.pm:277 #, c-format msgid "Dominica" msgstr "Dominica" #: lang.pm:278 #, c-format msgid "Dominican Republic" msgstr "Republica Dominicană" #: lang.pm:279 #, c-format msgid "Algeria" msgstr "Algeria" #: lang.pm:280 #, c-format msgid "Ecuador" msgstr "Ecuador" #: lang.pm:281 mirror.pm:19 timezone.pm:235 #, c-format msgid "Estonia" msgstr "Estonia" #: lang.pm:282 #, c-format msgid "Egypt" msgstr "Egipt" #: lang.pm:283 #, c-format msgid "Western Sahara" msgstr "Sahara de vest" #: lang.pm:284 #, c-format msgid "Eritrea" msgstr "Eritreea" #: lang.pm:285 mirror.pm:37 timezone.pm:253 #, c-format msgid "Spain" msgstr "Spania" #: lang.pm:286 #, c-format msgid "Ethiopia" msgstr "Etiopia" #: lang.pm:287 mirror.pm:20 timezone.pm:236 #, c-format msgid "Finland" msgstr "Finlanda" #: lang.pm:288 #, c-format msgid "Fiji" msgstr "Fiji" #: lang.pm:289 #, c-format msgid "Falkland Islands (Malvinas)" msgstr "Insulele Falkland (Malvine)" #: lang.pm:290 #, c-format msgid "Micronesia" msgstr "Micronezia" #: lang.pm:291 #, c-format msgid "Faroe Islands" msgstr "Insulele Feroe" #: lang.pm:292 mirror.pm:21 timezone.pm:237 #, c-format msgid "France" msgstr "Franța" #: lang.pm:293 #, c-format msgid "Gabon" msgstr "Gabon" #: lang.pm:294 timezone.pm:257 #, c-format msgid "United Kingdom" msgstr "Marea Britanie" #: lang.pm:295 #, c-format msgid "Grenada" msgstr "Grenada" #: lang.pm:296 #, c-format msgid "Georgia" msgstr "Georgia" #: lang.pm:297 #, c-format msgid "French Guiana" msgstr "Guyana franceză" #: lang.pm:298 #, c-format msgid "Ghana" msgstr "Ghana" #: lang.pm:299 #, c-format msgid "Gibraltar" msgstr "Gibraltar" #: lang.pm:300 #, c-format msgid "Greenland" msgstr "Groenlanda" #: lang.pm:301 #, c-format msgid "Gambia" msgstr "Gambia" #: lang.pm:302 #, c-format msgid "Guinea" msgstr "Guineea" #: lang.pm:303 #, c-format msgid "Guadeloupe" msgstr "Guadeloupe" #: lang.pm:304 #, c-format msgid "Equatorial Guinea" msgstr "Guineea ecuatorială" #: lang.pm:305 mirror.pm:23 timezone.pm:239 #, c-format msgid "Greece" msgstr "Grecia" #: lang.pm:306 #, c-format msgid "South Georgia and the South Sandwich Islands" msgstr "Insulele South Georgia și South Sandwich" #: lang.pm:307 timezone.pm:262 #, c-format msgid "Guatemala" msgstr "Guatemala" #: lang.pm:308 #, c-format msgid "Guam" msgstr "Guam" #: lang.pm:309 #, c-format msgid "Guinea-Bissau" msgstr "Guineea-Bissau" #: lang.pm:310 #, c-format msgid "Guyana" msgstr "Guyana" #: lang.pm:311 #, c-format msgid "Hong Kong SAR (China)" msgstr "Hong Kong SAR (China)" #: lang.pm:312 #, c-format msgid "Heard and McDonald Islands" msgstr "Insulele Heard și McDonald" #: lang.pm:313 #, c-format msgid "Honduras" msgstr "Honduras" #: lang.pm:314 #, c-format msgid "Croatia" msgstr "Croația" #: lang.pm:315 #, c-format msgid "Haiti" msgstr "Haiti" #: lang.pm:316 mirror.pm:24 timezone.pm:240 #, c-format msgid "Hungary" msgstr "Ungaria" #: lang.pm:317 timezone.pm:215 #, c-format msgid "Indonesia" msgstr "Indonezia" #: lang.pm:318 mirror.pm:25 timezone.pm:241 #, c-format msgid "Ireland" msgstr "Irlanda" #: lang.pm:319 mirror.pm:26 timezone.pm:217 #, c-format msgid "Israel" msgstr "Israel" #: lang.pm:320 timezone.pm:214 #, c-format msgid "India" msgstr "India" #: lang.pm:321 #, c-format msgid "British Indian Ocean Territory" msgstr "Teritoriul britanic din oceanul Indian" #: lang.pm:322 #, c-format msgid "Iraq" msgstr "Irak" #: lang.pm:323 timezone.pm:216 #, c-format msgid "Iran" msgstr "Iran" #: lang.pm:324 #, c-format msgid "Iceland" msgstr "Islanda" #: lang.pm:325 mirror.pm:27 timezone.pm:242 #, c-format msgid "Italy" msgstr "Italia" #: lang.pm:326 #, c-format msgid "Jamaica" msgstr "Jamaica" #: lang.pm:327 #, c-format msgid "Jordan" msgstr "Iordania" #: lang.pm:328 mirror.pm:28 timezone.pm:218 #, c-format msgid "Japan" msgstr "Japonia" #: lang.pm:329 #, c-format msgid "Kenya" msgstr "Kenya" #: lang.pm:330 #, c-format msgid "Kyrgyzstan" msgstr "Kyrgyzstan" #: lang.pm:331 #, c-format msgid "Cambodia" msgstr "Cambogia" #: lang.pm:332 #, c-format msgid "Kiribati" msgstr "Kiribati" #: lang.pm:333 #, c-format msgid "Comoros" msgstr "Comore" #: lang.pm:334 #, c-format msgid "Saint Kitts and Nevis" msgstr "Saint Kitts și Nevis" #: lang.pm:335 #, c-format msgid "Korea (North)" msgstr "Coreea de nord" #: lang.pm:336 timezone.pm:219 #, c-format msgid "Korea" msgstr "Coreea" #: lang.pm:337 #, c-format msgid "Kuwait" msgstr "Kuveit" #: lang.pm:338 #, c-format msgid "Cayman Islands" msgstr "Insulele Cayman" #: lang.pm:339 #, c-format msgid "Kazakhstan" msgstr "Kazakstan" #: lang.pm:340 #, c-format msgid "Laos" msgstr "Laos" #: lang.pm:341 #, c-format msgid "Lebanon" msgstr "Liban" #: lang.pm:342 #, c-format msgid "Saint Lucia" msgstr "Sfînta Lucia" #: lang.pm:343 #, c-format msgid "Liechtenstein" msgstr "Liechtenstein" #: lang.pm:344 #, c-format msgid "Sri Lanka" msgstr "Sri Lanka" #: lang.pm:345 #, c-format msgid "Liberia" msgstr "Liberia" #: lang.pm:346 #, c-format msgid "Lesotho" msgstr "Lesotho" #: lang.pm:347 timezone.pm:243 #, c-format msgid "Lithuania" msgstr "Lituania" #: lang.pm:348 timezone.pm:244 #, c-format msgid "Luxembourg" msgstr "Luxemburg" #: lang.pm:349 #, c-format msgid "Latvia" msgstr "Letonia" #: lang.pm:350 #, c-format msgid "Libya" msgstr "Libia" #: lang.pm:351 #, c-format msgid "Morocco" msgstr "Maroc" #: lang.pm:352 #, c-format msgid "Monaco" msgstr "Monaco" #: lang.pm:353 #, c-format msgid "Moldova" msgstr "Moldova" #: lang.pm:354 #, c-format msgid "Madagascar" msgstr "Madagascar" #: lang.pm:355 #, c-format msgid "Marshall Islands" msgstr "Insulele Marshall" #: lang.pm:356 #, c-format msgid "Macedonia" msgstr "Macedonia" #: lang.pm:357 #, c-format msgid "Mali" msgstr "Mali" #: lang.pm:358 #, c-format msgid "Myanmar" msgstr "Myanmar" #: lang.pm:359 #, c-format msgid "Mongolia" msgstr "Mongolia" #: lang.pm:360 #, c-format msgid "Northern Mariana Islands" msgstr "Insulele Mariane de nord" #: lang.pm:361 #, c-format msgid "Martinique" msgstr "Martinica" #: lang.pm:362 #, c-format msgid "Mauritania" msgstr "Mauritania" #: lang.pm:363 #, c-format msgid "Montserrat" msgstr "Montserrat" #: lang.pm:364 #, c-format msgid "Malta" msgstr "Malta" #: lang.pm:365 #, c-format msgid "Mauritius" msgstr "Maurițius" #: lang.pm:366 #, c-format msgid "Maldives" msgstr "Maldive" #: lang.pm:367 #, c-format msgid "Malawi" msgstr "Malawi" #: lang.pm:368 timezone.pm:263 #, c-format msgid "Mexico" msgstr "Mexic" #: lang.pm:369 timezone.pm:220 #, c-format msgid "Malaysia" msgstr "Malaezia" #: lang.pm:370 #, c-format msgid "Mozambique" msgstr "Mozambic" #: lang.pm:371 #, c-format msgid "Namibia" msgstr "Namibia" #: lang.pm:372 #, c-format msgid "New Caledonia" msgstr "Noua Caledonie" #: lang.pm:373 #, c-format msgid "Niger" msgstr "Niger" #: lang.pm:374 #, c-format msgid "Norfolk Island" msgstr "Insulele Norfolk" #: lang.pm:375 #, c-format msgid "Nigeria" msgstr "Nigeria" #: lang.pm:376 #, c-format msgid "Nicaragua" msgstr "Nicaragua" #: lang.pm:377 mirror.pm:29 timezone.pm:245 #, c-format msgid "Netherlands" msgstr "Olanda" #: lang.pm:378 mirror.pm:31 timezone.pm:246 #, c-format msgid "Norway" msgstr "Norvegia" #: lang.pm:379 #, c-format msgid "Nepal" msgstr "Nepal" #: lang.pm:380 #, c-format msgid "Nauru" msgstr "Nauru" #: lang.pm:381 #, c-format msgid "Niue" msgstr "Niue" #: lang.pm:382 mirror.pm:30 timezone.pm:268 #, c-format msgid "New Zealand" msgstr "Noua Zeelandă" #: lang.pm:383 #, c-format msgid "Oman" msgstr "Oman" #: lang.pm:384 #, c-format msgid "Panama" msgstr "Panama" #: lang.pm:385 #, c-format msgid "Peru" msgstr "Peru" #: lang.pm:386 #, c-format msgid "French Polynesia" msgstr "Polinezia franceză" #: lang.pm:387 #, c-format msgid "Papua New Guinea" msgstr "Papua Noua Guinee" #: lang.pm:388 timezone.pm:221 #, c-format msgid "Philippines" msgstr "Filipine" #: lang.pm:389 #, c-format msgid "Pakistan" msgstr "Pakistan" #: lang.pm:390 mirror.pm:32 timezone.pm:247 #, c-format msgid "Poland" msgstr "Polonia" #: lang.pm:391 #, c-format msgid "Saint Pierre and Miquelon" msgstr "Sfîntu Petru și Miquelon" #: lang.pm:392 #, c-format msgid "Pitcairn" msgstr "Pitcairn" #: lang.pm:393 #, c-format msgid "Puerto Rico" msgstr "Puerto Rico" #: lang.pm:394 #, c-format msgid "Palestine" msgstr "Palestina" #: lang.pm:395 mirror.pm:33 timezone.pm:248 #, c-format msgid "Portugal" msgstr "Portugalia" #: lang.pm:396 #, c-format msgid "Paraguay" msgstr "Paraguay" #: lang.pm:397 #, c-format msgid "Palau" msgstr "Palau" #: lang.pm:398 #, c-format msgid "Qatar" msgstr "Qatar" #: lang.pm:399 #, c-format msgid "Reunion" msgstr "Reunion" #: lang.pm:400 timezone.pm:249 #, c-format msgid "Romania" msgstr "România" #: lang.pm:401 mirror.pm:34 #, c-format msgid "Russia" msgstr "Rusia" #: lang.pm:402 #, c-format msgid "Rwanda" msgstr "Ruanda" #: lang.pm:403 #, c-format msgid "Saudi Arabia" msgstr "Arabia Saudită" #: lang.pm:404 #, c-format msgid "Solomon Islands" msgstr "Insulele Solomon" #: lang.pm:405 #, c-format msgid "Seychelles" msgstr "Seychelles" #: lang.pm:406 #, c-format msgid "Sudan" msgstr "Sudan" #: lang.pm:407 mirror.pm:38 timezone.pm:254 #, c-format msgid "Sweden" msgstr "Suedia" #: lang.pm:408 timezone.pm:222 #, c-format msgid "Singapore" msgstr "Singapore" #: lang.pm:409 #, c-format msgid "Saint Helena" msgstr "Sfînta Elena" #: lang.pm:410 timezone.pm:252 #, c-format msgid "Slovenia" msgstr "Slovenia" #: lang.pm:411 #, c-format msgid "Svalbard and Jan Mayen Islands" msgstr "Insulele Svalbard și Jan Mayen" #: lang.pm:412 mirror.pm:35 timezone.pm:251 #, c-format msgid "Slovakia" msgstr "Slovacia" #: lang.pm:413 #, c-format msgid "Sierra Leone" msgstr "Sierra Leone" #: lang.pm:414 #, c-format msgid "San Marino" msgstr "San Marino" #: lang.pm:415 #, c-format msgid "Senegal" msgstr "Senegal" #: lang.pm:416 #, c-format msgid "Somalia" msgstr "Somalia" #: lang.pm:417 #, c-format msgid "Suriname" msgstr "Surinam" #: lang.pm:418 #, c-format msgid "Sao Tome and Principe" msgstr "Sao Tome și Principe" #: lang.pm:419 #, c-format msgid "El Salvador" msgstr "El Salvador" #: lang.pm:420 #, c-format msgid "Syria" msgstr "Siria" #: lang.pm:421 #, c-format msgid "Swaziland" msgstr "Swaziland" #: lang.pm:422 #, c-format msgid "Turks and Caicos Islands" msgstr "Insulele Turks și Caico" #: lang.pm:423 #, c-format msgid "Chad" msgstr "Ciad" #: lang.pm:424 #, c-format msgid "French Southern Territories" msgstr "Teritoriile franceze de sud" #: lang.pm:425 #, c-format msgid "Togo" msgstr "Togo" #: lang.pm:426 mirror.pm:41 timezone.pm:224 #, c-format msgid "Thailand" msgstr "Tailanda" #: lang.pm:427 #, c-format msgid "Tajikistan" msgstr "Tadjikistan" #: lang.pm:428 #, c-format msgid "Tokelau" msgstr "Tokelau" #: lang.pm:429 #, c-format msgid "East Timor" msgstr "Timorul de est" #: lang.pm:430 #, c-format msgid "Turkmenistan" msgstr "Turkmenistan" #: lang.pm:431 #, c-format msgid "Tunisia" msgstr "Tunisia" #: lang.pm:432 #, c-format msgid "Tonga" msgstr "Tonga" #: lang.pm:433 timezone.pm:225 #, c-format msgid "Turkey" msgstr "Turcia" #: lang.pm:434 #, c-format msgid "Trinidad and Tobago" msgstr "Trinidad și Tobago" #: lang.pm:435 #, c-format msgid "Tuvalu" msgstr "Tuvalu" #: lang.pm:436 mirror.pm:40 timezone.pm:223 #, c-format msgid "Taiwan" msgstr "Taiwan" #: lang.pm:437 timezone.pm:208 #, c-format msgid "Tanzania" msgstr "Tanzania" #: lang.pm:438 timezone.pm:256 #, c-format msgid "Ukraine" msgstr "Ucraina" #: lang.pm:439 #, c-format msgid "Uganda" msgstr "Uganda" #: lang.pm:440 #, c-format msgid "United States Minor Outlying Islands" msgstr "Insulele minore de pe lîngă Statele Unite" #: lang.pm:441 mirror.pm:42 timezone.pm:264 #, c-format msgid "United States" msgstr "Statele Unite" #: lang.pm:442 #, c-format msgid "Uruguay" msgstr "Uruguay" #: lang.pm:443 #, c-format msgid "Uzbekistan" msgstr "Uzbekistan" #: lang.pm:444 #, c-format msgid "Vatican" msgstr "Vatican" #: lang.pm:445 #, c-format msgid "Saint Vincent and the Grenadines" msgstr "Sfîntul Vincențiu și Grenadinele" #: lang.pm:446 #, c-format msgid "Venezuela" msgstr "Venezuela" #: lang.pm:447 #, c-format msgid "Virgin Islands (British)" msgstr "Insulele Virgine (Brit.)" #: lang.pm:448 #, c-format msgid "Virgin Islands (U.S.)" msgstr "Insulele Virgine (SUA)" #: lang.pm:449 #, c-format msgid "Vietnam" msgstr "Vietnam" #: lang.pm:450 #, c-format msgid "Vanuatu" msgstr "Vanuatu" #: lang.pm:451 #, c-format msgid "Wallis and Futuna" msgstr "Insulele Wallis și Futuna" #: lang.pm:452 #, c-format msgid "Samoa" msgstr "Samoa" #: lang.pm:453 #, c-format msgid "Yemen" msgstr "Yemen" #: lang.pm:454 #, c-format msgid "Mayotte" msgstr "Mayotte" #: lang.pm:455 mirror.pm:36 timezone.pm:207 #, c-format msgid "South Africa" msgstr "Africa de sud" #: lang.pm:456 #, c-format msgid "Zambia" msgstr "Zambia" #: lang.pm:457 #, c-format msgid "Zimbabwe" msgstr "Zimbabwe" #: lang.pm:1216 #, c-format msgid "Welcome to %s" msgstr "Bun venit pe %s" #: lvm.pm:86 #, c-format msgid "Moving used physical extents to other physical volumes failed" msgstr "" "Deplasarea unităților fizice se stocare către alte volume fizice a eșuat" #: lvm.pm:143 #, c-format msgid "Physical volume %s is still in use" msgstr "Volumul fizic %s încă este utilizat" #: lvm.pm:153 #, c-format msgid "Remove the logical volumes first\n" msgstr "Ștergeți întîi volumele logice\n" #: lvm.pm:186 #, c-format msgid "The bootloader can't handle /boot on multiple physical volumes" msgstr "" "Încărcătorul de sistem nu poate gestiona partiția /boot repartizată pe mai " "multe volume fizice" #. -PO: keep the double empty lines between sections, this is formatted a la LaTeX #: messages.pm:11 #, fuzzy, c-format msgid "" "Introduction\n" "\n" "The operating system and the different components available in the Mageia " "Linux distribution \n" "shall be called the \"Software Products\" hereafter. The Software Products " "include, but are not \n" "restricted to, the set of programs, methods, rules and documentation related " "to the operating \n" "system and the different components of the Mageia Linux distribution, and " "any applications \n" "distributed with these products provided by Mageia's licensors or " "suppliers.\n" "\n" "\n" "1. License Agreement\n" "\n" "Please read this document carefully. This document is a license agreement " "between you and \n" "Mageia which applies to the Software Products.\n" "By installing, duplicating or using any of the Software Products in any " "manner, you explicitly \n" "accept and fully agree to conform to the terms and conditions of this " "License. \n" "If you disagree with any portion of the License, you are not allowed to " "install, duplicate or use \n" "the Software Products. \n" "Any attempt to install, duplicate or use the Software Products in a manner " "which does not comply \n" "with the terms and conditions of this License is void and will terminate " "your rights under this \n" "License. Upon termination of the License, you must immediately destroy all " "copies of the \n" "Software Products.\n" "\n" "\n" "2. Limited Warranty\n" "\n" "The Software Products and attached documentation are provided \"as is\", " "with no warranty, to the \n" "extent permitted by law.\n" "Neither Mageia nor its licensors or suppliers will, in any circumstances and " "to the extent \n" "permitted by law, be liable for any special, incidental, direct or indirect " "damages whatsoever \n" "(including without limitation damages for loss of business, interruption of " "business, financial \n" "loss, legal fees and penalties resulting from a court judgment, or any other " "consequential loss) \n" "arising out of the use or inability to use the Software Products, even if " "Mageia or its \n" "licensors or suppliers have been advised of the possibility or occurrence of " "such damages.\n" "\n" "LIMITED LIABILITY LINKED TO POSSESSING OR USING PROHIBITED SOFTWARE IN SOME " "COUNTRIES\n" "\n" "To the extent permitted by law, neither Mageia nor its licensors, suppliers " "or\n" "distributors will, in any circumstances, be liable for any special, " "incidental, direct or indirect \n" "damages whatsoever (including without limitation damages for loss of " "business, interruption of \n" "business, financial loss, legal fees and penalties resulting from a court " "judgment, or any \n" "other consequential loss) arising out of the possession and use of software " "components or \n" "arising out of downloading software components from one of Mageia Linux " "sites which are \n" "prohibited or restricted in some countries by local laws.\n" "This limited liability applies to, but is not restricted to, the strong " "cryptography components \n" "included in the Software Products.\n" "However, because some jurisdictions do not allow the exclusion or limitation " "or liability for \n" "consequential or incidental damages, the above limitation may not apply to " "you. \n" "\n" "\n" "3. The GPL License and Related Licenses\n" "\n" "The Software Products consist of components created by different persons or " "entities.\n" "Most of these licenses allow you to use, duplicate, adapt or redistribute " "the components which \n" "they cover. Please read carefully the terms and conditions of the license " "agreement for each component \n" "before using any component. Any question on a component license should be " "addressed to the component \n" "licensor or supplier and not to Mageia.\n" "The programs developed by Mageia are governed by the GPL License. " "Documentation written \n" "by Mageia is governed by a specific license. Please refer to the " "documentation for \n" "further details.\n" "\n" "\n" "4. Intellectual Property Rights\n" "\n" "All rights to the components of the Software Products belong to their " "respective authors and are \n" "protected by intellectual property and copyright laws applicable to software " "programs.\n" "Mageia and its suppliers and licensors reserves their rights to modify or " "adapt the Software \n" "Products, as a whole or in parts, by all means and for all purposes.\n" "\"Mageia\", \"Mageia Linux\" and associated logos are trademarks of " "Mageia \n" "\n" "\n" "5. Governing Laws \n" "\n" "If any portion of this agreement is held void, illegal or inapplicable by a " "court judgment, this \n" "portion is excluded from this contract. You remain bound by the other " "applicable sections of the \n" "agreement.\n" "The terms and conditions of this License are governed by the Laws of " "France.\n" "All disputes on the terms of this license will preferably be settled out of " "court. As a last \n" "resort, the dispute will be referred to the appropriate Courts of Law of " "Paris - France.\n" "For any question on this document, please contact Mageia." msgstr "" "Introducere\n" "\n" "Sistemul de operare și diferitele componente disponibile în distribuția " "Mageia Linux vor fi \n" "denumite „Produse Informatice” în cele ce urmează. Produsele informatice " "includ, dar fără limitare \n" "la, un set de programe, metode, reguli si documentatia relativă la sistemele " "de operare și a \n" "diferitelor componente ale distribuției Mageia Linux, precum și oricare din " "aplicațiile produselor \n" "distribuite cu produsele furnizorilor Mageia.\n" "\n" "1. Contract de licență\n" "\n" "Vă rugăm să citiți cu atenție acest document. Acest document este un " "contract de licență între \n" "dumneavoastră (persoană fizică sau juridică) și Mageia SA, care se aplică în " "cazul produselor \n" "informatice. Prin instalarea, duplicarea sau utilizarea oricăruia din " "produsele informatice, indiferent \n" "de maniera aleasă, atestă că ați luat la cunoștință în mod explicit și că " "acceptați să vă conformați \n" "în deplin de acord cu termenii și condițiile acestui contract de licență.\n" "Dacă nu sînteți de acord cu oricare porțiune de licență, nu sînteți " "autorizat să instalați, duplicați sau \n" "să folosiți acest produs.\n" "Contractul de licență va fi reziliat în mod automat și fără preaviz în cazul " "în care nu vă conformați \n" "dispozițiilor prezentului contract.\n" "În caz de reziliere sînteți obligat să distrugeți imediat toate exemplarele, " "toate copiile tuturor \n" "programelor și toată documentația ce constituie sistemul de operare și " "diversele componente \n" "disponibile cu distribuția Mageia Linux.\n" "\n" "\n" "2. Garanție și limite de garanție\n" "\n" "Produsele informatice și documentația care le însoțește sînt oferite „așa " "cum sînt”, fără nici o \n" "garanție, în măsura permisă de lege.\n" "Nici Mageia SA și nici furnizorii săi, în nici un caz nu vor fi " "responsabili, și în măsura permisă de \n" "lege, pentru daunele speciale, directe sau indirecte, sau incidentele " "(incluzînd fără limitări, daune \n" "pentru pierderi de afaceri, întrerupere de afaceri, pierderi financiare, de " "taxele legale și de \n" "sancțiunile care pot rezulta dintr-o hotărîre judecătorească, sau orice alte " "pierderi) care decurg \n" "din utilizarea sau incapacitatea de utilizare a produselor sale, chiar dacă " "Mageia SA sau furnizori \n" "au fost informați de apariția sau de posibilitatea unor astfel de daune.\n" "\n" "AVERTISMENT CU PRIVIRE LA DEȚINEREA SAU UTILIZAREA PROGRAMELOR INTERZISE ÎN " "ANUMITE ȚĂRI\n" "\n" "În măsura permisă de lege, nici Mageia SA, nici furnizorii sau " "distribuitorii săi nu vor fi, în nici un caz, \n" "responsabili pentru orice un fel de daune speciale, incidente, directe sau " "indirecte (incluzînd fără \n" "limitări daunele pentru pierderi de afaceri, întrerupere de afaceri, " "pierderi financiare, taxe legale \n" "și de sancțiuni rezultate dintr-o hotărîre judecătorească, sau orice alte " "pierderi) care decurg din \n" "deținerea și utilizarea programelor sau a componentelor descărcate de pe " "unul din siturile Mageia \n" "Linux, care sînt interzise sau restricționate de legile locale în unele " "țări.\n" "Această răspundere limitată se aplică, dar nu se limitează la, și niveluli " "de criptare inclus în produsele \n" "sale informatice.\n" "Cu toate acestea, deoarece unele jurisdicții nu permit excluderea, sau " "limitarea, sau răspunderea pentru \n" "consecințele sau daunele incidentale, limitarea de mai sus ar putea să nu se " "aplice în cazul \n" "dumneavoastră. \n" "%s\n" "\n" "3. Licența GPL și licențele asociate\n" "\n" "Produsele informatice sînt alcătuite din componente create de diferite " "persoane sau entități. %s\n" "Cele mai multe dintre aceste licențe vă permit să utilizați, duplicați, " "adaptați sau să redistribuiți \n" "componentele care pe care le acoperă. Vă rugăm să citiți cu atenție termenii " "și condițiile din contractul \n" "de licență pentru fiecare componentă înainte de a-o utiliza. Orice întrebare " "cu privire la licența unei \n" "componente ar trebui să fie abordată cu autorul său (sau cu reprezentanții " "săi) și nu cu Mageia.\n" "Programele dezvoltate de Mageia SA sînt reglementate de licența GPL. " "Documentația scrisă \n" "de Mageia SA este reglementată de o licență specifică. Vă rugăm să " "consultați documentația pentru \n" "mai multe detalii.\n" "\n" "\n" "4. Drepturi de proprietate intelectuală\n" "\n" "Toate dreprurile asupra componentelor produselor informatice aparțin " "autorilor respectivi și sînt \n" "protejate de drepturile proprietății intelectuale ce se aplică produselor " "informatice.\n" "Mageia SA și furnizorii săi își rezervă dreptul de a modifica sau adapta " "produsele lor informatice,\n" "parțial sau în totalitate, prin orice mijloace și în orice scop.\n" "Mărcile „Mageia” și „Mageia Linux” cît și siglele asociate sînt mărci " "înregistrate ale Mageia SA.\n" "\n" "\n" "5. Dispoziții diverse\n" "\n" "Dacă o dispoziție din acest contract de licență este declarată nulă și " "neavenită, ilegală sau nu se \n" "poate aplica de o hotărîre a unei instanțe, această dispoziție va fi exclusă " "din acest contract.\n" "Veți avea obligația de a respecta celelalte secțiuni ale contractului.\n" "Termenii și condițiile acestei licențe sînt reglementate de legislația " "franceză.\n" "Toate disputele privind termenii aceastei licențe vor fi rezolvate, de " "preferință, în mod amiabil.\n" "În caz de dezacord, litigiul va fi referit Instanței judecătorești din Paris " "- Franța.\n" "Pentru orice întrebare cu privire la acest document, vă rugăm să contactați " "Mageia SA." #: messages.pm:93 #, c-format msgid "" "Warning: Free Software may not necessarily be patent free, and some Free\n" "Software included may be covered by patents in your country. For example, " "the\n" "MP3 decoders included may require a licence for further usage (see\n" "http://www.mp3licensing.com for more details). If you are unsure if a " "patent\n" "may be applicable to you, check your local laws." msgstr "" "Avertisment: nu toate programele libere (Free Software) sînt lipsite de " "licențe,\n" "iar unele dintre ele pot fi chiar protejate de brevete în țara voastră. De " "exemplu,\n" "decodoarele MP3 incluse, pot necesita o licență pentru o utilizare mai " "avansată\n" "(vizitați http://www.mp3licensing.com pentru mai multe detalii). În caz de\n" "incertitudine, vă invităm să verificați legile din țara voastră." #. -PO: keep the double empty lines between sections, this is formatted a la LaTeX #: messages.pm:102 #, c-format msgid "" "Congratulations, installation is complete.\n" "Remove the boot media and press Enter to reboot.\n" "\n" "\n" "For information on fixes which are available for this release of Mageia " "Linux,\n" "consult the Errata available from:\n" "\n" "\n" "%s\n" "\n" "\n" "Information on configuring your system is available in the post\n" "install chapter of the Official Mageia Linux User's Guide." msgstr "" "Felicitări, instalarea este completă.\n" "Îndepărtați mediul de pornire și apăsați „Enter” pentru repornire.\n" "\n" "\n" "Pentru informații despre corecțiile disponibile pentru această versiune de " "Mageia Linux,\n" "consultați erata disponibilă la:\n" "\n" "\n" "%s\n" "\n" "\n" "Informații despre configurarea sistemului sînt disponibile în capitolul\n" "referitor la post instalare din ghidul oficial al utilizatorilor Mageia " "Linux." #: modules/interactive.pm:19 #, c-format msgid "This driver has no configuration parameter!" msgstr "Acest pilot nu are nici un parametru de configurare!" #: modules/interactive.pm:22 #, c-format msgid "Module configuration" msgstr "Configurare modul" #: modules/interactive.pm:22 #, c-format msgid "You can configure each parameter of the module here." msgstr "Aici puteți configura fiecare parametru al modulului." #: modules/interactive.pm:64 #, c-format msgid "Found %s interfaces" msgstr "S-au găsit %s interfețe" #: modules/interactive.pm:65 #, c-format msgid "Do you have another one?" msgstr "Mai aveți și altele?" #: modules/interactive.pm:66 #, c-format msgid "Do you have any %s interfaces?" msgstr "Dispuneți de interfețe %s?" #: modules/interactive.pm:72 #, c-format msgid "See hardware info" msgstr "Vedeți informațiile despre componenta materială" #: modules/interactive.pm:83 #, c-format msgid "Installing driver for USB controller" msgstr "Se instalează pilotul pentru controlerul USB" #: modules/interactive.pm:84 #, c-format msgid "Installing driver for firewire controller %s" msgstr "Se instalează pilotul pentru controlerul Firewire %s" #: modules/interactive.pm:85 #, c-format msgid "Installing driver for hard disk drive controller %s" msgstr "Se instalează pilotul pentru controlerul de disc %s" #: modules/interactive.pm:86 #, c-format msgid "Installing driver for ethernet controller %s" msgstr "Se instalează pilotul pentru controlerul Ethernet %s" #. -PO: the first %s is the card type (scsi, network, sound,...) #. -PO: the second is the vendor+model name #: modules/interactive.pm:97 #, c-format msgid "Installing driver for %s card %s" msgstr "Se instalează pilotul pentru placa %s - %s" #: modules/interactive.pm:100 #, c-format msgid "Configuring Hardware" msgstr "Se configurează componentele materiale" #: modules/interactive.pm:111 #, c-format msgid "" "You may now provide options to module %s.\n" "Note that any address should be entered with the prefix 0x like '0x123'" msgstr "" "Acum puteți furniza opțiunile pentru modulul %s.\n" "Rețineți că orice adresă trebuie introdusă cu prefixul 0x ca în „0x123”" #: modules/interactive.pm:117 #, c-format msgid "" "You may now provide options to module %s.\n" "Options are in format ``name=value name2=value2 ...''.\n" "For instance, ``io=0x300 irq=7''" msgstr "" "Puteți furniza acum opțiunile modulului %s.\n" "Opțiunile sînt în formatul „nume=valoare nume2=valoare2 ...”.\n" "de exemplu, „io=0x300 irq=7”" #: modules/interactive.pm:119 #, c-format msgid "Module options:" msgstr "Opțiuni modul:" #. -PO: the %s is the driver type (scsi, network, sound,...) #: modules/interactive.pm:132 #, c-format msgid "Which %s driver should I try?" msgstr "Care pilot %s să se încerce?" #: modules/interactive.pm:141 #, c-format msgid "" "In some cases, the %s driver needs to have extra information to work\n" "properly, although it normally works fine without them. Would you like to " "specify\n" "extra options for it or allow the driver to probe your machine for the\n" "information it needs? Occasionally, probing will hang a computer, but it " "should\n" "not cause any damage." msgstr "" "În anumite cazuri, pilotul %s necesită informații suplimentare pentru a\n" "funcționa corect, dar funcționează bine și fără. Doriți să specificați\n" "opțiuni suplimentare sau îi permiteți să interogheze calculatorul pentru\n" "informațiile necesare? Ocazional, interogarea poate bloca calculatorul,\n" "dar n-ar trebui să producă nici o deteriorare." #: modules/interactive.pm:145 #, c-format msgid "Autoprobe" msgstr "Detectare automată" #: modules/interactive.pm:145 #, c-format msgid "Specify options" msgstr "Specificați opțiunile" #: modules/interactive.pm:157 #, c-format msgid "" "Loading module %s failed.\n" "Do you want to try again with other parameters?" msgstr "" "Încăcarea modulului %s a eșuat.\n" "Doriți să încercați cu alți parametri?" #: mygtk2.pm:1541 mygtk2.pm:1542 #, c-format msgid "Password is trivial to guess" msgstr "Parolă simplu de ghicit" #: mygtk2.pm:1543 #, c-format msgid "Password should be resistant to basic attacks" msgstr "Parola trebuie să reziste atacurilor simple" #: mygtk2.pm:1544 mygtk2.pm:1545 #, c-format msgid "Password seems secure" msgstr "Parola pare sigură" #: partition_table.pm:415 #, c-format msgid "mount failed: " msgstr "montare eșuată: " #: partition_table.pm:527 #, c-format msgid "Extended partition not supported on this platform" msgstr "Partițiile extinse nu sînt suportate pe această platformă" #: partition_table.pm:545 #, c-format msgid "" "You have a hole in your partition table but I can not use it.\n" "The only solution is to move your primary partitions to have the hole next " "to the extended partitions." msgstr "" "Aveți un spațiu gol în tabela de partiții dar nu se poate folosi.\n" "Singura soluție este să deplasați partiția principală pentru a avea spațiul " "gol lîngă partiția extinsă" #: partition_table/raw.pm:299 #, c-format msgid "" "Something bad is happening on your drive. \n" "A test to check the integrity of data has failed. \n" "It means writing anything on the disk will end up with random, corrupted " "data." msgstr "" "Se întîmplă ceva neplăcut cu discul vostru. \n" "Testul de verificare a integrității datelor a eșuat. \n" "Asta înseamnă că, aleator, datele înregistrate vor fi corupte." #: pkgs.pm:252 pkgs.pm:255 pkgs.pm:268 #, c-format msgid "Unused packages removal" msgstr "Îndepărtare de pachete neutilizate" #: pkgs.pm:252 #, c-format msgid "Finding unused hardware packages..." msgstr "Se caută pachetele componentelor materiale neutilizate..." #: pkgs.pm:255 #, c-format msgid "Finding unused localization packages..." msgstr "Se caută pachetele localizărilor neutilizate..." #: pkgs.pm:269 #, c-format msgid "" "We have detected that some packages are not needed for your system " "configuration." msgstr "" "Unele pachete au fost detectate ca nefiind folosite în configurația " "sistemului utilizat." #: pkgs.pm:270 #, c-format msgid "We will remove the following packages, unless you choose otherwise:" msgstr "Următoarele pachete vor fi înlăturate, dacă nu faceți altă alegere:" #: pkgs.pm:273 pkgs.pm:274 #, c-format msgid "Unused hardware support" msgstr "Suport pentru componentele materiale neutilizate" #: pkgs.pm:277 pkgs.pm:278 #, c-format msgid "Unused localization" msgstr "Localizări neutilizate" #: raid.pm:42 #, c-format msgid "Cannot add a partition to _formatted_ RAID %s" msgstr "Nu se poate adăuga o partiție la RAID %s formatat" #: raid.pm:165 #, c-format msgid "Not enough partitions for RAID level %d\n" msgstr "Nu aveți destule partiții pentru RAID de nivel %d\n" #: scanner.pm:96 #, c-format msgid "Could not create directory /usr/share/sane/firmware!" msgstr "Nu s-a putut crea directorul /usr/share/sane/firmware!" #: scanner.pm:107 #, c-format msgid "Could not create link /usr/share/sane/%s!" msgstr "Nu se poate crea legătura /usr/share/sane/%s!" #: scanner.pm:114 #, c-format msgid "Could not copy firmware file %s to /usr/share/sane/firmware!" msgstr "Nu se poate copia fișierul %s în /usr/share/sane/firmware!" #: scanner.pm:121 #, c-format msgid "Could not set permissions of firmware file %s!" msgstr "Nu se pot configura permisiunile fișierului firmware %s!" #: scanner.pm:200 #, c-format msgid "Scannerdrake" msgstr "Scannerdrake" #: scanner.pm:201 #, c-format msgid "Could not install the packages needed to share your scanner(s)." msgstr "" "Nu se pot instala pachetele necesare pentru a vă putea partaja scanerele." #: scanner.pm:202 #, c-format msgid "Your scanner(s) will not be available for non-root users." msgstr "Scanerele nu vă vor fi disponibile pentru utilizatorii non-root." #: security/help.pm:11 #, c-format msgid "Accept bogus IPv4 error messages." msgstr "Acceptă mesaje de eroare IPv4 fictive." #: security/help.pm:13 #, c-format msgid "Accept broadcasted icmp echo." msgstr "Aceptă difuzare de ecou icmp." #: security/help.pm:15 #, c-format msgid "Accept icmp echo." msgstr "Acceptă ecou icmp." #: security/help.pm:17 #, c-format msgid "Allow autologin." msgstr "Permite autentificarea automată." #. -PO: here "ALL" is a value in a pull-down menu; translate it the same as "ALL" is #: security/help.pm:21 #, c-format msgid "" "If set to \"ALL\", /etc/issue and /etc/issue.net are allowed to exist.\n" "\n" "If set to \"None\", no issues are allowed.\n" "\n" "Else only /etc/issue is allowed." msgstr "" "Dacă se alege „TOT”, existența lui /etc/issue și /etc/issue.net este " "permisă.\n" "\n" "Dacă se alege „Nici unul”, nici unul din fișiere nu este autorizat.\n" "\n" "Altfel numai /etc/issue este permis." #: security/help.pm:27 #, c-format msgid "Allow reboot by the console user." msgstr "Permite repornirea din consolă de către utilizator." #: security/help.pm:29 #, c-format msgid "Allow remote root login." msgstr "Permite autentificarea distantă cu root." #: security/help.pm:31 #, c-format msgid "Allow direct root login." msgstr "Permite autentificarea directă cu root." #: security/help.pm:33 #, c-format msgid "" "Allow the list of users on the system on display managers (kdm and gdm)." msgstr "" "Autorizează lista utilizatorilor din sistem în gestionarii de ecran (kdm și " "gdm)." #: security/help.pm:35 #, c-format msgid "" "Allow to export display when\n" "passing from the root account to the other users.\n" "\n" "See pam_xauth(8) for more details.'" msgstr "" "Permite exportarea ecranului\n" "la trecerea din contul root în alte conturi utilizator.\n" "\n" "Vedeți pam_xauth(8) pentru mai multe detalii.'" #: security/help.pm:40 #, c-format msgid "" "Allow X connections:\n" "\n" "- \"All\" (all connections are allowed),\n" "\n" "- \"Local\" (only connection from local machine),\n" "\n" "- \"None\" (no connection)." msgstr "" "Autorizează conexiunile X11:\n" "\n" "- „TOATE” (toate conexiunile sînt autorizate),\n" "\n" "- „Locale” (autorizează numai conexiunile de pe mașina locală),\n" "\n" "- „Nici una” (nici o conexiune nu este autorizată)." #: security/help.pm:48 #, c-format msgid "" "The argument specifies if clients are authorized to connect\n" "to the X server from the network on the tcp port 6000 or not." msgstr "" "Argumentul specifică dacă clienții sînt autorizați să se\n" "conecteze sau nu prin rețea la serverul X11 pe portul 6000." #. -PO: here "ALL", "Local" and "None" are values in a pull-down menu; translate them the same as they're #: security/help.pm:53 #, c-format msgid "" "Authorize:\n" "\n" "- all services controlled by tcp_wrappers (see hosts.deny(5) man page) if " "set to \"ALL\",\n" "\n" "- only local ones if set to \"Local\"\n" "\n" "- none if set to \"None\".\n" "\n" "To authorize the services you need, use /etc/hosts.allow (see hosts.allow" "(5))." msgstr "" "Autorizează:\n" "\n" "- toate serviciile controlate de tcp_wrappers (vezi pagina de manual hosts." "deny(5)) dacă este reglat pe „TOATE”,\n" "\n" "- numai cele locale dacă este reglat pe „Locale”\n" "\n" "- nici unul dacă este reglat pe „Nici unul”.\n" "\n" "Pentru a vă autoriza serviciile necesare, utilizați /etc/hosts.allow (vezi " "hosts.allow(5))." #: security/help.pm:63 #, c-format msgid "" "If SERVER_LEVEL (or SECURE_LEVEL if absent)\n" "is greater than 3 in /etc/security/msec/security.conf, creates the\n" "symlink /etc/security/msec/server to point to\n" "/etc/security/msec/server.<SERVER_LEVEL>.\n" "\n" "The /etc/security/msec/server is used by chkconfig --add to decide to\n" "add a service if it is present in the file during the installation of\n" "packages." msgstr "" "Dacă SERVER_LEVEL (sau SECURE_LEVEL este absent)\n" "este superior lui 3 în /etc/security/msec/security.conf, se creează\n" "legătura simbolică /etc/security/msec/server către\n" "/etc/security/msec/server.<SERVER_LEVEL>.\n" "\n" "/etc/security/msec/server este utilizat de chkconfig --add pentru a decide\n" "adăugarea unui serviciu dacă este prezent în fișier în timpul instalării\n" "pachetelor." #: security/help.pm:72 #, c-format msgid "" "Enable crontab and at for users.\n" "\n" "Put allowed users in /etc/cron.allow and /etc/at.allow (see man at(1)\n" "and crontab(1))." msgstr "" "Activează planificatorul de sarcini (crontab și at) pentru utilizatori.\n" "\n" "Pune utilizatorii autorizați în /etc/cron.allow și /etc/at.allow (vezi " "pagina\n" "de manual at(1) și crontab(1))." #: security/help.pm:77 #, c-format msgid "Enable syslog reports to console 12" msgstr "Activează rapoartele syslog pe consola 12" #: security/help.pm:79 #, c-format msgid "" "Enable name resolution spoofing protection. If\n" "\"%s\" is true, also reports to syslog." msgstr "" "Activează protecția împotriva uzurpării rezoluției de nume. Dacă\n" "valoarea lui „%s” este adevărată, se raportează și în syslog." #: security/help.pm:80 #, c-format msgid "Security Alerts:" msgstr "Alerte de securitate:" #: security/help.pm:82 #, c-format msgid "Enable IP spoofing protection." msgstr "Activați protecția împotriva uzurpării de adresă IP." #: security/help.pm:84 #, c-format msgid "Enable libsafe if libsafe is found on the system." msgstr "Activează biblioteca libsafe dacă este găsită în sistem." #: security/help.pm:86 #, c-format msgid "Enable the logging of IPv4 strange packets." msgstr "Activează înregistrarea în jurnal a pachetelor IPv4 bizare." #: security/help.pm:88 #, c-format msgid "Enable msec hourly security check." msgstr "Activează verificări orare de securitate cu msec." #: security/help.pm:90 #, c-format msgid "" "Enable su only from members of the wheel group. If set to no, allows su from " "any user." msgstr "" "Activează su numai pentru membrii grupului wheel. Dacă este pus pe nu, " "permite su pentru orice utilizator." #: security/help.pm:92 #, c-format msgid "Use password to authenticate users." msgstr "Utilizați parole pentru autentificarea utilizatorilor." #: security/help.pm:94 #, c-format msgid "Activate ethernet cards promiscuity check." msgstr "Activați verificarea modului spion pentru plăcile de rețea." #: security/help.pm:96 #, c-format msgid "Activate daily security check." msgstr "Activați verificările cotidiene de securitate." #: security/help.pm:98 #, c-format msgid "Enable sulogin(8) in single user level." msgstr "Activează sulogin(8) în mod mono-utilizator." #: security/help.pm:100 #, c-format msgid "Add the name as an exception to the handling of password aging by msec." msgstr "Exclude „numele” din gestiunea parolelor de către msec." #: security/help.pm:102 #, c-format msgid "Set password aging to \"max\" days and delay to change to \"inactive\"." msgstr "" "Reglează durata de viață a parolei pe „max” și intervalul său de schimbare " "pe „inactive”." #: security/help.pm:104 #, c-format msgid "Set the password history length to prevent password reuse." msgstr "" "Reglați lungimea istoricului de parole pentru a preveni reutilizarea lor." #: security/help.pm:106 #, c-format msgid "" "Set the password minimum length and minimum number of digit and minimum " "number of capitalized letters." msgstr "" "Reglați lungimea minimă a parolei, numărul minim de cifre și numărul minim " "de majuscule conținute." #: security/help.pm:108 #, c-format msgid "Set the root's file mode creation mask." msgstr "Configurați masca modului de creare a fișierelor pentru root." #: security/help.pm:109 #, c-format msgid "if set to yes, check open ports." msgstr "dacă da, se verifică porturile deschise din rețea." #: security/help.pm:110 #, c-format msgid "" "if set to yes, check for:\n" "\n" "- empty passwords,\n" "\n" "- no password in /etc/shadow\n" "\n" "- for users with the 0 id other than root." msgstr "" "dacă da, se verifică:\n" "\n" "- parolele vide,\n" "\n" "- parolele absente din /etc/shadow\n" "\n" "- utilizatorii, diferiți de root, cu identificator 0." #: security/help.pm:117 #, c-format msgid "if set to yes, check permissions of files in the users' home." msgstr "" "dacă da, se verifică drepturile fișierelor din directoarele personale ale " "utilizatorilor." #: security/help.pm:118 #, c-format msgid "if set to yes, check if the network devices are in promiscuous mode." msgstr "dacă da, se verifică dacă dispozitivele de rețea sînt în mod spion." #: security/help.pm:119 #, c-format msgid "if set to yes, run the daily security checks." msgstr "dacă da, se execută verificările zilnice de securitate." #: security/help.pm:120 #, c-format msgid "if set to yes, check additions/removals of sgid files." msgstr "" "dacă da, se verifică adăugările/înlăturările fișierelor cu permisiunea sgid." #: security/help.pm:121 #, c-format msgid "if set to yes, check empty password in /etc/shadow." msgstr "dacă da, se verifică parolele vide din /etc/shadow." #: security/help.pm:122 #, c-format msgid "if set to yes, verify checksum of the suid/sgid files." msgstr "" "dacă da, se verifică suma de control a fișierelor cu permisiunea suid/sgid." #: security/help.pm:123 #, c-format msgid "if set to yes, check additions/removals of suid root files." msgstr "dacă da, se verifică adăugarea/înlăturarea fișierelor suid root." #: security/help.pm:124 #, c-format msgid "if set to yes, report unowned files." msgstr "dacă da, se raportează fișierele fără proprietar." #: security/help.pm:125 #, c-format msgid "if set to yes, check files/directories writable by everybody." msgstr "" "dacă da, se verifică fișierele/directoarele cu drepturi de scriere pentru " "toată lumea." #: security/help.pm:126 #, c-format msgid "if set to yes, run chkrootkit checks." msgstr "dacă da, se lansează verificările chkrootkit." #: security/help.pm:127 #, c-format msgid "" "if set, send the mail report to this email address else send it to root." msgstr "" "dacă da, se trimite raportul la adresa electronică indicată, altfel se " "trimite utilizatorului root." #: security/help.pm:128 #, c-format msgid "if set to yes, report check result by mail." msgstr "dacă da, se trimite pe e-mail raportul verificărilor." #: security/help.pm:129 #, c-format msgid "Do not send mails if there's nothing to warn about" msgstr "Nu se trimit e-mailuri dacă nu este nimic de avertizat" #: security/help.pm:130 #, c-format msgid "if set to yes, run some checks against the rpm database." msgstr "dacă da, se lansesază verificări pe baza de date a pachetelor rpm." #: security/help.pm:131 #, c-format msgid "if set to yes, report check result to syslog." msgstr "dacă da, se raportează rezultatul verificărilor în syslog." #: security/help.pm:132 #, c-format msgid "if set to yes, reports check result to tty." msgstr "dacă da, se raportează rezultatul verificărilor la tty." #: security/help.pm:134 #, c-format msgid "Set shell commands history size. A value of -1 means unlimited." msgstr "" "Reglează profunzimea istoricului interpretorului de comenzi. O valoare de -1 " "înseamnă nelimitat." #: security/help.pm:136 #, c-format msgid "Set the shell timeout. A value of zero means no timeout." msgstr "" "Reglează perioada de expirare a interpretorului de comenzi. Zero înseamnă " "fără expirare." #: security/help.pm:136 #, c-format msgid "Timeout unit is second" msgstr "Unitatea perioadei de expirare este secunda" #: security/help.pm:138 #, c-format msgid "Set the user's file mode creation mask." msgstr "Configurați masca modului de creare a fișierelor pentru utilizatori." #: security/l10n.pm:11 #, c-format msgid "Accept bogus IPv4 error messages" msgstr "Acceptă mesaje de eroare IPv4 fictive" #: security/l10n.pm:12 #, c-format msgid "Accept broadcasted icmp echo" msgstr "Acceptă ecou ICMP difuzat" #: security/l10n.pm:13 #, c-format msgid "Accept icmp echo" msgstr "Acceptă ecou ICMP" #: security/l10n.pm:15 #, c-format msgid "/etc/issue* exist" msgstr "/etc/issue* există" #: security/l10n.pm:16 #, c-format msgid "Reboot by the console user" msgstr "Utilizatorul poate reporni calculatorul din consolă" #: security/l10n.pm:17 #, c-format msgid "Allow remote root login" msgstr "Permite autentificarea distantă cu root" #: security/l10n.pm:18 #, c-format msgid "Direct root login" msgstr "Autentificare root directă" #: security/l10n.pm:19 #, c-format msgid "List users on display managers (kdm and gdm)" msgstr "Afișează utilizatorii în gestionarii de ecran (kdm și gdm)" #: security/l10n.pm:20 #, c-format msgid "Export display when passing from root to the other users" msgstr "Exportă ecranul la trecerea din root la alți utilizatori" #: security/l10n.pm:21 #, c-format msgid "Allow X Window connections" msgstr "Permite conexiuni X Window" #: security/l10n.pm:22 #, c-format msgid "Authorize TCP connections to X Window" msgstr "Autorizează conexiunile la X Window via TCP" #: security/l10n.pm:23 #, c-format msgid "Authorize all services controlled by tcp_wrappers" msgstr "Autorizează toate serviciile controlate de tcp_wrappers" #: security/l10n.pm:24 #, c-format msgid "Chkconfig obey msec rules" msgstr "Chkconfig respectă regulile msec" #: security/l10n.pm:25 #, c-format msgid "Enable \"crontab\" and \"at\" for users" msgstr "Activează „crontab” și „at” pentru utilizatori" #: security/l10n.pm:26 #, c-format msgid "Syslog reports to console 12" msgstr "Syslog raportează în consola 12" #: security/l10n.pm:27 #, c-format msgid "Name resolution spoofing protection" msgstr "Protecție împotriva uzurpării rezoluției de nume" #: security/l10n.pm:28 #, c-format msgid "Enable IP spoofing protection" msgstr "Activează protecția împotriva uzurpării de adresă IP" #: security/l10n.pm:29 #, c-format msgid "Enable libsafe if libsafe is found on the system" msgstr "Activează biblioteca libsafe dacă este găsită în sistem" #: security/l10n.pm:30 #, c-format msgid "Enable the logging of IPv4 strange packets" msgstr "Activează trasarea pachetelor IPv4 ciudate" #: security/l10n.pm:31 #, c-format msgid "Enable msec hourly security check" msgstr "Activează verificările orare de securitate msec" #: security/l10n.pm:32 #, c-format msgid "Enable su only from the wheel group members" msgstr "Activează su numai pentru membrii grupului wheel" #: security/l10n.pm:33 #, c-format msgid "Use password to authenticate users" msgstr "Utilizați parole pentru autentificarea utilizatorilor" #: security/l10n.pm:34 #, c-format msgid "Ethernet cards promiscuity check" msgstr "Activează verificarea modului spion pentru plăcile de rețea" #: security/l10n.pm:35 #, c-format msgid "Daily security check" msgstr "Verificări de securitate cotidiene" #: security/l10n.pm:36 #, c-format msgid "Sulogin(8) in single user level" msgstr "Activează sulogin(8) în mod mono-utilizator" #: security/l10n.pm:37 #, c-format msgid "No password aging for" msgstr "Parola nu expiră pentru" #: security/l10n.pm:38 #, c-format msgid "Set password expiration and account inactivation delays" msgstr "Reglați durata de viață a parolei și perioada de inactivare a contului" #: security/l10n.pm:39 #, c-format msgid "Password history length" msgstr "Lungime istoric parolă" #: security/l10n.pm:40 #, c-format msgid "Password minimum length and number of digits and upcase letters" msgstr "Lungimea minimă, de cifre și de majuscule conținute de parolă" #: security/l10n.pm:41 #, c-format msgid "Root umask" msgstr "Umask root" #: security/l10n.pm:42 #, c-format msgid "Shell history size" msgstr "Mărimea istoricului interpretorului de comenzi" #: security/l10n.pm:43 #, c-format msgid "Shell timeout" msgstr "Perioada de expirare a interpretorului de comenzi" #: security/l10n.pm:44 #, c-format msgid "User umask" msgstr "Umask utilizator" #: security/l10n.pm:45 #, c-format msgid "Check open ports" msgstr "Verifică porturile deschise" #: security/l10n.pm:46 #, c-format msgid "Check for unsecured accounts" msgstr "Căutare de conturi nesecurizate" #: security/l10n.pm:47 #, c-format msgid "Check permissions of files in the users' home" msgstr "Verifică drepturile fișierelor din directoarele personale" #: security/l10n.pm:48 #, c-format msgid "Check if the network devices are in promiscuous mode" msgstr "Verifică dacă dispozitivele de rețea sînt în mod spion" #: security/l10n.pm:49 #, c-format msgid "Run the daily security checks" msgstr "Execută verificările de securitate cotidiene" #: security/l10n.pm:50 #, c-format msgid "Check additions/removals of sgid files" msgstr "Verifică adăugările/înlăturările de fișiere sgid" #: security/l10n.pm:51 #, c-format msgid "Check empty password in /etc/shadow" msgstr "Verifică parolele vide din /etc/shadow" #: security/l10n.pm:52 #, c-format msgid "Verify checksum of the suid/sgid files" msgstr "Verifică suma de control a fișierelor suid/sgid" #: security/l10n.pm:53 #, c-format msgid "Check additions/removals of suid root files" msgstr "Verifică adăugarea/înlăturarea fișierelor cu permisiunea „suid root”" #: security/l10n.pm:54 #, c-format msgid "Report unowned files" msgstr "Raportează fișierele fără proprietar" #: security/l10n.pm:55 #, c-format msgid "Check files/directories writable by everybody" msgstr "Verifică fișierele/directoarele cu drept de scriere pentru toată lumea" #: security/l10n.pm:56 #, c-format msgid "Run chkrootkit checks" msgstr "Execută verificări chkrootkit" #: security/l10n.pm:57 #, c-format msgid "Do not send empty mail reports" msgstr "Nu se trimit rapoarte goale pe e-mail" #: security/l10n.pm:58 #, c-format msgid "If set, send the mail report to this email address else send it to root" msgstr "" "dacă da, se trimite raportul la adresa electronică indicată, altfel se " "trimite utilizatorului root" #: security/l10n.pm:59 #, c-format msgid "Report check result by mail" msgstr "Raportează pe e-mail rezultatul verificărilor" #: security/l10n.pm:60 #, c-format msgid "Run some checks against the rpm database" msgstr "Execută verificări ale bazei de pachete rpm" #: security/l10n.pm:61 #, c-format msgid "Report check result to syslog" msgstr "Raportează rezultatele verificării in syslog" #: security/l10n.pm:62 #, c-format msgid "Reports check result to tty" msgstr "Raportează rezultatul verificărilor la tty" #: security/level.pm:10 #, c-format msgid "Disable msec" msgstr "Dezactivează msec" #: security/level.pm:11 #, c-format msgid "Standard" msgstr "Standard" #: security/level.pm:12 #, c-format msgid "Secure" msgstr "Securizat" #: security/level.pm:40 #, c-format msgid "" "This level is to be used with care, as it disables all additional security\n" "provided by msec. Use it only when you want to take care of all aspects of " "system security\n" "on your own." msgstr "" "Acest nivel trebuie utilizat cu precauție, deoarece dezactivează toate\n" "măsurile de securitate furnizate de msec. Utilizați-l numai dacă doriți să " "gestionați\n" "în mod personal securitatea sistemului." #: security/level.pm:43 #, c-format msgid "" "This is the standard security recommended for a computer that will be used " "to connect to the Internet as a client." msgstr "" "Acesta este nivelul de securitate standard recomandat pentru un calculator " "ce va fi conectat la Internet ca și client." #: security/level.pm:44 #, c-format msgid "" "With this security level, the use of this system as a server becomes " "possible.\n" "The security is now high enough to use the system as a server which can " "accept\n" "connections from many clients. Note: if your machine is only a client on the " "Internet, you should choose a lower level." msgstr "" "Cu acest nivel de securitate, utilizarea calculatorului ca server\n" "devine posibilă. Securitatea este destul de ridicată pentru a folosi acest\n" "sistem ca server care acceptă conexiuni de la mulți clienți. Notă: dacă " "mașina este numai un client simplu la Internet, folosiți un nivel mai scăzut." #: security/level.pm:51 #, c-format msgid "DrakSec Basic Options" msgstr "Opțiuni de bază DrakSec" #: security/level.pm:54 #, c-format msgid "Please choose the desired security level" msgstr "Alegeți nivelul de securitate dorit" #. -PO: this string is used to properly format "<security level>: <level description>" #: security/level.pm:58 #, c-format msgid "%s: %s" msgstr "%s: %s" #: security/level.pm:61 #, c-format msgid "Security Administrator:" msgstr "Administrator de securitate:" #: security/level.pm:62 #, c-format msgid "Login or email:" msgstr "Cont utilizator sau adresă electronică:" #: services.pm:19 #, c-format msgid "Listen and dispatch ACPI events from the kernel" msgstr "Urmărește și expediază evenimentele ACPI din nucleu" #: services.pm:20 #, c-format msgid "Launch the ALSA (Advanced Linux Sound Architecture) sound system" msgstr "Lansează sistemul de sunet ALSA (Advanced Linux Sound Architecture)" #: services.pm:21 #, c-format msgid "Anacron is a periodic command scheduler." msgstr "Anacron este un planificator de comenzi periodice" #: services.pm:22 #, c-format msgid "" "apmd is used for monitoring battery status and logging it via syslog.\n" "It can also be used for shutting down the machine when the battery is low." msgstr "" "APMD este folosit pentru a supraveghea și înregistra starea bateriei via " "syslog.\n" "De asemenea, poate fi folosit pentru oprirea calculatorului dacă bateria " "este slabă." #: services.pm:24 #, c-format msgid "" "Runs commands scheduled by the at command at the time specified when\n" "at was run, and runs batch commands when the load average is low enough." msgstr "" "Serviciu ce permite executarea unei comenzi la o oră precisă. Fiecare " "sarcină\n" "trebuie creată cu comanda „at”, apoi la ora indicată serviciul „atd” " "execută\n" "sarcina. De exemplu, pentru a opri calculatorul în mod automat la ora " "23:59,\n" "tastați într-o consolă „at 23:59” apoi „halt” și <Ctrl-D>." #: services.pm:26 #, c-format msgid "Avahi is a ZeroConf daemon which implements an mDNS stack" msgstr "Avahi este un demon ZeroConf ce implementează o stivă mDNS" #: services.pm:27 #, c-format msgid "Set CPU frequency settings" msgstr "Configurează parametrii de frecvență ai procesorului" #: services.pm:28 #, c-format msgid "" "cron is a standard UNIX program that runs user-specified programs\n" "at periodic scheduled times. vixie cron adds a number of features to the " "basic\n" "UNIX cron, including better security and more powerful configuration options." msgstr "" "Cron este un planificator de sarcini. Spre deosebire de Anacron, sarcinile " "sînt\n" "executate la momente precise, iar calculatorul trebuie să fie pornit. „Vixie " "cron”\n" "adaugă funcționalități suplimentare versiunii UNIX de „cron”, precum o\n" "securitate îmbunătățită și opțiuni de configurare mai avansate." #: services.pm:31 #, c-format msgid "" "Common UNIX Printing System (CUPS) is an advanced printer spooling system" msgstr "" "Common UNIX Printing System (CUPS) este un sistem avansat de gestiune a " "tipăririi" #: services.pm:32 #, c-format msgid "Launches the graphical display manager" msgstr "Lansează gestionarul de ecran grafic" #: services.pm:33 #, c-format msgid "" "FAM is a file monitoring daemon. It is used to get reports when files " "change.\n" "It is used by GNOME and KDE" msgstr "" "FAM este un demon de supraveghere de fișiere. Vă permite să fiți alertat\n" "cînd fișierele sînt modificate. Este utilizat de GNOME sau KDE" #: services.pm:35 #, c-format msgid "" "G15Daemon allows users access to all extra keys by decoding them and \n" "pushing them back into the kernel via the linux UINPUT driver. This driver " "must be loaded \n" "before g15daemon can be used for keyboard access. The G15 LCD is also " "supported. By default, \n" "with no other clients active, g15daemon will display a clock. Client " "applications and \n" "scripts can access the LCD via a simple API." msgstr "" "G15Daemon permite utilizatorilor să acceseze toate tastele suplimentare " "prin \n" "decodarea și trimiterea lor înapoi la nucleu cu ajutorul pilotului Linux " "UINPUT. Acest pilot trebuie \n" "încărcat înaite de utilizarea lui g15daemon pentru accesarea tastaturii. G15 " "LCD este și el suportat. \n" "Implicit, fără alți clienți activi, g15daemon va afișa un ceas. Aplicațiile " "și scripturile client \n" "pot accesa LCD printr-un API simplu." #: services.pm:40 #, c-format msgid "" "GPM adds mouse support to text-based Linux applications such the\n" "Midnight Commander. It also allows mouse-based console cut-and-paste " "operations,\n" "and includes support for pop-up menus on the console." msgstr "" "GPM adaugă suport de maus la aplicațiile text în Linux ca Midnight " "Commander.\n" "De asemenea, permite operații de copiere/lipire cu mausul și suport\n" "pentru meniurile contextuale în consolă." #: services.pm:43 #, c-format msgid "HAL is a daemon that collects and maintains information about hardware" msgstr "" "HAL este un demon care colectează și reține informațiile despre componentele " "materiale" #: services.pm:44 #, c-format msgid "" "HardDrake runs a hardware probe, and optionally configures\n" "new/changed hardware." msgstr "" "HardDrake detectează componentele materiale și configurează eventual\n" "componentele noi/înlocuite." #: services.pm:46 #, c-format msgid "" "Apache is a World Wide Web server. It is used to serve HTML files and CGI." msgstr "" "Apache este un server Web. Este folosit pentru a servi fișiere HTML și CGI." #: services.pm:47 #, c-format msgid "" "The internet superserver daemon (commonly called inetd) starts a\n" "variety of other internet services as needed. It is responsible for " "starting\n" "many services, including telnet, ftp, rsh, and rlogin. Disabling inetd " "disables\n" "all of the services it is responsible for." msgstr "" "Super-procesul Internet (numit în mod normal inetd) pornește o sumedenie\n" "de servicii, incluzînd telnet, ftp, rsh și rlogin. Dezactivarea lui telnet\n" "se aplică tuturor serviciilor de care telnet este responsabil." #: services.pm:51 #, c-format msgid "Automates a packet filtering firewall with ip6tables" msgstr "Automatizați cu ip6tables un parafoc cu filtrare de pachete" #: services.pm:52 #, c-format msgid "Automates a packet filtering firewall with iptables" msgstr "Automatizați cu iptables un parafoc cu filtrare de pachete" #: services.pm:53 #, c-format msgid "" "Launch packet filtering for Linux kernel 2.2 series, to set\n" "up a firewall to protect your machine from network attacks." msgstr "" "Lansează filtrarea de pachete pentru nucleele din seia 2.2,\n" "pentru a configura un parafoc împotriva atacurilor din rețea." #: services.pm:55 #, c-format msgid "" "Evenly distributes IRQ load across multiple CPUs for enhanced performance" msgstr "" "Distribue sarcina IRQ în mod egal peste procesoare multiple pentru o " "performanță îmbunătățită" #: services.pm:56 #, c-format msgid "" "This package loads the selected keyboard map as set in\n" "/etc/sysconfig/keyboard. This can be selected using the kbdconfig utility.\n" "You should leave this enabled for most machines." msgstr "" "Acest pachet încarcă dispunerea tastaturii așa cum este specificată în\n" "/etc/sysconfig/keyboard. Dispunerea poate fi modificată folosind kbdconfig.\n" "Acest servicu trebuie lăsat activat pentru majoritatea calculatoarelor." #: services.pm:59 #, c-format msgid "" "Automatic regeneration of kernel header in /boot for\n" "/usr/include/linux/{autoconf,version}.h" msgstr "" "Regenerarea automată a antetelor de nucleu în /boot pentru\n" "/usr/include/linux/{autoconf, versiune}.h" #: services.pm:61 #, c-format msgid "Automatic detection and configuration of hardware at boot." msgstr "" "Detecția și configurarea automată a componentelor materiale la pornire." #: services.pm:62 #, c-format msgid "Tweaks system behavior to extend battery life" msgstr "Ajustează comportamentul sistemului pentru a extinde viața bateriei" #: services.pm:63 #, c-format msgid "" "Linuxconf will sometimes arrange to perform various tasks\n" "at boot-time to maintain the system configuration." msgstr "" "Linucxonf va executa din cînd în cînd diferite sarcini la pornire\n" "pentru mentenanța configurației sistemului." #: services.pm:65 #, c-format msgid "" "lpd is the print daemon required for lpr to work properly. It is\n" "basically a server that arbitrates print jobs to printer(s)." msgstr "" "Lpd este serverul de tipărire și gestionează coada de așteptare și cererile\n" "de tipărire, necesar pentru ca lpr să funcționeze corect." #: services.pm:67 #, c-format msgid "" "Linux Virtual Server, used to build a high-performance and highly\n" "available server." msgstr "" "Linux Virtual Server, este folosit pentru construirea unui server de\n" "înaltă performanță și disponibilitate." #: services.pm:69 #, c-format msgid "Monitors the network (Interactive Firewall and wireless" msgstr "Supraveghează rețeaua (parafoc interactiv și fără-fir" #: services.pm:70 #, c-format msgid "Software RAID monitoring and management" msgstr "Gestionare si supraveghere de RAID Software" #: services.pm:71 #, c-format msgid "" "DBUS is a daemon which broadcasts notifications of system events and other " "messages" msgstr "" "DBUS este un serviciu care difuzează înștiințări despre evenimentele din " "sistem și alte mesaje" #: services.pm:72 #, c-format msgid "Enables MSEC security policy on system startup" msgstr "Activează politica de securitate MSEC la pornirea sistemului" #: services.pm:73 #, c-format msgid "" "named (BIND) is a Domain Name Server (DNS) that is used to resolve host " "names to IP addresses." msgstr "" "Named (BIND) este un server de nume de domeniu (DNS) folosit la rezolvarea " "asocierii numelor cu adresele IP." #: services.pm:74 #, c-format msgid "Initializes network console logging" msgstr "Inițializează conectarea la consolă prin rețea" #: services.pm:75 #, c-format msgid "" "Mounts and unmounts all Network File System (NFS), SMB (Lan\n" "Manager/Windows), and NCP (NetWare) mount points." msgstr "" "Montează și demontează toate punctele de montare a fișierelor sistem de " "rețea\n" "(NFS), SMB (LanManager/Windows) și NCP (NetWare)." #: services.pm:77 #, c-format msgid "" "Activates/Deactivates all network interfaces configured to start\n" "at boot time." msgstr "" "Activează/Dezactivează toate interfețele de rețea configurate pentru a fi\n" "inițializate la pornire." #: services.pm:79 #, c-format msgid "Requires network to be up if enabled" msgstr "Necesită ca rețeaua să fie disponibilă dacă este activat" #: services.pm:80 #, c-format msgid "Wait for the hotplugged network to be up" msgstr "Așteptați ca rețeaua să fie disponibilă" #: services.pm:81 #, c-format msgid "" "NFS is a popular protocol for file sharing across TCP/IP networks.\n" "This service provides NFS server functionality, which is configured via the\n" "/etc/exports file." msgstr "" "NFS este un protocol popular pentru a partaja fișiere de-a lungul rețelelor\n" "TCP/IP. Acest serviciu furnizează această funcționalitate. Lista " "directoarelor\n" "partajate se află în fișierul /etc/exports." #: services.pm:84 #, c-format msgid "" "NFS is a popular protocol for file sharing across TCP/IP\n" "networks. This service provides NFS file locking functionality." msgstr "" "NFS este un protocol popular pentru a partaja fișiere de-a lungul rețelelor\n" "TCP/IP. Acest serviciu permite blocarea fișierelor NFS." #: services.pm:86 #, c-format msgid "Synchronizes system time using the Network Time Protocol (NTP)" msgstr "Sincronizați ora sistemului prin rețea utilizînd protocolul NTP" #: services.pm:87 #, c-format msgid "" "Automatically switch on numlock key locker under console\n" "and Xorg at boot." msgstr "" "Activare automată la pornire a tastei „Num Lock” de pe\n" "tastatura numerică, în consolă și Xorg." #: services.pm:89 #, c-format msgid "Support the OKI 4w and compatible winprinters." msgstr "Suport pentru imprimante OKI 4w winprinters și compatibile." #: services.pm:90 #, c-format msgid "Checks if a partition is close to full up" msgstr "Verifică dacă o partiție este aproape plină" #: services.pm:91 #, c-format msgid "" "PCMCIA support is usually to support things like ethernet and\n" "modems in laptops. It will not get started unless configured so it is safe " "to have\n" "it installed on machines that do not need it." msgstr "" "PCMCIA permite utilizarea dispozitivelor PCCARD precum plăcile Ethernet și\n" "modemuri în calculatoarele portabile. Nu va porni decît dacă este " "configurat,\n" "deci nu este nici o problemă dacă este activat pe calculatoare fără PCMCIA." #: services.pm:94 #, c-format msgid "" "The portmapper manages RPC connections, which are used by\n" "protocols such as NFS and NIS. The portmap server must be running on " "machines\n" "which act as servers for protocols which make use of the RPC mechanism." msgstr "" "Portmapper gestionează conexiunile RPC, care sînt folosite de protocoalele\n" "ca NFS și NIS. Serverul portmap trebuie pornit pe calculatoarele care \n" "funcționează ca servere pentru protocoale ce folosesc mecanismul RPC." #: services.pm:97 #, c-format msgid "Reserves some TCP ports" msgstr "Rezervă cîteva porturi TCP" #: services.pm:98 #, c-format msgid "" "Postfix is a Mail Transport Agent, which is the program that moves mail from " "one machine to another." msgstr "" "Postfix este un agent de transportat mesaje (MTA, programul care\n" "permite deplasarea e-mailului de la un calculator la altul)." #: services.pm:99 #, c-format msgid "" "Saves and restores system entropy pool for higher quality random\n" "number generation." msgstr "" "Salvează și restaurează entropia sistemului pentru generarea numerelor\n" "aleatoare de mai bună calitate." #: services.pm:101 #, c-format msgid "" "Assign raw devices to block devices (such as hard disk drive\n" "partitions), for the use of applications such as Oracle or DVD players" msgstr "" "Atribue dispozitivele brute cu acces direct (raw) la dispozitivele\n" "de tip bloc (precum partițiile discului dur), pentru a fi utilizate\n" "de aplicații precum Oracle sau cititoarele de DVD" #: services.pm:103 #, c-format msgid "Nameserver information manager" msgstr "Gestionar de informații de server de nume" #: services.pm:104 #, c-format msgid "" "The routed daemon allows for automatic IP router table updated via\n" "the RIP protocol. While RIP is widely used on small networks, more complex\n" "routing protocols are needed for complex networks." msgstr "" "Serviciul de rutare permite actualizarea automată a tabelei de rutare IP\n" "prin protocolul RIP. În timp de RIP este folosit pentru rețele mici,\n" "alte protocoale mai complexe sînt folosite pentru rețele mai complexe." #: services.pm:107 #, c-format msgid "" "The rstat protocol allows users on a network to retrieve\n" "performance metrics for any machine on that network." msgstr "" "Protocolul rstat permite utilizatorilor unei rețele să recupereze\n" "performanțele măsurate de la orice calculator din rețea." #: services.pm:109 #, c-format msgid "" "Syslog is the facility by which many daemons use to log messages to various " "system log files. It is a good idea to always run rsyslog." msgstr "" "Syslog este facilitatea pe care multe procese o folosesc pentru a scrie " "mesaje în numeroasele fișiere jurnal ale sistemului. Este o idee bună să " "porniți întotdeauna rsyslog." #: services.pm:110 #, c-format msgid "" "The rusers protocol allows users on a network to identify who is\n" "logged in on other responding machines." msgstr "" "Protocolul rusers permite utilizatorilor unei rețele să identifice\n" "cine este conectat la calculatoarele care răspund interogării." #: services.pm:112 #, c-format msgid "" "The rwho protocol lets remote users get a list of all of the users\n" "logged into a machine running the rwho daemon (similar to finger)." msgstr "" "Protocolul rwho permite utilizatorului să recupereze lista tuturor\n" "utilizatorului conectați la un calculator ce folosește procesul rwho\n" "(similar cu finger)." #: services.pm:114 #, c-format msgid "" "SANE (Scanner Access Now Easy) enables to access scanners, video cameras, ..." msgstr "" "SANE (Scanner Access Now Easy) permite accesarea scanerelor, camerelor " "video, ..." #: services.pm:115 #, c-format msgid "Packet filtering firewall" msgstr "Parafoc cu filtrare de pachete" #: services.pm:116 #, c-format msgid "" "The SMB/CIFS protocol enables to share access to files & printers and also " "integrates with a Windows Server domain" msgstr "" "Protocolul SMB/CIFS vă permite să partajați accesul la fișiere și " "imprimante, cît și integrarea într-un domeniu Windows " #: services.pm:117 #, c-format msgid "Launch the sound system on your machine" msgstr "Lansează sisemul de sunet pe această mașină" #: services.pm:118 #, c-format msgid "layer for speech analysis" msgstr "nivel pentru analizarea vorbirii" #: services.pm:119 #, c-format msgid "" "Secure Shell is a network protocol that allows data to be exchanged over a " "secure channel between two computers" msgstr "" "Secure Shell este un protocol de rețea ce prmite schimbul de date între două " "calculatoare printr-un canal securizat" #: services.pm:120 #, c-format msgid "" "Syslog is the facility by which many daemons use to log messages\n" "to various system log files. It is a good idea to always run syslog." msgstr "" "Syslog este facilitatea pe care multe procese o folosesc pentru a scrie\n" "mesaje în numeroasele fișiere jurnal ale sistemului. Este o idee\n" "bună să porniți întotdeauna syslog." #: services.pm:122 #, c-format msgid "Moves the generated persistent udev rules to /etc/udev/rules.d" msgstr "Mută regulile persistente udev generate în /etc/udev/rules.d" #: services.pm:123 #, c-format msgid "Load the drivers for your usb devices." msgstr "Încarcă piloții pentru dispozitivele USB." #: services.pm:124 #, c-format msgid "A lightweight network traffic monitor" msgstr "Un monitor lejer de trafic în rețea" #: services.pm:125 #, c-format msgid "Starts the X Font Server." msgstr "Pornește serverul de fonturi." #: services.pm:126 #, c-format msgid "Starts other deamons on demand." msgstr "Pornește alți demoni la cerere." #: services.pm:149 #, c-format msgid "Printing" msgstr "Tipărire" #: services.pm:150 #, c-format msgid "Internet" msgstr "Internet" #: services.pm:153 #, c-format msgid "File sharing" msgstr "Partajare fișiere" #: services.pm:155 #, c-format msgid "System" msgstr "Sistem" #: services.pm:160 #, c-format msgid "Remote Administration" msgstr "Administrare de la distanță" #: services.pm:168 #, c-format msgid "Database Server" msgstr "Server de baze de date" #: services.pm:179 services.pm:218 #, c-format msgid "Services" msgstr "Servicii" #: services.pm:179 #, c-format msgid "Choose which services should be automatically started at boot time" msgstr "Alegeți ce servicii doriți să fie lansate automat la pornire" #: services.pm:197 #, c-format msgid "%d activated for %d registered" msgstr "%d activate pentru %d înregistrate" #: services.pm:234 #, c-format msgid "running" msgstr "rulează" #: services.pm:234 #, c-format msgid "stopped" msgstr "oprit" #: services.pm:239 #, c-format msgid "Services and daemons" msgstr "Servicii și daemoni" #: services.pm:245 #, c-format msgid "" "No additional information\n" "about this service, sorry." msgstr "" "Regrete, nici o informație suplimentară\n" "despre acest serviciu." #: services.pm:250 ugtk2.pm:924 #, c-format msgid "Info" msgstr "Info" #: services.pm:253 #, c-format msgid "Start when requested" msgstr "Pornește la cerere" #: services.pm:253 #, c-format msgid "On boot" msgstr "La pornire" #: services.pm:271 #, c-format msgid "Start" msgstr "Pornește" #: services.pm:271 #, c-format msgid "Stop" msgstr "Oprește" #: standalone.pm:25 #, c-format msgid "" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation; either version 2, or (at your option)\n" "any later version.\n" "\n" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License\n" "along with this program; if not, write to the Free Software\n" "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, " "USA.\n" msgstr "" "Acest program este liber; îl puteți redistribui și/sau modifica\n" "în conformitate cu termenii Licenței Publice Generale GNU, așa cum este\n" "publicată de Free Software Foundation; fie versiunea 2 a licenței, fie\n" "(la latitudinea voastră) orice versiune ulterioară.\n" "\n" "Acest program este distribuit cu speranța că va fi util,\n" "dar FĂRĂ NICI O GARANȚIE; fără garanție implicită de\n" "vandabilitate și conformitate pentru un anumit scop. Citiți\n" "Licența Publică Generală GNU pentru detalii.\n" "\n" "Ar trebui să fi primit o copie a Licenței Publice Generale GNU\n" "împreună cu acest program; dacă nu, scrieți la Free Software\n" "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, " "USA.\n" #: standalone.pm:44 #, c-format msgid "" "[--config-info] [--daemon] [--debug] [--default] [--show-conf]\n" "Backup and Restore application\n" "\n" "--default : save default directories.\n" "--debug : show all debug messages.\n" "--show-conf : list of files or directories to backup.\n" "--config-info : explain configuration file options (for non-X " "users).\n" "--daemon : use daemon configuration. \n" "--help : show this message.\n" "--version : show version number.\n" msgstr "" "[--config-info] [--daemon] [--debug] [--default] [--show-conf]\n" "Aplicație de salvgardare și restaurare\n" "\n" "--default : salvează directoarele implicite.\n" "--debug : afișează toate mesajele de eroare.\n" "--show-conf : listează fișierele sau directoarele de salvgardat.\n" "--config-info : explică opțiunile fișierului de configurare (în mod " "text).\n" "--daemon : utilizează configurația salvgardărilor periodice.\n" "--help : afișează acest mesaj.\n" "--version : afișează numărul versiunii.\n" #: standalone.pm:56 #, c-format msgid "" "[--boot]\n" "OPTIONS:\n" " --boot - enable to configure boot loader\n" "default mode: offer to configure autologin feature" msgstr "" "[--boot]\n" "OPTIONS:\n" " --boot - permite configurarea încărcătorului de sistem\n" "mod implicit: configurează autentificarea automată" #: standalone.pm:60 #, fuzzy, c-format msgid "" "[OPTIONS] [PROGRAM_NAME]\n" "\n" "OPTIONS:\n" " --help - print this help message.\n" " --report - program should be one of %s tools\n" " --incident - program should be one of %s tools" msgstr "" "[OPTIONS] [PROGRAM_NAME]\n" "\n" "OPTIONS:\n" " --help - afișează acest mesaj.\n" " --report - programul trebuie să fie una din uneltele Mageia " "Linux\n" " --incident - programul trebuie să fie una din uneltele Mageia Linux" #: standalone.pm:66 #, c-format msgid "" "[--add]\n" " --add - \"add a network interface\" wizard\n" " --del - \"delete a network interface\" wizard\n" " --skip-wizard - manage connections\n" " --internet - configure internet\n" " --wizard - like --add" msgstr "" "[--add]\n" " --add - asistentul „adaugă o interfață de rețea”\n" " --del - asistentul „înlătură o interfață de rețea”\n" " --skip-wizard - gestionează conexiunile\n" " --internet - configurează Internet\n" " --wizard - precum --add" #: standalone.pm:72 #, c-format msgid "" "\n" "Font Importation and monitoring application\n" "\n" "OPTIONS:\n" "--windows_import : import from all available windows partitions.\n" "--xls_fonts : show all fonts that already exist from xls\n" "--install : accept any font file and any directory.\n" "--uninstall : uninstall any font or any directory of font.\n" "--replace : replace all font if already exist\n" "--application : 0 none application.\n" " : 1 all application available supported.\n" " : name_of_application like so for staroffice \n" " : and gs for ghostscript for only this one." msgstr "" "\n" "Aplicație de supraveghere și importare de fonturi\n" "\n" "OPTIONS:\n" "--windows_import : importă de pe toate partițiile Windows disponibile.\n" "--xls_fonts : afișează toate fonturile existente din xls\n" "--install : acceptă orice fișier și director de fonturi.\n" "--uninstall : dezinstalează orice fișier sau director de fonturi.\n" "--replace : înlocuiește toate fonturile deja existente\n" "--application : 0 = nici o aplicație.\n" " : 1 = toate aplicațiile disponibile și suportate.\n" " : nume_aplicație = staroffice de exemplu\n" " : și gs pentru ghostscript (numai pentru aceasta)." #: standalone.pm:87 #, fuzzy, c-format msgid "" "[OPTIONS]...\n" "%s Terminal Server Configurator\n" "--enable : enable MTS\n" "--disable : disable MTS\n" "--start : start MTS\n" "--stop : stop MTS\n" "--adduser : add an existing system user to MTS (requires username)\n" "--deluser : delete an existing system user from MTS (requires " "username)\n" "--addclient : add a client machine to MTS (requires MAC address, IP, " "nbi image name)\n" "--delclient : delete a client machine from MTS (requires MAC address, " "IP, nbi image name)" msgstr "" "[OPTIONS]...\n" "Configurare Mageia Linux Terminal Server\n" "--enable : activează MTS\n" "--disable : dezactivează MTS\n" "--start : pornește MTS\n" "--stop : oprește MTS\n" "--adduser : adaugă la MTS un utilizator existent (nume de utiilizator " "necesar)\n" "--deluser : înlătură din MTS un utilizator al sistemului (nume de " "utilizator necesar)\n" "--addclient : adaugă la MTS o mașină client (adresă MAC, IP și nume " "imagine nbi necesare)\n" "--delclient : înlătură din MTS o mașină client (adresă MAC, IP și nume " "imagine nbi necesare)" #: standalone.pm:99 #, c-format msgid "[keyboard]" msgstr "[tastatură]" #: standalone.pm:100 #, c-format msgid "[--file=myfile] [--word=myword] [--explain=regexp] [--alert]" msgstr "[--file=myfile] [--word=myword] [--explain=regexp] [--alert]" #: standalone.pm:101 #, c-format msgid "" "[OPTIONS]\n" "Network & Internet connection and monitoring application\n" "\n" "--defaultintf interface : show this interface by default\n" "--connect : connect to internet if not already connected\n" "--disconnect : disconnect to internet if already connected\n" "--force : used with (dis)connect : force (dis)connection.\n" "--status : returns 1 if connected 0 otherwise, then exit.\n" "--quiet : do not be interactive. To be used with (dis)connect." msgstr "" "[OPTIONS]\n" "Aplicație de supraveghere a conexiunii de rețea și Internet\n" "\n" "--defaultintf interface : afișează implicit această interfață\n" "--connect : se conectează la Internet (dacă nu este conectat)\n" "--disconnect : se deconectează de la Internet, dacă este conectat\n" "--force : utilizat cu (de)conectat : forțează (de)conectarea\n" "--status : întoarce 1 dacă este aconectat, altfel întoarce 0, apoi iese\n" "--quiet : mod neinteractiv, a se utiliza cu (de)conectat" #: standalone.pm:111 #, fuzzy, c-format msgid "" "[OPTION]...\n" " --no-confirmation do not ask first confirmation question in %s Update " "mode\n" " --no-verify-rpm do not verify packages signatures\n" " --changelog-first display changelog before filelist in the " "description window\n" " --merge-all-rpmnew propose to merge all .rpmnew/.rpmsave files found" msgstr "" "[OPTION]...\n" " --no-confirmation nu cere prima confirmare în modul Mageia Update\n" " --no-verify-rpm nu se verifică semnăturile pachetelor\n" " --changelog-first afișează istoricul modificărilor înaintea " "fișierelor în fereastra descriptivă\n" " --merge-all-rpmnew propune fuzionarea tuturor fișierelor .rpmnew/." "rpmsave întîlnite" #: standalone.pm:116 #, c-format msgid "" "[--manual] [--device=dev] [--update-sane=sane_source_dir] [--update-" "usbtable] [--dynamic=dev]" msgstr "" "[--manual] [--device=disp] [--update-sane=dir_sursă_sane] [--update-" "usbtable] [--dynamic=disp]" #: standalone.pm:117 #, c-format msgid "" " [everything]\n" " XFdrake [--noauto] monitor\n" " XFdrake resolution" msgstr "" " [everything]\n" " XFdrake [--noauto] monitor\n" " XFdrake resolution" #: standalone.pm:153 #, c-format msgid "" "\n" "Usage: %s [--auto] [--beginner] [--expert] [-h|--help] [--noauto] [--" "testing] [-v|--version] " msgstr "" "\n" "Utilizare: %s [--auto] [--beginner] [--expert] [-h|--help] [--noauto] [--" "testing] [-v|--version] " #: timezone.pm:161 timezone.pm:162 #, c-format msgid "All servers" msgstr "Toate serverele" #: timezone.pm:196 #, c-format msgid "Global" msgstr "Global" #: timezone.pm:199 #, c-format msgid "Africa" msgstr "Africa" #: timezone.pm:200 #, c-format msgid "Asia" msgstr "Asia" #: timezone.pm:201 #, c-format msgid "Europe" msgstr "Europa" #: timezone.pm:202 #, c-format msgid "North America" msgstr "America de nord" #: timezone.pm:203 #, c-format msgid "Oceania" msgstr "Oceania" #: timezone.pm:204 #, c-format msgid "South America" msgstr "America de sud" #: timezone.pm:213 #, c-format msgid "Hong Kong" msgstr "Hong Kong" #: timezone.pm:250 #, c-format msgid "Russian Federation" msgstr "Federația Rusă" #: timezone.pm:258 #, c-format msgid "Yugoslavia" msgstr "Yugoslavia" #: ugtk2.pm:812 #, c-format msgid "Is this correct?" msgstr "Este corect?" #: ugtk2.pm:874 #, c-format msgid "You have chosen a file, not a directory" msgstr "Ați ales un fișier, nu un director" #: wizards.pm:95 #, c-format msgid "" "%s is not installed\n" "Click \"Next\" to install or \"Cancel\" to quit" msgstr "" "%s nu este instalat\n" "Apăsați „Înainte” pentru instalare sau „Anulează” pentru părăsire" #: wizards.pm:99 #, c-format msgid "Installation failed" msgstr "Instalarea a eșuat" #~ msgid "" #~ "You agree not to (i) sell, export, re-export, transfer, divert, disclose " #~ "technical data, or \n" #~ "dispose of, any Software to any person, entity, or destination prohibited " #~ "by US export laws \n" #~ "or regulations including, without limitation, Cuba, Iran, North Korea, " #~ "Sudan and Syria; or \n" #~ "(ii) use any Software for any use prohibited by the laws or regulations " #~ "of the United States.\n" #~ "\n" #~ "U.S. GOVERNMENT RESTRICTED RIGHTS. \n" #~ "\n" #~ "The Software Products and any accompanying documentation are and shall be " #~ "deemed to be \n" #~ "\"commercial computer software\" and \"commercial computer software " #~ "documentation,\" respectively, \n" #~ "as defined in DFAR 252.227-7013 and as described in FAR 12.212. Any use, " #~ "modification, reproduction, \n" #~ "release, performance, display or disclosure of the Software and any " #~ "accompanying documentation \n" #~ "by the United States Government shall be governed solely by the terms of " #~ "this Agreement and any \n" #~ "other applicable licence agreements and shall be prohibited except to the " #~ "extent expressly permitted \n" #~ "by the terms of this Agreement." #~ msgstr "" #~ "Prin prezentul angajament acceptați să nu (i) vindeți, exportați, re-" #~ "exportați, transferați, deturnați, \n" #~ "dezvăluiți date tehnice, nici punerea la dispoziție a nici unei persoane, " #~ "entități sau destinații \n" #~ "interzise de reglementările și legile de export ale Statelor Unite, fără " #~ "limitare la Cuba, Iran, Coreea \n" #~ "de Nord, Sudan și Siria; sau (ii) folosirea programului într-un scop " #~ "interzis de legile și reglementările \n" #~ "Statelor Unite.\n" #~ "\n" #~ "DREPTURI RESTRÎNSE ALE GUVERNULUI STATELOR UNITE. \n" #~ "\n" #~ "Programele și orice documentație însoțitoare sînt și trebuiesc " #~ "considerate drept \n" #~ "„programe de calculator comerciale” și respectiv „documentație de " #~ "programe de calculator comerciale”, \n" #~ "precum sînt definite în articolul DFAR 252.227-7013 și descrise în " #~ "articolul FAR 12.212. Orice utilizare, modificare, reproducere, \n" #~ "difuzare, demonstrare, afișare sau dezvăluire a programelor precum și " #~ "orice documentație însoțitoare \n" #~ "ale guvernului Statelor Unite vor fi reglementate exclusiv de termeni din " #~ "prezentul acord \n" #~ "precum și orice alte acorduri de licență aplicabile și este interzisă cu " #~ "excepția cazului permis în mod expres \n" #~ "de termenii prezentului acord." #~ msgid "" #~ "Most of these components, but excluding the applications and software " #~ "provided by Google Inc. or \n" #~ "its subsidiaries (\"Google Software\"), are governed under the terms and " #~ "conditions of the GNU \n" #~ "General Public Licence, hereafter called \"GPL\", or of similar licenses." #~ msgstr "" #~ "Majoritatea acestor componente, cu excepția aplicațiilor furnizate de " #~ "Google Inc. sau \n" #~ "subsidiarii săi („Google Software”), sînt guvernate de termenii și " #~ "condițiile licenței GNU \n" #~ "General Public Licence, pe scurt „GPL”, sau de licențe similare." #~ msgid "" #~ "Most of these components are governed under the terms and conditions of " #~ "the GNU \n" #~ "General Public Licence, hereafter called \"GPL\", or of similar licenses." #~ msgstr "" #~ "Multe din aceste componente sînt guvernate de termenii și condițiile GNU " #~ "General\n" #~ "Public Licence, numită pe scurt și „GPL”, sau de licențe similare." #~ msgid "" #~ "6. Additional provisions applicable to those Software Products provided " #~ "by Google Inc. (\"Google Software\")\n" #~ "\n" #~ "(a) You acknowledge that Google or third parties own all rights, title " #~ "and interest in and to the Google \n" #~ "Software, portions thereof, or software provided through or in " #~ "conjunction with the Google Software, including\n" #~ "without limitation all Intellectual Property Rights. \"Intellectual " #~ "Property Rights\" means any and all rights \n" #~ "existing from time to time under patent law, copyright law, trade secret " #~ "law, trademark law, unfair competition \n" #~ "law, database rights and any and all other proprietary rights, and any " #~ "and all applications, renewals, extensions \n" #~ "and restorations thereof, now or hereafter in force and effect worldwide. " #~ "You agree not to modify, adapt, \n" #~ "translate, prepare derivative works from, decompile, reverse engineer, " #~ "disassemble or otherwise attempt to derive \n" #~ "source code from Google Software. You also agree to not remove, obscure, " #~ "or alter Google's or any third party's \n" #~ "copyright notice, trademarks, or other proprietary rights notices affixed " #~ "to or contained within or accessed in \n" #~ "conjunction with or through the Google Software. \n" #~ "\n" #~ "(b) The Google Software is made available to you for your personal, non-" #~ "commercial use only.\n" #~ "You may not use the Google Software in any manner that could damage, " #~ "disable, overburden, or impair Google's \n" #~ "search services (e.g., you may not use the Google Software in an " #~ "automated manner), nor may you use Google \n" #~ "Software in any manner that could interfere with any other party's use " #~ "and enjoyment of Google's search services\n" #~ "or the services and products of the third party licensors of the Google " #~ "Software.\n" #~ "\n" #~ "(c) Some of the Google Software is designed to be used in conjunction " #~ "with Google's search and other services.\n" #~ "Accordingly, your use of such Google Software is also defined by Google's " #~ "Terms of Service located at \n" #~ "http://www.google.com/terms_of_service.html and Google's Toolbar Privacy " #~ "Policy located at \n" #~ "http://www.google.com/support/toolbar/bin/static.py?page=privacy.html.\n" #~ "\n" #~ "(d) Google Inc. and each of its subsidiaries and affiliates are third " #~ "party beneficiaries of this contract \n" #~ "and may enforce its terms." #~ msgstr "" #~ "6. Dispoziții suplimentare aplicabile pentru programele oferite de Google " #~ "Inc. („Google Software”)\n" #~ "\n" #~ "(a) Recunoașteți că Google sau terți dețin toate drepturile, titlul și " #~ "interesul în și pentru programele \n" #~ "Google, porțiuni ale acestora sau programe furnizate împreună cu Google " #~ "Software, incluzînd fără\n" #~ "limitare toate drepturile de proprietate intelectuală. „Drepturille de " #~ "proprietate intelectuală” înseamnă \n" #~ "oricare și toate drepturile în conformitate cu legislația existentă de-a " #~ "lungul timpului privind brevetele \n" #~ "de invenții, legea drepturilor de autor, legile secretului comercial, " #~ "dreptul mărcilor comerciale, legile privind \n" #~ "concurența neloială, drepturile privind de bazele de date, precum oricare " #~ "și toate celelalte drepturi de \n" #~ "proprietate, oricare și toate aplicațiile, reînnoirile, extensiile și " #~ "restabilirile acestora, acum sau în vigoare \n" #~ "în întreaga lume. Sînteți de acord să nu modificați, adaptați, traduceți, " #~ "pregătiți lucrări derivate, decompilați, \n" #~ "inversați, dezasamblați sau altfel spus să încercați să obțineți codul " #~ "sursă al programelor de la Google. \n" #~ "De asemenea, sînteți de acord să nu eliminați, umbriți, alterați notele " #~ "relative la drepturile de autor, \n" #~ "mărcilor înregistrate sau altor drepturi de proprietate ale lui Google " #~ "sau terților, atașate la, sau conținute în, \n" #~ "sau accesate împreună cu sau prin intermediul produselor Google " #~ "Software. \n" #~ "\n" #~ "(b) Produsele Google Software vă sînt puse la dispoziție numai pentru " #~ "uzul personal și necomercial. \n" #~ "Nu aveți dreptul să utilizați programele Google în orice mod care ar " #~ "putea deteriora, dezactiva, supraîncărca \n" #~ "sau afecta serviciile de căutare Google (de exemplu, nu puteți utiliza " #~ "programele Google în mod automat), \n" #~ "și nici nu puteți utiliza programele Google în orice alt mod care ar " #~ "putea interfera cu orice altă parte care \n" #~ "utilizează și beneficiază de serviciile de căutare Google sau de " #~ "serviciile și produsele unui furnizor terț \n" #~ "de programe Google.\n" #~ "\n" #~ "(c) O parte din produsele Google sînt proiectate pentru a fi utilizate " #~ "înmpreună cu serviciile de căutare Google \n" #~ "și alte servicii. În consecință, utilizarea unor astfel de programe " #~ "Google este specificată prin termenii ofertei de \n" #~ "servicii Google localizați la adresa http://www.google.com/" #~ "terms_of_service.html și a politicii de confidențialitate \n" #~ "Google Toolbar ce se află la http://www.google.com/support/toolbar/bin/" #~ "static.py?page=privacy.html. \n" #~ "\n" #~ "(d) Google Inc., toți subsidiarii și afiliații săi sînt beneficiari terți " #~ "ai prezentului contract și își pot impune \n" #~ "condițiile lor." #~ msgid "Restrict command line options" #~ msgstr "Limitează opțiunile liniei de comandă" #~ msgid "restrict" #~ msgstr "limitează" #~ msgid "" #~ "Option ``Restrict command line options'' is of no use without a password" #~ msgstr "" #~ "Opțiunea „Limitează opțiunile liniei de comandă” e inutilă fără parolă" #~ msgid "Use an encrypted filesystem" #~ msgstr "Folosește un sistem de fișiere criptat" #~ msgid "" #~ "To ensure data integrity after resizing the partition(s),\n" #~ "filesystem checks will be run on your next boot into Microsoft Windows®" #~ msgstr "" #~ "Pentru a asigura integritatea datelor după redimensionarea\n" #~ "partițiilor, o verificare de sistem de fișiere va fi lansată la viitoarea " #~ "demarare de Microsoft Windows®" #~ msgid "Use the Microsoft Windows® partition for loopback" #~ msgstr "Utilizează partiția Microsoft Windows® pentru loopback" #~ msgid "Which partition do you want to use for Linux4Win?" #~ msgstr "Ce partiție doriți să folosiți pentru a instala Linux4Win?" #~ msgid "Choose the sizes" #~ msgstr "Alegeți mărimile" #~ msgid "Root partition size in MB: " #~ msgstr "Mărimea partiției root în Mo: " #~ msgid "Swap partition size in MB: " #~ msgstr "Mărimea partiției swap în Mo: " #~ msgid "" #~ "There is no FAT partition to use as loopback (or not enough space left)" #~ msgstr "" #~ "Nu se poate utiliza nici o partiție FAT ca loopback (sau nu mai este " #~ "spațiu suficient)" #~ msgid "" #~ "The FAT resizer is unable to handle your partition, \n" #~ "the following error occurred: %s" #~ msgstr "" #~ "Redimensionatorul FAT nu vă poate gestiona partiția, \n" #~ "s-a produs următoarea eroare: %s" #~ msgid "Automatic routing from ALSA to PulseAudio" #~ msgstr "Rutare automată din ALSA către Pulse Audio" #~ msgid "Please log out and then use Ctrl-Alt-BackSpace" #~ msgstr "Deautentificați-vă și apăsați simultan Ctrl-Alt-BackSpace" #~ msgid "Welcome To Crackers" #~ msgstr "Bun venit Piraților" #~ msgid "Poor" #~ msgstr "Redusă" #~ msgid "High" #~ msgstr "Ridicată" #~ msgid "Higher" #~ msgstr "Foarte ridicată" #~ msgid "Paranoid" #~ msgstr "Paranoică" #~ msgid "" #~ "This level is to be used with care. It makes your system more easy to " #~ "use,\n" #~ "but very sensitive. It must not be used for a machine connected to " #~ "others\n" #~ "or to the Internet. There is no password access." #~ msgstr "" #~ "Va trebui să folosiți cu grijă acest nivel. Aceasta face ca sistemul să " #~ "fie\n" #~ "mai ușor de folosit, dar foarte sensibil: nu trebuie să fie folosit " #~ "pentru un\n" #~ "calculator conectat cu altele sau la Internet. Nu există nici o parolă de " #~ "acces." #~ msgid "" #~ "Passwords are now enabled, but use as a networked computer is still not " #~ "recommended." #~ msgstr "" #~ "Parolele sînt acum activate, dar utilizarea calculatorului într-o rețea " #~ "tot nu este recomandată." #~ msgid "" #~ "There are already some restrictions, and more automatic checks are run " #~ "every night." #~ msgstr "" #~ "Deja există unele restricții și sînt executate în fiecare noapte mai " #~ "multe verificări automate" #~ msgid "" #~ "This is similar to the previous level, but the system is entirely closed " #~ "and security features are at their maximum." #~ msgstr "" #~ "Avem funcționalitățile nivelului anterior de securitate, dar acum " #~ "sistemul este complet închis și securitatea este la maximum."