# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2004 Free Software Foundation, Inc.
# This file is distributed under the same license as the sed package.
# Ysbeer <ysbeer@af.org.za>, 2004
#
msgid ""
msgstr ""
"Project-Id-Version: sed 4.0.9\n"
"Report-Msgid-Bugs-To: bug-gnu-utils@gnu.org\n"
"POT-Creation-Date: 2012-12-22 14:36+0100\n"
"PO-Revision-Date: 2004-01-11 21:06+0000\n"
"Last-Translator: Ysbeer <ysbeer@af.org.za>\n"
"Language-Team: Afrikaans <i18n@af.org.za>\n"
"Language: af\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:144
#, fuzzy
msgid "multiple `!'s"
msgstr "Meervoudige `!'s"

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

#: sed/compile.c:146
#, fuzzy
msgid "invalid usage of +N or ~N as first address"
msgstr "Kan nie +N or ~N as die eerste adres gebruik nie"

#: sed/compile.c:147
#, fuzzy
msgid "unmatched `{'"
msgstr "Ongepaarde `{'"

#: sed/compile.c:148
#, fuzzy
msgid "unexpected `}'"
msgstr "Onverwagte `}'"

#: sed/compile.c:149
#, fuzzy
msgid "extra characters after command"
msgstr "Ekstra karakters na instruksie"

#: sed/compile.c:150
#, fuzzy
msgid "expected \\ after `a', `c' or `i'"
msgstr "Het \\ na `a', `c' or `i' verwag"

#: sed/compile.c:151
msgid "`}' doesn't want any addresses"
msgstr "`}' soek nie 'n adres nie"

#: sed/compile.c:152
msgid ": doesn't want any addresses"
msgstr ": soek nie 'n adres nie"

#: sed/compile.c:153
#, fuzzy
msgid "comments don't accept any addresses"
msgstr "Kommentare aanvaar nie adresse nie"

#: sed/compile.c:154
#, fuzzy
msgid "missing command"
msgstr "Vermiste instruksie"

#: sed/compile.c:155
#, fuzzy
msgid "command only uses one address"
msgstr "Instruksie gebruik slegs een adres"

#: sed/compile.c:156
#, fuzzy
msgid "unterminated address regex"
msgstr "Ongetermineerde adresregex"

#: sed/compile.c:157
#, fuzzy
msgid "unterminated `s' command"
msgstr "Ongetermineerde `s' instruksie"

#: sed/compile.c:158
#, fuzzy
msgid "unterminated `y' command"
msgstr "Ongetermineerde `y' instruksie"

#: sed/compile.c:159
#, fuzzy
msgid "unknown option to `s'"
msgstr "Onbekende opsie vir `s'"

#: sed/compile.c:160
msgid "multiple `p' options to `s' command"
msgstr "meervoudige `p' opsies vir `s' instruksie"

#: sed/compile.c:161
msgid "multiple `g' options to `s' command"
msgstr "meervoudige `g' opsies vir `s' instruksie"

#: sed/compile.c:162
msgid "multiple number options to `s' command"
msgstr "meervoudige nommeropsies vir `s' instruksie"

#: sed/compile.c:163
msgid "number option to `s' command may not be zero"
msgstr "nommeropsie vir `s' instruksie mag nie nul wees nie"

#: sed/compile.c:164
#, fuzzy
msgid "strings for `y' command are different lengths"
msgstr "stringe vir y-instruksie het verskillende lengtes"

#: sed/compile.c:165
msgid "delimiter character is not a single-byte character"
msgstr ""

#: sed/compile.c:166
msgid "expected newer version of sed"
msgstr "het nuwer sed-weergawe verwag"

#: sed/compile.c:167
#, fuzzy
msgid "invalid usage of line address 0"
msgstr "Instruksie gebruik slegs een adres"

#: sed/compile.c:168
#, fuzzy, c-format
msgid "unknown command: `%c'"
msgstr "Onbekende instruksie:"

#: sed/compile.c:169
#, fuzzy
msgid "incomplete command"
msgstr "Vermiste instruksie"

#: sed/compile.c:192
#, c-format
msgid "%s: file %s line %lu: %s\n"
msgstr "%s: lêer %s lyn %lu: %s\n"

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

