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

use diagnostics;
use strict;

use MDK::Common::System;
use common;
use log;
use devices;
use partition_table qw(:types);
use run_program;
use swap;
use detect_devices;
use commands;
use modules;
use fsedit;
use loopback;


sub read_fstab {
    my ($file) = @_;

    map {
	my ($dev, $mntpoint, $type, $options) = split;

	$options = 'defaults' if $options eq 'rw'; # clean-up for mtab read

	$type = fs2type($type);
	if ($type eq 'supermount') {
	    # normalize this bloody supermount
	    $options = join(",", grep {
		if (/fs=(.*)/) {
		    $type = $1;
		    0;
		} elsif (/dev=(.*)/) {
		    $dev = $1;
		    0;
		} else {
		    1;
		}
	    } split(',', $options));
	}

	if ($dev =~ m,/(tmp|dev)/,) {
	    $dev = expand_symlinks($dev);
	    $dev =~ s,/(tmp|dev)/,,;
	}

	{ device => $dev, mntpoint => $mntpoint, type => $type, options => $options };
    } cat_($file);
}

sub merge_fstabs {
    my ($fstab, @l) = @_;

    foreach my $p (@$fstab) {
	my ($p2) = grep { $_->{device} eq $p->{device} } @l or next;
	@l       = grep { $_->{device} ne $p->{device} } @l;

	$p->{type} ne $p2->{type} && $p->{type} ne 'auto' && $p2->{type} ne 'auto' and
	  log::l("err, fstab and partition table do not agree for $p->{device} type: " . (type2fs($p) || type2name($p->{type})) . " vs ", (type2fs($p2) || type2name($p2->{type}))), next;
	
	$p->{mntpoint} = $p2->{mntpoint} if delete $p->{unsafeMntpoint};

	$p->{type} = $p2->{type} if $p->{type} eq 'defaults';
	$p->{options} = $p2->{options};
	add2hash($p, $p2);
    }
    @l;
}

sub add2all_hds {
    my ($all_hds, @l) = @_;

    @l = merge_fstabs([ fsedit::get_really_all_fstab($all_hds) ], @l);

    foreach (@l) {
	my $s = 
	    isNfs($_) ? 'nfs' :
	    isThisFs('smbfs', $_) ? 'smb' :
	    'special';
	push @{$all_hds->{$s}}, $_;
    }
}

sub merge_info_from_mtab {
    my ($fstab) = @_;

    my @l1 = map {; { device => $_->{device}, type => fs2type('swap') } } read_fstab('/proc/swaps');
    my @l2 = map { read_fstab($_) } '/etc/mtab', '/proc/mounts';

    foreach (@l1, @l2) {
	$_->{isMounted} = $_->{isFormatted} = 1;
	delete $_->{options};
    } 
    merge_fstabs($fstab, @l1, @l2);
}

sub merge_info_from_fstab {
    my ($fstab, $prefix, $uniq) = @_;
    my @l = grep { !($uniq && fsedit::mntpoint2part($_->{mntpoint}, $fstab)) } read_fstab("$prefix/etc/fstab");
    merge_fstabs($fstab, @l);
}

sub write_fstab {
    my ($all_hds, $prefix) = @_;
    $prefix ||= '';

    my @l1 = (fsedit::get_really_all_fstab($all_hds), @{$all_hds->{special}});
    my @l2 = read_fstab("$prefix/etc/fstab");

    my %new;
    my @l = map { 
	my $device = 
	  $_->{device} eq 'none' || member($_->{type}, qw(nfs smbfs)) ? 
	      $_->{device} : 
	  isLoopback($_) ? 
	      ($_->{mntpoint} eq '/' ? "/initrd/loopfs$_->{loopback_file}" : $_->{device}) :
	  do {
	      my $dir = $_->{device} =~ m|^/| ? '' : '/dev/';
	      devices::make("$prefix$dir$_->{device}"); "$dir$_->{device}";
	  };

	mkdir("$prefix/$_->{mntpoint}", 0755);
	my $mntpoint = loopback::carryRootLoopback($_) ? '/initrd/loopfs' : $_->{mntpoint};
	
	my ($freq, $passno) =
	  isTrueFS($_) ? 
	    (1, $_->{mntpoint} eq '/' ? 1 : loopback::carryRootLoopback($_) ? 0 : 2) : 
	    (0, 0);

	if (($device eq 'none' || !$new{$device}) && !$new{$mntpoint}) {
	    #- keep in mind the new line for fstab.
	    $new{$device} = 1;
	    $new{$mntpoint} = 1;

	    my $options = $_->{options};
	    my $type = type2fs($_);

	    # handle bloody supermount special case
	    if ($options =~ /supermount/) {
		$options = join(",", "dev=$device", "fs=$type", grep { $_ ne 'supermount' } split(':', $options));
		($device, $type) = ($mntpoint, 'supermount');
	    }

	    [ $device, $mntpoint, $type, $options || 'defaults', $freq, $passno ];
	} else {
	    ()
	}
    } grep { $_->{device} && $_->{mntpoint} && $_->{type} } (@l1, @l2);

    log::l("writing $prefix/etc/fstab");
    output("$prefix/etc/fstab", map { join(' ', @$_) . "\n" } sort { $a->[1] cmp $b->[1] } @l);
}

sub auto_fs() {
    grep { chop; $_ && !/nodev/ } cat_("/etc/filesystems");
}

sub mount_options {
    my %non_defaults = (
			sync => 'async', noatime => 'atime', noauto => 'auto', ro => 'rw', 
			user => 'nouser', nodev => 'dev', noexec => 'exec', nosuid => 'suid',
		       );
    my @user_implies = qw(noexec nodev nosuid);
    \%non_defaults, \@user_implies;
}

# simple function
# use mount_options_unpack + mount_options_pack for advanced stuff
sub add_options(\$@) {
    my ($option, @options) = @_;
    my %l; @l{split(',', $$option), @options} = (); delete $l{defaults};
    $$option = join(',', keys %l) || "defaults";
}

sub mount_options_unpack {
    my ($part) = @_;
    my $packed_options = $part->{options};

    my ($non_defaults, $user_implies) = mount_options();

    my @auto_fs = auto_fs();
    my %per_fs = (
		  iso9660 => [ qw(unhide) ],
		  vfat => [ qw(umask=0) ],
		  nfs => [ qw(rsize=8192 wsize=8192) ],
		  smbfs => [ qw(username= password=) ],
		 );
    while (my ($fs, $l) = each %per_fs) {
	isThisFs($fs, $part) || $part->{type} eq 'auto' && member($fs, @auto_fs) or next;
	$non_defaults->{$_} = 1 foreach @$l;
    }

    $non_defaults->{supermount} = 1 if member(type2fs($part), 'auto', @auto_fs);

    my $defaults = { reverse %$non_defaults };
    my %options = map { $_ => '' } keys %$non_defaults;
    my @unknown;
    foreach (split(",", $packed_options)) {
	if ($_ eq 'user') {
	    $options{$_} = 1 foreach ('user', @$user_implies);
	} elsif (exists $non_defaults->{$_}) {
	    $options{$_} = 1;
	} elsif ($defaults->{$_}) {
	    $options{$defaults->{$_}} = 0;
	} elsif (/(.*?=)(.*)/) {
	    $options{$1} = $2;
	} else {
	    push @unknown, $_;
	}
    }
    # merge those, for cleaner help
    $options{'rsize=8192,wsize=8192'} = delete $options{'rsize=8192'} && delete $options{'wsize=8192'}
      if exists $options{'rsize=8192'};

    my $unknown = join(",", @unknown);
    \%options, $unknown;
}

sub mount_options_pack {
    my ($part, $options, $unknown) = @_;

    my ($non_defaults, $user_implies) = mount_options();
    my @l;

    if (delete $options->{user}) {
	push @l, 'user';
	foreach (@$user_implies) {
	    if (!delete $options->{$_}) {
		# overriding
		$options->{$non_defaults->{$_}} = 1;
	    }
	}
    }
    push @l, map_each { if_($::b, $::a =~ /=$/ ? "$::a$::b" : $::a) } %$options;
    push @l, $unknown;

    $part->{options} = join(",", grep { $_ } @l);
}

sub mount_options_help {
    my %help = map { $_ => '' } @_;
    my %short = map { if_(/(.*?)=/, "$1=" => $_) } keys %help;

    foreach (split(':', $ENV{LANGUAGE}), '') {
	my $manpage = "/usr/share/man/$_/man8/mount.8.bz2";
	-e $manpage or next;

	my ($tp, $option);
	foreach (`bzip2 -dc $manpage`) {
	    my $prev_tp = $tp;
	    $tp = /^\.(TP|RE)/;
	    my ($s) = /^\.B (.*)/;
	    if ($prev_tp && $s eq '\-o' .. /X^/) {
		if (my $v = $prev_tp && $s =~ /^[a-z]/i .. $tp) {
		    if ($v == 1) {
			$s = $short{$s} || $s;
			$option = exists $help{$s} && !$help{$s} ? $s : '';
		    } elsif ($v !~ 'E0') {
			s/\\//g;
			s/\s*"(.*?)"\s*/$1/g if s/^\.BR\s+//;
			s/^\.B\s+//;
			$help{$option} .= $_ if $option;
		    }
		}        
	    }
	}
    }
    %help;
}

sub set_default_options {
    my ($all_hds, $useSupermount, $iocharset, $codepage) = @_;

    my @removables = @{$all_hds->{raw_hds}};

    foreach my $part (fsedit::get_really_all_fstab($all_hds)) {
	my ($options, $unknown) = mount_options_unpack($part);

	if (member($part, @removables)) {
	    $options->{supermount} = $useSupermount;
	    $part->{type} = 'auto'; # if supermount, code below will handle choosing the right type
	}

	my $is_auto = isThisFs('auto', $part);

	if ($options->{supermount} && $is_auto) {
	    # this can't work, guessing :-(
	    $part->{type} = fs2type($part->{media_type} eq 'cdrom' ? 'iso9660' : 'vfat');
	    $is_auto = 0;
	}

	if ($part->{media_type} eq 'fd') {
	    # slow device so don't loose time, write now!
	    $options->{sync} = 1;
	}

	if (isNfs($part)) {
	    put_in_hash($options, { 
	        ro => 1, nosuid => 1, 'rsize=8192,wsize=8192' => 1, 
		'iocharset=' => $iocharset,
            });
	}
	if (isFat($part) || $is_auto) {
	    put_in_hash($options, {
	        user => 1, 'umask=0' => 1, exec => 1,
	        'iocharset=' => $iocharset, 'codepage=' => $codepage,
            });
	}
	if (isThisFs('ntfs', $part) || $is_auto) {
	    put_in_hash($options, { 'iocharset=' => $iocharset });
	}
	if (isThisFs('iso9660', $part) || $is_auto) {
	    put_in_hash($options, { user => 1, exec => 1, });
	}
	if (isThisFs('reiserfs', $part)) {
	    $options->{notail} = 1;
	}
	if (isLoopback($_) && !isSwap($_)) { #- no need for loop option for swap files
	    $options->{loop} = 1;
	}

	# rationalize: no need for user
	if ($options->{autofs} || $options->{supermount}) {
	    $options->{user} = 0;
	}

	# have noauto when we have user
	$options->{noauto} = 1 if $options->{user}; 

	if ($options->{user}) {
	    # ensure security  (user_implies - noexec as noexec is not a security matter)
	    $options->{$_} = 1 foreach 'nodev', 'nosuid';
	}

	mount_options_pack($part, $options, $unknown);
    }
}

sub set_removable_mntpoints {
    my ($all_hds) = @_;

    my %names;
    foreach (@{$all_hds->{raw_hds}}) {
	my $name = $_->{media_type};
	if (member($name, 'hd', 'fd')) {
	    if (detect_devices::isZipDrive($_)) {
		$name = 'zip';
	    } elsif ($name eq 'fd') {
		# first floppy is valid, others may not be
		$name = $names{floppy} ? '' : 'floppy';
	    } else {
		log::l("set_removable_mntpoints: don't know what to with hd $_->{device}");
		next;
	    }
	}
	if ($name) {
	    my $s = ++$names{$name};
	    $_->{mntpoint} ||= "/mnt/$name" . ($s == 1 ? '' : $s);
	}
    }
}

