# Swedish messages for sed.
# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2008 Free Software Foundation, Inc.
# Christian Rose <menthos@menthos.com>, 1999, 2000, 2001, 2002, 2003, 2004, 2008.
#
msgid ""
msgstr ""
"Project-Id-Version: sed 4.2.0\n"
"Report-Msgid-Bugs-To: bug-gnu-utils@gnu.org\n"
"POT-Creation-Date: 2009-06-27 15:08+0200\n"
"PO-Revision-Date: 2008-02-24 17:20+0100\n"
"Last-Translator: Christian Rose <menthos@menthos.com>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#: sed/compile.c:161
msgid "multiple `!'s"
msgstr "flera \"!\""

#: sed/compile.c:162
msgid "unexpected `,'"
msgstr "oväntat \",\""

#: sed/compile.c:163
msgid "invalid usage of +N or ~N as first address"
msgstr "ogiltig användning av +N eller ~N som första adress"

#: sed/compile.c:164
msgid "unmatched `{'"
msgstr "obalanserad \"{\""

#: sed/compile.c:165
msgid "unexpected `}'"
msgstr "oväntad \"}\""

#: sed/compile.c:166
msgid "extra characters after command"
msgstr "extra tecken efter kommandot"

#: sed/compile.c:167
msgid "expected \\ after `a', `c' or `i'"
msgstr "\\ förväntades efter \"a\", \"c\" eller \"i\""

#: sed/compile.c:168
msgid "`}' doesn't want any addresses"
msgstr "\"}\" vill inte ha några adresser"

#: sed/compile.c:169
msgid ": doesn't want any addresses"
msgstr ": vill inte ha några adresser"

#: sed/compile.c:170
msgid "comments don't accept any addresses"
msgstr "kommentarer accepterar inga adresser"

#: sed/compile.c:171
msgid "missing command"
msgstr "kommando saknas"

#: sed/compile.c:172
msgid "command only uses one address"
msgstr "kommandot använder endast en adress"

#: sed/compile.c:173
msgid "unterminated address regex"
msgstr "oavslutat reguljärt uttryck för adress"

#: sed/compile.c:174
msgid "unterminated `s' command"
msgstr "oavslutat \"s\"-kommando"

#: sed/compile.c:175
msgid "unterminated `y' command"
msgstr "oavslutat \"y\"-kommando"

#: sed/compile.c:176
msgid "unknown option to `s'"
msgstr "flaggan okänd för \"s\""

#: sed/compile.c:177
msgid "multiple `p' options to `s' command"
msgstr "flera \"p\"-flaggor till \"s\"-kommandot"

#: sed/compile.c:178
msgid "multiple `g' options to `s' command"
msgstr "flera \"g\"-flaggor till \"s\"-kommandot"

#: sed/compile.c:179
msgid "multiple number options to `s' command"
msgstr "flera sifferflaggor till \"s\"-kommandot"

#: sed/compile.c:180
msgid "number option to `s' command may not be zero"
msgstr "sifferflagga till kommandot \"s\" får inte vara noll"

#: sed/compile.c:181
msgid "strings for `y' command are different lengths"
msgstr "strängarna för kommandot \"y\" är olika långa"

#: sed/compile.c:182
msgid "delimiter character is not a single-byte character"
msgstr "avgränsningstecknet är inte en ensam byte"

#: sed/compile.c:183
msgid "expected newer version of sed"
msgstr "nyare version av sed förväntades"

#: sed/compile.c:184
msgid "invalid usage of line address 0"
msgstr "felaktig användning av radadress 0"

#: sed/compile.c:185
#, c-format
msgid "unknown command: `%c'"
msgstr "okänt kommando: \"%c\""

#: sed/compile.c:208
#, c-format
msgid "%s: file %s line %lu: %s\n"
msgstr "%s: fil %s rad %lu: %s\n"

#: sed/compile.c:211
#, c-format
msgid "%s: -e expression #%lu, char %lu: %s\n"
msgstr "%s: -e uttryck #%lu, tecken %lu: %s\n"

