# Messages français pour GNU concernant cpplib.
# Copyright © 2001, 2008 Free Software Foundation, Inc.
# This file is distributed under the same license as the gcc package.
# Michel Robitaille <robitail@IRO.UMontreal.CA>, traducteur depuis/since 1996.
# François-Xavier Coudert <fxcoudert@gcc.gnu.org>, 2008.
# Stéphane Aulery <lkppo@free.fr>, 2015, 2016, 2017.
# Frédéric Marchal <fmarchal@perso.be>, 2019.
#
# Vocabulaire utilisé
# 	lvalue	 	= membre gauche
# 	deprecated	= obsolète
# 	out of range	= hors des limites
# 	range		= gamme
# 	scope		= porté, champ
# 	shadowing	= masquer
# 	embedded PIC	= PIC enchâssé
# 	CPU		= processeur
# 	structure with flexible member
# 			= structure ayant un membre flexible
# 	flag		= fanion
# 	forward declaration
# 			= déclaration anticipée
# 	token 		= élément lexical (dans le contexte du parsing)
# 	to subscript	= indicer
# 	top-level	= hors de toute fonction
# 	member function	= fonction membre
#
# Pas traduit:
# 	thread
#
# J'ai des doutes pour :
# 	inline 		= enligne (pas systématiquement)
#                         oui dans le contexte du langage C par exemple MR
#                         non autrement ...de manière générale MR
# 	section attribute	attribut de section OK MR
# 	wide char		caractère long  ...non mieux caractère large MR 
#                               plus conforme à l'esprit.
#
# ------
# 	literals		littéral, ou mot composé ?
# msgid "ISO C89 forbids compound literals"
# msgstr "le C89 ISO interdit les mots composés"
#
# 	symbol table		table des symboles ou table de symbole
# 	command map		carte des commandes
# 	Combiner		combinateur
# msgid ""
# ";; Combiner statistics: %d attempts, %d substitutions (%d requiring new space),\n"
# ";; %d successes.\n"
# "\n"
# msgstr ""
# ";; Statistiques du combinateur : %d tentatives, %d substitutions (%d requérant un nouvel espace),\n"
# ";; %d succès.\n"
# "\n"
#
# 	promote			promouvoir
# msgid "the left operand of \"%s\" changes sign when promoted"
# msgstr "L'opérande gauche de « %s » change de signe lors de sa promotion"
#
#        include guards	       ???
# msgid "Multiple include guards may be useful for:\n"
# msgstr "De multiples balises pour les inclusions peuvent être utiles pour :\n"
#
#
#        universal-character-name ???
# msgid "incomplete universal-character-name"
# msgid "non-hex digit '%c' in universal-character-name"
# msgid "universal-character-name on EBCDIC target"
#
#       poisoning			empoisonnement
# msgid "poisoning existing macro \"%s\""
# msgstr "empoisonnement de la macro existente « %s »"
# MR  9-jan 2004: poisoning etc... transformé par corruption corrompu etc..
# MR 24-mai 2004: poison etc...suite au msg concernant le #pragma once et #pragma poison 
#
# Autres règles:
# 	- j'ai ajouté un adjectif par rapport à l'anglais si le message est
#    	  une phrase avec verbe conjugé. 
# 	- ISO est considéré comme un adjectif dans « C ISO »
#         
# Erreurs corrigées:
# 	librairies, assumer
#
# A faire:
#   - s/en ligne/en-ligne/  modifié 9-janv-2004 MR
#   - s/en-ligne/enligne/  modifié 18-février-2004 MR pcq expression ou terme enlignage vs inlining
#   - hors gamme  a été changé pour hors limite ...MR 09-jan-2004
#   - literal
#   - chaîne de format => formatage
#   - scope
#   - supporté est un faux ami
#
# A rapporter upstream:
# <<<<<<<<
# In c-opts.c, begining line 1732, a lot of options are of the kind:
#    "  -W[no-]trigraphs          Warn if trigraphs are encountered\n"
# I guess it would be better to change them all to something like
#    "  -W[no-]trigraphs          Warn [or not] if trigraphs are encountered\n"
#
#
# #: c-opts.c:1759
# "  -MP\t\t\t    Generate phony targets for all headers\n"
# you may want to change the \t to spaces, as it is done for the other lines.
#
# #: c-typeck.c:3166 c-typeck.c:4632 c-typeck.c:4648 c-typeck.c:4664
# #: final.c:3146 final.c:3148 gcc.c:4397 rtl-error.c:122 toplev.c:1694
# #: config/cris/cris.c:529 cp/typeck.c:4341 java/expr.c:364 java/verify.c:1467
# #: java/verify.c:1468 java/verify.c:1483
# #, c-format
# msgid "%s"
# msgstr "%s"
#
# Are you sure you want to translate the messages in cfgrtl.c, or are they
#  debugging informations ?
#
# You may want to use ngettext instead of putting (s) in text.
# msgid "null character(s) preserved in literal"
#
# >>>>>>>>>
#
msgid ""
msgstr ""
"Project-Id-Version: GNU cpplib 9.1-b20190203\n"
"Report-Msgid-Bugs-To: https://gcc.gnu.org/bugs/\n"
"POT-Creation-Date: 2019-02-01 23:01+0000\n"
"PO-Revision-Date: 2019-02-05 20:35+0100\n"
"Last-Translator: Frédéric Marchal <fmarchal@perso.be>\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: 8-bit\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
"Plural-Forms: nplurals=2; plural=(n >= 2);\n"

