# Catalan messages for GNU gettext-runtime.
# Copyright (C) 2001, 2002, 2003, 2007, 2014, 2015 Free Software Foundation, Inc.
# This file is distributed under the same license as the gettext package.
#
# Ivan Vilata i Balaguer <ivan@selidor.net>, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2013, 2014, 2015.
#
# Sóc Ivan, aquestes són les convencions que adopte per a la 0.19-rc1:
#
# - Sempre que es puga s’usaran els caràcters adequats per al text en català:
#   l’apòstrof (’), ela geminada (l·l, L·L), cometes («, », “, ”, ‘, ’, en
#   aquest ordre de d’aparició), guionet (‐), guionet dur (‑), guió (—) i punts
#   suspensius (…).  Compte, perquè alguns dels caràcters anteriors no són els
#   que s’obtenen teclejant directament; vegeu
#   https://elvil.net/blog/ca/ortotipografia
# - Use 2 espais després d’un punt.
# - Missatges d’ajuda:
#   - Forma d’ús: …
#           o bé: …
#   - ARGUMENT_COMPOST, però ARGCOMP
#   - FILE(s) -> cada FITXER (si és possible)
#   - Cada línia de descripció d’una opció comença en la columna 24, i sempre es
#     manté com a mínim a 4 espais del nom de l’opció.  Quan l’opció arriba a la
#     columna 24, la descripció comença en la línia inferior.  Les descripcions
#     que no caben en una línia es parteixen i continuen en la columna 24 de la
#     línia següent.
#   - Les descripcions d’ítems que no són opcions es mantenen alineades a 4
#     espais de l’ítem més llarg del bloc.  Les que no caben en una línia es
#     parteixen i continuen en la mateixa columna on comencen.
#     - Excepció: ajudes de «pr», quin format vos agrada més?
# - Errors i avisos:
#   - no és igual «no es pot obrir» que «no s’ha pogut obrir»
#   - no és igual «s’està obrint X» que «en obrir X» (error)
#   - «avís:» comença amb minúscula, la cadena següent també
#   - sempre van en una sola línia, a no ser que els retorns importen; en
#     aquest cas, les noves línies comencen amb un caràcter de tabulació
# - VARIABLE_ENTORN, però «valor de variable»
# - Noms de funció: printf()
# - Noms de fitxer: «fitxer»
# - Noms d’opcions: «--opció=ARGUMENT»
# - El text com a molt arriba a la columna 78, amb el caràcter de nova línia en
#   la 79.  Les línies es parteixen de forma automàtica (no per a que quede
#   bonic, excepte quan quede realment horrend o porte a confusió).
# - Els missatges marcats com a multilínia només arriben fins a la columna 70.
#   A sovint contenen marques de format; en aquest cas s’hi inserta una nova
#   línia perquè no hi ha forma de saber com serà de llarga la línia.
#
# FIXME: Lots of strings should be marked «no-wrap», not only those which are
# split between lines in English, but also those which would need to be splitted
# in its translation into other languages (this includes lines describing single
# options).  Also strings used in multiline error and warning messages.  ivb
msgid ""
msgstr ""
"Project-Id-Version: gettext-runtime 0.19.4.73\n"
"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n"
"POT-Creation-Date: 2020-07-26 21:56+0200\n"
"PO-Revision-Date: 2015-06-24 18:49+0200\n"
"Last-Translator: Ivan Vilata i Balaguer <ivan@selidor.net>\n"
"Language-Team: Catalan <ca@dodds.net>\n"
"Language: ca\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"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#: gnulib-lib/closeout.c:66
msgid "write error"
msgstr "error d’escriptura"

# Amb el mateix format que els errors de la libc.  ivb
#: gnulib-lib/error.c:195
msgid "Unknown system error"
msgstr "Error desconegut del sistema"

#: gnulib-lib/getopt.c:278
#, fuzzy, c-format
#| msgid "%s: option '%s' is ambiguous\n"
msgid "%s: option '%s%s' is ambiguous\n"
msgstr "%s: l’opció «%s» és ambígua\n"

#: gnulib-lib/getopt.c:284
#, fuzzy, c-format
#| msgid "%s: option '%s' is ambiguous; possibilities:"
msgid "%s: option '%s%s' is ambiguous; possibilities:"
msgstr "%s: l’opció «%s» és ambígua; possibilitats:"

#: gnulib-lib/getopt.c:319
#, fuzzy, c-format
#| msgid "%s: unrecognized option '%c%s'\n"
msgid "%s: unrecognized option '%s%s'\n"
msgstr "%s: l’opció «%c%s» no és reconeguda\n"

#: gnulib-lib/getopt.c:345
#, fuzzy, c-format
#| msgid "%s: option '%c%s' doesn't allow an argument\n"
msgid "%s: option '%s%s' doesn't allow an argument\n"
msgstr "%s: l’opció «%c%s» no admet arguments\n"

#: gnulib-lib/getopt.c:360
#, fuzzy, c-format
#| msgid "%s: option '--%s' requires an argument\n"
msgid "%s: option '%s%s' requires an argument\n"
msgstr "%s: l’opció «--%s» necessita un argument\n"