#: sed/compile.c:1665
#, c-format
msgid "can't find label for jump to `%s'"
msgstr "kan inte hitta etiketten för hopp till \"%s\""

#: sed/execute.c:709
#, c-format
msgid "%s: can't read %s: %s\n"
msgstr "%s: kan inte läsa %s: %s\n"

#: sed/execute.c:740
#, c-format
msgid "couldn't edit %s: is a terminal"
msgstr "kunde inte redigera %s: är en terminal"

#: sed/execute.c:745
#, c-format
msgid "couldn't edit %s: not a regular file"
msgstr "kunde inte redigera %s: inte en vanlig fil"

#: sed/execute.c:757
#, c-format
msgid "%s: warning: failed to set default file creation context to %s: %s"
msgstr ""

#: sed/execute.c:764
#, c-format
msgid "%s: warning: failed to get security context of %s: %s"
msgstr ""

#: sed/execute.c:783 sed/utils.c:227
#, c-format
msgid "couldn't open temporary file %s: %s"
msgstr "kunde inte öppna temporära filen %s: %s"

#: sed/execute.c:1317 sed/execute.c:1497
msgid "error in subprocess"
msgstr "fel i underprocess"

#: sed/execute.c:1319
msgid "option `e' not supported"
msgstr "flaggan \"e\" stöds inte"

#: sed/execute.c:1499
msgid "`e' command not supported"
msgstr "kommandot \"e\" stöds inte"

#: sed/execute.c:1843
msgid "no input files"
msgstr "inga indatafiler"

#: sed/regexp.c:41
msgid "no previous regular expression"
msgstr "inget tidigare reguljärt uttryck"

#: sed/regexp.c:42
msgid "cannot specify modifiers on empty regexp"
msgstr "kan inte ange modifierare på tomt reguljärt uttryck"

# Kommentar från Jan Djärv:
# Jag antar RHS står för "right hand side".  Man kan då säga
# "... kommandots högersida"
#
#: sed/regexp.c:131
#, c-format
msgid "invalid reference \\%d on `s' command's RHS"
msgstr "ogiltig referens \\%d på \"s\"-kommandots högersida"

#: sed/sed.c:97
#, c-format
msgid ""
"GNU sed home page: <http://www.gnu.org/software/sed/>.\n"
"General help using GNU software: <http://www.gnu.org/gethelp/>.\n"
msgstr ""

#: sed/sed.c:104
#, fuzzy, c-format
msgid ""
"E-mail bug reports to: <%s>.\n"
"Be sure to include the word ``%s'' somewhere in the ``Subject:'' field.\n"
msgstr ""
"Rapportera fel till: %s .\n"
"Ange ordet \"%s\" på något ställe i \"Ärende:\"-fältet.\n"
"Skicka anmärkningar på översättningen till <sv@li.org>.\n"

#: sed/sed.c:117
msgid ""
"  -R, --regexp-perl\n"
"                 use Perl 5's regular expressions syntax in the script.\n"
msgstr ""
"  -R, --regexp-perl\n"
"                 använd Perl 5:s syntax för reguljära uttryck i skriptet.\n"

#: sed/sed.c:122
#, c-format
msgid ""
"Usage: %s [OPTION]... {script-only-if-no-other-script} [input-file]...\n"
"\n"
msgstr ""
"Användning: %s [FLAGGA]... {skript-endast-om-inga-andra} [indatafil]...\n"
"\n"

#: sed/sed.c:126
#, c-format
msgid ""
"  -n, --quiet, --silent\n"
"                 suppress automatic printing of pattern space\n"
msgstr ""
"  -n, --quiet, --silent\n"
"                 förhindrar automatisk utskrift av mönsterutrymme\n"

#: sed/sed.c:128
#, c-format
msgid ""
"  -e script, --expression=script\n"
"                 add the script to the commands to be executed\n"
msgstr ""
"  -e skript, --expression=skript\n"
"                 lägg till skript till de kommandon som ska utföras\n"

