# Mensajes en español para gprof 2.22.90
# Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 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.
#
msgid ""
msgstr ""
"Project-Id-Version: gprof 2.22.90\n"
"Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
"POT-Creation-Date: 2011-10-18 14:20+0100\n"
"PO-Revision-Date: 2012-07-27 17:15-0500\n"
"Last-Translator: Cristian Othón Martínez Vera <cfuga@cfuga.mx>\n"
"Language-Team: Spanish <es@li.org>\n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

#: alpha.c:102 mips.c:54
msgid "<indirect child>"
msgstr "<hijo 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 <hijo_indirecto>\n"

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

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

#: basic_blocks.c:197
#, 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 (use -l o --line)\n"

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

#: basic_blocks.c:291 basic_blocks.c:301
msgid "<unknown>"
msgstr "<desconocido>"

#: basic_blocks.c:544
#, c-format
msgid ""
"\n"
"\n"
"Top %d Lines:\n"
"\n"
"     Line      Count\n"
"\n"
msgstr ""
"\n"
"\n"
"%d Líneas Principales:\n"
"\n"
"     Línea     Cuenta\n"
"\n"

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

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

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

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

#: basic_blocks.c:576
#, 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:578
#, 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:75
#, 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:77
#, c-format
msgid ""
"\t\t\tCall graph\n"
"\n"
msgstr ""
"\t\t\tGráfico de llamadas\n"
"\n"

#: cg_print.c:80 hist.c:468
#, 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:84
#, c-format
msgid ""
" for %.2f%% of %.2f seconds\n"
"\n"
msgstr ""
" para %.2f%% de %.2f segundos\n"
"\n"

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

#: cg_print.c:97 cg_print.c:102 cg_print.c:105
msgid "called"
msgstr "llamado"

#: cg_print.c:97 cg_print.c:105
msgid "total"
msgstr "total"

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

#: cg_print.c:99 cg_print.c:103
msgid "index"
msgstr "índice"

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

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

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

#: cg_print.c:103 hist.c:494
msgid "name"
msgstr "nombre"

#: cg_print.c:105
msgid "children"
msgstr "hijos"

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

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

#: cg_print.c:359
#, 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:360
#, 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:594
#, c-format
msgid ""
"Index by function name\n"
"\n"
msgstr ""
"Índice por nombre de función\n"
"\n"

#: cg_print.c:651 cg_print.c:660
#, 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 decodificar el fichero de mapeo %s.\n"

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

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

#: corefile.c:196
#, 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:271
#, 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 de texto\n"

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

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

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

#: corefile.c:884
#, 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:84
#, 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:319 gmon_io.c:415
#, 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:329 gmon_io.c:458
#, c-format
msgid "%s: file `%s' has bad magic cookie\n"
msgstr "%s: el fichero `%s' tiene una galleta mágica errónea\n"

#: gmon_io.c:340
#, c-format
msgid "%s: file `%s' has unsupported version %d\n"
msgstr "%s: el fichero `%s' tiene la version %d que no se admite\n"

#: gmon_io.c:370
#, c-format
msgid "%s: %s: found bad tag %d (file corrupted?)\n"
msgstr "%s: %s: se encontró la marca errónea %d (¿Fichero corrupto?)\n"

#: gmon_io.c:437
#, c-format
msgid "%s: profiling rate incompatible with first gmon file\n"
msgstr "%s: tasa de análisis de perfil incompatible con el primer fichero gmon\n"

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

#: gmon_io.c:518
#, 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:531
#, c-format
msgid "%s: unexpected EOF after reading %d/%d bins\n"
msgstr "%s: fin de fichero inesperado después de leer %d/%d binarios\n"

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

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

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

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

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

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

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

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

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

#: gprof.c:159
#, c-format
msgid ""
"Usage: %s [-[abcDhilLsTvwxyz]] [-[ACeEfFJnNOpPqSQZ][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]\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 [-[abcDhilLsTvwxyz]] [-[ACeEfFJnNOpPqQZ][nombre]] [-I dirs]\n"
"\t[-d[num]] [-k de/a] [-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]\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:175
#, c-format
msgid "Report bugs to %s\n"
msgstr "Reporte bichos a %s\n"

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

#: gprof.c:331
#, 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:419
#, c-format
msgid "GNU gprof %s\n"
msgstr "GNU gprof %s\n"

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

#: gprof.c:421
#, 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 lo absoluto.\n"

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

#: gprof.c:482
#, c-format
msgid "%s: Only one of --function-ordering and --file-ordering may be specified.\n"
msgstr "%s: Sólo se puede especificar uno de --function-ordering y --file-ordering.\n"

#: gprof.c:534
#, c-format
msgid "%s: sorry, file format `prof' is not yet supported\n"
msgstr "%s: perdón, el formato de fichero `prof' aún no se admite\n"

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

#: gprof.c:595
#, 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:135
#, c-format
msgid ""
"%s: dimension unit changed between histogram records\n"
"%s: from '%s'\n"
"%s: to '%s'\n"
msgstr ""
"%s: cambió la unidad de dimensión entre los registros de histograma\n"
"%s: de '%s'\n"
"%s: a '%s'\n"

#: hist.c:145
#, c-format
msgid ""
"%s: dimension abbreviation changed between histogram records\n"
"%s: from '%c'\n"
"%s: to '%c'\n"
msgstr ""
"%s: cambió la abreviación de dimensión entre los registros de histograma\n"
"%s: de '%c'\n"
"%s: a '%c'\n"

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

#: hist.c:196
#, c-format
msgid "%s: overlapping histogram records\n"
msgstr "%s: registros de histogramas empalmados\n"

#: hist.c:230
#, 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:464
#, c-format
msgid "%c%c/call"
msgstr "%c%c/llamada"

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

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

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

#: hist.c:490
msgid "cumulative"
msgstr "cumulativo"

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

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

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

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

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

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

#: hist.c:709
#, 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:99
#, 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"
