# La teksto por la mesaĝoj de la programo "gettext".
# Copyright (C) 2006, 2007, 2013, 2016, 2019, 2020 Free Software Foundation, Inc.
# This file is distributed under the same license as the gettext package.
# D. Dale Gulledge <dsplat@rochester.rr.com> 2006.
# Edmund GRIMLEY EVANS <edmundo@rano.org> 2006, 2007.
# Felipe Castro <fefcas@gmail.com>, 2013, 2016, 2019, 2020.
#
msgid ""
msgstr ""
"Project-Id-Version: gettext-runtime 0.20.2\n"
"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n"
"POT-Creation-Date: 2020-07-26 21:56+0200\n"
"PO-Revision-Date: 2020-05-30 15:55-0300\n"
"Last-Translator: Felipe Castro <fefcas@gmail.com>\n"
"Language-Team: Esperanto <translation-team-eo@lists.sourceforge.net>\n"
"Language: eo\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"
"X-Generator: Poedit 2.3.1\n"

#: gnulib-lib/closeout.c:66
msgid "write error"
msgstr "skriberaro"

#: gnulib-lib/error.c:195
msgid "Unknown system error"
msgstr "Nekonata sistemeraro"

#: gnulib-lib/getopt.c:278
#, c-format
msgid "%s: option '%s%s' is ambiguous\n"
msgstr "%s: la modifilo '%s%s' estas plursenca\n"

#: gnulib-lib/getopt.c:284
#, c-format
msgid "%s: option '%s%s' is ambiguous; possibilities:"
msgstr "%s: la modifilo '%s%s' estas plursenca; ebloj:"

#: gnulib-lib/getopt.c:319
#, c-format
msgid "%s: unrecognized option '%s%s'\n"
msgstr "%s: nerekonata modifilo '%s%s'\n"

#: gnulib-lib/getopt.c:345
#, c-format
msgid "%s: option '%s%s' doesn't allow an argument\n"
msgstr "%s: la modifilo '%s%s' ne prenas argumenton\n"

#: gnulib-lib/getopt.c:360
#, c-format
msgid "%s: option '%s%s' requires an argument\n"
msgstr "%s: la modifilo '%s%s' bezonas argumenton\n"

#: gnulib-lib/getopt.c:621
#, c-format
msgid "%s: invalid option -- '%c'\n"
msgstr "%s: nevalida modifilo -- '%c'\n"

#: gnulib-lib/getopt.c:636 gnulib-lib/getopt.c:682
#, c-format
msgid "%s: option requires an argument -- '%c'\n"
msgstr "%s: la modifilo bezonas argumenton -- '%c'\n"

#: gnulib-lib/xmalloc.c:38
#, c-format
msgid "memory exhausted"
msgstr "memoro elĉerpita"

#: src/envsubst.c:110 src/gettext.c:135 src/ngettext.c:124
#, c-format, no-wrap
msgid ""
"Copyright (C) %s Free Software Foundation, Inc.\n"
"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 ""
"Kopirajto © %s Free Software Foundation, Inc.\n"
"Rajtigilo GPLv3+: GNU GPL, versio 3 aŭ posta <%s>\n"
"Ĉi tio estas libera programo; vi estas libera ŝanĝi kaj redistribui ĝin.\n"
"Estas NENIA GARANTIO, ĝis la grado leĝe permesata.\n"

#: src/envsubst.c:116 src/gettext.c:141 src/ngettext.c:130
#, c-format
msgid "Written by %s.\n"
msgstr "Verkita de %s.\n"

#. This is a proper name. See the gettext manual, section Names.
#: src/envsubst.c:116
msgid "Bruno Haible"
msgstr "Bruno Haible"

#: src/envsubst.c:125 src/gettext.c:159 src/ngettext.c:142
#, c-format
msgid "too many arguments"
msgstr "tro da argumentoj"

#: src/envsubst.c:136 src/gettext.c:169 src/ngettext.c:154
#, c-format
msgid "missing arguments"
msgstr "argumentoj mankas"

#: src/envsubst.c:174 src/gettext.c:246 src/ngettext.c:211
#, c-format
msgid "Try '%s --help' for more information.\n"
msgstr "Provu '%s --help' por pli da informoj.\n"

#: src/envsubst.c:179
#, c-format, no-wrap
msgid "Usage: %s [OPTION] [SHELL-FORMAT]\n"
msgstr "Uzado: %s [MODIFILO] [ŜEL-FORMATO]\n"

#: src/envsubst.c:184
#, c-format, no-wrap
msgid "Substitutes the values of environment variables.\n"
msgstr "Substituas la valorojn de mediaj variabloj.\n"