#: charset.c:674
#, c-format
msgid "conversion from %s to %s not supported by iconv"
msgstr "la conversion de %s vers %s n’est pas prise en charge par iconv"

#: charset.c:677
msgid "iconv_open"
msgstr "iconv_open"

#: charset.c:685
#, c-format
msgid "no iconv implementation, cannot convert from %s to %s"
msgstr "pas d’implémentation iconv, impossible de convertir %s vers %s"

#: charset.c:781
#, c-format
msgid "character 0x%lx is not in the basic source character set\n"
msgstr "le caractère 0x%lx n’est pas dans le jeu de caractères source de base\n"

#: charset.c:798 charset.c:1677
msgid "converting to execution character set"
msgstr "conversion vers un jeu de caractères d’exécution"

#: charset.c:804
#, c-format
msgid "character 0x%lx is not unibyte in execution character set"
msgstr "le caractère 0x%lx n’est pas un octet unique dans le jeu de caractères d’exécution"

#: charset.c:1047
msgid "universal character names are only valid in C++ and C99"
msgstr "les noms de caractères universels sont seulement valides en C++ et C99"

#: charset.c:1051
msgid "C99's universal character names are incompatible with C90"
msgstr "les noms de caractères universels du C99 sont incompatibles avec ceux du C90"

#: charset.c:1054
#, c-format
msgid "the meaning of '\\%c' is different in traditional C"
msgstr "la signification de « \\%c » est différente en C traditionnel"

#: charset.c:1063
msgid "In _cpp_valid_ucn but not a UCN"
msgstr "Est dans _cpp_valid_ucn mais n'est pas un UCN"

# FIXME
#: charset.c:1096
#, c-format
msgid "incomplete universal character name %.*s"
msgstr "nom de caractère universel incomplet %.*s"

#: charset.c:1111
#, c-format
msgid "%.*s is not a valid universal character"
msgstr "%.*s n’est pas un caractère universel valide"

#: charset.c:1121 lex.c:1333
msgid "'$' in identifier or number"
msgstr "« $ » dans un identificateur ou un nombre"

#: charset.c:1131
#, c-format
msgid "universal character %.*s is not valid in an identifier"
msgstr "le caractère universel %.*s n’est pas valide dans un identificateur"

#: charset.c:1135
#, c-format
msgid "universal character %.*s is not valid at the start of an identifier"
msgstr "le caractère universel %.*s n’est pas valide au début d’un identificateur"

#: charset.c:1181 charset.c:2002
msgid "converting UCN to source character set"
msgstr "conversion d'un UCN vers le jeu de caractères source"

#: charset.c:1188
msgid "converting UCN to execution character set"
msgstr "conversion d'un UCN vers le jeu de caractères d’exécution"

#: charset.c:1277
msgid "the meaning of '\\x' is different in traditional C"
msgstr "la signification de « \\x » est différente en C traditionnel"

#: charset.c:1302
msgid "\\x used with no following hex digits"
msgstr "\\x utilisé sans être suivi de chiffres hexadécimaux"

#: charset.c:1309
msgid "hex escape sequence out of range"
msgstr "séquence d’échappement hexadécimale hors intervalle"

#: charset.c:1361
msgid "octal escape sequence out of range"
msgstr "séquence d’échappement octale hors intervalle"

#: charset.c:1443
msgid "the meaning of '\\a' is different in traditional C"
msgstr "la signification de « \\a » est différente en C traditionnel"

#: charset.c:1450
#, c-format
msgid "non-ISO-standard escape sequence, '\\%c'"
msgstr "séquence d’échappement « \\%c » non conforme au standard ISO"

#: charset.c:1458
#, c-format
msgid "unknown escape sequence: '\\%c'"
msgstr "séquence d'échappement inconnue : « \\%c »"

#: charset.c:1466
#, c-format
msgid "unknown escape sequence: '\\%s'"
msgstr "séquence d’échappement « \\%s » inconnue"

#: charset.c:1474
msgid "converting escape sequence to execution character set"
msgstr "conversion d’une séquence d’échappement vers le jeu de caractères d’exécution"