sub get_raw_hds {
    my ($prefix, $all_hds) = @_;

    $all_hds->{raw_hds} = 
      [ 
       detect_devices::floppies(), detect_devices::cdroms(), 
       (map { $_->{device} .= '4'; $_ } detect_devices::zips())
      ];
    my @fstab = read_fstab("$prefix/etc/fstab");
    $all_hds->{nfss} = [ grep { isNfs($_) } @fstab ];
    $all_hds->{smbs} = [ grep { isThisFs('smbfs', $_) } @fstab ];
    $all_hds->{special} = [
       { device => 'none', mntpoint => '/proc', type => 'proc' },
       { device => 'none', mntpoint => '/dev/pts', type => 'devpts', options => 'mode=0620' },
    ];
}

################################################################################
# formatting functions
################################################################################
sub format_ext2($@) {
    #- mke2fs -b (1024|2048|4096) -c -i(1024 > 262144) -N (1 > 100000000) -m (0-100%) -L volume-label
    #- tune2fs
    my ($dev, @options) = @_;
    $dev =~ m,(rd|ida|cciss)/, and push @options, qw(-b 4096 -R stride=16); #- For RAID only.
    push @options, qw(-b 1024 -O none) if arch() =~ /alpha/;
    run_program::run("mke2fs", @options, devices::make($dev)) or die _("%s formatting of %s failed", "ext2", $dev);
}
sub format_ext3 {
    my ($dev, @options) = @_;
    format_ext2($dev, "-j", @options);
}
sub format_reiserfs {
    my ($dev, @options) = @_;
    #TODO add -h tea
    run_program::run("mkreiserfs", "-f", "-q", @options, devices::make($dev)) or die _("%s formatting of %s failed", "reiserfs", $dev);
}
sub format_xfs {
    my ($dev, @options) = @_;
    run_program::run("mkfs.xfs", "-f", "-q", @options, devices::make($dev)) or die _("%s formatting of %s failed", "xfs", $dev);
}
sub format_jfs {
    my ($dev, @options) = @_;
    run_program::run("mkfs.jfs", "-f", @options, devices::make($dev)) or die _("%s formatting of %s failed", "jfs", $dev);
}
sub format_dos {
    my ($dev, @options) = @_;
    run_program::run("mkdosfs", @options, devices::make($dev)) or die _("%s formatting of %s failed", "dos", $dev);
}
sub format_hfs {
    my ($dev, @options) = @_;
    run_program::run("hformat", @options, devices::make($dev)) or die _("%s formatting of %s failed", "HFS", $dev);
}
sub real_format_part {
    my ($part) = @_;

    $part->{isFormatted} and return;

    my @options = $part->{toFormatCheck} ? "-c" : ();
    log::l("formatting device $part->{device} (type ", type2name($part->{type}), ")");

    if (isExt2($part)) {
	push @options, "-F" if isLoopback($part);
	format_ext2($part->{device}, @options);
    } elsif (isThisFs("ext3", $part)) {
        format_ext3($part->{device}, @options);
    } elsif (isThisFs("reiserfs", $part)) {
        format_reiserfs($part->{device}, @options, if_(c::kernel_version() =~ /^\Q2.2/, "-v", "1"));
    } elsif (isThisFs("xfs", $part)) {
        format_xfs($part->{device}, @options);
    } elsif (isThisFs("jfs", $part)) {
        format_jfs($part->{device}, @options);
    } elsif (isDos($part)) {
        format_dos($part->{device}, @options);
    } elsif (isWin($part)) {
        format_dos($part->{device}, @options, '-F', 32);
    } elsif (isThisFs('hfs', $part)) {
        format_hfs($part->{device}, @options, '-l', "Untitled");
    } elsif (isAppleBootstrap($part)) {
        format_hfs($part->{device}, @options, '-l', "bootstrap");
    } elsif (isSwap($part)) {
	my $check_blocks = grep { /^-c$/ } @options;
        swap::make($part->{device}, $check_blocks);
    } else {
	die _("I don't know how to format %s in type %s", $_->{device}, type2name($_->{type}));
    }
    $part->{isFormatted} = 1;
}
sub format_part {
    my ($raids, $part, $prefix) = @_;
    if (isRAID($part)) {
	require raid;
	raid::format_part($raids, $part);
    } elsif (isLoopback($part)) {
	loopback::format_part($part, $prefix);
    } else {
	real_format_part($part);
    }
}

################################################################################
# mounting functions
################################################################################
sub formatMount_part {
    my ($part, $raids, $fstab, $prefix, $callback) = @_;

    if (isLoopback($part)) {
	formatMount_part($part->{loopback_device}, $raids, $fstab, $prefix, $callback);
    }
    if (my $p = up_mount_point($part->{mntpoint}, $fstab)) {
	formatMount_part($p, $raids, $fstab, $prefix, $callback) unless loopback::carryRootLoopback($part);
    }

    if ($part->{toFormat}) {
	$callback->($part) if $callback;
	format_part($raids, $part, $prefix);
    }
    mount_part($part, $prefix);
}

sub formatMount_all {
    my ($raids, $fstab, $prefix, $callback) = @_;
    formatMount_part($_, $raids, $fstab, $prefix, $callback) 
      foreach sort { isLoopback($a) ? 1 : isSwap($a) ? -1 : 0 } grep { $_->{mntpoint} } @$fstab;

    #- ensure the link is there
    loopback::carryRootCreateSymlink($_, $prefix) foreach @$fstab;

    #- for fun :)
    #- that way, when install exits via ctrl-c, it gives hand to partition
    eval {
	local $SIG{__DIE__} = 'ignore';
	my ($type, $major, $minor) = devices::entry(fsedit::get_root($fstab)->{device});
	output "/proc/sys/kernel/real-root-dev", makedev($major, $minor);
    };
}

sub mount {
    my ($dev, $where, $fs, $rdonly) = @_;
    log::l("mounting $dev on $where as type $fs");

    -d $where or commands::mkdir_('-p', $where);

    if ($fs eq 'nfs') {
	log::l("calling nfs::mount($dev, $where)");
#	nfs::mount($dev, $where) or die _("nfs mount failed");
    } elsif ($fs eq 'smbfs') {
	die "no smb yet...";
    } else {
	$dev = devices::make($dev) if $fs ne 'proc' && $fs ne 'usbdevfs';

	my $flag = c::MS_MGC_VAL();
	$flag |= c::MS_RDONLY() if $rdonly;
	my $mount_opt = "";

	if ($fs eq 'vfat') {
	    $mount_opt = 'check=relaxed';
	    eval { modules::load('vfat') }; #- try using vfat
	    eval { modules::load('msdos') } if $@; #- otherwise msdos...
	} elsif ($fs eq 'reiserfs') {
	    #- could be better if we knew if there is a /boot or not
	    #- without knowing it, / is forced to be mounted with notail
	    # if $where =~ m|/(boot)?$|;
	    $mount_opt = 'notail'; #- notail in any case
	} elsif ($fs eq 'ext2') {
	    run_program::run("fsck.ext2", "-a", $dev);
	    $? & 0x0100 and log::l("fsck corrected partition $dev");
	    $? & 0xfeff and die _("fsck failed with exit code %d or signal %d", $? >> 8, $? & 255);
	}
	if (member($fs, qw(hfs romfs ufs reiserfs xfs jfs ext3))) {
	    eval { modules::load($fs) };
	}

	$where =~ s|/$||;
	log::l("calling mount($dev, $where, $fs, $flag, $mount_opt)");
	syscall_('mount', $dev, $where, $fs, $flag, $mount_opt) or die _("mount failed: ") . "$!";
    }
    local *F;
    open F, ">>/etc/mtab" or return; #- fail silently, must be read-only /etc
    print F "$dev $where $fs defaults 0 0\n";
}

#- takes the mount point to umount (can also be the device)
sub umount {
    my ($mntpoint) = @_;
    $mntpoint =~ s|/$||;
    log::l("calling umount($mntpoint)");
    syscall_('umount', $mntpoint) or die _("error unmounting %s: %s", $mntpoint, "$!");

    substInFile { $_ = '' if /(^|\s)$mntpoint\s/ } '/etc/mtab'; #- don't care about error, if we can't read, we won't manage to write... (and mess mtab)
}

sub mount_part {
    my ($part, $prefix, $rdonly) = @_;

    #- root carrier's link can't be mounted
    loopback::carryRootCreateSymlink($part, $prefix);

    return if $part->{isMounted};

    unless ($::testing) {
	if (isSwap($part)) {
	    swap::swapon($part->{device});
	} else {
	    $part->{mntpoint} or die "missing mount point";

	    my $dev = $part->{device};
	    my $mntpoint = ($prefix || '') . $part->{mntpoint};
	    if (isLoopback($part)) {
		eval { modules::load('loop') };
		$dev = $part->{real_device} = devices::set_loop($part->{device}) || die;
	    } elsif (loopback::carryRootLoopback($part)) {
		$mntpoint = "/initrd/loopfs";
	    }
	    mount(devices::make($dev), $mntpoint, type2fs($part), $rdonly);
	    rmdir "$mntpoint/lost+found";
	}
    }
    $part->{isMounted} = $part->{isFormatted} = 1; #- assume that if mount works, partition is formatted
}

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

    $part->{isMounted} or return;

    unless ($::testing) {
	if (isSwap($part)) {
	    swap::swapoff($part->{device});
	} elsif (loopback::carryRootLoopback($part)) {
	    umount("/initrd/loopfs");
	} else {
	    umount(($prefix || '') . $part->{mntpoint} || devices::make($part->{device}));
	    c::del_loop(delete $part->{real_device}) if isLoopback($part);
	}
    }
    $part->{isMounted} = 0;
}

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

    #- TODO fsck, create check_mount_all ?
    log::l("mounting all filesystems");

    #- order mount by alphabetical ordre, that way / < /home < /home/httpd...
    foreach (sort { $a->{mntpoint} cmp $b->{mntpoint} } grep { isSwap($_) || $_->{mntpoint} && isTrueFS($_) } @$fstab) {
	mount_part($_, $prefix);
    }
}

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

    log::l("unmounting all filesystems");

    foreach (sort { $b->{mntpoint} cmp $a->{mntpoint} } @$fstab) {
	$_->{mntpoint} and umount_part($_, $prefix);
    }
}

################################################################################
# various functions
################################################################################
sub df {
    my ($part, $prefix) = @_;
    my $dir = "/tmp/tmp_fs_df";

    return $part->{free} if exists $part->{free};

    if ($part->{isMounted}) {
	$dir = ($prefix || '') . $part->{mntpoint};
    } elsif ($part->{notFormatted} && !$part->{isFormatted}) {
	return; #- won't even try!
    } else {
	mkdir $dir;
	eval { mount($part->{device}, $dir, type2fs($part), 'readonly') };
	if ($@) {
	    $part->{notFormatted} = 1;
	    $part->{isFormatted} = 0;
	    unlink $dir;
	    return;
	}
    }
    my (undef, $free) = MDK::Common::System::df($dir);

    if (!$part->{isMounted}) {
	umount($dir);
	unlink($dir)
    }

    $part->{free} = 2 * $free if defined $free;
    $part->{free};
}

sub up_mount_point {
    my ($mntpoint, $fstab) = @_;
    while (1) {
	$mntpoint = dirname($mntpoint);
	$mntpoint ne "." or return;
	$_->{mntpoint} eq $mntpoint and return $_ foreach @$fstab;
    }
}

