# Dutch messages for GNU libiconv.
# Copyright (C) 2022 Free Software Foundation, Inc.
# This file is distributed under the same license as the libiconv package.
#
# "Boer doe mij 't hekke lös, anders schijt ik dij in de boekweit."
#
# Taco Witte <info@tacowitte.nl>, 2003.
# Elros Cyriatan <cyriatan@fastmail.fm>, 2003.
# Tim Van Holder <tim.van.holder@telenet.be>, 2007.
# Benno Schulenberg <benno@vertaalt.nl>, 2017, 2022.
msgid ""
msgstr ""
"Project-Id-Version: libiconv 1.17-pre1\n"
"Report-Msgid-Bugs-To: bug-gnu-libiconv@gnu.org\n"
"POT-Creation-Date: 2022-02-12 13:29+0100\n"
"PO-Revision-Date: 2022-02-13 16:52+0100\n"
"Last-Translator: Benno Schulenberg <vertaling@coevern.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"
"X-Bugs: Report translation errors to the Language-Team address.\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANSLATORS: The first line of the short usage message.
#: src/iconv.c:104
msgid "Usage: iconv [-c] [-s] [-f fromcode] [-t tocode] [file ...]"
msgstr "Gebruik:  iconv [-c] [-s] [-f VANCODE] [-t NAARCODE] [BESTAND...]"

#. TRANSLATORS: The second line of the short usage message.
#. Align it correctly against the first line.
#: src/iconv.c:108
msgid "or:    iconv -l"
msgstr "of:       iconv -l"

#: src/iconv.c:110
#, c-format
msgid "Try '%s --help' for more information.\n"
msgstr "Typ '%s --help' voor meer informatie.\n"

#. TRANSLATORS: The first line of the long usage message.
#. The %s placeholder expands to the program name.
#: src/iconv.c:115
#, c-format, no-wrap
msgid "Usage: %s [OPTION...] [-f ENCODING] [-t ENCODING] [INPUTFILE...]\n"
msgstr "Gebruik:  %s [OPTIE...] [-f CODERING] [-t CODERING] [INVOERBESTAND...]\n"

#. TRANSLATORS: The second line of the long usage message.
#. Align it correctly against the first line.
#. The %s placeholder expands to the program name.
#: src/iconv.c:122
#, c-format, no-wrap
msgid "or:    %s -l\n"
msgstr "of:       %s -l\n"

# Weet niet of "codering" herhaald hoeft te worden.
#. TRANSLATORS: Description of the iconv program.
#: src/iconv.c:128
#, c-format, no-wrap
msgid "Converts text from one encoding to another encoding.\n"
msgstr "Zet tekst om van één codering naar een andere.\n"

#: src/iconv.c:132
#, c-format, no-wrap
msgid "Options controlling the input and output format:\n"
msgstr "Opties voor de codering van in- en uitvoer:\n"

#: src/iconv.c:135
#, c-format, no-wrap
msgid ""
"  -f ENCODING, --from-code=ENCODING\n"
"                              the encoding of the input\n"
msgstr ""
"  -f CODERING, --from-code=CODERING\n"
"                              de codering van de invoer\n"

#: src/iconv.c:139
#, c-format, no-wrap
msgid ""
"  -t ENCODING, --to-code=ENCODING\n"
"                              the encoding of the output\n"
msgstr ""
"  -t CODERING, --to-code=CODERING\n"
"                              de codering van de uitvoer\n"

#: src/iconv.c:144
#, c-format, no-wrap
msgid "Options controlling conversion problems:\n"
msgstr "Opties voor omzettingsproblemen:\n"

# of misschien "gooi ... weg"
#: src/iconv.c:147
#, c-format, no-wrap
msgid "  -c                          discard unconvertible characters\n"
msgstr "  -c                          onomzetbare tekens weglaten\n"

# Of iets als FORMATTERINGSTEKST?
#: src/iconv.c:150
#, c-format, no-wrap
msgid ""
"  --unicode-subst=FORMATSTRING\n"
"                              substitution for unconvertible Unicode characters\n"
msgstr "  --unicode-subst=TEKST       vervanging voor onomzetbare Unicode-tekens\n"

#: src/iconv.c:154
#, c-format, no-wrap
msgid "  --byte-subst=FORMATSTRING   substitution for unconvertible bytes\n"
msgstr "  --byte-subst=TEKST          vervanging voor onomzetbare bytes\n"

# iets beters dan "brede tekens"?
#: src/iconv.c:157
#, c-format, no-wrap
msgid ""
"  --widechar-subst=FORMATSTRING\n"
"                              substitution for unconvertible wide characters\n"
msgstr "  --widechar-subst=TEKST      vervanging voor onomzetbare brede tekens\n"

#: src/iconv.c:162
#, c-format, no-wrap
msgid "Options controlling error output:\n"
msgstr "Opties voor foutmeldingen:\n"