#: src/envsubst.c:188
#, c-format, no-wrap
msgid "Operation mode:\n"
msgstr "Funkcia reĝimo:\n"

#: src/envsubst.c:191
#, c-format, no-wrap
msgid "  -v, --variables             output the variables occurring in SHELL-FORMAT\n"
msgstr "  -v, --variables             eligi la variablojn aperantajn en ŜEL-FORMATO\n"

#: src/envsubst.c:195 src/gettext.c:275 src/ngettext.c:241
#, c-format, no-wrap
msgid "Informative output:\n"
msgstr "Informa eligo:\n"

#: src/envsubst.c:198
#, c-format, no-wrap
msgid "  -h, --help                  display this help and exit\n"
msgstr "  -h, --help                  montri ĉi tiun helpon kaj eligi\n"

#: src/envsubst.c:201
#, c-format, no-wrap
msgid "  -V, --version               output version information and exit\n"
msgstr "  -V, --version               eligi informon pri la versio kaj eliri\n"

#: src/envsubst.c:205
#, c-format, no-wrap
msgid ""
"In normal operation mode, standard input is copied to standard output,\n"
"with references to environment variables of the form $VARIABLE or ${VARIABLE}\n"
"being replaced with the corresponding values.  If a SHELL-FORMAT is given,\n"
"only those environment variables that are referenced in SHELL-FORMAT are\n"
"substituted; otherwise all environment variables references occurring in\n"
"standard input are substituted.\n"
msgstr ""
"En normala funkciado, la normala enigo estas kopiata al la normala eligo,\n"
"kun referencoj al mediaj variabloj kun la formo $VARIABLO aŭ ${VARIABLO}\n"
"anstataŭigitaj per la respondaj valoroj. Se SHELL-FORMAT estas specifita,\n"
"nur tiuj mediaj variabloj, kiuj estas referencitaj en SHELL-FORMAT, estas\n"
"substituataj; alia ĉiuj referencoj al mediaj variabloj aperantaj en la\n"
"normala enigo estas substituataj.\n"

#: src/envsubst.c:214
#, c-format, no-wrap
msgid ""
"When --variables is used, standard input is ignored, and the output consists\n"
"of the environment variables that are referenced in SHELL-FORMAT, one per line.\n"
msgstr ""
"Kiam --variables estas specifita, la normala enigo estas ignorata, kaj la\n"
"eligo konsistas el la mediaj variabloj referencitaj en SHELL-FORMAT,\n"
"unu en ĉiu linio.\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/envsubst.c:223 src/gettext.c:299 src/ngettext.c:262
#, c-format
msgid ""
"Report bugs in the bug tracker at <%s>\n"
"or by email to <%s>.\n"
msgstr ""
"Raportu misojn al la sekvilo ĉe <%s>\n"
"aŭ per retpoŝto al <%s.\n"
"Raportu traduk-misojn al <translation-team-eo@lists.sourceforge.net>\n"

#: src/envsubst.c:451
#, c-format
msgid "error while reading \"%s\""
msgstr "eraro dum legado de \"%s\""

#: src/envsubst.c:451
msgid "standard input"
msgstr "normala enigo"

#. This is a proper name. See the gettext manual, section Names.
#: src/gettext.c:141 src/ngettext.c:130
msgid "Ulrich Drepper"
msgstr "Ulrich Drepper"

#: src/gettext.c:251
#, c-format, no-wrap
msgid ""
"Usage: %s [OPTION] [[TEXTDOMAIN] MSGID]\n"
"or:    %s [OPTION] -s [MSGID]...\n"
msgstr ""
"Uzado: %s [MODIFILO] [[TEXTDOMAIN] MSGID]\n"
"aŭ:    %s [MODIFILO] -s [MSGID]...\n"

#: src/gettext.c:257
#, c-format, no-wrap
msgid "Display native language translation of a textual message.\n"
msgstr "Montru lokalingvan tradukon de teksta mesaĝo.\n"

#: src/gettext.c:261
#, c-format, no-wrap
msgid "  -d, --domain=TEXTDOMAIN   retrieve translated messages from TEXTDOMAIN\n"
msgstr "  -d, --domain=TEKSTDOMAJNO elpreni tradukitajn mesaĵojn el TEKSTDOMAJNO\n"

#: src/gettext.c:263 src/ngettext.c:228
#, c-format
msgid "  -c, --context=CONTEXT     specify context for MSGID\n"
msgstr "  -c, --context=KUNTEKSTO   indiki kuntekston por MSGID\n"