#: charset.c:1614
msgid "missing open quote"
msgstr "guillemet ouvrant de chaîne de caractères manquant"

#: charset.c:1829 charset.c:1893
msgid "character constant too long for its type"
msgstr "constante caractère trop longue pour son type"

#: charset.c:1832
msgid "multi-character character constant"
msgstr "constante caractère multi-caractères"

#: charset.c:1933
msgid "empty character constant"
msgstr "constante caractère vide"

#: charset.c:2049
#, c-format
msgid "failure to convert %s to %s"
msgstr "échec de conversion de %s vers %s"

#: directives.c:229 directives.c:272
#, c-format
msgid "extra tokens at end of #%s directive"
msgstr "éléments lexicaux superflus à la fin de la directive #%s"

#: directives.c:379
#, c-format
msgid "#%s is a GCC extension"
msgstr "#%s est une extension GCC"

#: directives.c:384
#, c-format
msgid "#%s is a deprecated GCC extension"
msgstr "#%s est une extension obsolète de GCC"

#: directives.c:397
msgid "suggest not using #elif in traditional C"
msgstr "il est suggéré de ne pas utiliser #elif en C traditionnel"

#: directives.c:400
#, c-format
msgid "traditional C ignores #%s with the # indented"
msgstr "le C traditionnel ignore la directive #%s si le caractère # est indenté"

#: directives.c:404
#, c-format
msgid "suggest hiding #%s from traditional C with an indented #"
msgstr "il est suggéré de cacher #%s au C traditionnel en indentant le « # »"

#: directives.c:430
msgid "embedding a directive within macro arguments is not portable"
msgstr "placer une directive dans les arguments d’une macro n’est pas portable"

#: directives.c:450
msgid "style of line directive is a GCC extension"
msgstr "la directive de style de ligne est une extension GCC"

#: directives.c:531
#, c-format
msgid "invalid preprocessing directive #%s"
msgstr "la directive de pré-traitement #%s invalide"

#: directives.c:600
msgid "\"defined\" cannot be used as a macro name"
msgstr "« defined » ne peut être utilisé comme nom de macro"

#: directives.c:605
msgid "\"__has_include__\" cannot be used as a macro name"
msgstr "« __has_include__ » ne peut être utilisé comme nom de macro"

#: directives.c:611
#, c-format
msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
msgstr "« %s » ne peut être utilisé comme nom de macro car c’est un opérateur C++"

#: directives.c:614
#, c-format
msgid "no macro name given in #%s directive"
msgstr "aucun nom de macro donné dans la directive #%s"

#: directives.c:617
msgid "macro names must be identifiers"
msgstr "les noms de macro doivent être des identificateurs"

#: directives.c:666 directives.c:671
#, c-format
msgid "undefining \"%s\""
msgstr "suppression de la définition de « %s »"

#: directives.c:727
msgid "missing terminating > character"
msgstr "caractère > de terminaison manquant"

#: directives.c:786
#, c-format
msgid "#%s expects \"FILENAME\" or <FILENAME>"
msgstr "#%s attend \"NOM_DE_FICHIER\" ou <NOM_DE_FICHIER>"

#: directives.c:828
#, c-format
msgid "empty filename in #%s"
msgstr "nom de fichier vide dans #%s"

#: directives.c:835
msgid "#include nested too deeply"
msgstr "#include imbriqué trop profondément"

#: directives.c:877
msgid "#include_next in primary source file"
msgstr "#include_next dans un fichier source primaire"

#: directives.c:903
#, c-format
msgid "invalid flag \"%s\" in line directive"
msgstr "drapeau « %s » invalide dans la ligne de directive"

#: directives.c:963
msgid "unexpected end of file after #line"
msgstr "fin de fichier inattendue après #line"

#: directives.c:966
#, c-format
msgid "\"%s\" after #line is not a positive integer"
msgstr "« %s » après #line n’est pas un nombre entier positif"

#: directives.c:972 directives.c:974
msgid "line number out of range"
msgstr "numéro de ligne hors intervalle"

#: directives.c:987 directives.c:1068
#, c-format
msgid "\"%s\" is not a valid filename"
msgstr "« %s » n’est pas un nom de fichier valide"

#: directives.c:1028
#, c-format
msgid "\"%s\" after # is not a positive integer"
msgstr "« %s » après # n’est pas un nombre entier positif"

#: directives.c:1087
#, c-format
msgid "file \"%s\" linemarker ignored due to incorrect nesting"
msgstr "le marqueur de ligne du fichier « %s » est ignoré à cause d’une imbrication incorrecte"

#: directives.c:1147 directives.c:1149 directives.c:1151 directives.c:1737
#, c-format
msgid "%s"
msgstr "%s"

#: directives.c:1175
#, c-format
msgid "invalid #%s directive"
msgstr "directive #%s invalide"

