# 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: 2009-06-27 15:08+0200\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"
"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
#, fuzzy
msgid "multiple `!'s"
msgstr "Meervoudige `!'s"

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

#: sed/compile.c:163
#, 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:164
#, fuzzy
msgid "unmatched `{'"
msgstr "Ongepaarde `{'"

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#: sed/compile.c:1665
#, 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:709
#, c-format
msgid "%s: can't read %s: %s\n"
msgstr "%s: Kan nie %s lees nie: %s\n"

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

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

#: 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
#, fuzzy, c-format
msgid "couldn't open temporary file %s: %s"
msgstr "Kon nie tydelike lêer %s oopmaak nie: %s"

#: sed/execute.c:1317 sed/execute.c:1497
msgid "error in subprocess"
msgstr "fout in subproses"

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#: sed/sed.c:146
#, 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:151
#, c-format
msgid ""
"  -s, --separate\n"
"                 consider files as separate rather than as a single "
"continuous\n"
"                 long stream.\n"
msgstr ""

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

#: sed/sed.c:157
#, c-format
msgid "      --help     display this help and exit\n"
msgstr ""

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

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

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

#: sed/sed.c:316
#, fuzzy, c-format
msgid ""
"based on GNU sed version %s\n"
"\n"
msgstr ""
"gebaseer op GNU sed weergawe 3.02.80\n"
"\n"

#: sed/sed.c:318
#, c-format
msgid "GNU sed version %s\n"
msgstr "GNU sed weergawe %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"
"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"

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

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

#: sed/utils.c:186
#, fuzzy, c-format
msgid "couldn't attach to %s: %s"
msgstr "kon nie %d item na %s skryf nie: %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] "kon nie %d item na %s skryf nie: %s"
msgstr[1] "kon nie %d items na %s skryf nie: %s"

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#: lib/regcomp.c:703
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"
