# Messages français pour gprof.
# Copyright © 1996, 2006, 2008, 2011 Free Software Foundation, Inc.
# This file is distributed under the same license as the binutils package.
#
# Michel Robitaille <robitail@IRO.UMontreal.CA>, traducteur depuis/since 1996.
# Mohammed Adnène Trojette, 2006.
# François-Xavier Coudert <fxcoudert@gmail.com>, 2008.
# David Prévot <david@tilapin.org>, 2011.
# Stéphane Aulery <lkppo@free.fr>, 2015, 2017, 2020
# Christian Wiatr <w9204-fs@yahoo.com>,2023
msgid ""
msgstr ""
"Project-Id-Version: gprof 2.39.90\n"
"Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n"
"POT-Creation-Date: 2022-12-31 12:22+0000\n"
"PO-Revision-Date: 2023-06-25 00:51+0200\n"
"Last-Translator: Christian Wiatr <w9204-fs@yahoo.com>\n"
"Language-Team: French <traduc@traduc.org>\n"
"Language: fr\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"
"X-Generator: Poedit 2.4.2\n"

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

#: alpha.c:107 mips.c:59
#, c-format
msgid "[find_call] %s: 0x%lx to 0x%lx\n"
msgstr "[find_call] %s : 0x%lx to 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 <indirect_child>\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 prématurée du fichier\n"

#: basic_blocks.c:196
#, c-format
msgid "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"
msgstr "%s : avertissement : décomptes des exécutions de blocs de base ignorés (utilisez -l ou --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 exécutions\n"

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

#: basic_blocks.c:543
#, c-format
msgid ""
"\n"
"\n"
"Top %d Lines:\n"
"\n"
"     Line      Count\n"
"\n"
msgstr ""
"\n"
"\n"
"%d premières lignes :\n"
"\n"
"     Ligne     Compte\n"
"\n"

#: basic_blocks.c:567
#, c-format
msgid ""
"\n"
"Execution Summary:\n"
"\n"
msgstr ""
"\n"
"Résumé de l'exécution :\n"
"\n"

#: basic_blocks.c:568
#, c-format
msgid "%9ld   Executable lines in this file\n"
msgstr "%9ld   Lignes exécutables dans ce fichier\n"

#: basic_blocks.c:570
#, c-format
msgid "%9ld   Lines executed\n"
msgstr "%9ld   Lignes exécutées\n"

#: basic_blocks.c:571
#, c-format
msgid "%9.2f   Percent of the file executed\n"
msgstr "%9.2f   Pourcentage de traitement du fichier\n"

#: basic_blocks.c:575
#, c-format
msgid ""
"\n"
"%9lu   Total number of line executions\n"
msgstr ""
"\n"
"%9lu   Nombre total d'exécutions de lignes\n"

#: basic_blocks.c:577
#, c-format
msgid "%9.2f   Average executions per line\n"
msgstr "%9.2f   Nombre moyen d'exécutions par ligne\n"

#: call_graph.c:68
#, c-format
msgid "[cg_tally] arc from %s to %s traversed %lu times\n"
msgstr "[cg_tally] arc à partir de %s jusqu'à %s traversé %lu fois\n"

#: cg_print.c:74
#, c-format
msgid ""
"\t\t     Call graph (explanation follows)\n"
"\n"
msgstr ""
"\t\t     Graphe d'appel (les explications suivent)\n"
"\n"

#: cg_print.c:76
#, c-format
msgid ""
"\t\t\tCall graph\n"
"\n"
msgstr ""
"\t\t\tGraphe d'appel\n"
"\n"

#: cg_print.c:79 hist.c:470
#, c-format
msgid ""
"\n"
"granularity: each sample hit covers %ld byte(s)"
msgstr ""
"\n"
"granularité : chaque échantillon couvre %ld octet(s)"

#: cg_print.c:83
#, c-format
msgid ""
" for %.2f%% of %.2f seconds\n"
"\n"
msgstr ""
" pour %.2f%% secondes sur %.2f\n"
"\n"

#: cg_print.c:87
#, c-format
msgid ""
" no time propagated\n"
"\n"
msgstr ""
" pas de propagation de temps\n"
"\n"

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

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

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

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

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

#: cg_print.c:101
msgid "self"
msgstr "auto"

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

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

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

#: cg_print.c:109
#, c-format
msgid "index %% time    self  children    called     name\n"
msgstr "index %% temps   auto  rejetons    appelé     nom\n"

#: cg_print.c:132
#, c-format
msgid " <cycle %d as a whole> [%d]\n"
msgstr " <cycle %d en entier> [%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     <spontanés>\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 %7.7s %7.7s %7.7s     <spontanés>\n"

#: cg_print.c:593
#, c-format
msgid ""
"Index by function name\n"
"\n"
msgstr ""
"Index par nom de fonction\n"
"\n"

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

