summaryrefslogtreecommitdiffstats
path: root/perl-install/detect_devices.pm
blob: 541c0762f07c55b2e60a5d5be500aad29cfbafbd (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
package detect_devices; # $Id$

use diagnostics;
use strict;
use vars qw($pcitable_addons $usbtable_addons);

#-######################################################################################
#- misc imports
#-######################################################################################
use log;
use common;
use devices;
use run_program;
use c;

#-#####################################################################################
#- Globals
#-#####################################################################################
my %serialprobe;

#-######################################################################################
#- Functions
#-######################################################################################
sub dev_is_devfs() { -e "/dev/.devfsd" } #- no $::prefix, returns false during install and that's nice :)


sub get() {
    #- Detect the default BIOS boot harddrive is kind of tricky. We may have IDE,
    #- SCSI and RAID devices on the same machine. From what I see so far, the default
    #- BIOS boot harddrive will be
    #- 1. The first IDE device if IDE exists. Or
    #- 2. The first SCSI device if SCSI exists. Or
    #- 3. The first RAID device if RAID exists.

    getIDE(), getSCSI(), getDAC960(), getCompaqSmartArray(), getATARAID();
}
sub hds()         { grep { may_be_a_hd($_) } get() }
sub tapes()       { grep { $_->{media_type} eq 'tape' } get() }
sub cdroms()      { grep { $_->{media_type} eq 'cdrom' } get() }
sub burners()     { grep { isBurner($_) } cdroms() }
sub dvdroms()     { grep { isDvdDrive($_) } cdroms() }
sub raw_zips()    { grep { member($_->{media_type}, 'fd', 'hd') && isZipDrive($_) } get() }
#-sub jazzs     { grep { member($_->{media_type}, 'fd', 'hd') && isJazzDrive($_) } get() }
sub ls120s()      { grep { member($_->{media_type}, 'fd', 'hd') && isLS120Drive($_) } get() }
sub zips()        {
    map { 
	$_->{device} .= 4; 
	$_->{devfs_device} = $_->{devfs_prefix} . '/part4'; 
	$_;
    } raw_zips();
}

sub floppies() {
    require modules;
    eval { modules::load("floppy") };
    my @fds = $@ ? () : map {
	my $info = (!dev_is_devfs() || -e "/dev/fd$_") && c::floppy_info(devices::make("fd$_"));
	if_($info && $info ne '(null)', { device => "fd$_", devfs_device => "floppy/$_", media_type => 'fd', info => $info })
    } qw(0 1);

    my @ide = ls120s() and eval { modules::load("ide-floppy") };

    eval { modules::load("usb-storage") } if usbStorage();
    my @scsi = grep { $_->{media_type} eq 'fd' } getSCSI();
    @ide, @scsi, @fds;
}
sub floppies_dev() { map { $_->{device} } floppies() }
sub floppy() { first(floppies_dev()) }
#- example ls120, model = "LS-120 SLIM 02 UHD Floppy"

sub removables() {
    floppies(), cdroms(), zips();
}

sub get_sys_cdrom_info {
    my (@drives) = @_;

    my @drives_order;
    foreach (cat_("/proc/sys/dev/cdrom/info")) {
	my ($t, $l) = split ':';
	my @l;
	@l = split(' ', $l) if $l;
	if ($t eq 'drive name') {
	    @drives_order = map {
		my $dev = $_;
		find { $_->{device} eq $dev } @drives;
	    } @l;
	} else {
	    my $capacity;
	    if ($t eq 'Can write CD-R') {
		$capacity = 'burner';
	    } elsif ($t eq 'Can read DVD') {
		$capacity = 'DVD';
	    }
	    if ($capacity) {
		each_index {
		    ($drives_order[$::i] || {})->{capacity} .= "$capacity " if $_;
		} @l;
	    }
	}
    }
}

sub get_usb_storage_info_24 {
    my (@l) = @_;

    my %usbs = map {
	my $s = cat_(glob_("$_/*"));
	my ($host) = $s =~ /^\s*Host scsi(\d+):/m; #-#
	my ($vendor_name) = $s =~ /^\s*Vendor: (.*)/m;
	my ($vendor, $id) = $s =~ /^\s*GUID: (....)(....)/m;
	if_(defined $host, $host => { vendor_name => $vendor_name, usb_vendor => hex $vendor, usb_id => hex $id });
    } glob_('/proc/scsi/usb-storage-*') or return;

    #- only the entries matching the following conditions can be usb-storage devices
    @l = grep { $_->{channel} == 0 && $_->{id} == 0 && $_->{lun} == 0 } @l;
    my %l; push @{$l{$_->{host}}}, $_ foreach @l;

    foreach my $host (keys %usbs) {
	my @choices = @{$l{$host} || []} or log::l("weird, host$host from /proc/scsi/usb-storage-*/* is not in /proc/scsi/scsi"), next;
	if (@choices > 1) {
	    @choices = grep { $_->{info} =~ /^\Q$usbs{$host}{vendor_name}/ } @choices;
	    @choices or log::l("weird, can't find the good entry host$host from /proc/scsi/usb-storage-*/* in /proc/scsi/scsi"), next;
	    @choices == 1 or log::l("argh, can't determine the good entry host$host from /proc/scsi/usb-storage-*/* in /proc/scsi/scsi"), next
	}
	add2hash($choices[0], $usbs{$host});
    }
    complete_usb_storage_info(grep { exists $_->{usb_vendor} } @l);

    @l;
}

sub complete_usb_storage_info {
    my (@l) = @_;

    my @usb = grep { exists $_->{usb_vendor} } @l;

    foreach my $usb (usb_probe()) {
	if (my $e = find { $_->{usb_vendor} == $usb->{vendor} && $_->{usb_id} == $usb->{id} } @usb) {
	    $e->{"usb_$_"} = $usb->{$_} foreach keys %$usb;
	}
    }
}

sub get_devfs_devices {
    my (@l) = @_;

    my %h = (cdrom => 'cd', hd => 'disc');

    foreach (@l) {
	$_->{devfs_prefix} = sprintf('scsi/host%d/bus%d/target%d/lun%d', $_->{host}, $_->{channel}, $_->{id}, $_->{lun})
	  if $_->{bus} eq 'SCSI';

	my $t = $h{$_->{media_type}} or next;
	$_->{devfs_device} = $_->{devfs_prefix} . '/' . $t;
    }
}

sub isBurner { 
    my ($e) = @_;
    $e->{capacity} =~ /burner/ and return 1;
      
    #- do not work for SCSI
    my $f = tryOpen($e->{device}); #- SCSI burner are not detected this way.
    $f && c::isBurner(fileno($f));
}
sub isDvdDrive {
    my ($e) = @_;
    $e->{capacity} =~ /DVD/ || $e->{info} =~ /DVD/ and return 1;

    #- do not work for SCSI
    my $f = tryOpen($e->{device});
    $f && c::isDvdDrive(fileno($f));
}
sub isZipDrive { $_[0]{info} =~ /ZIP\s+\d+/ } #- accept ZIP 100, untested for bigger ZIP drive.
sub isJazzDrive { $_[0]{info} =~ /\bJAZZ?\b/i } #- accept "iomega jaz 1GB"
sub isLS120Drive { $_[0]{info} =~ /LS-?120|144MB/ }
sub isRemovableUsb { begins_with($_[0]{usb_media_type} || '', 'Mass Storage') && usb2removable($_[0]) }
sub isKeyUsb { begins_with($_[0]{usb_media_type} || '', 'Mass Storage') && $_[0]{media_type} eq 'hd' }
sub isFloppyUsb { $_[0]{usb_driver} && $_[0]{usb_driver} eq 'Removable:floppy' }
sub may_be_a_hd { 
    my ($e) = @_;
    $e->{media_type} eq 'hd' && !(
	isZipDrive($e) 
           || isLS120Drive($e)
           || begins_with($e->{usb_media_type} || '', 'Mass Storage|Floppy (UFI)')
    );
}

sub getSCSI_24() {
    my $err = sub { log::l("ERROR: unexpected line in /proc/scsi/scsi: $_[0]") };

    my ($first, @l) = common::join_lines(cat_("/proc/scsi/scsi")) or return;
    $first =~ /^Attached devices:/ or $err->($first);

    @l = map_index {
	my ($host, $channel, $id, $lun) = m/^Host: scsi(\d+) Channel: (\d+) Id: (\d+) Lun: (\d+)/ or $err->($_);
	my ($vendor, $model) = /^\s*Vendor:\s*(.*?)\s+Model:\s*(.*?)\s+Rev:/m or $err->($_);
	my ($type) = /^\s*Type:\s*(.*)/m or $err->($_);
	{ info => "$vendor $model", host => $host, channel => $channel, id => $id, lun => $lun, 
	  device => "sg$::i", raw_type => $type, bus => 'SCSI' };
    } @l;

    get_usb_storage_info_24(@l);

    each_index {
	my $dev = "sd" . chr($::i + ord('a'));
	put_in_hash $_, { device => $dev, media_type => isFloppyUsb($_) ? 'fd' : 'hd' };
    } grep { $_->{raw_type} =~ /Direct-Access|Optical Device/ } @l;

    each_index {
	put_in_hash $_, { device => "st$::i", media_type => 'tape' };
    } grep { $_->{raw_type} =~ /Sequential-Access/ } @l;

    each_index {
	put_in_hash $_, { device => "sr$::i", media_type => 'cdrom' };
    } grep { $_->{raw_type} =~ /CD-ROM|WORM/ } @l;

    # Old hp scanners report themselves as "Processor"s
    # (see linux/include/scsi/scsi.h and sans-find-scanner.1)
    each_index {
	put_in_hash $_, { media_type => 'scanner' };
    } grep { $_->{raw_type} =~ /Scanner/ || $_->{raw_type} =~ /Processor / } @l;

    delete $_->{raw_type} foreach @l;

    get_devfs_devices(@l);
    get_sys_cdrom_info(@l);
    @l;
}

sub getSCSI_26() {
    my $dev_dir = '/sys/bus/scsi/devices';

    my @scsi_types = (
	"Direct-Access",
	"Sequential-Access",
	"Printer",
	"Processor",
	"WORM",
	"CD-ROM",
	"Scanner",
	"Optical Device",
	"Medium Changer",
	"Communications",
    );

    my @l = map {
	my ($host, $channel, $id, $lun) = split ':' or log::l("bad entry in $dev_dir: $_"), next;

	my $dir = "$dev_dir/$_";
	my $get = sub {
	    my $s = cat_("$dir/$_[0]");
	    $s =~ s/\s+$//;
	    $s;
	};

	my $usb_dir = readlink("$dir/block/device") =~ m!/usb! && "$dir/block/device/../../..";
	my $get_usb = sub { chomp_(cat_("$usb_dir/$_[0]")) };

	my ($device) = readlink("$dir/block") =~ m!/block/(.*)!;

	my $media_type = ${{ st => 'tape', sr => 'cdrom', sd => 'hd' }}{substr($device, 0, 2)};
	# Old hp scanners report themselves as "Processor"s
	# (see linux/include/scsi/scsi.h and sans-find-scanner.1)
	my $raw_type = $scsi_types[$get->('type')];
	$media_type ||= 'scanner' if $raw_type =~ /Scanner|Processor/;

	{ info =>  $get->('vendor') . ' ' . $get->('model'), host => $host, channel => $channel, id => $id, lun => $lun, 
	  bus => 'SCSI', media_type => $media_type, device => $device,
	    $usb_dir ? (
	  usb_vendor => hex($get_usb->('idVendor')), usb_id => hex($get_usb->('idProduct')),
	    ) : (),
        };
    } all($dev_dir);

    @l = sort { $a->{host} <=> $b->{host} || $a->{channel} <=> $b->{channel} || $a->{id} <=> $b->{id} || $a->{lun} <=> $b->{lun} } @l;

    complete_usb_storage_info(@l);

    foreach (@l) {
	$_->{media_type} = 'fd' if $_->{media_type} eq 'hd' && isFloppyUsb($_);
    }

    get_devfs_devices(@l);
    get_sys_cdrom_info(@l);
    @l;
}
sub getSCSI() { c::kernel_version() =~ /^\Q2.6/ ? getSCSI_26() : getSCSI_24() }


my %eide_hds = (
    "ASUS" => "Asus",
    "CD-ROM CDU" => "Sony",
    "CD-ROM Drive/F5D" => "ASUSTeK",
    "Compaq" => "Compaq",
    "CONNER" => "Conner Peripherals",
    "IBM" => "IBM",
    "FUJITSU" => "Fujitsu",
    "HITACHI" => "Hitachi",
    "Lite-On" => "Lite-On Technology Corp.",
    "LITE-ON" => "Lite-On Technology Corp.",
    "LTN" => "Lite-On Technology Corp.",
    "IOMEGA" => "Iomega",
    "MAXTOR" => "Maxtor",
    "Maxtor" => "Maxtor",
    "Micropolis" => "Micropolis",
    "Pioneer" => "Pioneer",
    "PLEXTOR" => "Plextor",
    "QUANTUM" => "Quantum", 
    "SAMSUNG" => "Samsung",
    "Seagate " => "Seagate Technology",
    "ST3" => "Seagate Technology",
    "TEAC" => "Teac",
    "TOSHIBA" => "Toshiba",
    "WDC" => "Western Digital Corp.",
);


sub getIDE() {
    my @idi;

    #- what about a system with absolutely no IDE on it, like some sparc machine.
    -e "/proc/ide" or return ();

    #- Great. 2.2 kernel, things are much easier and less error prone.
    foreach my $d (sort @{[glob_('/proc/ide/hd*')]}) {
	cat_("$d/driver") =~ /ide-scsi/ and next; #- already appears in /proc/scsi/scsi
	my $t = chomp_(cat_("$d/media"));
	my $type = ${{ disk => 'hd', cdrom => 'cdrom', tape => 'tape', floppy => 'fd' }}{$t} or next;
	my $info = chomp_(cat_("$d/model")) || "(none)";

	my $num = ord(($d =~ /(.)$/)[0]) - ord 'a';
	my ($vendor, $model) = map { 
	    if_($info =~ /^$_(-|\s)*(.*)/, $eide_hds{$_}, $2);
	} keys %eide_hds;

	my $host = $num;
	($host, my $id) = divide($host, 2);
	($host, my $channel) = divide($host, 2);
	my $devfs_prefix = sprintf('ide/host%d/bus%d/target%d/lun0', $host, $channel, $id);

	push @idi, { media_type => $type, device => basename($d), 
		     devfs_prefix => $devfs_prefix,
		     info => $info, host => $host, channel => $channel, id => $id, bus => 'ide', 
		     if_($vendor, Vendor => $vendor), if_($model, Model => $model) };
    }
    get_devfs_devices(@idi);
    get_sys_cdrom_info(@idi);
    @idi;
}

sub block_devices() {
    -d '/sys/block' 
      ? map { s|!|/|; $_ } all('/sys/block') 
      : map { $_->{dev} } devices::read_proc_partitions_raw();
}

sub getCompaqSmartArray() {
    my (@idi, $f);

    foreach ('array/ida', 'cpqarray/ida', 'cciss/cciss') {
	my $prefix = "/proc/driver/$_"; #- kernel 2.4 places it here
	$prefix = "/proc/$_" if !-e "${prefix}0"; #- kernel 2.2

	my ($name) = m|/(.*)|;
	for (my $i = 0; -r ($f = "${prefix}$i"); $i++) {
	    my @raw_devices = cat_($f) =~ m|^\s*($name/.*?):|gm;
	    @raw_devices or @raw_devices = grep { m!^$name/! } block_devices();

	    foreach my $raw_device (@raw_devices) {
		my $device = -d "/dev/$raw_device" ? "$raw_device/disc" : $raw_device;
		push @idi, { device => $device, prefix => $raw_device . 'p', 
			     info => "Compaq RAID logical disk",
			     media_type => 'hd', bus => $name };
	    }
	}
    }
    @idi;
}

sub getDAC960() {
    my %idi;

    #- We are looking for lines of this format:DAC960#0:
    #- /dev/rd/c0d0: RAID-7, Online, 17928192 blocks, Write Thru0123456790123456789012
    foreach (syslog()) {
	my ($device, $info) = m|/dev/(rd/.*?): (.*?),| or next;
	$idi{$device} = { info => $info, media_type => 'hd', device => $device, prefix => $device . 'p', bus => 'dac960' };
    }
    values %idi;
}

sub getATARAID() {
    my %l;
    foreach (syslog()) {
	my ($device) = m|^\s*(ataraid/d\d+):| or next;
	$l{$device} = { info => 'ATARAID block device', media_type => 'hd', device => $device, prefix => $device . 'p', bus => 'ataraid' };
	log::l("ATARAID: $device");
    }
    values %l;
}


# cpu_name : arch() =~ /^alpha/ ? "cpu	" :
# arch() =~ /^ppc/ ? "processor" : "vendor_id"

# cpu_model : arch() =~ /^alpha/ ? "cpu model" :
# arch() =~ /^ppc/ ? "cpu  " : "model name"

# cpu_freq = arch() =~ /^alpha/ ? "cycle frequency [Hz]" :
# arch() =~ /^ppc/ ? "clock" : "cpu MHz"

sub getCPUs() { 
    my (@cpus, $cpu);
    foreach (cat_("/proc/cpuinfo")) {
	   if (/^processor/) { # ix86 specific
		  push @cpus, $cpu if $cpu;
		  $cpu = {};
	   }
	   $cpu->{$1} = $2 if /^([^\t]+).*:\s(.*)$/;
	   $cpu->{processor}++ if $1 eq "processor";
    }
    push @cpus, $cpu;
    @cpus;
}

sub getSoundDevices() {
    modules::probe_category('multimedia/sound');
}

sub isTVcard { member($_[0]{driver}, qw(bttv cx8800 saa7134 usbvision)) }

sub getTVcards() { 
    grep { isTVcard($_) } detect_devices::probeall();
}

sub getSerialModem {
    my ($modules_conf, $o_mouse) = @_;
    my $mouse = $o_mouse || {};
    $mouse->{device} = readlink "/dev/mouse";
    my $serdev = arch() =~ /ppc/ ? "macserial" : "serial";
    eval { modules::load($serdev) };

    my @modems;

    probeSerialDevices();
    foreach my $port (map { "ttyS$_" } (0..7)) {
	next if $mouse->{device} =~ /$port/;
     my $device = "/dev/$port";
	next if !-e $device || !hasModem($device);
     $serialprobe{$device}{device} = $device;
     push @modems, $serialprobe{$device};
    }
    my @devs = pcmcia_probe();
    foreach my $modem (@modems) {
        #- add an alias for macserial on PPC
        $modules_conf->set_alias('serial', $serdev) if arch() =~ /ppc/ && $modem->{device};
        foreach (@devs) { $_->{type} =~ /serial/ and $modem->{device} = $_->{device} }
    }
    @modems;
}

sub getModem {
    my ($modules_conf) = @_;
    getSerialModem($modules_conf, {}), matching_driver('www\.linmodems\.org');
}

sub getSpeedtouch() {
    grep { $_->{description} eq 'Alcatel|USB ADSL Modem (Speed Touch)' } probeall();
}

sub getBewan() {
    grep { $_->{description} =~ /Bewan Systems\|PCI ADSL Modem|BEWAN ADSL USB/ } probeall();
    
}
sub getSagem() {
    grep { member($_->{driver}, qw(adiusbadsl eagle-usb)) } probeall();
}

# generate from the following from eci driver sources:
# perl -e 'while (<>) { print qq("$1$2",\n"$3$4",\n) if /\b([a-z\d]*)\s*([a-z\d]*)\s*([a-z\d]*)\s*([a-z\d]*)$/ }' <modems.db|sort|uniq
sub getECI() {
    my @ids = (
              "05090801",
              "05472131",
              "06590915",
              "071dac81",
              "08ea00c9",
              "09150001",
              "09150002",
              "091500ca",
              "091500e7",
              "09150101",
              "09150102",
              "09150204",
              "09150206",
              "09150802",
              "09150916",
              "09158000",
              "09158001",
              "0915ac82",
              "0baf00e6",
              "0e600100",
              "0e600101",
              "0fe88000",
              "16900203",
              "16900205",
             );
    grep { member(sprintf("%04x%04x%04x%04x", $_->{vendor}, $_->{id}, $_->{subvendor}, $_->{subid}), @ids) } usb_probe();
}

sub getNet() { 
    # we want LAN like interfaces here (eg: ath|br|eth|fddi|plip|tr|usb|wifi|wlan).
    # there's also bnep%d for bluetooth, bcp%d...
    # we do this by blacklisting the following interfaces:
    # - sit0 which is *always* created by net/ipv6/sit.c, thus is always created since net.agent loads ipv6 module
    # - ippp|isdn|plip|ppp (initscripts suggest that isdn%d can be created but kernel sources claim not)
    #   ippp%d are created by drivers/isdn/i4l/isdn_ppp.c
    #   plip%d are created by drivers/net/plip.c
    #   ppp%d are created by drivers/net/ppp_generic.c
    #
    # we need both detection schemes since:
    # - get_netdevices() use the SIOCGIFCONF ioctl that does not list interfaces that are down
    # - /proc/net/dev does not list VLAN and IP aliased interfaces

    grep { !/^(?:lo|ippp|isdn|plip|ppp|sit0)/ }
      uniq(
           (map { if_(/^\s*([A-Za-z0-9:\.]*):\s/, $1) } cat_("/proc/net/dev")),
           c::get_netdevices(),
          );
 }

#sub getISDN() {
#    mapgrep(sub {member (($_[0] =~ /\s*(\w*):/), @netdevices), $1 }, split(/\n/, cat_("/proc/net/dev")));
#}

# heavily inspirated from hidups driver from nut:
sub getUPS() {
    # nut/driver/hidups.h:
    my $UPS_USAGE   = 0x840004;
    my $POWER_USAGE = 0x840020;
    my $hiddev_find_application = sub {
        my ($fd, $usage) = @_;
        my $i = 0;
	my $ret;
        do { $i++ } while ($ret = ioctl($fd, c::HIDIOCAPPLICATION(), $i)) && $ret != $usage;
        return $ret == $usage ? 1 : 0;
    };

    (map { $_->{driver} = "mge-shut"; $_ } grep { $_->{DESCRIPTION} =~ /MGE UPS/ } values %serialprobe),
    (map {
        open(my $f, $_);
        if_(!$hiddev_find_application->($f, $UPS_USAGE) && !$hiddev_find_application->($f, $POWER_USAGE),
            { port => $_,
              name => c::get_usb_ups_name(fileno($f)),
              driver => "hidups",
            }
           );
    } -e "/dev/.devfsd" ? glob("/dev/usb/hid/hiddev*") : glob("/dev/usb/hiddev*"));
}

$pcitable_addons = <<'EOF';
# add here lines conforming the pcitable format (0xXXXX\t0xXXXX\t"\w+"\t".*")
EOF

$usbtable_addons = <<'EOF';
# add here lines conforming the usbtable format (0xXXXX\t0xXXXX\t"\w+"\t".*")
EOF

sub install_addons {
    my ($prefix) = @_;

    #- this test means install_addons can only be called after ldetect-lst has been installed.
    if (-d "$prefix/usr/share/ldetect-lst") {
	my $update = 0;
	foreach ([ 'pcitable.d', $pcitable_addons ], [ 'usbtable.d', $usbtable_addons ]) {
	    my ($dir, $str) = @$_;
	    -d "$prefix/usr/share/ldetect-lst/$dir" && $str =~ /^[^#]/m and $update = 1 and
	      output "$prefix/usr/share/ldetect-lst/$dir/95drakx.lst", $str;
	}
	$update and run_program::rooted($prefix, "/usr/sbin/update-ldetect-lst");
    }
}

sub add_addons {
    my ($addons, @l) = @_;

    foreach (split "\n", $addons) {
	/^\s/ and die qq(bad detect_devices::probeall_addons line "$_");
	s/^#.*//;
	s/"(.*?)"/$1/g;
	next if /^$/;
	my ($vendor, $id, $driver, $description) = split("\t", $_, 4) or die qq(bad detect_devices::probeall_addons line "$_");
	foreach (@l) {
	    $_->{vendor} == hex $vendor && $_->{id} == hex $id or next;
	    put_in_hash($_, { driver => $driver, description => $description });
	}
    }
    @l;
}

sub pci_probe() {
    add_addons($pcitable_addons, map {
	my %l;
	@l{qw(vendor id subvendor subid pci_bus pci_device pci_function media_type driver description)} = split "\t";
	$l{$_} = hex $l{$_} foreach qw(vendor id subvendor subid);
	$l{bus} = 'PCI';
	\%l
    } c::pci_probe());
}

sub usb_probe() {
    -e "/proc/bus/usb/devices" or return;

    add_addons($usbtable_addons, map {
	my %l;
	@l{qw(vendor id media_type driver description pci_bus pci_device)} = split "\t";
	$l{media_type} = join('|', grep { $_ ne '(null)' } split('\|', $l{media_type}));
	$l{$_} = hex $l{$_} foreach qw(vendor id);
	$l{bus} = 'USB';
	\%l
    } c::usb_probe());
}

sub firewire_probe() {
    my ($e, @l);
    foreach (cat_('/proc/bus/ieee1394/devices')) {
	if (m!Vendor/Model ID: (.*) \[(\w+)\] / (.*) \[(\w+)\]!) {
	    push @l, $e = { 
			   vendor => hex($2), id => hex($4), 
			   description => join('|', $1, $3),
			   bus => 'Firewire',
			  };
	} elsif (/Software Specifier ID: (\w+)/) {
	    $e->{specifier_id} = hex $1;
	} elsif (/Software Version: (\w+)/) {
	    $e->{specifier_version} = hex $1;	    
	}
    }
    foreach (@l) {
	if ($e->{specifier_id} == 0x00609e && $e->{specifier_version} == 0x010483) {
	    add2hash($_, { driver => 'sbp2', description => "Generic Firewire Storage Controller" });
	}
    }
    @l;
}

sub pcmcia_probe() {
    -e '/var/run/stab' || -e '/var/lib/pcmcia/stab' or return ();

    my (@devs, $desc);
    foreach (cat_('/var/run/stab'), cat_('/var/lib/pcmcia/stab')) {
	if (/^Socket\s+\d+:\s+(.*)/) {
	    $desc = $1;
	} else {
	    my (undef, $type, $module, undef, $device) = split;
	    push @devs, { description => $desc, driver => $module, type => $type, device => $device };
	}
    }
    @devs;
}

# pcmcia_probe provides field "device", used in network.pm
# => probeall with $probe_type is unsafe
sub probeall() {
    return if $::noauto;

    require sbus_probing::main;
    pci_probe(), usb_probe(), firewire_probe(), pcmcia_probe(), sbus_probing::main::probe();
}
sub matching_desc {
    my ($regexp) = @_;
    grep { $_->{description} =~ /$regexp/i } probeall();
}
sub matching_driver {
    my ($regexp) = @_;
    grep { $_->{driver} =~ /$regexp/i } probeall();
}
sub stringlist() { 
    map {
	sprintf("%-16s: %s%s%s", 
		$_->{driver} || 'unknown', 
		$_->{description} eq '(null)' ? sprintf("Vendor=0x%04x Device=0x%04x", $_->{vendor}, $_->{id}) : $_->{description},
		$_->{media_type} ? sprintf(" [%s]", $_->{media_type}) : '',
		$_->{subid} && $_->{subid} != 0xffff ? sprintf(" SubVendor=0x%04x SubDevice=0x%04x", $_->{subvendor}, $_->{subid}) : '',
	       )
    } probeall(); 
}

sub tryOpen($) {
    my $F;
    sysopen($F, devices::make($_[0]), c::O_NONBLOCK()) && $F;
}

sub tryWrite($) {
    my $F;
    sysopen($F, devices::make($_[0]), 1 | c::O_NONBLOCK()) && $F;
}

sub syslog() {
    -r "/tmp/syslog" and return map { /<\d+>(.*)/ } cat_("/tmp/syslog");
    my $LD_LOADER = $ENV{LD_LOADER} || "";
    `$LD_LOADER /bin/dmesg`;
}

sub get_mac_model() {
    my $mac_model = cat_("/proc/device-tree/model") || die "Can't open /proc/device-tree/model";
    log::l("Mac model: $mac_model");
    $mac_model;	
}

sub get_mac_generation() {
    my $generation = cat_("/proc/cpuinfo") || die "Can't open /proc/cpuinfo";
    my @genarray = split(/\n/, $generation);
    my $count = 0;
    while ($count <= @genarray) {
	if ($genarray[$count] =~ /pmac-generation/) {
	    @genarray = split(/:/, $genarray[$count]);
	    return $genarray[1];
	}
	$count++;
    }
    return "Unknown Generation";	
}

sub hasSMP() { 
    return if $::testing;
    c::detectSMP() || any { /\bProcessor #(\d+)\s+(\S*)/ && $1 > 0 && $2 ne 'invalid' } syslog();
}
sub hasPCMCIA() { $::o->{pcmcia} } #- because /proc/pcmcia seems not to be present on 2.4 at least (or use /var/run/stab)

#- try to detect a laptop, we assume pcmcia service is an indication of a laptop or
#- the following regexp to match graphics card apparently only used for such systems.
sub isLaptop() {
    hasPCMCIA() || (matching_desc('C&T.*655[45]\d') || matching_desc('C&T.*68554') ||
		    matching_desc('Neomagic.*Magic(Media|Graph)') ||
		    matching_desc('ViRGE.MX') || matching_desc('S3.*Savage.*[IM]X') ||
		    matching_desc('ATI.*(Mobility|LT)'))
                || cat_('/proc/cpuinfo') =~ /\bmobile\b/i;
}

sub usbMice()      { grep { $_->{media_type} =~ /\|Mouse/ && $_->{driver} !~ /Tablet:wacom/ ||
			  $_->{driver} =~ /Mouse:USB/ } usb_probe() }
sub usbWacom()     { grep { $_->{driver} =~ /Tablet:wacom/ } usb_probe() }
sub usbKeyboards() { grep { $_->{media_type} =~ /\|Keyboard/ } usb_probe() }
sub usbStorage()   { grep { $_->{media_type} =~ /Mass Storage\|/ } usb_probe() }

sub usbKeyboard2country_code {
    my ($usb_kbd) = @_;
    my ($F, $tmp);
    sysopen($F, sprintf("/proc/bus/usb/%03d/%03d", $usb_kbd->{pci_bus}, $usb_kbd->{pci_device}), 0) and
      sysseek $F, 0x28, 0 and
      sysread $F, $tmp, 1 and
      unpack("C", $tmp);
}

sub probeSerialDevices() {
    foreach (0..3) {
	#- make sure the device are created before probing,
	devices::make("/dev/ttyS$_");
	#- and make sure the device is a real terminal (major is 4).
	int((stat "/dev/ttyS$_")[6]/256) == 4 or $serialprobe{"/dev/ttyS$_"} = undef;
    }

    #- for device already probed, we can safely (assuming device are
    #- not moved during install :-)
    #- include /dev/mouse device if using an X server.
    mkdir_p("/var/lock");
    -l "/dev/mouse" and $serialprobe{"/dev/" . readlink "/dev/mouse"} = undef;
    foreach (keys %serialprobe) { m|^/dev/(.*)| and touch "/var/lock/LCK..$1" }

    print STDERR "Please wait while probing serial ports...\n";
    #- start probing all serial ports... really faster than before ...
    #- ... but still take some time :-)
    my %current; 
    foreach (run_program::get_stdout('serial_probe')) {
	if (/^\s*$/) {
	    $serialprobe{$current{DEVICE}} = { %current } if $current{DEVICE};
	    %current = ();
	} elsif (/^([^=]+)=(.*?)\s*$/) {
	    $current{$1} = $2;
	}
    }

    foreach (values %serialprobe) {
	$_->{DESCRIPTION} =~ /modem/i and $_->{CLASS} = 'MODEM'; #- hack to make sure a modem is detected.
	$_->{DESCRIPTION} =~ /olitec/i and $_->{CLASS} = 'MODEM'; #- hack to make sure such modem gets detected.
	log::l("probed $_->{DESCRIPTION} of class $_->{CLASS} on device $_->{DEVICE}");
    }
}

sub probeSerial($) { $serialprobe{$_[0]} }

sub hasModem($) {
    $serialprobe{$_[0]} && $serialprobe{$_[0]}{CLASS} eq 'MODEM' && $serialprobe{$_[0]}{DESCRIPTION};
}

sub hasMousePS2 {
    my $t; sysread(tryOpen($_[0]) || return, $t, 256) != 1 || $t ne "\xFE";
}

sub raidAutoStartIoctl() {
    sysopen(my $F, devices::make("md0"), 2) or return;
    ioctl $F, 0x914, 0; #- RAID_AUTORUN
}

sub raidAutoStartRaidtab {
    my (@parts) = @_;
    $::isInstall or return;
    require raid;
    #- faking a raidtab, it seems to be working :-)))
    #- (choosing any inactive md)
    raid::inactivate_all();
    my $detect_one = sub {
	my ($device) = @_;
	my $free_md = devices::make(find { !raid::is_active($_) } map { "md$_" } 0 .. raid::max_nb());
	output("/tmp/raidtab", "raiddev $free_md\n  device " . devices::make($device) . "\n");
	log::l("raidAutoStartRaidtab: trying $device");
	run_program::run('raidstart', '-c', "/tmp/raidtab", $free_md);
    };
    $detect_one->($_->{device}) foreach @parts;

    #- try again to detect RAID 10
    $detect_one->($_) foreach raid::active_mds();

    unlink "/tmp/raidtab";
}

sub raidAutoStart {
    my (@parts) = @_;

    log::l("raidAutoStart");
    eval { modules::load('md') };
    my %personalities = ('1' => 'linear', '2' => 'raid0', '3' => 'raid1', '4' => 'raid5');
    raidAutoStartIoctl() or raidAutoStartRaidtab(@parts);
    foreach (1..2) { #- try twice for RAID 10
	my @needed_perso = map { 
	    if_(/^kmod: failed.*md-personality-(.)/ ||
		/^md: personality (.) is not loaded/, $personalities{$1}) } syslog() or last;
	eval { modules::load(@needed_perso) };
	raidAutoStartIoctl() or raidAutoStartRaidtab(@parts);
    }
}

sub usb_description2removable {
    local ($_) = @_;
    return 'camera' if /\bcamera\b/i;
    return 'memory_card' if /\bmemory\s?stick\b/i || /\bcompact\s?flash\b/i || /\bsmart\s?media\b/i;
    return 'memory_card' if /DiskOnKey/i || /IBM-DMDM/i;
    return 'zip' if /\bzip\s?(100|250|750)/i;
    return 'floppy' if /\bLS-?120\b/i;
    return;
}

sub usb2removable {
    my ($e) = @_;
    $e->{usb_driver} or return;

    if ($e->{usb_driver} =~ /Removable:(.*)/) {
	return $1;
    } elsif (my $name = usb_description2removable($e->{usb_description})) {
	return $name;
    }
    undef;
}

sub suggest_mount_point {
    my ($e) = @_;

    my $name = $e->{media_type};
    if (member($e->{media_type}, 'hd', 'fd')) {
	if (exists $e->{usb_driver}) {
	    $name = usb2removable($e) || 'removable';
	} elsif (isZipDrive($e)) {
	    $name = 'zip';
	} elsif ($e->{media_type} eq 'fd') {
	    $name = 'floppy';
	} else {
	    log::l("suggest_mount_point: don't know what to with hd $e->{device}");
	}
    }
    $name;
}

1;
sion: " msgstr "Version: " #: ../Rpmdrake/gui.pm:103 ../Rpmdrake/gui.pm:145 #, c-format msgid "Currently installed version: " msgstr "Momentan installierte Version: " #: ../Rpmdrake/gui.pm:106 ../Rpmdrake/gui.pm:151 #, c-format msgid "Architecture: " msgstr "Architektur: " #: ../Rpmdrake/gui.pm:107 ../Rpmdrake/gui.pm:152 #, c-format msgid "Size: " msgstr "Größe: " #: ../Rpmdrake/gui.pm:107 ../Rpmdrake/gui.pm:152 #, c-format msgid "%s KB" msgstr "%s KB" #: ../Rpmdrake/gui.pm:108 ../Rpmdrake/gui.pm:144 ../rpmdrake.pm:824 #, c-format msgid "Medium: " msgstr "Medium: " #: ../Rpmdrake/gui.pm:114 #, c-format msgid "Files:" msgstr "Dateien:" #: ../Rpmdrake/gui.pm:118 ../Rpmdrake/gui.pm:123 ../Rpmdrake/gui.pm:137 #: ../Rpmdrake/gui.pm:139 ../Rpmdrake/pkg.pm:134 #, c-format msgid "(Not available)" msgstr "(Nicht vorhanden)" #: ../Rpmdrake/gui.pm:122 #, c-format msgid "Changelog:" msgstr "ChangeLog:" #: ../Rpmdrake/gui.pm:134 #, c-format msgid "Files:\n" msgstr "Dateien:\n" #: ../Rpmdrake/gui.pm:139 #, c-format msgid "Changelog:\n" msgstr "ChangeLog:\n" #: ../Rpmdrake/gui.pm:149 #, c-format msgid "Name: " msgstr "Name: " #: ../Rpmdrake/gui.pm:159 #, c-format msgid "Summary: " msgstr "Zusammenfassung: " #: ../Rpmdrake/gui.pm:165 #, c-format msgid "Description: " msgstr "Beschreibung: " #: ../Rpmdrake/gui.pm:444 ../Rpmdrake/gui.pm:473 ../Rpmdrake/gui.pm:475 #, c-format msgid "More information on package..." msgstr "Mehr Paketinformationen ..." #: ../Rpmdrake/gui.pm:446 #, c-format msgid "Please choose" msgstr "Bitte wählen Sie" #: ../Rpmdrake/gui.pm:447 #, c-format msgid "The following package is needed:" msgstr "Folgendes Paket wird benötigt:" #: ../Rpmdrake/gui.pm:447 #, c-format msgid "One of the following packages is needed:" msgstr "Eines der folgenden Pakete wird benötigt:" #. -PO: Keep it short, this is gonna be on a button #: ../Rpmdrake/gui.pm:461 ../Rpmdrake/gui.pm:466 #, c-format msgid "More info" msgstr "Mehr Infos" #: ../Rpmdrake/gui.pm:468 #, c-format msgid "Information on packages" msgstr "Paketinformationen" #: ../Rpmdrake/gui.pm:501 #, c-format msgid "Some additional packages need to be removed" msgstr "Einige weitere Pakete müssen ebenfalls entfernt werden" #: ../Rpmdrake/gui.pm:502 #, c-format msgid "" "Because of their dependencies, the following package(s) also need to be\n" "removed:" msgstr "" "Um alle Abhängigkeiten gewährleisten zu können werden folgende Pakete " "gelöscht:" #: ../Rpmdrake/gui.pm:508 ../Rpmdrake/gui.pm:517 #, c-format msgid "Some packages can't be removed" msgstr "Einige Pakete können nicht entfernt werden" #: ../Rpmdrake/gui.pm:509 #, c-format msgid "" "Removing these packages would break your system, sorry:\n" "\n" msgstr "" "Das Entfernen dieser Pakete würde Ihr System unbrauchbar machen:\n" "\n" #: ../Rpmdrake/gui.pm:518 ../Rpmdrake/gui.pm:585 #, c-format msgid "" "Because of their dependencies, the following package(s) must be\n" "unselected now:\n" "\n" msgstr "" "Um die Abhängigkeiten zu berücksichtigen, muss die Auswahl folgender\n" "Pakete zurückgesetzt werden:\n" #: ../Rpmdrake/gui.pm:547 #, c-format msgid "Additional packages needed" msgstr "Es werden zusätzliche Pakete benötigt" #: ../Rpmdrake/gui.pm:548 #, c-format msgid "" "To satisfy dependencies, the following package(s) also need\n" "to be installed:\n" "\n" msgstr "" "Um die Abhängigkeiten zu berücksichtigen, müssen die folgenden\n" "Pakete ebenfalls installiert werden:\n" "\n" #: ../Rpmdrake/gui.pm:562 #, c-format msgid "%s (belongs to the skip list)" msgstr "%s (gehört zur Skipliste)" #: ../Rpmdrake/gui.pm:566 #, c-format msgid "One package cannot be installed" msgstr "Ein Paket konnte nicht installiertwerden." #: ../Rpmdrake/gui.pm:566 #, c-format msgid "Some packages can't be installed" msgstr "Einige Pakete konnten nicht installiert werden" #: ../Rpmdrake/gui.pm:568 #, c-format msgid "" "Sorry, the following package cannot be selected:\n" "\n" "%s" msgstr "" "Das folgende Paket kann nicht ausgewählt werden:\n" "\n" "%s" #: ../Rpmdrake/gui.pm:569 #, c-format msgid "" "Sorry, the following packages can't be selected:\n" "\n" "%s" msgstr "" "Die folgenden Pakete können nicht ausgewählt werden:\n" "\n" "%s" #: ../Rpmdrake/gui.pm:584 ../Rpmdrake/pkg.pm:561 #, c-format msgid "Some packages need to be removed" msgstr "Einige Pakete müssen entfernt werden" #: ../Rpmdrake/gui.pm:615 #, c-format msgid "Error: %s appears to be mounted read-only." msgstr "Fehler: %s ist im read-only Modus gemountet." #: ../Rpmdrake/gui.pm:619 #, c-format msgid "You need to select some packages first." msgstr "Sie müssen erst einige Pakete auswählen." #: ../Rpmdrake/gui.pm:624 #, c-format msgid "Too many packages are selected" msgstr "Zu viele Pakete ausgewählt" #: ../Rpmdrake/gui.pm:625 #, c-format msgid "" "Warning: it seems that you are attempting to add so much\n" "packages that your filesystem may run out of free diskspace,\n" "during or after package installation ; this is particularly\n" "dangerous and should be considered with care.\n" "\n" "Do you really want to install all the selected packages?" msgstr "" "WARNUNG: Es scheint, dass Sie mehr Pakete installieren wollen\n" "als Plattenplatz auf Ihren Dateisystemen vorhanden ist.\n" "Dies kann im ungünstigsten Fall zu einem inkonsistenten und\n" "daher unbrauchbarem System führen.\n" "\n" "Wollen Sie wirklich alle markierten Pakete installieren?" #: ../Rpmdrake/gui.pm:651 ../Rpmdrake/pkg.pm:238 #, c-format msgid "Fatal error" msgstr "Fataler Fehler" #: ../Rpmdrake/gui.pm:652 ../Rpmdrake/pkg.pm:239 #, c-format msgid "A fatal error occurred: %s." msgstr "Fataler Fehler aufgetreten: %s." #: ../Rpmdrake/gui.pm:670 #, c-format msgid "Please wait, listing packages..." msgstr "Auflisten der Pakete, bitte warten ..." #: ../Rpmdrake/gui.pm:688 #, c-format msgid "No update" msgstr "Keine Aktualisierung" #: ../Rpmdrake/gui.pm:712 ../rpmdrake:239 #, c-format msgid "All" msgstr "Alle" #: ../Rpmdrake/gui.pm:721 ../rpmdrake:144 #, c-format msgid "Upgradable" msgstr "Aktualisierbar" #: ../Rpmdrake/gui.pm:721 ../rpmdrake:144 #, c-format msgid "Addable" msgstr "Verfügbar" #: ../Rpmdrake/gui.pm:741 #, c-format msgid "Description not available for this package\n" msgstr "Keine Beschreibung für dieses Paket verfügbar\n" #: ../Rpmdrake/icon.pm:35 #, c-format msgid "Accessibility" msgstr "Eingabehilfen" #: ../Rpmdrake/icon.pm:36 ../Rpmdrake/icon.pm:37 ../Rpmdrake/icon.pm:38 #: ../Rpmdrake/icon.pm:39 ../Rpmdrake/icon.pm:40 #, c-format msgid "Archiving" msgstr "Archivierung" #: ../Rpmdrake/icon.pm:37 #, c-format msgid "Backup" msgstr "Sicherung" #: ../Rpmdrake/icon.pm:38 #, c-format msgid "Cd burning" msgstr "CD brennen" #: ../Rpmdrake/icon.pm:39 #, c-format msgid "Compression" msgstr "Kompression" #: ../Rpmdrake/icon.pm:40 ../Rpmdrake/icon.pm:46 ../Rpmdrake/icon.pm:57 #: ../Rpmdrake/icon.pm:71 ../Rpmdrake/icon.pm:89 ../Rpmdrake/icon.pm:110 #: ../Rpmdrake/icon.pm:123 ../Rpmdrake/icon.pm:134 ../Rpmdrake/pkg.pm:75 #, c-format msgid "Other" msgstr "Sonstige" #: ../Rpmdrake/icon.pm:41 ../Rpmdrake/icon.pm:42 ../Rpmdrake/icon.pm:43 #: ../Rpmdrake/icon.pm:44 ../Rpmdrake/icon.pm:45 ../Rpmdrake/icon.pm:46 #, c-format msgid "Books" msgstr "Bücher" #: ../Rpmdrake/icon.pm:42 #, c-format msgid "Computer books" msgstr "Computerbücher" #: ../Rpmdrake/icon.pm:43 #, c-format msgid "Faqs" msgstr "FAQs" #: ../Rpmdrake/icon.pm:44 #, c-format msgid "Howtos" msgstr "HOWTOs" #: ../Rpmdrake/icon.pm:45 #, c-format msgid "Literature" msgstr "Literatur" #: ../Rpmdrake/icon.pm:47 #, c-format msgid "Communications" msgstr "Kommunikationen" #: ../Rpmdrake/icon.pm:48 ../Rpmdrake/icon.pm:52 #, c-format msgid "Databases" msgstr "Datenbanken" #: ../Rpmdrake/icon.pm:49 ../Rpmdrake/icon.pm:50 ../Rpmdrake/icon.pm:51 #: ../Rpmdrake/icon.pm:52 ../Rpmdrake/icon.pm:53 ../Rpmdrake/icon.pm:54 #: ../Rpmdrake/icon.pm:55 ../Rpmdrake/icon.pm:56 ../Rpmdrake/icon.pm:57 #: ../Rpmdrake/icon.pm:58 ../Rpmdrake/icon.pm:59 ../Rpmdrake/icon.pm:60 #: ../Rpmdrake/icon.pm:61 ../Rpmdrake/icon.pm:171 ../Rpmdrake/icon.pm:172 #: ../Rpmdrake/icon.pm:173 #, c-format msgid "Development" msgstr "Entwicklung" #: ../Rpmdrake/icon.pm:50 #, c-format msgid "C" msgstr "C" #: ../Rpmdrake/icon.pm:51 #, c-format msgid "C++" msgstr "C++" #: ../Rpmdrake/icon.pm:53 #, c-format msgid "GNOME and GTK+" msgstr "GNOME und GTK+" #: ../Rpmdrake/icon.pm:54 #, c-format msgid "Java" msgstr "Java" #: ../Rpmdrake/icon.pm:55 #, c-format msgid "KDE and Qt" msgstr "KDE und Qt" #: ../Rpmdrake/icon.pm:56 #, c-format msgid "Kernel" msgstr "Kernel" #: ../Rpmdrake/icon.pm:58 #, c-format msgid "Perl" msgstr "Perl" #: ../Rpmdrake/icon.pm:59 #, c-format msgid "PHP" msgstr "PHP" #: ../Rpmdrake/icon.pm:60 #, c-format msgid "Python" msgstr "Python" #. -PO: This is a package/product name. Only translate it if needed: #: ../Rpmdrake/icon.pm:61 ../Rpmdrake/icon.pm:148 #, c-format msgid "X11" msgstr "X11" #: ../Rpmdrake/icon.pm:62 #, c-format msgid "Editors" msgstr "Editoren" #: ../Rpmdrake/icon.pm:63 #, c-format msgid "Education" msgstr "Bildung" #: ../Rpmdrake/icon.pm:64 #, c-format msgid "Emulators" msgstr "Emulatoren" #: ../Rpmdrake/icon.pm:65 #, c-format msgid "File tools" msgstr "Dateiwerkzeuge" #: ../Rpmdrake/icon.pm:66 ../Rpmdrake/icon.pm:67 ../Rpmdrake/icon.pm:68 #: ../Rpmdrake/icon.pm:69 ../Rpmdrake/icon.pm:70 ../Rpmdrake/icon.pm:71 #: ../Rpmdrake/icon.pm:72 ../Rpmdrake/icon.pm:73 ../Rpmdrake/icon.pm:74 #, c-format msgid "Games" msgstr "Spiele" #: ../Rpmdrake/icon.pm:67 #, c-format msgid "Adventure" msgstr "Abenteuer" #: ../Rpmdrake/icon.pm:68 #, c-format msgid "Arcade" msgstr "Arkade" #: ../Rpmdrake/icon.pm:69 #, c-format msgid "Boards" msgstr "Brettspiele" #: ../Rpmdrake/icon.pm:70 #, c-format msgid "Cards" msgstr "Karten" #: ../Rpmdrake/icon.pm:72 #, c-format msgid "Puzzles" msgstr "Puzzles" #: ../Rpmdrake/icon.pm:73 #, c-format msgid "Sports" msgstr "Sport" #: ../Rpmdrake/icon.pm:74 #, c-format msgid "Strategy" msgstr "Strategie" #: ../Rpmdrake/icon.pm:75 ../Rpmdrake/icon.pm:76 ../Rpmdrake/icon.pm:79 #: ../Rpmdrake/icon.pm:80 ../Rpmdrake/icon.pm:83 ../Rpmdrake/icon.pm:86 #: ../Rpmdrake/icon.pm:89 ../Rpmdrake/icon.pm:90 ../Rpmdrake/icon.pm:93 #: ../Rpmdrake/icon.pm:96 #, c-format msgid "Graphical desktop" msgstr "Grafische Oberfläche" #. -PO: This is a package/product name. Only translate it if needed: #: ../Rpmdrake/icon.pm:78 #, c-format msgid "Enlightenment" msgstr "Enlightenment" #: ../Rpmdrake/icon.pm:79 #, c-format msgid "FVWM based" msgstr "FVWM-basiert" #. -PO: This is a package/product name. Only translate it if needed: #: ../Rpmdrake/icon.pm:82 #, c-format msgid "GNOME" msgstr "GNOME" #. -PO: This is a package/product name. Only translate it if needed: #: ../Rpmdrake/icon.pm:85 #, c-format msgid "Icewm" msgstr "ICEWM" #. -PO: This is a package/product name. Only translate it if needed: #: ../Rpmdrake/icon.pm:88 #, c-format msgid "KDE" msgstr "KDE" #. -PO: This is a package/product name. Only translate it if needed: #: ../Rpmdrake/icon.pm:92 #, c-format msgid "Sawfish" msgstr "Sawfish" #. -PO: This is a package/product name. Only translate it if needed: #: ../Rpmdrake/icon.pm:95 #, c-format msgid "WindowMaker" msgstr "WindowMaker" #. -PO: This is a package/product name. Only translate it if needed: #: ../Rpmdrake/icon.pm:98 #, c-format msgid "Xfce" msgstr "Xfce" #: ../Rpmdrake/icon.pm:99 #, c-format msgid "Graphics" msgstr "Grafik" #: ../Rpmdrake/icon.pm:100 #, c-format msgid "Monitoring" msgstr "Überwachung" #: ../Rpmdrake/icon.pm:101 ../Rpmdrake/icon.pm:102 #, c-format msgid "Multimedia" msgstr "Multimedia" #: ../Rpmdrake/icon.pm:102 ../Rpmdrake/icon.pm:152 #, c-format msgid "Video" msgstr "Video" #: ../Rpmdrake/icon.pm:103 ../Rpmdrake/icon.pm:104 ../Rpmdrake/icon.pm:105 #: ../Rpmdrake/icon.pm:106 ../Rpmdrake/icon.pm:107 ../Rpmdrake/icon.pm:108 #: ../Rpmdrake/icon.pm:109 ../Rpmdrake/icon.pm:110 ../Rpmdrake/icon.pm:111 #: ../Rpmdrake/icon.pm:112 ../Rpmdrake/icon.pm:133 #, c-format msgid "Networking" msgstr "Netzwerk" #: ../Rpmdrake/icon.pm:104 #, c-format msgid "Chat" msgstr "Chatten" #: ../Rpmdrake/icon.pm:105 #, c-format msgid "File transfer" msgstr "Dateitransfer" #: ../Rpmdrake/icon.pm:106 #, c-format msgid "IRC" msgstr "IRC" #: ../Rpmdrake/icon.pm:107 #, c-format msgid "Instant messaging" msgstr "Instant Messaging" #: ../Rpmdrake/icon.pm:108 ../Rpmdrake/icon.pm:178 #, c-format msgid "Mail" msgstr "E-Mail" #: ../Rpmdrake/icon.pm:109 #, c-format msgid "News" msgstr "Nachrichten" #: ../Rpmdrake/icon.pm:111 #, c-format msgid "Remote access" msgstr "Entfernter Zugriff" #: ../Rpmdrake/icon.pm:112 #, c-format msgid "WWW" msgstr "WWW" #: ../Rpmdrake/icon.pm:113 #, c-format msgid "Office" msgstr "Büro" #: ../Rpmdrake/icon.pm:114 #, c-format msgid "Public Keys" msgstr "Öffentliche Schlüssel" #: ../Rpmdrake/icon.pm:115 #, c-format msgid "Publishing" msgstr "Veröffentlichen" #: ../Rpmdrake/icon.pm:116 ../Rpmdrake/icon.pm:117 ../Rpmdrake/icon.pm:118 #: ../Rpmdrake/icon.pm:119 ../Rpmdrake/icon.pm:120 ../Rpmdrake/icon.pm:121 #: ../Rpmdrake/icon.pm:122 ../Rpmdrake/icon.pm:123 ../Rpmdrake/icon.pm:124 #, c-format msgid "Sciences" msgstr "Wissenschaften" #: ../Rpmdrake/icon.pm:117 #, c-format msgid "Astronomy" msgstr "Astronomie" #: ../Rpmdrake/icon.pm:118 #, c-format msgid "Biology" msgstr "Biologie" #: ../Rpmdrake/icon.pm:119 #, c-format msgid "Chemistry" msgstr "Chemie" #: ../Rpmdrake/icon.pm:120 #, c-format msgid "Computer science" msgstr "Computerwissenschaften" #: ../Rpmdrake/icon.pm:121 #, c-format msgid "Geosciences" msgstr "Geowissenschaften" #: ../Rpmdrake/icon.pm:122 #, c-format msgid "Mathematics" msgstr "Mathematik" #: ../Rpmdrake/icon.pm:124 #, c-format msgid "Physics" msgstr "Physik" #: ../Rpmdrake/icon.pm:125 #, c-format msgid "Shells" msgstr "Shells" #: ../Rpmdrake/icon.pm:126 #, c-format msgid "Sound" msgstr "Klang" #: ../Rpmdrake/icon.pm:127 ../Rpmdrake/icon.pm:128 ../Rpmdrake/icon.pm:129 #: ../Rpmdrake/icon.pm:130 ../Rpmdrake/icon.pm:131 ../Rpmdrake/icon.pm:132 #: ../Rpmdrake/icon.pm:133 ../Rpmdrake/icon.pm:134 ../Rpmdrake/icon.pm:135 #: ../Rpmdrake/icon.pm:136 ../Rpmdrake/icon.pm:137 ../Rpmdrake/icon.pm:138 #: ../Rpmdrake/icon.pm:139 ../Rpmdrake/icon.pm:140 ../Rpmdrake/icon.pm:141 #: ../Rpmdrake/icon.pm:142 ../Rpmdrake/icon.pm:143 ../Rpmdrake/icon.pm:144 #: ../Rpmdrake/icon.pm:145 ../Rpmdrake/icon.pm:146 #, c-format msgid "System" msgstr "System" #: ../Rpmdrake/icon.pm:128 #, c-format msgid "Base" msgstr "Basis" #: ../Rpmdrake/icon.pm:129 #, c-format msgid "Cluster" msgstr "Cluster" #: ../Rpmdrake/icon.pm:130 ../Rpmdrake/icon.pm:131 ../Rpmdrake/icon.pm:132 #: ../Rpmdrake/icon.pm:133 ../Rpmdrake/icon.pm:134 ../Rpmdrake/icon.pm:135 #: ../Rpmdrake/icon.pm:136 ../Rpmdrake/icon.pm:156 #, c-format msgid "Configuration" msgstr "Konfiguration" #: ../Rpmdrake/icon.pm:131 #, c-format msgid "Boot and Init" msgstr "Startvorgang und Initialisierung" #: ../Rpmdrake/icon.pm:132 #, c-format msgid "Hardware" msgstr "Hardware" #: ../Rpmdrake/icon.pm:135 #, c-format msgid "Packaging" msgstr "Packen" #: ../Rpmdrake/icon.pm:136 #, c-format msgid "Printing" msgstr "Drucken" #: ../Rpmdrake/icon.pm:137 ../Rpmdrake/icon.pm:138 ../Rpmdrake/icon.pm:139 #: ../Rpmdrake/icon.pm:140 ../Rpmdrake/icon.pm:141 #, c-format msgid "Fonts" msgstr "Schriftarten" #: ../Rpmdrake/icon.pm:138 #, c-format msgid "Console" msgstr "Konsole" #: ../Rpmdrake/icon.pm:139 #, c-format msgid "True type" msgstr "True Type" #: ../Rpmdrake/icon.pm:140 #, c-format msgid "Type1" msgstr "Typ 1" #: ../Rpmdrake/icon.pm:141 #, c-format msgid "X11 bitmap" msgstr "X11 Bitmap" #: ../Rpmdrake/icon.pm:142 #, c-format msgid "Internationalization" msgstr "Internationalisierung" #: ../Rpmdrake/icon.pm:143 #, c-format msgid "Kernel and hardware" msgstr "Kernel und Hardware" #: ../Rpmdrake/icon.pm:144 #, c-format msgid "Libraries" msgstr "Bibliotheken" #: ../Rpmdrake/icon.pm:145 #, c-format msgid "Servers" msgstr "Server" #: ../Rpmdrake/icon.pm:149 #, c-format msgid "Terminals" msgstr "Terminals" #: ../Rpmdrake/icon.pm:150 #, c-format msgid "Text tools" msgstr "Textwerkzeuge" #: ../Rpmdrake/icon.pm:151 #, c-format msgid "Toys" msgstr "Spielzeug" #: ../Rpmdrake/icon.pm:155 ../Rpmdrake/icon.pm:156 ../Rpmdrake/icon.pm:157 #: ../Rpmdrake/icon.pm:158 ../Rpmdrake/icon.pm:159 ../Rpmdrake/icon.pm:160 #: ../Rpmdrake/icon.pm:161 ../Rpmdrake/icon.pm:162 ../Rpmdrake/icon.pm:163 #: ../Rpmdrake/icon.pm:164 #, c-format msgid "Workstation" msgstr "Arbeitsplatzrechner" #: ../Rpmdrake/icon.pm:157 #, c-format msgid "Console Tools" msgstr "Konsolen-Werkzeuge" #: ../Rpmdrake/icon.pm:158 ../Rpmdrake/icon.pm:173 #, c-format msgid "Documentation" msgstr "Dokumentation" #: ../Rpmdrake/icon.pm:159 #, c-format msgid "Game station" msgstr "Spiele-Station" #: ../Rpmdrake/icon.pm:160 #, c-format msgid "Internet station" msgstr "Internet-Station" #: ../Rpmdrake/icon.pm:161 #, c-format msgid "Multimedia station" msgstr "Multimedia-Station" #: ../Rpmdrake/icon.pm:162 #, c-format msgid "Network Computer (client)" msgstr "Netzwerk-Computer (Client)" #: ../Rpmdrake/icon.pm:163 #, c-format msgid "Office Workstation" msgstr "Büro-Arbeitsplatz" #: ../Rpmdrake/icon.pm:164 #, c-format msgid "Scientific Workstation" msgstr "Wissenschaftlicher Arbeitsplatz" #: ../Rpmdrake/icon.pm:165 ../Rpmdrake/icon.pm:167 ../Rpmdrake/icon.pm:168 #: ../Rpmdrake/icon.pm:169 ../Rpmdrake/icon.pm:170 #, c-format msgid "Graphical Environment" msgstr "Grafische Arbeitsoberfläche" #: ../Rpmdrake/icon.pm:167 #, c-format msgid "GNOME Workstation" msgstr "Gnome-Arbeitsplatz" #: ../Rpmdrake/icon.pm:168 #, c-format msgid "IceWm Desktop" msgstr "IceWm-Desktop" #: ../Rpmdrake/icon.pm:169 #, c-format msgid "KDE Workstation" msgstr "KDE-Arbeitsplatz" #: ../Rpmdrake/icon.pm:170 #, c-format msgid "Other Graphical Desktops" msgstr "Andere grafische Arbeitsflächen" #: ../Rpmdrake/icon.pm:174 ../Rpmdrake/icon.pm:175 ../Rpmdrake/icon.pm:176 #: ../Rpmdrake/icon.pm:177 ../Rpmdrake/icon.pm:178 ../Rpmdrake/icon.pm:179 #: ../Rpmdrake/icon.pm:180 ../Rpmdrake/icon.pm:181 #, c-format msgid "Server" msgstr "Server" #: ../Rpmdrake/icon.pm:175 #, c-format msgid "DNS/NIS" msgstr "DNS/NIS" #: ../Rpmdrake/icon.pm:176 #, c-format msgid "Database" msgstr "Datenbank" #: ../Rpmdrake/icon.pm:177 #, c-format msgid "Firewall/Router" msgstr "Firewall / Router" #: ../Rpmdrake/icon.pm:179 #, c-format msgid "Mail/Groupware/News" msgstr "Mail/Groupware/News" #: ../Rpmdrake/icon.pm:180 #, c-format msgid "Network Computer server" msgstr "Netzwerkrechner-Server" #: ../Rpmdrake/icon.pm:181 #, c-format msgid "Web/FTP" msgstr "Web/FTP" #: ../Rpmdrake/init.pm:39 #, c-format msgid "Usage: %s [OPTION]..." msgstr "Verwendung: %s [OPTION]..." #: ../Rpmdrake/init.pm:40 #, c-format msgid " --auto assume default answers to questions" msgstr "" #: ../Rpmdrake/init.pm:41 #, c-format msgid "" " --changelog-first display changelog before filelist in the " "description window" msgstr "" " --changelog-first changelog vor der Dateiliste im " "Beschreibungsfenster darstellen" #: ../Rpmdrake/init.pm:42 #, c-format msgid " --media=medium1,.. limit to given media" msgstr " --media=medium1,.. anzugebende Medien begrenzen" #: ../Rpmdrake/init.pm:43 #, c-format msgid "" " --merge-all-rpmnew propose to merge all .rpmnew/.rpmsave files found" msgstr "" " --merge-all-rpmnew vorschlagen, alle gefundenen .rpmnew/.rpmsave " "Dateien zu vereinen" #: ../Rpmdrake/init.pm:44 #, c-format msgid " --mode=MODE set mode (install (default), remove, update)" msgstr "" " --mode=MODE setze Modus (Installation (Vorgabe), Entfernen, " "Aktualisierung)" #: ../Rpmdrake/init.pm:45 #, c-format msgid "" " --no-confirmation don't ask first confirmation question in update mode" msgstr "" " --no-confirmation keine Erstbestätigung im Aktualisierungsmodus " "abfragen" #: ../Rpmdrake/init.pm:46 #, c-format msgid " --no-media-update don't update media at startup" msgstr "" " --no-media-update die Medien nicht bei Inbetriebnahme aktualisieren" #: ../Rpmdrake/init.pm:47 #, c-format msgid " --no-verify-rpm don't verify packages signatures" msgstr " --no-verify-rpm die Paketsignaturen nicht überprüfen" #: ../Rpmdrake/init.pm:48 #, c-format msgid "" " --parallel=alias,host be in parallel mode, use \"alias\" group, use \"host" "\" machine to show needed deps" msgstr "" " --parallel=alias,host sind im parallelen Modus, benutze „alias“ Gruppe, " "benutze „host“ Rechner zum Anzeigen benötigter Abhängigkeiten" #: ../Rpmdrake/init.pm:49 #, c-format msgid " --pkg-nosel=pkg1,.. show only these packages" msgstr " --pkg-nosel=pkg1,.. nur diese Pakete anzeigen" #: ../Rpmdrake/init.pm:50 #, c-format msgid " --pkg-sel=pkg1,.. preselect these packages" msgstr " --pkg-sel=pkg1,.. diese Pakete vorauswählen" #: ../Rpmdrake/init.pm:51 #, c-format msgid " --rpm-root use another root for rpm installation" msgstr "" #: ../Rpmdrake/init.pm:52 #, c-format msgid "" " --urpmi-root use another root for urpmi db & rpm installation" msgstr "" #: ../Rpmdrake/init.pm:53 #, c-format msgid " --root force to run as root" msgstr " --root das Ausführen als root erzwingen" #: ../Rpmdrake/init.pm:54 #, c-format msgid " --search=pkg run search for \"pkg\"" msgstr " --search=pkg Suche nach „pkg“ ausführen" #: ../Rpmdrake/init.pm:55 #, c-format msgid " --version - print this tool's version number.\n" msgstr " --version - Ausgabe der Versionsnummer dieses Tools.\n" #: ../Rpmdrake/init.pm:130 #, c-format msgid "Running in user mode" msgstr "Arbeite im Benutzer-Modus" #: ../Rpmdrake/init.pm:131 #, c-format msgid "" "You are launching this program as a normal user.\n" "You will not be able to perform modifications on the system,\n" "but you may still browse the existing database." msgstr "" "Sie starten das Programm als normaler Benutzer.\n" "Sie können zwar keine Änderungen am System vornehmen,\n" "sich jedoch den Stand der existierenden Datenbank ansehen." #: ../Rpmdrake/init.pm:138 ../Rpmdrake/init.pm:163 #, c-format msgid "Welcome" msgstr "Herzlich Willkommen!" #: ../Rpmdrake/init.pm:143 #, c-format msgid "" "Welcome to the software removal tool!\n" "\n" "This tool will help you choose which software you want to remove from\n" "your computer." msgstr "" "Willkommen zum Software-Deinstallationsprogramm!\n" "\n" "Dieses Programm wird Ihnen helfen, die Softwarepakete auszuwählen,\n" "die Sie von Ihrem Computer entfernen wollen." #: ../Rpmdrake/init.pm:148 #, c-format msgid "" "Welcome to %s!\n" "\n" "This tool will help you choose the updates you want to install on your\n" "computer." msgstr "" "Willkommen zu %s!\n" "\n" "Dieses Werkzeug möchte Ihnen bei der Entscheidung helfen, welche \n" "aktualisierten Pakete Sie installieren wollen." #: ../Rpmdrake/init.pm:153 #, c-format msgid "Welcome to the software installation tool!" msgstr "Willkommen beim Werkzeug zur Softwareinstallation!" #: ../Rpmdrake/init.pm:154 #, c-format msgid "" "Welcome to the software installation tool!\n" "\n" "Your Mandriva Linux system comes with several thousands of software\n" "packages on CDROM or DVD. This tool will help you choose which software\n" "you want to install on your computer." msgstr "" "Willkommen zum Software Installationsprogramm!\n" "\n" "Ihre Mandriva Linux Distribution kommt mit mehreren tausend\n" "Softwarepaketen auf CD-ROM oder DVD. Dieses Programm möchte\n" "Ihnen bei der Auswahl der für Sie interessanten Pakete helfen." #: ../Rpmdrake/init.pm:165 #, c-format msgid "The software installation tool can set up media sources." msgstr "" #: ../Rpmdrake/init.pm:166 #, c-format msgid "Do you want to add media sources now?" msgstr "Wollen Sie die Medien Quelle jetzt hinzufügen?" #: ../Rpmdrake/pkg.pm:188 ../Rpmdrake/pkg.pm:561 #, c-format msgid "Confirmation" msgstr "Bestätigung" #: ../Rpmdrake/pkg.pm:189 #, c-format msgid "" "I need to contact the mirror to get latest update packages.\n" "Please check that your network is currently running.\n" "\n" "Is it ok to continue?" msgstr "" "Ich muss Kontakt mit dem Paketserver aufnehmen, um die neuen Pakete\n" "zu holen. Stellen Sie sicher, dass Ihre Netzwerk läuft.\n" "\n" "Soll ich fortfahren?" #: ../Rpmdrake/pkg.pm:198 #, c-format msgid "Already existing update media" msgstr "Updatemedium existiert bereits" #: ../Rpmdrake/pkg.pm:199 #, fuzzy, c-format msgid "" "You already have at least one update medium configured, but\n" "all of them are currently disabled. You should run the Software\n" "Media Manager to enable at least one (check it in the \"%s\"\n" "column).\n" "\n" "Then, restart \"%s\"." msgstr "" "Sie haben schon mindestens ein Update-Medium angegeben, aber im Moment sind " "alle diese Medien ausgeschaltet. Sie sollten den Software Medien Manager " "ausführen und mindestens eines der Medien aktivieren (Schalten Sie es in der " "Aktiviert? Spalte ein)\n" "Starten Sie anschließend erneut %s." #: ../Rpmdrake/pkg.pm:210 #, c-format msgid "How to choose manually your mirror" msgstr "Wie Sie Ihren Paketserver selbst auswählen" #: ../Rpmdrake/pkg.pm:211 #, c-format msgid "" "You may also choose your desired mirror manually: to do so,\n" "launch the Software Media Manager, and then add a `Security\n" "updates' medium.\n" "\n" "Then, restart %s." msgstr "" "Sie können Ihren bevorzugten Paketserver auch selbst angeben:\n" "Starten Sie den Paketquellen-Manager, und fügen Sie eine \n" "„Sicherheitsupdate“-Medium hinzu.\n" "\n" "Starten Sie anschließend erneut %s." #: ../Rpmdrake/pkg.pm:258 ../Rpmdrake/pkg.pm:576 ../Rpmdrake/pkg.pm:742 #: ../rpmdrake.pm:326 #, c-format msgid "Please wait" msgstr "Bitte warten" #: ../Rpmdrake/pkg.pm:258 ../Rpmdrake/pkg.pm:576 #, c-format msgid "Package installation..." msgstr "Installiere die Pakete ..." #: ../Rpmdrake/pkg.pm:258 ../Rpmdrake/pkg.pm:576 ../Rpmdrake/pkg.pm:742 #, c-format msgid "Initializing..." msgstr "Initialisierung ..." #: ../Rpmdrake/pkg.pm:268 #, c-format msgid "Reading updates description" msgstr "Aktualisierungsbeschreibung lesen" #: ../Rpmdrake/pkg.pm:294 ../Rpmdrake/pkg.pm:371 #, c-format msgid "Please wait, finding available packages..." msgstr "Suche nach vorhandenen Paketen, bitte warten ..." #: ../Rpmdrake/pkg.pm:300 #, c-format msgid "Please wait, listing base packages..." msgstr "Auflisten der Pakete, bitte warten ..." #: ../Rpmdrake/pkg.pm:337 #, c-format msgid "Please wait, finding installed packages..." msgstr "Suche nach vorhandenen Paketen, bitte warten ..." #: ../Rpmdrake/pkg.pm:453 #, c-format msgid "Upgrade information" msgstr "Upgrade Informationen" #: ../Rpmdrake/pkg.pm:455 #, c-format msgid "These packages come with upgrade information" msgstr "Diese Pakete kommen mit Aktualisierungsinformationen" #: ../Rpmdrake/pkg.pm:463 #, c-format msgid "Upgrade information about this package" msgstr "Upgrade Informationen über dieses Paket" #: ../Rpmdrake/pkg.pm:466 #, c-format msgid "Upgrade information about package %s" msgstr "Upgrade Informationen üer das Paket [%s]" #: ../Rpmdrake/pkg.pm:482 #, c-format msgid "Could not create temporary directory '%s'" msgstr "" #: ../Rpmdrake/pkg.pm:490 ../Rpmdrake/pkg.pm:723 #, c-format msgid "All requested packages were installed successfully." msgstr "Alle gewählten Pakete wurden erfolgreich installiert." #: ../Rpmdrake/pkg.pm:494 ../Rpmdrake/pkg.pm:699 #, c-format msgid "Problem during installation" msgstr "Fehler bei der Installation" #: ../Rpmdrake/pkg.pm:495 ../Rpmdrake/pkg.pm:514 ../Rpmdrake/pkg.pm:701 #, c-format msgid "" "There was a problem during the installation:\n" "\n" "%s" msgstr "" "Während der Installation sind Fehler aufgetreten:\n" "\n" "%s" #: ../Rpmdrake/pkg.pm:513 ../Rpmdrake/pkg.pm:689 #, c-format msgid "Installation failed" msgstr "Installation schlug fehl" #: ../Rpmdrake/pkg.pm:542 #, c-format msgid "Unable to get source packages." msgstr "Kann Quellpakete nicht bekommen." #: ../Rpmdrake/pkg.pm:543 #, c-format msgid "Unable to get source packages, sorry. %s" msgstr "Ich kann leider die Quellpakete nicht bekommen.%s" #: ../Rpmdrake/pkg.pm:544 ../Rpmdrake/pkg.pm:692 #, c-format msgid "" "\n" "\n" "Error(s) reported:\n" "%s" msgstr "" "\n" "\n" "Fehler gemeldet:\n" "%s" #: ../Rpmdrake/pkg.pm:558 #, fuzzy, c-format msgid "The following package is going to be installed:" msgid_plural "The following %d packages are going to be installed:" msgstr[0] "" "Um die Abhängigkeiten zu erfüllen, wird folgendes Paket installiert:" msgstr[1] "" "Um die Abhängigkeiten zu erfüllen, werden die folgenden %d Pakete " "installiert:" #: ../Rpmdrake/pkg.pm:563 #, c-format msgid "Remove one package?" msgid_plural "Remove %d packages?" msgstr[0] "Entferne das %d Paket?" msgstr[1] "Entferne %d Pakete?" #: ../Rpmdrake/pkg.pm:565 #, c-format msgid "The following package has to be removed for others to be upgraded:" msgstr "Das folgende Paket muss entfernt werden, um andere zu aktualisieren:" #: ../Rpmdrake/pkg.pm:566 #, c-format msgid "The following packages have to be removed for others to be upgraded:" msgstr "" "Die folgenden Pakete müssen entfernt werden, um andere zu aktualisieren:" #: ../Rpmdrake/pkg.pm:566 #, c-format msgid "Is it ok to continue?" msgstr "Wollen Sie fortfahren?" #: ../Rpmdrake/pkg.pm:589 #, c-format msgid "Preparing packages installation..." msgstr "Bereite Paketinstallation vor ..." #: ../Rpmdrake/pkg.pm:589 #, fuzzy, c-format msgid "Preparing package installation transaction..." msgstr "Bereite Paketinstallation vor ..." #: ../Rpmdrake/pkg.pm:592 #, c-format msgid "Installing package `%s' (%s/%s)..." msgstr "Installiere Paket „%s“ (%s/%s) ..." #: ../Rpmdrake/pkg.pm:593 #, c-format msgid "Total: %s/%s" msgstr "" #: ../Rpmdrake/pkg.pm:621 ../Rpmdrake/pkg.pm:708 ../rpmdrake.pm:741 #: ../rpmdrake.pm:822 ../rpmdrake.pm:846 #, c-format msgid "Error" msgstr "Fehler" #: ../Rpmdrake/pkg.pm:626 ../Rpmdrake/pkg.pm:631 #, c-format msgid "Downloading package `%s'..." msgstr "Holen des Pakets `%s' ..." #: ../Rpmdrake/pkg.pm:633 #, c-format msgid " %s%% of %s completed, ETA = %s, speed = %s" msgstr "" " %s%% von %s abgeschlossen, verbleibende Zeit = %s, Geschwindigkeit = " "%s" #: ../Rpmdrake/pkg.pm:634 #, c-format msgid " %s%% completed, speed = %s" msgstr " %s%% abgeschlossen, Geschwindigkeit = %s" #: ../Rpmdrake/pkg.pm:667 #, c-format msgid "Change medium" msgstr "Medium wechseln" #: ../Rpmdrake/pkg.pm:668 #, c-format msgid "Please insert the medium named \"%s\" on device [%s]" msgstr "Bitte legen Sie das Medium „%s“ in Laufwerk [%s] ein" #: ../Rpmdrake/pkg.pm:672 #, c-format msgid "Verifying package signatures..." msgstr "Überprüfe Paketsignaturen..." #: ../Rpmdrake/pkg.pm:678 ../rpmdrake.pm:754 ../rpmdrake.pm:863 #, c-format msgid "Warning" msgstr "Warnung" #: ../Rpmdrake/pkg.pm:690 #, c-format msgid "" "Installation failed, some files are missing:\n" "%s\n" "\n" "You may want to update your media database." msgstr "" "Die Installation schlug fehl, da einige Pakete fehlen.\n" "%s\n" "\n" "Sie sollten Ihre Paketliste aktualisieren." #: ../Rpmdrake/pkg.pm:700 #, fuzzy, c-format msgid "%d installation transactions failed" msgstr "Installation schlug fehl" #: ../Rpmdrake/pkg.pm:709 #, c-format msgid "Unrecoverable error: no package found for installation, sorry." msgstr "" "Unbehebbarer Fehler: es wurde kein Paket zum Installieren gefunden,sorry." #: ../Rpmdrake/pkg.pm:718 #, c-format msgid "" "The installation is finished; everything was installed correctly.\n" "\n" "Some configuration files were created as `.rpmnew' or `.rpmsave',\n" "you may now inspect some in order to take actions:" msgstr "" "Die Installation ist abgeschlossen; alles wurde korrekt installiert.\n" "\n" "Einige Konfigurationsdateien wurden als „.rpmnew“ bzw. „.rpmsave“ angelegt.\n" "Sie können diese nun genauer betrachten, um möglicherweise notwendige " "Aktionen vorzunehmen:" #: ../Rpmdrake/pkg.pm:742 ../Rpmdrake/pkg.pm:758 #, c-format msgid "Please wait, removing packages..." msgstr "Entferne die Pakete, bitte warten ..." #: ../Rpmdrake/pkg.pm:769 #, c-format msgid "Problem during removal" msgstr "Fehler beim Entfernen" #: ../Rpmdrake/pkg.pm:770 #, c-format msgid "" "There was a problem during the removal of packages:\n" "\n" "%s" msgstr "" "Während des Entfernens sind Fehler aufgetreten:\n" "\n" "%s" #: ../Rpmdrake/rpmnew.pm:78 #, c-format msgid "Inspecting %s" msgstr "Untersuche %s" #: ../Rpmdrake/rpmnew.pm:102 #, c-format msgid "Changes:" msgstr "Änderungen:" #: ../Rpmdrake/rpmnew.pm:111 #, c-format msgid "" "You can either remove the .%s file, use it as main file or do nothing. If " "unsure, keep the current file (\"%s\")." msgstr "" #: ../Rpmdrake/rpmnew.pm:112 ../Rpmdrake/rpmnew.pm:117 #, c-format msgid "Remove .%s" msgstr "Entferne .%s" #: ../Rpmdrake/rpmnew.pm:121 #, c-format msgid "Use .%s as main file" msgstr "Verwende .%s als Hauptdatei" #: ../Rpmdrake/rpmnew.pm:125 #, c-format msgid "Do nothing" msgstr "Nichts machen" #: ../Rpmdrake/rpmnew.pm:156 #, c-format msgid "Installation finished" msgstr "Installation beendet" #: ../Rpmdrake/rpmnew.pm:171 #, c-format msgid "Inspect..." msgstr "Untersuche ..." #: ../Rpmdrake/rpmnew.pm:189 ../rpmdrake:68 ../rpmdrake:95 #, c-format msgid "Please wait, searching..." msgstr "Bitte warten, ich suche ..." #: ../gurpmi.addmedia:84 #, c-format msgid "bad <url> (for local directory, the path must be absolute)" msgstr "" #: ../gurpmi.addmedia:89 #, c-format msgid "Unable to add medium, wrong or missing arguments" msgstr "Konnte das Medium nicht hinzufügen, falsche oder fehlende Argumente" #: ../gurpmi.addmedia:103 #, c-format msgid "" "You are about to add new packages media, %s.\n" "That means you will be able to add new software packages\n" "to your system from these new media." msgstr "" "Sie sind dabei, ein neues Paket-Medium '%s' einzurichten,\n" "Das bedeutet, dass Sie in der Lage sind, neue Software-Pakete\n" "von diesem Medium auf Ihr System installieren können." #: ../gurpmi.addmedia:106 #, c-format msgid "" "You are about to add a new packages medium, `%s'.\n" "That means you will be able to add new software packages\n" "to your system from that new medium." msgstr "" "Sie sind dabei, ein neues Paket-Medium '%s' einzurichten,\n" "Das bedeutet, dass Sie in der Lage sind, neue Software-Pakete\n" "von diesem Medium auf Ihr System installieren können." #: ../gurpmi.addmedia:131 #, c-format msgid "Successfully added media %s." msgstr "Medium '%s' erfolgreich hinzugefügt." #: ../gurpmi.addmedia:132 #, c-format msgid "Successfully added medium `%s'." msgstr "Medium '%s' erfolgreich hinzugefügt." #: ../rpmdrake:57 ../rpmdrake:143 #, c-format msgid "Search results" msgstr "Suchergebnisse" #: ../rpmdrake:57 #, c-format msgid "Search results (none)" msgstr "Suchergebnisse (keine)" #: ../rpmdrake:100 #, c-format msgid "Stop" msgstr "Stopp" #: ../rpmdrake:146 #, c-format msgid "Selected" msgstr "Markiert" #: ../rpmdrake:146 #, c-format msgid "Not selected" msgstr "Nicht markiert" #: ../rpmdrake:175 #, c-format msgid "Selected: %s / Free disk space: %s" msgstr "Ausgewählt: %s / Freier Plattenplatz: %s" #: ../rpmdrake:176 #, c-format msgid "Selected size: %d MB" msgstr "Gewählte Größe: %d MB" #: ../rpmdrake:239 #, c-format msgid "Installed" msgstr "Installiert" #: ../rpmdrake:239 #, c-format msgid "Non installed" msgstr "Nicht Installiert" #: ../rpmdrake:240 #, c-format msgid "%s choices" msgstr "%s Auswahl" #: ../rpmdrake:240 #, c-format msgid "Mandriva Linux choices" msgstr "Mandriva Linux Auswahl" #: ../rpmdrake:242 #, c-format msgid "All packages, alphabetical" msgstr "Alle Pakete, alphabetisch sortiert" #: ../rpmdrake:243 #, c-format msgid "All packages, by update availability" msgstr "Alle Pakete nach Verfügbarkeit" #: ../rpmdrake:244 #, c-format msgid "All packages, by size" msgstr "Alle Pakete, nach Größe" #: ../rpmdrake:245 #, c-format msgid "All packages, by selection state" msgstr "Alle Pakete, nach Auswahlstadium" #: ../rpmdrake:246 #, c-format msgid "Leaves only, sorted by install date" msgstr "Verbleibende, sortiert nach Installationsdatum" #: ../rpmdrake:247 #, c-format msgid "All packages, by group" msgstr "Alle Pakete, nach Gruppe" #: ../rpmdrake:249 #, c-format msgid "All updates" msgstr "Alle Updates" #: ../rpmdrake:249 #, c-format msgid "Security updates" msgstr "Sicherheitsupdates" #: ../rpmdrake:249 #, c-format msgid "Bugfixes updates" msgstr "Fehlerkorrekturen" #: ../rpmdrake:249 #, c-format msgid "Normal updates" msgstr "Normale Updates" #: ../rpmdrake:310 #, c-format msgid "in names" msgstr "in Namen" #: ../rpmdrake:312 #, c-format msgid "in descriptions" msgstr "in Beschreibungen" #: ../rpmdrake:314 #, c-format msgid "in file names" msgstr "in Dateinamen" #: ../rpmdrake:344 ../rpmdrake:386 ../rpmdrake:390 ../rpmdrake:394 #: ../rpmdrake:433 #, c-format msgid "/_Options" msgstr "/_Bearbeiten" #: ../rpmdrake:344 #, c-format msgid "/_Auto solve dependancies" msgstr "" #: ../rpmdrake:347 ../rpmdrake:350 ../rpmdrake:361 ../rpmdrake:374 #: ../rpmdrake:383 #, c-format msgid "/_File" msgstr "/_Datei" #: ../rpmdrake:350 #, c-format msgid "/_Update media" msgstr "/_Medien aktualisieren" #: ../rpmdrake:361 #, c-format msgid "/_Reset the selection" msgstr "/_Auswahl zurücksetzen" #: ../rpmdrake:374 #, c-format msgid "/Reload the _packages list" msgstr "/_Paketliste neu laden" #: ../rpmdrake:383 #, c-format msgid "/_Quit" msgstr "/_Beenden" #: ../rpmdrake:383 #, c-format msgid "<control>Q" msgstr "<control>Q" #: ../rpmdrake:390 #, c-format msgid "/_Media Manager" msgstr "/_Paketquellen-Manager" #: ../rpmdrake:394 ../rpmdrake:433 #, c-format msgid "/_Show automatically selected packages" msgstr "/_Automatisch markierte Pakete anzeigen" #: ../rpmdrake:398 ../rpmdrake:399 ../rpmdrake:400 ../rpmdrake:401 #, c-format msgid "/_Help" msgstr "/_Hilfe" #: ../rpmdrake:399 #, c-format msgid "/_Report Bug" msgstr "/_Fehler melden" #: ../rpmdrake:401 #, c-format msgid "/_About..." msgstr "/_Über ..." #: ../rpmdrake:404 #, c-format msgid "Rpmdrake" msgstr "Rpmdrake" #: ../rpmdrake:406 #, c-format msgid "Copyright (C) %s by Mandriva" msgstr "Copyright·(C)·%s·bei·Mandriva" #: ../rpmdrake:408 #, c-format msgid "Rpmdrake is Mandriva Linux package management tool." msgstr "Rpmdrake ist das Mandriva Linux Paket Managment tool." #: ../rpmdrake:410 #, c-format msgid "Mandriva Linux" msgstr "Mandriva Linux" #. -PO: put here name(s) and email(s) of translator(s) (eg: "John Smith <jsmith@nowhere.com>") #: ../rpmdrake:415 #, c-format msgid "_: Translator(s) name(s) & email(s)\n" msgstr "_: Nicolas Bauer <rastafarii@mandrivauser.de>\n" #: ../rpmdrake:448 #, c-format msgid "Find:" msgstr "Finden:" #: ../rpmdrake:457 #, c-format msgid "Search" msgstr "Suche" #: ../rpmdrake:459 #, c-format msgid "Clear" msgstr "Löschen" #: ../rpmdrake:479 #, c-format msgid "Apply" msgstr "Anwenden" #: ../rpmdrake:499 #, c-format msgid "Quick Introduction" msgstr "Schnell Einführung" #: ../rpmdrake:500 #, c-format msgid "You can browse the packages through the categories tree on the left." msgstr "" "Sie können die Pakete durch die Kategorien auf der linken Seite durchsuchen." #: ../rpmdrake:501 #, c-format msgid "" "You can view information about a package by clicking on it on the right list." msgstr "" "Sie bekommen Informationen über das Paket, wenn Sie auf die Liste auf der " "rechten Seite klicken." #: ../rpmdrake:502 #, c-format msgid "To install, update or remove a package, just click on its \"checkbox\"." msgstr "" "Zum Installieren, Aktualisieren oder zum Updaten, klicken Sie in die " "\"checkbox\"." #: ../rpmdrake.pm:106 #, c-format msgid "Software Update" msgstr "Softwareaktualisierung" #: ../rpmdrake.pm:106 #, c-format msgid "Mandriva Linux Update" msgstr "Mandriva Linux Update" #: ../rpmdrake.pm:133 #, c-format msgid "Please enter your credentials for accessing proxy\n" msgstr "Bitte geben Sie Ihre Berechtigung für den Zugang zum Proxy ein \n" #: ../rpmdrake.pm:134 #, c-format msgid "User name:" msgstr "Benutzername:" #: ../rpmdrake.pm:182 #, c-format msgid "Software Packages Removal" msgstr "Softwarepakete entfernen" #: ../rpmdrake.pm:183 ../rpmdrake.pm:187 #, c-format msgid "Software Packages Update" msgstr "Aktualisierung für Softwarepakete" #: ../rpmdrake.pm:184 #, c-format msgid "Software Packages Installation" msgstr "Softwarepakete installieren" #: ../rpmdrake.pm:228 #, c-format msgid "No" msgstr "Nein" #: ../rpmdrake.pm:232 #, c-format msgid "Yes" msgstr "Ja" #: ../rpmdrake.pm:282 #, c-format msgid "Info..." msgstr "Info ..." #: ../rpmdrake.pm:405 #, c-format msgid "Austria" msgstr "Österreich" #: ../rpmdrake.pm:406 #, c-format msgid "Australia" msgstr "Australien" #: ../rpmdrake.pm:407 #, c-format msgid "Belgium" msgstr "Belgien" #: ../rpmdrake.pm:408 #, c-format msgid "Brazil" msgstr "Brasilien" #: ../rpmdrake.pm:409 #, c-format msgid "Canada" msgstr "Kanada" #: ../rpmdrake.pm:410 #, c-format msgid "Switzerland" msgstr "Schweiz" #: ../rpmdrake.pm:411 #, c-format msgid "Costa Rica" msgstr "Costa Rica" #: ../rpmdrake.pm:412 #, c-format msgid "Czech Republic" msgstr "Tschechische Republik" #: ../rpmdrake.pm:413 #, c-format msgid "Germany" msgstr "Deutschland" #: ../rpmdrake.pm:414 #, c-format msgid "Danmark" msgstr "Dänemark" #: ../rpmdrake.pm:415 ../rpmdrake.pm:419 #, c-format msgid "Greece" msgstr "Griechenland" #: ../rpmdrake.pm:416 #, c-format msgid "Spain" msgstr "Spanien" #: ../rpmdrake.pm:417 #, c-format msgid "Finland" msgstr "Finnland" #: ../rpmdrake.pm:418 #, c-format msgid "France" msgstr "Frankreich" #: ../rpmdrake.pm:420 #, c-format msgid "Hungary" msgstr "Ungarn" #: ../rpmdrake.pm:421 #, c-format msgid "Israel" msgstr "Israel" #: ../rpmdrake.pm:422 #, c-format msgid "Italy" msgstr "Italien" #: ../rpmdrake.pm:423 #, c-format msgid "Japan" msgstr "Japan" #: ../rpmdrake.pm:424 #, c-format msgid "Korea" msgstr "Korea" #: ../rpmdrake.pm:425 #, c-format msgid "Netherlands" msgstr "Niederlande" #: ../rpmdrake.pm:426 #, c-format msgid "Norway" msgstr "Norwegen" #: ../rpmdrake.pm:427 #, c-format msgid "Poland" msgstr "Polen" #: ../rpmdrake.pm:428 #, c-format msgid "Portugal" msgstr "Portugal" #: ../rpmdrake.pm:429 #, c-format msgid "Russia" msgstr "Russland" #: ../rpmdrake.pm:430 #, c-format msgid "Sweden" msgstr "Schweden" #: ../rpmdrake.pm:431 #, c-format msgid "Singapore" msgstr "Singapur" #: ../rpmdrake.pm:432 #, c-format msgid "Slovakia" msgstr "Slowakei" #: ../rpmdrake.pm:433 #, c-format msgid "Taiwan" msgstr "Taiwan" #: ../rpmdrake.pm:434 #, c-format msgid "United Kingdom" msgstr "Großbritannien" #: ../rpmdrake.pm:435 #, c-format msgid "China" msgstr "China" #: ../rpmdrake.pm:436 ../rpmdrake.pm:437 ../rpmdrake.pm:438 ../rpmdrake.pm:439 #, c-format msgid "United States" msgstr "Vereinigte Staaten" #: ../rpmdrake.pm:537 #, c-format msgid "" "I need to access internet to get the mirror list.\n" "Please check that your network is currently running.\n" "\n" "Is it ok to continue?" msgstr "" "Ich brauche Zugang zum Internet um die Spiegelserverliste zu bekommen.\n" "Stellen Sie sicher, dass Ihre Netzwerk läuft.\n" "\n" "Fortfahren?" #: ../rpmdrake.pm:541 #, c-format msgid "" "I need to contact the Mandriva website to get the mirror list.\n" "Please check that your network is currently running.\n" "\n" "Is it ok to continue?" msgstr "" "Die Liste der Spiegelserver muss von der Mandriva Webseite\n" "geladen werden. Stellen Sie sicher, dass Ihre Netzwerk läuft.\n" "\n" "Ist es OK fortzufahren?" #: ../rpmdrake.pm:547 ../rpmdrake.pm:585 #, c-format msgid "Mirror choice" msgstr "Mirror Auswahl" #: ../rpmdrake.pm:550 #, c-format msgid "Please wait, downloading mirror addresses." msgstr "Bitte warten, besorgen der Spiegelserveradressen." #: ../rpmdrake.pm:551 #, c-format msgid "Please wait, downloading mirror addresses from the Mandriva website." msgstr "Bitte warten: Besorgen der Serverliste vom Mandriva-Server." #: ../rpmdrake.pm:558 #, c-format msgid "Error during download" msgstr "Fehler während des Besorgens" #: ../rpmdrake.pm:560 #, c-format msgid "" "There was an error downloading the mirror list:\n" "\n" "%s\n" "The network, or the website, may be unavailable.\n" "Please try again later." msgstr "" "Es trat ein Fehler beim Besorgen der Spiegelserverliste auf:\n" "\n" "%s\n" "Das Netzwerk, oder die Webseite sind nicht erreichbar.\n" "Bitte versuchen Sie es später erneut." #: ../rpmdrake.pm:565 #, c-format msgid "" "There was an error downloading the mirror list:\n" "\n" "%s\n" "The network, or the Mandriva website, may be unavailable.\n" "Please try again later." msgstr "" "Es trat ein Fehler beim Besorgen der Serverliste auf:\n" "\n" "%s\n" "Bitte versuchen Sie es später erneut." #: ../rpmdrake.pm:575 #, c-format msgid "No mirror" msgstr "Kein Mirror" #: ../rpmdrake.pm:577 #, c-format msgid "I can't find any suitable mirror." msgstr "Ich kann keinen passenden Spiegelserver finden." #: ../rpmdrake.pm:578 #, c-format msgid "" "I can't find any suitable mirror.\n" "\n" "There can be many reasons for this problem; the most frequent is\n" "the case when the architecture of your processor is not supported\n" "by Mandriva Linux Official Updates." msgstr "" "Ich kann keinen passenden Paketserver finden.\n" "\n" "Es gibt zahlreiche mögliche Fehlerquellen. Der häufigste Fehler\n" "ist, dass es für Ihre Prozessorarchitektur keine regulären Mandriva Linux\n" "Aktualisierungen gibt." #: ../rpmdrake.pm:597 #, c-format msgid "Please choose the desired mirror." msgstr "Bitte wählen Sie Ihren bevorzugten Mirror." #: ../rpmdrake.pm:650 #, c-format msgid "Copying file for medium `%s'..." msgstr "Datei für Medium „%s“ kopieren ..." #: ../rpmdrake.pm:653 #, c-format msgid "Examining file of medium `%s'..." msgstr "Untersuche Datei des Mediums „%s“ ..." #: ../rpmdrake.pm:656 #, c-format msgid "Examining remote file of medium `%s'..." msgstr "Untersuche Datei auf Medium „%s“ ..." #: ../rpmdrake.pm:660 #, c-format msgid " done." msgstr " fertig." #: ../rpmdrake.pm:664 #, c-format msgid " failed!" msgstr " gescheitert!" #. -PO: We're downloading the said file from the said medium #: ../rpmdrake.pm:668 #, c-format msgid "%s from medium %s" msgstr "%s von Medium %s" #: ../rpmdrake.pm:672 #, c-format msgid "Starting download of `%s'..." msgstr "Starte das Besorgen von „%s“ ..." #: ../rpmdrake.pm:676 #, c-format msgid "Download of `%s', time to go:%s, speed:%s" msgstr "Besorgen von „%s“, Dauer: %s, Geschwindigkeit: %s" #: ../rpmdrake.pm:679 #, c-format msgid "Download of `%s', speed:%s" msgstr "Besorgen von „%s“, Geschwindigkeit: %s" #: ../rpmdrake.pm:690 #, c-format msgid "Please wait, updating media..." msgstr "Aktualisiere Medium, bitte warten ..." #: ../rpmdrake.pm:717 #, c-format msgid "Error retrieving packages" msgstr "Fehler beim Abrufen von Paketen" #: ../rpmdrake.pm:718 #, c-format msgid "" "It's impossible to retrieve the list of new packages from the media\n" "`%s'. Either this update media is misconfigured, and in this case\n" "you should use the Software Media Manager to remove it and re-add it in " "order\n" "to reconfigure it, either it is currently unreachable and you should retry\n" "later." msgstr "" "Es ist unmöglich die Liste der neuen Pakete des Mediums '%s'\n" "abzufragen. Entweder ist das Aktualisierungsmedium falsch eingestellt, dann " "sollten \n" "Sie den Paketquellen-Manager nutzen um das Medium zu entfernen und es\n" "danach erneut hinzuzufügen und erneut konfigurieren, oder es ist zur Zeit " "nicht\n" "erreichbar und Sie sollten es später nochmals versuchen." #: ../rpmdrake.pm:749 #, c-format msgid "Update media" msgstr "Medien aktualisieren" #: ../rpmdrake.pm:754 #, c-format msgid "" "No active medium found. You must enable some media to be able to update them." msgstr "" "Kein aktives Medium gefunden. Sie müssen Medien aktivieren, um diese " "aktualisieren zu können." #: ../rpmdrake.pm:761 #, c-format msgid "Select the media you wish to update:" msgstr "Bitte wählen Sie die zu aktualisierenden Medien:" #: ../rpmdrake.pm:800 #, c-format msgid "" "Unable to update medium; it will be automatically disabled.\n" "\n" "Errors:\n" "%s" msgstr "" "Kann das Medium nicht aktualisieren, es wird deaktiviert. \n" "\n" "Fehler:\n" "%s" #: ../rpmdrake.pm:823 ../rpmdrake.pm:834 #, c-format msgid "" "Unable to add medium, errors reported:\n" "\n" "%s" msgstr "" "Konnte das Medium nicht hinzufügen, Fehlerbericht:\n" "%s" #: ../rpmdrake.pm:846 #, c-format msgid "Unable to create medium." msgstr "Ich kann das Medium nicht anlegen." #: ../rpmdrake.pm:851 #, c-format msgid "Failure when adding medium" msgstr "Fehler beim Hinzufügen des Mediums" #: ../rpmdrake.pm:852 #, c-format msgid "" "There was a problem adding medium:\n" "\n" "%s" msgstr "" "Es gab ein Problem beim Hinzufügen des Mediums:\n" "\n" "%s" #: ../rpmdrake.pm:865 #, c-format msgid "" "Your medium `%s', used for updates, does not match the version of %s you're " "running (%s).\n" "It will be disabled." msgstr "" "Ihr Medium „%s“, welches für Aktualisierungen benutzt wird, stimmt nicht mit " "der Version von %s, welche Sie benutzen (%s), überein.\n" "Es wird deaktiviert." #: ../rpmdrake.pm:868 #, c-format msgid "" "Your medium `%s', used for updates, does not match the version of Mandriva " "Linux you're running (%s).\n" "It will be disabled." msgstr "" "Ihr Aktualisierungsmedium „%s“ stimmt nicht mit der aktuell laufenden " "Mandriva Linux Version überein (%s).\n" "Es wird deaktiviert." #: ../rpmdrake.pm:885 #, c-format msgid "Help launched in background" msgstr "Hilfe im Hintergrund gestartet" #: ../rpmdrake.pm:886 #, c-format msgid "" "The help window has been started, it should appear shortly on your desktop." msgstr "" "Das Hilfe-Fenster wurde gestartet, es sollte gleich auf dem Desktop " "erscheinen." #: ../grpmi/curl_download/curl_download.xs:86 msgid "Download directory does not exist" msgstr "Downloadverzeichnis existiert nicht" #: ../grpmi/curl_download/curl_download.xs:89 #: ../grpmi/curl_download/curl_download.xs:213 msgid "Out of memory\n" msgstr "Kein Speicher mehr verfügbar\n" #: ../grpmi/curl_download/curl_download.xs:102 msgid "Could not open output file in append mode" msgstr "Konnte die Ausgabedatei nicht im Anhänge-Modus öffnen" #: ../grpmi/curl_download/curl_download.xs:133 msgid "Unsupported protocol\n" msgstr "Protokoll wird nicht unterstützt\n" #: ../grpmi/curl_download/curl_download.xs:136 msgid "Failed init\n" msgstr "Fehlgeschlagener Init\n" #: ../grpmi/curl_download/curl_download.xs:139 msgid "Bad URL format\n" msgstr "Die URL hat kein korrektes Format\n" #: ../grpmi/curl_download/curl_download.xs:142 msgid "Bad user format in URL\n" msgstr "Falsches Benutzer-Format in der URL\n" #: ../grpmi/curl_download/curl_download.xs:145 msgid "Couldn't resolve proxy\n" msgstr "Konnte den Proxynamen nicht zu IP-Adresse auflösen\n" #: ../grpmi/curl_download/curl_download.xs:148 msgid "Couldn't resolve host\n" msgstr "Konnte den Rechnernamen nicht zu IP-Adresse auflösen\n" #: ../grpmi/curl_download/curl_download.xs:151 msgid "Couldn't connect\n" msgstr "Konnte nicht verbinden\n" #: ../grpmi/curl_download/curl_download.xs:154 msgid "FTP unexpected server reply\n" msgstr "FTP erhielt sonderbare Antwort des Servers\n" #: ../grpmi/curl_download/curl_download.xs:157 msgid "FTP access denied\n" msgstr "FTP wurde der Zugriff verwehrt\n" #: ../grpmi/curl_download/curl_download.xs:160 msgid "FTP user password incorrect\n" msgstr "FTP erhielt falsches Passwort für den Benutzer\n" #: ../grpmi/curl_download/curl_download.xs:163 msgid "FTP unexpected PASS reply\n" msgstr "FTP erhielt sonderbare PASS Antwort\n" #: ../grpmi/curl_download/curl_download.xs:166 msgid "FTP unexpected USER reply\n" msgstr "FTP erhielt sonderbare USER Antwort\n" #: ../grpmi/curl_download/curl_download.xs:169 msgid "FTP unexpected PASV reply\n" msgstr "FTP erhielt sonderbare PASV Antwort\n" #: ../grpmi/curl_download/curl_download.xs:172 msgid "FTP unexpected 227 format\n" msgstr "FTP erhielt sonderbares Format 227\n" #: ../grpmi/curl_download/curl_download.xs:175 msgid "FTP can't get host\n" msgstr "FTP kann den Rechner nicht ermitteln\n" #: ../grpmi/curl_download/curl_download.xs:178 msgid "FTP can't reconnect\n" msgstr "FTP kann nicht neu verbinden\n" #: ../grpmi/curl_download/curl_download.xs:181 msgid "FTP couldn't set binary\n" msgstr "FTP kann nicht auf Binärübermittlung schalten\n" #: ../grpmi/curl_download/curl_download.xs:184 msgid "Partial file\n" msgstr "Unvollständige Datei\n" #: ../grpmi/curl_download/curl_download.xs:187 msgid "FTP couldn't RETR file\n" msgstr "FTP konnte RETR nicht für die Datei ausführen\n" #: ../grpmi/curl_download/curl_download.xs:190 msgid "FTP write error\n" msgstr "FTP Schreibfehler\n" #: ../grpmi/curl_download/curl_download.xs:195 msgid "FTP quote error\n" msgstr "FTP Fehler mit Anführungszeichen\n" #: ../grpmi/curl_download/curl_download.xs:198 msgid "HTTP not found\n" msgstr "HTTP nicht gefunden!\n" #: ../grpmi/curl_download/curl_download.xs:201 msgid "Write error\n" msgstr "Schreibfehler\n" #: ../grpmi/curl_download/curl_download.xs:204 msgid "User name illegally specified\n" msgstr "Benutzername falsch angegeben\n" #: ../grpmi/curl_download/curl_download.xs:207 msgid "FTP couldn't STOR file\n" msgstr "FTP konnte STOR nicht für die Datei ausführen\n" #: ../grpmi/curl_download/curl_download.xs:210 msgid "Read error\n" msgstr "Lesefehler\n" #: ../grpmi/curl_download/curl_download.xs:216 msgid "Time out\n" msgstr "Die Wartezeit ist abgelaufen\n" #: ../grpmi/curl_download/curl_download.xs:219 msgid "FTP couldn't set ASCII\n" msgstr "FTP konnte nicht auf Textmodus schalten\n" #: ../grpmi/curl_download/curl_download.xs:222 msgid "FTP PORT failed\n" msgstr "FTP konnte den PORT Befehl nicht ausführen\n" #: ../grpmi/curl_download/curl_download.xs:225 msgid "FTP couldn't use REST\n" msgstr "FTP konnte RESET nicht verwenden\n" #: ../grpmi/curl_download/curl_download.xs:228 msgid "FTP couldn't get size\n" msgstr "FTP konnte die Größe nicht ermitteln\n" #: ../grpmi/curl_download/curl_download.xs:231 msgid "HTTP range error\n" msgstr "HTTP RANGE-Fehler\n" #: ../grpmi/curl_download/curl_download.xs:234 msgid "HTTP POST error\n" msgstr "HTTP POST-Fehler\n" #: ../grpmi/curl_download/curl_download.xs:237 msgid "SSL connect error\n" msgstr "SSL Verbindungsfehler\n" #: ../grpmi/curl_download/curl_download.xs:240 msgid "FTP bad download resume\n" msgstr "FTP konnte das Besorgen nicht richtig fortsetzen\n" #: ../grpmi/curl_download/curl_download.xs:243 msgid "File couldn't read file\n" msgstr "FILE kann die Datei nicht lesen\n" #: ../grpmi/curl_download/curl_download.xs:246 msgid "LDAP cannot bind\n" msgstr "LDAP kann nicht gebunden werden\n" #: ../grpmi/curl_download/curl_download.xs:249 msgid "LDAP search failed\n" msgstr "Die LDAP-Suche schlug fehl\n" #: ../grpmi/curl_download/curl_download.xs:252 msgid "Library not found\n" msgstr "Ich kann eine Bibliothek nicht finden\n" #: ../grpmi/curl_download/curl_download.xs:255 msgid "Function not found\n" msgstr "Ich kann eine Funktion nicht finden\n" #: ../grpmi/curl_download/curl_download.xs:258 msgid "Aborted by callback\n" msgstr "Abbruch durch Rückruf\n" #: ../grpmi/curl_download/curl_download.xs:261 msgid "Bad function argument\n" msgstr "Falsches Argument in Funktionsaufruf\n" #: ../grpmi/curl_download/curl_download.xs:264 msgid "Bad calling order\n" msgstr "Falsche Aufrufreihenfolge\n" #: ../grpmi/curl_download/curl_download.xs:267 msgid "HTTP Interface operation failed\n" msgstr "HTTP-Schnittstellen-Aktion schlug fehl\n" #: ../grpmi/curl_download/curl_download.xs:270 msgid "my_getpass() returns fail\n" msgstr "my_getpass() schlug fehl\n" #: ../grpmi/curl_download/curl_download.xs:273 msgid "catch endless re-direct loops\n" msgstr "endlose Weiterleitungs-Schleifen fangen\n" #: ../grpmi/curl_download/curl_download.xs:276 msgid "User specified an unknown option\n" msgstr "Der Benutzer hat eine falsche Option angegeben\n" #: ../grpmi/curl_download/curl_download.xs:279 msgid "Malformed telnet option\n" msgstr "Fehlerhafte telnet-Option\n" #: ../grpmi/curl_download/curl_download.xs:282 msgid "removed after 7.7.3\n" msgstr "nach 7.7.3 entfernt\n" #: ../grpmi/curl_download/curl_download.xs:285 msgid "peer's certificate wasn't ok\n" msgstr "Das Zertifikat ist ungültig\n" #: ../grpmi/curl_download/curl_download.xs:288 msgid "when this is a specific error\n" msgstr "wenn dies ein bestimmter Fehler ist\n" #: ../grpmi/curl_download/curl_download.xs:291 msgid "SSL crypto engine not found\n" msgstr "SSL-Verschlüsselungs-Engine nicht gefunden\n" #: ../grpmi/curl_download/curl_download.xs:294 msgid "can not set SSL crypto engine as default\n" msgstr "" "Ich kann die SSL-Verschlüsselungs-Engine nicht als Standard festlegen\n" #: ../grpmi/curl_download/curl_download.xs:297 msgid "failed sending network data\n" msgstr "Das Senden der Netzwerkdaten ist fehlgeschlagen\n" #: ../grpmi/curl_download/curl_download.xs:300 msgid "failure in receiving network data\n" msgstr "Beim Empfang der Netzwerkdaten ist ein Fehler aufgetreten\n" #: ../grpmi/curl_download/curl_download.xs:303 msgid "share is in use\n" msgstr "Freigabe ist in Gebrauch\n" #: ../grpmi/curl_download/curl_download.xs:306 msgid "problem with the local certificate\n" msgstr "Problem mit dem lokalen Zertifikat\n" #: ../grpmi/curl_download/curl_download.xs:309 msgid "couldn't use specified cipher\n" msgstr "Ich konnte nicht die spezifiziert Ziffer verwenden\n" #: ../grpmi/curl_download/curl_download.xs:312 msgid "problem with the CA cert (path?)\n" msgstr "Problem mit dem CA-Zertifikat (Pfad?)\n" #: ../grpmi/curl_download/curl_download.xs:315 msgid "Unrecognized transfer encoding\n" msgstr "Unbekannte Transfer-Kodierung\n" #: ../grpmi/curl_download/curl_download.xs:320 #, c-format msgid "Unknown error code %d\n" msgstr "Unbekannte Fehler-Nr. %d\n" #: data/rpmdrake.desktop.in.h:1 msgid "Install Software" msgstr "Software installieren" #: data/rpmdrake-remove.desktop.in.h:1 msgid "Remove Software" msgstr "Software entfernen" #: data/rpmdrake-sources.desktop.in.h:1 msgid "Software Media Manager" msgstr "Paketquellen-Manager" #~ msgid "" #~ "The following packages have bad signatures:\n" #~ "\n" #~ "%s\n" #~ "\n" #~ "Do you want to continue installation?" #~ msgstr "" #~ "Die folgenden Pakete haben falsche Signaturen:\n" #~ "\n" #~ "%s\n" #~ "\n" #~ "Soll ich fortfahren?" #~ msgid "installing %s from %s" #~ msgstr "Installiere %s von %s" #~ msgid "installing %s" #~ msgstr "Installiere %s" #~ msgid "removing %s" #~ msgstr "Entferne %s" #~ msgid "Installation failed:" #~ msgstr "Installation fehlgeschlagen:" #~ msgid "Try installation without checking dependencies? (y/N) " #~ msgstr "Soll ich eine Installation ohne Abhängigkeitstest versuchen? (j/N) " #~ msgid "Try harder to install (--force)? (y/N) " #~ msgstr "Soll ich eine Installation erzwingen (--force)? (j/N) " #~ msgid "Preparing..." #~ msgstr "Vorbereiten ..." #~ msgid "Message Passing" #~ msgstr "Nachricht passiert" #~ msgid "Queueing Services" #~ msgstr "Dienste für Warteschlangen" #~ msgid "Deploiement" #~ msgstr "Entwicklung" #~ msgid "Deployment" #~ msgstr "Entwicklung"