#: gnulib-lib/getopt.c:621
#, c-format
msgid "%s: invalid option -- '%c'\n"
msgstr "%s: l’opció «%c» no és vàlida\n"

#: gnulib-lib/getopt.c:636 gnulib-lib/getopt.c:682
#, c-format
msgid "%s: option requires an argument -- '%c'\n"
msgstr "%s: l’opció «%c» necessita un argument\n"

#: gnulib-lib/xmalloc.c:38
#, c-format
msgid "memory exhausted"
msgstr "la memòria s’ha exhaurit"

#: src/envsubst.c:110 src/gettext.c:135 src/ngettext.c:124
#, fuzzy, c-format, no-wrap
#| msgid ""
#| "Copyright (C) %s Free Software Foundation, Inc.\n"
#| "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\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"
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 ""
"Copyright © %s Free Software Foundation, Inc.\n"
"GPLv3+: llicència GNU GPL ver. 3 o posterior <http://gnu.org/licenses/gpl.html>\n"
"Aquest és programari lliure: podeu modificar‐lo i redistribuir‐lo si voleu.\n"
"No hi ha CAP GARANTIA, en la mesura que ho permeta la llei.\n"

#: src/envsubst.c:116 src/gettext.c:141 src/ngettext.c:130
#, c-format
msgid "Written by %s.\n"
msgstr "Escrit per %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 "sobren arguments"

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

#: src/envsubst.c:174 src/gettext.c:246 src/ngettext.c:211
#, c-format
msgid "Try '%s --help' for more information.\n"
msgstr "Proveu «%s --help» per a obtenir més informació.\n"

# Molt més clar que l’original…  ivb
#: src/envsubst.c:179
#, c-format, no-wrap
msgid "Usage: %s [OPTION] [SHELL-FORMAT]\n"
msgstr "Forma d’ús: %s [OPCIÓ] [CADENA]…\n"

# No és literal però queda més clar.  ivb
#: src/envsubst.c:184
#, c-format, no-wrap
msgid "Substitutes the values of environment variables.\n"
msgstr "Substitueix variables d’entorn pels seus valors.\n"

#: src/envsubst.c:188
#, c-format, no-wrap
msgid "Operation mode:\n"
msgstr "Mode de funcionament:\n"

#: src/envsubst.c:191
#, c-format, no-wrap
msgid "  -v, --variables             output the variables occurring in SHELL-FORMAT\n"
msgstr "  -v, --variables      Mostra les variables que es troben a la CADENA.\n"

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

#: src/envsubst.c:198
#, c-format, no-wrap
msgid "  -h, --help                  display this help and exit\n"
msgstr "  -h, --help           Mostra aquesta ajuda i ix.\n"

#: src/envsubst.c:201
#, c-format, no-wrap
msgid "  -V, --version               output version information and exit\n"
msgstr "  -V, --version        Mostra informació sobre la versió i ix.\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 el mode normal de funcionament es copia l’entrada estàndard a l’eixida\n"
"estàndard, reemplaçant les referències a variables d’entorn amb la forma\n"
"«$VARIABLE» o «${VARIABLE}» per llurs valors.  Si s’especifica una CADENA,\n"
"només es substituiran les variables d’entorn referides en ella; altrament,\n"
"es substituiran totes les variables d’entorn que apareguen a l’entrada\n"
"estàndard.\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 ""
"En emprar l’opció «--variables», es descartarà l’entrada estàndard i l’eixida\n"
"consistirà en les variables referides en la CADENA, una per línia.\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 ""

#: src/envsubst.c:451
#, c-format
msgid "error while reading \"%s\""
msgstr "error en llegir «%s»"

#: src/envsubst.c:451
msgid "standard input"
msgstr "entrada estàndard"

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

# FIXME: The first syntax is badly described.  ivb
#: src/gettext.c:251
#, c-format, no-wrap
msgid ""
"Usage: %s [OPTION] [[TEXTDOMAIN] MSGID]\n"
"or:    %s [OPTION] -s [MSGID]...\n"
msgstr ""
"Forma d’ús: %s [OPCIÓ] [DOMINI_TEXTUAL] IDMSG\n"
"         o: %s [OPCIÓ] -s [IDMSG]…\n"

#: src/gettext.c:257
#, c-format, no-wrap
msgid "Display native language translation of a textual message.\n"
msgstr "Mostra la traducció a idioma natiu d’un missatge textual.\n"

#: src/gettext.c:261
#, c-format, no-wrap
msgid "  -d, --domain=TEXTDOMAIN   retrieve translated messages from TEXTDOMAIN\n"
msgstr ""

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

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

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

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

#: src/gettext.c:271
#, c-format
msgid ""
"  [TEXTDOMAIN] MSGID        retrieve translated message corresponding\n"
"                            to MSGID from TEXTDOMAIN\n"
msgstr ""

#: src/gettext.c:277 src/ngettext.c:243
#, fuzzy, c-format
#| msgid "  -h, --help                  display this help and exit\n"
msgid "  -h, --help                display this help and exit\n"
msgstr "  -h, --help           Mostra aquesta ajuda i ix.\n"

