# Dutch translation for sed.
# Copyright (C) 2010 Free Software Foundation, Inc.
# This file is distributed under the same license as the sed package.
#
# Taco Witte <tcwitte@cs.uu.nl>, 2004, 2005.
# Benno Schulenberg <benno@vertaalt.nl>, 2005, 2006, 2007, 2008, 2010.
msgid ""
msgstr ""
"Project-Id-Version: sed-4.2.1\n"
"Report-Msgid-Bugs-To: bug-gnu-utils@gnu.org\n"
"POT-Creation-Date: 2012-12-22 14:36+0100\n"
"PO-Revision-Date: 2010-06-11 11:42+0200\n"
"Last-Translator: Benno Schulenberg <benno@vertaalt.nl>\n"
"Language-Team: Dutch <vertaling@vrijschrift.org>\n"
"Language: nl\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"
"X-Generator: Lokalize 1.0\n"

#: sed/compile.c:144
msgid "multiple `!'s"
msgstr "meerdere '!'"

#: sed/compile.c:145
msgid "unexpected `,'"
msgstr "onverwachte ','"

#: sed/compile.c:146
msgid "invalid usage of +N or ~N as first address"
msgstr "ongeldig gebruik van +N of ~N als eerste adres"

#: sed/compile.c:147
msgid "unmatched `{'"
msgstr "ongepaarde '{'"

#: sed/compile.c:148
msgid "unexpected `}'"
msgstr "onverwachte '}'"

#: sed/compile.c:149
msgid "extra characters after command"
msgstr "extra tekens na opdracht"

#: sed/compile.c:150
msgid "expected \\ after `a', `c' or `i'"
msgstr "een '\\' werd verwacht na 'a', 'c' of 'i'"

#: sed/compile.c:151
msgid "`}' doesn't want any addresses"
msgstr "'}' accepteert geen adressen"

#: sed/compile.c:152
msgid ": doesn't want any addresses"
msgstr "':' accepteert geen adressen"

#: sed/compile.c:153
msgid "comments don't accept any addresses"
msgstr "opmerkingen accepteren geen adres"

#: sed/compile.c:154
msgid "missing command"
msgstr "ontbrekende opdracht"

#: sed/compile.c:155
msgid "command only uses one address"
msgstr "opdracht accepteert slechts één adres"

#: sed/compile.c:156
msgid "unterminated address regex"
msgstr "onafgemaakte reguliere expressie voor adres"

#: sed/compile.c:157
msgid "unterminated `s' command"
msgstr "onafgemaakte 's'-opdracht"

#: sed/compile.c:158
msgid "unterminated `y' command"
msgstr "onafgemaakte 'y'-opdracht"

#: sed/compile.c:159
msgid "unknown option to `s'"
msgstr "onbekende optie bij 's'-opdracht"

#: sed/compile.c:160
msgid "multiple `p' options to `s' command"
msgstr "meerdere 'p'-opties bij 's'-opdracht"

#: sed/compile.c:161
msgid "multiple `g' options to `s' command"
msgstr "meerdere 'g'-opties bij 's'-opdracht"

#: sed/compile.c:162
msgid "multiple number options to `s' command"
msgstr "meerdere getalopties bij 's'-opdracht"

#: sed/compile.c:163
msgid "number option to `s' command may not be zero"
msgstr "getaloptie bij 's'-opdracht mag niet nul zijn"

#: sed/compile.c:164
msgid "strings for `y' command are different lengths"
msgstr "tekenreeksen bij 'y'-opdracht zijn van verschillende lengte"

#: sed/compile.c:165
msgid "delimiter character is not a single-byte character"
msgstr "scheidingsteken is niet één enkele byte"

#: sed/compile.c:166
msgid "expected newer version of sed"
msgstr "een nieuwere versie van 'sed' werd verwacht"

#: sed/compile.c:167
msgid "invalid usage of line address 0"
msgstr "ongeldig gebruik van regeladres 0"

#: sed/compile.c:168
#, c-format
msgid "unknown command: `%c'"
msgstr "onbekende opdracht: '%c'"

#: sed/compile.c:169
#, fuzzy
msgid "incomplete command"
msgstr "ontbrekende opdracht"