#: corefile.c:61
#, c-format
msgid "%s: unable to parse mapping file %s.\n"
msgstr "%s : impossible d'analyser le fichier de projection %s.\n"

#: corefile.c:89 corefile.c:524
#, c-format
msgid "%s: could not open %s.\n"
msgstr "%s : impossible d'ouvrir %s.\n"

#: corefile.c:193
#, c-format
msgid "%s: %s: not in executable format\n"
msgstr "%s : %s : n'est pas dans un format exécutable\n"

#: corefile.c:204
#, c-format
msgid "%s: can't find .text section in %s\n"
msgstr "%s : impossible de repérer la section .text dans %s\n"

#: corefile.c:278
#, c-format
msgid "%s: ran out room for %lu bytes of text space\n"
msgstr "%s : espace insuffisant pour %lu octets dans l'espace de texte\n"

#: corefile.c:292
#, c-format
msgid "%s: can't do -c\n"
msgstr "%s : impossible d'appliquer l'option -c\n"

#: corefile.c:331
#, c-format
msgid "%s: -c not supported on architecture %s\n"
msgstr "%s : l'option -c n'est pas prise en charge par l'architecture %s\n"

#: corefile.c:533 corefile.c:640
#, c-format
msgid "%s: file `%s' has no symbols\n"
msgstr "%s : fichier « %s » sans symbole\n"

#: corefile.c:538
#, c-format
msgid "%s: file `%s' has too many symbols\n"
msgstr "%s : le fichier « %s » a trop de symboles\n"

#: corefile.c:907
#, c-format
msgid "%s: somebody miscounted: ltab.len=%d instead of %ld\n"
msgstr "%s: mauvais décompte : ltab.len=%d au lieu de %ld\n"

#: gmon_io.c:81
#, c-format
msgid "%s: address size has unexpected value of %u\n"
msgstr "%s : taille de l'adresse de valeur inattendue : %u\n"

#: gmon_io.c:298 gmon_io.c:394
#, c-format
msgid "%s: file too short to be a gmon file\n"
msgstr "%s : fichier trop petit pour être un fichier gmon\n"

#: gmon_io.c:308 gmon_io.c:437
#, c-format
msgid "%s: file `%s' has bad magic cookie\n"
msgstr "%s : nombre magique du fichier « %s » erroné\n"

#: gmon_io.c:319
#, c-format
msgid "%s: file `%s' has unsupported version %d\n"
msgstr "%s : fichier « %s » de version %d non prise en charge\n"

#: gmon_io.c:349
#, c-format
msgid "%s: %s: found bad tag %d (file corrupted?)\n"
msgstr "%s : %s : étiquette %d erronée (fichier corrompu ?)\n"

#: gmon_io.c:416
#, c-format
msgid "%s: profiling rate incompatible with first gmon file\n"
msgstr "%s: taux de profilage incompatible avec le premier fichier gmon\n"

#: gmon_io.c:467
#, c-format
msgid "%s: incompatible with first gmon file\n"
msgstr "%s : incompatible avec le premier fichier gmon\n"

#: gmon_io.c:497
#, c-format
msgid "%s: file '%s' does not appear to be in gmon.out format\n"
msgstr "%s : le fichier « %s » n'est apparemment pas au format gmon.out\n"

#: gmon_io.c:510
#, c-format
msgid "%s: unexpected EOF after reading %d/%d bins\n"
msgstr "%s : fin de fichier inattendue après la lecture de %d/%d bins\n"

#: gmon_io.c:542
#, c-format
msgid "time is in ticks, not seconds\n"
msgstr "mesure du temps en sauts d'horloge et non en secondes\n"

#: gmon_io.c:548 gmon_io.c:728
#, c-format
msgid "%s: don't know how to deal with file format %d\n"
msgstr "%s : impossible de gérer le format de fichier %d\n"

#: gmon_io.c:558
#, c-format
msgid "File `%s' (version %d) contains:\n"
msgstr "Le fichier « %s » (version %d) contient :\n"

#: gmon_io.c:561
#, c-format
msgid "\t%d histogram record\n"
msgstr "\t%d enregistrement de type histogramme\n"

#: gmon_io.c:562
#, c-format
msgid "\t%d histogram records\n"
msgstr "\t%d enregistrements de type histogramme\n"

#: gmon_io.c:564
#, c-format
msgid "\t%d call-graph record\n"
msgstr "\t%d enregistrement de type call-graph\n"

#: gmon_io.c:565
#, c-format
msgid "\t%d call-graph records\n"
msgstr "\t%d enregistrements de type call-graph\n"

#: gmon_io.c:567
#, c-format
msgid "\t%d basic-block count record\n"
msgstr "\t%d enregistrement de décomptes de blocs de base\n"

#: gmon_io.c:568
#, c-format
msgid "\t%d basic-block count records\n"
msgstr "\t%d enregistrements de décomptes de blocs de base\n"