#: src/gettext.c:279 src/ngettext.c:245
#, fuzzy, c-format
#| msgid "  -V, --version               output version information and exit\n"
msgid "  -V, --version             display version information and exit\n"
msgstr "  -V, --version        Mostra informació sobre la versió i ix.\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 ""
"Si no s’especifica el paràmetre DOMINI_TEXTUAL, la variable d’entorn\n"
"TEXTDOMAIN determinarà el domini a emprar.  Si el catàleg de missatges no es\n"
"troba al directori habitual, es pot especificar una altra ubicació amb la\n"
"variable d’entorn TEXTDOMAINDIR.\n"
"Quan s’empra l’opció «-s» el programa es comporta com l’ordre «echo».  Però,\n"
"no només còpia els seus arguments en l’eixida estàndard, sinò que tradueix els\n"
"missatges que troba al catàleg seleccionat.\n"
"Directori estàndard de cerca: %s\n"

#: src/ngettext.c:216
#, c-format, no-wrap
msgid "Usage: %s [OPTION] [TEXTDOMAIN] MSGID MSGID-PLURAL COUNT\n"
msgstr "Forma d’ús: %s [OPCIÓ] [DOMINI_TEXTUAL] IDMSG IDMSG_PLURAL NOMBRE\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 ""
"Mostra la traducció a idioma natiu d’un missatge textual la forma gramatical\n"
"del qual depén del nombre.\n"

#: src/ngettext.c:226
#, c-format, no-wrap
msgid "  -d, --domain=TEXTDOMAIN   retrieve translated message from TEXTDOMAIN\n"
msgstr ""

#: src/ngettext.c:234
#, c-format
msgid ""
"  [TEXTDOMAIN]              retrieve translated message from TEXTDOMAIN\n"
msgstr ""

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

#: src/ngettext.c:238
#, c-format
msgid ""
"  COUNT                     choose singular/plural form based on this value\n"
msgstr ""

#: 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 ""
"Si no s’especifica el paràmetre DOMINI_TEXTUAL, la variable d’entorn\n"
"TEXTDOMAIN determinarà el domini a emprar.  Si el catàleg de missatges no es\n"
"troba al directori habitual, es pot especificar una altra ubicació amb la\n"
"variable d’entorn TEXTDOMAINDIR.\n"
"Directori estàndard de cerca: %s\n"

#, c-format
#~ msgid "%s: option '--%s' doesn't allow an argument\n"
#~ msgstr "%s: l’opció «--%s» no admet arguments\n"

#, c-format
#~ msgid "%s: unrecognized option '--%s'\n"
#~ msgstr "%s: l’opció «--%s» no és reconeguda\n"

#, c-format
#~ msgid "%s: option '-W %s' is ambiguous\n"
#~ msgstr "%s: l’opció «-W %s» és ambígua\n"

#, c-format
#~ msgid "%s: option '-W %s' doesn't allow an argument\n"
#~ msgstr "%s: l’opció «-W %s» no admet arguments\n"

#, c-format
#~ msgid "%s: option '-W %s' requires an argument\n"
#~ msgstr "%s: l’opció «-W %s» necessita un argument\n"

#~ msgid "Report bugs to <bug-gnu-gettext@gnu.org>.\n"
#~ msgstr "Informeu dels errors a <bug-gnu-gettext@gnu.org>.\n"

#, c-format, no-wrap
#~ 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=DOMINI_TEXTUAL\n"
#~ "                       Obté del DOMINI_TEXTUAL els missatges traduïts.\n"
#~ "  -e                   Habilita l’expansió d’algunes seqüències d’escapada.\n"
#~ "  -E                   (No es té en compte, s’accepta per compatibilitat).\n"
#~ "  -h, --help           Mostra aquesta ajuda i ix.\n"
#~ "  -n                   Elimina el caràcter de nova línia final.\n"
#~ "  -V, --version        Mostra informació sobre la versió i ix.\n"
#~ "  [DOMINI_TEXTUAL] IDMSG\n"
#~ "                       Obté del DOMINI_TEXTUAL el missatge traduït\n"
#~ "                       corresponent a l’IDMSG.\n"

#, c-format, no-wrap
#~ 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=DOMINI_TEXTUAL\n"
#~ "                       Obté del DOMINI_TEXTUAL els missatges traduïts.\n"
#~ "  -e                   Habilita l’expansió d’algunes seqüències d’escapada.\n"
#~ "  -E                   (No es té en compte, s’accepta per compatibilitat.)\n"
#~ "  -h, --help           Mostra aquesta ajuda i ix.\n"
#~ "  -V, --version        Mostra informació sobre la versió i ix.\n"
#~ "  [DOMINI_TEXTUAL]     Obté del DOMINI_TEXTUAL el missatge traduït.\n"
#~ "  IDMSG IDMSG_PLURAL   Tradueix IDMSG (singular) / IDMSG_PLURAL (plural).\n"
#~ "  NOMBRE               Escull la forma singular o la plural basant‐se en\n"
#~ "                       aquest valor.\n"