#: directives.c:1238
#, c-format
msgid "registering pragmas in namespace \"%s\" with mismatched name expansion"
msgstr "enregistrement des pragmas dans l'espace de nom « %s » avec une expansion de nom ne correspondant pas"

#: directives.c:1247
#, c-format
msgid "registering pragma \"%s\" with name expansion and no namespace"
msgstr "enregistrement du pragma « %s » avec une expansion de nom mais pas d’espace de nom"

#: directives.c:1265
#, c-format
msgid "registering \"%s\" as both a pragma and a pragma namespace"
msgstr "enregistrement de « %s » à la fois comme un pragma et un espace de nom de pragma"

#: directives.c:1268
#, c-format
msgid "#pragma %s %s is already registered"
msgstr "le #pragma %s %s est déjà enregistré"

#: directives.c:1271
#, c-format
msgid "#pragma %s is already registered"
msgstr "le #pragma %s est déjà enregistré"

#: directives.c:1301
msgid "registering pragma with NULL handler"
msgstr "enregistrement d’un pragma avec un handler NULL"

#: directives.c:1518
msgid "#pragma once in main file"
msgstr "#pragma once utilisé une seule fois dans le fichier principal"

#: directives.c:1541
msgid "invalid #pragma push_macro directive"
msgstr "directive #pragma push_macro invalide"

#: directives.c:1596
msgid "invalid #pragma pop_macro directive"
msgstr "directive #pragma pop_macro invalide"

#: directives.c:1651
msgid "invalid #pragma GCC poison directive"
msgstr "directive #pragma GCC poison invalide"

#: directives.c:1660
#, c-format
msgid "poisoning existing macro \"%s\""
msgstr "empoisonnement de la macro existante « %s »"

#: directives.c:1679
msgid "#pragma system_header ignored outside include file"
msgstr "#pragma system_header ignoré en dehors du fichier d'inclusion"

#: directives.c:1704
#, c-format
msgid "cannot find source file %s"
msgstr "impossible de trouver le fichier source %s"

#: directives.c:1708
#, c-format
msgid "current file is older than %s"
msgstr "le fichier courant est plus vieux que %s"

#: directives.c:1732
#, c-format
msgid "invalid \"#pragma GCC %s\" directive"
msgstr "directive « #pragma GCC %s » invalide"

#: directives.c:1933
msgid "_Pragma takes a parenthesized string literal"
msgstr "_Pragma attend une chaîne entourée de parenthèses"

#: directives.c:2021
msgid "#else without #if"
msgstr "#else sans #if"

#: directives.c:2026
msgid "#else after #else"
msgstr "#else après #else"

#: directives.c:2028 directives.c:2061
msgid "the conditional began here"
msgstr "la condition débute ici"

#: directives.c:2054
msgid "#elif without #if"
msgstr "#elif sans #if"

#: directives.c:2059
msgid "#elif after #else"
msgstr "#elif après #else"

#: directives.c:2090
msgid "#endif without #if"
msgstr "#endif sans #if"

#: directives.c:2166
msgid "missing '(' after predicate"
msgstr "« ( » manquante après le prédicat"

#: directives.c:2184
msgid "missing ')' to complete answer"
msgstr "« ) » manquante pour compléter la réponse"

#: directives.c:2196
msgid "predicate's answer is empty"
msgstr "la réponse du prédicat est vide"

#: directives.c:2226
msgid "assertion without predicate"
msgstr "assertion sans prédicat"

#: directives.c:2229
msgid "predicate must be an identifier"
msgstr "le prédicat doit être un identificateur"

#: directives.c:2311
#, c-format
msgid "\"%s\" re-asserted"
msgstr "assertion « %s » redondante"

#: directives.c:2587
#, c-format
msgid "unterminated #%s"
msgstr "#%s non terminé"

#: directives-only.c:221 lex.c:2862 traditional.c:175
msgid "unterminated comment"
msgstr "commentaire non terminé"

#: errors.c:291
#, c-format
msgid "%s: %s"
msgstr "%s : %s"

#: errors.c:304
msgid "stdout"
msgstr "sortie standard"

#: expr.c:628 expr.c:745
msgid "fixed-point constants are a GCC extension"
msgstr "les constantes à virgule fixe sont une extension GCC"

#: expr.c:653
msgid "invalid prefix \"0b\" for floating constant"
msgstr "préfixe « 0b » invalide pour une constante flottante"

#: expr.c:666
msgid "use of C++17 hexadecimal floating constant"
msgstr "utilisation d’une constante flottante hexadécimale C++17"

#: expr.c:669
msgid "use of C99 hexadecimal floating constant"
msgstr "utilisation d’une constante flottante hexadécimale C99"

#: expr.c:713
#, c-format
msgid "invalid suffix \"%.*s\" on floating constant"
msgstr "suffixe « %.*s » invalide pour une constante flottante"

