summaryrefslogtreecommitdiffstats
path: root/lib/MDK/Common/System.pm
blob: f7d0f63470ce2c0f5fbbc02fc2493d46a927518b (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
package MDK::Common::System;

=head1 NAME

MDK::Common::System - system-related useful functions

=head1 SYNOPSIS

    use MDK::Common::System qw(:all);

=head1 EXPORTS

=over

=item %compat_arch

architecture compatibility mapping (eg: k6 => i586, k7 => k6 ...)

=item %printable_chars

7 bit ascii characters

=item $sizeof_int

sizeof(int)

=item $bitof_int

$sizeof_int * 8

=item arch()

return the architecture (eg: i686, ppc, ia64, k7...)

=item typeFromMagic(FILENAME, LIST)

find the first corresponding magic in FILENAME. eg of LIST:

    [ 'empty', 0, "\0\0\0\0" ],
    [ 'grub', 0, "\xEBG", 0x17d, "stage1 \0" ],
    [ 'lilo', 0x2,  "LILO" ],

where each entry is [ magic_name, offset, string, offset, string, ... ].

=item list_passwd()

return the list of users as given by C<getpwent> (see perlfunc)

=item list_home()

return the list of home (eg: /home/foo, /home/pixel, ...)

=item list_skels()

return the directories where we can find dot files: homes, /root and /etc/skel

=item list_users()

return the list of unprivilegied users (aka those whose uid is greater
than 500 and who are not "nobody").

=item syscall_(NAME, PARA)

calls the syscall NAME

=item psizeof(STRING)

useful to know the length of a C<pack> format string. 

    psizeof("I I I C C S") = 4 + 4 + 4 + 1 + 1 + 2 = 16

=item availableMemory()

size of swap + memory

=item availableRamMB()

size of RAM as reported by the BIOS (it is a round number that can be
displayed or given as "mem=128M" to the kernel)

!! "mem=..." is dangerous in 2.4 kernels

=item gettimeofday()

returns the epoch in microseconds

=item unix2dos(STRING)

takes care of CR/LF translation

=item whereis_binary(STRING)

return the first absolute file in $PATH (similar to which(1) and whereis(1))

=item getVarsFromSh(FILENAME)

returns a hash associating shell variables to their value. useful for config
files such as /etc/sysconfig files

=item setVarsInSh(FILENAME, HASH REF)

write file in shell format association a shell variable + value for each
key/value

=item setVarsInSh(FILENAME, HASH REF, LIST)

restrict the fields that will be printed to LIST

=item setVarsInShMode(FILENAME, INT, HASH REF, LIST)

like setVarsInSh with INT being the chmod value for the config file

=item addVarsInSh(FILENAME, HASH REF)

like setVarsInSh but keeping the entries in the file

=item addVarsInSh(FILENAME, HASH REF, LIST)

like setVarsInSh but keeping the entries in the file

=item addVarsInShMode(FILENAME, INT, HASH REF, LIST)

like addVarsInShMode but keeping the entries in the file

=item setExportedVarsInCsh(FILENAME, HASH REF, LIST)

same as C<setExportedVarsInSh> for csh format

=item template2file(FILENAME_IN, FILENAME_OUT, HASH)

read in a template file, replace keys @@@key@@@ with value, save it in out
file

=item template2userfile(PREFIX, FILENAME_IN, FILENAME_OUT, BOOL, HASH)

read in a template file, replace keys @@@key@@@ with value, save it in every homes.
If BOOL is true, overwrite existing files. FILENAME_OUT must be a relative filename

=item read_gnomekderc(FILENAME, STRING)

reads GNOME-like and KDE-like config files (aka windows-like).
You must give a category. eg:

    read_gnomekderc("/etc/skels/.kderc", 'KDE')

=item update_gnomekderc(FILENAME, STRING, HASH)

modifies GNOME-like and KDE-like config files (aka windows-like).
If the category doesn't exist, it creates it. eg:

    update_gnomekderc("/etc/skels/.kderc", 'KDE', 
		      kfmIconStyle => "Large")

=item fuzzy_pidofs(REGEXP)

return the list of process ids matching the regexp

=back

=head1 OTHER

=over

=item better_arch(ARCH1, ARCH2)

is ARCH1 compatible with ARCH2?

better_arch('i386', 'ia64') and better_arch('ia64', 'i386') are false

better_arch('k7', 'k6') is true and better_arch('k6', 'k7') is false

=item compat_arch(STRING)

test the architecture compatibility. eg: 

compat_arch('i386') is false on a ia64

compat_arch('k6') is true on a k6 and k7 but false on a i386 and i686

=back

=head1 SEE ALSO

L<MDK::Common>

=cut


use MDK::Common::Math;
use MDK::Common::File;
use MDK::Common::DataStructure;

use Exporter;
our @ISA = qw(Exporter);
our @EXPORT_OK = qw(%compat_arch $printable_chars $sizeof_int $bitof_int arch distrib typeFromMagic list_passwd list_home list_skels list_users syscall_ psizeof availableMemory availableRamMB gettimeofday unix2dos whereis_binary getVarsFromSh setVarsInSh setVarsInShMode addVarsInSh addVarsInShMode setExportedVarsInSh setExportedVarsInCsh template2file template2userfile read_gnomekderc update_gnomekderc fuzzy_pidofs); #);
our %EXPORT_TAGS = (all => [ @EXPORT_OK ]);


our %compat_arch = ( #- compatibilty arch mapping.
		     'noarch'  => undef,
		     'ia32'    => 'noarch',
		     'i386'    => 'ia32',
		     'i486'    => 'i386',
		     'i586'    => 'i486',
		     'i686'    => 'i586',
		     'i786'    => 'i686',
		     'k6'      => 'i586',
		     'k7'      => 'k6',
		     'k8'      => 'k7',
		     'x86_64'  => 'i686',
		     'amd64'   => 'x86_64',
		     'ia64'    => 'noarch',
		     'ppc'     => 'noarch',
		     'alpha'   => 'noarch',
		     'sparc'   => 'noarch',
		     'sparc32' => 'sparc',
		     'sparc64' => 'sparc32',
		     'ia64'    => 'noarch',
		   );

our $printable_chars = "\x20-\x7E";
our $sizeof_int      = psizeof("i");
our $bitof_int       = $sizeof_int * 8;


sub arch() {
    my $SYS_NMLN = 65;
    my $format = "Z$SYS_NMLN" x 6;
    my $t = pack $format;
    syscall_('uname', $t);
    (unpack($format, $t))[4];
}
sub better_arch {
    my ($new, $old) = @_;
    while ($new && $new ne $old) { $new = $compat_arch{$new} }
    $new;
}
sub compat_arch { better_arch(arch(), $_[0]) }

sub distrib() {
    my $release = MDK::Common::File::cat_('/etc/release');
    my ($real_system, $real_product) = $release =~ /(.*) release ([\d.]+)/;
    my $oem_config = '/etc/sysconfig/oem';
    my %oem = -f $oem_config && getVarsFromSh($oem_config);
    my $company = $oem{COMPANY} || 'Mandriva';
    my $system = $oem{SYSTEM} || $real_system;
    my $product = $oem{PRODUCT} || $real_product;
    (company => $company, system => $system, product => $product, real_system => $real_system, real_product => $real_product);
}

sub typeFromMagic {
    my $f = shift;
    sysopen(my $F, $f, 0) or return;

    my $tmp;
  M: foreach (@_) {
	if (ref($_) eq 'CODE') {
	    my $name = $_->($F) or next M;
	    return $name;
	} else {
	    my ($name, @l) = @$_;
	    while (@l) {
		my ($offset, $signature) = splice(@l, 0, 2);
		sysseek($F, $offset, 0) or next M;
		sysread($F, $tmp, length $signature);
		$tmp eq $signature or next M;
	    }
	    return $name;
	}
    }
    undef;
}


sub list_passwd() {
    my (@l, @e);
    setpwent();
    while (@e = getpwent()) { push @l, [ @e ] }
    endpwent();
    @l;
}
sub list_home() {
    MDK::Common::DataStructure::uniq(map { $_->[7] } grep { $_->[2] >= 500 } list_passwd());
}
sub list_skels { 
    my ($prefix, $suffix) = @_;
    grep { -d $_ && -w $_ } map { "$prefix$_/$suffix" } '/etc/skel', '/root', list_home();
}

sub list_users() {
    MDK::Common::DataStructure::uniq(map { 500 <= $_->[2] && $_->[0] ne "nobody" ? $_->[0] : () } list_passwd());
}



sub syscall_ {
    my $f = shift;

    #- load syscall.ph in package "main". If every use of syscall.ph do the same, all will be nice
    package main;
    require 'syscall.ph';

    syscall(&{"main::SYS_$f"}, @_) == 0;
}


#- return the size of the partition and its free space in KiB
sub df {
    my ($mntpoint) = @_;
    my ($blocksize, $size, $free);
    my $buf = ' ' x 20000;
    syscall_('statfs', $mntpoint, $buf) or return;
    # at least on mips the statfs structure is different to x86
    # Should we use bavail or bfree ?
    if (arch() =~ /mips/) {
        (undef, $blocksize, undef, $size, $free, undef, undef, $avail) = unpack "L!8", $buf;
    } else {
       (undef, $blocksize, $size, $free, undef, undef) = unpack "L!6", $buf;
    }
    map { $_ * ($blocksize / 1024) } $size, $free;
}

sub sync() { syscall_('sync') }
sub psizeof { length pack $_[0] }
sub availableMemory() { MDK::Common::Math::sum(map { /(\d+)/ } grep { /^(MemTotal|SwapTotal):/ } MDK::Common::File::cat_("/proc/meminfo")) }
sub availableRamMB() { 4 * MDK::Common::Math::round((-s '/proc/kcore') / 1024 / 1024 / 4) }
sub gettimeofday() { my $t = pack "LL"; syscall_('gettimeofday', $t, 0) or die "gettimeofday failed: $!\n"; unpack("LL", $t) }
sub unix2dos { local $_ = $_[0]; s/\015$//mg; s/$/\015/mg; $_ }

sub whereis_binary {
    my ($prog, $o_prefix) = @_;
    if ($prog =~ m!/!) {
	warn qq(don't call whereis_binary with a name containing a "/" (the culprit is: $prog)\n);
	return;
    }
    foreach (split(':', $ENV{PATH})) {
	my $f = "$_/$prog";
	-x "$o_prefix$f" and return $f; 
    }
}

sub getVarsFromSh {
    my %l;
    open(my $F, $_[0]) or return;
    local $_;
    while (<$F>) {
	s/^\s*#.*//; # remove comment-only lines
	s/^\s*//; # leading space
	my ($v, $val) = /^(\w+)=(.*)/ or next;
	if ($val =~ /^"(.*)"(\s+#.*)?$/) {
	    $val = $1;
	} elsif ($val =~ /^'(.*)'(\s+#.*)?$/) {
	    $val = $1;
	    $val =~ s/(^|[^'])'\\''/$1'/g;
	}
	$l{$v} = $val;
    }
    %l;
}

sub addVarsInSh {
    my ($file, $l, @fields) = @_;
    addVarsInShMode($file, 0777 ^ umask(), $l, @fields);
}

sub addVarsInShMode {
    my ($file, $mod, $l, @fields) = @_;
    my %l = @fields ? map { $_ => $l->{$_} } @fields : %$l;
    my %l2 = getVarsFromSh($file);

    # below is add2hash_(\%l, \%l2);
    exists $l{$_} or $l{$_} = $l2{$_} foreach keys %l2; 

    setVarsInShMode($file, $mod, \%l);
}

sub setVarsInSh {
    my ($file, $l, @fields) = @_;
    setVarsInShMode($file, 0777 ^ umask(), $l, @fields);
}

sub quoteForSh {
    my ($val) = @_;
    if ($val =~ /["`\$]/) {
	$val =~ s/(')/$1\\$1$1/g;
	$val = qq('$val');
    } elsif ($val =~ /[\(\)'|\s\\;<>&#\[\]~{}*?]/) {
	$val = qq("$val");
    }
    $val;
}

sub setVarsInShMode {
    my ($file, $mod, $l, @fields) = @_;
    @fields = keys %$l unless @fields;
    my $string = join('',
	map { "$_=" . quoteForSh($l->{$_}) . "\n" } grep { $l->{$_} } @fields
    );
    if ($file =~ m!^/home/!) {
        MDK::Common::File::secured_output($file, $string);
    } else {
        MDK::Common::File::output($file, $string);
    }

    chmod $mod, $file;
}

sub setExportedVarsInSh {
    my ($file, $l, @fields) = @_;
    @fields = keys %$l unless @fields;

    MDK::Common::File::output($file, 
	(map { $l->{$_} ? "$_=" . quoteForSh($l->{$_}) . "\n" : () } @fields), 
	@fields ? "export " . join(" ", @fields) . "\n" : (),
    );
}

sub setExportedVarsInCsh {
    my ($file, $l, @fields) = @_;
    @fields = keys %$l unless @fields;

    MDK::Common::File::output($file, map { $l->{$_} ? "setenv $_ " . quoteForSh($l->{$_}) . "\n" : () } @fields);
}

sub template2file {
    my ($in, $out, %toreplace) = @_;
    MDK::Common::File::output($out, map { s/@@@(.*?)@@@/$toreplace{$1}/g; $_ } MDK::Common::File::cat_($in));
}
sub template2userfile {
    my ($prefix, $in, $out_rel, $force, %toreplace) = @_;

    foreach (list_skels($prefix, $out_rel)) {
	-d MDK::Common::File::dirname($_) or !-e $_ or $force or next;

	template2file($in, $_, %toreplace);
	m|/home/(.+?)/| and chown(getpwnam($1), getgrnam($1), $_);
    }
}

sub read_gnomekderc {
    my ($file, $category) = @_;
    my %h;
    foreach (MDK::Common::File::cat_($file), "[NOCATEGORY]\n") {
	if (/^\s*\[\Q$category\E\]/i ... /^\[/) {
	    $h{$1} = $2 if /^\s*([^=]*?)=(.*)/;
	}
    }
    %h;
}

sub update_gnomekderc {
    my ($file, $category, %subst_) = @_;

    my %subst = map { lc($_) => [ $_, $subst_{$_} ] } keys %subst_;

    my $s;
    defined($category) or $category = "DEFAULTCATEGORY";
    foreach ("[DEFAULTCATEGORY]\n", MDK::Common::File::cat_($file), "[NOCATEGORY]\n") {
	if (my $i = /^\s*\[\Q$category\E\]/i ... /^\[/) {
	    if ($i =~ /E/) { #- for last line of category
		chomp $s; $s .= "\n";
		$s .= "$_->[0]=$_->[1]\n" foreach values %subst;
		%subst = ();
	    } elsif (/^\s*([^=]*?)=/) {
		if (my $e = delete $subst{lc($1)}) {
		    $_ = "$1=$e->[1]\n";
		}
	      }
	}
	$s .= $_ if !/^\[(NO|DEFAULT)CATEGORY\]/;
    }

    #- if category has not been found above (DEFAULTCATEGORY is always found).
    if (keys %subst) {
	chomp $s;
	$s .= "\n[$category]\n";
	$s .= "$_->[0]=$_->[1]\n" foreach values %subst;
    }

    MDK::Common::File::output_p($file, $s);

}

sub fuzzy_pidofs {
    my ($regexp) = @_;
    grep { 
	if (/^(\d+)$/) {
	    my $s = MDK::Common::File::cat_("/proc/$_/cmdline") ||
	            readlink("/proc/$_/exe") || 
		    MDK::Common::File::cat_("/proc/$_/stat") =~ /\s(\S+)/ && $1 ||
		    '';
	    $s =~ /$regexp/;
	} else {
	    0;
	}
    } MDK::Common::File::all('/proc');
}

1;
/span> #: any.pm:1098 steps_interactive.pm:938 #, c-format msgid "Network" msgstr "Nettverk" #: any.pm:1102 #, c-format msgid "Please choose a media" msgstr "Vel medium" #: any.pm:1118 #, c-format msgid "File already exists. Overwrite it?" msgstr "Fila finst allereie. Vil du skriva over ho?" #: any.pm:1122 #, c-format msgid "Permission denied" msgstr "Nekta løyve" #: any.pm:1170 #, c-format msgid "Bad NFS name" msgstr "Ugyldig NFS-namn" #: any.pm:1191 #, c-format msgid "Bad media %s" msgstr "Ugyldig medium: %s" #: any.pm:1234 #, c-format msgid "Cannot make screenshots before partitioning" msgstr "Kan ikkje ta skjermbilete før partisjonering" #: any.pm:1242 #, c-format msgid "Screenshots will be available after install in %s" msgstr "Skjermbilete vert tilgjengelege i «%s» etter installeringa er ferdig" #: gtk.pm:131 #, c-format msgid "Installation" msgstr "Installering" #: gtk.pm:135 share/meta-task/compssUsers.pl:43 #, c-format msgid "Configuration" msgstr "Oppsett" #: install2.pm:168 #, c-format msgid "You must also format %s" msgstr "Du må òg formatera «%s»" #: interactive.pm:16 #, c-format msgid "" "Some hardware on your computer needs ``proprietary'' drivers to work.\n" "You can find some information about them at: %s" msgstr "" "Noko av maskinvaren treng godseigde drivarar for å fungera.\n" "Du finn meir informasjon om desse på: %s" #: interactive.pm:22 #, c-format msgid "Bringing up the network" msgstr "Koplar til nettverket" #: interactive.pm:27 #, c-format msgid "Bringing down the network" msgstr "Koplar frå nettverket" #: media.pm:399 #, c-format msgid "Please wait, retrieving file" msgstr "Hentar fil. Vent litt …" #: media.pm:717 #, c-format msgid "unable to add medium" msgstr "klarte ikkje leggja til medium" #: media.pm:757 #, c-format msgid "Copying some packages on disks for future use" msgstr "Kopierer nokre pakkar til harddisken for seinare bruk" #: media.pm:810 #, c-format msgid "Copying in progress" msgstr "Kopierer filer" #: pkgs.pm:32 #, c-format msgid "must have" msgstr "må ha" #: pkgs.pm:33 #, c-format msgid "important" msgstr "viktig" #: pkgs.pm:34 #, c-format msgid "very nice" msgstr "veldig kjekt å ha" #: pkgs.pm:35 #, c-format msgid "nice" msgstr "kjekt å ha" #: pkgs.pm:36 #, c-format msgid "maybe" msgstr "kanskje" #: pkgs.pm:239 #, c-format msgid "" "Some packages requested by %s cannot be installed:\n" "%s" msgstr "" "Nokre pakkar som %s krev kan ikkje installerast:\n" "%s" #: pkgs.pm:327 #, c-format msgid "An error occurred:" msgstr "Det oppstod ein feil:" #: pkgs.pm:814 #, c-format msgid "%d installation transactions failed" msgstr "feil med %d installasjonstransaksjonar" #: pkgs.pm:815 #, c-format msgid "Installation of packages failed:" msgstr "Feil ved installering av pakkar:" #: share/meta-task/compssUsers.pl:13 #, c-format msgid "Workstation" msgstr "Arbeidstasjon" #: share/meta-task/compssUsers.pl:15 #, c-format msgid "Office Workstation" msgstr "Kontormaskin" #: share/meta-task/compssUsers.pl:17 #, c-format msgid "" "Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets " "(OpenOffice.org Calc, Kspread), PDF viewers, etc" msgstr "" "Kontorprogramvare: Teksthandsamarar (OpenOffice.org Writer, Kword), rekneark " "(OpenOffice.org Calc, Kspread), PDF-viseprogram, med meir" #: share/meta-task/compssUsers.pl:22 #, c-format msgid "Game station" msgstr "Spelmaskin" #: share/meta-task/compssUsers.pl:23 #, c-format msgid "Amusement programs: arcade, boards, strategy, etc" msgstr "Moroprogram: Arkadespel, brettspel, strategispel, med meir" #: share/meta-task/compssUsers.pl:26 #, c-format msgid "Multimedia station" msgstr "Multimediemaskin" #: share/meta-task/compssUsers.pl:27 #, c-format msgid "Sound and video playing/editing programs" msgstr "Program for vising og redigering av film" #: share/meta-task/compssUsers.pl:32 #, c-format msgid "Internet station" msgstr "Internett-maskin" #: share/meta-task/compssUsers.pl:33 #, c-format msgid "" "Set of tools to read and send mail and news (mutt, tin..) and to browse the " "Web" msgstr "" "Program for lesing og sending av e-post, deltaking i temagrupper og surfing " "på Internett" #: share/meta-task/compssUsers.pl:38 #, c-format msgid "Network Computer (client)" msgstr "Nettverksmaskin (klient)" #: share/meta-task/compssUsers.pl:39 #, c-format msgid "Clients for different protocols including ssh" msgstr "Klientprogramvare for fleire protokollar, som ssh" #: share/meta-task/compssUsers.pl:44 #, c-format msgid "Tools to ease the configuration of your computer" msgstr "Verktøy for enkelt oppsett av datamaskina" #: share/meta-task/compssUsers.pl:48 #, c-format msgid "Console Tools" msgstr "Konsollverktøy" #: share/meta-task/compssUsers.pl:49 #, c-format msgid "Editors, shells, file tools, terminals" msgstr "Skriveprogram, skal, filverktøy og terminalprogram." #: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156 #: share/meta-task/compssUsers.pl:158 #, c-format msgid "Development" msgstr "Utvikling" #: share/meta-task/compssUsers.pl:54 share/meta-task/compssUsers.pl:159 #, c-format msgid "C and C++ development libraries, programs and include files" msgstr "Utviklingsbibliotek, program og deklarasjonsfiler for C og C++" #: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:163 #, c-format msgid "Documentation" msgstr "Hjelpetekst" #: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:164 #, c-format msgid "Books and Howto's on Linux and Free Software" msgstr "Bøker og hjelpeoppskrifter for Linux og fri programvare" #: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:167 #, c-format msgid "LSB" msgstr "LSB" #: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:168 #, c-format msgid "Linux Standard Base. Third party applications support" msgstr "Linux Standard Base – støtte for tredjepartsprogram" #: share/meta-task/compssUsers.pl:72 #, c-format msgid "Web Server" msgstr "Vevtenar" #: share/meta-task/compssUsers.pl:73 #, c-format msgid "Apache" msgstr "Apache" #: share/meta-task/compssUsers.pl:76 #, c-format msgid "Groupware" msgstr "Gruppevare" #: share/meta-task/compssUsers.pl:77 #, c-format msgid "Kolab Server" msgstr "Kolab-tenar" #: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121 #, c-format msgid "Firewall/Router" msgstr "Brannmur/rutar" #: share/meta-task/compssUsers.pl:81 share/meta-task/compssUsers.pl:122 #, c-format msgid "Internet gateway" msgstr "Internett-portnar" #: share/meta-task/compssUsers.pl:84 #, c-format msgid "Mail/News" msgstr "E-post og temagrupper" #: share/meta-task/compssUsers.pl:85 #, c-format msgid "Postfix mail server, Inn news server" msgstr "Postfix e-posttenar og Inn temagruppetenar" #: share/meta-task/compssUsers.pl:88 #, c-format msgid "Directory Server" msgstr "Katalogtenar" #: share/meta-task/compssUsers.pl:92 #, c-format msgid "FTP Server" msgstr "FTP-tenar" #: share/meta-task/compssUsers.pl:93 #, c-format msgid "ProFTPd" msgstr "ProFTPd" #: share/meta-task/compssUsers.pl:96 #, c-format msgid "DNS/NIS" msgstr "DNS/NIS" #: share/meta-task/compssUsers.pl:97 #, c-format msgid "Domain Name and Network Information Server" msgstr "Domenenamn og nettverksinformasjonstenar." #: share/meta-task/compssUsers.pl:100 #, c-format msgid "File and Printer Sharing Server" msgstr "Fil- og skrivardeling-tenar" #: share/meta-task/compssUsers.pl:101 #, c-format msgid "NFS Server, Samba server" msgstr "NFS-tenar, Samba-tenar" #: share/meta-task/compssUsers.pl:104 share/meta-task/compssUsers.pl:117 #, c-format msgid "Database" msgstr "Database" #: share/meta-task/compssUsers.pl:105 #, c-format msgid "PostgreSQL and MySQL Database Server" msgstr "PostgreSQL- og MySQL-databasetenar" #: share/meta-task/compssUsers.pl:109 #, c-format msgid "Web/FTP" msgstr "Vev/FTP" #: share/meta-task/compssUsers.pl:110 #, c-format msgid "Apache, Pro-ftpd" msgstr "Apache, Pro-ftpd" #: share/meta-task/compssUsers.pl:113 #, c-format msgid "Mail" msgstr "E-post" #: share/meta-task/compssUsers.pl:114 #, c-format msgid "Postfix mail server" msgstr "Postfix-e-posttenar" #: share/meta-task/compssUsers.pl:118 #, c-format msgid "PostgreSQL or MySQL database server" msgstr "PostgreSQL- eller MySQL-databasetenar" #: share/meta-task/compssUsers.pl:125 #, c-format msgid "Network Computer server" msgstr "Nettverkstenar" #: share/meta-task/compssUsers.pl:126 #, c-format msgid "NFS server, SMB server, Proxy server, ssh server" msgstr "NFS-tenar, SMB-tenar, mellomtenar, ssh-tenar" #: share/meta-task/compssUsers.pl:132 #, c-format msgid "Graphical Environment" msgstr "Grafisk miljø" #: share/meta-task/compssUsers.pl:134 #, c-format msgid "KDE Workstation" msgstr "KDE-arbeidsstasjon" #: share/meta-task/compssUsers.pl:135 #, c-format msgid "" "The K Desktop Environment, the basic graphical environment with a collection " "of accompanying tools" msgstr "Skrivebordsmiljøet KDE, med ei samling tilhøyrande verktøy" #: share/meta-task/compssUsers.pl:139 #, c-format msgid "GNOME Workstation" msgstr "GNOME-arbeidsstasjon" #: share/meta-task/compssUsers.pl:140 #, c-format msgid "" "A graphical environment with user-friendly set of applications and desktop " "tools" msgstr "" "Eit grafisk skrivebordsmiljø med brukarvenlege program og skrivebordsverktøy" #: share/meta-task/compssUsers.pl:144 #, c-format msgid "LXDE Desktop" msgstr "LXDE-skrivebord" #: share/meta-task/compssUsers.pl:146 #, c-format msgid "" "A lightweight & fast graphical environment with user-friendly set of " "applications and desktop tools" msgstr "" "Eit kjapt og lite ressurskrevande grafisk skrivebordsmiljø med brukarvenlege " "program og skrivebordsverktøy" #: share/meta-task/compssUsers.pl:149 #, c-format msgid "Other Graphical Desktops" msgstr "Andre grafiske skrivebord" #: share/meta-task/compssUsers.pl:150 #, c-format msgid "Window Maker, Enlightenment, Fvwm, etc" msgstr "Window Maker, Enlightenment, Fvwm, med fleire" #: share/meta-task/compssUsers.pl:173 #, c-format msgid "Utilities" msgstr "Verktøy" #: share/meta-task/compssUsers.pl:175 share/meta-task/compssUsers.pl:176 #, c-format msgid "SSH Server" msgstr "SSH-tenar" #: share/meta-task/compssUsers.pl:180 #, c-format msgid "Webmin" msgstr "Webmin" #: share/meta-task/compssUsers.pl:181 #, c-format msgid "Webmin Remote Configuration Server" msgstr "Webmin-fjernoppsettenar" #: share/meta-task/compssUsers.pl:185 #, c-format msgid "Network Utilities/Monitoring" msgstr "Nettverksverktøy og -overvaking" #: share/meta-task/compssUsers.pl:186 #, c-format msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..." msgstr "Overvakingsverktøy, prosesshandsaming, tcpdump, nmap, med meir" #: share/meta-task/compssUsers.pl:190 #, c-format msgid "Mageia Wizards" msgstr "Mageia-vegvisarar" #: share/meta-task/compssUsers.pl:191 #, c-format msgid "Wizards to configure server" msgstr "Vegvisarar for tenaroppsett" #: steps.pm:85 #, c-format msgid "" "An error occurred, but I do not know how to handle it nicely.\n" "Continue at your own risk." msgstr "Det oppstod ein kritisk feil. Hald fram på eige ansvar." # skip-rule: passiv #: steps.pm:443 #, c-format msgid "" "Some important packages did not get installed properly.\n" "Either your cdrom drive or your cdrom is defective.\n" "Check the cdrom on an installed computer using \"rpm -qpl media/main/*.rpm" "\"\n" msgstr "" "Nokre viktige pakkar vart ikkje installerte skikkeleg.\n" "Enten er det CD-ROM-stasjonen eller CD-plata di som øydelagd.\n" "Kontroller CD-plata på ei anna maskin med kommandoen: rpm -qpl media/main/*." "rpm\n" #: steps_auto_install.pm:71 steps_stdio.pm:27 #, c-format msgid "Entering step `%s'\n" msgstr "Køyrer steg «%s»\n" #: steps_curses.pm:22 #, c-format msgid "Mageia Linux Installation %s" msgstr "Mageia Linux-installering %s" #: steps_curses.pm:32 #, c-format msgid "<Tab>/<Alt-Tab> between elements" msgstr "«Tab»/«Alt + Tab» mellom element" #: steps_gtk.pm:89 #, c-format msgid "Xorg server is slow to start. Please wait..." msgstr "X.Org-tenaren tek tid å starta. Vent litt …" #: steps_gtk.pm:206 #, c-format msgid "" "Your system is low on resources. You may have some problem installing\n" "Mageia Linux. If that occurs, you can try a text install instead. For this,\n" "press `F1' when booting on CDROM, then enter `text'." msgstr "" "Du har lite systemressursar, og kan få vanskar med å installera Mageia " "Linux.\n" "Du kan då installera i tekstmodus i staden for. Trykk «F1» ved oppstart av\n" "CD-plata, og skriv «text» om du ønskjer dette." #: steps_gtk.pm:239 #, c-format msgid "Install Mageia KDE Desktop" msgstr "Installer Mageia KDE-skrivebord" #: steps_gtk.pm:240 #, c-format msgid "Install Mageia GNOME Desktop" msgstr "Installer Mageia GNOME-skrivebord" #: steps_gtk.pm:241 #, c-format msgid "Custom install" msgstr "Anna installering" #: steps_gtk.pm:262 #, c-format msgid "KDE Desktop" msgstr "KDE-skrivebord" #: steps_gtk.pm:263 #, c-format msgid "GNOME Desktop" msgstr "GNOME-skrivebord" #: steps_gtk.pm:264 #, c-format msgid "Custom Desktop" msgstr "Sjølvvalt skrivebord" #: steps_gtk.pm:270 #, c-format msgid "Here's a preview of the '%s' desktop." msgstr "Slik ser skrivebordsmiljøet %s ut." #: steps_gtk.pm:298 #, c-format msgid "Click on images in order to see a bigger preview" msgstr "Trykk på bileta for å forstørra dei" #: steps_gtk.pm:316 steps_interactive.pm:609 steps_list.pm:30 #, c-format msgid "Package Group Selection" msgstr "Pakkegruppeval" #: steps_gtk.pm:337 steps_interactive.pm:626 #, c-format msgid "Individual package selection" msgstr "Direkte pakkeval" #: steps_gtk.pm:361 steps_interactive.pm:546 #, c-format msgid "Total size: %d / %d MB" msgstr "Totalstorleik: %d / %d MiB" #: steps_gtk.pm:403 #, c-format msgid "Bad package" msgstr "Ugyldig pakke" #: steps_gtk.pm:405 #, c-format msgid "Version: " msgstr "Versjon: " #: steps_gtk.pm:406 #, c-format msgid "Size: " msgstr "Storleik: " #: steps_gtk.pm:406 #, c-format msgid "%d KB\n" msgstr "%d KiB\n" #: steps_gtk.pm:407 #, c-format msgid "Importance: " msgstr "Prioritet: " #: steps_gtk.pm:441 #, c-format msgid "You can not select/unselect this package" msgstr "Du kan ikkje velja eller fjerna denne pakken" #: steps_gtk.pm:445 #, c-format msgid "due to missing %s" msgstr "på grunn av manglande «%s»" #: steps_gtk.pm:446 #, c-format msgid "due to unsatisfied %s" msgstr "då «%s» ikkje er tilfredsstilt" #: steps_gtk.pm:447 #, c-format msgid "trying to promote %s" msgstr "Prøver å prioritera «%s»" #: steps_gtk.pm:448 #, c-format msgid "in order to keep %s" msgstr "for å kunna behalda «%s»" #: steps_gtk.pm:453 #, c-format msgid "" "You can not select this package as there is not enough space left to install " "it" msgstr "" "Du kan ikkje velja denne pakken, då det ikkje er nok ledig plass til å " "installera han." #: steps_gtk.pm:456 #, c-format msgid "The following packages are going to be installed" msgstr "Desse pakkane vert installerte" #: steps_gtk.pm:457 #, c-format msgid "The following packages are going to be removed" msgstr "Desse pakkane vert fjerna" #: steps_gtk.pm:482 #, c-format msgid "This is a mandatory package, it can not be unselected" msgstr "Dette er ein obligatorisk pakke. Du kan ikkje velja han vekk." #: steps_gtk.pm:484 #, c-format msgid "You can not unselect this package. It is already installed" msgstr "Du kan ikkje velja vekk denne pakken, då han allereie er installert." #: steps_gtk.pm:486 #, c-format msgid "You can not unselect this package. It must be upgraded" msgstr "Kan ikkje velja vekk pakken. Han må oppgraderast." #: steps_gtk.pm:490 #, c-format msgid "Show automatically selected packages" msgstr "Vis automatiske valde pakkar" #: steps_gtk.pm:496 #, c-format msgid "Install" msgstr "Installer" #: steps_gtk.pm:499 #, c-format msgid "Load/Save selection" msgstr "Opna/lagra utval" #: steps_gtk.pm:500 #, c-format msgid "Updating package selection" msgstr "Oppdaterer pakkeval" #: steps_gtk.pm:505 #, c-format msgid "Minimal install" msgstr "Minimal installering" #: steps_gtk.pm:518 #, c-format msgid "Software Management" msgstr "Programvarehandsaming" #: steps_gtk.pm:518 steps_interactive.pm:431 #, c-format msgid "Choose the packages you want to install" msgstr "Vel pakkane du ønskjer å installera" #: steps_gtk.pm:535 steps_interactive.pm:640 steps_list.pm:32 #, c-format msgid "Installing" msgstr "Installerer" #: steps_gtk.pm:565 #, c-format msgid "No details" msgstr "Gøym detaljar" #: steps_gtk.pm:584 #, c-format msgid "Time remaining:" msgstr "Tid igjen:" #: steps_gtk.pm:585 #, c-format msgid "(estimating...)" msgstr "(estimerer …)" #: steps_gtk.pm:615 #, c-format msgid "%d package" msgid_plural "%d packages" msgstr[0] "%d pakke" msgstr[1] "%d pakkar" #: steps_gtk.pm:670 steps_interactive.pm:804 steps_list.pm:43 #, c-format msgid "Summary" msgstr "Samandrag" #: steps_gtk.pm:689 #, c-format msgid "Configure" msgstr "Set opp" #: steps_gtk.pm:706 steps_interactive.pm:800 steps_interactive.pm:950 #, c-format msgid "not configured" msgstr "ikkje sett opp" #: steps_gtk.pm:740 #, c-format msgid "Media Selection" msgstr "Medieval" #: steps_gtk.pm:749 steps_interactive.pm:332 #, c-format msgid "" "The following installation media have been found.\n" "If you want to skip some of them, you can unselect them now." msgstr "" "Fann desse installasjonsmedia.\n" "Om du ikkje ønskjer å bruka alle, kan du velja vekk dei du ikkje treng no." #: steps_gtk.pm:765 steps_interactive.pm:338 #, c-format msgid "" "You have the option to copy the contents of the CDs onto the hard disk drive " "before installation.\n" "It will then continue from the hard disk drive and the packages will remain " "available once the system is fully installed." msgstr "" "Du kan velja å kopiera innhaldet på CD-ane til harddisken før " "installasjonen.\n" "Installasjonen vil då helda fram frå harddisken, og pakkane vil vera lett " "tilgjengeleg òg etter at systemet er installert og sett opp." #: steps_gtk.pm:767 steps_interactive.pm:340 #, c-format msgid "Copy whole CDs" msgstr "Kopier CD-ane" #: steps_interactive.pm:39 #, c-format msgid "An error occurred" msgstr "Det oppstod ein feil" #: steps_interactive.pm:104 #, c-format msgid "Please choose your keyboard layout" msgstr "Vel tastaturoppsett" #: steps_interactive.pm:108 #, c-format msgid "Here is the full list of available keyboards:" msgstr "Her er heile lista over tastaturoppsett:" #: steps_interactive.pm:146 #, c-format msgid "Install/Upgrade" msgstr "Installer/oppgrader" #: steps_interactive.pm:150 #, c-format msgid "Is this an install or an upgrade?" msgstr "Vil du installera eller oppgradera?" #: steps_interactive.pm:152 #, c-format msgid "" "_: This is a noun:\n" "Install" msgstr "Installer" #: steps_interactive.pm:154 #, c-format msgid "Upgrade %s" msgstr "Oppgrader «%s»" #: steps_interactive.pm:172 #, c-format msgid "Encryption key for %s" msgstr "Krypteringsnøkkel for «%s»" #: steps_interactive.pm:205 #, c-format msgid "Cancel installation, reboot system" msgstr "Avbryt installering og start systemet på nytt" #: steps_interactive.pm:206 #, c-format msgid "New Installation" msgstr "Nyinstallering" #: steps_interactive.pm:207 #, c-format msgid "Upgrade previous installation (not recommended)" msgstr "Oppgrader førre installasjon (ikkje tilrådd)" #: steps_interactive.pm:211 #, c-format msgid "" "Installer has detected that your installed Mageia Linux system could not\n" "safely be upgraded to %s.\n" "\n" "New installation replacing your previous one is recommended.\n" "\n" "Warning : you should backup all your personal data before choosing \"New\n" "Installation\"." msgstr "" "Installasjonsprogrammet har oppdaga at den gamle utgåva av Mageia Linux som " "du har installert ikkje kan trygt oppgraderast til %s.\n" "\n" "Du bør velja ei nyinstallering, som då vil erstatta den gamle versjonen.\n" "\n" "Åtvaring: Du bør ta reservekopi av alle personlege data før du vel " "«Nyinstallering»." #: steps_interactive.pm:253 #, c-format msgid "IDE" msgstr "IDE" #: steps_interactive.pm:253 #, c-format msgid "Configuring IDE" msgstr "Set opp IDE" #: steps_interactive.pm:290 #, c-format msgid "" "No free space for 1MB bootstrap! Install will continue, but to boot your " "system, you'll need to create the bootstrap partition in DiskDrake" msgstr "" "Ikkje nok ledig plass for oppstartslastar på 1 MiB. Installasjonen held " "fram, men du må sjølv laga ein oppstartslastarpartisjon i DiskDrake." #: steps_interactive.pm:295 #, c-format msgid "" "You'll need to create a PPC PReP Boot bootstrap! Install will continue, but " "to boot your system, you'll need to create the bootstrap partition in " "DiskDrake" msgstr "" "Du må laga ein PPC PReP Boot-bootstrap. Installasjonen vil helda fram, men " "viss du vil starta systemet, må du først laga bootstrap-partisjonen i " "DiskDrake." #: steps_interactive.pm:371 #, c-format msgid "" "Change your Cd-Rom!\n" "Please insert the Cd-Rom labelled \"%s\" in your drive and press Ok when " "done.\n" "If you do not have it, press Cancel to avoid installation from this Cd-Rom." msgstr "" "Byt installasjonsplate.\n" "\n" "Set inn plata merkt «%s» og trykk «OK».\n" "Trykk eventuelt «Avbryt» om du ikkje har denne plata." #: steps_interactive.pm:388 #, c-format msgid "Looking for available packages..." msgstr "Ser etter tilgjengelege pakkar …" #: steps_interactive.pm:396 #, c-format msgid "" "Your system does not have enough space left for installation or upgrade " "(%dMB > %dMB)" msgstr "" "Maskina di har ikkje nok ledig plass for installering eller oppgradering (%d " "MB > %d MB)" #: steps_interactive.pm:443 #, c-format msgid "" "Please choose load or save package selection.\n" "The format is the same as auto_install generated files." msgstr "" "Vel å lagra eller henta pakkeval.\n" "Formatet er likt det laga av «auto_install»." #: steps_interactive.pm:445 #, c-format msgid "Load" msgstr "Last" #: steps_interactive.pm:445 #, c-format msgid "Save" msgstr "Lagra" #: steps_interactive.pm:453 #, c-format msgid "Bad file" msgstr "Ugyldig fil" #: steps_interactive.pm:469 #, c-format msgid "KDE" msgstr "KDE" #: steps_interactive.pm:470 #, c-format msgid "GNOME" msgstr "GNOME" #: steps_interactive.pm:473 #, c-format msgid "Desktop Selection" msgstr "Skrivebordsval" #: steps_interactive.pm:474 #, c-format msgid "You can choose your workstation desktop profile." msgstr "Du kan velja skrivebordsmiljø." #: steps_interactive.pm:560 #, c-format msgid "Selected size is larger than available space" msgstr "Valt storleik er større enn tilgjengeleg plass" #: steps_interactive.pm:576 #, c-format msgid "Type of install" msgstr "Installasjonstype" #: steps_interactive.pm:577 #, c-format msgid "" "You have not selected any group of packages.\n" "Please choose the minimal installation you want:" msgstr "" "Du har ikkje valt noko pakkegruppe.\n" "Vel kva type minimal installasjon du vil ha:" #: steps_interactive.pm:582 #, c-format msgid "With X" msgstr "Med X" #: steps_interactive.pm:583 #, c-format msgid "Install suggested packages" msgstr "Installer foreslåtte pakkar" #: steps_interactive.pm:584 #, c-format msgid "With basic documentation (recommended!)" msgstr "Med grunnleggjande hjelpetekstar (tilrådd)" #: steps_interactive.pm:585 #, c-format msgid "Truly minimal install (especially no urpmi)" msgstr "Heilt minimal (òg utan urpmi)" #: steps_interactive.pm:641 #, c-format msgid "Preparing installation" msgstr "Førebur installasjon" #: steps_interactive.pm:649 #, c-format msgid "Installing package %s" msgstr "Installerer pakken «%s»" #: steps_interactive.pm:673 #, c-format msgid "There was an error ordering packages:" msgstr "Det oppstod ein feil ved sortering av pakkar:" #: steps_interactive.pm:673 #, c-format msgid "Go on anyway?" msgstr "Vil du helda fram likevel?" #: steps_interactive.pm:677 #, c-format msgid "Retry" msgstr "Prøv på nytt" #: steps_interactive.pm:678 #, c-format msgid "Skip this package" msgstr "Hopp over denne pakken" #: steps_interactive.pm:679 #, c-format msgid "Skip all packages from medium \"%s\"" msgstr "Hopp over alle pakkar frå mediet «%s»" #: steps_interactive.pm:680 #, c-format msgid "Go back to media and packages selection" msgstr "Gå tilbake til medie- og pakkevalskjermen" #: steps_interactive.pm:683 #, c-format msgid "There was an error installing package %s." msgstr "Det oppstod ein feil ved installering av pakken «%s»." #: steps_interactive.pm:702 #, c-format msgid "Post-install configuration" msgstr "Oppsett etter installering" #: steps_interactive.pm:709 #, c-format msgid "Please ensure the Update Modules media is in drive %s" msgstr "Sjå til at oppdateringsmediet er i stasjon %s" #: steps_interactive.pm:737 steps_list.pm:47 #, c-format msgid "Updates" msgstr "Oppdateringar" #: steps_interactive.pm:738 #, c-format msgid "" "You now have the opportunity to download updated packages. These packages\n" "have been updated after the distribution was released. They may\n" "contain security or bug fixes.\n" "\n" "To download these packages, you will need to have a working Internet \n" "connection.\n" "\n" "Do you want to install the updates?" msgstr "" "Du kan no lasta ned oppdaterte pakkar. Desse pakkane vart oppdaterte\n" "etter at distribusjonen var ferdigstilt, og kan innehelda " "tryggleiksforbetringar eller\n" "andre feilrettingar.\n" "\n" "\n" "For å lasta ned pakkane må du ha eit nettsamband oppe.\n" "\n" "\n" "Ønskjer du å installera oppdateringane?" #: steps_interactive.pm:846 #, c-format msgid "%s on %s" msgstr "%s %s" #: steps_interactive.pm:878 steps_interactive.pm:885 steps_interactive.pm:898 #: steps_interactive.pm:915 steps_interactive.pm:930 #, c-format msgid "Hardware" msgstr "Maskinvare" #: steps_interactive.pm:899 steps_interactive.pm:916 #, c-format msgid "Sound card" msgstr "Lydkort" #: steps_interactive.pm:919 #, c-format msgid "Do you have an ISA sound card?" msgstr "Har du eit ISA-lydkort?" #: steps_interactive.pm:921 #, c-format msgid "" "Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound " "card" msgstr "" "Køyr «sndconfig» etter installasjonen er ferdig for å setja opp lydkortet." #: steps_interactive.pm:923 #, c-format msgid "No sound card detected. Try \"harddrake\" after installation" msgstr "Fann ingen lydkort. Køyr «harddrake» etter installasjonen er ferdig." #: steps_interactive.pm:931 #, c-format msgid "Graphical interface" msgstr "Grafisk grensesnitt" #: steps_interactive.pm:937 steps_interactive.pm:948 #, c-format msgid "Network & Internet" msgstr "Nettverk og Internett" #: steps_interactive.pm:949 #, c-format msgid "Proxies" msgstr "Mellomtenarar" #: steps_interactive.pm:950 #, c-format msgid "configured" msgstr "oppsett" #: steps_interactive.pm:960 #, c-format msgid "Security Level" msgstr "Tryggleiksnivå" #: steps_interactive.pm:979 #, c-format msgid "Firewall" msgstr "Brannmur" #: steps_interactive.pm:983 #, c-format msgid "activated" msgstr "påslått" #: steps_interactive.pm:983 #, c-format msgid "disabled" msgstr "avslått" #: steps_interactive.pm:997 #, c-format msgid "You have not configured X. Are you sure you really want this?" msgstr "" "Du har ikkje sett opp det grafiske grensesnittet. Er du sikker på at du " "ikkje vil ha det?" #: steps_interactive.pm:1026 #, c-format msgid "Preparing bootloader..." msgstr "Førebur oppstartslastar …" #: steps_interactive.pm:1027 #, c-format msgid "Be patient, this may take a while..." msgstr "Ver tålmodig. Dette kan ta ei stund …" #: steps_interactive.pm:1038 #, c-format msgid "" "You appear to have an OldWorld or Unknown machine, the yaboot bootloader " "will not work for you. The install will continue, but you'll need to use " "BootX or some other means to boot your machine. The kernel argument for the " "root fs is: root=%s" msgstr "" "Oppstartslastaren yaboot vil ikkje fungera, då du har ei OldWorld- eller ei " "ukjend maskin. Installeringa vil helda fram, men du må bruka BootX eller ein " "annan måte å starta maskina di på. Kjerneargumentet for rotfilsystemet er: " "root=%s" #: steps_interactive.pm:1051 #, c-format msgid "" "In this security level, access to the files in the Windows partition is " "restricted to the administrator." msgstr "" "Med dette tryggleiksnivået er det berre administratoren som får tilgang til " "filer på Windows-partisjonen." #: steps_interactive.pm:1083 #, c-format msgid "Insert a blank floppy in drive %s" msgstr "Set inn ein tom diskett i stasjon «%s»" #: steps_interactive.pm:1085 #, c-format msgid "Creating auto install floppy..." msgstr "Lagar diskett for automatisk installasjon …" #: steps_interactive.pm:1096 #, c-format msgid "" "Some steps are not completed.\n" "\n" "Do you really want to quit now?" msgstr "" "Ikkje alle steg er gjennomførte.\n" "\n" "Er du sikker på at du vil avslutta?" #: steps_interactive.pm:1106 #, c-format msgid "Congratulations" msgstr "Gratulerer" #: steps_interactive.pm:1109 #, c-format msgid "Reboot" msgstr "Start på nytt" #. -PO: please keep the following messages very short: they must fit in the left list of the installer!!! #: steps_list.pm:16 #, c-format msgid "" "_: Keep these entry short\n" "Language" msgstr "Språk" #: steps_list.pm:16 steps_list.pm:23 #, c-format msgid "Localization" msgstr "Språkversjon" #: steps_list.pm:17 #, c-format msgid "" "_: Keep these entry short\n" "License" msgstr "Lisensvilkår" #: steps_list.pm:18 #, c-format msgid "" "_: Keep these entry short\n" "Mouse" msgstr "Mus" #: steps_list.pm:19 steps_list.pm:20 #, c-format msgid "" "_: Keep these entry short\n" "Hard drive detection" msgstr "Harddiskoppdaging" #: steps_list.pm:21 steps_list.pm:22 #, c-format msgid "" "_: Keep these entry short\n" "Installation class" msgstr "Installasjonsklasse" #: steps_list.pm:23 #, c-format msgid "" "_: Keep these entry short\n" "Keyboard" msgstr "Tastatur" #: steps_list.pm:24 #, c-format msgid "" "_: Keep these entry short\n" "Security" msgstr "Tryggleik" #: steps_list.pm:25 #, c-format msgid "" "_: Keep these entry short\n" "Partitioning" msgstr "Partisjonering" #: steps_list.pm:27 steps_list.pm:28 #, c-format msgid "" "_: Keep these entry short\n" "Formatting" msgstr "Formatering" #: steps_list.pm:29 #, c-format msgid "" "_: Keep these entry short\n" "Choosing packages" msgstr "Pakkeval" #: steps_list.pm:31 #, c-format msgid "" "_: Keep these entry short\n" "Installing" msgstr "Installering" #: steps_list.pm:34 #, c-format msgid "" "_: Keep these entry short\n" "Users" msgstr "Brukarar" #: steps_list.pm:36 steps_list.pm:37 #, c-format msgid "" "_: Keep these entry short\n" "Networking" msgstr "Nettverk" #: steps_list.pm:38 steps_list.pm:39 #, c-format msgid "" "_: Keep these entry short\n" "Bootloader" msgstr "Oppstartslastar" #: steps_list.pm:40 steps_list.pm:41 #, c-format msgid "" "_: Keep these entry short\n" "Configure X" msgstr "Set opp X" #: steps_list.pm:42 #, c-format msgid "" "_: Keep these entry short\n" "Summary" msgstr "Samandrag" #: steps_list.pm:44 steps_list.pm:45 #, c-format msgid "" "_: Keep these entry short\n" "Services" msgstr "Tenester" #: steps_list.pm:46 #, c-format msgid "" "_: Keep these entry short\n" "Updates" msgstr "Oppdateringar" #: steps_list.pm:48 #, c-format msgid "" "_: Keep these entry short\n" "Exit" msgstr "Avslutt" #~ msgid "" #~ "Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, " #~ "gnumeric), pdf viewers, etc" #~ msgstr "" #~ "Kontorprogramvare: Teksthandsamarar (KWord, AbiWord), rekneark (KSpread, " #~ "gnumeric), PDF-viseprogram, med meir" #~ msgid "" #~ "You have decided to upgrade your system to %s. KDE 3.5 has been detected\n" #~ "on your system. This installer cannot preserve KDE 3.5 in an upgrade. If " #~ "you choose to proceed, \n" #~ "KDE 4 will replace KDE 3, and you will lose your personal KDE " #~ "configuration settings. \n" #~ "To upgrade with KDE 3.5 and your personal settings preserved, \n" #~ "please reboot your system and upgrade using the Mandriva update applet." #~ msgstr "" #~ "Du har valt å oppgradera systemet til %s. Du har no KDE 3.5 installert, \n" #~ "men installeringsprogrammet kan ikkje ta vare på KDE 3.5 ved " #~ "oppgraderinga. Viss du vel å halda fram, \n" #~ "vert KDE 3 bytt ut med KDE 4, og du mistar alle KDE-innstillingane " #~ "dine. \n" #~ "Dersom du heller vil oppgradera KDE 3.5 og ta vare på innstillingane " #~ "dine, \n" #~ "må du starta maskina på nytt, og så oppgradera med Mandriva-" #~ "oppdateringsprogrammet som du finn i systemtrauet." #~ msgid "Proceed" #~ msgstr "Hald fram" #~ msgid "retrieval of [%s] failed" #~ msgstr "klarte ikkje henta [%s]" #~ msgid "Downloading file %s..." #~ msgstr "Lastar ned «%s» …" #~ msgid "Upgrade from a 32bit to a 64bit distribution is not supported" #~ msgstr "Oppgradering frå 32 bits til 64 bits er ikkje støtta" #~ msgid "Upgrade from a 64bit to a 32bit distribution is not supported" #~ msgstr "Oppgradering frå 64 bits til 32 bits er ikkje støtta" #~ msgid "" #~ "You have selected the following server(s): %s\n" #~ "\n" #~ "\n" #~ "These servers are activated by default. They do not have any known " #~ "security\n" #~ "issues, but some new ones could be found. In that case, you must make " #~ "sure\n" #~ "to upgrade as soon as possible.\n" #~ "\n" #~ "\n" #~ "Do you really want to install these servers?\n" #~ msgstr "" #~ "Du har valt desse tenarane: %s\n" #~ "\n" #~ "\n" #~ "Tenarane vert slått på som standard. Ingen av dei har nokon kjende " #~ "tryggleikshol,\n" #~ "men nye hol kan sjølvsagt verta oppdaga i framtida. Du må du i så fall " #~ "oppgradera\n" #~ "så snart som mogleg.\n" #~ "\n" #~ "\n" #~ "Er du sikker på at du vil installera tenarane?\n" #~ msgid "IceWm Desktop" #~ msgstr "IceWm-skrivebord" #~ msgid "Contacting the mirror to get the list of available packages..." #~ msgstr "Kontaktar spegel for oversikt over pakkar …" #~ msgid "Unable to contact mirror %s" #~ msgstr "Klarte ikkje kontakta spegelen «%s»" #~ msgid "Generate auto install floppy" #~ msgstr "Lag diskett for automatisk installasjon" #~ msgid "" #~ "The auto install can be fully automated if wanted,\n" #~ "in that case it will take over the hard disk drive!!\n" #~ "(this is meant for installing on another box).\n" #~ "\n" #~ "You may prefer to replay the installation.\n" #~ msgstr "" #~ "Du kan heilautomatisera autoinstalleringa om du ønskjer. Denne vil då " #~ "overskriva heile harddisken. (Dette er meint for installering på ei anna " #~ "maskin.)\n" #~ "\n" #~ "Du kan òg velja å køyra gjennom installasjonen på nytt.\n" #~ msgid "Replay" #~ msgstr "Spel av" #~ msgid "Automated" #~ msgstr "Automatisert" #~ msgid "Save packages selection" #~ msgstr "Lagra pakkeval" #~ msgid "Do you want to use aboot?" #~ msgstr "Vil du bruka aboot?" #~ msgid "" #~ "Error installing aboot, \n" #~ "try to force installation even if that destroys the first partition?" #~ msgstr "" #~ "Feil ved installering av «aboot».\n" #~ "Vil du prøva å tvinga gjennom installering, sjølv om det kan øydeleggja " #~ "den første partisjonen?"