#: gprof.c:162
#, c-format
msgid ""
"Usage: %s [-[abcDhilLrsTvwxyz]] [-[ABCeEfFJnNOpPqQRStZ][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 ""
"Usage : %s [-[abcDhilLrsTvwxyz]] [-[ABCeEfFJnNOpPqQRStZ][nom]] [-I répertoires]\n"
"\t[-d[nombre]] [-k de/à] [-m minimum] [-t longueur-de-la-table]\n"
"\t[--[no-]annotated-source[=nom]] [--[no-]exec-counts[=nom]]\n"
"\t[--[no-]flat-profile[=nom]] [--[no-]graph[=nom]]\n"
"\t[--[no-]time=nom] [--all-lines] [--brief] [--debug[=niveau]]\n"
"\t[--function-ordering] [--file-ordering] [--inline-file-names]\n"
"\t[--directory-path=répertoires] [--display-unused-functions]\n"
"\t[--file-format=nom] [--file-info] [--help] [--line] [--min-count=n]\n"
"\t[--no-static] [--print-path] [--separate-files]\n"
"\t[--static-call-graph] [--sum] [--table-length=longueur] [--traditional]\n"
"\t[--version] [--width=n] [--ignore-non-functions]\n"
"\t[--demangle[=STYLE]] [--no-demangle] [--external-symbol-table=nom] [@FICHIER]\n"
"\t[fichier-image] [fichier-profil…]\n"

#: gprof.c:178
#, c-format
msgid "Report bugs to %s\n"
msgstr "Signaler toutes anomalies à %s\n"

#: gprof.c:252
#, c-format
msgid "%s: debugging not supported; -d ignored\n"
msgstr "%s : débogage non pris en charge ; -d ignorée\n"

#: gprof.c:338
#, c-format
msgid "%s: unknown file format %s\n"
msgstr "%s : format de fichier %s inconnu\n"

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

#: gprof.c:427
#, c-format
msgid "Based on BSD gprof, copyright 1983 Regents of the University of California.\n"
msgstr "Basé sur BSD gprof, copyright 1983 Regents de l'Université de Californie.\n"

#: gprof.c:428
#, c-format
msgid "This program is free software.  This program has absolutely no warranty.\n"
msgstr "Ce logiciel est libre. AUCUNE garantie ne lui est apportée.\n"

#: gprof.c:469
#, c-format
msgid "%s: unknown demangling style `%s'\n"
msgstr "%s : style d'encodage par mutilation inconnu « %s »\n"

#: gprof.c:492
#, c-format
msgid "%s: Only one of --function-ordering and --file-ordering may be specified.\n"
msgstr "%s : seule l'une des options --function-ordering ou --file-ordering peut être indiquée.\n"

#: gprof.c:544
#, c-format
msgid "%s: sorry, file format `prof' is not yet supported\n"
msgstr "%s : le format de fichier « prof » n'est pas encore pris en charge\n"

#: gprof.c:598
#, c-format
msgid "%s: gmon.out file is missing histogram\n"
msgstr "%s : le fichier gmon.out n'a pas d'histogramme\n"

#: gprof.c:605
#, c-format
msgid "%s: gmon.out file is missing call-graph data\n"
msgstr "%s : le fichier gmon.out n'a pas de données de type call-graph\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 : l'unité de dimension a changé entre les enregistrements de type histogramme\n"
"%s : de « %s »\n"
"%s : à « %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 : l'abréviation de dimension à changé entre les enregistrements de type histogrammes\n"
"%s : de « %c »\n"
"%s : à « %c »\n"

#: hist.c:158
#, c-format
msgid "%s: different scales in histogram records"
msgstr "%s : différentes échelles entre enregistrements de type histogramme"

#: hist.c:195
#, c-format
msgid "%s: overlapping histogram records\n"
msgstr "%s : recouvrement entre enregistrements de type histogramme\n"

#: hist.c:229
#, c-format
msgid "%s: %s: unexpected EOF after reading %u of %u samples\n"
msgstr "%s : %s : fin de fichier inattendue après la lecture de %u échantillons sur %u\n"

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

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

#: hist.c:480
#, c-format
msgid ""
"\n"
"Each sample counts as %g %s.\n"
msgstr ""
"\n"
"Chaque échantillon compte pour %g %s.\n"

#: hist.c:485
#, c-format
msgid ""
" no time accumulated\n"
"\n"
msgstr ""
" pas de temps accumulé\n"
"\n"

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

#: hist.c:492
msgid "self  "
msgstr "auto  "

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

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

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

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

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

#: hist.c:711
#, c-format
msgid "%s: found a symbol that covers several histogram records"
msgstr "%s : symbole couvrant plusieurs enregistrements de type histogramme"

#: 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:166
#, c-format
msgid "%s: could not locate `%s'\n"
msgstr "%s : « %s » non localisé\n"

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

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