#: expr.c:724 expr.c:784
#, c-format
msgid "traditional C rejects the \"%.*s\" suffix"
msgstr "le C traditionnel interdit le suffixe « %.*s »"

#: expr.c:732
msgid "suffix for double constant is a GCC extension"
msgstr "le suffixe pour les constantes double est une extension GCC"

#: expr.c:738
#, c-format
msgid "invalid suffix \"%.*s\" with hexadecimal floating constant"
msgstr "suffixe « %.*s » invalide pour une constante flottante hexadécimale"

#: expr.c:749
msgid "decimal float constants are a GCC extension"
msgstr "les constantes flottantes décimales sont une extension GCC"

#: expr.c:767
#, c-format
msgid "invalid suffix \"%.*s\" on integer constant"
msgstr "suffixe « %.*s » invalide pour une constante entière"

#: expr.c:792
msgid "use of C++11 long long integer constant"
msgstr "utilisation d’une constante entière « long long » C++11"

#: expr.c:793
msgid "use of C99 long long integer constant"
msgstr "utilisation d’une constante entière « long long » C99"

#: expr.c:809
msgid "imaginary constants are a GCC extension"
msgstr "les constantes imaginaires sont une extension GCC"

#: expr.c:815
msgid "binary constants are a C++14 feature or GCC extension"
msgstr "les constantes binaires sont une fonctionnalité de C++14 ou une extension GCC"

#: expr.c:817
msgid "binary constants are a GCC extension"
msgstr "les constantes binaires sont une extension GCC"

#: expr.c:912
msgid "integer constant is too large for its type"
msgstr "constante entière trop grande pour tenir dans son type"

#: expr.c:943
msgid "integer constant is so large that it is unsigned"
msgstr "cette constante entière est si grande qu'elle est non signée"

#: expr.c:1038
msgid "missing ')' after \"defined\""
msgstr "« ) » manquante après « defined »"

#: expr.c:1045
msgid "operator \"defined\" requires an identifier"
msgstr "l'opérateur « defined » requiert un identificateur"

#: expr.c:1053
#, c-format
msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
msgstr "(« %s » est un élément lexical alternatif pour « %s » en C++)"

#: expr.c:1065
msgid "this use of \"defined\" may not be portable"
msgstr "cette utilisation de « defined » peut ne pas être portable"

#: expr.c:1109
msgid "user-defined literal in preprocessor expression"
msgstr "chaîne définie par l'utilisateur dans une expression pour le préprocesseur"

#: expr.c:1114
msgid "floating constant in preprocessor expression"
msgstr "constante flottante dans une expression pour le préprocesseur"

#: expr.c:1120
msgid "imaginary number in preprocessor expression"
msgstr "constante complexe dans une expression pour le préprocesseur"

#: expr.c:1173
#, c-format
msgid "\"%s\" is not defined, evaluates to 0"
msgstr "« %s » n’est pas défini, évalué à 0"

#: expr.c:1186
msgid "assertions are a GCC extension"
msgstr "les assertions sont une extension GCC"

#: expr.c:1189
msgid "assertions are a deprecated extension"
msgstr "les assertions sont une extension obsolète"

#: expr.c:1435
#, c-format
msgid "unbalanced stack in %s"
msgstr "pile non balancée dans %s"

#: expr.c:1455
#, c-format
msgid "impossible operator '%u'"
msgstr "opérateur « %u » impossible"

#: expr.c:1556
msgid "missing ')' in expression"
msgstr "« ) » manquante dans l'expression"

#: expr.c:1585
msgid "'?' without following ':'"
msgstr "« ? » n’est pas suivi de « : »"

#: expr.c:1595
msgid "integer overflow in preprocessor expression"
msgstr "débordement d’entier dans l'expression pour le préprocesseur"

#: expr.c:1600
msgid "missing '(' in expression"
msgstr "« ( » manquante dans l'expression"

#: expr.c:1632
#, c-format
msgid "the left operand of \"%s\" changes sign when promoted"
msgstr "L'opérande de gauche de « %s » change de signe lors de sa promotion"

#: expr.c:1637
#, c-format
msgid "the right operand of \"%s\" changes sign when promoted"
msgstr "L'opérande de droite de « %s » change de signe lors de sa promotion"

#: expr.c:1896
msgid "traditional C rejects the unary plus operator"
msgstr "le C traditionnel rejette l'opérateur d'addition unaire"

#: expr.c:1994
msgid "comma operator in operand of #if"
msgstr "opérateur virgule dans l'opérande de #if"

#: expr.c:2130
msgid "division by zero in #if"
msgstr "division par zéro dans #if"

#: expr.c:2227
msgid "operator \"__has_include__\" requires a header string"
msgstr "l'opérateur « __has_include__ » requiert un chaîne d'entête"

#: expr.c:2243
msgid "missing ')' after \"__has_include__\""
msgstr "« ) » manquante après « __has_include__ »"