#: sed/sed.c:130
#, c-format
msgid ""
"  -f script-file, --file=script-file\n"
"                 add the contents of script-file to the commands to be "
"executed\n"
msgstr ""
"  -f skriptfil, --file=skriptfil\n"
"                 lägg till innehållet i skriptfil till de kommandon som ska\n"
"                 utföras\n"

#: sed/sed.c:133
#, c-format
msgid ""
"  --follow-symlinks\n"
"                 follow symlinks when processing in place\n"
msgstr ""
"  --follow-symlinks\n"
"                 följ symlänkar när behandling sker på plats\n"

#: sed/sed.c:136
#, c-format
msgid ""
"  -i[SUFFIX], --in-place[=SUFFIX]\n"
"                 edit files in place (makes backup if extension supplied)\n"
msgstr ""
"  -i[ÄNDELSE], --in-place[=ÄNDELSE]\n"
"                 redigera filer på plats (skapar säkerhetskopia om ändelse\n"
"                 tillhandahålls)\n"

#: sed/sed.c:139
#, c-format
msgid ""
"  -b, --binary\n"
"                 open files in binary mode (CR+LFs are not processed "
"specially)\n"
msgstr ""
"  -b, --binary\n"
"                 öppna filer i binärläge (CR+LF särbehandlas inte)\n"

#: sed/sed.c:142
#, c-format
msgid ""
"  -l N, --line-length=N\n"
"                 specify the desired line-wrap length for the `l' command\n"
msgstr ""
"  -l N, --line-length=N\n"
"                 ange önskad radbrytningslängd för \"l\"-kommandot\n"

#: sed/sed.c:144
#, c-format
msgid ""
"  --posix\n"
"                 disable all GNU extensions.\n"
msgstr ""
"  --posix\n"
"                 inaktivera alla GNU-utökningar.\n"

#: sed/sed.c:146
#, c-format
msgid ""
"  -r, --regexp-extended\n"
"                 use extended regular expressions in the script.\n"
msgstr ""
"  -r, --regexp-extended\n"
"                 använd utökade reguljära uttryck i skriptet.\n"

#: sed/sed.c:151
#, c-format
msgid ""
"  -s, --separate\n"
"                 consider files as separate rather than as a single "
"continuous\n"
"                 long stream.\n"
msgstr ""
"  -s, --separate\n"
"                 betrakta filer som separata istället för som en\n"
"                 kontinuerlig lång dataström.\n"

#: sed/sed.c:154
#, c-format
msgid ""
"  -u, --unbuffered\n"
"                 load minimal amounts of data from the input files and "
"flush\n"
"                 the output buffers more often\n"
msgstr ""
"  -u, --unbuffered\n"
"                 läs in minimala mängder data från indatafilerna och töm\n"
"                 utdatabufferterna oftare\n"

#: sed/sed.c:157
#, c-format
msgid "      --help     display this help and exit\n"
msgstr "      --help     visa denna hjälptext och avsluta\n"

#: sed/sed.c:158
#, c-format
msgid "      --version  output version information and exit\n"
msgstr "      --version  visa versionsinformation och avsluta\n"

#: sed/sed.c:159
#, c-format
msgid ""
"\n"
"If no -e, --expression, -f, or --file option is given, then the first\n"
"non-option argument is taken as the sed script to interpret.  All\n"
"remaining arguments are names of input files; if no input files are\n"
"specified, then the standard input is read.\n"
"\n"
msgstr ""
"\n"
"Om ingen av flaggorna -e, --expression, -f, eller --file ges, blir det\n"
"första argumentet som inte är en flagga det sed-skript som tolkas. Alla\n"
"återstående argument är namn på indatafiler. Om inga indatafiler är angivna\n"
"läses standard in.\n"
"\n"