#: sed/compile.c:1657
#, fuzzy, c-format
msgid "can't find label for jump to `%s'"
msgstr "Kan nie etiket vir sprong na `%s' kry nie"

#: sed/execute.c:595
#, c-format
msgid "%s: can't read %s: %s\n"
msgstr "%s: Kan nie %s lees nie: %s\n"

#: sed/execute.c:624
#, fuzzy, c-format
msgid "couldn't edit %s: is a terminal"
msgstr "kon nie %d item na %s skryf nie: %s"

#: sed/execute.c:629
#, c-format
msgid "couldn't edit %s: not a regular file"
msgstr ""

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

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

#: sed/execute.c:664 sed/utils.c:211
#, fuzzy, c-format
msgid "couldn't open temporary file %s: %s"
msgstr "Kon nie tydelike lêer %s oopmaak nie: %s"

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

#: sed/execute.c:1195
msgid "option `e' not supported"
msgstr "opsie `e' word nie ondersteun nie"

#: sed/execute.c:1375
msgid "`e' command not supported"
msgstr "`e' instruksie word nie ondersteun nie"

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

#: sed/regexp.c:39
#, fuzzy
msgid "no previous regular expression"
msgstr "Geen vorige regex nie"

#: sed/regexp.c:40
#, fuzzy
msgid "cannot specify modifiers on empty regexp"
msgstr "Kan nie veranderaars vir leë regex spesifiseer nie"

#: sed/regexp.c:129
#, fuzzy, c-format
msgid "invalid reference \\%d on `s' command's RHS"
msgstr "Ongeldige regterhandsverwysing \\%d vir `s' instruksie"

#: 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 ""

#: sed/sed.c:86
#, 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 ""
"Rapporteer foute per e-pos aan: %s .\n"
"Sluit asb. die woord ``%s'' êrens in die onderwerplyn in.\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"
"                 gebruik Perl 5 se regexsintaks in die skrip.\n"

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

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

#: sed/sed.c:110
#, c-format
msgid ""
"  -e script, --expression=script\n"
"                 add the script to the commands to be executed\n"
msgstr ""

#: 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 ""

#: sed/sed.c:115
#, c-format
msgid ""
"  --follow-symlinks\n"
"                 follow symlinks when processing in place\n"
msgstr ""

#: sed/sed.c:118
#, c-format
msgid ""
"  -i[SUFFIX], --in-place[=SUFFIX]\n"
"                 edit files in place (makes backup if SUFFIX supplied)\n"
msgstr ""

#: sed/sed.c:121
#, c-format
msgid ""
"  -b, --binary\n"
"                 open files in binary mode (CR+LFs are not processed "
"specially)\n"
msgstr ""

#: 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 ""

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

#: sed/sed.c:128
#, fuzzy, c-format
msgid ""
"  -r, --regexp-extended\n"
"                 use extended regular expressions in the script.\n"
msgstr ""
"  -R, --regexp-perl\n"
"                 gebruik Perl 5 se regexsintaks in die skrip.\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 ""

#: 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 ""

#: 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 ""

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

#: 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 ""

#: sed/utils.c:74 sed/utils.c:432
#, fuzzy, c-format
msgid "cannot remove %s: %s"
msgstr "%s: Kan nie %s lees nie: %s\n"

#: sed/utils.c:144
#, fuzzy, c-format
msgid "couldn't open file %s: %s"
msgstr "Kon nie die lêer %s oopmaak nie: %s"

#: sed/utils.c:167
#, fuzzy, c-format
msgid "couldn't attach to %s: %s"
msgstr "kon nie %d item na %s skryf nie: %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] "kon nie %d item na %s skryf nie: %s"
msgstr[1] "kon nie %d items na %s skryf nie: %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
#, fuzzy, c-format
msgid "couldn't follow symlink %s: %s"
msgstr "Kon nie die lêer %s oopmaak nie: %s"

#: sed/utils.c:406
#, fuzzy, c-format
msgid "cannot stat %s: %s"
msgstr "%s: Kan nie %s lees nie: %s\n"

