# Irish translations for sed
# Copyright (C) 2003, 2004 Free Software Foundation, Inc.
# Kevin Patrick Scannell <scannell@SLU.EDU>, 2003, 2004, 2006, 2008.
#
msgid ""
msgstr ""
"Project-Id-Version: sed 4.2.0\n"
"Report-Msgid-Bugs-To: bug-gnu-utils@gnu.org\n"
"POT-Creation-Date: 2012-12-22 14:36+0100\n"
"PO-Revision-Date: 2008-01-13 11:04-0500\n"
"Last-Translator: Kevin Scannell <kscanne@gmail.com>\n"
"Language-Team: Irish <gaeilge-gnulinux@lists.sourceforge.net>\n"
"Language: ga\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=5; plural=n==1 ? 0 : n==2 ? 1 : (n>2 && n<7) ? 2 :"
"(n>6 && n<11) ? 3 : 4;\n"

#: sed/compile.c:144
msgid "multiple `!'s"
msgstr "`!'-anna iomadúla"

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

#: sed/compile.c:146
msgid "invalid usage of +N or ~N as first address"
msgstr "ní féidir +N nó ~N a úsáid mar an chéad seoladh"

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

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

#: sed/compile.c:149
msgid "extra characters after command"
msgstr "carachtair breise i ndiaidh an ordaithe"

#: sed/compile.c:150
msgid "expected \\ after `a', `c' or `i'"
msgstr "bhíothas ag súil le \\ i ndiaidh `a', `c', nó `i'"

#: sed/compile.c:151
msgid "`}' doesn't want any addresses"
msgstr "Níl fáilte roimh sheoltaí le `}'"

#: sed/compile.c:152
msgid ": doesn't want any addresses"
msgstr "Níl fáilte roimh sheoltaí le `:'"

#: sed/compile.c:153
msgid "comments don't accept any addresses"
msgstr "níl fáilte roimh sheoltaí le nótaí tráchta"

#: sed/compile.c:154
msgid "missing command"
msgstr "ordú ar iarraidh"

#: sed/compile.c:155
msgid "command only uses one address"
msgstr "ní úsáidtear an t-ordú ach seoladh amháin"

#: sed/compile.c:156
msgid "unterminated address regex"
msgstr "seoladh regex gan chríochnú"

#: sed/compile.c:157
msgid "unterminated `s' command"
msgstr "ordú `s' gan chríochnú"

#: sed/compile.c:158
msgid "unterminated `y' command"
msgstr "ordú `y' gan chríochnú"

#: sed/compile.c:159
msgid "unknown option to `s'"
msgstr "rogha anaithnid i ndiaidh `s'"

#: sed/compile.c:160
msgid "multiple `p' options to `s' command"
msgstr "an iomarca roghanna `p' i ndiaidh `s'"

#: sed/compile.c:161
msgid "multiple `g' options to `s' command"
msgstr "an iomarca roghanna `g' i ndiaidh `s'"

#: sed/compile.c:162
msgid "multiple number options to `s' command"
msgstr "an iomarca roghanna uimhriúla i ndiaidh `s'"

#: sed/compile.c:163
msgid "number option to `s' command may not be zero"
msgstr "ní cheadaítear nialas mar rogha uimhriúil leis an ordú `s'"

#: sed/compile.c:164
msgid "strings for `y' command are different lengths"
msgstr "níl aon fhad amháin ar na teaghráin leis an ordú `y'"

#: sed/compile.c:165
msgid "delimiter character is not a single-byte character"
msgstr "tá an teormharcóir ina charachtar ilbheart"

#: sed/compile.c:166
msgid "expected newer version of sed"
msgstr "bhíothas ag súil le leagan `sed' níos úire"

#: sed/compile.c:167
msgid "invalid usage of line address 0"
msgstr "ní féidir an seoladh líne 0 a úsáid"

#: sed/compile.c:168
#, c-format
msgid "unknown command: `%c'"
msgstr "ordú anaithnid: `%c'"

#: sed/compile.c:169
#, fuzzy
msgid "incomplete command"
msgstr "ordú ar iarraidh"

#: sed/compile.c:192
#, c-format
msgid "%s: file %s line %lu: %s\n"
msgstr "%s: comhad %s líne %lu: %s\n"

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

#: sed/compile.c:1657
#, c-format
msgid "can't find label for jump to `%s'"
msgstr "níl aon fháil ar an lipéad `%s' don léim"