#: sed/compile.c:192
#, c-format
msgid "%s: file %s line %lu: %s\n"
msgstr "%s: bestand %s, regel %lu: %s\n"

#: sed/compile.c:195
#, c-format
msgid "%s: -e expression #%lu, char %lu: %s\n"
msgstr "%s: expressie #%lu, teken %lu: %s\n"

#: sed/compile.c:1657
#, c-format
msgid "can't find label for jump to `%s'"
msgstr "kan label voor sprong naar '%s' niet vinden"

#: sed/execute.c:595
#, c-format
msgid "%s: can't read %s: %s\n"
msgstr "%s: kan %s niet lezen: %s\n"

#: sed/execute.c:624
#, c-format
msgid "couldn't edit %s: is a terminal"
msgstr "kan %s niet bewerken: is een terminal"

#: sed/execute.c:629
#, c-format
msgid "couldn't edit %s: not a regular file"
msgstr "kan %s niet bewerken: is geen gewoon bestand"

#: sed/execute.c:640
#, c-format
msgid "%s: warning: failed to set default file creation context to %s: %s"
msgstr ""
"%s: Waarschuwing: kan standaard bestandscreatiecontext niet op %s instellen: "
"%s"

#: sed/execute.c:647
#, c-format
msgid "%s: warning: failed to get security context of %s: %s"
msgstr "%s: Waarschuwing: kan geen veiligheidscontext van %s verkrijgen: %s"

#: sed/execute.c:664 sed/utils.c:211
#, c-format
msgid "couldn't open temporary file %s: %s"
msgstr "kan tijdelijk bestand %s niet openen: %s"

#: sed/execute.c:1193 sed/execute.c:1373
msgid "error in subprocess"
msgstr "fout in subproces"

#: sed/execute.c:1195
msgid "option `e' not supported"
msgstr "'e'-opdracht is niet mogelijk"

#: sed/execute.c:1375
msgid "`e' command not supported"
msgstr "'e'-opdracht is niet mogelijk"

#: sed/execute.c:1725
msgid "no input files"
msgstr "geen invoerbestanden"

#: sed/regexp.c:39
msgid "no previous regular expression"
msgstr "geen eerdere reguliere expressie"

#: sed/regexp.c:40
msgid "cannot specify modifiers on empty regexp"
msgstr "bij een lege reguliere expressie passen geen veranderaars"

#: sed/regexp.c:129
#, c-format
msgid "invalid reference \\%d on `s' command's RHS"
msgstr "ongeldige verwijzing \\%d rechts van 's'-opdracht"

#: sed/sed.c:32
msgid "Jay Fenlason"
msgstr ""

#: sed/sed.c:33
msgid "Tom Lord"
msgstr ""

#: sed/sed.c:34
msgid "Ken Pizzini"
msgstr ""

#: sed/sed.c:35
msgid "Paolo Bonzini"
msgstr ""

#: sed/sed.c:79
#, 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 ""
"Webpagina van GNU sed: <http://www.gnu.org/software/sed/>.\n"
"Algemene hulp bij gebruik van GNU-software: <http://www.gnu.org/gethelp/>.\n"

#: sed/sed.c:86
#, c-format
msgid ""
"E-mail bug reports to: <%s>.\n"
"Be sure to include the word ``%s'' somewhere in the ``Subject:'' field.\n"
msgstr ""
"Rapporteer gebreken in het programma aan <%s>\n"
"met het woord \"%s\" ergens in de Onderwerp-regel;\n"
"meld fouten in de vertaling aan <vertaling@vrijschrift.org>.\n"

#: sed/sed.c:99
msgid ""
"  -R, --regexp-perl\n"
"                 use Perl 5's regular expressions syntax in the script.\n"
msgstr ""
"  -R, --regexp-perl\n"
"             reguliere expressies van Perl-5 gebruiken in het script\n"

#: sed/sed.c:104
#, c-format
msgid ""
"Usage: %s [OPTION]... {script-only-if-no-other-script} [input-file]...\n"
"\n"
msgstr ""
"Gebruik:  %s [OPTIE]... {SCRIPT_als_verder_geen_script} [INVOERBESTAND]...\n"
"\n"