1;
v>
-"архитектуру, которая поддерживает довольно широкий диапазон ISA, USB и PCI-"
-"карт.\n"
+"ALSA (расширенная звуковая архитектура Linux) представляет собой модульную архитектуру, которая поддерживает довольно широкий диапазон ISA, USB и PCI-карт.\n"
"\n"
"Она также предоставляет значительно большую API, чем OSS.\n"
"\n"
"Для поддержки alsa можно использовать:\n"
"- старую api, совместимую с OSS\n"
-"- новую api ALSA, предоставляющую много расширенных возможностей, но "
-"требующую библиотеку ALSA.\n"
+"- новую api ALSA, предоставляющую много расширенных возможностей, но требующую библиотеку ALSA.\n"
-#: harddrake/sound.pm:428 harddrake/sound.pm:511
+#: harddrake/sound.pm:428
+#: harddrake/sound.pm:511
#, c-format
msgid "Driver:"
msgstr "Драйвер:"
@@ -3338,12 +3367,8 @@ msgstr "Нет драйвера с открытым исходным кодом"
#: 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 ""
-"Для вашей звуковой карты (%s) нет свободного драйвера, но имеется "
-"собственный драйвер на \"%s\""
+msgid "There's no free driver for your sound card (%s), but there's a proprietary driver at \"%s\"."
+msgstr "Для вашей звуковой карты (%s) нет свободного драйвера, но имеется собственный драйвер на \"%s\""
#: harddrake/sound.pm:454
#, c-format
@@ -3367,8 +3392,7 @@ 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"
+"- \"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"
@@ -3385,12 +3409,10 @@ msgid ""
"\n"
"- \"/sbin/fuser -v /dev/dsp\" will tell which program uses the sound card.\n"
msgstr ""
-"Классическое тестирование ошибок звука выполняется запуском следующих "
-"команд:\n"
+"Классическое тестирование ошибок звука выполняется запуском следующих команд:\n"
"\n"
"\n"
-"- \"lspcidrake -v | fgrep -i AUDIO\" сообщит вам, какой драйвер использует "
-"ваша карта по умолчанию\n"
+"- \"lspcidrake -v | fgrep -i AUDIO\" сообщит вам, какой драйвер использует ваша карта по умолчанию\n"
"\n"
"- \"grep sound-slot /etc/modprobe.conf\" сообщит вам, какой драйвер\n"
"используется в данный момент\n"
@@ -3420,14 +3442,12 @@ msgstr "Выбор произвольного драйвера"
#: harddrake/sound.pm:506
#, c-format
msgid ""
-"If you really think that you know which driver is the right one for your "
-"card\n"
+"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 ""
-"Если вы действительно думаете, что сами знаете, какой драйвер является "
-"верным\n"
+"Если вы действительно думаете, что сами знаете, какой драйвер является верным\n"
"для вашей карты, вы можете выбрать его из списка сверху.\n"
"\n"
"Текущим драйвером для вашей звуковой карты \"%s\" является \"%s\" "
@@ -3437,7 +3457,9 @@ msgstr ""
msgid "Auto-detect"
msgstr "Автоопределение"
-#: harddrake/v4l.pm:97 harddrake/v4l.pm:285 harddrake/v4l.pm:337
+#: harddrake/v4l.pm:97
+#: harddrake/v4l.pm:285
+#: harddrake/v4l.pm:337
#, c-format
msgid "Unknown|Generic"
msgstr "Неизвестный|Обычный"
@@ -3455,16 +3477,11 @@ msgstr "Неизвестный|CPH06X (bt878) [большинство произ
#: 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."
+"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 ""
-"Для большинства современных ТВ-карт модуль bttv ядра GNU/Linux просто "
-"автоматически определит правильные параметры.\n"
-"Если ваша карта не определилась, то здесь вы можете принудительно включить "
-"использование правильных типов тюнера и карты. Если необходимо, просто "
-"выберите параметры своей ТВ-карты"
+"Для большинства современных ТВ-карт модуль bttv ядра GNU/Linux просто автоматически определит правильные параметры.\n"
+"Если ваша карта не определилась, то здесь вы можете принудительно включить использование правильных типов тюнера и карты. Если необходимо, просто выберите параметры своей ТВ-карты"
#: harddrake/v4l.pm:478
#, c-format
@@ -3476,20 +3493,35 @@ msgstr "Модель карты :"
msgid "Tuner type:"
msgstr "Тип тюнера :"
-#: 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
+#: 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 "ОК"
-#: interactive.pm:228 modules/interactive.pm:72 ugtk2.pm:811 wizards.pm:156
+#: interactive.pm:228
+#: modules/interactive.pm:72
+#: ugtk2.pm:811
+#: wizards.pm:156
#, c-format
msgid "Yes"
msgstr "Да"
-#: interactive.pm:228 modules/interactive.pm:72 ugtk2.pm:811 wizards.pm:156
+#: interactive.pm:228
+#: modules/interactive.pm:72
+#: ugtk2.pm:811
+#: wizards.pm:156
#, c-format
msgid "No"
msgstr "Нет"
@@ -3499,42 +3531,52 @@ msgstr "Нет"
msgid "Choose a file"
msgstr "Выберите файл"
-#: interactive.pm:387 interactive/gtk.pm:453
+#: interactive.pm:387
+#: interactive/gtk.pm:453
#, c-format
msgid "Add"
msgstr "Добавить"
-#: interactive.pm:387 interactive/gtk.pm:453
+#: interactive.pm:387
+#: interactive/gtk.pm:453
#, c-format
msgid "Modify"
msgstr "Изменить"
-#: interactive.pm:549 interactive/curses.pm:263 ugtk2.pm:519
+#: interactive.pm:549
+#: interactive/curses.pm:263
+#: ugtk2.pm:519
#, c-format
msgid "Finish"
msgstr "Завершить"
-#: interactive.pm:550 interactive/curses.pm:260 ugtk2.pm:517
+#: interactive.pm:550
+#: interactive/curses.pm:260
+#: ugtk2.pm:517
#, c-format
msgid "Previous"
msgstr "Назад"
-#: interactive/curses.pm:556 ugtk2.pm:872
+#: interactive/curses.pm:556
+#: ugtk2.pm:872
#, c-format
msgid "No file chosen"
msgstr "Файлы не выбраны"
-#: interactive/curses.pm:560 ugtk2.pm:876
+#: interactive/curses.pm:560
+#: ugtk2.pm:876
#, c-format
msgid "You have chosen a directory, not a file"
msgstr "Вы указали каталог, а не файл"
-#: interactive/curses.pm:562 ugtk2.pm:878
+#: interactive/curses.pm:562
+#: ugtk2.pm:878
#, c-format
msgid "No such directory"
msgstr "Нет такого каталога"
-#: interactive/curses.pm:562 ugtk2.pm:878
+#: interactive/curses.pm:562
+#: ugtk2.pm:878
#, c-format
msgid "No such file"
msgstr "Нет такого файла"
@@ -3544,12 +3586,14 @@ msgstr "Нет такого файла"
msgid "Beware, Caps Lock is enabled"
msgstr "Обратите внимание, CapsLock включен"
-#: interactive/stdio.pm:29 interactive/stdio.pm:154
+#: interactive/stdio.pm:29
+#: interactive/stdio.pm:154
#, c-format
msgid "Bad choice, try again\n"
msgstr "Неудачный выбор, попробуйте еще раз\n"
-#: interactive/stdio.pm:30 interactive/stdio.pm:155
+#: interactive/stdio.pm:30
+#: interactive/stdio.pm:155
#, c-format
msgid "Your choice? (default %s) "
msgstr "Что вы выбираете? (по умолчанию %s) "
@@ -3631,7 +3675,8 @@ msgstr "default:LTR"
msgid "Andorra"
msgstr "Андорра"
-#: lang.pm:213 timezone.pm:226
+#: lang.pm:213
+#: timezone.pm:226
#, c-format
msgid "United Arab Emirates"
msgstr "Объединенные арабские Эмираты"
@@ -3676,7 +3721,8 @@ msgstr "Ангола"
msgid "Antarctica"
msgstr "Антарктика"
-#: lang.pm:222 timezone.pm:271
+#: lang.pm:222
+#: timezone.pm:271
#, c-format
msgid "Argentina"
msgstr "Аргентина"
@@ -3686,12 +3732,16 @@ msgstr "Аргентина"
msgid "American Samoa"
msgstr "Американские Самоа"
-#: lang.pm:224 mirror.pm:12 timezone.pm:229
+#: lang.pm:224
+#: mirror.pm:12
+#: timezone.pm:229
#, c-format
msgid "Austria"
msgstr "Австрия"
-#: lang.pm:225 mirror.pm:11 timezone.pm:267
+#: lang.pm:225
+#: mirror.pm:11
+#: timezone.pm:267
#, c-format
msgid "Australia"
msgstr "Австралия"
@@ -3716,12 +3766,15 @@ msgstr "Босния и Герцеговина"
msgid "Barbados"
msgstr "Барбадос"
-#: lang.pm:230 timezone.pm:211
+#: lang.pm:230
+#: timezone.pm:211
#, c-format
msgid "Bangladesh"
msgstr "Бангладеш"
-#: lang.pm:231 mirror.pm:13 timezone.pm:231
+#: lang.pm:231
+#: mirror.pm:13
+#: timezone.pm:231
#, c-format
msgid "Belgium"
msgstr "Бельгия"
@@ -3731,7 +3784,8 @@ msgstr "Бельгия"
msgid "Burkina Faso"
msgstr "Буркина-Фасо"
-#: lang.pm:233 timezone.pm:232
+#: lang.pm:233
+#: timezone.pm:232
#, c-format
msgid "Bulgaria"
msgstr "Болгария"
@@ -3766,7 +3820,9 @@ msgstr "Бруней Даруссалам"
msgid "Bolivia"
msgstr "Боливия"
-#: lang.pm:240 mirror.pm:14 timezone.pm:272
+#: lang.pm:240
+#: mirror.pm:14
+#: timezone.pm:272
#, c-format
msgid "Brazil"
msgstr "Бразилия"
@@ -3791,7 +3847,8 @@ msgstr "Остров Буве"
msgid "Botswana"
msgstr "Ботсвана"
-#: lang.pm:245 timezone.pm:230
+#: lang.pm:245
+#: timezone.pm:230
#, c-format
msgid "Belarus"
msgstr "Беларусь"
@@ -3801,7 +3858,9 @@ msgstr "Беларусь"
msgid "Belize"
msgstr "Белиз"
-#: lang.pm:247 mirror.pm:15 timezone.pm:261
+#: lang.pm:247
+#: mirror.pm:15
+#: timezone.pm:261
#, c-format
msgid "Canada"
msgstr "Канада"
@@ -3826,7 +3885,9 @@ msgstr "Центрально-африканская республика"
msgid "Congo (Brazzaville)"
msgstr "Конго (Brazzaville)"
-#: lang.pm:252 mirror.pm:39 timezone.pm:255
+#: lang.pm:252
+#: mirror.pm:39
+#: timezone.pm:255
#, c-format
msgid "Switzerland"
msgstr "Швейцария"
@@ -3841,7 +3902,8 @@ msgstr "Кот-д'Ивуар"
msgid "Cook Islands"
msgstr "Острова Кука"
-#: lang.pm:255 timezone.pm:273
+#: lang.pm:255
+#: timezone.pm:273
#, c-format
msgid "Chile"
msgstr "Чили"
@@ -3851,7 +3913,8 @@ msgstr "Чили"
msgid "Cameroon"
msgstr "Камерун"
-#: lang.pm:257 timezone.pm:212
+#: lang.pm:257
+#: timezone.pm:212
#, c-format
msgid "China"
msgstr "Китай"
@@ -3861,7 +3924,8 @@ msgstr "Китай"
msgid "Colombia"
msgstr "Колумбия"
-#: lang.pm:259 mirror.pm:16
+#: lang.pm:259
+#: mirror.pm:16
#, c-format
msgid "Costa Rica"
msgstr "Коста-Рика"
@@ -3891,12 +3955,16 @@ msgstr "Остров Рождества"
msgid "Cyprus"
msgstr "Кипр"
-#: lang.pm:265 mirror.pm:17 timezone.pm:233
+#: lang.pm:265
+#: mirror.pm:17
+#: timezone.pm:233
#, c-format
msgid "Czech Republic"
msgstr "Чешская Республика"
-#: lang.pm:266 mirror.pm:22 timezone.pm:238
+#: lang.pm:266
+#: mirror.pm:22
+#: timezone.pm:238
#, c-format
msgid "Germany"
msgstr "Германия"
@@ -3906,7 +3974,9 @@ msgstr "Германия"
msgid "Djibouti"
msgstr "Джибути"
-#: lang.pm:268 mirror.pm:18 timezone.pm:234
+#: lang.pm:268
+#: mirror.pm:18
+#: timezone.pm:234
#, c-format
msgid "Denmark"
msgstr "Дания"
@@ -3931,7 +4001,9 @@ msgstr "Алжир"
msgid "Ecuador"
msgstr "Эквадор"
-#: lang.pm:273 mirror.pm:19 timezone.pm:235
+#: lang.pm:273
+#: mirror.pm:19
+#: timezone.pm:235
#, c-format
msgid "Estonia"
msgstr "Эстония"
@@ -3951,7 +4023,9 @@ msgstr "Западная Сахара"
msgid "Eritrea"
msgstr "Эритрея"
-#: lang.pm:277 mirror.pm:37 timezone.pm:253
+#: lang.pm:277
+#: mirror.pm:37
+#: timezone.pm:253
#, c-format
msgid "Spain"
msgstr "Испания"
@@ -3961,7 +4035,9 @@ msgstr "Испания"
msgid "Ethiopia"
msgstr "Эфиопия"
-#: lang.pm:279 mirror.pm:20 timezone.pm:236
+#: lang.pm:279
+#: mirror.pm:20
+#: timezone.pm:236
#, c-format
msgid "Finland"
msgstr "Финляндия"
@@ -3986,7 +4062,9 @@ msgstr "Микронезия"
msgid "Faroe Islands"
msgstr "Фарерские острова"
-#: lang.pm:284 mirror.pm:21 timezone.pm:237
+#: lang.pm:284
+#: mirror.pm:21
+#: timezone.pm:237
#, c-format
msgid "France"
msgstr "Франция"
@@ -3996,7 +4074,8 @@ msgstr "Франция"
msgid "Gabon"
msgstr "Габон"
-#: lang.pm:286 timezone.pm:257
+#: lang.pm:286
+#: timezone.pm:257
#, c-format
msgid "United Kingdom"
msgstr "Объединенное Королевство"
@@ -4051,7 +4130,9 @@ msgstr "Гваделупа"
msgid "Equatorial Guinea"
msgstr "Экваториальная Гвинея"
-#: lang.pm:297 mirror.pm:23 timezone.pm:239
+#: lang.pm:297
+#: mirror.pm:23
+#: timezone.pm:239
#, c-format
msgid "Greece"
msgstr "Греция"
@@ -4061,7 +4142,8 @@ msgstr "Греция"
msgid "South Georgia and the South Sandwich Islands"
msgstr "Южная Джорджия и Южные Сандвичевы острова "
-#: lang.pm:299 timezone.pm:262
+#: lang.pm:299
+#: timezone.pm:262
#, c-format
msgid "Guatemala"
msgstr "Гватемала"
@@ -4106,27 +4188,35 @@ msgstr "Хорватия"
msgid "Haiti"
msgstr "Гаити"
-#: lang.pm:308 mirror.pm:24 timezone.pm:240
+#: lang.pm:308
+#: mirror.pm:24
+#: timezone.pm:240
#, c-format
msgid "Hungary"
msgstr "Венгрия"
-#: lang.pm:309 timezone.pm:215
+#: lang.pm:309
+#: timezone.pm:215
#, c-format
msgid "Indonesia"
msgstr "Индонезия"
-#: lang.pm:310 mirror.pm:25 timezone.pm:241
+#: lang.pm:310
+#: mirror.pm:25
+#: timezone.pm:241
#, c-format
msgid "Ireland"
msgstr "Ирландия"
-#: lang.pm:311 mirror.pm:26 timezone.pm:217
+#: lang.pm:311
+#: mirror.pm:26
+#: timezone.pm:217
#, c-format
msgid "Israel"
msgstr "Израиль"
-#: lang.pm:312 timezone.pm:214
+#: lang.pm:312
+#: timezone.pm:214
#, c-format
msgid "India"
msgstr "Индия"
@@ -4141,7 +4231,8 @@ msgstr "Британская территория Индийского океа
msgid "Iraq"
msgstr "Ирак"
-#: lang.pm:315 timezone.pm:216
+#: lang.pm:315
+#: timezone.pm:216
#, c-format
msgid "Iran"
msgstr "Иран"
@@ -4151,7 +4242,9 @@ msgstr "Иран"
msgid "Iceland"
msgstr "Исландия"
-#: lang.pm:317 mirror.pm:27 timezone.pm:242
+#: lang.pm:317
+#: mirror.pm:27
+#: timezone.pm:242
#, c-format
msgid "Italy"
msgstr "Италия"
@@ -4166,7 +4259,9 @@ msgstr "Ямайка"
msgid "Jordan"
msgstr "Иордания"
-#: lang.pm:320 mirror.pm:28 timezone.pm:218
+#: lang.pm:320
+#: mirror.pm:28
+#: timezone.pm:218
#, c-format
msgid "Japan"
msgstr "Япония"
@@ -4206,7 +4301,8 @@ msgstr "Сент-Китс и Невис"
msgid "Korea (North)"
msgstr "Корея (North)"
-#: lang.pm:328 timezone.pm:219
+#: lang.pm:328
+#: timezone.pm:219
#, c-format
msgid "Korea"
msgstr "Корея"
@@ -4261,12 +4357,14 @@ msgstr "Либерия"
msgid "Lesotho"
msgstr "Лесото"
-#: lang.pm:339 timezone.pm:243
+#: lang.pm:339
+#: timezone.pm:243
#, c-format
msgid "Lithuania"
msgstr "Литва"
-#: lang.pm:340 timezone.pm:244
+#: lang.pm:340
+#: timezone.pm:244
#, c-format
msgid "Luxembourg"
msgstr "Люксембург"
@@ -4366,12 +4464,14 @@ msgstr "Мальдивы"
msgid "Malawi"
msgstr "Малави"
-#: lang.pm:360 timezone.pm:263
+#: lang.pm:360
+#: timezone.pm:263
#, c-format
msgid "Mexico"
msgstr "Мексика"
-#: lang.pm:361 timezone.pm:220
+#: lang.pm:361
+#: timezone.pm:220
#, c-format
msgid "Malaysia"
msgstr "Малайзия"
@@ -4411,12 +4511,16 @@ msgstr "Нигерия"
msgid "Nicaragua"
msgstr "Никарагуа"
-#: lang.pm:369 mirror.pm:29 timezone.pm:245
+#: lang.pm:369
+#: mirror.pm:29
+#: timezone.pm:245
#, c-format
msgid "Netherlands"
msgstr "Нидерланды"
-#: lang.pm:370 mirror.pm:31 timezone.pm:246
+#: lang.pm:370
+#: mirror.pm:31
+#: timezone.pm:246
#, c-format
msgid "Norway"
msgstr "Норвегия"
@@ -4436,7 +4540,9 @@ msgstr "Науру"
msgid "Niue"
msgstr "Нью"
-#: lang.pm:374 mirror.pm:30 timezone.pm:268
+#: lang.pm:374
+#: mirror.pm:30
+#: timezone.pm:268
#, c-format
msgid "New Zealand"
msgstr "Новая Зеландия"
@@ -4466,7 +4572,8 @@ msgstr "Французская Полинезия"
msgid "Papua New Guinea"
msgstr "Папуа Новая Гвинея"
-#: lang.pm:380 timezone.pm:221
+#: lang.pm:380
+#: timezone.pm:221
#, c-format
msgid "Philippines"
msgstr "Филиппины"
@@ -4476,7 +4583,9 @@ msgstr "Филиппины"
msgid "Pakistan"
msgstr "Пакистан"
-#: lang.pm:382 mirror.pm:32 timezone.pm:247
+#: lang.pm:382
+#: mirror.pm:32
+#: timezone.pm:247
#, c-format
msgid "Poland"
msgstr "Польша"
@@ -4501,7 +4610,9 @@ msgstr "Пуэрто-Рико"
msgid "Palestine"
msgstr "Палестина"
-#: lang.pm:387 mirror.pm:33 timezone.pm:248
+#: lang.pm:387
+#: mirror.pm:33
+#: timezone.pm:248
#, c-format
msgid "Portugal"
msgstr "Португалия"
@@ -4526,12 +4637,14 @@ msgstr "Катар"
msgid "Reunion"
msgstr "Реюньон"
-#: lang.pm:392 timezone.pm:249
+#: lang.pm:392
+#: timezone.pm:249
#, c-format
msgid "Romania"
msgstr "Румыния"
-#: lang.pm:393 mirror.pm:34
+#: lang.pm:393
+#: mirror.pm:34
#, c-format
msgid "Russia"
msgstr "Россия"
@@ -4561,12 +4674,15 @@ msgstr "Сейшельские Острова"
msgid "Sudan"
msgstr "Судан"
-#: lang.pm:399 mirror.pm:38 timezone.pm:254
+#: lang.pm:399
+#: mirror.pm:38
+#: timezone.pm:254
#, c-format
msgid "Sweden"
msgstr "Швеция"
-#: lang.pm:400 timezone.pm:222
+#: lang.pm:400
+#: timezone.pm:222
#, c-format
msgid "Singapore"
msgstr "Сингапур"
@@ -4576,7 +4692,8 @@ msgstr "Сингапур"
msgid "Saint Helena"
msgstr "Святая Елена"
-#: lang.pm:402 timezone.pm:252
+#: lang.pm:402
+#: timezone.pm:252
#, c-format
msgid "Slovenia"
msgstr "Словения"
@@ -4586,7 +4703,9 @@ msgstr "Словения"
msgid "Svalbard and Jan Mayen Islands"
msgstr "Свалбард и острова Яна Майена"
-#: lang.pm:404 mirror.pm:35 timezone.pm:251
+#: lang.pm:404
+#: mirror.pm:35
+#: timezone.pm:251
#, c-format
msgid "Slovakia"
msgstr "Словакия"
@@ -4656,7 +4775,9 @@ msgstr "Французские южные территории"
msgid "Togo"
msgstr "Того"
-#: lang.pm:418 mirror.pm:41 timezone.pm:224
+#: lang.pm:418
+#: mirror.pm:41
+#: timezone.pm:224
#, c-format
msgid "Thailand"
msgstr "Тайланд"
@@ -4691,7 +4812,8 @@ msgstr "Тунис"
msgid "Tonga"
msgstr "Тонга"
-#: lang.pm:425 timezone.pm:225
+#: lang.pm:425
+#: timezone.pm:225
#, c-format
msgid "Turkey"
msgstr "Турция"
@@ -4706,17 +4828,21 @@ msgstr "Тринидад и Тобаго"
msgid "Tuvalu"
msgstr "Тувалу"
-#: lang.pm:428 mirror.pm:40 timezone.pm:223
+#: lang.pm:428
+#: mirror.pm:40
+#: timezone.pm:223
#, c-format
msgid "Taiwan"
msgstr "Тайвань"
-#: lang.pm:429 timezone.pm:208
+#: lang.pm:429
+#: timezone.pm:208
#, c-format
msgid "Tanzania"
msgstr "Танзания"
-#: lang.pm:430 timezone.pm:256
+#: lang.pm:430
+#: timezone.pm:256
#, c-format
msgid "Ukraine"
msgstr "Украина"
@@ -4731,7 +4857,9 @@ msgstr "Уганда"
msgid "United States Minor Outlying Islands"
msgstr "Соединенные штаты Малых Удаленных островов"
-#: lang.pm:433 mirror.pm:42 timezone.pm:264
+#: lang.pm:433
+#: mirror.pm:42
+#: timezone.pm:264
#, c-format
msgid "United States"
msgstr "Соединенные Штаты"
@@ -4801,7 +4929,9 @@ msgstr "Йемен"
msgid "Mayotte"
msgstr "Майот"
-#: lang.pm:447 mirror.pm:36 timezone.pm:207
+#: lang.pm:447
+#: mirror.pm:36
+#: timezone.pm:207
#, c-format
msgid "South Africa"
msgstr "Южная Африка"
@@ -4824,9 +4954,7 @@ msgstr "Добро пожаловать в %s"
#: lvm.pm:86
#, c-format
msgid "Moving used physical extents to other physical volumes failed"
-msgstr ""
-"Перемещение используемых физических областей на другой физический раздел не "
-"удалось"
+msgstr "Перемещение используемых физических областей на другой физический раздел не удалось"
#: lvm.pm:143
#, c-format
@@ -4841,350 +4969,227 @@ msgstr "Сначала удалите логические тома\n"
#: lvm.pm:186
#, c-format
msgid "The bootloader can't handle /boot on multiple physical volumes"
-msgstr ""
-"Загрузчик не может работать с разделом /boot на нескольких физических "
-"разделах"
+msgstr "Загрузчик не может работать с разделом /boot на нескольких физических разделах"
#: messages.pm:11
#, c-format
msgid ""
"Introduction\n"
"\n"
-"The operating system and the different components available in the Mandriva "
-"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 Mandriva Linux distribution, and "
-"any applications \n"
-"distributed with these products provided by Mandriva's licensors or "
-"suppliers.\n"
+"The operating system and the different components available in the Mandriva 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 Mandriva Linux distribution, and any applications \n"
+"distributed with these products provided by Mandriva'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"
+"Please read this document carefully. This document is a license agreement between you and \n"
"Mandriva S.A. 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"
+"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"
+"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"
+"The Software Products and attached documentation are provided \"as is\", with no warranty, to the \n"
"extent permitted by law.\n"
-"Neither Mandriva S.A. 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 "
-"Mandriva S.A. 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 Mandriva S.A. 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 Mandriva Linux "
-"sites which are \n"
+"Neither Mandriva S.A. 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 Mandriva S.A. 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 Mandriva S.A. 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 Mandriva 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"
+"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"
+"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"
"%s\n"
"\n"
"3. The GPL License and Related Licenses\n"
"\n"
-"The Software Products consist of components created by different persons or "
-"entities. %s\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"
+"The Software Products consist of components created by different persons or entities. %s\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 Mandriva.\n"
-"The programs developed by Mandriva S.A. are governed by the GPL License. "
-"Documentation written \n"
-"by Mandriva S.A. is governed by a specific license. Please refer to the "
-"documentation for \n"
+"The programs developed by Mandriva S.A. are governed by the GPL License. Documentation written \n"
+"by Mandriva S.A. 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"
-"Mandriva S.A. and its suppliers and licensors reserves their rights to "
-"modify or adapt the Software \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"
+"Mandriva S.A. 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"
-"\"Mandriva\", \"Mandriva Linux\" and associated logos are trademarks of "
-"Mandriva S.A. \n"
+"\"Mandriva\", \"Mandriva Linux\" and associated logos are trademarks of Mandriva S.A. \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"
+"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"
+"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 Mandriva S.A."
msgstr ""
"Введение\n"
"\n"
-"Операционная система и различные компоненты, доступные в дистрибутиве "
-"Mandriva Linux, далее будут \n"
-"называться «Программными Продуктами». Программные Продукты включают (но не "
-"ограничиваются) \n"
-"программы, методы, правила и документацию, связанные с операционной системой "
-"и различными \n"
-"компонентами дистрибутива Mandriva Linux и любыми приложениями, "
-"распространяемыми с этими \n"
+"Операционная система и различные компоненты, доступные в дистрибутиве Mandriva Linux, далее будут \n"
+"называться «Программными Продуктами». Программные Продукты включают (но не ограничиваются) \n"
+"программы, методы, правила и документацию, связанные с операционной системой и различными \n"
+"компонентами дистрибутива Mandriva Linux и любыми приложениями, распространяемыми с этими \n"
"продуктами лицензиарами или поставщиками компании Mandriva.\n"
"\n"
"\n"
"1. Лицензионное соглашение\n"
"\n"
"Внимательно прочтите данный документ. Этот документ является лицензионным \n"
-"соглашением, заключаемым между вами и компанией Mandriva S.A., применительно "
-"к \n"
-"Программным Продуктам. Устанавливая, тиражируя или используя Программные "
-"Продукты \n"
-"в любых других целях, вы явным образом принимаете и полностью соглашаетесь "
-"с \n"
-"условиями и положениями данной Лицензии. Если вы не согласны с какой-либо "
-"частью данной \n"
-"Лицензии, вам не разрешается устанавливать, тиражировать или использовать "
-"Программные \n"
+"соглашением, заключаемым между вами и компанией Mandriva S.A., применительно к \n"
+"Программным Продуктам. Устанавливая, тиражируя или используя Программные Продукты \n"
+"в любых других целях, вы явным образом принимаете и полностью соглашаетесь с \n"
+"условиями и положениями данной Лицензии. Если вы не согласны с какой-либо частью данной \n"
+"Лицензии, вам не разрешается устанавливать, тиражировать или использовать Программные \n"
"Продукты.\n"
-"Любые попытки использовать, тиражировать или использовать Программные "
-"Продукты \n"
-"способом, противоречащим условиям данной Лицензии, являются "
-"аннулированием, \n"
-"и освобождают вас от всех прав, предоставляемых данной Лицензией. При "
-"прекращении \n"
-"действия Лицензии вы должны немедленно удалить все копии Программных "
-"Продуктов.\n"
+"Любые попытки использовать, тиражировать или использовать Программные Продукты \n"
+"способом, противоречащим условиям данной Лицензии, являются аннулированием, \n"
+"и освобождают вас от всех прав, предоставляемых данной Лицензией. При прекращении \n"
+"действия Лицензии вы должны немедленно удалить все копии Программных Продуктов.\n"
"\n"
"\n"
"2. Ограниченные гарантийные обязательства\n"
"\n"
-"Программные Продукты и прилагаемая документация предоставляются «как есть», "
-"без какой-либо \n"
+"Программные Продукты и прилагаемая документация предоставляются «как есть», без какой-либо \n"
"гарантии, в пределах, дозволенных законом.\n"
-"Ни компания Mandriva S.A., ни её лицензиары ни при каких условиях и в "
-"пределах, дозволенных \n"
-"законом, не несут ответственности за какие-либо специальные, случайные, "
-"прямые или косвенные убытки \n"
-"(включая неограниченные убытки от потери бизнеса, прерывания коммерческой "
-"деятельности, финансовых \n"
-"потерь, судебных издержек и штрафов, являющихся результатом судебного "
-"решения, или любых других \n"
-"косвенных потерь), являющихся результатом использования Программных "
-"Продуктов, даже, если компании \n"
-"Mandriva S.A. или её лицензиарам было известно о возможности или случаях "
-"такого ущерба.\n"
-"\n"
-"ОГРАНИЧЕННАЯ ОТВЕТСТВЕННОСТЬ, СВЯЗАННАЯ С ВЛАДЕНИЕМ ИЛИ ИСПОЛЬЗОВАНИЕМ "
-"ЗАПРЕЩЁННОГО ПРОГРАММНОГО \n"
+"Ни компания Mandriva S.A., ни её лицензиары ни при каких условиях и в пределах, дозволенных \n"
+"законом, не несут ответственности за какие-либо специальные, случайные, прямые или косвенные убытки \n"
+"(включая неограниченные убытки от потери бизнеса, прерывания коммерческой деятельности, финансовых \n"
+"потерь, судебных издержек и штрафов, являющихся результатом судебного решения, или любых других \n"
+"косвенных потерь), являющихся результатом использования Программных Продуктов, даже, если компании \n"
+"Mandriva S.A. или её лицензиарам было известно о возможности или случаях такого ущерба.\n"
+"\n"
+"ОГРАНИЧЕННАЯ ОТВЕТСТВЕННОСТЬ, СВЯЗАННАЯ С ВЛАДЕНИЕМ ИЛИ ИСПОЛЬЗОВАНИЕМ ЗАПРЕЩЁННОГО ПРОГРАММНОГО \n"
"ОБЕСПЕЧЕНИЯ В НЕКОТОРЫХ СТРАНАХ\n"
"\n"
-"В пределах, дозволенных законом, ни компания Mandriva S.A., ни её "
-"лицензиары, поставщики \n"
-"или распространители ни при каких условиях не несут ответственности за какие-"
-"либо специальные, \n"
-"случайные, прямые или косвенные убытки (включая неограниченные убытки от "
-"потери бизнеса, прерывания \n"
-"коммерческой деятельности, финансовых потерь, судебных издержек и штрафов, "
-"являющихся результатом \n"
-"судебного решения, или любых других косвенных потерь), связанных с "
-"владением, использованием \n"
-"или загрузкой программных компонентов с одного из веб-сайтов Mandriva Linux, "
-"на которые наложен \n"
-"запрет или ограничение в некоторых странах согласно местному "
-"законодательству.\n"
-"Данная ограниченная ответственность применяется, но не ограничивается, к "
-"компонентам усиленной \n"
+"В пределах, дозволенных законом, ни компания Mandriva S.A., ни её лицензиары, поставщики \n"
+"или распространители ни при каких условиях не несут ответственности за какие-либо специальные, \n"
+"случайные, прямые или косвенные убытки (включая неограниченные убытки от потери бизнеса, прерывания \n"
+"коммерческой деятельности, финансовых потерь, судебных издержек и штрафов, являющихся результатом \n"
+"судебного решения, или любых других косвенных потерь), связанных с владением, использованием \n"
+"или загрузкой программных компонентов с одного из веб-сайтов Mandriva Linux, на которые наложен \n"
+"запрет или ограничение в некоторых странах согласно местному законодательству.\n"
+"Данная ограниченная ответственность применяется, но не ограничивается, к компонентам усиленной \n"
"криптографии, относящихся к Программным Продуктам.\n"
-"Однако, поскольку в ряде юрисдикций не допускается исключение или "
-"ограничение ответственности \n"
-"за косвенные или случайные убытки, то указанные выше ограничения могут к вам "
-"не относиться.\n"
+"Однако, поскольку в ряде юрисдикций не допускается исключение или ограничение ответственности \n"
+"за косвенные или случайные убытки, то указанные выше ограничения могут к вам не относиться.\n"
"%s\n"
"\n"
"3. Лицензия GPL и связанные лицензии\n"
"\n"
-"Программные Продукты состоят из компонентов, созданных различными людьми или "
-"организациями. %s\n"
-"Большинство этих лицензий позволяют вам использовать, тиражировать, "
-"адаптировать \n"
-"или перераспределять компоненты, на которые распространяется действие "
-"лицензий. Перед \n"
-"использованием какого-либо компонента внимательно прочтите положения и "
-"условия лицензионного \n"
-"соглашения для этого компонента. Любые вопросы относительно лицензии "
-"компонента следует\n"
+"Программные Продукты состоят из компонентов, созданных различными людьми или организациями. %s\n"
+"Большинство этих лицензий позволяют вам использовать, тиражировать, адаптировать \n"
+"или перераспределять компоненты, на которые распространяется действие лицензий. Перед \n"
+"использованием какого-либо компонента внимательно прочтите положения и условия лицензионного \n"
+"соглашения для этого компонента. Любые вопросы относительно лицензии компонента следует\n"
"направлять разработчику компонента, а не компании Mandriva.\n"
-"На программы, разработанные компанией Mandriva S.A., рапространяется "
-"действие лицензии GPL. \n"
-"На документацию, написанную компанией Mandriva S.A., рапространяется "
-"действие особой лицензии. \n"
+"На программы, разработанные компанией Mandriva S.A., рапространяется действие лицензии GPL. \n"
+"На документацию, написанную компанией Mandriva S.A., рапространяется действие особой лицензии. \n"
"Дополнительные сведения см. в документации.\n"
"\n"
"4. Права на объекты интеллектуальной собственности\n"
"\n"
-"Все права на компоненты Программных Продуктов принадлежат их соответствующим "
-"авторам \n"
-"и защищены законами об интеллектуальной собственности и авторском праве, "
-"применительно \n"
-"к программному обеспечению. Компания Mandriva S.A. и её поставщики и "
-"лицензиары сохраняют \n"
-"за собой право изменять или адаптировать Программные Продукты (как целиком, "
-"так и по частям) \n"
+"Все права на компоненты Программных Продуктов принадлежат их соответствующим авторам \n"
+"и защищены законами об интеллектуальной собственности и авторском праве, применительно \n"
+"к программному обеспечению. Компания Mandriva S.A. и её поставщики и лицензиары сохраняют \n"
+"за собой право изменять или адаптировать Программные Продукты (как целиком, так и по частям) \n"
"любым образом и для любых целей.\n"
-"«Mandriva», «Mandriva Linux» и соответствующие логотипы являются товарными "
-"знаками \n"
+"«Mandriva», «Mandriva Linux» и соответствующие логотипы являются товарными знаками \n"
"компании Mandriva S.A.\n"
"\n"
"5. Регулирующие законы\n"
"\n"
-"Если какая-либо часть данного соглашения является недействительной, "
-"противозаконной \n"
-"или неприменимой по решению суда, эта часть исключается из данного "
-"соглашения. \n"
-"На вас по-прежнему налагаются ограничения других пригодных разделов "
-"соглашения.\n"
+"Если какая-либо часть данного соглашения является недействительной, противозаконной \n"
+"или неприменимой по решению суда, эта часть исключается из данного соглашения. \n"
+"На вас по-прежнему налагаются ограничения других пригодных разделов соглашения.\n"
"Условия и положения данной Лицензии регулируются законодательством Франции.\n"
-"Все споры по условиям и положениям данной лицензии лучше оспаривать вне "
-"суда. В крайнем \n"
-"случае спор будет передан в соответствующий суд общей юрисдикции Парижа, "
-"Франция. \n"
-"По любым вопросам, касающимся этого документа, обращайтесь в компанию "
-"Mandriva S.A."
+"Все споры по условиям и положениям данной лицензии лучше оспаривать вне суда. В крайнем \n"
+"случае спор будет передан в соответствующий суд общей юрисдикции Парижа, Франция. \n"
+"По любым вопросам, касающимся этого документа, обращайтесь в компанию Mandriva S.A."
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
#: messages.pm:90
#, c-format
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"
+"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"
+"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 ""
-"Вы подтверждаете, что (i) не будете продавать, экспортировать, "
-"реэкспортировать, \n"
-"передавать, переадресовывать, раскрывать технические данные, или передавать "
-"любое \n"
-"Программное Обеспечение какому-либо физическому или юридическу лицу, или в "
-"место назначения, \n"
-"запрещённое экспортными законами США или нормативными актами, включая (без "
-"ограничений) \n"
-"Кубу, Иран, Северную Корею, Судан или Сирию, или (ii) использовать любое "
-"Программное Обеспечение \n"
+"Вы подтверждаете, что (i) не будете продавать, экспортировать, реэкспортировать, \n"
+"передавать, переадресовывать, раскрывать технические данные, или передавать любое \n"
+"Программное Обеспечение какому-либо физическому или юридическу лицу, или в место назначения, \n"
+"запрещённое экспортными законами США или нормативными актами, включая (без ограничений) \n"
+"Кубу, Иран, Северную Корею, Судан или Сирию, или (ii) использовать любое Программное Обеспечение \n"
"с целью нарушения законов или нормативных актов Соединенных Штатов Америки.\n"
"\n"
"ОГРАНИЧИВАЮЩИЕ ПРАВА ПРАВИТЕЛЬСТВА США. \n"
"\n"
-"Программные продукты и любая сопроводительная документация являются и будут "
-"считаться\n"
-"«коммерческим компьютерным программным обеспечением» и «документацией "
-"коммерческого \n"
-"компьютерного программного обеспечения», соответственно, как определено в "
-"документах \n"
-"DFAR 252.227-7013 и FAR 12.212. Любое использование, изменение, "
-"воспроизведение, выпуск, \n"
-"показ, или раскрытие программного обеспечения и какой-либо сопроводительной "
-"документации \n"
-"со стороны правительства Соединенных Штатов должно осуществляться "
-"исключительно в \n"
-"соответствии с положениями настоящего Соглашения и любых других действующих "
-"лицензионных \n"
-"соглашений, и должно быть запрещено, за исключением случаев, явно "
-"разрешённых \n"
+"Программные продукты и любая сопроводительная документация являются и будут считаться\n"
+"«коммерческим компьютерным программным обеспечением» и «документацией коммерческого \n"
+"компьютерного программного обеспечения», соответственно, как определено в документах \n"
+"DFAR 252.227-7013 и FAR 12.212. Любое использование, изменение, воспроизведение, выпуск, \n"
+"показ, или раскрытие программного обеспечения и какой-либо сопроводительной документации \n"
+"со стороны правительства Соединенных Штатов должно осуществляться исключительно в \n"
+"соответствии с положениями настоящего Соглашения и любых других действующих лицензионных \n"
+"соглашений, и должно быть запрещено, за исключением случаев, явно разрешённых \n"
"в соответствии с положениями настоящего Соглашения."
#: messages.pm:104
#, c-format
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"
+"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 ""
-"На большинство данных компонентов, за исключением приложений и программ, "
-"представленных \n"
-"компанией Google Inc. или её дочерними компаниями («Google Software»), "
-"рапространяется действие \n"
+"На большинство данных компонентов, за исключением приложений и программ, представленных \n"
+"компанией Google Inc. или её дочерними компаниями («Google Software»), рапространяется действие \n"
"лицензии GNU General Public Licence (далее «GPL») или похожих лицензий."
#: messages.pm:107
#, c-format
msgid ""
-"Most of these components are governed under the terms and conditions of the "
-"GNU \n"
+"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 ""
"На большинство данных компонентов распространяется действие лицензии \n"
@@ -5194,114 +5199,73 @@ msgstr ""
#, 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"
+"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"
+"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 ""
"Предупреждение: свободное программное обеспечение не обязательно может \n"
"быть свободным от патентов, и некоторое свободное ПО в дистрибутиве \n"
"может быть запатентовано в вашей стране. Например, для MP3-декодеров в \n"
"дистрибутиве может потребоваться лицензия для дальнейшего использования \n"
-"(подробности см. на веб-сайте http://www.mp3licensing.com). Если вы не "
-"уверены \n"
+"(подробности см. на веб-сайте http://www.mp3licensing.com). Если вы не уверены \n"
"в наличии патента, ознакомьтесь со своим местнымм законодательством"
#: messages.pm:120
#, c-format
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"
+"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"
+"(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"
+"(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. Дополнительные положения, применимые к Программным Продуктам компании "
-"Google Inc («ПО Google»)\n"
-"\n"
-"(а) Вы признаете, что компания Google или третьи стороны являются "
-"собственниками всех прав, названий \n"
-"и интересов ПО Google, его частей, либо программного обеспечения на основе "
-"или в сочетании ПО Google, включая в том числе \n"
-"без каких-либо ограничений все Права на интеллектуальную собственность. "
-"\"Права на интеллектуальную собственность.\" означают, что все права, \n"
-"действующих время от времени в соответствии с патентным правом, авторским "
-"правом, законом о коммерческой тайне, права торговой марки, недобросовестной "
-"конкуренции,\n"
-"баз данных и каких-либо прав и всех других имущественных прав, а также любые "
-"и все приложения, обновления, расширения \n"
-"и восстановления, сейчас и в дальнейшем остаются в силе и действуют во всем "
-"мире.Вы соглашаетесь не изменять, не адаптировать,\n"
-"переводить, осуществлять производные работы, декомпилировать, выполнять "
-"реверсивный инжиниринг,дизассемблировать или иным образом пытаться получить\n"
-"исходный код программного обеспечения от Google. Вы также соглашаетесь не "
-"удалять, скрывать или изменять Google или какой-либо третьей стороны\n"
-"уведомление об авторских правах, товарных знаках, или уведомления о других "
-"правах собственности, прикрепленные кили содержащейся внутри или идущих \n"
+"6. Дополнительные положения, применимые к Программным Продуктам компании Google Inc («ПО Google»)\n"
+"\n"
+"(а) Вы признаете, что компания Google или третьи стороны являются собственниками всех прав, названий \n"
+"и интересов ПО Google, его частей, либо программного обеспечения на основе или в сочетании ПО Google, включая в том числе \n"
+"без каких-либо ограничений все Права на интеллектуальную собственность. \"Права на интеллектуальную собственность.\" означают, что все права, \n"
+"действующих время от времени в соответствии с патентным правом, авторским правом, законом о коммерческой тайне, права торговой марки, недобросовестной конкуренции,\n"
+"баз данных и каких-либо прав и всех других имущественных прав, а также любые и все приложения, обновления, расширения \n"
+"и восстановления, сейчас и в дальнейшем остаются в силе и действуют во всем мире.Вы соглашаетесь не изменять, не адаптировать,\n"
+"переводить, осуществлять производные работы, декомпилировать, выполнять реверсивный инжиниринг,дизассемблировать или иным образом пытаться получить\n"
+"исходный код программного обеспечения от Google. Вы также соглашаетесь не удалять, скрывать или изменять Google или какой-либо третьей стороны\n"
+"уведомление об авторских правах, товарных знаках, или уведомления о других правах собственности, прикрепленные кили содержащейся внутри или идущих \n"
"вместе с или через программное обеспечение Google. \n"
"\n"
-"(б) ПО Google предоставляется Вам только для личного, некоммерческого "
-"использования. \n"
-"Вы не можете использовать ПО Google каким-либо образом, способным нанести "
-"вред,вывести из строя, или нанести ущерб поисковому сервису Google \n"
-"(например, вы не можете использовать ПО Google автоматизированным способом), "
-"не можете использовать ПО Google \n"
-"любым способом, который может создавать помехи в работе любой другой части и "
-"осуществлении поиска с помощью ПО Google \n"
+"(б) ПО Google предоставляется Вам только для личного, некоммерческого использования. \n"
+"Вы не можете использовать ПО Google каким-либо образом, способным нанести вред,вывести из строя, или нанести ущерб поисковому сервису Google \n"
+"(например, вы не можете использовать ПО Google автоматизированным способом), не можете использовать ПО Google \n"
+"любым способом, который может создавать помехи в работе любой другой части и осуществлении поиска с помощью ПО Google \n"
"или продукции третьих сторон - лицензиатов ПО Google\n"
"\n"
-"(с) Некоторое из ПО Google предназначено для использования в сочетании "
-"поиском в Google и другими услугами. \n"
-"Соответственно, использование Вами ПО Google определяется также Условиями "
-"обслуживания Google, расположенными на \n"
-"http://www.google.com/terms_of_service.html и Политикой конфиденциальности "
-"панели Google, расположенной на \n"
+"(с) Некоторое из ПО Google предназначено для использования в сочетании поиском в Google и другими услугами. \n"
+"Соответственно, использование Вами ПО Google определяется также Условиями обслуживания Google, расположенными на \n"
+"http://www.google.com/terms_of_service.html и Политикой конфиденциальности панели Google, расположенной на \n"
"http://www.google.com/support/toolbar/bin/static.py?page=privacy.html. \n"
"\n"
-"(d) Google Inc и каждая из ее дочерних компаний и филиалов являются третьей "
-"стороной -бенефициарами этого контракта \n"
+"(d) Google Inc и каждая из ее дочерних компаний и филиалов являются третьей стороной -бенефициарами этого контракта \n"
"и может применять эти условия."
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
@@ -5312,8 +5276,7 @@ msgid ""
"Remove the boot media and press Enter to reboot.\n"
"\n"
"\n"
-"For information on fixes which are available for this release of Mandriva "
-"Linux,\n"
+"For information on fixes which are available for this release of Mandriva Linux,\n"
"consult the Errata available from:\n"
"\n"
"\n"
@@ -5439,11 +5402,9 @@ msgstr "Какой %s драйвер попробовать?"
#, 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"
+"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"
+"information it needs? Occasionally, probing will hang a computer, but it should\n"
"not cause any damage."
msgstr ""
"В некоторых случаях драйверу %s нужна некоторая дополнительная информация,\n"
@@ -5471,7 +5432,8 @@ msgstr ""
"Не удалось загрузить модуль %s.\n"
"Попытаться ещё раз с другими параметрами?"
-#: mygtk2.pm:1541 mygtk2.pm:1542
+#: mygtk2.pm:1541
+#: mygtk2.pm:1542
#, c-format
msgid "Password is trivial to guess"
msgstr "Пароль слишком прост"
@@ -5481,7 +5443,8 @@ msgstr "Пароль слишком прост"
msgid "Password should resist to basic attacks"
msgstr "Пароль должен быть стойким к простым атакам"
-#: mygtk2.pm:1544 mygtk2.pm:1545
+#: mygtk2.pm:1544
+#: mygtk2.pm:1545
#, c-format
msgid "Password seems secure"
msgstr "Пароль кажется безопасным"
@@ -5500,26 +5463,25 @@ msgstr "Расширенный раздел не поддерживается н
#, 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."
+"The only solution is to move your primary partitions to have the hole next to the extended partitions."
msgstr ""
"В таблице разделов есть свободное место, но её нельзя использовать.\n"
-"Следует переместить основные разделы так, чтобы свободное место "
-"располагалась сразу за расширенными разделами."
+"Следует переместить основные разделы так, чтобы свободное место располагалась сразу за расширенными разделами."
#: 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."
+"It means writing anything on the disk will end up with random, corrupted data."
msgstr ""
"С диском какие-то неполадки. \n"
"Проверка целостности данных завершилась с ошибками. \n"
"Это означает, что данные после записи на диск будут повреждены."
-#: pkgs.pm:252 pkgs.pm:255 pkgs.pm:264
+#: pkgs.pm:252
+#: pkgs.pm:255
+#: pkgs.pm:264
#, c-format
msgid "Unused packages removal"
msgstr "Удаление неиспользуемых пакетов"
@@ -5536,24 +5498,22 @@ msgstr "Поиск неиспользуемых пакетов локализа
#: pkgs.pm:265
#, c-format
-msgid ""
-"We have detected that some packages are not needed for your system "
-"configuration."
-msgstr ""
-"Было обнаружено, что некоторые пакеты не нужны в текущей конфигурации "
-"системы."
+msgid "We have detected that some packages are not needed for your system configuration."
+msgstr "Было обнаружено, что некоторые пакеты не нужны в текущей конфигурации системы."
#: pkgs.pm:266
#, c-format
msgid "We will remove the following packages, unless you choose otherwise:"
msgstr "Будут удалены следующие пакеты, если вы не измените выбор:"
-#: pkgs.pm:269 pkgs.pm:270
+#: pkgs.pm:269
+#: pkgs.pm:270
#, c-format
msgid "Unused hardware support"
msgstr "Поддержка неиспользуемого оборудования"
-#: pkgs.pm:273 pkgs.pm:274
+#: pkgs.pm:273
+#: pkgs.pm:274
#, c-format
msgid "Unused localization"
msgstr "Неиспользуемые локализации"
@@ -5596,8 +5556,7 @@ msgstr "Scannerdrake"
#: scanner.pm:201
#, c-format
msgid "Could not install the packages needed to share your scanner(s)."
-msgstr ""
-"Не удалось установить пакеты, необходимые для общего доступа к сканероам"
+msgstr "Не удалось установить пакеты, необходимые для общего доступа к сканероам"
#: scanner.pm:202
#, c-format
@@ -5634,8 +5593,7 @@ msgid ""
"\n"
"Else only /etc/issue is allowed."
msgstr ""
-"Если установлено «ВСЕ», разрешено существовать файлам /etc/issue и /etc/issue."
-"net.\n"
+"Если установлено «ВСЕ», разрешено существовать файлам /etc/issue и /etc/issue.net.\n"
"\n"
"Если установлено «НЕТ», запрещены все issue-файлы.\n"
"\n"
@@ -5658,11 +5616,8 @@ msgstr "Разрешить администратору непосрествен
#: security/help.pm:33
#, c-format
-msgid ""
-"Allow the list of users on the system on display managers (kdm and gdm)."
-msgstr ""
-"Разрешает/Запрещает вывод списка пользователей системы в оконных менеджерах "
-"(kdm и gdm)."
+msgid "Allow the list of users on the system on display managers (kdm and gdm)."
+msgstr "Разрешает/Запрещает вывод списка пользователей системы в оконных менеджерах (kdm и gdm)."
#: security/help.pm:35
#, c-format
@@ -5711,27 +5666,23 @@ msgstr ""
msgid ""
"Authorize:\n"
"\n"
-"- all services controlled by tcp_wrappers (see hosts.deny(5) man page) if "
-"set to \"ALL\",\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))."
+"To authorize the services you need, use /etc/hosts.allow (see hosts.allow(5))."
msgstr ""
"Разрешает:\n"
"\n"
-"- все службы, контролируемые tcp_wrappers'ами (см. hosts.deny(5) man page), "
-"если установлено в \"ВСЕ\",\n"
+"- все службы, контролируемые tcp_wrappers'ами (см. hosts.deny(5) man page), если установлено в \"ВСЕ\",\n"
"\n"
"- только локальные, если установлено в \"ЛОКАЛЬНЫЕ\"\n"
"\n"
"- ни одной, если установлено в \"НИ ОДНОГО\".\n"
"\n"
-"Для разрешения нужных вам служб используйте /etc/hosts.allow (см hosts.allow "
-"(5))."
+"Для разрешения нужных вам служб используйте /etc/hosts.allow (см hosts.allow (5))."
#: security/help.pm:63
#, c-format
@@ -5808,12 +5759,8 @@ msgstr "Разрешить 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 ""
-"Разрешает su только для членов группы wheel. Если установлено в \"нет\", "
-"разрешает su для любого пользователя."
+msgid "Enable su only from members of the wheel group. If set to no, allows su from any user."
+msgstr "Разрешает su только для членов группы wheel. Если установлено в \"нет\", разрешает su для любого пользователя."
#: security/help.pm:92
#, c-format
@@ -5838,32 +5785,22 @@ msgstr "Включает/Отключает sulogin(8) в однопользов
#: security/help.pm:100
#, c-format
msgid "Add the name as an exception to the handling of password aging by msec."
-msgstr ""
-"Добавление имени в качестве исключения в управление возрастом паролей, "
-"осуществляемого msec'ом."
+msgstr "Добавление имени в качестве исключения в управление возрастом паролей, осуществляемого msec'ом."
#: security/help.pm:102
#, c-format
msgid "Set password aging to \"max\" days and delay to change to \"inactive\"."
-msgstr ""
-"Установка возраста пароля в \"max\" дней и задержку для изменения на "
-"\"inactive\"."
+msgstr "Установка возраста пароля в \"max\" дней и задержку для изменения на \"inactive\"."
#: security/help.pm:104
#, c-format
msgid "Set the password history length to prevent password reuse."
-msgstr ""
-"Установка длительности истории пароля для предотвращения повторного "
-"использования пароля."
+msgstr "Установка длительности истории пароля для предотвращения повторного использования пароля."
#: security/help.pm:106
#, c-format
-msgid ""
-"Set the password minimum length and minimum number of digit and minimum "
-"number of capitalized letters."
-msgstr ""
-"Установка минимальной длины пароля, минимального количества цифр и "
-"минимального количества символов в верхнем регистре."
+msgid "Set the password minimum length and minimum number of digit and minimum number of capitalized letters."
+msgstr "Установка минимальной длины пароля, минимального количества цифр и минимального количества символов в верхнем регистре."
#: security/help.pm:108
#, c-format
@@ -5897,16 +5834,12 @@ msgstr ""
#: security/help.pm:117
#, c-format
msgid "if set to yes, check permissions of files in the users' home."
-msgstr ""
-"если установлено Да, проверяются права доступа файлов в домашних каталогах "
-"пользователей."
+msgstr "если установлено Да, проверяются права доступа файлов в домашних каталогах пользователей."
#: security/help.pm:118
#, c-format
msgid "if set to yes, check if the network devices are in promiscuous mode."
-msgstr ""
-"если установлено Да, проверяется, работают ли сетевые устройства в режиме "
-"promiscuous."
+msgstr "если установлено Да, проверяется, работают ли сетевые устройства в режиме promiscuous."
#: security/help.pm:119
#, c-format
@@ -5916,8 +5849,7 @@ msgstr "если установлено Да, ежедневно выполня
#: security/help.pm:120
#, c-format
msgid "if set to yes, check additions/removals of sgid files."
-msgstr ""
-"если установлено Да, проверяется добавление/удаление файлов с sgid-битами."
+msgstr "если установлено Да, проверяется добавление/удаление файлов с sgid-битами."
#: security/help.pm:121
#, c-format
@@ -5927,15 +5859,12 @@ msgstr "если установлено Да, проверяется налич
#: security/help.pm:122
#, c-format
msgid "if set to yes, verify checksum of the suid/sgid files."
-msgstr ""
-"если установлено Да, проверяется контрольная сумма файлов с битами suid/sgid."
+msgstr "если установлено Да, проверяется контрольная сумма файлов с битами suid/sgid."
#: security/help.pm:123
#, c-format
msgid "if set to yes, check additions/removals of suid root files."
-msgstr ""
-"если установлено Да, проверяется добавление/удаление файлов root'а с suid-"
-"битом."
+msgstr "если установлено Да, проверяется добавление/удаление файлов root'а с suid-битом."
#: security/help.pm:124
#, c-format
@@ -5945,9 +5874,7 @@ msgstr "если установлено Да, создается отчет о
#: security/help.pm:125
#, c-format
msgid "if set to yes, check files/directories writable by everybody."
-msgstr ""
-"если установлено Да, проверяются файлы/каталоги с возможностью записи кем-"
-"угодно."
+msgstr "если установлено Да, проверяются файлы/каталоги с возможностью записи кем-угодно."
#: security/help.pm:126
#, c-format
@@ -5956,11 +5883,8 @@ msgstr "если установлено Да, выполняются прове
#: security/help.pm:127
#, c-format
-msgid ""
-"if set, send the mail report to this email address else send it to root."
-msgstr ""
-"если установлено, письмо с отчетом отправляется на этот адрес, иначе "
-"отправляется root'у."
+msgid "if set, send the mail report to this email address else send it to root."
+msgstr "если установлено, письмо с отчетом отправляется на этот адрес, иначе отправляется root'у."
#: security/help.pm:128
#, c-format
@@ -5970,8 +5894,7 @@ msgstr "если установлено Да, результаты провер
#: security/help.pm:129
#, c-format
msgid "Do not send mails if there's nothing to warn about"
-msgstr ""
-"если установлено Да, сообщения не отправляются, если не о чем предупреждать."
+msgstr "если установлено Да, сообщения не отправляются, если не о чем предупреждать."
#: security/help.pm:130
#, c-format
@@ -5991,16 +5914,12 @@ msgstr "если установлено Да, результаты провер
#: security/help.pm:134
#, c-format
msgid "Set shell commands history size. A value of -1 means unlimited."
-msgstr ""
-"Устанавливает размер истории команд командного процессора. Значение -1 "
-"означает неограниченную историю."
+msgstr "Устанавливает размер истории команд командного процессора. Значение -1 означает неограниченную историю."
#: security/help.pm:136
#, c-format
msgid "Set the shell timeout. A value of zero means no timeout."
-msgstr ""
-"Устанавливает таймаут для командного процессора. Нулевое значение означает "
-"отсутствие таймаута."
+msgstr "Устанавливает таймаут для командного процессора. Нулевое значение означает отсутствие таймаута."
#: security/help.pm:136
#, c-format
@@ -6145,9 +6064,7 @@ msgstr "Нет возраста пароля для"
#: security/l10n.pm:38
#, c-format
msgid "Set password expiration and account inactivation delays"
-msgstr ""
-"Установить сроки действия паролей и предупреждений о блокировке учётных "
-"записей"
+msgstr "Установить сроки действия паролей и предупреждений о блокировке учётных записей"
#: security/l10n.pm:39
#, c-format
@@ -6247,9 +6164,7 @@ msgstr "Не отправлять пустые почтовые сообщени
#: security/l10n.pm:58
#, c-format
msgid "If set, send the mail report to this email address else send it to root"
-msgstr ""
-"Если установлено, отправляет письмо с отчетом на этот адрес, иначе "
-"отправляет его root."
+msgstr "Если установлено, отправляет письмо с отчетом на этот адрес, иначе отправляет его root."
#: security/l10n.pm:59
#, c-format
@@ -6290,21 +6205,16 @@ msgstr "Безопасность"
#, 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"
+"provided by msec. Use it only when you want to take care of all aspects of system security\n"
"on your own."
msgstr ""
-"Этот уровень следует использовать с осторожностью, поскольку на нём "
-"отключаются\n"
-"все дополнительные средства защиты msec. Используйте его только если вы "
-"будете\n"
+"Этот уровень следует использовать с осторожностью, поскольку на нём отключаются\n"
+"все дополнительные средства защиты msec. Используйте его только если вы будете\n"
"самостоятельно контролировать все параметры защиты системы."
#: 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."
+msgid "This is the standard security recommended for a computer that will be used to connect to the Internet as a client."
msgstr ""
"Это стандартный уровень безопасности, рекомендуемый для компьютера,\n"
"который будет использоваться для подключения к Интернету в качестве клиента."
@@ -6312,12 +6222,9 @@ msgstr ""
#: 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."
+"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 ""
"На этом уровне безопасности становится возможным использование системы \n"
"в качестве сервера.\n"
@@ -6360,8 +6267,7 @@ msgstr "Слушание и отправка ACPI событий из ядра"
#: services.pm:20
#, c-format
msgid "Launch the ALSA (Advanced Linux Sound Architecture) sound system"
-msgstr ""
-"Запустить звуковую систему ALSA (Расширенная звуковая архитектура Linux)"
+msgstr "Запустить звуковую систему ALSA (Расширенная звуковая архитектура Linux)"
#: services.pm:21
#, c-format
@@ -6402,8 +6308,7 @@ msgstr "Задание настроек частоты процессора"
#, 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"
+"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 является стандартной программой UNIX, которая по расписанию запускает\n"
@@ -6413,8 +6318,7 @@ msgstr ""
#: services.pm:31
#, c-format
-msgid ""
-"Common UNIX Printing System (CUPS) is an advanced printer spooling system"
+msgid "Common UNIX Printing System (CUPS) is an advanced printer spooling system"
msgstr "CUPS - система печати Linux"
#: services.pm:32
@@ -6425,8 +6329,7 @@ msgstr "Запуск экрана входа в систему"
#: services.pm:33
#, c-format
msgid ""
-"FAM is a file monitoring daemon. It is used to get reports when files "
-"change.\n"
+"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 это демон слежения за файлами. Он используется для получения отчетов\n"
@@ -6437,30 +6340,22 @@ msgstr ""
#, 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"
+"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 позволяет пользователям получать доступ ко всем дополнительным "
-"ключам для их расшифровки\n"
-"и помещать их обратно в ядро Linux с помощью драйвера UINPUT. Этот драйвер "
-"должен быть загружен\n"
-"перед g15daemon может получить доступ к клавиатуре. G15 LCD также "
-"поддерживается. По умолчанию\n"
-"без каких-либо других активных клиентов, g15daemon будет отображать часы. "
-"Клиентские приложения и\n"
+"G15Daemon позволяет пользователям получать доступ ко всем дополнительным ключам для их расшифровки\n"
+"и помещать их обратно в ядро Linux с помощью драйвера UINPUT. Этот драйвер должен быть загружен\n"
+"перед g15daemon может получить доступ к клавиатуре. G15 LCD также поддерживается. По умолчанию\n"
+"без каких-либо других активных клиентов, g15daemon будет отображать часы. Клиентские приложения и\n"
"сценарии могут получить доступ к LCD через простой API."
#: 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"
+"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 добавляет поддержку мыши для приложений, работающих в текстовом режиме,\n"
@@ -6471,8 +6366,7 @@ msgstr ""
#: services.pm:43
#, c-format
msgid "HAL is a daemon that collects and maintains information about hardware"
-msgstr ""
-"HAL - демон, собирающий информацию об аппаратном обеспечении компьютера"
+msgstr "HAL - демон, собирающий информацию об аппаратном обеспечении компьютера"
#: services.pm:44
#, c-format
@@ -6485,20 +6379,15 @@ msgstr ""
#: services.pm:46
#, c-format
-msgid ""
-"Apache is a World Wide Web server. It is used to serve HTML files and CGI."
-msgstr ""
-"Apache является сервером всемирной паутины. Он используется для обслуживания "
-"файлов HTML и CGI."
+msgid "Apache is a World Wide Web server. It is used to serve HTML files and CGI."
+msgstr "Apache является сервером всемирной паутины. Он используется для обслуживания файлов HTML и 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"
+"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 ""
"Демон internet superserver (зачастую называемый inetd) запускает по мере\n"
@@ -6527,11 +6416,8 @@ msgstr ""
#: services.pm:55
#, c-format
-msgid ""
-"Evenly distributes IRQ load across multiple CPUs for enhanced performance"
-msgstr ""
-"Равномерное распределение IRQ нагрузки между несколькими процессорами для "
-"повышения производительности"
+msgid "Evenly distributes IRQ load across multiple CPUs for enhanced performance"
+msgstr "Равномерное распределение IRQ нагрузки между несколькими процессорами для повышения производительности"
#: services.pm:56
#, c-format
@@ -6578,8 +6464,7 @@ 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 является демоном печати, который необходим для нормальной работы lpr. "
-"Это\n"
+"lpd является демоном печати, который необходим для нормальной работы lpr. Это\n"
"в основном сервер, распределяющий по принтерам задания на печать."
#: services.pm:67
@@ -6603,9 +6488,7 @@ msgstr "Управление и мониторинг программным RAID
#: services.pm:71
#, c-format
-msgid ""
-"DBUS is a daemon which broadcasts notifications of system events and other "
-"messages"
+msgid "DBUS is a daemon which broadcasts notifications of system events and other messages"
msgstr ""
"DBUS - демон, рассылающий широковещательные уведомления и другие сообщения\n"
"программам"
@@ -6617,12 +6500,8 @@ msgstr "Включение политик безопасности MSEC при
#: 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) является сервером доменных имен (DNS), который используется для "
-"преобразования имен хостов в IP-адреса."
+msgid "named (BIND) is a Domain Name Server (DNS) that is used to resolve host names to IP addresses."
+msgstr "named (BIND) является сервером доменных имен (DNS), который используется для преобразования имен хостов в IP-адреса."
#: services.pm:74
#, c-format
@@ -6706,8 +6585,7 @@ msgstr "Проверка наличия места на разделе"
#, 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"
+"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 является обычной поддержкой устройств типа ethernet и\n"
@@ -6718,8 +6596,7 @@ msgstr ""
#, 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"
+"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 управляет соединениями RPC, которые используются протоколами,\n"
@@ -6734,12 +6611,8 @@ msgstr "Резервирование определенных портов 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 это Агент доставки почты, программа которая переправляет почту с "
-"одной машины на другую."
+msgid "Postfix is a Mail Transport Agent, which is the program that moves mail from one machine to another."
+msgstr "Postfix это Агент доставки почты, программа которая переправляет почту с одной машины на другую."
#: services.pm:99
#, c-format
@@ -6773,8 +6646,7 @@ msgid ""
"routing protocols are needed for complex networks."
msgstr ""
"Демон routed разрешает автоматическое обновление таблиц IP-маршрутизации\n"
-"через протокол RIP. В то время как RIP широко используется в небольших "
-"сетях,\n"
+"через протокол RIP. В то время как RIP широко используется в небольших сетях,\n"
"для сложных сетей необходимы более сложные протоколы маршрутизации."
#: services.pm:107
@@ -6788,9 +6660,7 @@ msgstr ""
#: 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."
+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 - это функция, которая используется многими демонами для\n"
"регистрации сообщений в различных системных файлах логов. Неплохо было\n"
@@ -6817,8 +6687,7 @@ msgstr ""
#: services.pm:114
#, c-format
-msgid ""
-"SANE (Scanner Access Now Easy) enables to access scanners, video cameras, ..."
+msgid "SANE (Scanner Access Now Easy) enables to access scanners, video cameras, ..."
msgstr "SANE - система работы со сканерами и камерами"
#: services.pm:115
@@ -6828,12 +6697,8 @@ msgstr "Файервол фильтрации пакетов"
#: 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 ""
-"Протокол SMB/CIFS даёт возможность открыть общий доступ к файлам и принтерам "
-"и интегрироваться в домен Windows Server"
+msgid "The SMB/CIFS protocol enables to share access to files & printers and also integrates with a Windows Server domain"
+msgstr "Протокол SMB/CIFS даёт возможность открыть общий доступ к файлам и принтерам и интегрироваться в домен Windows Server"
#: services.pm:117
#, c-format
@@ -6847,12 +6712,8 @@ msgstr "слой речевого анализа"
#: 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 - это сетевой протокол, позволяющий обмениваться данными между "
-"двумя компьютерами по шифрованному каналу"
+msgid "Secure Shell is a network protocol that allows data to be exchanged over a secure channel between two computers"
+msgstr "Secure Shell - это сетевой протокол, позволяющий обмениваться данными между двумя компьютерами по шифрованному каналу"
#: services.pm:120
#, c-format
@@ -6867,8 +6728,7 @@ msgstr ""
#: services.pm:122
#, c-format
msgid "Moves the generated persistent udev rules to /etc/udev/rules.d"
-msgstr ""
-"Перемещение сгенерированных постоянных правил udev в /etc/udev/rules.d"
+msgstr "Перемещение сгенерированных постоянных правил udev в /etc/udev/rules.d"
#: services.pm:123
#, c-format
@@ -6920,7 +6780,8 @@ msgstr "Удаленное администрирование"
msgid "Database Server"
msgstr "Сервер базы данных"
-#: services.pm:179 services.pm:218
+#: services.pm:179
+#: services.pm:218
#, c-format
msgid "Services"
msgstr "Службы"
@@ -6928,8 +6789,7 @@ msgstr "Службы"
#: services.pm:179
#, c-format
msgid "Choose which services should be automatically started at boot time"
-msgstr ""
-"Выберите, какие службы должны быть автоматически запущены во время загрузки"
+msgstr "Выберите, какие службы должны быть автоматически запущены во время загрузки"
#: services.pm:197
#, c-format
@@ -6960,7 +6820,8 @@ msgstr ""
"Извините, дополнительная информация\n"
"об этой службе отсутствует."
-#: services.pm:250 ugtk2.pm:924
+#: services.pm:250
+#: ugtk2.pm:924
#, c-format
msgid "Info"
msgstr "Информация"
@@ -7000,8 +6861,7 @@ msgid ""
"\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"
+"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n"
msgstr ""
"Эта программа является открытым программным обеспечением; вы можете\n"
"распространять ее дальше и/или изменять ее при условии соблюдения GNU\n"
@@ -7026,8 +6886,7 @@ msgid ""
"--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"
+"--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"
@@ -7038,8 +6897,7 @@ msgstr ""
"--default : сохранить каталоги по умолчанию.\n"
"--debug : показать все отладочные сообщения.\n"
"--show-conf : перечислить резервируемые файлы или каталоги.\n"
-"--config-info : разъяснять параметры файла настройки (не "
-"для пользователей Х).\n"
+"--config-info : разъяснять параметры файла настройки (не для пользователей Х).\n"
"--daemon : использовать конфигурацию демона. \n"
"--help : показать это сообщение.\n"
"--version : показать номер версии.\n"
@@ -7132,12 +6990,9 @@ msgid ""
"--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)"
+"--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 ""
"[ОПЦИИ]...\n"
"Конфигуратор Сервера терминалов Mandriva Linux\n"
@@ -7145,14 +7000,10 @@ msgstr ""
"--disable : выключить MTS\n"
"--start : запустить MTS\n"
"--stop : остановить MTS\n"
-"--adduser : добавить существующего пользователя системы в MTS "
-"(требуется имя пользователя)\n"
-"--deluser : удалить существующего пользователя системы из MTS "
-"(требуется имя пользователя)\n"
-"--addclient : добавить клиентскую машину в MTS (требуется MAC-адрес, "
-"IP, имя образа nbi)\n"
-"--delclient : удалить клиентскую машину из MTS (требуется MAC-адрес, "
-"IP, имя образа nbi)"
+"--adduser : добавить существующего пользователя системы в MTS (требуется имя пользователя)\n"
+"--deluser : удалить существующего пользователя системы из MTS (требуется имя пользователя)\n"
+"--addclient : добавить клиентскую машину в MTS (требуется MAC-адрес, IP, имя образа nbi)\n"
+"--delclient : удалить клиентскую машину из MTS (требуется MAC-адрес, IP, имя образа nbi)"
#: standalone.pm:99
#, c-format
@@ -7162,9 +7013,7 @@ msgstr "[клавиатура]"
#: standalone.pm:100
#, c-format
msgid "[--file=myfile] [--word=myword] [--explain=regexp] [--alert]"
-msgstr ""
-"[--file=мой_файл] [--word=мое_слово] [--explain=регулярное_выражение] [--"
-"alert]"
+msgstr "[--file=мой_файл] [--word=мое_слово] [--explain=регулярное_выражение] [--alert]"
#: standalone.pm:101
#, c-format
@@ -7193,30 +7042,21 @@ msgstr ""
#, c-format
msgid ""
"[OPTION]...\n"
-" --no-confirmation do not ask first confirmation question in Mandriva "
-"Update mode\n"
+" --no-confirmation do not ask first confirmation question in Mandriva Update mode\n"
" --no-verify-rpm do not verify packages signatures\n"
-" --changelog-first display changelog before filelist in the "
-"description window\n"
+" --changelog-first display changelog before filelist in the description window\n"
" --merge-all-rpmnew propose to merge all .rpmnew/.rpmsave files found"
msgstr ""
"[ОПЦИЯ]...\n"
-" --no-confirmation не просить первого подтверждения в режиме Mandriva "
-"Update\n"
+" --no-confirmation не просить первого подтверждения в режиме Mandriva Update\n"
" --no-verify-rpm не проверять подписи пакетов\n"
-" --changelog-first показывать журнал изменений перед списком файлов в "
-"окне описания\n"
-" --merge-all-rpmnew предлагать объединить все найденные файлы .rpmnew/."
-"rpmsave"
+" --changelog-first показывать журнал изменений перед списком файлов в окне описания\n"
+" --merge-all-rpmnew предлагать объединить все найденные файлы .rpmnew/.rpmsave"
#: standalone.pm:116
#, c-format
-msgid ""
-"[--manual] [--device=dev] [--update-sane=sane_source_dir] [--update-"
-"usbtable] [--dynamic=dev]"
-msgstr ""
-"[--manual] [--device=устройство] [--update-sane=sane_source_dir] [--update-"
-"usbtable] [--dynamic=устройство]"
+msgid "[--manual] [--device=dev] [--update-sane=sane_source_dir] [--update-usbtable] [--dynamic=dev]"
+msgstr "[--manual] [--device=устройство] [--update-sane=sane_source_dir] [--update-usbtable] [--dynamic=устройство]"
#: standalone.pm:117
#, c-format
@@ -7233,14 +7073,13 @@ msgstr ""
#, c-format
msgid ""
"\n"
-"Usage: %s [--auto] [--beginner] [--expert] [-h|--help] [--noauto] [--"
-"testing] [-v|--version] "
+"Usage: %s [--auto] [--beginner] [--expert] [-h|--help] [--noauto] [--testing] [-v|--version] "
msgstr ""
"\n"
-"Использование: %s [--auto] [--beginner] [--expert] [-h|--help] [--noauto] "
-"[--testing] [-v|--version] "
+"Использование: %s [--auto] [--beginner] [--expert] [-h|--help] [--noauto] [--testing] [-v|--version] "
-#: timezone.pm:161 timezone.pm:162
+#: timezone.pm:161
+#: timezone.pm:162
#, c-format
msgid "All servers"
msgstr "Все серверы"