#: files.c:573
msgid "one or more PCH files were found, but they were invalid"
msgstr "un ou plusieurs fichiers PCH ont été trouvés, mais ils étaient invalides"

#: files.c:576
msgid "use -Winvalid-pch for more information"
msgstr "utilisez -Winvalid-pch pour plus d’informations"

#: files.c:981
#, c-format
msgid "no include path in which to search for %s"
msgstr "aucun chemin d’inclusion dans lequel on pourrait rechercher %s"

#: files.c:1455
msgid "Multiple include guards may be useful for:\n"
msgstr "Des garde-fous contre les inclusions multiples peuvent être utiles pour :\n"

#: init.c:569
msgid "cppchar_t must be an unsigned type"
msgstr "cppchar_t doit être d’un type non signé"

#: init.c:573
#, c-format
msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits"
msgstr "l'arithmétique du préprocesseur a une précision maximale de %lu bits ; la cible requière %lu bits"

#: init.c:580
msgid "CPP arithmetic must be at least as precise as a target int"
msgstr "l'arithmétique du CPP doit être au moins aussi précise que le type int de la cible"

#: init.c:583
msgid "target char is less than 8 bits wide"
msgstr "sur la cible, char fait moins de 8 bits"

#: init.c:587
msgid "target wchar_t is narrower than target char"
msgstr "sur la cible, wchar_t est plus petit que char"

#: init.c:591
msgid "target int is narrower than target char"
msgstr "sur la cible, int est plus petit que char"

#: init.c:596
msgid "CPP half-integer narrower than CPP character"
msgstr "les demi-entiers de CPP sont plus petits que les caractères de CPP"

#: init.c:600
#, c-format
msgid "CPP on this host cannot handle wide character constants over %lu bits, but the target requires %lu bits"
msgstr "CPP sur cette machine ne peut gérer les constantes de caractères larges de plus de %lu bits, mais la cible requière %lu bits"

#: lex.c:1126
msgid "backslash and newline separated by space"
msgstr "\\ et retour de chariot séparés par un blanc"

#: lex.c:1131
msgid "backslash-newline at end of file"
msgstr "\\ en fin de ligne à la fin du fichier"

#: lex.c:1147
#, c-format
msgid "trigraph ??%c converted to %c"
msgstr "trigraphe ??%c converti en %c"

#: lex.c:1155
#, c-format
msgid "trigraph ??%c ignored, use -trigraphs to enable"
msgstr "trigraphe ??%c ignoré, utilisez -trigraphs pour l'activer"

#: lex.c:1204
msgid "\"/*\" within comment"
msgstr "« /* » à l'intérieur d’un commentaire"

#: lex.c:1262
#, c-format
msgid "%s in preprocessing directive"
msgstr "%s dans la directive du préprocesseur"

# I18N
#: lex.c:1271
msgid "null character(s) ignored"
msgstr "caractère(s) nul(s) ignoré(s)"

#: lex.c:1308
#, c-format
msgid "`%.*s' is not in NFKC"
msgstr "« %.*s » n’est pas normalisée NFKC"

#: lex.c:1311
#, c-format
msgid "`%.*s' is not in NFC"
msgstr "« %.*s » n'est pas normalisée NFC"

#: lex.c:1365
msgid "__VA_OPT__ is not available until C++2a"
msgstr "__VA_OPT__ n'est pas disponible avant C++2a"

#: lex.c:1372
msgid "__VA_OPT__ can only appear in the expansion of a C++2a variadic macro"
msgstr "« __VA_OPT__ » peut seulement apparaître dans l'expansion de macros C++2a à nombre variable d’arguments"

#: lex.c:1403 lex.c:1495
#, c-format
msgid "attempt to use poisoned \"%s\""
msgstr "tentative d'utilisation d’un « %s » corrompu"

#: lex.c:1413 lex.c:1505
msgid "__VA_ARGS__ can only appear in the expansion of a C++11 variadic macro"
msgstr "« __VA_ARGS__ » peut seulement apparaître dans l'expansion de macros C++11 à nombre variable d’arguments"

#: lex.c:1417 lex.c:1509
msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
msgstr "« __VA_ARGS__ » peut seulement apparaître dans l'expansion des macros C99 à nombre variable d’arguments"

#: lex.c:1427 lex.c:1521
#, c-format
msgid "identifier \"%s\" is a special operator name in C++"
msgstr "l'identifiant « %s » est un nom d’opérateur spécial en C++"

#: lex.c:1826
msgid "raw string delimiter longer than 16 characters"
msgstr "délimiteur de chaîne brute plus long que 16 caractères"

#: lex.c:1830
msgid "invalid new-line in raw string delimiter"
msgstr "caractère de nouvelle ligne invalide dans un délimiteur de chaîne brute"

