# Spanish translation for gprof.
# Copyright (C) 2002 - 2020 Free Software Foundation, Inc.
# This file is distributed under the same license as the binutils package.
# Cristian Othón Martínez Vera <cfuga@cfuga.mx>, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012.
# Antonio Ceballos Roa <aceballos@gmail.com>, 2020
#
msgid ""
msgstr ""
"Project-Id-Version: gprof 2.33.90\n"
"Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
"POT-Creation-Date: 2020-01-18 14:04+0000\n"
"PO-Revision-Date: 2020-05-15 09:01+0200\n"
"Last-Translator: Antonio Ceballos Roa <aceballos@gmail.com>\n"
"Language-Team: Spanish <es@tp.org.es>\n"
"Language: es\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"

#: alpha.c:102 mips.c:54
msgid "<indirect child>"
msgstr "<subproceso indirecto>"

#: alpha.c:107 mips.c:59
#, c-format
msgid "[find_call] %s: 0x%lx to 0x%lx\n"
msgstr "[find_call] %s: 0x%lx a 0x%lx\n"

#: alpha.c:129
#, c-format
msgid "[find_call] 0x%lx: jsr%s <indirect_child>\n"
msgstr "[find_call] 0x%lx: jsr%s <subproceso_indirecto>\n"

#: alpha.c:139
#, c-format
msgid "[find_call] 0x%lx: bsr"
msgstr "[find_call] 0x%lx: bsr"

#: basic_blocks.c:128 call_graph.c:89 hist.c:106
#, c-format
msgid "%s: %s: unexpected end of file\n"
msgstr "%s: %s: fin de fichero inesperado\n"

#: basic_blocks.c:196
#, c-format
msgid "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"
msgstr "%s: aviso: se descartan las cuentas de ejecución de bloques básicos (utilice -l o --line)\n"

#. FIXME: This only works if bfd_vma is unsigned long.
#: basic_blocks.c:289 basic_blocks.c:299
#, c-format
msgid "%s:%d: (%s:0x%lx) %lu executions\n"
msgstr "%s:%d: (%s:0x%lx) %lu ejecuciones\n"

#: basic_blocks.c:290 basic_blocks.c:300
msgid "<unknown>"
msgstr "<desconocido>"

#: basic_blocks.c:543
#, c-format
msgid ""
"\n"
"\n"
"Top %d Lines:\n"
"\n"
"     Line      Count\n"
"\n"
msgstr ""
"\n"
"\n"
"%d Líneas Superiores:\n"
"\n"
"     Línea     Cantidad\n"
"\n"

#: basic_blocks.c:567
#, c-format
msgid ""
"\n"
"Execution Summary:\n"
"\n"
msgstr ""
"\n"
"Resumen de ejecución:\n"
"\n"

#: basic_blocks.c:568
#, c-format
msgid "%9ld   Executable lines in this file\n"
msgstr "%9ld   Líneas ejecutables en este fichero\n"

#: basic_blocks.c:570
#, c-format
msgid "%9ld   Lines executed\n"
msgstr "%9ld   Líneas ejecutadas\n"

#: basic_blocks.c:571
#, c-format
msgid "%9.2f   Percent of the file executed\n"
msgstr "%9.2f   Porcentaje ejecutado del fichero\n"

#: basic_blocks.c:575
#, c-format
msgid ""
"\n"
"%9lu   Total number of line executions\n"
msgstr ""
"\n"
"%9lu   Número total de ejecuciones de línea\n"

#: basic_blocks.c:577
#, c-format
msgid "%9.2f   Average executions per line\n"
msgstr "%9.2f   Ejecuciones promedio por línea\n"

#: call_graph.c:68
#, c-format
msgid "[cg_tally] arc from %s to %s traversed %lu times\n"
msgstr "[cg_tally] arco desde %s hasta %s recorrido %lu veces\n"

#: cg_print.c:74
#, c-format
msgid ""
"\t\t     Call graph (explanation follows)\n"
"\n"
msgstr ""
"\t\t     Gráfico de llamadas (explicación a continuación)\n"
"\n"