#: sed/sed.c:315
#, c-format
msgid "super-sed version %s\n"
msgstr "super-sed version %s\n"

#: sed/sed.c:316
#, c-format
msgid ""
"based on GNU sed version %s\n"
"\n"
msgstr ""
"baserad på GNU sed version %s\n"
"\n"

#: sed/sed.c:318
#, c-format
msgid "GNU sed version %s\n"
msgstr "GNU sed version %s\n"

#: sed/sed.c:320
#, fuzzy, c-format
msgid ""
"Copyright (C) %d Free Software Foundation, Inc.\n"
"This is free software; see the source for copying conditions.  There is NO\n"
"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE,\n"
"to the extent permitted by law.\n"
msgstr ""
"%s\n"
"(Följande text är en informell översättning som enbart tillhandahålls\n"
" i informativt syfte. För alla juridiska tolkningar gäller den engelska\n"
" originaltexten.)\n"
"Det här är fri programvara; se källkoden angående villkor för kopiering.\n"
"Det finns INGEN garanti; inte ens för SÄLJBARHET eller LÄMPLIGHET FÖR NÅGOT\n"
"SPECIELLT ÄNDAMÅL, i den omfattning som medges av gällande lag.\n"

#: sed/utils.c:93 sed/utils.c:438
#, c-format
msgid "cannot remove %s: %s"
msgstr "kan inte ta bort %s: %s"

#: sed/utils.c:163
#, c-format
msgid "couldn't open file %s: %s"
msgstr "kunde inte öppna filen %s: %s"

#: sed/utils.c:186
#, c-format
msgid "couldn't attach to %s: %s"
msgstr "kunde inte fästa vid %s: %s"

#: sed/utils.c:245
#, c-format
msgid "couldn't write %d item to %s: %s"
msgid_plural "couldn't write %d items to %s: %s"
msgstr[0] "kunde inte skriva %d objekt till %s: %s"
msgstr[1] "kunde inte skriva %d objekt till %s: %s"

#: sed/utils.c:260 sed/utils.c:276
#, c-format
msgid "read error on %s: %s"
msgstr "läsfel vid %s: %s"

#: sed/utils.c:378
#, c-format
msgid "couldn't follow symlink %s: %s"
msgstr "kunde inte följa symlänken %s: %s"

#: sed/utils.c:412
#, c-format
msgid "cannot stat %s: %s"
msgstr "kan inte ta status på %s: %s"

#: sed/utils.c:443
#, c-format
msgid "cannot rename %s: %s"
msgstr "kan inte byta namn på %s: %s"

#: lib/regcomp.c:134
msgid "Success"
msgstr "Lyckades"

#: lib/regcomp.c:137
msgid "No match"
msgstr "Ingen träff"

#: lib/regcomp.c:140
msgid "Invalid regular expression"
msgstr "Ogiltigt reguljärt uttryck"

#: lib/regcomp.c:143
msgid "Invalid collation character"
msgstr "Ogiltigt sorteringstecken"

#: lib/regcomp.c:146
msgid "Invalid character class name"
msgstr "Ogiltigt teckenklassnamn"

#: lib/regcomp.c:149
msgid "Trailing backslash"
msgstr "Eftersläpande omvänt snedstreck"

#: lib/regcomp.c:152
msgid "Invalid back reference"
msgstr "Ogiltig bakåtreferens"

#: lib/regcomp.c:155
msgid "Unmatched [ or [^"
msgstr "Obalanserad [ eller [^"

#: lib/regcomp.c:158
msgid "Unmatched ( or \\("
msgstr "Obalanserad ( eller \\("

#: lib/regcomp.c:161
msgid "Unmatched \\{"
msgstr "Obalanserad \\{"

#: lib/regcomp.c:164
msgid "Invalid content of \\{\\}"
msgstr "Ogiltigt innehåll i \\{\\}"

#: lib/regcomp.c:167
msgid "Invalid range end"
msgstr "Ogiltigt intervallslut"