#: src/iconv.c:165
#, c-format, no-wrap
msgid "  -s, --silent                suppress error messages about conversion problems\n"
msgstr "  -s, --silent                meldingen van omzettingsproblemen onderdrukken\n"

#: src/iconv.c:169
#, c-format, no-wrap
msgid "Informative output:\n"
msgstr "Opties voor informatieve uitvoer:\n"

#: src/iconv.c:172
#, c-format, no-wrap
msgid "  -l, --list                  list the supported encodings\n"
msgstr "  -l, --list                  een lijst van ondersteunde coderingen tonen\n"

#: src/iconv.c:175
#, c-format, no-wrap
msgid "  --help                      display this help and exit\n"
msgstr "  --help                      deze hulptekst tonen en stoppen\n"

#: src/iconv.c:178
#, c-format, no-wrap
msgid "  --version                   output version information and exit\n"
msgstr "  --version                   programmaversie tonen en stoppen\n"

#. TRANSLATORS: The first placeholder is the web address of the Savannah
#. project of this package.  The second placeholder is the bug-reporting
#. email address for this package.  Please add _another line_ saying
#. "Report translation bugs to <...>\n" with the address for translation
#. bugs (typically your translation team's web or email address).
#: src/iconv.c:186
#, c-format
msgid ""
"Report bugs in the bug tracker at <%s>\n"
"or by email to <%s>.\n"
msgstr ""
"Rapporteer gebreken in het programma via <%s>\n"
"of via een e-mail aan <%s>;\n"
"meld fouten in de vertaling aan <vertaling@vrijschrift.org>.\n"

#. TRANSLATORS: The %s placeholder is the web address of the GPL license.
#: src/iconv.c:202
#, c-format, no-wrap
msgid ""
"License GPLv3+: GNU GPL version 3 or later <%s>\n"
"This is free software: you are free to change and redistribute it.\n"
"There is NO WARRANTY, to the extent permitted by law.\n"
msgstr ""
"Dit is vrije software: u mag het vrijelijk wijzigen en verder verspreiden.\n"
"De precieze licentie is GPL-3+: GNU General Public License versie 3 of later.\n"
"Zie <%s> voor de volledige (Engelse) tekst.\n"
"Deze software kent GEEN GARANTIE, voor zover de wet dit toestaat.\n"

#. TRANSLATORS: The %s placeholder expands to an author's name.
#: src/iconv.c:208
#, c-format
msgid "Written by %s.\n"
msgstr "Geschreven door %s.\n"

#. TRANSLATORS: An error message.
#. The %s placeholder expands to a command-line option.
#: src/iconv.c:302
#, c-format
msgid ""
"%s argument: A format directive with a variable width is not allowed here."
msgstr ""
"%s argument: Een formatteringscommando met variabele breedte is hier niet "
"toegestaan."

#. TRANSLATORS: An error message.
#. The %s placeholder expands to a command-line option.
#: src/iconv.c:317
#, c-format
msgid ""
"%s argument: A format directive with a variable precision is not allowed "
"here."
msgstr ""
"%s argument: Een formatteringscommando met variabele precisie is hier niet "
"toegestaan."

#. TRANSLATORS: An error message.
#. The %s placeholder expands to a command-line option.
#: src/iconv.c:333
#, c-format
msgid "%s argument: A format directive with a size is not allowed here."
msgstr ""
"%s argument: Een formatteringscommando met een grootte is hier niet "
"toegestaan."

#. TRANSLATORS: An error message.
#. The %s placeholder expands to a command-line option.
#: src/iconv.c:375
#, c-format
msgid "%s argument: The string ends in the middle of a directive."
msgstr "%s argument: De tekst stopt midden in een commando."

#. TRANSLATORS: An error message.
#. The %s placeholder expands to a command-line option.
#. The %c placeholder expands to an unknown format directive.
#: src/iconv.c:382
#, c-format
msgid "%s argument: The character '%c' is not a valid conversion specifier."
msgstr "%s argument: Het teken '%c' is geen geldige omzettingsspecificatie."

#. TRANSLATORS: An error message.
#. The %s placeholder expands to a command-line option.
#: src/iconv.c:388
#, c-format
msgid ""
"%s argument: The character that terminates the format directive is not a "
"valid conversion specifier."
msgstr ""
"%s argument: Het teken dat het formatteringscommando afsluit is geen geldige "
"omzettingsspecificatie."

# "meer dan één argument (%u argumenten om precies te zijn)." leest beter, maar
# dan wordt de boodschap jammer genoeg te lang voor een typische regel van 80
# tekens...
#. TRANSLATORS: An error message.
#. The %s placeholder expands to a command-line option.
#. The %u placeholder expands to the number of arguments consumed by the format string.
#: src/iconv.c:404
#, c-format
msgid ""
"%s argument: The format string consumes more than one argument: %u argument."
msgid_plural ""
"%s argument: The format string consumes more than one argument: %u arguments."
msgstr[0] "%s argument: De tekst verbruikt meer dan één argument: %u argument."
msgstr[1] ""
"%s argument: De tekst verbruikt meer dan één argument: %u argumenten."