#: cg_print.c:76
#, c-format
msgid ""
"\t\t\tCall graph\n"
"\n"
msgstr ""
"\t\t\tGráfico de llamadas\n"
"\n"

#: cg_print.c:79 hist.c:470
#, c-format
msgid ""
"\n"
"granularity: each sample hit covers %ld byte(s)"
msgstr ""
"\n"
"granularidad: cada elemento de muestra cubre %ld byte(s)"

#: cg_print.c:83
#, c-format
msgid ""
" for %.2f%% of %.2f seconds\n"
"\n"
msgstr ""
" para %.2f%% de %.2f segundos\n"
"\n"

#: cg_print.c:87
#, c-format
msgid ""
" no time propagated\n"
"\n"
msgstr ""
" no hay tiempo propagado\n"
"\n"

#: cg_print.c:96 cg_print.c:101 cg_print.c:104
msgid "called"
msgstr "llamado"

#: cg_print.c:96 cg_print.c:104
msgid "total"
msgstr "total"

#: cg_print.c:96
msgid "parents"
msgstr "padres"

#: cg_print.c:98 cg_print.c:102
msgid "index"
msgstr "índice"

#: cg_print.c:100
#, no-c-format
msgid "%time"
msgstr "%tiempo"

#: cg_print.c:101
msgid "self"
msgstr "sí mismo"

#: cg_print.c:101
msgid "descendants"
msgstr "descendientes"

#: cg_print.c:102 hist.c:496
msgid "name"
msgstr "nombre"

#: cg_print.c:104
msgid "children"
msgstr "subprocesos"

#: cg_print.c:109
#, c-format
msgid "index %% time    self  children    called     name\n"
msgstr "ind   %% tiempo  sí_mismo subprocesos    llamado    nombre\n"

#: cg_print.c:132
#, c-format
msgid " <cycle %d as a whole> [%d]\n"
msgstr " <ciclo %d como un todo> [%d]\n"

#: cg_print.c:358
#, c-format
msgid "%6.6s %5.5s %7.7s %11.11s %7.7s %7.7s     <spontaneous>\n"
msgstr "%6.6s %5.5s %7.7s %11.11s %7.7s %7.7s     <espontáneos>\n"

#: cg_print.c:359
#, c-format
msgid "%6.6s %5.5s %7.7s %7.7s %7.7s %7.7s     <spontaneous>\n"
msgstr "%6.6s %5.5s %7.7s %11.11s %7.7s %7.7s   <espontáneos>\n"

#: cg_print.c:593
#, c-format
msgid ""
"Index by function name\n"
"\n"
msgstr ""
"Índice por nombre de función\n"
"\n"

#: cg_print.c:650 cg_print.c:659
#, c-format
msgid "<cycle %d>"
msgstr "<ciclo %d>"

#: corefile.c:61
#, c-format
msgid "%s: unable to parse mapping file %s.\n"
msgstr "%s: no se puede analizar el fichero de asociaciones %s.\n"

#: corefile.c:89 corefile.c:523
#, c-format
msgid "%s: could not open %s.\n"
msgstr "%s: no se puede abrir %s.\n"

#: corefile.c:193
#, c-format
msgid "%s: %s: not in executable format\n"
msgstr "%s: %s: no está en formato ejecutable\n"

#: corefile.c:204
#, c-format
msgid "%s: can't find .text section in %s\n"
msgstr "%s: no se puede encontrar la sección .text en %s\n"

#: corefile.c:278
#, c-format
msgid "%s: ran out room for %lu bytes of text space\n"
msgstr "%s: se terminó el espacio para %lu bytes de espacio textual\n"

#: corefile.c:292
#, c-format
msgid "%s: can't do -c\n"
msgstr "%s: no se puede hacer -c\n"

#: corefile.c:331
#, c-format
msgid "%s: -c not supported on architecture %s\n"
msgstr "%s: -c no se admite en la arquitectura %s\n"