#: sed/execute.c:595
#, c-format
msgid "%s: can't read %s: %s\n"
msgstr "%s: ní féidir %s a léamh: %s\n"

# Irish is nice this way, no initial mutation on 'rud'! -- KPS
# Include all three b/c I'm using template version of "Plural-Forms"
#: sed/execute.c:624
#, c-format
msgid "couldn't edit %s: is a terminal"
msgstr "níorbh fhéidir %s a chur in eagar; is teirminéal é"

#: sed/execute.c:629
#, c-format
msgid "couldn't edit %s: not a regular file"
msgstr "níorbh fhéidir %s a chur in eagar: ní gnáthchomhad é"

#: 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
#, c-format
msgid "couldn't open temporary file %s: %s"
msgstr "níorbh fhéidir an comhad sealadach %s a oscailt: %s"

#: sed/execute.c:1193 sed/execute.c:1373
msgid "error in subprocess"
msgstr "earráid i bhfo-phróiseas"

#: sed/execute.c:1195
msgid "option `e' not supported"
msgstr "níl an rogha `e' ar fáil"

#: sed/execute.c:1375
msgid "`e' command not supported"
msgstr "níl an t-ordú `e' ar fáil"

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

#: sed/regexp.c:39
msgid "no previous regular expression"
msgstr "níl aon slonn ionadaíochta roimhe seo"

#: sed/regexp.c:40
msgid "cannot specify modifiers on empty regexp"
msgstr "ní féidir mionathraitheoirí a shonrú le slonn bán"

#: sed/regexp.c:129
#, c-format
msgid "invalid reference \\%d on `s' command's RHS"
msgstr "tagairt neamhbhailí \\%d ar dheis ordú `s'"

#: 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 ""
"Seol tuairiscí fabhtanna chuig: %s .\n"
"Cuir an focal ``%s'' áit éigin sa líne ``Subject:'' le do thoil.\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"
"                 bain úsáid as sloinn ionadaíochta atá ag Perl 5.\n"

#: sed/sed.c:104
#, c-format
msgid ""
"Usage: %s [OPTION]... {script-only-if-no-other-script} [input-file]...\n"
"\n"
msgstr ""
"Úsáid: %s [ROGHA]... {script-mura-bhfuil-script-eile} [inchomhad]...\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"
"                 stop priontáil uathoibríoch den spás patrúin\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"
"                 cuir an script leis na horduithe le rith\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 comhad-script, --file=comhad-script\n"
"                 cuir na línte i `comhad-script' leis na horduithe le rith\n"

#: sed/sed.c:115
#, c-format
msgid ""
"  --follow-symlinks\n"
"                 follow symlinks when processing in place\n"
msgstr ""
"  --follow-symlinks\n"
"                 lean naisc shiombalacha má phróiseáiltear an comhad san\n"
"                  áit a bhfuil sé\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[IARMHÍR], --in-place[=IARMHÍR]\n"
"                 cuir eagar ar chomhaid san áit a bhfuil siad (agus déan\n"
"                 cúltaca má thugtar IARMHÍR)\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"
"                 oscail comhaid sa mhód dénártha (ní phróiseáiltear CR"
"+LFanna\n"
"                    ar bhealach speisialta)\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 N, --line-length=N\n"
"                 ceap an fad timfhillte le haghaidh an ordaithe `l'\n"

#: sed/sed.c:126
#, c-format
msgid ""
"  --posix\n"
"                 disable all GNU extensions.\n"
msgstr ""
"  --posix\n"
"                 díchumasaigh gach feabhsúchán GNU.\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"
"                 úsáid sloinn ionadaíochta feabhsaithe sa 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"
"                 féach ar chomhaid ina leith seachas mar shruth leanúnach.\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"
"                 luchtaigh bloic bheaga ó na comhaid ionchuir agus "
"sruthlaigh\n"
"                 na maoláin aschuir níos minice\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     taispeáin an chabhair seo agus scoir\n"

#: sed/sed.c:142
#, c-format
msgid "      --version  output version information and exit\n"
msgstr "      --version  taispeáin eolas faoin leagan agus scoir\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"
"Mura bhfuil rogha -e, --expression, -f, nó --file ann, glacfar an chéad\n"
"argóint nach raibh ina rogha mar an script `sed' a léirmhíniú.  Tá gach\n"
"argóint eile an t-ainm do chomhad ionchuir; mura bhfuil comhad ann\n"
"léigh ón ghnáth-ionchur.\n"
"\n"