#: lex.c:1834
#, c-format
msgid "invalid character '%c' in raw string delimiter"
msgstr "caractère « %c » invalide dans un délimiteur de chaîne brute"

#: lex.c:1883 lex.c:1905
msgid "unterminated raw string"
msgstr "chaîne brute non terminée"

#: lex.c:1925 lex.c:2054
msgid "invalid suffix on literal; C++11 requires a space between literal and string macro"
msgstr "suffixe de chaîne invalide ; C++11 requière un espace entre une chaîne et une macro de chaîne"

#: lex.c:2037
msgid "null character(s) preserved in literal"
msgstr "caractère(s) nul préservé(s) dans la chaîne"

#: lex.c:2040
#, c-format
msgid "missing terminating %c character"
msgstr "caractère %c de terminaison manquant"

#: lex.c:2072
msgid "C++11 requires a space between string literal and macro"
msgstr "C++11 requière un espace entre une chaîne et une macro"

#: lex.c:2876 lex.c:2910
msgid "C++ style comments are not allowed in ISO C90"
msgstr "La syntaxe des commentaires du C++ n’est pas permise en C90 ISO"

#: lex.c:2878 lex.c:2889 lex.c:2913
msgid "(this will be reported only once per input file)"
msgstr "(ceci sera rapporté une seule fois seulement par fichier d'entrée)"

#: lex.c:2887
msgid "C++ style comments are incompatible with C90"
msgstr "La syntaxe des commentaires du C++ n’est pas permise en C90"

#: lex.c:2919
msgid "multi-line comment"
msgstr "commentaire multi-lignes"

#: lex.c:3299
#, c-format
msgid "unspellable token %s"
msgstr "l'élément lexical %s ne peut être épelé"

#: macro.c:94
msgid "'##' cannot appear at either end of __VA_OPT__"
msgstr "« ## » ne peut apparaître à aucune extrémité de __VA_OPT__"

#: macro.c:354
#, c-format
msgid "macro \"%s\" is not used"
msgstr "la macro « %s » n’est pas utilisée"

#: macro.c:393 macro.c:641
#, c-format
msgid "invalid built-in macro \"%s\""
msgstr "macro interne « %s » invalide"

#: macro.c:400 macro.c:502
#, c-format
msgid "macro \"%s\" might prevent reproducible builds"
msgstr "la macro « %s » pourrait empêcher les compilations reproductibles"

#: macro.c:431
msgid "could not determine file timestamp"
msgstr "date de modification du fichier indéterminable"

#: macro.c:548
msgid "could not determine date and time"
msgstr "date et heure indéterminable"

#: macro.c:564
msgid "__COUNTER__ expanded inside directive with -fdirectives-only"
msgstr "Expansion de __COUNTER__ à l'intérieur d’une directive avec -fdirectives-only"

#: macro.c:760
msgid "invalid string literal, ignoring final '\\'"
msgstr "chaîne invalide, le « \\ » final est ignoré"

#: macro.c:822
#, c-format
msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
msgstr "le collage de « %s » et de « %s » ne donne pas un élément lexical de pré-traitement valide"

#: macro.c:948
msgid "ISO C++11 requires at least one argument for the \"...\" in a variadic macro"
msgstr "ISO C++11 requiert au moins un argument pour « ... » dans une macro à nombre variable d’arguments"

#: macro.c:952
msgid "ISO C99 requires at least one argument for the \"...\" in a variadic macro"
msgstr "ISO C99 requiert au moins un argument pour « ... » dans une macro à nombre variable d’arguments"

#: macro.c:959
#, c-format
msgid "macro \"%s\" requires %u arguments, but only %u given"
msgstr "la macro « %s » requiert %u arguments, mais seulement %u ont été passés"

#: macro.c:964
#, c-format
msgid "macro \"%s\" passed %u arguments, but takes just %u"
msgstr "la macro « %s » a reçu %u arguments, mais elle n’en prend que %u"

#: macro.c:1162 traditional.c:827
#, c-format
msgid "unterminated argument list invoking macro \"%s\""
msgstr "liste d'arguments non terminée en invoquant la macro « %s »"

#: macro.c:1304
#, c-format
msgid "function-like macro \"%s\" must be used with arguments in traditional C"
msgstr "la macro « %s » ressemblant à une fonction doit être utilisée avec des arguments en C traditionnel"

#: macro.c:2083
#, c-format
msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C++98"
msgstr "appel de la macro %s avec l'argument %d : les arguments de macro vides sont indéfinis en ISO C++98"

#: macro.c:2091 macro.c:2100
#, c-format
msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90"
msgstr "appel de la macro %s avec l'argument %d : les arguments de macro vides sont indéfinis en ISO C++90"

#: macro.c:3059
#, c-format
msgid "duplicate macro parameter \"%s\""
msgstr "paramètre de macro « %s » dupliqués"