#: corefile.c:532 corefile.c:637
#, c-format
msgid "%s: file `%s' has no symbols\n"
msgstr "%s: el fichero `%s' no tiene símbolos\n"

#: corefile.c:537
#, c-format
msgid "%s: file `%s' has too many symbols\n"
msgstr "%s: el fichero `%s' tiene demasiados símbolos\n"

#: corefile.c:904
#, c-format
msgid "%s: somebody miscounted: ltab.len=%d instead of %ld\n"
msgstr "%s: alguien contó mal: ltab.len=%d en lugar de %ld\n"

#: gmon_io.c:83
#, c-format
msgid "%s: address size has unexpected value of %u\n"
msgstr "%s: el tamaño de la dirección tiene un valor inesperado de %u\n"

#: gmon_io.c:318 gmon_io.c:414
#, c-format
msgid "%s: file too short to be a gmon file\n"
msgstr "%s: el fichero es muy corto para ser un fichero gmon\n"

#: gmon_io.c:328 gmon_io.c:457
#, c-format
msgid "%s: file `%s' has bad magic cookie\n"
msgstr "%s: el fichero `%s' tiene un cookie mágico equivocado\n"

#: gmon_io.c:339
#, c-format
msgid "%s: file `%s' has unsupported version %d\n"
msgstr "%s: el fichero `%s' tiene la versión %d no admitida\n"

#: gmon_io.c:369
#, c-format
msgid "%s: %s: found bad tag %d (file corrupted?)\n"
msgstr "%s: %s: encontrada etiqueta %d equivocada (¿fichero corrupto?)\n"

#: gmon_io.c:436
#, c-format
msgid "%s: profiling rate incompatible with first gmon file\n"
msgstr "%s: tipo de perfilado incompatible con el primer fichero gmon\n"

#: gmon_io.c:487
#, c-format
msgid "%s: incompatible with first gmon file\n"
msgstr "%s: incompatible con el primer fichero gmon\n"

#: gmon_io.c:517
#, c-format
msgid "%s: file '%s' does not appear to be in gmon.out format\n"
msgstr "%s: el fichero '%s' no parece estar en el formato gmon.out\n"

#: gmon_io.c:530
#, c-format
msgid "%s: unexpected EOF after reading %d/%d bins\n"
msgstr "%s: EOF inesperado tras leer %d/%d binarios\n"

#: gmon_io.c:562
#, c-format
msgid "time is in ticks, not seconds\n"
msgstr "el tiempo está en tics, no en segundos\n"

#: gmon_io.c:568 gmon_io.c:748
#, c-format
msgid "%s: don't know how to deal with file format %d\n"
msgstr "%s: se desconoce cómo tratar el formato de fichero %d\n"

#: gmon_io.c:578
#, c-format
msgid "File `%s' (version %d) contains:\n"
msgstr "El fichero `%s' (versión %d) contiene:\n"

#: gmon_io.c:581
#, c-format
msgid "\t%d histogram record\n"
msgstr "\t%d registro de histograma\n"

#: gmon_io.c:582
#, c-format
msgid "\t%d histogram records\n"
msgstr "\t%d registros de histogramas\n"

#: gmon_io.c:584
#, c-format
msgid "\t%d call-graph record\n"
msgstr "\t%d registro de gráfico de llamadas\n"

#: gmon_io.c:585
#, c-format
msgid "\t%d call-graph records\n"
msgstr "\t%d registros de gráficos de llamadas\n"

#: gmon_io.c:587
#, c-format
msgid "\t%d basic-block count record\n"
msgstr "\t%d registro de cuenta de bloques básicos\n"

#: gmon_io.c:588
#, c-format
msgid "\t%d basic-block count records\n"
msgstr "\t%d registros de cuentas de bloques básicos\n"