#: src/gettext.c:265 src/ngettext.c:230
#, c-format
msgid "  -e                        enable expansion of some escape sequences\n"
msgstr ""
"  -e                        ebligi disvolvigon de kelkaj eskapaj sekvoj\n"

#: src/gettext.c:267
#, c-format
msgid "  -n                        suppress trailing newline\n"
msgstr "  -n                        forigi vostan novlinion\n"

#: src/gettext.c:269 src/ngettext.c:232
#, c-format
msgid "  -E                        (ignored for compatibility)\n"
msgstr "  -E                        (preteratentite pro retrokongruo)\n"

#: src/gettext.c:271
#, c-format
msgid ""
"  [TEXTDOMAIN] MSGID        retrieve translated message corresponding\n"
"                            to MSGID from TEXTDOMAIN\n"
msgstr ""
"  [TEKSTDOMAJNO] MSGID      elpreni tradukitan mesaĝon korespondan\n"
"                            al MSGID el TEKSTDOMAJNO\n"

#: src/gettext.c:277 src/ngettext.c:243
#, c-format
msgid "  -h, --help                display this help and exit\n"
msgstr "  -h, --help                montri ĉi tiun helpon kaj eligi\n"

#: src/gettext.c:279 src/ngettext.c:245
#, c-format
msgid "  -V, --version             display version information and exit\n"
msgstr "  -V, --version             eligi informon pri la versio kaj eliri\n"

#: src/gettext.c:283
#, c-format, no-wrap
msgid ""
"If the TEXTDOMAIN parameter is not given, the domain is determined from the\n"
"environment variable TEXTDOMAIN.  If the message catalog is not found in the\n"
"regular directory, another location can be specified with the environment\n"
"variable TEXTDOMAINDIR.\n"
"When used with the -s option the program behaves like the 'echo' command.\n"
"But it does not simply copy its arguments to stdout.  Instead those messages\n"
"found in the selected catalog are translated.\n"
"Standard search directory: %s\n"
msgstr ""
"Se la parametro TEXTDOMAIN ne estas donita, la media variable TEXTDOMAIN\n"
"estas uzata. Se la mesaĝkatalogo ne estas trovita en la kutima dosierujo,\n"
"alia dosierujo povas esti specifita per la media variablo TEXTDOMAINDIR.\n"
"Uzate kun la modifilo -s, la programo kondutas kiel la komando 'echo'.\n"
"Tamen, ĝi ne simple kopias siajn argumentojn al la normala eligo;\n"
"anstataŭe, tiuj mesaĝoj trovitaj en la elektita katalogo estas tradukataj.\n"
"Normala serĉdosierujo: %s\n"

#: src/ngettext.c:216
#, c-format, no-wrap
msgid "Usage: %s [OPTION] [TEXTDOMAIN] MSGID MSGID-PLURAL COUNT\n"
msgstr "Uzado: %s [MODIFILO] [TEXTDOMAIN] MSGID MSGID-PLURAL COUNT\n"

#: src/ngettext.c:221
#, c-format, no-wrap
msgid ""
"Display native language translation of a textual message whose grammatical\n"
"form depends on a number.\n"
msgstr ""
"Montri lokalingvan tradukon de teksta mesaĝo, kies gramatika formo\n"
"dependas de nombro.\n"

#: src/ngettext.c:226
#, c-format, no-wrap
msgid "  -d, --domain=TEXTDOMAIN   retrieve translated message from TEXTDOMAIN\n"
msgstr "  -d, --domain=TEKSTDOMAJNO elpreni tradukitan mesaĝon el TEKSTDOMAJNO\n"

#: src/ngettext.c:234
#, c-format
msgid ""
"  [TEXTDOMAIN]              retrieve translated message from TEXTDOMAIN\n"
msgstr ""
"  [TEKSTDOMAJNO]            elpreni tradukitan mesaĝon el TEKSTDOMAJNO\n"

#: src/ngettext.c:236
#, c-format
msgid ""
"  MSGID MSGID-PLURAL        translate MSGID (singular) / MSGID-PLURAL "
"(plural)\n"
msgstr ""
"  MSGID MSGID-PLURAL        traduki MSGID (ununura) / MSGID-PLURAL "
"(plurala)\n"

#: src/ngettext.c:238
#, c-format
msgid ""
"  COUNT                     choose singular/plural form based on this value\n"
msgstr ""
"  NOMBRO                    elekti ununuran/pluralan formon surbaze de tiu "
"ĉi valoro\n"