#: sed/sed.c:108
#, c-format
msgid ""
"  -n, --quiet, --silent\n"
"                 suppress automatic printing of pattern space\n"
msgstr ""
"  -n, --quiet, --silent\n"
"             automatische weergave van patroonruimte onderdrukken\n"

#: sed/sed.c:110
#, c-format
msgid ""
"  -e script, --expression=script\n"
"                 add the script to the commands to be executed\n"
msgstr ""
"  -e SCRIPT, --expression=SCRIPT\n"
"             dit SCRIPT toevoegen aan de uit te voeren opdrachten\n"

#: sed/sed.c:112
#, 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 SCRIPTBESTAND, --file=SCRIPTBESTAND\n"
"             inhoud van SCRIPTBESTAND toevoegen aan de uit te voeren "
"opdrachten\n"

#: sed/sed.c:115
#, c-format
msgid ""
"  --follow-symlinks\n"
"                 follow symlinks when processing in place\n"
msgstr ""
"  --follow-symlinks\n"
"             symbolische koppelingen volgen (bij bewerking ter plekke)\n"

#: sed/sed.c:118
#, fuzzy, c-format
msgid ""
"  -i[SUFFIX], --in-place[=SUFFIX]\n"
"                 edit files in place (makes backup if SUFFIX supplied)\n"
msgstr ""
"  -i[ACHTERVOEGSEL], --in-place[=ACHTERVOEGSEL]\n"
"             bestanden ter plekke bewerken\n"
"             (en een reservekopie maken als een ACHTERVOEGSEL gegeven is)\n"

#: sed/sed.c:121
#, c-format
msgid ""
"  -b, --binary\n"
"                 open files in binary mode (CR+LFs are not processed "
"specially)\n"
msgstr ""
"  -b, --binary\n"
"             bestanden openen in binaire modus (regeleinden zijn niet "
"speciaal)\n"

#: sed/sed.c:124
#, c-format
msgid ""
"  -l N, --line-length=N\n"
"                 specify the desired line-wrap length for the `l' command\n"
msgstr ""
"  -l AANTAL, --line-length=AANTAL\n"
"             de gewenste regelafbreeklengte voor de 'l'-opdracht\n"

#: sed/sed.c:126
#, c-format
msgid ""
"  --posix\n"
"                 disable all GNU extensions.\n"
msgstr ""
"  --posix\n"
"             alle GNU-uitbreidingen uitschakelen\n"

#: sed/sed.c:128
#, c-format
msgid ""
"  -r, --regexp-extended\n"
"                 use extended regular expressions in the script.\n"
msgstr ""
"  -r, --regexp-extended\n"
"             uitgebreide reguliere expressies gebruiken in het script\n"

#: sed/sed.c:133
#, c-format
msgid ""
"  -s, --separate\n"
"                 consider files as separate rather than as a single "
"continuous\n"
"                 long stream.\n"
msgstr ""
"  -s, --separate\n"
"             bestanden als losstaand beschouwen, niet als één enkele stroom\n"

#: sed/sed.c:136
#, 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"
"             minimale hoeveelheden gegevens laden uit de invoerbestanden,\n"
"             en de uitvoerbuffers vaker leegmaken\n"
"\n"

#: sed/sed.c:139
#, c-format
msgid ""
"  -z, --null-data\n"
"                 separate lines by NUL characters\n"
msgstr ""

#: sed/sed.c:141
#, c-format
msgid "      --help     display this help and exit\n"
msgstr "  --help     deze hulptekst tonen en stoppen\n"

#: sed/sed.c:142
#, c-format
msgid "      --version  output version information and exit\n"
msgstr "  --version  versie-informatie tonen en stoppen\n"

#: sed/sed.c:143
#, 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"
"Als er geen '-e', '--expression', '-f' of '--file' gegeven is, wordt het\n"
"eerste niet-optie argument als het te interpreteren 'sed'-script genomen.\n"
"Alle overblijvende argumenten zijn namen van invoerbestanden; als er geen\n"
"invoerbestanden gegeven zijn, wordt standaardinvoer gelezen.\n"
"\n"

#: sed/utils.c:74 sed/utils.c:432
#, c-format
msgid "cannot remove %s: %s"
msgstr "kan %s niet verwijderen: %s"