#: sed/utils.c:437
#, fuzzy, c-format
msgid "cannot rename %s: %s"
msgstr "%s: Kan nie %s lees nie: %s\n"

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

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

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

#: lib/regcomp.c:141
msgid "Invalid collation character"
msgstr "Ongeldige kollasiekarakter"

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

#: lib/regcomp.c:147
msgid "Trailing backslash"
msgstr "Sleep terugstreep"

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

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

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

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

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

#: lib/regcomp.c:165
msgid "Invalid range end"
msgstr "Ongeldige bereikseinde"

#: lib/regcomp.c:168
msgid "Memory exhausted"
msgstr "Geheue uitgeput"

#: lib/regcomp.c:171
msgid "Invalid preceding regular expression"
msgstr "Ongeldige vorige regex"

#: lib/regcomp.c:174
msgid "Premature end of regular expression"
msgstr "Premature einde vir regex"

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

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

#: lib/regcomp.c:705
msgid "No previous regular expression"
msgstr "Geen vorige regex nie"

#~ msgid "Called savchar() with unexpected pushback (%x)"
#~ msgstr "Het savchar() met onverwagte agterstoot (%x) geroep"

#~ msgid "INTERNAL ERROR: bad address type"
#~ msgstr "INTERNE FOUT: slegte adrestipe"

#~ msgid "INTERNAL ERROR: Bad cmd %c"
#~ msgstr "INTERNE FOUT: Swak instruksie %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 ""
#~ "Gebruik: %s [OPTION]... {skrip-indien-absoluut-geen-ander-skrip} "
#~ "[inset_dokument]...\n"
#~ "\n"
#~ "  -n, --quiet, --silent\n"
#~ "                 onderdruk outomatiese druk van patroonruimte\n"
#~ "  -e script, --expression=script\n"
#~ "                 voeg skrip by die instruksie wat uitgevoer moet word\n"
#~ "  -f script-file, --file=script-file\n"
#~ "                 voer die inhoud van die skriplêer by die instruksies wat "
#~ "uitgevoer moet word\n"
#~ "  -i[agtervoegsel], --in-place[=agtervoegsel]\n"
#~ "                 redigeer dokumente inplek (maak rugsteunkopieë as "
#~ "agtervoegsel voorsien word)\n"
#~ "  -l N, --line-length=N\n"
#~ "                 spesifiseer die gewensde lynvoulengte vir die `l' "
#~ "instruksie\n"
#~ "  -r, --regexp-extended\n"
#~ "                 gebruik uitgebreide regex in die skrip\n"
#~ "%s  -s, --separate\n"
#~ "                 beskou dokumente as alleenstaande instede van 'n "
#~ "kontinuum\n"
#~ "  -u, --unbuffered\n"
#~ "                 laai minimale hoeveelheid data uit die insetdokumente en "
#~ "spoel\n"
#~ "                 die uitsetbuffers meer gereeld\n"
#~ "      --help     vertoon hierdie hulpboodskap en stop\n"
#~ "  -V, --version  vertoon weergaweinligting en stop\n"
#~ "\n"
#~ "Indien geen -e, --expression, -f, of --file opsie voorsien word nie, dan "
#~ "sal die eerste\n"
#~ "nieopsieparameter as sedskrip aanvaar word ter interpretasie.  Alle\n"
#~ "oorblewende parameters is name van insetdokumente; indien geen "
#~ "insetdokumente\n"
#~ "voorsien word nie, word standaardinset gelees.\n"
#~ "\n"
#~ "\n"

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

#~ msgid ""
#~ "based on GNU sed version 3.02.80\n"
#~ "\n"
#~ msgstr ""
#~ "gebaseer op GNU sed weergawe 3.02.80\n"
#~ "\n"

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

#~ msgid ""
#~ "%s\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"
#~ "Hierdie is vrye sagteware; raadpleeg die bronkode vir "
#~ "kopiëringsinligting. Daar is GEEN\n"
#~ "waarborg nie; nie eens vir BRUIKBAARHEID of GESKIKHEID VIR 'n SPESIFIEK "
#~ "DOEL,\n"
#~ "binne regsperke nie.\n"