#: gprof.c:162
#, c-format
msgid ""
"Usage: %s [-[abcDhilLrsTvwxyz]] [-[ACeEfFJnNOpPqQRStZ][name]] [-I dirs]\n"
"\t[-d[num]] [-k from/to] [-m min-count] [-t table-length]\n"
"\t[--[no-]annotated-source[=name]] [--[no-]exec-counts[=name]]\n"
"\t[--[no-]flat-profile[=name]] [--[no-]graph[=name]]\n"
"\t[--[no-]time=name] [--all-lines] [--brief] [--debug[=level]]\n"
"\t[--function-ordering] [--file-ordering] [--inline-file-names]\n"
"\t[--directory-path=dirs] [--display-unused-functions]\n"
"\t[--file-format=name] [--file-info] [--help] [--line] [--min-count=n]\n"
"\t[--no-static] [--print-path] [--separate-files]\n"
"\t[--static-call-graph] [--sum] [--table-length=len] [--traditional]\n"
"\t[--version] [--width=n] [--ignore-non-functions]\n"
"\t[--demangle[=STYLE]] [--no-demangle] [--external-symbol-table=name] [@FILE]\n"
"\t[image-file] [profile-file...]\n"
msgstr ""
"Modo de empleo: %s [-[abcDhilLrsTvwxyz]] [-[ACeEfFJnNOpPqQRStZ][nombre]] [-I dirs]\n"
"\t[-d[num]] [-k origen/destino] [-m cuenta-min] [-t longitud-tabla]\n"
"\t[--[no-]annotated-source[=nombre]] [--[no-]exec-counts[=nombre]]\n"
"\t[--[no-]flat-profile[=nombre]] [--[no-]graph[=nombre]]\n"
"\t[--[no-]time=nombre] [--all-lines] [--brief] [--debug[=nivel]]\n"
"\t[--function-ordering] [--file-ordering] [--inline-file-names]\n"
"\t[--directory-path=dirs] [--display-unused-functions]\n"
"\t[--file-format=nombre] [--file-info] [--help] [--line] [--min-count=n]\n"
"\t[--no-static] [--print-path] [--separate-files]\n"
"\t[--static-call-graph] [--sum] [--table-length=long] [--traditional]\n"
"\t[--version] [--width=n] [--ignore-non-functions]\n"
"\t[--demangle[=ESTILO]] [--no-demangle] [--external-symbol-table=nombre] [@FICHERO]\n"
"\t[fichero-imagen] [fichero-perfil...]\n"

#: gprof.c:178
#, c-format
msgid "Report bugs to %s\n"
msgstr "Comunicar defectos a %s\n"

#: gprof.c:254
#, c-format
msgid "%s: debugging not supported; -d ignored\n"
msgstr "%s: no se admite la depuración; se descarta -d\n"

#: gprof.c:340
#, c-format
msgid "%s: unknown file format %s\n"
msgstr "%s: formato de fichero %s desconocido\n"

#. This output is intended to follow the GNU standards document.
#: gprof.c:428
#, c-format
msgid "GNU gprof %s\n"
msgstr "GNU gprof %s\n"

#: gprof.c:429
#, c-format
msgid "Based on BSD gprof, copyright 1983 Regents of the University of California.\n"
msgstr "Basado en gprof de BSD, © 1983 Regents of the University of California.\n"

#: gprof.c:430
#, c-format
msgid "This program is free software.  This program has absolutely no warranty.\n"
msgstr "Este programa es software libre.  Este programa no tiene ninguna garantía en absoluto.\n"

#: gprof.c:471
#, c-format
msgid "%s: unknown demangling style `%s'\n"
msgstr "%s: estilo de desenredo desconocido `%s'\n"

#: gprof.c:494
#, c-format
msgid "%s: Only one of --function-ordering and --file-ordering may be specified.\n"
msgstr "%s: Solo puede especificarse una de las opciones --function-ordering y --file-ordering.\n"

#: gprof.c:546
#, c-format
msgid "%s: sorry, file format `prof' is not yet supported\n"
msgstr "%s: disculpe, el formato de fichero `prof' aún no está admitido\n"