#: sed/utils.c:144
#, c-format
msgid "couldn't open file %s: %s"
msgstr "kan bestand %s niet openen: %s"

#: sed/utils.c:167
#, c-format
msgid "couldn't attach to %s: %s"
msgstr "kan niet aan %s aanhechten: %s"

#: sed/utils.c:229
#, c-format
msgid "couldn't write %d item to %s: %s"
msgid_plural "couldn't write %d items to %s: %s"
msgstr[0] "kan %d item niet naar %s schrijven: %s"
msgstr[1] "kan %d items niet naar %s schrijven: %s"

#: sed/utils.c:244 sed/utils.c:267
#, c-format
msgid "read error on %s: %s"
msgstr "leesfout op %s: %s"

#: sed/utils.c:372
#, c-format
msgid "couldn't follow symlink %s: %s"
msgstr "kan symbolische koppeling %s niet volgen: %s"

#: sed/utils.c:406
#, c-format
msgid "cannot stat %s: %s"
msgstr "kan de status van %s niet opvragen: %s"

#: sed/utils.c:437
#, c-format
msgid "cannot rename %s: %s"
msgstr "kan %s niet hernoemen: %s"

#: lib/regcomp.c:132
msgid "Success"
msgstr "Gelukt"

#: lib/regcomp.c:135
msgid "No match"
msgstr "Geen overeenkomsten"

#: lib/regcomp.c:138
msgid "Invalid regular expression"
msgstr "Ongeldige reguliere expressie"

#: lib/regcomp.c:141
msgid "Invalid collation character"
msgstr "Ongeldig samengesteld teken"

#: lib/regcomp.c:144
msgid "Invalid character class name"
msgstr "Ongeldige tekenklassenaam"

#: lib/regcomp.c:147
msgid "Trailing backslash"
msgstr "Backslash aan het eind"

#: lib/regcomp.c:150
msgid "Invalid back reference"
msgstr "Ongeldige terugverwijzing"

#: lib/regcomp.c:153
msgid "Unmatched [ or [^"
msgstr "Ongepaarde [ of [^"

#: lib/regcomp.c:156
msgid "Unmatched ( or \\("
msgstr "Ongepaarde ( of \\("

#: lib/regcomp.c:159
msgid "Unmatched \\{"
msgstr "Ongepaarde \\{"

#: lib/regcomp.c:162
msgid "Invalid content of \\{\\}"
msgstr "Ongeldige inhoud van \\{\\}"

#: lib/regcomp.c:165
msgid "Invalid range end"
msgstr "Ongeldig bereikeinde"

#: lib/regcomp.c:168
msgid "Memory exhausted"
msgstr "Onvoldoende geheugen beschikbaar"

#: lib/regcomp.c:171
msgid "Invalid preceding regular expression"
msgstr "Ongeldige voorafgaande reguliere expressie"

#: lib/regcomp.c:174
msgid "Premature end of regular expression"
msgstr "Voortijdig einde van reguliere expressie"

#: lib/regcomp.c:177
msgid "Regular expression too big"
msgstr "Reguliere expressie is te groot"

#: lib/regcomp.c:180
msgid "Unmatched ) or \\)"
msgstr "Ongepaarde ) of \\)"

#: lib/regcomp.c:705
msgid "No previous regular expression"
msgstr "Geen eerdere reguliere expressie"

#~ msgid "super-sed version %s\n"
#~ msgstr "super-sed versie %s\n"

#~ msgid ""
#~ "based on GNU sed version %s\n"
#~ "\n"
#~ msgstr ""
#~ "gebaseerd op GNU sed versie %s\n"
#~ "\n"

#~ msgid "GNU sed version %s\n"
#~ msgstr "GNU sed versie %s\n"

#~ 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 ""
#~ "Copyright (C) %d Free Software Foundation, Inc.\n"
#~ "Dit is vrije software; zie de programmatekst voor de kopieervoorwaarden.\n"
#~ "Er is GEEN ENKELE garantie, zelfs niet voor VERHANDELBAARHEID of\n"
#~ "GESCHIKTHEID VOOR EEN BEPAALD DOEL, voor zover de wet dit toestaat.\n"