#: lib/regcomp.c:170
msgid "Memory exhausted"
msgstr "Minnet slut"

#: lib/regcomp.c:173
msgid "Invalid preceding regular expression"
msgstr "Ogiltigt föregående reguljärt uttryck"

#: lib/regcomp.c:176
msgid "Premature end of regular expression"
msgstr "För tidigt slut på reguljärt uttryck"

#: lib/regcomp.c:179
msgid "Regular expression too big"
msgstr "Reguljärt uttryck för stort"

#: lib/regcomp.c:182
msgid "Unmatched ) or \\)"
msgstr "Obalanserad ) eller \\)"

#: lib/regcomp.c:703
msgid "No previous regular expression"
msgstr "Inget tidigare reguljärt uttryck"

# Bristen på indragning ser ut som en bugg. Buggrapporterat 2004-07-11.
#~ msgid ""
#~ "-n, --quiet, --silent\n"
#~ "                 suppress automatic printing of pattern space\n"
#~ msgstr ""
#~ "  -n, --quiet, --silent\n"
#~ "                 förhindrar automatisk utskrift av mönsterutrymme\n"

#~ msgid "Multiple `!'s"
#~ msgstr "Flera \"!\""

#~ msgid "Unexpected `,'"
#~ msgstr "Oväntat \",\""

#~ msgid "Invalid usage of +N or ~N as first address"
#~ msgstr "Ogiltig användning av +N eller ~N som första adress"

#~ msgid "Unmatched `{'"
#~ msgstr "Obalanserad \"{\""

#~ msgid "Unexpected `}'"
#~ msgstr "Oväntad \"}\""

#~ msgid "Extra characters after command"
#~ msgstr "Extra tecken efter kommandot"

#~ msgid "Expected \\ after `a', `c' or `i'"
#~ msgstr "\\ förväntades efter \"a\", \"c\" eller \"i\""

#~ msgid "Comments don't accept any addresses"
#~ msgstr "Kommentarer accepterar inga adresser"

#~ msgid "Missing command"
#~ msgstr "Kommando saknas"

#~ msgid "Command only uses one address"
#~ msgstr "Kommandot använder endast en adress"

#~ msgid "Unterminated address regex"
#~ msgstr "Oavslutat reguljärt uttryck för adress"

#~ msgid "Unterminated `s' command"
#~ msgstr "Oavslutat \"s\"-kommando"

#~ msgid "Unterminated `y' command"
#~ msgstr "Oavslutat \"y\"-kommando"

#~ msgid "Unknown option to `s'"
#~ msgstr "Flaggan okänd för \"s\""

#~ msgid "Unknown command: `%c'"
#~ msgstr "Okänt kommando: \"%c\""

#~ msgid "Can't find label for jump to `%s'"
#~ msgstr "Kan inte hitta etiketten för hopp till \"%s\""

#~ msgid "Couldn't open temporary file %s: %s"
#~ msgstr "Kunde inte öppna temporära filen %s: %s"

#~ msgid "Cannot specify modifiers on empty regexp"
#~ msgstr "Kan inte ange modifierare på tomt reguljärt uttryck"

# Kommentar från Jan Djärv:
# Jag antar RHS står för "right hand side".  Man kan då säga
# "... kommandots högersida"
#
#~ msgid "Onvalid reference \\%d on `s' command's RHS"
#~ msgstr "Ogiltig referens \\%d på \"s\"-kommandots högersida"

#~ msgid "Couldn't open file %s: %s"
#~ msgstr "Kunde inte öppna filen %s: %s"

#~ msgid "Called savchar() with unexpected pushback (%x)"
#~ msgstr "Anropade savchar() med oväntat returtecken (%x)"

#~ msgid "INTERNAL ERROR: bad address type"
#~ msgstr "INTERNT FEL: felaktig addresstyp"

#~ msgid "INTERNAL ERROR: Bad cmd %c"
#~ msgstr "INTERNT FEL: Felaktigt kommando %c"

