# Irish translations for popt.
# This file is put in the public domain.
# Kevin Scannell <kscanne@gmail.com>, 2007.
#
msgid ""
msgstr ""
"Project-Id-Version: popt 1.14\n"
"Report-Msgid-Bugs-To: <popt-devel@rpm5.org>\n"
"POT-Creation-Date: 2010-02-17 13:35-0500\n"
"PO-Revision-Date: 2008-04-10 06:21-0500\n"
"Last-Translator: Kevin Scannell <kscanne@gmail.com>\n"
"Language-Team: Irish <gaeilge-gnulinux@lists.sourceforge.net>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

#: popt.c:47
msgid "unknown errno"
msgstr "errno anaithnid"

#: popt.c:1290
#, c-format
msgid "option type (%u) not implemented in popt\n"
msgstr "níl an cineál rogha seo (%u) ar fáil i popt\n"

#: popt.c:1711
msgid "missing argument"
msgstr "argóint ar iarraidh"

#: popt.c:1713
msgid "unknown option"
msgstr "rogha anaithnid"

#: popt.c:1715
msgid "mutually exclusive logical operations requested"
msgstr "iarradh oibríochtaí loighciúla comheisiacha"

#: popt.c:1717
msgid "opt->arg should not be NULL"
msgstr "níor chóir rogha->arg a bheith NULL"

#: popt.c:1719
msgid "aliases nested too deeply"
msgstr "ailiasanna neadaithe ródhomhain"

#: popt.c:1721
msgid "error in parameter quoting"
msgstr "earráid agus paraiméadar á chur faoi chomharthaí athfhriotail"

#: popt.c:1723
msgid "invalid numeric value"
msgstr "luach neamhbhailí uimhriúil"

#: popt.c:1725
msgid "number too large or too small"
msgstr "uimhir rómhór nó róbheag"

#: popt.c:1727
msgid "memory allocation failed"
msgstr "theip ar dháileadh na cuimhne"

#: popt.c:1729
msgid "config file failed sanity test"
msgstr ""

#: popt.c:1733
msgid "unknown error"
msgstr "earráid anaithnid"

#: popthelp.c:75 popthelp.c:86
msgid "Show this help message"
msgstr "Taispeáin an chabhair seo"

#: popthelp.c:76 popthelp.c:87
msgid "Display brief usage message"
msgstr "Taispeáin beagán eolais faoin úsáid"

#: popthelp.c:90
msgid "Display option defaults in message"
msgstr "Taispeáin luachanna réamhshocraithe na roghanna sa teachtaireacht"

# Terminate not a verb here
#: popthelp.c:92
msgid "Terminate options"
msgstr "Roghanna scortha"

#: popthelp.c:191
msgid "Help options:"
msgstr "Roghanna cabhracha:"

#: popthelp.c:192
msgid "Options implemented via popt alias/exec:"
msgstr "Roghanna a cuireadh i bhfeidhm trí ailias/exec popt:"

#: popthelp.c:200
msgid "NONE"
msgstr "NEAMHNÍ"

#: popthelp.c:202
msgid "VAL"
msgstr "LUACH"

#: popthelp.c:206
msgid "INT"
msgstr "INT"

#: popthelp.c:207
msgid "SHORT"
msgstr ""

#: popthelp.c:208
msgid "LONG"
msgstr "LONG"

#: popthelp.c:209
msgid "LONGLONG"
msgstr "LONGLONG"

#: popthelp.c:210
msgid "STRING"
msgstr "STRING"

#: popthelp.c:211
msgid "FLOAT"
msgstr "FLOAT"

#: popthelp.c:212
msgid "DOUBLE"
msgstr "DOUBLE"

#: popthelp.c:215
msgid "ARG"
msgstr "ARG"

#: popthelp.c:649
msgid "Usage:"
msgstr "Úsáid:"

#: popthelp.c:672
msgid "[OPTION...]"
msgstr "[ROGHA...]"