#: gprof.c:600
#, c-format
msgid "%s: gmon.out file is missing histogram\n"
msgstr "%s: falta el histograma en el fichero gmon.out\n"

#: gprof.c:607
#, c-format
msgid "%s: gmon.out file is missing call-graph data\n"
msgstr "%s: faltan los datos del gráfico de llamadas en el fichero gmon.out\n"

#: hist.c:134
#, c-format
msgid ""
"%s: dimension unit changed between histogram records\n"
"%s: from '%s'\n"
"%s: to '%s'\n"
msgstr ""
"%s: unidad de las dimensiones cambiada entre registros de histograma\n"
"%s: desde '%s'\n"
"%s: hasta '%s'\n"

#: hist.c:144
#, c-format
msgid ""
"%s: dimension abbreviation changed between histogram records\n"
"%s: from '%c'\n"
"%s: to '%c'\n"
msgstr ""
"%s: abreviatura de las dimensiones cambiada entre registros de histograma\n"
"%s: desde '%c'\n"
"%s: hasta '%c'\n"

#: hist.c:158
#, c-format
msgid "%s: different scales in histogram records"
msgstr "%s: escalas diferentes en los registros de histograma"

#: hist.c:195
#, c-format
msgid "%s: overlapping histogram records\n"
msgstr "%s: registros de histograma superpuestos\n"

#: hist.c:229
#, c-format
msgid "%s: %s: unexpected EOF after reading %u of %u samples\n"
msgstr "%s: %s: fin de fichero inesperado después de leer %u de %u muestras\n"

#: hist.c:466
#, c-format
msgid "%c%c/call"
msgstr "%c%c/llamada"

#: hist.c:474
#, c-format
msgid ""
" for %.2f%% of %.2f %s\n"
"\n"
msgstr ""
" para %.2f%% de %.2f %s\n"
"\n"

#: hist.c:480
#, c-format
msgid ""
"\n"
"Each sample counts as %g %s.\n"
msgstr ""
"\n"
"Cada muestra cuenta como %g %s.\n"

#: hist.c:485
#, c-format
msgid ""
" no time accumulated\n"
"\n"
msgstr ""
" no hay tiempo acumulado\n"
"\n"

#: hist.c:492
msgid "cumulative"
msgstr "acumulativo"

#: hist.c:492
msgid "self  "
msgstr "sí mismo  "

#: hist.c:492
msgid "total "
msgstr "total "

#: hist.c:495
msgid "time"
msgstr "tiempo"

#: hist.c:495
msgid "calls"
msgstr "llamadas"

#: hist.c:584
#, c-format
msgid ""
"\n"
"\n"
"\n"
"flat profile:\n"
msgstr ""
"\n"
"\n"
"\n"
"perfil plano:\n"

#: hist.c:590
#, c-format
msgid "Flat profile:\n"
msgstr "Perfil plano:\n"

#: hist.c:711
#, c-format
msgid "%s: found a symbol that covers several histogram records"
msgstr "%s: se encontró un símbolo que cubre varios registros de histograma"

#: mips.c:71
#, c-format
msgid "[find_call] 0x%lx: jal"
msgstr "[find_call] 0x%lx: jal"

#: mips.c:99
#, c-format
msgid "[find_call] 0x%lx: jalr\n"
msgstr "[find_call] 0x%lx: jalr\n"

#: source.c:162
#, c-format
msgid "%s: could not locate `%s'\n"
msgstr "%s: no se puede encontrar `%s'\n"

#: source.c:237
#, c-format
msgid "*** File %s:\n"
msgstr "*** Fichero %s:\n"

#: utils.c:106
#, c-format
msgid " <cycle %d>"
msgstr " <ciclo %d>"

#~ msgid "%s: `%s' is incompatible with first gmon file\n"
#~ msgstr "%s: `%s' es incompatible con el primer fichero gmon\n"

#~ msgid "%s: bfd_vma has unexpected size of %ld bytes\n"
#~ msgstr "%s: bfd_vma tiene un tamaño inesperado de %ld bytes\n"