#: sed/utils.c:74 sed/utils.c:432
#, c-format
msgid "cannot remove %s: %s"
msgstr "ní féidir %s a scriosadh: %s"

#: sed/utils.c:144
#, c-format
msgid "couldn't open file %s: %s"
msgstr "níorbh fhéidir an comhad %s a oscailt: %s"

#: sed/utils.c:167
#, c-format
msgid "couldn't attach to %s: %s"
msgstr "níorbh fhéidir ceangal le %s: %s"

# Irish is nice this way, no initial mutation on 'rud'! -- KPS
# Include all three b/c I'm using template version of "Plural-Forms"
#: 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] "níorbh fhéidir %d rud a scríobh i %s: %s"
msgstr[1] "níorbh fhéidir %d rud a scríobh i %s: %s"
msgstr[2] "níorbh fhéidir %d rud a scríobh i %s: %s"
msgstr[3] "níorbh fhéidir %d rud a scríobh i %s: %s"
msgstr[4] "níorbh fhéidir %d rud a scríobh i %s: %s"

#: sed/utils.c:244 sed/utils.c:267
#, c-format
msgid "read error on %s: %s"
msgstr "earráid ag léamh %s: %s"

#: sed/utils.c:372
#, c-format
msgid "couldn't follow symlink %s: %s"
msgstr "níorbh fhéidir nasc siombalach %s a leanúint: %s"

#: sed/utils.c:406
#, c-format
msgid "cannot stat %s: %s"
msgstr "ní féidir %s a 'stat': %s"

#: sed/utils.c:437
#, c-format
msgid "cannot rename %s: %s"
msgstr "ní féidir %s a athainmniú: %s"

#: lib/regcomp.c:132
msgid "Success"
msgstr "D'éirigh leis"

#: lib/regcomp.c:135
msgid "No match"
msgstr "Níl a leithéid ann"

#: lib/regcomp.c:138
msgid "Invalid regular expression"
msgstr "Slonn ionadaíochta neamhbhailí"

#: lib/regcomp.c:141
msgid "Invalid collation character"
msgstr "Carachtar neamhbhailí comhordaithe"

#: lib/regcomp.c:144
msgid "Invalid character class name"
msgstr "Ainm neamhbhailí ar aicme charachtar"

#: lib/regcomp.c:147
msgid "Trailing backslash"
msgstr "Cúlslais ag deireadh"

# coinage - KPS
#: lib/regcomp.c:150
msgid "Invalid back reference"
msgstr "Cúltagairt neamhbhailí"

#: lib/regcomp.c:153
msgid "Unmatched [ or [^"
msgstr "[ nó [^ corr"

#: lib/regcomp.c:156
msgid "Unmatched ( or \\("
msgstr "( nó \\( corr"

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

#: lib/regcomp.c:162
msgid "Invalid content of \\{\\}"
msgstr "Ábhar neamhbhailí idir \\{\\}"

#: lib/regcomp.c:165
msgid "Invalid range end"
msgstr "Deireadh raoin neamhbhailí"

#: lib/regcomp.c:168
msgid "Memory exhausted"
msgstr "Cuimhne ídithe"

#: lib/regcomp.c:171
msgid "Invalid preceding regular expression"
msgstr "Is neamhbhailí an slonn ionadaíochta roimhe seo"

#: lib/regcomp.c:174
msgid "Premature end of regular expression"
msgstr "Deireadh le slonn ionadaíochta gan choinne"

#: lib/regcomp.c:177
msgid "Regular expression too big"
msgstr "Slonn ionadaíochta rómhór"

#: lib/regcomp.c:180
msgid "Unmatched ) or \\)"
msgstr ") nó \\) corr"

#: lib/regcomp.c:705
msgid "No previous regular expression"
msgstr "Níl aon slonn ionadaíochta roimhe seo"

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

#~ msgid ""
#~ "based on GNU sed version %s\n"
#~ "\n"
#~ msgstr ""
#~ "bunaithe ar GNU sed, leagan %s\n"
#~ "\n"

#~ msgid "GNU sed version %s\n"
#~ msgstr "GNU sed, leagan %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"
#~ "Is saorbhogearra an ríomhchlár seo; féach ar an bhunchód le haghaidh\n"
#~ "coinníollacha cóipeála.  Níl baránta AR BITH ann; go fiú níl baránta ann\n"
#~ "d'INDÍOLTACHT nó FEILIÚNACHT D'FHEIDHM AR LEITH, an oiread atá ceadaithe\n"
#~ "de réir dlí.\n"