#~ msgid ""
#~ "Usage: %s [OPTION]... {script-only-if-no-other-script} [input-file]...\n"
#~ "\n"
#~ "  -n, --quiet, --silent\n"
#~ "                 suppress automatic printing of pattern space\n"
#~ "  -e script, --expression=script\n"
#~ "                 add the script to the commands to be executed\n"
#~ "  -f script-file, --file=script-file\n"
#~ "                 add the contents of script-file to the commands to be "
#~ "executed\n"
#~ "  -i[suffix], --in-place[=suffix]\n"
#~ "                 edit files in place (makes backup if extension "
#~ "supplied)\n"
#~ "  -l N, --line-length=N\n"
#~ "                 specify the desired line-wrap length for the `l' "
#~ "command\n"
#~ "  -r, --regexp-extended\n"
#~ "                 use extended regular expressions in the script.\n"
#~ "%s  -s, --separate\n"
#~ "                 consider files as separate rather than as a single "
#~ "continuous\n"
#~ "                 long stream.\n"
#~ "  -u, --unbuffered\n"
#~ "                 load minimal amounts of data from the input files and "
#~ "flush\n"
#~ "                 the output buffers more often\n"
#~ "      --help     display this help and exit\n"
#~ "  -V, --version  output version information and exit\n"
#~ "\n"
#~ "If no -e, --expression, -f, or --file option is given, then the first\n"
#~ "non-option argument is taken as the sed script to interpret.  All\n"
#~ "remaining arguments are names of input files; if no input files are\n"
#~ "specified, then the standard input is read.\n"
#~ "\n"
#~ msgstr ""
#~ "Användning: %s [FLAGGA]... {skript-endast-om-inga-andra} [indatafil]...\n"
#~ "\n"
#~ "  -n, --quiet, --silent\n"
#~ "                 förhindrar automatisk utskrift av mönsterutrymme\n"
#~ "  -e skript, --expression=skript\n"
#~ "                 lägg till skript till de kommandon som ska utföras\n"
#~ "  -f skriptfil, --file=skriptfil\n"
#~ "                 lägg till innehållet i skriptfil till de kommandon som "
#~ "ska\n"
#~ "                 utföras\n"
#~ "  -i[suffix], --in-place[=suffix]\n"
#~ "                 redigera filer på plats (skapa säkerhetskopia om "
#~ "tillägg\n"
#~ "                 tillhandahålls)\n"
#~ "  -l N, --line-length=N\n"
#~ "                 ange önskad radbrytningslängd för \"l\"-kommandot\n"
#~ "  -r, --regexp-extended\n"
#~ "                 använd utökade reguljära uttryck i skriptet.\n"
#~ "%s  -s, --separate\n"
#~ "                 betrakta filer som separata istället för en ensam och\n"
#~ "                 sammanhållen lång ström.\n"
#~ "  -u, --unbuffered\n"
#~ "                 läs in minimala mängder data från indatafilerna och töm\n"
#~ "                 utdatabufferterna oftare\n"
#~ "      --help     visa denna hjälptext och avsluta\n"
#~ "  -V, --version  visa versionsinformation och avsluta\n"
#~ "\n"
#~ "Om ingen av flaggorna -e, --expression, -f, eller --file ges, blir det\n"
#~ "första argumentet som inte är en flagga det sed-skript som tolkas. Alla\n"
#~ "återstående argument är namn på indatafiler; om inga indatafiler är "
#~ "angivna\n"
#~ "läses standard in.\n"
#~ "\n"

#~ msgid "Unexpected End-of-file"
#~ msgstr "Oväntat filslut"

#~ msgid "bad regexp: %s\n"
#~ msgstr "felaktigt reguljärt uttryck: %s\n"

#~ msgid "input read error: %s"
#~ msgstr "fel vid läsning av indata: %s"

#~ msgid "couldn't write an item to %s: %s"
#~ msgstr "kunde inte skriva ett objekt till %s: %s"