#: src/ngettext.c:249
#, c-format, no-wrap
msgid ""
"If the TEXTDOMAIN parameter is not given, the domain is determined from the\n"
"environment variable TEXTDOMAIN.  If the message catalog is not found in the\n"
"regular directory, another location can be specified with the environment\n"
"variable TEXTDOMAINDIR.\n"
"Standard search directory: %s\n"
msgstr ""
"Se la parametro TEXTDOMAIN ne estas donita, la media variable TEXTDOMAIN\n"
"estas uzata. Se la mesaĝkatalogo ne estas trovita en la kutima dosierujo,\n"
"alia dosierujo povas esti specifita per la media variablo TEXTDOMAINDIR.\n"
"Normala serĉdosierujo: %s\n"

#~ msgid "Report bugs to <bug-gnu-gettext@gnu.org>.\n"
#~ msgstr "Raportu cimojn al <bug-gnu-gettext@gnu.org>.\n"

#~ msgid "%s: option '--%s' doesn't allow an argument\n"
#~ msgstr "%s: la modifilo '--%s' ne prenas argumenton\n"

#~ msgid "%s: unrecognized option '--%s'\n"
#~ msgstr "%s: nerekonata modifilo '--%s'\n"

#~ msgid "%s: option '-W %s' is ambiguous\n"
#~ msgstr "%s: la modifilo '-W %s' estas plursenca\n"

#~ msgid "%s: option '-W %s' doesn't allow an argument\n"
#~ msgstr "%s: la modifilo '-W %s' ne prenas argumenton\n"

#~ msgid "%s: option '-W %s' requires an argument\n"
#~ msgstr "%s: la modifilo '-W %s' bezonas argumenton\n"

#~ msgid ""
#~ "  -d, --domain=TEXTDOMAIN   retrieve translated messages from TEXTDOMAIN\n"
#~ "  -e                        enable expansion of some escape sequences\n"
#~ "  -E                        (ignored for compatibility)\n"
#~ "  -h, --help                display this help and exit\n"
#~ "  -n                        suppress trailing newline\n"
#~ "  -V, --version             display version information and exit\n"
#~ "  [TEXTDOMAIN] MSGID        retrieve translated message corresponding\n"
#~ "                            to MSGID from TEXTDOMAIN\n"
#~ msgstr ""
#~ "  -d, --domain=TEXTDOMAIN   retrieve translated messages from TEXTDOMAIN\n"
#~ "  -e                        ŝalti tradukadon de iuj eskapokodoj\n"
#~ "  -E                        (ignorata pro kongrueco)\n"
#~ "  -h, --help                montri ĉi tiun helpon kaj eliri\n"
#~ "  -n                        ne eligi finan linifinon\n"
#~ "  -V, --version             montri informon pri la versio kaj eliri\n"
#~ "  [TEXTDOMAIN] MSGID        trovi tradukitan mesaĝon, kiu respondas al\n"
#~ "                            MSGID el TEXTDOMAIN\n"

#~ msgid ""
#~ "  -d, --domain=TEXTDOMAIN   retrieve translated message from TEXTDOMAIN\n"
#~ "  -e                        enable expansion of some escape sequences\n"
#~ "  -E                        (ignored for compatibility)\n"
#~ "  -h, --help                display this help and exit\n"
#~ "  -V, --version             display version information and exit\n"
#~ "  [TEXTDOMAIN]              retrieve translated message from TEXTDOMAIN\n"
#~ "  MSGID MSGID-PLURAL        translate MSGID (singular) / MSGID-PLURAL "
#~ "(plural)\n"
#~ "  COUNT                     choose singular/plural form based on this "
#~ "value\n"
#~ msgstr ""
#~ "  -d, --domain=TEXTDOMAIN   trovi tradukitan mesaĝon el TEXTDOMAIN\n"
#~ "  -e                        ŝalti tradukadon de iuj eskapokodoj\n"
#~ "  -E                        (ignorata pro kongrueco)\n"
#~ "  -h, --help                montri ĉi tiun helpon kaj eliri\n"
#~ "  -V, --version             montri informon pri la versio kaj eliri\n"
#~ "  [TEXTDOMAIN]              trovi tradukitan mesaĝon el TEXTDOMAIN\n"
#~ "  MSGID MSGID-PLURAL        traduki MSGID (singulare) / MSGID-PLURAL "
#~ "(plurale)\n"
#~ "  COUNT                     elekti singularon/pluralon per ĉi tiu valoro\n"

#~ msgid "%s: illegal option -- %c\n"
#~ msgstr "%s: nepermesata modifilo -- %c\n"