#. TRANSLATORS: An error message.
#. The %s placeholder expands to a piece of text, specified through --byte-subst.
#: src/iconv.c:462
#, c-format
msgid "cannot convert byte substitution to Unicode: %s"
msgstr "kan byte-vervanging niet omzetten naar Unicode: %s"

#. TRANSLATORS: An error message.
#. The %s placeholder expands to a piece of text, specified through --unicode-subst.
#: src/iconv.c:502
#, c-format
msgid "cannot convert unicode substitution to target encoding: %s"
msgstr "kan Unicode-vervanging niet omzetten naar de doelcodering: %s"

# "brede tekenreeks" klinkt mij nogal vreemd...
#. TRANSLATORS: An error message.
#. The %s placeholder expands to a piece of text, specified through --byte-subst.
#: src/iconv.c:543
#, c-format
msgid "cannot convert byte substitution to wide string: %s"
msgstr "kan byte-vervanging niet omzetten naar een brede tekenreeks: %s"

# "brede tekenvervanging" klinkt slecht...
#. TRANSLATORS: An error message.
#. The %s placeholder expands to a piece of text, specified through --widechar-subst.
#: src/iconv.c:584
#, c-format
msgid "cannot convert widechar substitution to target encoding: %s"
msgstr "kan breedteken-vervanging niet omzetten naar de doelcodering: %s"

#. TRANSLATORS: An error message.
#. The %s placeholder expands to a piece of text, specified through --byte-subst.
#: src/iconv.c:625
#, c-format
msgid "cannot convert byte substitution to target encoding: %s"
msgstr "kan byte-vervanging niet omzetten naar de doelcodering: %s"

#. TRANSLATORS: An error message.
#. The placeholders expand to the input file name, a line number, and a column number.
#: src/iconv.c:644
#, c-format
msgid "%s:%u:%u: cannot convert"
msgstr "%s:%u:%u: omzetting is onmogelijk"

# "shift sequence" was eerst als "verschuivingsreeks" vertaald, maar als heel specifiek jargon laat ik het liever onvertaald
#. TRANSLATORS: An error message.
#. The placeholders expand to the input file name, a line number, and a column number.
#. A "shift sequence" is a sequence of bytes that changes the state of the converter;
#. this concept exists only for "stateful" encodings like ISO-2022-JP.
#: src/iconv.c:658
#, c-format
msgid "%s:%u:%u: incomplete character or shift sequence"
msgstr "%s:%u:%u: onvolledig teken of onvolledige shift-sequentie"

#. TRANSLATORS: The first part of an error message.
#. It is followed by a colon and a detail message.
#. The placeholders expand to the input file name, a line number, and a column number.
#: src/iconv.c:671
#, c-format
msgid "%s:%u:%u"
msgstr "%s:%u:%u"

#. TRANSLATORS: An error message.
#. The placeholder expands to the input file name.
#: src/iconv.c:832
#, c-format
msgid "%s: I/O error"
msgstr "%s: Invoer-/uitvoerfout"

#. TRANSLATORS: An error message.
#. The placeholder expands to the encoding name, specified through --from-code.
#: src/iconv.c:1030
#, c-format
msgid "conversion from %s unsupported"
msgstr "omzetting vanuit %s wordt niet ondersteund"

#. TRANSLATORS: An error message.
#. The placeholder expands to the encoding name, specified through --to-code.
#: src/iconv.c:1036
#, c-format
msgid "conversion to %s unsupported"
msgstr "omzetting naar %s wordt niet ondersteund"

#. TRANSLATORS: An error message.
#. The placeholders expand to the encoding names, specified through --from-code and --to-code, respectively.
#: src/iconv.c:1042
#, c-format
msgid "conversion from %s to %s unsupported"
msgstr "omzetting van %s naar %s wordt niet ondersteund"

#. TRANSLATORS: Additional advice after an error message.
#. The %s placeholder expands to the program name.
#: src/iconv.c:1047
#, c-format
msgid "try '%s -l' to get the list of supported encodings"
msgstr "Typ '%s -l' voor een lijst van ondersteunde coderingen."

#. TRANSLATORS: A filename substitute denoting standard input.
#: src/iconv.c:1104
msgid "(stdin)"
msgstr "(standaardinvoer)"

#. TRANSLATORS: The first part of an error message.
#. It is followed by a colon and a detail message.
#. The %s placeholder expands to the input file name.
#: src/iconv.c:1116
#, c-format
msgid "%s"
msgstr "%s"

#. TRANSLATORS: An error message.
#: src/iconv.c:1130
#, c-format
msgid "I/O error"
msgstr "Invoer-/uitvoerfout"

#~ msgid "Report bugs to <bug-gnu-libiconv@gnu.org>.\n"
#~ msgstr ""
#~ "Rapporteer gebreken in het programma aan <bug-gnu-libiconv@gnu.org>;\n"
#~ "meld fouten in de vertaling aan <vertaling@vrijschrift.org>.\n"