#: macro.c:3141
#, c-format
msgid "expected parameter name, found \"%s\""
msgstr "nom de paramètre attendu, « %s » rencontré"

#: macro.c:3142
#, c-format
msgid "expected ',' or ')', found \"%s\""
msgstr "« , » ou « ) » attendue, « %s » rencontré"

#: macro.c:3143
msgid "expected parameter name before end of line"
msgstr "nom de paramètre attendu avant la fin de la ligne"

#: macro.c:3144
msgid "expected ')' before end of line"
msgstr "« ) » attendue avant la fin de la ligne"

#: macro.c:3145
msgid "expected ')' after \"...\""
msgstr "« ) » attendue après « ... »"

#: macro.c:3202
msgid "anonymous variadic macros were introduced in C++11"
msgstr "les macros anonymes à nombre variable d’arguments ont été introduites avec le C++11"

#: macro.c:3203 macro.c:3207
msgid "anonymous variadic macros were introduced in C99"
msgstr "les macros anonymes à nombre variable d’arguments ont été introduites avec le C99"

#: macro.c:3213
msgid "ISO C++ does not permit named variadic macros"
msgstr "ISO C++ ne permet pas les macros nommées à nombre variable d’arguments"

#: macro.c:3214
msgid "ISO C does not permit named variadic macros"
msgstr "ISO C ne permet pas les macros nommées à nombre variable d’arguments"

#: macro.c:3260
msgid "'##' cannot appear at either end of a macro expansion"
msgstr "« ## » ne peut apparaître à aucune des extrémités d’une expansion de macro"

#: macro.c:3298
msgid "ISO C++11 requires whitespace after the macro name"
msgstr "ISO C++11 requiert un blanc après le nom de la macro"

#: macro.c:3299
msgid "ISO C99 requires whitespace after the macro name"
msgstr "ISO C99 requiert un blanc après le nom de la macro"

#: macro.c:3323
msgid "missing whitespace after the macro name"
msgstr "espacement manquant après le nom de la macro"

#: macro.c:3373
msgid "'#' is not followed by a macro parameter"
msgstr "« # » n'est pas suivi d’un paramètre de macro"

#: macro.c:3524
#, c-format
msgid "\"%s\" redefined"
msgstr "« %s » redéfini"

#: macro.c:3529
msgid "this is the location of the previous definition"
msgstr "ceci est l'emplacement d’une précédente définition"

#: macro.c:3633
#, c-format
msgid "macro argument \"%s\" would be stringified in traditional C"
msgstr "l'argument de macro « %s » serait changé en chaine dans le C traditionnel"

#: pch.c:90 pch.c:342 pch.c:356 pch.c:374 pch.c:380 pch.c:389 pch.c:396
msgid "while writing precompiled header"
msgstr "lors de l'écriture de l'en-tête pré-compilée"

#: pch.c:616
#, c-format
msgid "%s: not used because `%.*s' is poisoned"
msgstr "%s: n'est pas utilisé parce que « %.*s » est empoisonné"

#: pch.c:638
#, c-format
msgid "%s: not used because `%.*s' not defined"
msgstr "%s: n'est pas utilisé parce que « %.*s » n’est pas défini"

#: pch.c:650
#, c-format
msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
msgstr "%s: n’est pas utilisé parce que « %.*s » est défini en tant « %s » et non pas « %.*s »"

#: pch.c:691
#, c-format
msgid "%s: not used because `%s' is defined"
msgstr "%s: n'est pas utilisé parce que « %s » est défini"

#: pch.c:711
#, c-format
msgid "%s: not used because `__COUNTER__' is invalid"
msgstr "%s: non utilisé parce que « __COUNTER__ » est invalide"

#: pch.c:720 pch.c:878
msgid "while reading precompiled header"
msgstr "lors de la lecture d’un entête pré-compilée"

#: traditional.c:896
#, c-format
msgid "detected recursion whilst expanding macro \"%s\""
msgstr "récursion détectée lors de l'expansion de la macro « %s »"

#: traditional.c:1119
msgid "syntax error in macro parameter list"
msgstr "erreur de syntaxe dans la liste des paramètres de macro"

#~ msgid "\"%s\" may not appear in macro parameter list"
#~ msgstr "« %s » ne peut pas apparaître parmi la liste des paramètres de macro"

#~ msgid "macro parameters must be comma-separated"
#~ msgstr "les paramètres de macro doivent être séparés par des virgules"

#~ msgid "parameter name missing"
#~ msgstr "nom de paramètre manquant"

#~ msgid "missing ')' in macro parameter list"
#~ msgstr "« ) » manquante dans la liste des paramètres de macro"

#~ msgid "invalid hash type %d in cpp_macro_definition"
#~ msgstr "type de hachage %d invalide dans cpp_macro_definition"
