# French translations for the dpkg's manpages.
# Traduction française des pages de manuel de dpkg.
#
# Philippe Batailler <philippe.batailler@free.fr>, 2005, 2006.
# Nicolas François <nicolas.francois@centraliens.net>, 2006, 2007.
# Florent USSEIL <swiip81@free.fr>, 2008.
# Christian Perrier <bubulle@debian.org>, 2009, 2010, 2011.
msgid ""
msgstr ""
"Project-Id-Version: dpkg man pages\n"
"POT-Creation-Date: 2011-10-14 07:11+0300\n"
"PO-Revision-Date: 2011-07-31 22:04+0200\n"
"Last-Translator: Christian Perrier <bubulle@debian.org>\n"
"Language-Team: French <debian-l10n-french@lists.debian.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Lokalize 1.2\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"

#. type: TH
#: deb.5:1
#, no-wrap
msgid "deb"
msgstr "deb"

#. type: TH
#: deb.5:1 deb-control.5:3 deb-src-control.5:3 deb-version.5:5 deb-old.5:1
#: deb-override.5:15 deb-symbols.5:2 deb-triggers.5:1 dpkg.1:1
#: dpkg-architecture.1:1 dpkg-buildpackage.1:1 dpkg-deb.1:1 dpkg-divert.8:1
#: dpkg-genchanges.1:1 dpkg-gencontrol.1:1 dpkg-gensymbols.1:2
#: dpkg-maintscript-helper.1:1 dpkg-mergechangelogs.1:1 dpkg-name.1:6
#: dpkg-parsechangelog.1:1 dpkg-query.1:1 dpkg-scanpackages.1:15
#: dpkg-scansources.1:1 dpkg-shlibdeps.1:1 dpkg-source.1:2 dpkg-trigger.1:1
#: dselect.1:1 update-alternatives.8:8
#, fuzzy, no-wrap
#| msgid "2011-07-04"
msgid "2011-08-14"
msgstr "07-04-2011"

#. type: TH
#: deb.5:1 deb-control.5:3 deb-src-control.5:3 deb-split.5:1 deb-version.5:5
#: deb-old.5:1 deb-override.5:15 deb-extra-override.5:1 deb-shlibs.5:16
#: deb-substvars.5:2 deb-symbols.5:2 deb-triggers.5:1 dpkg.1:1
#: dpkg-architecture.1:1 dpkg.cfg.5:1 dpkg-buildflags.1:1
#: dpkg-buildpackage.1:1 dpkg-checkbuilddeps.1:1 dpkg-distaddfile.1:1
#: dpkg-deb.1:1 dpkg-divert.8:1 dpkg-genchanges.1:1 dpkg-gencontrol.1:1
#: dpkg-gensymbols.1:2 dpkg-maintscript-helper.1:1 dpkg-mergechangelogs.1:1
#: dpkg-name.1:6 dpkg-parsechangelog.1:1 dpkg-query.1:1 dpkg-scanpackages.1:15
#: dpkg-scansources.1:1 dpkg-shlibdeps.1:1 dpkg-source.1:2 dpkg-split.1:2
#: dpkg-trigger.1:1 dpkg-vendor.1:1 dselect.1:1 dselect.cfg.5:1
#: start-stop-daemon.8:1 update-alternatives.8:8
#, no-wrap
msgid "Debian Project"
msgstr "Projet Debian"

#. type: TH
#: deb.5:1 deb-control.5:3 deb-src-control.5:3 deb-split.5:1 deb-version.5:5
#: deb-old.5:1 dselect.1:1
#, no-wrap
msgid "Debian"
msgstr "Debian"

#. type: SH
#: deb.5:2 deb-control.5:4 deb-src-control.5:4 deb-split.5:2 deb-version.5:6
#: deb-old.5:2 deb-override.5:16 deb-extra-override.5:2 deb-shlibs.5:17
#: deb-substvars.5:3 deb-symbols.5:3 deb-triggers.5:2 dpkg.1:2
#: dpkg-architecture.1:2 dpkg.cfg.5:2 dpkg-buildflags.1:2
#: dpkg-buildpackage.1:2 dpkg-checkbuilddeps.1:2 dpkg-distaddfile.1:2
#: dpkg-deb.1:2 dpkg-divert.8:2 dpkg-genchanges.1:2 dpkg-gencontrol.1:2
#: dpkg-gensymbols.1:3 dpkg-maintscript-helper.1:2 dpkg-mergechangelogs.1:2
#: dpkg-name.1:7 dpkg-parsechangelog.1:2 dpkg-query.1:2 dpkg-scanpackages.1:16
#: dpkg-scansources.1:2 dpkg-shlibdeps.1:2 dpkg-source.1:3 dpkg-split.1:3
#: dpkg-statoverride.8:2 dpkg-trigger.1:2 dpkg-vendor.1:2 dselect.1:2
#: dselect.cfg.5:2 start-stop-daemon.8:2 update-alternatives.8:9
#, no-wrap
msgid "NAME"
msgstr "NOM"

#. type: Plain text
#: deb.5:4
msgid "deb - Debian binary package format"
msgstr "deb - Format des paquets binaires Debian"

#. type: SH
#: deb.5:4 deb-control.5:7 deb-src-control.5:7 deb-split.5:4 deb-version.5:9
#: deb-old.5:5 deb-override.5:19 deb-extra-override.5:5 deb-substvars.5:6
#: deb-symbols.5:6 deb-triggers.5:5 dpkg.1:5 dpkg-architecture.1:5
#: dpkg-buildflags.1:5 dpkg-buildpackage.1:5 dpkg-checkbuilddeps.1:5
#: dpkg-distaddfile.1:5 dpkg-deb.1:5 dpkg-divert.8:5 dpkg-genchanges.1:5
#: dpkg-gencontrol.1:5 dpkg-gensymbols.1:6 dpkg-maintscript-helper.1:5
#: dpkg-mergechangelogs.1:5 dpkg-name.1:10 dpkg-parsechangelog.1:5
#: dpkg-query.1:5 dpkg-scanpackages.1:19 dpkg-scansources.1:5
#: dpkg-shlibdeps.1:5 dpkg-source.1:6 dpkg-split.1:6 dpkg-statoverride.8:5
#: dpkg-trigger.1:5 dpkg-vendor.1:5 dselect.1:5 start-stop-daemon.8:5
#: update-alternatives.8:12
#, no-wrap
msgid "SYNOPSIS"
msgstr "SYNOPSIS"

#. type: Plain text
#: deb.5:6 deb-split.5:6 deb-old.5:7
msgid "I<filename>B<.deb>"
msgstr "I<nom-du-fichier.deb>"

#. type: SH
#: deb.5:6 deb-control.5:10 deb-src-control.5:10 deb-split.5:6
#: deb-version.5:11 deb-old.5:8 deb-override.5:22 deb-extra-override.5:8
#: deb-shlibs.5:20 deb-substvars.5:9 deb-symbols.5:9 deb-triggers.5:8
#: dpkg.1:19 dpkg-architecture.1:10 dpkg.cfg.5:5 dpkg-buildflags.1:9
#: dpkg-buildpackage.1:9 dpkg-checkbuilddeps.1:10 dpkg-distaddfile.1:9
#: dpkg-deb.1:9 dpkg-divert.8:10 dpkg-genchanges.1:10 dpkg-gencontrol.1:9
#: dpkg-gensymbols.1:10 dpkg-maintscript-helper.1:15 dpkg-mergechangelogs.1:9
#: dpkg-name.1:16 dpkg-parsechangelog.1:9 dpkg-query.1:9
#: dpkg-scanpackages.1:27 dpkg-scansources.1:13 dpkg-shlibdeps.1:9
#: dpkg-source.1:10 dpkg-split.1:10 dpkg-statoverride.8:9 dpkg-trigger.1:12
#: dpkg-vendor.1:9 dselect.1:9 dselect.cfg.5:5 start-stop-daemon.8:9
#: update-alternatives.8:16
#, no-wrap
msgid "DESCRIPTION"
msgstr "DESCRIPTION"

#. type: Plain text
#: deb.5:12
msgid ""
"The B<.deb> format is the Debian binary package file format. It is "
"understood by dpkg 0.93.76 and later, and is generated by default by all "
"versions of dpkg since 1.2.0 and all i386/ELF versions since 1.1.1elf."
msgstr ""
"Le format B<.deb> est le format des paquets binaires de Debian. Il est "
"compatible avec les versions 0.93.76 et ultérieures de dpkg, et il est "
"généré par défaut par toutes les versions de dpkg depuis la version 1.2.0 "
"ainsi que toutes les versions i386/ELF depuis la version 1.1.1elf."

#. type: Plain text
#: deb.5:16
msgid ""
"The format described here is used since Debian 0.93; details of the old "
"format are described in B<deb-old>(5)."
msgstr ""
"Le format décrit ici est utilisé depuis la version 0.93 de Debian ; les "
"détails concernant le vieux format sont consultables dans B<deb-old>(5)."

#. type: SH
#: deb.5:16 deb-split.5:9 deb-old.5:18
#, no-wrap
msgid "FORMAT"
msgstr "FORMAT"

#. type: Plain text
#: deb.5:22
msgid ""
"The file is an B<ar> archive with a magic value of B<!E<lt>archE<gt>>.  The "
"file names might contain a trailing slash."
msgstr ""
"Le fichier est une archive B<ar> avec un numéro magique de B<!E<lt>archE<gt>."
">. Les noms de fichiers peuvent comporter un caractère « / » final."

#. type: Plain text
#: deb.5:28
msgid ""
"The B<tar> archives currently allowed are, the old-style (v7) format, the "
"pre-POSIX ustar format, a subset of the GNU format (only the new style long "
"pathnames and long linknames, supported since dpkg 1.4.1.17), and the POSIX "
"ustar format (long names supported since dpkg 1.15.0).  Unrecognized tar "
"typeflags are considered an error."
msgstr ""
"Les archives B<tar> actuellement gérées sont, le format v7 d'origine, the "
"format ustar pré-POSIX, un sous-ensemble du format GNU (uniquement le "
"nouveau format de noms longs pour les chemins et les liens, gérés depuis "
"dpkg 1.4.1.17) et le format ustar POSIX (noms longs gérés depuis dpkg "
"1.15.0). Les marqueurs du type (« typeflags ») tar inconnus provoquent une "
"erreur."

#. type: Plain text
#: deb.5:38
msgid ""
"The first member is named B<debian-binary> and contains a series of lines, "
"separated by newlines. Currently only one line is present, the format "
"version number, B<2.0> at the time this manual page was written.  Programs "
"which read new-format archives should be prepared for the minor number to be "
"increased and new lines to be present, and should ignore these if this is "
"the case."
msgstr ""
"Le premier membre est nommé B<debian-binary> et contient une succession de "
"lignes, séparées par des retours-chariot. Pour le moment, une seule ligne "
"est présente : le numéro de version du format, B<2.0> à l'heure où ce "
"document a été écrit. Les programmes lisant des archives Debian récentes "
"doivent être préparés à une augmentation du numéro de version mineur et à la "
"présence de nouvelles lignes, ainsi qu'à les ignorer s'il le faut."

#. type: Plain text
#: deb.5:43
msgid ""
"If the major number has changed, an incompatible change has been made and "
"the program should stop. If it has not, then the program should be able to "
"safely continue, unless it encounters an unexpected member in the archive "
"(except at the end), as described below."
msgstr ""
"Si le numéro de version majeur a changé, cela signifie qu'une modification "
"entraînant une incompatibilité entre les versions a été effectuée, et le "
"programme doit alors s'arrêter. Si ce n'est pas le cas, le programme doit "
"être en mesure de continuer à traiter correctement le fichier, à moins qu'il "
"ne rencontre un membre non reconnu dans l'archive (excepté à la fin de cette "
"dernière), comme décrit ci-dessous."

#. type: Plain text
#: deb.5:53
msgid ""
"The second required member is named B<control.tar.gz>.  It is a gzipped tar "
"archive containing the package control information, as a series of plain "
"files, of which the file B<control> is mandatory and contains the core "
"control information. The control tarball may optionally contain an entry for "
"`B<.>', the current directory."
msgstr ""
"Le second membre requis est nommé B<control.tar.gz>. Il s'agit d'une archive "
"tar compressée grâce à gzip contenant les informations de contrôle du "
"paquet, sous la forme d'une série de fichiers, parmi lesquels le fichier "
"B<control> est strictement requis et contient les principales informations "
"de contrôle. L'archive de contrôle peut éventuellement contenir une entrée "
"pour « . », le répertoire courant."

#. type: Plain text
#: deb.5:62
msgid ""
"The third, last required member is named B<data.tar>.  It contains the "
"filesystem as a tar archive, either not compressed (supported since dpkg "
"1.10.24), or compressed with gzip (with B<.gz> extension), xz (with B<.xz> "
"extension, supported since dpkg 1.15.6), bzip2 (with B<.bz2> extension, "
"supported since dpkg 1.10.24) or lzma (with B<.lzma> extension, supported "
"since dpkg 1.13.25)."
msgstr ""
"Le troisième et dernier membre obligatoire est appelé B<data.tar>. Il "
"contient le système de fichiers sous forme d'une archive tar, soit non "
"compressée (géré depuis dpkg 1.10.24) ou compressé avec gzip (avec extension "
"B<.gz>), xz (avec extensions B<.xz>, géré depuis dpkg 1.15.6), bzip2 (avec "
"extensions B<.bz2>, géré depuis dpkg 1.10.24) ou lzma (avec extension B<."
"lzma>, géré depuis dpkg 1.13.25)."

#. type: Plain text
#: deb.5:73
msgid ""
"These members must occur in this exact order. Current implementations should "
"ignore any additional members after B<data.tar>.  Further members may be "
"defined in the future, and (if possible) will be placed after these three. "
"Any additional members that may need to be inserted before B<data.tar> and "
"which should be safely ignored by older programs, will have names starting "
"with an underscore, `B<_>'."
msgstr ""
"Ces trois membres doivent apparaître dans cet ordre exact. Les "
"implémentations actuelles devraient ignorer tout membre additionnel suivant "
"B<data.tar.gz>. D'autres membres seront éventuellement proposés, et (si "
"possible) seront placés après ces trois derniers. Tout autre membre qui "
"nécessitera d'être inséré avant B<data.tar.gz> et qui pourra être ignoré "
"sans problème par des programmes plus anciens, aura un nom commençant par un "
"caractère de soulignement, « B<_> »."

#. type: Plain text
#: deb.5:79
msgid ""
"Those new members which won't be able to be safely ignored will be inserted "
"before B<data.tar> with names starting with something other than "
"underscores, or will (more likely) cause the major version number to be "
"increased."
msgstr ""
"Les nouveaux membres qui ne pourront pas être ignorés sans conséquence "
"seront insérés avant B<data.tar.gz> avec des noms préfixés par quelque chose "
"d'autre qu'un caractère de soulignement, ou impliqueront plus probablement "
"une incrémentation du numéro majeur de version."

#. type: SH
#: deb.5:79 deb-control.5:271 deb-src-control.5:327 deb-split.5:49
#: deb-version.5:116 deb-old.5:51 deb-override.5:62 deb-extra-override.5:37
#: deb-shlibs.5:61 deb-substvars.5:154 deb-symbols.5:61 deb-triggers.5:67
#: dpkg.1:768 dpkg-architecture.1:299 dpkg.cfg.5:23 dpkg-buildpackage.1:249
#: dpkg-deb.1:259 dpkg-divert.8:132 dpkg-gensymbols.1:450 dpkg-name.1:96
#: dpkg-query.1:220 dpkg-scanpackages.1:110 dpkg-scansources.1:71
#: dpkg-shlibdeps.1:324 dpkg-source.1:725 dpkg-split.1:217
#: dpkg-statoverride.8:84 dpkg-trigger.1:66 dselect.1:445 dselect.cfg.5:23
#: update-alternatives.8:508
#, no-wrap
msgid "SEE ALSO"
msgstr "VOIR AUSSI"

#. type: Plain text
#: deb.5:82
msgid "B<deb-old>(5), B<dpkg-deb>(1), B<deb-control>(5)."
msgstr "B<deb-old>(5), B<dpkg-deb>(1), B<deb-control>(5)."

#. type: TH
#: deb-control.5:3
#, no-wrap
msgid "deb-control"
msgstr "deb-control"

#. type: Plain text
#: deb-control.5:6
msgid "deb-control - Debian packages' master control file format"
msgstr ""
"deb-control - Format du fichier principal de contrôle dans les paquets Debian"

#. type: Plain text
#: deb-control.5:9 deb-src-control.5:9
msgid "control"
msgstr "contrôle"

#. type: Plain text
#: deb-control.5:24
msgid ""
"Each Debian package contains the master `control' file, which contains a "
"number of fields, or comments when the line starts with B<'#'>. Each field "
"begins with a tag, such as B<Package> or B<Version> (case insensitive), "
"followed by a colon, and the body of the field.  Fields are delimited only "
"by field tags. In other words, field text may be multiple lines in length, "
"but the installation tools will generally join lines when processing the "
"body of the field (except in the case of the B<Description> field, see "
"below)."
msgstr ""
"Chaque paquet Debian possède un fichier principal de contrôle qui contient "
"un certain nombre de champs ou de commentaires pour les lignes commençant "
"par un caractère « B<#> ». Chaque champ commence par une étiquette, telle "
"que B<Package> ou B<Version> (la casse n'importe pas), suivie d'un « : », et "
"du contenu du champ. Les champs sont séparés seulement par des étiquettes de "
"champ. En d'autres termes, le contenu d'un champ peut s'étendre sur "
"plusieurs lignes, mais les outils d'installation joindront en général les "
"lignes pendant le traitement du contenu du champ (sauf pour le champ "
"B<Description>, voyez ci-dessous)."

#. type: SH
#: deb-control.5:25
#, no-wrap
msgid "REQUIRED FIELDS"
msgstr "LES CHAMPS EXIGÉS"

#. type: TP
#: deb-control.5:26
#, no-wrap
msgid "B<Package:>I< package-name>"
msgstr "B<Package:>I< nom-du-paquet>"

#. type: Plain text
#: deb-control.5:30
msgid ""
"The value of this field determines the package name, and is used to generate "
"file names by most installation tools."
msgstr ""
"La valeur de ce champ donne le nom du paquet, et la plupart des outils "
"d'installation s'en servent pour produire les noms des paquets."

#. type: TP
#: deb-control.5:30
#, no-wrap
msgid "B<Version:>I< version-string>"
msgstr "B<Version:> I<chaîne pour la version>"

#. type: Plain text
#: deb-control.5:37
msgid ""
"Typically, this is the original package's version number in whatever form "
"the program's author uses. It may also include a Debian revision number (for "
"non-native packages). The exact format and sorting algorithm are described "
"in B<deb-version>(5)."
msgstr ""
"C'est classiquement le numéro de version du paquet d'origine dans la forme "
"choisie par l'auteur du programme. Il peut y avoir aussi un numéro de "
"révision Debian (pour les paquets non natifs). Le format exact et "
"l'algorithme de tri sont décrits dans B<deb-version>(5)."

#. type: TP
#: deb-control.5:37
#, no-wrap
msgid "B<Maintainer:>I< fullname-email>"
msgstr "B<Maintainer:> I< nom-complet-adresse-électronique>"

#. type: Plain text
#: deb-control.5:42
msgid ""
"Should be in the format `Joe Bloggs E<lt>jbloggs@foo.comE<gt>', and is "
"typically the person who created the package, as opposed to the author of "
"the software that was packaged."
msgstr ""
"Le format de ce champ sera « Jean Dupont E<lt>jdupont@foo.comE<gt> » ; et "
"c'est bien sûr le créateur du paquet, par opposition à l'auteur du programme "
"mis en paquet."

#. type: TP
#: deb-control.5:42
#, no-wrap
msgid "B<Description:>I< short-description>"
msgstr "B<Description:> I< description courte>"

#. type: Plain text
#: deb-control.5:45
msgid "B< >I<long-description>"
msgstr "B< >I<description longue>"

#. type: Plain text
#: deb-control.5:51
msgid ""
"The format for the package description is a short brief summary on the first "
"line (after the \"Description\" field). The following lines should be used "
"as a longer, more detailed description. Each line of the long description "
"must be preceded by a space, and blank lines in the long description must "
"contain a single '.' following the preceding space."
msgstr ""
"Le format de la description du paquet est un résumé bref sur la première "
"ligne (après le champ « Description »). Les lignes suivantes peuvent servir "
"à une description plus longue et plus détaillée. Chaque ligne de cette "
"description longue doit être précédée d'une espace ; quand c'est une ligne "
"blanche, elle doit contenir un seul « . » après cet espace."

#. type: SH
#: deb-control.5:52
#, no-wrap
msgid "OPTIONAL FIELDS"
msgstr "CHAMPS OPTIONNELS"

#. type: TP
#: deb-control.5:53 deb-src-control.5:90
#, no-wrap
msgid "B<Section:>I< section>"
msgstr "B<Section:> I< section>"

#. type: Plain text
#: deb-control.5:58
msgid ""
"This is a general field that gives the package a category based on the "
"software that it installs. Some common sections are `utils', `net', `mail', "
"`text', `x11' etc."
msgstr ""
"C'est un champ général qui indique la catégorie d'un paquet ; cette "
"catégorie est fondée sur le programme que ce paquet installe. « Utils », "
"« net », « mail », « text », « x11 », etc. représentent quelques catégories "
"habituelles."

#. type: TP
#: deb-control.5:58 deb-src-control.5:96
#, no-wrap
msgid "B<Priority:>I< priority>"
msgstr "B<Priority:> I<priorité>"

#. type: Plain text
#: deb-control.5:62
msgid ""
"Sets the importance of this package in relation to the system as a whole.  "
"Common priorities are `required', `standard', `optional', `extra' etc."
msgstr ""
"Définit l'importance du paquet à l'intérieur du système général. "
"« Required », « standard », « optional », « extra », etc. représentent des "
"priorités habituelles."

#. type: Plain text
#: deb-control.5:71 deb-src-control.5:109
msgid ""
"In Debian, the B<Section> and B<Priority> fields have a defined set of "
"accepted values based on the Policy Manual.  A list of these values can be "
"obtained from the latest version of the B<debian-policy> package."
msgstr ""
"Les champs B<Section> et B<Priority> possèdent un ensemble défini de valeurs "
"acceptées, tiré de la Charte Debian (« Debian Policy »). On peut en trouver "
"une liste dans la version la plus récente du paquet B<debian-policy>."

#. type: TP
#: deb-control.5:71 deb-src-control.5:216
#, no-wrap
msgid "B<Essential:> B<yes>|B<no>"
msgstr "B<Essential:> B<yes>|B<no>"

#. type: Plain text
#: deb-control.5:78
msgid ""
"This field is usually only needed when the answer is B<yes>. It denotes a "
"package that is required for proper operation of the system. Dpkg or any "
"other installation tool will not allow an B<Essential> package to be removed "
"(at least not without using one of the force options)."
msgstr ""
"On se sert habituellement de ce champ uniquement si la réponse est B<yes>. "
"Il signifie que ce paquet est exigé pour un fonctionnement correct du "
"système. Dpkg et les autres outils d'installation interdisent la suppression "
"d'un paquet B<Essential> (du moins tant qu'une des options de forçage n'est "
"pas utilisée)."

#. type: TP
#: deb-control.5:78
#, no-wrap
msgid "B<Architecture:> I<arch>|B<all>"
msgstr "B<Architecture:> I<arch>|B<all>"

#. type: Plain text
#: deb-control.5:86
msgid ""
"The architecture specifies which type of hardware this package was compiled "
"for. Common architectures are `i386', `m68k', `sparc', `alpha', `powerpc' "
"etc. Note that the B<all> option is meant for packages that are architecture "
"independent. Some examples of this are shell and Perl scripts, and "
"documentation."
msgstr ""
"L'architecture précise pour quel type de matériel le paquet a été compilé. "
"Voici quelques architectures habituelles : « i386 », « m68k », « sparc », "
"« alpha », « powerpc », etc. Remarquez que l'option B<all> signifie que le "
"paquet est indépendant de toute architecture. Les scripts shell ou Perl, "
"ainsi que la documentation sont dans ce cas."

#. type: TP
#: deb-control.5:86 deb-src-control.5:85
#, no-wrap
msgid "B<Origin:>I< name>"
msgstr "B<Origin:> I< nom>"

#. type: Plain text
#: deb-control.5:89
msgid "The name of the distribution this package is originating from."
msgstr "Nom de la distribution dont ce paquet provient."

#. type: TP
#: deb-control.5:89 deb-src-control.5:66
#, no-wrap
msgid "B<Bugs:>I< url>"
msgstr "B<Bugs:> I< URL>"

#. type: Plain text
#: deb-control.5:94
msgid ""
"The I<url> of the bug tracking system for this package. The current used "
"format is I<bts-type>B<://>I<bts-address>, like B<debbugs://bugs.debian.org>."
msgstr ""
"I<url>URL du système de suivi de bogues (BTS) de ce paquet. Le format "
"utilisé est I<type_de_bts>B<://>I<adresse_du_bts>, par exemple B<debbugs://"
"bugs.debian.org>."

#. type: TP
#: deb-control.5:94 deb-src-control.5:62
#, no-wrap
msgid "B<Homepage:>I< url>"
msgstr "B<Homepage:>I< URL>"

#. type: Plain text
#: deb-control.5:97
msgid "The upstream project home page I<url>."
msgstr "I<URL> de la page d'accueil du projet amont."

#. type: TP
#: deb-control.5:97 deb-src-control.5:222
#, no-wrap
msgid "B<Tag:>I< tag-list>"
msgstr "B<Tag:> I<liste d'étiquettes>"

#. type: Plain text
#: deb-control.5:101
msgid ""
"List of tags describing the qualities of the package. The description and "
"list of supported tags can be found in the B<debtags> package."
msgstr ""
"Liste d'étiquettes décrivant les qualités du paquet. La description et la "
"liste des étiquettes (« tags ») gérées peut être trouvée dans le paquet "
"B<debtags>."

#. type: TP
#: deb-control.5:101 deb-src-control.5:219
#, no-wrap
msgid "B<Multi-Arch:> B<same>|B<foreign>|B<allowed>"
msgstr "B<Multi-Arch:> B<same>|B<foreign>|B<allowed>"

#. type: Plain text
#: deb-control.5:113
msgid ""
"This field is used to indicate how this package should behave on a multi-"
"arch installations. The value B<same> means that the package is co-"
"installable with itself, but it must not be used to satisfy the dependency "
"of any package of a different architecture from itself. The value B<foreign> "
"means that the package is not co-installable with itself, but should be "
"allowed to satisfy the dependency of a package of a different arch from "
"itself. The value B<allowed> allows reverse-dependencies to indicate in "
"their Depends field that they need a package from a foreign architecture, "
"but has no effect otherwise. This field should not be present in packages "
"with the B<Architecture: all> field."
msgstr ""

#. type: TP
#: deb-control.5:113
#, no-wrap
msgid "B<Source:>I< source-name>"
msgstr "B<Source:>I< nom du source>"

#. type: Plain text
#: deb-control.5:117
msgid ""
"The name of the source package that this binary package came from, if "
"different than the name of the package itself."
msgstr ""
"Le nom du paquet source d'où provient le paquet binaire, s'il y a une "
"différence entre les deux noms."

#. type: TP
#: deb-control.5:118 deb-src-control.5:202
#, no-wrap
msgid "B<Subarchitecture:>I< value>"
msgstr "B<Subarchitecture:>I< valeur>"

#. type: TP
#: deb-control.5:121 deb-src-control.5:205
#, no-wrap
msgid "B<Kernel-Version:>I< value>"
msgstr "B<Kernel-Version:>I< valeur>"

#. type: TP
#: deb-control.5:124 deb-src-control.5:208
#, no-wrap
msgid "B<Installer-Menu-Item:>I< value>"
msgstr "B<Installer-Menu-Item:>I< valeur>"

#. type: Plain text
#: deb-control.5:131 deb-src-control.5:215
msgid ""
"These fields are used by the debian-installer and are usually not needed.  "
"See /usr/share/doc/debian-installer/devel/modules.txt from the B<debian-"
"installer> package for more details about them."
msgstr ""
"Ces champs sont utilisés par l'installateur et ne sont en général pas "
"nécessaires. Veuillez consulter /usr/share/doc/debian-installer/devel/"
"modules.txt  fourni avec le paquet B<debian-installer> pour plus de détails."

#. type: TP
#: deb-control.5:132 deb-src-control.5:233
#, no-wrap
msgid "B<Depends:>I< package-list>"
msgstr "B<Depends:>I< liste de paquets>"

#. type: Plain text
#: deb-control.5:143
msgid ""
"List of packages that are required for this package to provide a non-trivial "
"amount of functionality. The package maintenance software will not allow a "
"package to be installed if the packages listed in its B<Depends> field "
"aren't installed (at least not without using the force options).  In an "
"installation, the postinst scripts of packages listed in Depends: fields are "
"run before those of the packages which depend on them. On the opposite, in a "
"removal, the prerm script of a package is run before those of the packages "
"listed in its Depends: field."
msgstr ""
"C'est la liste des paquets exigés pour que ce paquet arrive à fonctionner de "
"manière non triviale. Le programme de maintenance des paquets interdit "
"l'installation d'un paquet quand les paquets répertoriés dans le champ "
"B<Depends> ne sont pas installés (du moins tant qu'une option de forçage "
"n'est pas utilisée) ; il lance les scripts « postinst » des paquets "
"répertoriés dans les champs « Depends: » avant les scripts « postinst » des "
"paquets qui dépendent d'eux. À l'inverse, lors d'une suppression les scripts "
"« prerm » des paquets sont lancés avant ceux de leurs dépendances."

#. type: TP
#: deb-control.5:143 deb-src-control.5:236
#, no-wrap
msgid "B<Pre-Depends:>I< package-list>"
msgstr "B<Pre-Depends:>I< liste de paquets>"

#. type: Plain text
#: deb-control.5:150
msgid ""
"List of packages that must be installed B<and> configured before this one "
"can be installed. This is usually used in the case where this package "
"requires another package for running its preinst script."
msgstr ""
"C'est la liste des paquets qui doivent être installés B<et> configurés avant "
"que ce paquet puisse être installé. Habituellement, on utilise ce champ "
"quand un paquet a besoin d'un autre paquet pour lancer son script "
"« preinst »."

#. type: TP
#: deb-control.5:150 deb-src-control.5:239
#, no-wrap
msgid "B<Recommends:>I< package-list>"
msgstr "B<Recommends:>I< liste de paquets>"

#. type: Plain text
#: deb-control.5:157
msgid ""
"Lists packages that would be found together with this one in all but unusual "
"installations. The package maintenance software will warn the user if they "
"install a package without those listed in its B<Recommends> field."
msgstr ""
"C'est la liste des paquets qu'on trouverait avec ce paquet dans toute "
"installation standard. Le programme de maintenance des paquets avertit "
"l'utilisateur quand il installe un paquet sans installer les paquets "
"répertoriés dans le champ B<Recommends.>"

#. type: TP
#: deb-control.5:157 deb-src-control.5:242
#, no-wrap
msgid "B<Suggests:>I< package-list>"
msgstr "B<Suggests:>I<liste de paquets>"

#. type: Plain text
#: deb-control.5:162
msgid ""
"Lists packages that are related to this one and can perhaps enhance its "
"usefulness, but without which installing this package is perfectly "
"reasonable."
msgstr ""
"C'est la liste des paquets qui, associés avec ce paquet, peuvent améliorer "
"son utilité ; néanmoins, une installation sans ces paquets est parfaitement "
"raisonnable."

#. type: Plain text
#: deb-control.5:174
msgid ""
"The syntax of B<Depends>, B<Pre-Depends>, B<Recommends> and B<Suggests> "
"fields is a list of groups of alternative packages. Each group is a list of "
"packages separated by vertical bar (or `pipe') symbols, `|'. The groups are "
"separated by commas. Commas are to be read as `AND', and pipes as `OR', with "
"pipes binding more tightly. Each package name is optionally followed by a "
"version number specification in parentheses."
msgstr ""
"La syntaxe des champs B<Depends,> B<Pre-Depends,> B<Recommends,> et "
"B<Suggests> est une liste de groupes contenant des paquets successifs. "
"Chaque groupe est une liste de paquets séparés par une barre verticale (le "
"symbole du tube) « | ». Les groupes sont séparés par des virgules. Une "
"virgule représente un « ET » logique et une barre verticale représente un "
"« OU » logique ; le tube représente un lien plus fort. Chaque élément est le "
"nom d'un paquet suivi de façon optionnelle par un numéro de version entre "
"parenthèses."

#. type: Plain text
#: deb-control.5:180
msgid ""
"A version number may start with a `E<gt>E<gt>', in which case any later "
"version will match, and may specify or omit the Debian packaging revision "
"(separated by a hyphen). Accepted version relationships are \"E<gt>E<gt>\" "
"for greater than, \"E<lt>E<lt>\" for less than, \"E<gt>=\" for greater than "
"or equal to, \"E<lt>=\" for less than or equal to, and \"=\" for equal to."
msgstr ""
"Un numéro de version peut commencer par « E<gt>E<gt> », et dans ce cas toute "
"version supérieure correspondra, et il peut indiquer (ou pas) le numéro de "
"révision pour le paquet debian (les deux numéros étant séparés par un trait "
"d'union). Voici les relations acceptées pour les versions : « E<gt>E<gt> » "
"pour supérieur à, « E<lt>E<lt> » pour inférieur à, « E<gt>= » pour supérieur "
"ou égal, « E<lt>= » pour inférieur ou égal, et « = » pour égal à."

#. type: TP
#: deb-control.5:180 deb-src-control.5:245
#, no-wrap
msgid "B<Breaks:>I< package-list>"
msgstr "B<Breaks:>I<liste de paquets>"

#. type: Plain text
#: deb-control.5:188
msgid ""
"Lists packages that this one breaks, for example by exposing bugs when the "
"named packages rely on this one. The package maintenance software will not "
"allow broken packages to be configured; generally the resolution is to "
"upgrade the packages named in a B<Breaks> field."
msgstr ""
"C'est une liste de paquets que ce paquet « casse », par exemple en révélant "
"des bogues quand les paquets concernés dépendent de celui-ci. Le programme "
"de maintenance des paquets interdit la configuration de paquets cassés ; une "
"méthode usuelle de résolution est la mise à jour des paquets mentionnés dans "
"le champ B<Breaks>."

#. type: TP
#: deb-control.5:188 deb-src-control.5:254
#, no-wrap
msgid "B<Conflicts:>I< package-list>"
msgstr "B<Conflicts:>I<liste de paquets>"

#. type: Plain text
#: deb-control.5:196
msgid ""
"Lists packages that conflict with this one, for example by containing files "
"with the same names. The package maintenance software will not allow "
"conflicting packages to be installed at the same time. Two conflicting "
"packages should each include a B<Conflicts> line mentioning the other."
msgstr ""
"C'est une liste de paquets qui sont en conflit avec ce paquet ; ils "
"contiennent par exemple des fichiers qui ont le même nom. Le programme de "
"maintenance des paquets interdit l'installation simultanée de paquets en "
"conflit. Deux paquets en conflit renseigneront une ligne B<Conflicts> avec "
"le nom de l'autre paquet."

#. type: TP
#: deb-control.5:196 deb-src-control.5:251
#, no-wrap
msgid "B<Replaces:>I< package-list>"
msgstr "B<Replaces:>I< liste de paquets>"

#. type: Plain text
#: deb-control.5:204
msgid ""
"List of packages files from which this one replaces. This is used for "
"allowing this package to overwrite the files of another package and is "
"usually used with the B<Conflicts> field to force removal of the other "
"package, if this one also has the same files as the conflicted package."
msgstr ""
"C'est une liste de paquets que ce paquet remplace. Il peut ainsi remplacer "
"les fichiers de ces autres paquets ; on se sert pour cela du champ "
"B<Conflicts> pour forcer la suppression des autres paquets, si celui-là "
"possède aussi les mêmes fichiers que le paquet en conflit."

#. type: TP
#: deb-control.5:204 deb-src-control.5:257
#, no-wrap
msgid "B<Provides:>I< package-list>"
msgstr "B<Provides:> I<liste de paquets>"

#. type: Plain text
#: deb-control.5:214
msgid ""
"This is a list of virtual packages that this one provides. Usually this is "
"used in the case of several packages all providing the same service.  For "
"example, sendmail and exim can serve as a mail server, so they provide a "
"common package (`mail-transport-agent') on which other packages can depend. "
"This will allow sendmail or exim to serve as a valid option to satisfy the "
"dependency. This prevents the packages that depend on a mail server from "
"having to know the package names for all of them, and using `|' to separate "
"the list."
msgstr ""
"C'est une liste de paquets virtuels que ce paquet « remplit ». On s'en sert "
"habituellement pour des paquets qui offrent le même service. Par exemple, "
"sendmail et exim sont des serveurs de courrier, et donc ils « remplissent » "
"chacun le paquet « mail-transport-agent » ; ainsi les autres paquets peuvent "
"dépendre de ce paquet virtuel. Sendmail et exim peuvent ainsi chacun "
"satisfaire la dépendance. Les paquets qui dépendent d'un serveur de courrier "
"n'ont pas à connaître les noms de tous les serveurs de courrier et n'ont pas "
"à utiliser « | » comme séparateur de liste."

#. type: Plain text
#: deb-control.5:233
msgid ""
"The syntax of B<Breaks>, B<Conflicts>, B<Replaces> and B<Provides> is a list "
"of package names, separated by commas (and optional whitespace).  In the "
"B<Breaks> and B<Conflicts> fields, the comma should be read as `OR'. An "
"optional version can also be given with the same syntax as above for the "
"B<Breaks>, B<Conflicts> and B<Replaces> fields."
msgstr ""
"La syntaxe des champs B<Breaks>, B<Conflicts>, B<Replaces> et B<Provides> "
"est une liste de noms de paquets, séparés par des virgules (et des espaces "
"facultatifs). Dans les champs B<Breaks> et B<Conflicts> la virgule sera lue "
"comme un « OU ». On peut donner une version optionnelle de la même façon que "
"ci-dessus dans les champs B<Breaks>, B<Conflicts> et B<Replaces>."

#. type: TP
#: deb-control.5:234 deb-src-control.5:260
#, no-wrap
msgid "B<Built-Using:>I< package-list>"
msgstr "B<Built-Using:>I< liste de paquets>"

#. type: Plain text
#: deb-control.5:244
msgid ""
"This field lists extra source packages that were used during the build of "
"this binary package.  This is an indication to the archive maintenance "
"software that these extra source packages must be kept whilst this binary "
"package is maintained.  This field must be a list of source package names "
"with strict (=)  version relationships.  Note that the archive maintenance "
"software is likely to refuse to accept an upload which declares a B<Built-"
"Using> relationship which cannot be satisfied within the archive."
msgstr ""
"Ce champ affiche les paquets source supplémentaires utilisées lors de la "
"construction du paquet binaire. Il permet d'indiquer aux logiciels de "
"gestion de l'archive que des paquets source supplémentaires doivent être "
"conservées tant que le paquet binaire est maintenu. Ce champ doit être une "
"liste de paquets source avec des références strictes de version (=). "
"Veuillez noter que les logiciels de gestion de l'archive risque de ne pas "
"accepter un envoi qui déclare une relation B<Built-Using> qui ne peut pas "
"être satisfaite dans l'archive."

#. type: SH
#: deb-control.5:245 deb-src-control.5:288 start-stop-daemon.8:302
#, no-wrap
msgid "EXAMPLE"
msgstr "EXEMPLE"

#. type: Plain text
#: deb-control.5:268
#, no-wrap
msgid ""
"# Comment\n"
"Package: grep\n"
"Essential: yes\n"
"Priority: required\n"
"Section: base\n"
"Maintainer: Wichert Akkerman E<lt>wakkerma@debian.orgE<gt>\n"
"Architecture: sparc\n"
"Version: 2.4-1\n"
"Pre-Depends: libc6 (E<gt>= 2.0.105)\n"
"Provides: rgrep\n"
"Conflicts: rgrep\n"
"Description: GNU grep, egrep and fgrep.\n"
" The GNU family of grep utilities may be the \"fastest grep in the west\".\n"
" GNU grep is based on a fast lazy-state deterministic matcher (about\n"
" twice as fast as stock Unix egrep) hybridized with a Boyer-Moore-Gosper\n"
" search for a fixed string that eliminates impossible text from being\n"
" considered by the full regexp matcher without necessarily having to\n"
" look at every character. The result is typically many times faster\n"
" than Unix grep or egrep. (Regular expressions containing backreferencing\n"
" will run more slowly, however).\n"
msgstr ""
"# Commentaire\n"
"Package: grep\n"
"Essential: yes\n"
"Priority: required\n"
"Section: base\n"
"Maintainer: Wichert Akkerman E<lt>wakkerma@debian.orgE<gt>\n"
"Architecture: sparc\n"
"Version: 2.4-1\n"
"Pre-Depends: libc6 (E<gt>= 2.0.105)\n"
"Provides: rgrep\n"
"Conflicts: rgrep\n"
"Description: GNU grep, egrep and fgrep.\n"
" Il se peut que le grep de la famille GNU des utilitaires grep soit\n"
" le plus rapide de l'ouest ! Le grep de GNU est fondé sur un mécanisme\n"
" rapide de mise en correspondance déterministe d'états simples (environ\n"
" deux fois plus rapide que le « egrep » standard d'Unix), modifié par une\n"
" recherche de type Boyer-Moore-Gosper qui cherche une chaîne donnée en\n"
" empêchant que les textes impossibles soient analysés par le mécanisme de\n"
" mise en correspondance d'expressions rationnelles et sans avoir\n"
" nécessairement besoin de voir chaque caractère. C'est beaucoup plus\n"
" rapide  que les « grep » ou « egrep » d'Unix.\n"
" (Des expressions rationnelles contenant des références circulaires\n"
" ralentissent cependant le programme.)\n"

#. type: Plain text
#: deb-control.5:276
msgid ""
"B<deb>(5), B<deb-version>(5), B<debtags>(1), B<dpkg>(1), B<dpkg-deb>(1)."
msgstr ""
"B<deb>(5), B<deb-version>(5), B<debtags>(1), B<dpkg>(1), B<dpkg-deb>(1)."

#. type: TH
#: deb-src-control.5:3
#, no-wrap
msgid "deb-src-control"
msgstr "deb-src-control"

#. type: Plain text
#: deb-src-control.5:6
msgid "deb-src-control - Debian source packages' master control file format"
msgstr ""
"deb-src-control - Format du fichier principal de contrôle dans les paquets "
"Debian"

#. type: Plain text
#: deb-src-control.5:28
msgid ""
"Each Debian source package contains the master \"control\" file, which "
"contains at least 2 paragraphs, separated by a blank line. The first "
"paragraph lists all information about the source package in general, while "
"each following paragraph describes exactly one binary package. Each "
"paragraph consists of at least one field. A field starts with a fieldname, "
"such as B<Package> or B<Section> (case insensitive), followed by a colon, "
"the body of the field and a newline.  Multi-line fields are also allowed, "
"but each supplementary line, without a fieldname, should start with at least "
"one space. The content of the multi-line fields is generally joined to a "
"single line by the tools (except in the case of the B<Description> field, "
"see below). To insert empty lines into a multi-line field, insert a dot "
"after the space. Lines starting with a B<'#'> are treated as comments."
msgstr ""
"Chaque paquet source Debian contient un fichier « control » maître, qui "
"contient au moins 2 paragraphes, séparés par une ligne vide. Le premier "
"paragraphe donne toutes les informations à propos du paquet source en "
"général et chaque paragraphe qui suit décrit exactement un paquet binaire. "
"Chaque paragraphe contient au moins un champ. Un champ commence par le nomdu "
"champ, par exemple B<Package> ou B<Section> (la casse n'est pas "
"significative), suivi d'un caractère « deux-points », du contenu du champ et "
"d'un retour à la ligne. Les champs multi-lignes sont aussi possibles, mais "
"chaque ligne supplémentaire, qui ne comporte pas de nom de champ, doit "
"commencer par au moins un espace. Le contenu des champs multi-lignes est en "
"général réassemblé en une ligne unique par les outils (sauf pour le champ "
"B<Description>, voir ci-dessous). Pour inclure des lignes vides dans un "
"champ multi-lignes, il est nécessaire de mettre un point après l'espace "
"initial. Les lignes commençant pas B<« # »> sont traitées comme des "
"commentaires."

#. type: SH
#: deb-src-control.5:29
#, no-wrap
msgid "SOURCE FIELDS"
msgstr "LES CHAMPS SOURCE"

#. type: TP
#: deb-src-control.5:30
#, no-wrap
msgid "B<Source:> I<source-package-name> (required)"
msgstr "B<Source:> I<nom du paquet source> (requis)"

#. type: Plain text
#: deb-src-control.5:37
msgid ""
"The value of this field is the name of the source package, and should match "
"the name of the source package in the debian/changelog file. A package name "
"must consist only of lower case letters (a-z), digits (0-9), plus (+) and "
"minus (-) signs, and periods (.). Package names must be at least two "
"characters long and must start with an alphanumeric character."
msgstr ""
"La valeur de ce champ est le nom du paquet source et doit correspondre au "
"nom du paquet source dans le fichier debian/changelog. Un nom de paquet doit "
"être constitué uniquement de lettres minuscules (a-z), de chiffres (0-9), "
"des caractères plus (+) et moins (-) et de points (.). Les noms de paquets "
"doit comporter au moins deux caractères et doivent commencer par un "
"caractère alphanumérique."

#. type: TP
#: deb-src-control.5:38
#, no-wrap
msgid "B<Maintainer:> I<fullname-email> (required)"
msgstr "B<Maintainer:> I<nom complet et adresse électronique> (requis)"

#. type: Plain text
#: deb-src-control.5:43
msgid ""
"Should be in the format \"Joe Bloggs E<lt>jbloggs@foo.comE<gt>\", and "
"references the person who currently maintains the package, as opposed to the "
"author of the software or the original packager."
msgstr ""
"Le format de ce champ sera « Jean Dupont E<lt>jdupont@foo.comE<gt> » ; et "
"indique le créateur du paquet, par opposition à l'auteur du programme mis en "
"paquet."

#. type: TP
#: deb-src-control.5:44
#, no-wrap
msgid "B<Uploaders:>I< fullname-email>"
msgstr "B<Uploaders:>I< nom complet et adresse électronique>"

#. type: Plain text
#: deb-src-control.5:49
msgid ""
"Lists all the names and email addresses of co-maintainers of the package, in "
"the same format as the Maintainer field. Multiple co-maintainers should be "
"separated by a comma."
msgstr ""
"Affiche les noms et les adresses électroniques des co-responsables du "
"paquet, au même format que le champ Maintainer. Des co-responsables "
"multiples peuvent être séparés par une virgule."

#. type: TP
#: deb-src-control.5:50
#, no-wrap
msgid "B<Standards-Version:>I< version-string>"
msgstr "B<Standards-Version:>I< chaîne de version>"

#. type: Plain text
#: deb-src-control.5:56
msgid ""
"This documents the most recent version of the standards (which consists of "
"the Debian Policy Manual and referenced texts from the B<debian-policy> "
"package) this package complies to."
msgstr ""
"Ce champ indique la version la plus récente des normes (constituées par la "
"Charte Debian et les textes indiqués dans le paquet B<debian-policy>) "
"auxquelles ce paquet se conforme."

#. type: TP
#: deb-src-control.5:57
#, no-wrap
msgid "B<DM-Upload-Allowed:> B<yes>|B<no>"
msgstr "B<DM-Upload-Allowed:> B<yes>|B<no>"

#. type: Plain text
#: deb-src-control.5:61
msgid ""
"This field indicates whether the package can be uploaded by Debian "
"Maintainers appearing in the Maintainer or Uploaders field. The default "
"value is \"no\"."
msgstr ""
"Ce champ indique si un paquet peut être envoyé par les mainteneurs Debian "
"qui sont indiqués dans le champ Maintainer ou le champ Uploaders. La valeur "
"par défaut est « no »."

#. type: Plain text
#: deb-src-control.5:65
msgid "The upstream project home page URL."
msgstr "URL de la page d'accueil du projet amont."

#. type: Plain text
#: deb-src-control.5:71
msgid ""
"The I<url> of the bug tracking system for this package. The current used "
"format is I<bts-type>B<://>I<bts-address>, like B<debbugs://bugs.debian."
"org>. This field is usually not needed."
msgstr ""
"Indique l'I<URL> du système de suivi de bogues (BTS) de ce paquet. Le format "
"utilisé est I<type_de_bts>B<://>I<adresse_du_btsE>, par exemple B<debbugs://"
"bugs.debian.org>. Ce champ est en général inutile."

#. type: TP
#: deb-src-control.5:72
#, no-wrap
msgid "B<Vcs-*:>I< url>"
msgstr "B<Vcs-*:>I< URL>"

#. type: Plain text
#: deb-src-control.5:79
msgid ""
"The I<url> of the Version Control System repository used to maintain this "
"package. Currently supported are B<Arch>, B<Bzr> (Bazaar), B<Cvs>, B<Darcs>, "
"B<Git>, B<Hg> (Mercurial), B<Mtn> (Monotone) and B<Svn> (Subversion). "
"Usually this field points to the latest version of the package, such as the "
"main branch or the trunk."
msgstr ""
"Ce champ indique l'I<URL> du système de gestion de version utilisé pour la "
"gestion du paquet. Les systèmes gérés sont B<Arch>, B<Bzr> (Bazaar), B<Cvs>, "
"B<Darcs>, B<Git>, B<Hg> (Mercurial), B<Mtn> (Monotone) et B<Svn> "
"(Subversion). En général, ce champ fait référence à la dernière version du "
"paquet, c'est à dire la branche principale ou le « trunk »."

#. type: TP
#: deb-src-control.5:80
#, no-wrap
msgid "B<Vcs-Browser:>I< url>"
msgstr "B<Vcs-Browser:>I< URL>"

#. type: Plain text
#: deb-src-control.5:84
msgid ""
"The I<url> of a webinterface to browse the Version Control System repository."
msgstr ""
"indique l'I<URL> de l'interface web permettant de parcourir le dépôt du "
"système de gestion de version."

#. type: Plain text
#: deb-src-control.5:89
msgid ""
"The name of the distribution this package is originating from. This field is "
"usually not needed."
msgstr ""
"indique le nom de la distribution dont le paquet provient. Ce champ n'est "
"souvent pas nécessaire."

#. type: Plain text
#: deb-src-control.5:95
msgid ""
"This is a general field that gives the package a category based on the "
"software that it installs. Some common sections are \"utils\", \"net\", "
"\"mail\", \"text\", \"x11\", etc."
msgstr ""
"champ général qui indique la catégorie d'un paquet ; cette catégorie est "
"fondée sur les programmes que ce paquet installe. « Utils », « net », "
"« mail », « text », « x11 », etc. représentent quelques catégories "
"habituelles."

#. type: Plain text
#: deb-src-control.5:100
msgid ""
"Sets the importance of this package in relation to the system as a whole.  "
"Common priorities are \"required\", \"standard\", \"optional\", \"extra\", "
"etc."
msgstr ""
"définit l'importance du paquet à l'intérieur du système général. "
"« Required », « standard », « optional », « extra », etc. représentent des "
"priorités habituelles."

#. type: TP
#: deb-src-control.5:110
#, no-wrap
msgid "B<Build-Depends:>I< package-list>"
msgstr "B<Build-Depends:>I< liste de paquets>"

#. type: Plain text
#: deb-src-control.5:114
msgid ""
"A list of packages that need to be installed and configured to be able to "
"build the source package."
msgstr ""
"liste des paquets qu'il est nécessaire d'installer et configurer pour "
"pouvoir construire le paquet source."

#. type: TP
#: deb-src-control.5:115
#, no-wrap
msgid "B<Build-Depends-Indep:>I< package-list>"
msgstr "B<Build-Depends-Indep:>I< liste de paquets>"

#. type: Plain text
#: deb-src-control.5:120
msgid ""
"Same as B<Build-Depends>, but they are only needed when building the "
"architecture independent packages. The B<Build-Depends> are also installed "
"in this case."
msgstr ""
"liste analogue à B<Build-Depends>, mais restreinte aux paquets nécessaires "
"pour construire les paquets indépendants de l'architecture. Les paquets "
"indiqués dans B<Build-Depends> sont alors aussi installés."

#. type: TP
#: deb-src-control.5:121
#, no-wrap
msgid "B<Build-Conflicts:>I< package-list>"
msgstr "B<Build-Conflicts:>I< liste de paquets>"

#. type: Plain text
#: deb-src-control.5:125
msgid ""
"A list of packages that should not be installed when the package is build, "
"for example because they interfere with the used build system."
msgstr ""
"liste de paquets qui ne doivent pas être installés lorsque le paquet est "
"construit, par exemple s'ils interfèrent avec le système de construction "
"utilisé."

#. type: TP
#: deb-src-control.5:126
#, no-wrap
msgid "B<Build-Conflicts-Indep:>I< package-list>"
msgstr "B<Build-Conflicts-Indep:>I< liste de paquets>"

#. type: Plain text
#: deb-src-control.5:130
msgid ""
"Same as B<Build-Conflicts>, but only when building the architecture "
"independent packages."
msgstr ""
"liste analogue à B<Build-Conflicts> mais restreinte à la construction des "
"paquets indépendants de l'architecture."

#. type: Plain text
#: deb-src-control.5:141
msgid ""
"The syntax of the B<Build-Depends> and B<Build-Depends-Indep> fields is a "
"list of groups of alternative packages. Each group is a list of packages "
"separated by vertical bar (or \"pipe\") symbols, \"|\". The groups are "
"separated by commas. Commas are to be read as \"AND\", and pipes as \"OR\", "
"with pipes binding more tightly. Each package name is optionally followed by "
"a version number specification in parentheses and an architecture "
"specification in square brackets."
msgstr ""
"La syntaxe des champs B<Build-Depends> B<Build-Depends-Indep>est une liste "
"de groupes contenant des paquets successifs. Chaque groupe est une liste de "
"paquets séparés par une barre verticale (le symbole du tube) « | ». Les "
"groupes sont séparés par des virgules. Une virgule représente un « ET » "
"logique et une barre verticale représente un « OU » logique ; le tube "
"représente un lien plus fort. Chaque élément est le nom d'un paquet suivi de "
"façon optionnelle par un numéro de version entre parenthèses et une "
"indication d'architecture entre accolades."

#. type: Plain text
#: deb-src-control.5:150
msgid ""
"The syntax of the B<Build-Conflicts> and B<Build-Conflicts-Indep> fields is "
"a list of comma-separated package names, where the comma is read as an \"AND"
"\". Specifying alternative packages using a \"pipe\" is not supported.  Each "
"package name is optionally followed by a version number specification in "
"parentheses and an architecture specification in square brackets."
msgstr ""
"La syntaxe des champs B<Build-Conflicts> B<Build-Conflicts-Indep>est une "
"liste de paquets séparés par des virgules qui représentent le « ET » "
"logique. L'indication de paquets alternatifs avec une barre verticale (le "
"symbole du tube) « | » n'est pas prise en charge. Chaque om de paquet peut "
"être suivi de façon optionnelle par un numéro de version entre parenthèses "
"et une indication d'architecture entre accolades."

#. type: Plain text
#: deb-src-control.5:156
msgid ""
"A version number may start with a \"E<gt>E<gt>\", in which case any later "
"version will match, and may specify or omit the Debian packaging revision "
"(separated by a hyphen). Accepted version relationships are \"E<gt>E<gt>\" "
"for greater than, \"E<lt>E<lt>\" for less than, \"E<gt>=\" for greater than "
"or equal to, \"E<lt>=\" for less than or equal to, and \"=\" for equal to."
msgstr ""
"Un numéro de version peut commencer par « E<gt>E<gt> », et dans ce cas toute "
"version supérieure correspondra, et il peut indiquer (ou pas) le numéro de "
"révision pour le paquet Debian (les deux numéros étant séparés par un trait "
"d'union). Voici les relations acceptées pour les versions : « E<gt>E<gt> » "
"pour supérieur à, « E<lt>E<lt> » pour inférieur à, « E<gt>= » pour supérieur "
"ou égal, « E<lt>= » pour inférieur ou égal, et « = » pour égal à."

#. type: Plain text
#: deb-src-control.5:160
msgid ""
"A architecture specification consists of one or more architecture names, "
"separated by whitespace. Exclamation marks may be prepended to each of the "
"names, meaning \"NOT\"."
msgstr ""
"Une indication d'architecture consiste en un ou plusieurs noms "
"d'architectures, séparés par des espaces. Un nom d'architecture peut être "
"précédé d'un point d'eclamation qui correspond alors au « NON » logique."

#. type: Plain text
#: deb-src-control.5:165
msgid ""
"Note that dependencies on packages in the B<build-essential> set can be "
"omitted and that declaring build conflicts against them is impossible. A "
"list of these packages is in the build-essential package."
msgstr ""
"Veuillez noter que les dépendance que les paquets du jeu B<build-essential> "
"peuvent être omises et qu'il n'est pas possible de déclarer des conflits "
"avec ces paquets. La liste des paquets concernés est fournie par le paquet "
"build-essential."

#. type: SH
#: deb-src-control.5:167
#, no-wrap
msgid "BINARY FIELDS"
msgstr "CHAMPS BINAIRES"

#. type: Plain text
#: deb-src-control.5:176
msgid ""
"Note that the B<Priority>, B<Section> and B<Homepage> fields can also be in "
"a binary paragraph to override the global value from the source package."
msgstr ""
"Veuillez noter que les champs B<Priority>, B<Section> and B<Homepage> "
"peuvent être placés dans le paragraphe d'un paquet binaire et leur valeur "
"remplace alors celle du paquet source."

#. type: TP
#: deb-src-control.5:177
#, no-wrap
msgid "B<Package:> I<binary-package-name> (required)"
msgstr "B<Package:> I<nom du paquet binaire> (requis)"

#. type: Plain text
#: deb-src-control.5:181
msgid ""
"This field is used to name the binary package name. The same restrictions as "
"to a source package name apply."
msgstr ""
"Ce champ sert à indiquer le nom du paquet binaire. Les restrictions sont les "
"mêmes que celle des paquets source."

#. type: TP
#: deb-src-control.5:182
#, no-wrap
msgid "B<Architecture:> I<arch>|B<all>|B<any> (required)"
msgstr "B<Architecture:> I<arch>|B<all>|B<any> (requis)"

#. type: Plain text
#: deb-src-control.5:195
msgid ""
"The architecture specifies on which type of hardware this package runs. For "
"packages that run on all architectures, use the B<any> value. For packages "
"that are architecture independent, such as shell and Perl scripts or "
"documentation, use the B<all> value. To restrict the packages to a certain "
"set of architectures, specify the architecture names, separated by a space. "
"It's also possible to put architecture wildcards in that list (see B<dpkg-"
"architecture>(1)  for more information about them)."
msgstr ""
"Ce champ indique l'architecture matérielle sur laquelle le paquet peut être "
"utilisé. Les paquets qui peuvent être utilisés sur toute architecture "
"doivent utiliser le champ B<any>. Les paquets indépendants de "
"l'architecture, tels les scripts shell ou Perl ou la documentation utilisent "
"la valeur B<all>. Pour restreindre un paquet à certaines architectures, "
"leurs noms doivent être indiqués séparés par des espaces. Il est également "
"possible d'utiliser des noms génériques d'architectures dans cette liste "
"(voir B<dpkg-architecture>(1) pour plus d'informations sur ces architectures "
"génériques)."

#. type: TP
#: deb-src-control.5:196
#, no-wrap
msgid "B<Package-Type:> B<deb>|B<udeb>"
msgstr "B<Package-Type:> B<deb>|B<udeb>"

#. type: Plain text
#: deb-src-control.5:201
msgid ""
"This field defines the type of the package. \"udeb\" is for size-constrained "
"packages used by the debian installer. \"deb\" is the default value, it's "
"assumed if the field is absent. More types might be added in the future."
msgstr ""
"Ce champ indique le type de paquet. La valeur « udeb » est à utiliser pour "
"les paquets à taille contrôlée utilisés par l'installateur Debian. La valeur "
"« deb » est la valeur par défaut qui est utilisée si le champ n'est pas "
"présent. De nouveaux types pourraient être ajoutés au fil du temps."

#. type: TP
#: deb-src-control.5:225
#, no-wrap
msgid "B<Description:> I<short-description> (required)"
msgstr "B<Description:> I<description courte> (requis)"

#. type: Plain text
#: deb-src-control.5:232
msgid ""
"These fields are described in the B<deb-control>(5)  manual page, as they "
"are copied literally to the control file of the binary package."
msgstr ""
"Ces champs sont décrits dans la page de manuel de B<deb-control>(5), car ils "
"sont copiés littéralement dans le fichier « control » du paquet binaire."

#. type: TP
#: deb-src-control.5:248
#, no-wrap
msgid "B<Enhances:>I< package-list>"
msgstr "B<Enhances:>I< liste de paquets>"

#. type: Plain text
#: deb-src-control.5:270
msgid ""
"These fields declare relationships between packages. They are discussed in "
"the B<deb-control>(5)  manpage and in the B<debian-policy> package."
msgstr ""
"Ces champs indiquent les relations entre les paquets. Ils sont détaillés "
"dans la page de manuel B<deb-control>(5) et dans le paquet B<debian-policy>."

#. type: SH
#: deb-src-control.5:271
#, no-wrap
msgid "USER-DEFINED FIELDS"
msgstr "LES CHAMPS UTILISATEUR"

#. type: Plain text
#: deb-src-control.5:286
msgid ""
"It is allowed to add additional user-defined fields to the control file. The "
"tools will ignore these fields. If you want the fields to be copied over to "
"the output files, such as the binary packages, you need to use a custom "
"naming scheme: the fields should start with a X, followed by one or more of "
"the letters BCS and a hypen. If the letter B is used, the field will appear "
"in the control file in the binary package, see B<deb-control>(5), for the "
"letter S in the source package control file as constructed by B<dpkg-source>"
"(1)  and for the letter C in the upload control (.changes) file. Note that "
"the X[BCS]- prefixes are stripped when the fields are copied over to the "
"output files. A field B<XC-Approved-By> will appear as B<Approved-By> in the "
"changes file and will not appear in the binary or source package control "
"files."
msgstr ""
"Il est possible d'ajouter des champs définis par l'utilisateur au fichier "
"« control ». Les outils les ignoreront. Si ces champs doivent être copiés "
"vers les fichiers créés, par exemple les paquets binaires, il est "
"indispensable d'utiliser un schéma de nommage personnalisé : les champs "
"doivent commencer par la lettre X suivie de l'un des lettres B, C ou S et "
"d'un tiret. Si la lettre B est utilisée, le champ sera copié dans le fichier "
"« control » du paquet binaire, voir B<deb-control>(5). Avec la lettre S, le "
"champ sera copié dans le fichier « control » du paquet source créé par "
"B<dpkg-source>(1). Enfin, la lettre C provoquera la recopie du champ dans le "
"fichier de contrôle de l'envoi (« .changes »). Les préfixes X[BCS]- sont "
"supprimés lors de ces recopies. Ainsi, un champ B<XC-Approved-By> apparaîtra "
"sous le nom B<Approved-By> dans le fichier « changes » mais pas dans le "
"fichier « control » du paquet binaire ni dans celui du paquet source."

#. type: Plain text
#: deb-src-control.5:304
#, fuzzy, no-wrap
#| msgid ""
#| "# Comment\n"
#| "Source: dpkg\n"
#| "Section: admin\n"
#| "Priority: required\n"
#| "Maintainer: Dpkg Developers E<lt>debian-dpkg@lists.debian.orgE<gt>\n"
#| "# this field is copied to the binary and source packages\n"
#| "XBS-Upstream-Release-Status: stable\n"
#| "Homepage: http://wiki.debian.org/Teams/Dpkg\n"
#| "Vcs-Browser: http://git.debian.org/?p=dpkg/dpkg.git\n"
#| "Vcs-Git: git://git.debian.org/git/dpkg/dpkg.git\n"
#| "Standards-Version: 3.7.3\n"
#| "Build-Depends: pkg-config, debhelper (E<gt>= 4.1.81),\n"
#| " libselinux1-dev (E<gt>= 1.28-4) [!hurd-i386 !kfreebsd-i386 !kfreebsd-amd64]\n"
msgid ""
"# Comment\n"
"Source: dpkg\n"
"Section: admin\n"
"Priority: required\n"
"Maintainer: Dpkg Developers E<lt>debian-dpkg@lists.debian.orgE<gt>\n"
"# this field is copied to the binary and source packages\n"
"XBS-Upstream-Release-Status: stable\n"
"Homepage: http://wiki.debian.org/Teams/Dpkg\n"
"Vcs-Browser: http://git.debian.org/?p=dpkg/dpkg.git\n"
"Vcs-Git: git://git.debian.org/git/dpkg/dpkg.git\n"
"Standards-Version: 3.7.3\n"
"Build-Depends: pkg-config, debhelper (E<gt>= 4.1.81),\n"
" libselinux1-dev (E<gt>= 1.28-4) [!linux-any]\n"
msgstr ""
"# Commentaire\n"
"Source: dpkg\n"
"Section: admin\n"
"Priority: required\n"
"Maintainer: Dpkg Developers E<lt>debian-dpkg@lists.debian.orgE<gt>\n"
"# ce champ est copié dans les paquets source et binaires\n"
"XBS-Upstream-Release-Status: stable\n"
"Homepage: http://wiki.debian.org/Teams/Dpkg\n"
"Vcs-Browser: http://git.debian.org/?p=dpkg/dpkg.git\n"
"Vcs-Git: git://git.debian.org/git/dpkg/dpkg.git\n"
"Standards-Version: 3.7.3\n"
"Build-Depends: pkg-config, debhelper (E<gt>= 4.1.81),\n"
" libselinux1-dev (E<gt>= 1.28-4) [!hurd-i386 !kfreebsd-i386 !kfreebsd-amd64]\n"

#. type: Plain text
#: deb-src-control.5:323
#, fuzzy, no-wrap
#| msgid ""
#| "Package: dpkg-dev\n"
#| "Section: utils\n"
#| "Priority: optional\n"
#| "Architecture: all\n"
#| "# this is a custom field in the binary package\n"
#| "XB-Mentoring-Contact: Raphael Hertzog E<lt>hertzog@debian.orgE<gt>\n"
#| "Depends: dpkg (E<gt>= 1.14.6), perl5, perl-modules, cpio (E<gt>= 2.4.2-2), bzip2, lzma,\n"
#| " patch (E<gt>= 2.2-1), make, binutils, libtimedate-perl\n"
#| "Recommends: gcc | c-compiler, build-essential\n"
#| "Suggests: gnupg, debian-keyring\n"
#| "Conflicts: dpkg-cross (E<lt>E<lt> 2.0.0), devscripts (E<lt>E<lt> 2.10.26)\n"
#| "Replaces: manpages-pl (E<lt>= 20051117-1)\n"
#| "Description: Debian package development tools\n"
#| " This package provides the development tools (including dpkg-source)\n"
#| " required to unpack, build and upload Debian source packages.\n"
#| " .\n"
#| " Most Debian source packages will require additional tools to build;\n"
#| " for example, most packages need make and the C compiler gcc.\n"
msgid ""
"Package: dpkg-dev\n"
"Section: utils\n"
"Priority: optional\n"
"Architecture: all\n"
"# this is a custom field in the binary package\n"
"XB-Mentoring-Contact: Raphael Hertzog E<lt>hertzog@debian.orgE<gt>\n"
"Depends: dpkg (E<gt>= 1.14.6), perl5, perl-modules, cpio (E<gt>= 2.4.2-2),\n"
" bzip2, lzma, patch (E<gt>= 2.2-1), make, binutils, libtimedate-perl\n"
"Recommends: gcc | c-compiler, build-essential\n"
"Suggests: gnupg, debian-keyring\n"
"Conflicts: dpkg-cross (E<lt>E<lt> 2.0.0), devscripts (E<lt>E<lt> 2.10.26)\n"
"Replaces: manpages-pl (E<lt>= 20051117-1)\n"
"Description: Debian package development tools\n"
" This package provides the development tools (including dpkg-source)\n"
" required to unpack, build and upload Debian source packages.\n"
" .\n"
" Most Debian source packages will require additional tools to build;\n"
" for example, most packages need make and the C compiler gcc.\n"
msgstr ""
"Package: dpkg-dev\n"
"Section: utils\n"
"Priority: optional\n"
"Architecture: all\n"
"# champ personnalisé dans le paquet binaire\n"
"XB-Mentoring-Contact: Raphael Hertzog E<lt>hertzog@debian.orgE<gt>\n"
"Depends: dpkg (E<gt>= 1.14.6), perl5, perl-modules, cpio (E<gt>= 2.4.2-2), bzip2, lzma,\n"
" patch (E<gt>= 2.2-1), make, binutils, libtimedate-perl\n"
"Recommends: gcc | c-compiler, build-essential\n"
"Suggests: gnupg, debian-keyring\n"
"Conflicts: dpkg-cross (E<lt>E<lt> 2.0.0), devscripts (E<lt>E<lt> 2.10.26)\n"
"Replaces: manpages-pl (E<lt>= 20051117-1)\n"
"Description: Debian package development tools\n"
" This package provides the development tools (including dpkg-source)\n"
" required to unpack, build and upload Debian source packages.\n"
" .\n"
" Most Debian source packages will require additional tools to build;\n"
" for example, most packages need make and the C compiler gcc.\n"

#. type: Plain text
#: deb-src-control.5:330
msgid "B<deb-control>(5), B<deb-version>(5), B<dpkg-source>(1)"
msgstr "B<deb-control>(5), B<deb-version>(5), B<dpkg-source>(1)"

#. type: TH
#: deb-split.5:1
#, no-wrap
msgid "deb-split"
msgstr "deb-split"

#. type: TH
#: deb-split.5:1 dpkg-checkbuilddeps.1:1 dpkg-distaddfile.1:1 dpkg-split.1:2
#: dpkg-statoverride.8:1 dpkg-vendor.1:1 start-stop-daemon.8:1
#, no-wrap
msgid "2011-07-04"
msgstr "07-04-2011"

#. type: Plain text
#: deb-split.5:4
msgid "deb-split - Debian multi-part binary package format"
msgstr "deb-split - formatage de paquets binaires Debian en plusieurs parties"

# type: Plain text
#. type: Plain text
#: deb-split.5:9
msgid ""
"The multi-part B<.deb> format is used to split big packages into smaller "
"pieces to ease transport in small media."
msgstr ""
"Le format B<.deb> en parties multiples (multi-part) permet de découper de "
"gros paquets en petites parties pour faciliter leur transport sur des "
"supports de faible capacité."

#. type: Plain text
#: deb-split.5:12
msgid ""
"The file is an B<ar> archive with a magic value of B<!E<lt>archE<gt>>.  The "
"file names might contain a trailing slash (since dpkg 1.15.6)."
msgstr ""
"Le fichier est une archive B<ar> avec un numéro magique de B<!E<lt>archE<gt>."
">. Les noms de fichiers peuvent comporter un caractère « / » final (depuis "
"dpkg 1.15.6)."

#. type: Plain text
#: deb-split.5:15
msgid ""
"The first member is named B<debian-split> and contains a series of lines, "
"separated by newlines. Currently eight lines are present:"
msgstr ""
"Le premier membre est appelé B<debians-split> et contient un ensemble de "
"lignes, séparées par des retours à la ligne. Actuellement, huit lignes sont "
"présentes :"

#. type: IP
#: deb-split.5:15 deb-split.5:18 deb-split.5:20 deb-split.5:22 deb-split.5:24
#: deb-split.5:26 deb-split.5:28 deb-split.5:31 dpkg-gensymbols.1:20
#: dpkg-gensymbols.1:22 dpkg-gensymbols.1:24 dpkg-gensymbols.1:26
#: dpkg-gensymbols.1:311 dpkg-gensymbols.1:317 dpkg-gensymbols.1:351
#: dpkg-gensymbols.1:355 dpkg-gensymbols.1:358
#, no-wrap
msgid "\\(bu"
msgstr "\\(bu"

#. type: Plain text
#: deb-split.5:18
msgid ""
"The format version number, B<2.1> at the time this manual page was written."
msgstr ""
"Numéro de version du format, B<2.1> au moment de la rédaction de cette page "
"de manuel."

#. type: Plain text
#: deb-split.5:20
msgid "The package name."
msgstr "Nom du paquet"

#. type: Plain text
#: deb-split.5:22
msgid "The package version."
msgstr "Version du paquet"

#. type: Plain text
#: deb-split.5:24
msgid "The md5sum of the package."
msgstr "Somme de contrôle MD5 du paquet"

#. type: Plain text
#: deb-split.5:26
msgid "The total size of the package."
msgstr "Taille totale du paquet"

#. type: Plain text
#: deb-split.5:28
msgid "The maximum part size."
msgstr "Taille maximale d'un membre"

#. type: Plain text
#: deb-split.5:31
msgid ""
"The current part number, followed by a slash and the total amount of parts "
"(as in \\(oq1/10\\(cq)."
msgstr ""
"Numéro du membre courant, suivi d'une barre oblique (/) et du nombre total "
"de membres (par exemple \\(oq1/10\\(cq)."

#. type: Plain text
#: deb-split.5:33
msgid "The package architecture (since dpkg 1.16.1)."
msgstr "Architecture du paquet (depuis dpkg 1.16.1)"

# type: Plain text
#. type: Plain text
#: deb-split.5:36
msgid ""
"Programs which read multi-part archives should be prepared for additional "
"lines to be present, and should ignore these if this is the case."
msgstr ""
"Les programmes qui lisent des archives en parties multiples doivent "
"autoriser la présence de lignes supplémentaires (et les ignorer si elles "
"existent)."

#. type: Plain text
#: deb-split.5:41
msgid ""
"If the version number has changed, an incompatible change has been made and "
"the program should stop. If it has not, then the program should be able to "
"safely continue, unless it encounters an unexpected member in the archive "
"(except at the end), as described below."
msgstr ""
"Si le numéro de version majeur a changé, cela signifie qu'une modification "
"incompatible a été effectuée, et le programme doit alors s'arrêter. Si ce "
"n'est pas le cas, le programme doit être en mesure de poursuivre "
"correctement, à moins qu'il ne rencontre un membre non reconnu dans "
"l'archive (excepté à la fin de cette dernière), comme décrit ci-dessous."

#. type: Plain text
#: deb-split.5:44
#, fuzzy
#| msgid ""
#| "The second, last required member is named B<data.>N, where N denotes the "
#| "part number. It contains the raw part data."
msgid ""
"The second, last required member is named B<data.>I<N>, where I<N> denotes "
"the part number. It contains the raw part data."
msgstr ""
"Le deuxième et dernier membre requis se nomme B<data.>N où N est le numéro "
"de la partie. Il contient les données brutes de la partie."

#. type: Plain text
#: deb-split.5:49
#, fuzzy
#| msgid ""
#| "These members must occur in this exact order. Current implementations "
#| "should ignore any additional members after B<data.>N.  Further members "
#| "may be defined in the future, and (if possible) will be placed after "
#| "these two."
msgid ""
"These members must occur in this exact order. Current implementations should "
"ignore any additional members after B<data.>I<N>.  Further members may be "
"defined in the future, and (if possible) will be placed after these two."
msgstr ""
"Ces membres doivent apparaître dans cet ordre exact. Les implémentations "
"actuelles devraient ignorer tout membre additionnel suivant B<data.>N. "
"D'autres membres seront éventuellement proposés, et (si possible) seront "
"placés après les deux premiers."

#. type: Plain text
#: deb-split.5:51
msgid "B<deb>(5), B<dpkg-split>(1)."
msgstr "B<deb>(5), B<dpkg-split>(1)."

#. type: TH
#: deb-version.5:5
#, no-wrap
msgid "deb-version"
msgstr "deb-version"

#. type: Plain text
#: deb-version.5:8
msgid "deb-version - Debian package version number format"
msgstr "deb-version - Format du numéro de version des paquets Debian"

#. type: Plain text
#: deb-version.5:11
#, fuzzy
#| msgid "[ I<epoch>:] I<upstream_version> [-I<debian_revision> ]"
msgid "[I<epoch>B<:>]I<upstream-version>[B<->I<debian-revision>]"
msgstr "[ I<epoch>:] I<version_amont> [-I<révision_debian> ]"

#. type: Plain text
#: deb-version.5:14
msgid ""
"Version numbers as used for Debian binary and source packages consist of "
"three components. These are:"
msgstr ""
"Les numéros de version utilisés pour les paquets sources et binaires se "
"composent de trois parties. Celles-ci sont :"

#. type: TP
#: deb-version.5:14
#, no-wrap
msgid "I<epoch>"
msgstr "I<epoch>"

#. type: Plain text
#: deb-version.5:20
#, fuzzy
#| msgid ""
#| "This is a single (generally small) unsigned integer.  It may be omitted, "
#| "in which case zero is assumed.  If it is omitted then the "
#| "I<upstream_version> may not contain any colons."
msgid ""
"This is a single (generally small) unsigned integer.  It may be omitted, in "
"which case zero is assumed.  If it is omitted then the I<upstream-version> "
"may not contain any colons."
msgstr ""
"Ce nombre est un entier positif (usuellement petit). Il peut être omis (dans "
"ce cas, la valeur nulle est implicite). S'il est omis, la I<version_amont> "
"ne doit pas contenir de caractère deux-points."

#. type: Plain text
#: deb-version.5:24
msgid ""
"It is provided to allow mistakes in the version numbers of older versions of "
"a package, and also a package's previous version numbering schemes, to be "
"left behind."
msgstr ""
"Cette valeur est destinée à permettre de gérer des erreurs dans les anciens "
"numéros de version d'un paquet ou un changement dans la méthode de "
"numérotation des versions amont."

#. type: TP
#: deb-version.5:24
#, fuzzy, no-wrap
#| msgid "I<upstream_version>"
msgid "I<upstream-version>"
msgstr "I<upstream_version>"

#. type: Plain text
#: deb-version.5:34
msgid ""
"This is the main part of the version number.  It is usually the version "
"number of the original (\"upstream\")  package from which the I<.deb> file "
"has been made, if this is applicable.  Usually this will be in the same "
"format as that specified by the upstream author(s); however, it may need to "
"be reformatted to fit into the package management system's format and "
"comparison scheme."
msgstr ""
"Ceci est la partie principale du numéro de version. Cela correspond "
"normalement au numéro de version du paquet d'origine qui a servi à créer le "
"fichier I<.deb>. Le format d'origine spécifié par l'auteur est généralement "
"conservé ; cependant, il arrive qu'il soit nécessaire d'adapter ce numéro "
"pour qu'il se conforme au format du système de gestion de paquet et du "
"procédé de comparaison des numéros de version."

#. type: Plain text
#: deb-version.5:39
#, fuzzy
#| msgid ""
#| "The comparison behavior of the package management system with respect to "
#| "the I<upstream_version> is described below.  The I<upstream_version> "
#| "portion of the version number is mandatory."
msgid ""
"The comparison behavior of the package management system with respect to the "
"I<upstream-version> is described below. The I<upstream-version> portion of "
"the version number is mandatory."
msgstr ""
"Le principe de comparaison du système de gestion de paquet en ce qui "
"concerne la I<version_amont> est décrite ci-dessous. La partie "
"I<version_amont> du numéro est obligatoire."

#. type: Plain text
#: deb-version.5:48
#, fuzzy
#| msgid ""
#| "The I<upstream_version> may contain only alphanumerics (\"A-Za-z0-9\") "
#| "and the characters B<.> B<+> B<-> B<:> B<~> (full stop, plus, hyphen, "
#| "colon, tilde) and should start with a digit.  If there is no "
#| "I<debian_revision> then hyphens are not allowed; if there is no I<epoch> "
#| "then colons are not allowed."
msgid ""
"The I<upstream-version> may contain only alphanumerics (\"A-Za-z0-9\") and "
"the characters B<.> B<+> B<-> B<:> B<~> (full stop, plus, hyphen, colon, "
"tilde) and should start with a digit.  If there is no I<debian-revision> "
"then hyphens are not allowed; if there is no I<epoch> then colons are not "
"allowed."
msgstr ""
"La I<version_amont> ne doit contenir que des caractères alphanumériques (\"A-"
"Za-z0-9\") et les caratères suivants (\".+-:~\"). Et devrait commencer par "
"un chiffre. S'il n'y a pas de partie I<revision_Debian> alors le caractère "
"tilde (\"~\") n'est pas autorisé ; si il n'y a pas de I<epoch>, alors c'est "
"le caractère (\"deux points, :\") qui n'est pas autorisés."

#. type: TP
#: deb-version.5:48
#, fuzzy, no-wrap
#| msgid "I<debian_revision>"
msgid "I<debian-revision>"
msgstr "I<debian_revision>"

#. type: Plain text
#: deb-version.5:57
#, fuzzy
#| msgid ""
#| "This part of the version number specifies the version of the Debian "
#| "package based on the upstream version.  It may contain only alphanumerics "
#| "and the characters B<+> B<.> B<~> (plus, full stop, tilde) and is "
#| "compared in the same way as the I<upstream_version> is."
msgid ""
"This part of the version number specifies the version of the Debian package "
"based on the upstream version.  It may contain only alphanumerics and the "
"characters B<+> B<.> B<~> (plus, full stop, tilde) and is compared in the "
"same way as the I<upstream-version> is."
msgstr ""
"Cette partie du numéro de version indique la version du paquet Debian à "
"partir du numéro de la version amont. Elle ne doit contenir que des symboles "
"alphanumériques (\"A-Za-z0-9\") et les trois caractères (\".+~\"). Elle est "
"analysée de la même façon que la I<version_amont>."

#. type: Plain text
#: deb-version.5:64
#, fuzzy
#| msgid ""
#| "It is optional; if it isn't present then the I<upstream_version> may not "
#| "contain a hyphen.  This format represents the case where a piece of "
#| "software was written specifically to be turned into a Debian package, and "
#| "so there is only one \"debianisation\" of it and therefore no revision "
#| "indication is required."
msgid ""
"It is optional; if it isn't present then the I<upstream-version> may not "
"contain a hyphen.  This format represents the case where a piece of software "
"was written specifically to be turned into a Debian package, and so there is "
"only one \"debianisation\" of it and therefore no revision indication is "
"required."
msgstr ""
"Cette partie est facultative ; si elle n'est pas présent alors c'est que la "
"I<version_amont> ne doit pas contenir de signe moins (\"-\"). Ce format est "
"pour le cas où un logiciel a été directement conçu comme paquet Debian, il y "
"a donc qu'une seule « debianisation » et donc par suite pas besoin "
"d'indication de révision."

#. type: Plain text
#: deb-version.5:68
#, fuzzy
#| msgid ""
#| "It is conventional to restart the I<debian_revision> at '1' each time "
#| "time the I<upstream_version> is increased."
msgid ""
"It is conventional to restart the I<debian-revision> at '1' each time time "
"the I<upstream-version> is increased."
msgstr ""
"Il est convenu de repartir à '1' pour la I<révision_debian> à chaque fois "
"que la I<version_amont> est incrémentée."

#. type: Plain text
#: deb-version.5:76
#, fuzzy
#| msgid ""
#| "Dpkg will break the version number apart at the last hyphen in the string "
#| "(if there is one) to determine the I<upstream_version> and "
#| "I<debian_revision>.  The absence of a I<debian_revision> compares earlier "
#| "than the presence of one (but note that the I<debian_revision> is the "
#| "least significant part of the version number)."
msgid ""
"Dpkg will break the version number apart at the last hyphen in the string "
"(if there is one) to determine the I<upstream-version> and I<debian-"
"revision>. The absence of a I<debian-revision> compares earlier than the "
"presence of one (but note that the I<debian-revision> is the least "
"significant part of the version number)."
msgstr ""
"Dpkg s'arrêtera au dernier signe moins (\"-\") du numéro de version (s'il y "
"en a un) pour déterminer la partie I<version_amont> et la I<version_Debian>. "
"L'absence de I<revision_Debian> est comparée avant sa présence, mais notez "
"que la I<revision_Debian> est partie la moins significative du numéro de "
"version."

#. type: SS
#: deb-version.5:76
#, no-wrap
msgid "Sorting Algorithm"
msgstr "Algorithme de classement"

#. type: Plain text
#: deb-version.5:80
#, fuzzy
#| msgid ""
#| "The I<upstream_version> and I<debian_revision> parts are compared by the "
#| "package management system using the same algorithm:"
msgid ""
"The I<upstream-version> and I<debian-revision> parts are compared by the "
"package management system using the same algorithm:"
msgstr ""
"Les parties I<version_amont> et I<revision_Debian> sont comparées par le "
"système de gestion de paquet en utilisant le même algorithme :"

#. type: Plain text
#: deb-version.5:82
msgid "The strings are compared from left to right."
msgstr "Les chaînes sont comparées de la gauche vers la droite."

#. type: Plain text
#: deb-version.5:92
msgid ""
"First the initial part of each string consisting entirely of non-digit "
"characters is determined.  These two parts (one of which may be empty) are "
"compared lexically.  If a difference is found it is returned.  The lexical "
"comparison is a comparison of ASCII values modified so that all the letters "
"sort earlier than all the non-letters and so that a tilde sorts before "
"anything, even the end of a part.  For example, the following parts are in "
"sorted order: '~~', '~~a', '~', the empty part, 'a'."
msgstr ""
"Pour commencer, la première partie de chaque chaîne composée uniquement de "
"caractères non numériques est déterminée. Puis ces deux parties (l'une peut "
"être vide) sont comparées lexicalement. Si une différence est trouvée, elle "
"est retournée. La comparaison lexicale est effectuée sur une version "
"modifiée des valeurs ASCII afin que les lettres passent avant les autres "
"caractères et que les tildes (\"~\") passent avant tout tous les caractères, "
"même la fin d'une partie. Par exemple, les éléments suivants sont ordonnés "
"ainsi : « ~~ », « ~~a », « ~ », partie vide, « a »."

#. type: Plain text
#: deb-version.5:100
msgid ""
"Then the initial part of the remainder of each string which consists "
"entirely of digit characters is determined.  The numerical values of these "
"two parts are compared, and any difference found is returned as the result "
"of the comparison.  For these purposes an empty string (which can only occur "
"at the end of one or both version strings being compared) counts as zero."
msgstr ""
"Puis, le début de ce qui reste des chaînes de caractères qui ne doivent plus "
"contenir que des chiffres est déterminé. Ces valeurs numériques sont "
"comparées, et les différences sont remontées. Dans le cas d'une chaîne vide "
"(ce qui peut arriver si une chaîne est plus longue que l'autre lors de la "
"comparaison) elle compte pour un zéro."

#. type: Plain text
#: deb-version.5:104
msgid ""
"These two steps (comparing and removing initial non-digit strings and "
"initial digit strings) are repeated until a difference is found or both "
"strings are exhausted."
msgstr ""
"Ces deux étapes (comparaison et suppression des caractères non numériques "
"puis de suppression des caractères numériques dans le début de la chaîne) "
"sont répétées jusqu'à ce qu'une différence soit trouvée ou la fin des "
"chaînes atteinte."

#. type: Plain text
#: deb-version.5:112
msgid ""
"Note that the purpose of epochs is to allow us to leave behind mistakes in "
"version numbering, and to cope with situations where the version numbering "
"scheme changes.  It is B<not> intended to cope with version numbers "
"containing strings of letters which the package management system cannot "
"interpret (such as 'ALPHA' or 'pre-'), or with silly orderings."
msgstr ""
"Notez que le rôle de epoch est de permettre de se sortir de problèmes de "
"numérotation de version, et de faire face à des situations de changement de "
"logique de numérotation. Cela n'est B<pas> destiné à faire face à des "
"numéros de version qui contiennent des chaînes de lettres que le système de "
"gestion de paquet ne sait pas interpréter (comme « ALPHA », « pre- »)ou "
"d'autres choses stupides."

#. type: SH
#: deb-version.5:112 dpkg-parsechangelog.1:109
#, no-wrap
msgid "CAVEATS"
msgstr "CAVEATS"

#. type: Plain text
#: deb-version.5:116
msgid ""
"The tilde character and its special sorting properties were introduced in "
"dpkg, version 1.10 and some parts of dpkg-dev only gained support for it "
"later in the 1.10.x series."
msgstr ""
"Le caractère tilde (« ~ ») et sa propriété spéciale pour les comparaisons "
"ont été introduites dans la version 1.10 de dpkg. Ce n'est qu'a partir des "
"versions supérieures (1.10.x) que certaines parties de dpkg-dev ont commencé "
"à gérer ce système."

#. type: Plain text
#: deb-version.5:120
msgid "B<deb-control>(5), B<deb>(5), B<dpkg>(1)"
msgstr "B<deb-control>(5), B<deb>(5), B<dpkg>(1)."

#. type: SH
#: deb-version.5:120 dpkg.1:783 dpkg-buildpackage.1:257 dpkg-distaddfile.1:47
#: dpkg-genchanges.1:148 dpkg-gencontrol.1:142 dpkg-gensymbols.1:460
#: dpkg-maintscript-helper.1:128 dpkg-parsechangelog.1:123
#: dpkg-shlibdeps.1:329 dpkg-source.1:730 dselect.1:451
#: start-stop-daemon.8:323 update-alternatives.8:494
#, no-wrap
msgid "AUTHORS"
msgstr "AUTEURS"

#. type: Plain text
#: deb-version.5:122
msgid "Copyright \\(co 1996,1997,1998 Ian Jackson and Christian Schwarz"
msgstr "Copyright \\(co 1996,1997,1998 Ian Jackson et Christian Schwarz"

#. type: Plain text
#: deb-version.5:124 dpkg-buildpackage.1:263
msgid "Copyright \\(co 2007 Frank Lichtenheld"
msgstr "Copyright \\(co 2007 Frank Lichtenheld"

#. type: Plain text
#: deb-version.5:126 deb-substvars.5:167 dpkg-buildflags.1:273
#: dpkg-buildpackage.1:267 dpkg-checkbuilddeps.1:44 dpkg-distaddfile.1:53
#: dpkg-deb.1:269 dpkg-divert.8:139 dpkg-genchanges.1:154
#: dpkg-gencontrol.1:150 dpkg-gensymbols.1:464 dpkg-maintscript-helper.1:139
#: dpkg-mergechangelogs.1:71 dpkg-name.1:108 dpkg-parsechangelog.1:131
#: dpkg-query.1:219 dpkg-shlibdeps.1:339 dpkg-source.1:738 dpkg-split.1:227
#: dpkg-statoverride.8:91 dpkg-vendor.1:53 update-alternatives.8:501
msgid ""
"This is free software; see the GNU General Public Licence version 2 or later "
"for copying conditions. There is NO WARRANTY."
msgstr ""
"Ce programme est un logiciel libre ; voyez la « GNU General Public Licence » "
"version 2 ou supérieure pour le copyright. Il n'y a PAS de garantie."

#. type: TH
#: deb-old.5:1
#, no-wrap
msgid "deb-old"
msgstr "deb-old"

#. type: Plain text
#: deb-old.5:4
msgid "deb-old - old style Debian binary package format"
msgstr "deb-old - Ancien format des paquets binaires Debian"

#. type: Plain text
#: deb-old.5:17
msgid ""
"The B<.deb> format is the Debian binary package file format. This manual "
"page describes the B<old> format, used before Debian 0.93. Please see B<deb>"
"(5)  for details of the new format."
msgstr ""
"Le format de fichier B<.deb> correspond aux paquets binaires Debian. Cette "
"page de manuel décrit l'B<ancien> format, utilisé avant la version 0.93 de "
"Debian. Veuillez consulter B<deb>(5) pour les informations sur le nouveau "
"format."

#. type: Plain text
#: deb-old.5:21
msgid ""
"The file is two lines of format information as ASCII text, followed by two "
"concatenated gzipped ustar files."
msgstr ""
"Le fichier consiste en deux lignes d'information au format texte ASCII, "
"suivi par la concaténation de deux fichiers ustar compressé avec gzip."

#. type: Plain text
#: deb-old.5:25
msgid ""
"The first line is the format version number padded to 8 digits, and is "
"B<0.939000> for all old-format archives."
msgstr ""
"La première ligne indique la version du format, remplie sur 8 chiffres, "
"c'est à dire B<0.939000> pour toutes les archives dans l'ancien format."

#. type: Plain text
#: deb-old.5:28
msgid ""
"The second line is a decimal string (without leading zeroes) giving the "
"length of the first gzipped tarfile."
msgstr ""
"La deuxième ligne fournit un nombre décimal (sans zéros en tête), qui "
"indique la taille de la première archive tar compressée avec gzip."

#. type: Plain text
#: deb-old.5:30
msgid "Each of these lines is terminated with a single newline character."
msgstr ""
"Chacune de ces lignes se termine par un unique caractère de nouvelle ligne."

#. type: Plain text
#: deb-old.5:35
msgid ""
"The first tarfile contains the control information, as a series of ordinary "
"files. The file B<control> must be present, as it contains the core control "
"information."
msgstr ""
"La première archive tar contient les informations de contrôle, sous forme "
"d'une série de fichiers ordinaires. Le fichier B<control> doit être présent, "
"puisqu'il contient les informations principales de contrôle."

#. type: Plain text
#: deb-old.5:46
msgid ""
"In some very old archives, the files in the control tarfile may optionally "
"be in a B<DEBIAN> subdirectory. In that case, the B<DEBIAN> subdirectory "
"will be in the control tarfile too, and the control tarfile will have only "
"files in that directory. Optionally the control tarfile may contain an entry "
"for `B<.>', that is, the current directory."
msgstr ""
"Dans certaines archives vraiment anciennes, les fichiers de l'archive de "
"contrôle peuvent se trouver dans un sous-répertoire B<DEBIAN>. Dans ce cas, "
"le sous-répertoire B<DEBIAN> se trouve également dans l'archive de contrôle, "
"qui ne contiendra que des fichiers de ce répertoire. En option, l'archive de "
"contrôle peut contenir une entrée pour B<.>, le répertoire courant."

#. type: Plain text
#: deb-old.5:50
msgid ""
"The second gzipped tarfile is the filesystem archive, containing pathnames "
"relative to the root directory of the system to be installed on. The "
"pathnames do not have leading slashes."
msgstr ""
"La seconde archive compressée avec gzip correspond à l'archive à placer dans "
"le système de fichiers. Elle contient des chemins relatifs à la racine du "
"système dans lequel se fera l'installation. Les noms de fichiers ne débutent "
"pas par des barres obliques (« / »)."

#. type: Plain text
#: deb-old.5:54
msgid "B<deb>(5), B<dpkg-deb>(1), B<deb-control>(5)."
msgstr "B<deb>(5), B<dpkg-deb>(1), B<deb-control>(5)."

#. type: TH
#: deb-override.5:15
#, no-wrap
msgid "deb-override"
msgstr "deb-override"

#. type: TH
#: deb-override.5:15 deb-extra-override.5:1 deb-shlibs.5:16 deb-substvars.5:2
#: deb-symbols.5:2 deb-triggers.5:1 dpkg-architecture.1:1
#: dpkg-buildpackage.1:1 dpkg-checkbuilddeps.1:1 dpkg-distaddfile.1:1
#: dpkg-divert.8:1 dpkg-genchanges.1:1 dpkg-gencontrol.1:1 dpkg-gensymbols.1:2
#: dpkg-name.1:6 dpkg-parsechangelog.1:1 dpkg-scanpackages.1:15
#: dpkg-scansources.1:1 dpkg-shlibdeps.1:1 dpkg-source.1:2 dpkg-split.1:2
#: dpkg-statoverride.8:1 start-stop-daemon.8:1 update-alternatives.8:8
#, no-wrap
msgid "dpkg utilities"
msgstr "Utilitaires de dpkg"

#. type: Plain text
#: deb-override.5:18
msgid "deb-override - Debian archive override file"
msgstr "deb-override - Fichier override d'une archive Debian"

#. type: Plain text
#: deb-override.5:21 deb-extra-override.5:7
msgid "override"
msgstr "override"

#. type: Plain text
#: deb-override.5:27
msgid ""
"While most information about a package can be found in the control file, "
"some is managed centrally by the distribution czars rather than by the "
"maintainer in order to offer some global consistency.  This information is "
"found in the override file."
msgstr ""
"Bien que l'on puisse trouver dans le fichier « control » la plupart des "
"informations concernant un paquet, certaines doivent être inscrites par les "
"responsables de la distribution plutôt que par le responsable du paquet afin "
"de garantir une cohérence globale. Ces informations se trouvent dans le "
"fichier « override »."

#. type: Plain text
#: deb-override.5:31
msgid ""
"The override file has a simple whitespace-delimited format. Comments are "
"allowed (denoted with a B<#>)."
msgstr ""
"Les éléments du fichier « override » sont séparés simplement par un espace. "
"Les commentaires commencent par un caractère B<« # »>."

#. type: Plain text
#: deb-override.5:37
msgid "I<package> I<priority> I<section> [I<maintainerinfo>]"
msgstr "I<paquet> I<priorité> I<section> [I<responsable>]"

#. type: Plain text
#: deb-override.5:42
msgid ""
"I<package> is the name of the package. Entries in the override file for "
"packages not found in the tree of binary packages are ignored."
msgstr ""
"I<paquet> est le nom du paquet. Les entrées du fichier « override » "
"concernant des paquets qui ne sont pas dans l'arborescence des paquets "
"binaires sont ignorées."

#. type: Plain text
#: deb-override.5:48
msgid ""
"I<priority> and I<section> correspond to the respective control fields "
"available in the .deb. The allowed values are listed in the Debian policy."
msgstr ""
"I<priority> et I<section> correspondent respectivement aux champs de "
"contrôle présent dans le fichier .deb. Les valeurs autorisée sont définies "
"dans la Charte Debian."

#. type: Plain text
#: deb-override.5:56
msgid ""
"I<maintainerinfo>, if present, can be either the name of a maintainer for an "
"unconditional override, or else I<oldmaintainer> B<=E<gt>> I<newmaintainer> "
"to perform a substitution."
msgstr ""
"L'élément I<responsable,> quand il existe, peut représenter soit le nom du "
"responsable quand il s'agit d'un remplacement sans condition, soit la chaîne "
"I<ancienresponsable> B<=E<gt>> I<nouveauresponsable> pour un changement de "
"responsable."

#. type: Plain text
#: deb-override.5:61
msgid ""
"The override files used to make the official Packages lists may be found in "
"the I<indices> directory on any Debian mirror."
msgstr ""
"On peut trouver les fichiers « override », dont on se sert pour établir les "
"fichiers officiels « Packages », dans le répertoire I<indices> des miroirs "
"Debian."

#. type: Plain text
#: deb-override.5:66
msgid ""
"B<dpkg-scanpackages>(1), B<dpkg-scansources>(1), B<apt-ftparchive>(1), B</"
"usr/share/doc/debian-policy/policy.html/index.html>."
msgstr ""
"B<dpkg-scanpackages>(1), B<dpkg-scansources>(1), B<apt-ftparchive>(1), B</"
"usr/share/doc/debian-policy/policy.html/index.html>."

#. type: TH
#: deb-extra-override.5:1
#, no-wrap
msgid "deb-extra-override"
msgstr "deb-extra-override"

#. type: TH
#: deb-extra-override.5:1
#, no-wrap
msgid "2009-08-16"
msgstr "16-08-2009"

#. type: Plain text
#: deb-extra-override.5:4
msgid "deb-extra-override - Debian archive extra override file"
msgstr ""
"deb-extra-override - Fichier override supplémentaire d'une archive Debian"

#. type: Plain text
#: deb-extra-override.5:12
msgid ""
"While most information about a binary/source package can be found in the "
"control/.dsc file, all of it can be overridden when it's exported to "
"Packages/Sources files. The extra override file contains those overrides."
msgstr ""
"Bien que la majorité des informations d'un paquet source ou binaire puisse "
"être trouvées dans le fichier control/.dsc, ces informations peuvent être "
"remplacées lors de l'exportation dans des fichiers Packages ouSources. Les "
"fichier d'« override » supplémentaire contient les valeurs remplacées."

#. type: Plain text
#: deb-extra-override.5:16
msgid ""
"The extra override file has a simple whitespace-delimited format. Comments "
"are allowed (denoted with a B<#>)."
msgstr ""
"Les éléments du fichier « override » supplémentaire sont séparés simplement "
"par un espace. Les commentaires commencent par un caractère B<« # »>."

#. type: Plain text
#: deb-extra-override.5:21
msgid "I<package> I<field-name> I<value>"
msgstr "I<paquet> I<nom-de-champ> I<valeur>"

#. type: Plain text
#: deb-extra-override.5:25
msgid "I<package> is the name of the binary/source package."
msgstr "I<paquet> est le nom du paquet binaire/source."

#. type: Plain text
#: deb-extra-override.5:31
msgid ""
"I<field-name> is the name of the field that is overridden.  I<value> is the "
"value to put in the field. It can contain spaces as the line is split in no "
"more than 3 columns when it's parsed."
msgstr ""
"I<nom-champ> est le nom du champ qui est remplacé. I<valeur> est la valeur à "
"mettre dans ce champ. Elle peut contenir des espaces car la ligne est "
"découpée en 3 colonnes au plus quand elle est analysée."

#. type: Plain text
#: deb-extra-override.5:36
msgid ""
"The extra override files used to make the official Packages lists may be "
"found in the I<indices> directory on any Debian mirror."
msgstr ""
"Les fichiers de dérogation (« override ») supplémentaires utilisés pour "
"établir les fichiers officiels « Packages » se trouvent dans le répertoire "
"I<indices> des miroirs Debian."

#. type: Plain text
#: deb-extra-override.5:40
msgid "B<dpkg-scanpackages>(1), B<dpkg-scansources>(1), B<apt-ftparchive>(1)."
msgstr "B<dpkg-scanpackages>(1), B<dpkg-scansources>(1), B<apt-ftparchive>(1)."

#. type: TH
#: deb-shlibs.5:16
#, no-wrap
msgid "deb-shlibs"
msgstr "deb-shlibs"

#. type: TH
#: deb-shlibs.5:16
#, no-wrap
msgid "2008-02-17"
msgstr "17-02-2008"

#. type: Plain text
#: deb-shlibs.5:19
msgid "deb-shlibs - Debian shared library information file"
msgstr ""
"deb-shlibs - Fichier d'information sur les bibliothèques partagées Debian"

#. type: Plain text
#: deb-shlibs.5:29
msgid ""
"B<shlibs> files map shared library names and versions (I<sonames>)  to "
"dependencies suitable for a package control file.  There is one entry per "
"line. Blank lines are B<not> allowed.  Lines beginning with an B<#> "
"character are considered commentary, and are ignored.  All other lines must "
"have the format"
msgstr ""
"Les fichiers B<shlibs> associent les noms et versions (I<sonames>) des "
"bibliothèques partagées aux dépendances correspondantes dans les fichiers de "
"contrôle des paquets. Il y a une entrée par ligne et les lignes vides ne "
"sont B<pas autorisées>. Les lignes commencant par le caractère B<(« # »)> "
"sont considérées comme étant des commentaires et sont ignorées. Toutes les "
"autres lignes doivent être au format"

#. type: Plain text
#: deb-shlibs.5:34
#, fuzzy
#| msgid "[I<type:>] I<library> I<version> I<dependencies>"
msgid "[I<type>B<:>] I<library> I<version> I<dependencies>"
msgstr "[I<type:>] I<biblitohèque> I<version> I<dépendances>"

#. type: Plain text
#: deb-shlibs.5:38
msgid ""
"The I<library> and I<version> fields are whitespace-delimited, but the "
"I<dependencies> field extends to the end of the line.  The I<type> field is "
"optional and normally not needed."
msgstr ""
"Les champs I<bibliothèque> et I<version> sont séparés par des espaces. Le le "
"champ I<dépendance> finit la ligne. Le champ I<type> est optionnel et donc "
"normalement pas nécessaire."

#. type: Plain text
#: deb-shlibs.5:40
msgid "See the Debian Policy Manual for further details."
msgstr "Lire la charte Debian pour plus d'informations."

#. type: SH
#: deb-shlibs.5:41 deb-symbols.5:43 dpkg.1:714 dpkg-architecture.1:262
#: dpkg-divert.8:91 dpkg-name.1:65 update-alternatives.8:459
#, no-wrap
msgid "EXAMPLES"
msgstr "EXEMPLES"

#. type: Plain text
#: deb-shlibs.5:50
msgid ""
"The B<shlibs> file for a typical library package, named I<libcrunch1>, that "
"provides one library whose soname is I<libcrunch.so.1>, might read"
msgstr ""
"Le fichier B<shlibs> pour un paquet nommé I<libcrunch1>, qui fournit une "
"bibliothèque dont le nom est I<libcrunch.so.1>, doit avoir la ligne"

#. type: Plain text
#: deb-shlibs.5:52
msgid "libcrunch 1 libcrunch1 (E<gt>= 1.2-1)"
msgstr "libcrunch 1 libcrunch1 (E<gt>= 1.2-1)"

#. type: Plain text
#: deb-shlibs.5:60
msgid ""
"The I<dependencies> must mention the most recent version of the package that "
"added new symbols to the library: in the above example, new symbols were "
"added to version 1.2 of I<libcrunch>.  This is not the only reason the "
"dependencies might need to be tightened; again, see the Debian Policy Manual "
"for details."
msgstr ""
"Les I<dépendances> doivent indiquer la version la plus récente du paquet qui "
"ajoute de nouveaux symboles à la bibliothèque : dans l'exemple précédent, de "
"nouveaux symboles ont été ajoutés avec la version 1.2 de I<libcrunch>. Ce "
"n'est pas la seule raison pour laquelle les dépendances doivent être suivies "
"avec soin ; une fois de plus, veuillez vous reporter à la charte Debian pour "
"plus de détails."

#. type: Plain text
#: deb-shlibs.5:63
msgid "B<dpkg-shlibdeps>(1), B<deb-symbols>(5)."
msgstr "B<dpkg-shlibdeps>(1), B<deb-symbols>(5)."

#. type: TH
#: deb-substvars.5:2
#, no-wrap
msgid "deb-substvars"
msgstr "deb-substvars"

#. type: TH
#: deb-substvars.5:2
#, no-wrap
msgid "2009-07-15"
msgstr "15-07-2009"

#. type: Plain text
#: deb-substvars.5:5
msgid "deb-substvars - Debian source substitution variables"
msgstr "deb-substvars - Variables de substitution de source Debian"

#. type: Plain text
#: deb-substvars.5:8
msgid "substvars"
msgstr "substvars"

#. type: Plain text
#: deb-substvars.5:19
msgid ""
"Before B<dpkg-source>, B<dpkg-gencontrol> and B<dpkg-genchanges> write their "
"control information (to the source control file B<.dsc> for B<dpkg-source> "
"and to standard output for B<dpkg-gencontrol> and B<dpkg-genchanges>)  they "
"perform some variable substitutions on the output file."
msgstr ""
"Avant que B<dpkg-source>, B<dpkg-gencontrol> et B<dpkg-genchanges> "
"n'écrivent leurs informations de contrôle (dans le fichier source de "
"contrôle B<.dsc> pour B<dpkg-source> et sur la sortie standard pour B<dpkg-"
"gencontrol> et B<dpkg-genchanges>), ils réalisent quelques substitutions de "
"variables dans le fichier de sortie."

#. type: Plain text
#: deb-substvars.5:26
msgid ""
"A variable substitution has the form B<${>I<variable-name>B<}>.  Variable "
"names consist of alphanumerics, hyphens and colons and start with an "
"alphanumeric. Variable substitutions are performed repeatedly until none are "
"left; the full text of the field after the substitution is rescanned to look "
"for more substitutions."
msgstr ""
"Une substitution de variable est de la forme : B<${>I<nom-variable>B<}>. Les "
"noms de variable consistent en caractères alphanumériques, traits d'union et "
"« deux points » ; ils commencent par une lettre ou un chiffre. La "
"substitution se fait répétitivement jusqu'à ce qu'il n'en reste aucune à "
"faire ; le texte entier du champ après la substitution est réexaminé pour "
"chercher d'autres substitutions."

#. type: Plain text
#: deb-substvars.5:33
msgid ""
"After all the substitutions have been done each occurrence of the string B<"
"${}> (which is not a legal substitution) is replaced with a B<$> sign."
msgstr ""
"Quand toutes les substitutions ont été faites, chaque occurrence de la "
"chaîne B<${}> (laquelle n'est pas une substitution autorisée) est remplacée "
"par un signe B<$>."

#. type: Plain text
#: deb-substvars.5:38
msgid ""
"While variable substitution is done on all control fields, some of those "
"fields are used and needed during the build when the substitution did not "
"yet occur. That's why you can't use variables in the B<Package>, B<Source> "
"and B<Architecture> fields."
msgstr ""
"Lorsque le remplacement de variables est effectué sur tous les champs de "
"contrôle, certains de ces champs sont utilisés et nécessaires pendant la "
"constructions alors même que la substitution n'a pas encore pu être "
"effectuée. Cela explique pourquoi il n'est pas possible d'utiliser de "
"variables dans les champs B<Package>, B<Source> et B<Architecture>."

#. type: Plain text
#: deb-substvars.5:45
msgid ""
"Variable substitution happens on the content of the fields after they have "
"been parsed, thus if you want a variable to expand over multiple lines you "
"do not have to include a space after the newline. This is done implicitly "
"when the field is output. For example, if the variable B<${Description}> is "
"set to \"foo is bar.${Newline}foo is great.\" and if you have the following "
"field:"
msgstr ""
"La substitution de variables se fait dans le contexte des champs après leur "
"analyse. En conséquence, si vous souhaitez qu'une variable soit remplacée "
"sur plusieurs lignes, il n'est pas nécessaire de placer un espace après le "
"retour à la ligne. Cela se fait implicitement quand le champ est affiché. "
"Par exemple, si la variable B<${Description}> est positionnée sur « foo est "
"bar.${Newline}foo est super. » et si vous avez le champ suivant :"

#. type: Plain text
#: deb-substvars.5:50
#, no-wrap
msgid ""
" Description: foo application\n"
"  ${Description}\n"
"  .\n"
"  More text.\n"
msgstr ""
" Description: application foo\n"
"  ${Description}\n"
"  .\n"
"  Encore du texte.\n"

#. type: Plain text
#: deb-substvars.5:52
msgid "It will result in:"
msgstr "Le résultat final sera :"

#. type: Plain text
#: deb-substvars.5:58
#, no-wrap
msgid ""
" Description: foo application\n"
"  foo is bar.\n"
"  foo is great.\n"
"  .\n"
"  More text.\n"
msgstr ""
" Description: application foo\n"
"  foo est bar.\n"
"  foo est super.\n"
"  .\n"
"  More text.\n"

#. type: Plain text
#: deb-substvars.5:71
msgid ""
"Variables can be set using the B<-V> common option. They can be also "
"specified in the file B<debian/substvars> (or whatever other file is "
"specified using the B<-T> option). This file consists of lines of the form "
"I<name>B<=>I<value>.  Trailing whitespace on each line, blank lines, and "
"lines starting with a B<#> symbol (comments) are ignored."
msgstr ""
"On peut définir les variables en utilisant l'option commune B<-V>. On peut "
"aussi se servir du fichier B<debian/substvars> (ou tout autre fichier avec "
"l'option B<-T>). Ce fichier est composé de lignes de la forme suivante : "
"I<nom>B<=>I<valeur>. Les espaces résiduels sur chaque ligne, les lignes "
"vides et les lignes qui commencent par un symbole B<#> sont ignorés."

#. type: Plain text
#: deb-substvars.5:73
msgid "Additionally, the following standard variables are available:"
msgstr "En outre, les variables standard suivantes sont disponibles :"

#. type: TP
#: deb-substvars.5:73
#, no-wrap
msgid "B<Arch>"
msgstr "B<Arch>"

#. type: Plain text
#: deb-substvars.5:77
msgid "The current build architecture (from B<dpkg --print-architecture>)."
msgstr ""
"L'architecture pour laquelle on construit (tirée de B<dpkg --print-"
"architecture>)."

#. type: TP
#: deb-substvars.5:77
#, no-wrap
msgid "B<source:Version>"
msgstr "B<source:Version>"

#. type: Plain text
#: deb-substvars.5:80
msgid "The source package version."
msgstr "La version du paquet source."

#. type: TP
#: deb-substvars.5:80
#, no-wrap
msgid "B<source:Upstream-Version>"
msgstr "B<source:Upstream-Version>"

#. type: Plain text
#: deb-substvars.5:84
msgid ""
"The upstream source package version, including the Debian version epoch if "
"any."
msgstr ""
"La version amont du paquet source, avec éventuellement l'« epoch » de la "
"version debian."

#. type: TP
#: deb-substvars.5:84
#, no-wrap
msgid "B<binary:Version>"
msgstr "B<binary:Version>"

#. type: Plain text
#: deb-substvars.5:88
msgid ""
"The binary package version (which may differ from source:Version in a binNMU "
"for example)."
msgstr ""
"La version du paquet binaire (qui peut être différente de source:Version "
"dans un binNMU par exemple)."

#. type: TP
#: deb-substvars.5:88
#, no-wrap
msgid "B<Source-Version>"
msgstr "B<Source-Version>"

#. type: Plain text
#: deb-substvars.5:93
msgid ""
"The source package version (from the changelog file). This variable is now "
"B<deprecated> as its meaning is different from its function, please use the "
"B<source:Version> or B<binary:Version> as appropriate."
msgstr ""
"La version du paquet source, selon le fichier changelog. Cette variable est "
"maintenant B<déconseillée> car sa signification est distincte de sa "
"fonction. Utilisez plutôt B<source:Version> ou B<binary:Version>."

#. type: TP
#: deb-substvars.5:93
#, no-wrap
msgid "B<Installed-Size>"
msgstr "B<Installed-Size>"

#. type: Plain text
#: deb-substvars.5:102
msgid ""
"The total size of the package's installed files. This value is copied into "
"the corresponding control file field; setting it will modify the value of "
"that field. If this variable isn't set B<dpkg-gencontrol> will use B<du -k "
"debian/tmp> to find the default value."
msgstr ""
"La taille de tous les fichiers installés du paquet. Cette valeur est copiée "
"dans le champ adéquat du fichier « control » ; Quand on fixe cette variable, "
"cela modifie la valeur de ce champ. Quand elle est indéterminée, B<dpkg-"
"gencontrol> use de la commande B<du -k debian/tmp> pour trouver une valeur "
"par défaut."

#. type: TP
#: deb-substvars.5:102
#, no-wrap
msgid "B<Extra-Size>"
msgstr "B<Extra-Size>"

#. type: Plain text
#: deb-substvars.5:111
msgid ""
"Additional disk space used when the package is installed. If this variable "
"is set its value is added to that of the B<Installed-Size> variable (whether "
"set explicitly or using the default value) before it is copied into the "
"B<Installed-Size> control file field."
msgstr ""
"L'espace disque supplémentaire utilisé pour l'installation du paquet. Quand "
"on fixe cette variable, on ajoute sa valeur à la valeur de la variable "
"B<Installed-Size> (qu'elle soit définie explicitement ou calculée par "
"défaut) avant que la variable B<Installed-Size> ne soit copiée dans le champ "
"du fichier « control »."

#. type: TP
#: deb-substvars.5:111
#, no-wrap
msgid "B<F:>I<fieldname>"
msgstr "B<F:>I<fieldname>"

#. type: Plain text
#: deb-substvars.5:118
msgid ""
"The value of the output field I<fieldname> (which must be given in the "
"canonical capitalisation). Setting these variables has no effect other than "
"on places where they are expanded explicitly."
msgstr ""
"La valeur du champ I<fieldname> affiché en sortie et qui doit être "
"classiquement en majuscules. Quand on fixe ces variables, cela ne prend "
"effet que là où elles sont effectivement développées."

#. type: TP
#: deb-substvars.5:118
#, no-wrap
msgid "B<Format>"
msgstr "B<Format>"

#. type: Plain text
#: deb-substvars.5:128
msgid ""
"The B<.changes> file format version generated by this version of the source "
"packaging scripts. If you set this variable the contents of the B<Format> "
"field in the B<.changes> file will change too."
msgstr ""
"La version du format du fichier B<.changes> produite par la version des "
"scripts construisant le source. Quand on détermine cette variable, le "
"contenu du champ B<Format> dans le fichier B<.changes> est aussi modifié."

#. type: TP
#: deb-substvars.5:128
#, no-wrap
msgid "B<Newline>, B<Space>, B<Tab>"
msgstr "B<Newline>, B<Space>, B<Tab>"

#. type: Plain text
#: deb-substvars.5:131
msgid "These variables each hold the corresponding character."
msgstr "Ces variables contiennent chacune le caractère correspondant."

#. type: TP
#: deb-substvars.5:131
#, no-wrap
msgid "B<shlibs:>I<dependencyfield>"
msgstr "B<shlibs:>I<dependencyfield>"

#. type: Plain text
#: deb-substvars.5:135
msgid ""
"Variable settings with names of this form are generated by B<dpkg-shlibdeps>."
msgstr ""
"Les variables déterminées de cette façon sont produites par B<dpkg-"
"shlibdeps>."

#. type: TP
#: deb-substvars.5:135
#, no-wrap
msgid "B<dpkg:Upstream-Version>"
msgstr "B<dpkg:Upstream-Version>"

#. type: Plain text
#: deb-substvars.5:138
msgid "The upstream version of dpkg."
msgstr "La version amont de dpkg."

#. type: TP
#: deb-substvars.5:138
#, no-wrap
msgid "B<dpkg:Version>"
msgstr "B<dpkg:Version>"

#. type: Plain text
#: deb-substvars.5:141
msgid "The full version of dpkg."
msgstr "La version complète de dpkg."

#. type: Plain text
#: deb-substvars.5:144
msgid ""
"If a variable is referred to but not defined it generates a warning and an "
"empty value is assumed."
msgstr ""
"Quand une variable est référencée mais n'est pas définie, cela produit un "
"avertissement et une valeur nulle est assumée."

#. type: SH
#: deb-substvars.5:145 dpkg.1:627 dpkg-architecture.1:284 dpkg.cfg.5:12
#: dpkg-buildflags.1:121 dpkg-distaddfile.1:39 dpkg-divert.8:122
#: dpkg-genchanges.1:138 dpkg-gencontrol.1:128 dpkg-parsechangelog.1:115
#: dpkg-split.1:206 dpkg-statoverride.8:74 dselect.cfg.5:12
#: update-alternatives.8:360
#, no-wrap
msgid "FILES"
msgstr "FICHIERS"

#. type: TP
#: deb-substvars.5:146
#, no-wrap
msgid "B<debian/substvars>"
msgstr "B<debian/substvars>"

#. type: Plain text
#: deb-substvars.5:149
msgid "List of substitution variables and values."
msgstr "La liste des variables de substitution et leurs valeurs."

#. type: SH
#: deb-substvars.5:150 dpkg.1:780 dpkg-buildpackage.1:244 dpkg-deb.1:238
#: dpkg-name.1:86 dpkg-source.1:722 dpkg-split.1:199 dselect.1:429
#: update-alternatives.8:486
#, no-wrap
msgid "BUGS"
msgstr "BOGUES"

#. type: Plain text
#: deb-substvars.5:153 dpkg-source.1:725
msgid ""
"The point at which field overriding occurs compared to certain standard "
"output field settings is rather confused."
msgstr ""
"Le moment où a lieu le remplacement d'un champ par rapport à certaines "
"déterminations de champ affichées sur la sortie standard est plutôt "
"embrouillé."

#. type: Plain text
#: deb-substvars.5:160
msgid ""
"B<dpkg>(1), B<dpkg-genchanges>(1), B<dpkg-gencontrol>(1), B<dpkg-shlibdeps>"
"(1), B<dpkg-source>(1)."
msgstr ""
"B<dpkg>(1), B<dpkg-genchanges>(1), B<dpkg-gencontrol>(1), B<dpkg-shlibdeps>"
"(1), B<dpkg-source>(1)."

#. type: SH
#: deb-substvars.5:161 dpkg-architecture.1:303 dpkg.cfg.5:19
#: dpkg-buildflags.1:266 dpkg-checkbuilddeps.1:40 dpkg-deb.1:265
#: dpkg-divert.8:135 dpkg-mergechangelogs.1:66 dpkg-name.1:104
#: dpkg-query.1:214 dpkg-scansources.1:76 dpkg-split.1:223
#: dpkg-statoverride.8:87 dpkg-vendor.1:48 dselect.cfg.5:19
#, no-wrap
msgid "AUTHOR"
msgstr "AUTEUR"

#. type: Plain text
#: deb-substvars.5:163 dpkg-buildpackage.1:259 dpkg-distaddfile.1:49
#: dpkg-deb.1:267 dpkg-genchanges.1:150 dpkg-gencontrol.1:144
#: dpkg-parsechangelog.1:125 dpkg-shlibdeps.1:331 dpkg-source.1:732
#: dpkg-split.1:225
msgid "Copyright \\(co 1995-1996 Ian Jackson"
msgstr "Copyright \\(co 1995-1996 Ian Jackson"

#. type: Plain text
#: deb-substvars.5:165 dpkg-buildpackage.1:261 dpkg-distaddfile.1:51
#: dpkg-genchanges.1:152 dpkg-gencontrol.1:146 dpkg-parsechangelog.1:127
#: dpkg-shlibdeps.1:333 dpkg-source.1:734 dpkg-statoverride.8:89
msgid "Copyright \\(co 2000 Wichert Akkerman"
msgstr "Copyright \\(co 2000 Wichert Akkerman"

#. type: TH
#: deb-symbols.5:2
#, no-wrap
msgid "deb-symbols"
msgstr "deb-symbols"

#. type: Plain text
#: deb-symbols.5:5
msgid "deb-symbols - Debian's extended shared library information file"
msgstr ""
"deb-symbols - Fichier d'information sur les bibliothèques partagées Debian"

#. type: Plain text
#: deb-symbols.5:8
msgid "symbols"
msgstr "symboles"

#. type: Plain text
#: deb-symbols.5:12
msgid ""
"The format for an extended shared library dependency information entry in "
"these files is:"
msgstr ""
"Le format pour une entrée d'information sur les dépendances étendues avec "
"bibliothèques partagées dans ces fichiers est le suivant :"

#. type: Plain text
#: deb-symbols.5:14
#, fuzzy
#| msgid "E<lt>library sonameE<gt> E<lt>main dependency templateE<gt>"
msgid "I<library-soname main-dependency-template>"
msgstr "E<lt>bibliothèque sonameE<gt> E<lt>modèle principal de dépendanceE<gt>"

#. type: Plain text
#: deb-symbols.5:16
#, fuzzy
#| msgid "[ | E<lt>alternative dependency templateE<gt> ]"
msgid "[ | I<alternative-dependency-template> ]"
msgstr "[ | E<lt>modèle alternatif de dépendanceE<gt> ]"

#. type: Plain text
#: deb-symbols.5:18
msgid "[ ... ]"
msgstr "[ ... ]"

#. type: Plain text
#: deb-symbols.5:20
#, fuzzy
#| msgid "[ * E<lt>field-nameE<gt>: E<lt>field valueE<gt> ]"
msgid "[ * I<field-name>: I<field-value> ]"
msgstr "[ * E<lt>nom-du-champE<gt>: E<lt>valeur du champE<gt> ]"

#. type: Plain text
#: deb-symbols.5:23
#, fuzzy, no-wrap
#| msgid ""
#| "[ ... ]\n"
#| " E<lt>symbolE<gt> E<lt>minimal versionE<gt>[ E<lt>id of dependency templateE<gt> ]\n"
msgid ""
"[ ... ]\n"
" I<symbol> I<minimal-version>[ I<id-of-dependency-template> ]\n"
msgstr ""
"[ ... ]\n"
" E<lt>symboleE<gt> E<lt>version minimumE<gt>[ E<lt>id du modèle de dépendanceE<gt> ]\n"

#. type: Plain text
#: deb-symbols.5:29
#, fuzzy
#| msgid ""
#| "The I<library soname> is exactly the value of the SONAME field as "
#| "exported by B<objdump>(1). A I<dependency template> is a dependency where "
#| "I<#MINVER#> is dynamically replaced either by a version check like "
#| "\"(E<gt>= I<minimal version>)\" or by nothing (if an unversioned "
#| "dependency is deemed sufficient)."
msgid ""
"The I<library-soname> is exactly the value of the SONAME field as exported "
"by B<objdump>(1). A I<dependency-template> is a dependency where I<#MINVER#> "
"is dynamically replaced either by a version check like \"(E<gt>= I<minimal-"
"version>)\" or by nothing (if an unversioned dependency is deemed "
"sufficient)."
msgstr ""
"La variable I<soname de la bibliothèque> est exactement la valeur du champ "
"SONAME tel que exporté par B<objdump>(1). La varible I<modèle de dépendance> "
"est une dépendance où I<#MINVER#> est dynamiquement remplacé soit par une "
"version comme \"(E<gt>= I<version minimum>)\" soit par rien (si une "
"dépendance quelle que soit sa version est reconnue suffisante)."

#. type: Plain text
#: deb-symbols.5:36
#, fuzzy
#| msgid ""
#| "Each exported I<symbol> (listed as I<name>@I<version>, with I<version> "
#| "being \"Base\" if the library is not versioned) is associated to a "
#| "I<minimal version> of its dependency template (the main dependency "
#| "template is used if I<id of dependency template> is not present). The "
#| "first alternative dependency template is numbered 1, the second one 2, "
#| "etc."
msgid ""
"Each exported I<symbol> (listed as I<name>@I<version>, with I<version> being "
"\"Base\" if the library is not versioned) is associated to a I<minimal-"
"version> of its dependency template (the main dependency template is used if "
"I<id-of-dependency-template> is not present). The first alternative "
"dependency template is numbered 1, the second one 2, etc."
msgstr ""
"Chaque I<symbole> exporté (noté I<nom>@I<version>, avec I<version> qui "
"commence par \"Base\" si la bibliothèque n'a pas de version) est associé à "
"une I<version minimale> dans son modèle de dépendance (le modèle principal "
"de dépendance est utilisé si l'I<id du modèle de dépendance> n'est pas "
"présent). La première alternative au modéle de dépendance est numérotée 1, "
"la seconde 2, etc."

#. type: Plain text
#: deb-symbols.5:43
#, fuzzy
#| msgid ""
#| "Each entry for a library can also have some fields of meta-information.  "
#| "Those fields are stored on lines starting with an asterisk. Currently, "
#| "the only valid field is I<Build-Depends-Package>, it indicates the name "
#| "of the \"-dev\" package associated to the library and is used by dpkg-"
#| "shlibdeps to make sure that the dependency generated is at least as "
#| "strict as the corresponding build dependency."
msgid ""
"Each entry for a library can also have some fields of meta-information.  "
"Those fields are stored on lines starting with an asterisk. Currently, the "
"only valid field is I<Build-Depends-Package>, it indicates the name of the "
"\"-dev\" package associated to the library and is used by B<dpkg-shlibdeps> "
"to make sure that the dependency generated is at least as strict as the "
"corresponding build dependency."
msgstr ""
"Chaque entrée pour une bibliothèque peut aussi avoir des champs de méta-"
"information. Ces champs sont enregistrés via des lignes qui débutent par une "
"astérisque (« * »). Actuellement, le seul champ valide est I<Build-Depends-"
"Package>, il indique le nom du paquet « -dev » associé à la bibliothèque et "
"est utilisé par dpkg-shlibdeps pour s'assurer que la dépendance produite est "
"au moins aussi stricte que la dépendance de construction correspondante."

#. type: SS
#: deb-symbols.5:44
#, no-wrap
msgid "Simple symbols file"
msgstr "Simple fichier de symboles"

#. type: Plain text
#: deb-symbols.5:50
#, no-wrap
msgid ""
"libftp.so.3 libftp3 #MINVER#\n"
" DefaultNetbuf@Base 3.1-1-6\n"
" FtpAccess@Base 3.1-1-6\n"
" [...]\n"
msgstr ""
"libftp.so.3 libftp3 #MINVER#\n"
" DefaultNetbuf@Base 3.1-1-6\n"
" FtpAccess@Base 3.1-1-6\n"
" [...]\n"

#. type: SS
#: deb-symbols.5:50
#, no-wrap
msgid "Advanced symbols file"
msgstr "Fichier avancé de symboles"

#. type: Plain text
#: deb-symbols.5:53
msgid "libGL.so.1 libgl1"
msgstr "libGL.so.1 libgl1"

#. type: Plain text
#: deb-symbols.5:55
msgid "| libgl1-mesa-glx #MINVER#"
msgstr "| libgl1-mesa-glx #MINVER#"

#. type: Plain text
#: deb-symbols.5:61
#, no-wrap
msgid ""
"* Build-Depends-Package: libgl1-mesa-dev\n"
" publicGlSymbol@Base 6.3-1\n"
" [...]\n"
" implementationSpecificSymbol@Base 6.5.2-7 1\n"
" [...]\n"
msgstr ""
"* Build-Depends-Package: libgl1-mesa-dev\n"
" publicGlSymbol@Base 6.3-1\n"
" [...]\n"
" implementationSpecificSymbol@Base 6.5.2-7 1\n"
" [...]\n"

#. type: Plain text
#: deb-symbols.5:63
msgid "B<http://wiki.debian.org/Projects/ImprovedDpkgShlibdeps>"
msgstr "B<http://wiki.debian.org/Projects/ImprovedDpkgShlibdeps>"

#. type: Plain text
#: deb-symbols.5:65
msgid "B<dpkg-shlibdeps>(1), B<dpkg-gensymbols>(1)."
msgstr "B<dpkg-shlibdeps>(1), B<dpkg-gensymbols>(1)."

#. type: TH
#: deb-triggers.5:1
#, no-wrap
msgid "deb-triggers"
msgstr "deb-triggers"

#. type: Plain text
#: deb-triggers.5:4
msgid "deb-triggers - package triggers"
msgstr "deb-triggers - actions différées du paquet"

#. type: Plain text
#: deb-triggers.5:7
msgid "triggers"
msgstr "actions différées"

#. type: Plain text
#: deb-triggers.5:12
msgid ""
"A package declares its relationship to some trigger(s) by including a "
"I<triggers> file in its control archive (i.e. I<DEBIAN/triggers> during "
"package creation)."
msgstr ""
"Un paquet déclare ses relations avec des actions différées en incluant un "
"fichier I<triggers> dans son archive de contrôle (c.-à-d. I<DEBIAN/triggers> "
"au moment de la création du paquet)."

#. type: Plain text
#: deb-triggers.5:16
msgid ""
"This file contains directives, one per line. Leading and trailing whitespace "
"and everything after the first B<#> on any line will be trimmed, and empty "
"lines will be ignored."
msgstr ""
"Ce fichier contient des directives, une par ligne. Les mises en page et "
"autres espaces ainsi que ce qui suit le caractère B<\"#\"> sont sautés, et "
"les lignes vides seront ignorées."

#. type: Plain text
#: deb-triggers.5:18
msgid "The trigger control directives currently supported are:"
msgstr "Les directives actuellement gérées sont :"

#. type: Plain text
#: deb-triggers.5:22
msgid "B<interest> I<trigger-name>"
msgstr "B<interest> I<nom-action-différée>"

#. type: Plain text
#: deb-triggers.5:26
#, fuzzy
#| msgid "B<interest> I<trigger-name>"
msgid "B<interest-noawait> I<trigger-name>"
msgstr "B<interest> I<nom-action-différée>"

#. type: Plain text
#: deb-triggers.5:33
#, fuzzy
#| msgid ""
#| "Specifies that the package is interested in the named trigger. All "
#| "triggers in which a package is interested must be listed using this "
#| "directive in the triggers control file."
msgid ""
"Specifies that the package is interested in the named trigger. All triggers "
"in which a package is interested must be listed using this directive in the "
"triggers control file. The \"noawait\" variant does not put the triggering "
"packages in triggers-awaited state. This should be used when the "
"functionality provided by the trigger is not crucial."
msgstr ""
"Indique que le paquet est associé à une action différée. Toutes les actions "
"différées associées au paquet doivent être listées en utilisant cette "
"directive depuis le fichier de contrôle des actions différées."

#. type: Plain text
#: deb-triggers.5:37
msgid "B<activate> I<trigger-name>"
msgstr "B<activate> I<nom-action-différée>"

#. type: Plain text
#: deb-triggers.5:41
#, fuzzy
#| msgid "B<activate> I<trigger-name>"
msgid "B<activate-noawait> I<trigger-name>"
msgstr "B<activate> I<nom-action-différée>"

#. type: Plain text
#: deb-triggers.5:50
#, fuzzy
#| msgid ""
#| "Arranges that changes to this package's state will activate the specified "
#| "trigger. The trigger will be activated at the start of the following "
#| "operations: unpack, configure, remove (including for the benefit of a "
#| "conflicting package), purge and deconfigure."
msgid ""
"Arranges that changes to this package's state will activate the specified "
"trigger. The trigger will be activated at the start of the following "
"operations: unpack, configure, remove (including for the benefit of a "
"conflicting package), purge and deconfigure.  The \"noawait\" variant does "
"not put the triggering packages in triggers-awaited state. This should be "
"used when the functionality provided by the trigger is not crucial."
msgstr ""
"Cette directive permet que tout changement dans l'état de ce paquet active "
"l'action différée spécifiée. L'action différée sera activée au début des "
"opérations suivantes : dépaquetage, configuration, suppression (y compris en "
"cas de remplacement par un paquet conflictuel), purge et déconfiguration."

#. type: Plain text
#: deb-triggers.5:58
msgid ""
"If this package disappears during the unpacking of another package the "
"trigger will be activated when the disappearance is noted towards the end of "
"the unpack. Trigger processing, and transition from triggers-awaited to "
"installed, does not cause activations.  In the case of unpack, triggers "
"mentioned in both the old and new versions of the package will be activated."
msgstr ""
"Si ce paquet disparaît durant le dépaquetage d'un autre paquet, l'action "
"différée sera activée lorsque la disparition est constatée vers la fin du "
"dépaquetage. L'exécution d'une action différée, et donc le passage du statut "
"triggers-awaited (action-différée-attendue) à installed (installé), ne "
"provoquera pas l'activation. Dans le cas d'un dépaquetage, les actions "
"différées listées dans l'ancienne et la nouvelle version du paquet seront "
"activées."

#. type: Plain text
#: deb-triggers.5:61
msgid ""
"Unknown directives are an error which will prevent installation of the "
"package."
msgstr ""
"Les directives inconnues sont des erreurs qui empêcheront l'installation du "
"paquet."

#. type: Plain text
#: deb-triggers.5:66
msgid ""
"The \"-noawait\" variants are only supported by dpkg 1.16.1 or newer, and "
"will lead to errors if used with an older dpkg. It is thus recommended to "
"add a \"Pre-Depends: dpkg (E<gt>= 1.16.1)\" to any package that wish to use "
"those directives."
msgstr ""

#. type: Plain text
#: deb-triggers.5:70
msgid ""
"B<dpkg-trigger>(1), B<dpkg>(1), B</usr/share/doc/dpkg-dev/triggers.txt.gz>."
msgstr ""
"B<dpkg-trigger>(1), B<dpkg>(1), B</usr/share/doc/dpkg-dev/triggers.txt.gz>."

#. type: TH
#: dpkg.1:1
#, no-wrap
msgid "dpkg"
msgstr "dpkg"

#. type: TH
#: dpkg.1:1 dpkg.cfg.5:1 dpkg-buildflags.1:1 dpkg-deb.1:1
#: dpkg-maintscript-helper.1:1 dpkg-mergechangelogs.1:1 dpkg-query.1:1
#: dpkg-trigger.1:1 dpkg-vendor.1:1 dselect.cfg.5:1
#, no-wrap
msgid "dpkg suite"
msgstr "suite dpkg"

#. type: Plain text
#: dpkg.1:4
msgid "dpkg - package manager for Debian"
msgstr "dpkg - un gestionnaire de paquet pour Debian"

#. type: Plain text
#: dpkg.1:8
#, fuzzy
#| msgid "B<dpkg> [I<options>] I<action>"
msgid "B<dpkg> [I<option>...] I<action>"
msgstr "B<dpkg> [I<options>] I<action>"

#. type: SH
#: dpkg.1:9
#, no-wrap
msgid "WARNING"
msgstr "AVERTISSEMENT"

#. type: Plain text
#: dpkg.1:13
msgid ""
"This manual is intended for users wishing to understand B<dpkg>'s command "
"line options and package states in more detail than that provided by B<dpkg "
"--help>."
msgstr ""
"Ce manuel est destiné aux utilisateurs qui souhaitent aller au-delà de la "
"commande B<dpkg --help> pour la compréhension des options de la ligne de "
"commande et des états des paquets."

#. type: Plain text
#: dpkg.1:18
msgid ""
"It should I<not> be used by package maintainers wishing to understand how "
"B<dpkg> will install their packages. The descriptions of what B<dpkg> does "
"when installing and removing packages are particularly inadequate."
msgstr ""
"Les responsables de paquet qui veulent comprendre comment B<dpkg> installe "
"leur paquet I<ne doivent pas> l'utiliser. Les descriptions concernant "
"l'installation ou la désinstallation des paquets sont très insuffisantes."

#. type: Plain text
#: dpkg.1:26
msgid ""
"B<dpkg> is a tool to install, build, remove and manage Debian packages. The "
"primary and more user-friendly front-end for B<dpkg> is B<aptitude>(1). "
"B<dpkg> itself is controlled entirely via command line parameters, which "
"consist of exactly one action and zero or more options. The action-parameter "
"tells B<dpkg> what to do and options control the behavior of the action in "
"some way."
msgstr ""
"B<dpkg> est un outil pour l'installation, la création, la suppression et la "
"gestion des paquets Debian. B<aptitude>(1) est la principale interface à "
"B<dpkg> et la plus agréable pour l'utilisateur.  B<dpkg> lui-même est "
"entièrement contrôlé par des paramètres sur la ligne de commande. Une "
"commande comporte exactement une action et zéro ou plusieurs options. Le "
"paramètre « action » dit ce que B<dpkg> doit faire et les options modifient "
"l'action d'une manière ou d'une autre."

#. type: Plain text
#: dpkg.1:33
msgid ""
"B<dpkg> can also be used as a front-end to B<dpkg-deb>(1) and B<dpkg-query>"
"(1). The list of supported actions can be found later on in the B<ACTIONS> "
"section. If any such action is encountered B<dpkg> just runs B<dpkg-deb> or "
"B<dpkg-query> with the parameters given to it, but no specific options are "
"currently passed to them, to use any such option the back-ends need to be "
"called directly."
msgstr ""

#. type: SH
#: dpkg.1:34
#, no-wrap
msgid "INFORMATION ABOUT PACKAGES"
msgstr "RENSEIGNEMENTS SUR LES PAQUETS"

#. type: Plain text
#: dpkg.1:39
msgid ""
"B<dpkg> maintains some usable information about available packages. The "
"information is divided in three classes: B<states>, B<selection states> and "
"B<flags>. These values are intended to be changed mainly with B<dselect>."
msgstr ""
"B<dpkg> conserve des renseignements utiles sur les paquets disponibles.  "
"Cette information est divisée en trois classes : les états, les états de la "
"sélection et les drapeaux. La modification de ces valeurs est principalement "
"dévolue à B<dselect>."

#. type: SS
#: dpkg.1:39
#, no-wrap
msgid "PACKAGE STATES"
msgstr "ÉTATS DES PAQUETS"

#. type: TP
#: dpkg.1:40
#, no-wrap
msgid "B<not-installed>"
msgstr "B<not-installed>"

#. type: Plain text
#: dpkg.1:43
msgid "The package is not installed on your system."
msgstr "Le paquet n'est pas installé sur le système."

#. type: TP
#: dpkg.1:43
#, no-wrap
msgid "B<config-files>"
msgstr "B<config-files>"

#. type: Plain text
#: dpkg.1:46
msgid "Only the configuration files of the package exist on the system."
msgstr "Seuls les fichiers de configuration du paquet existent sur le système."

#. type: TP
#: dpkg.1:46
#, no-wrap
msgid "B<half-installed>"
msgstr "B<half-installed>"

#. type: Plain text
#: dpkg.1:50
msgid ""
"The installation of the package has been started, but not completed for some "
"reason."
msgstr ""
"L'installation du paquet a commencé mais, pour une raison quelconque, ne "
"s'est pas terminée."

#. type: TP
#: dpkg.1:50
#, no-wrap
msgid "B<unpacked>"
msgstr "B<unpacked>"

#. type: Plain text
#: dpkg.1:53
msgid "The package is unpacked, but not configured."
msgstr "Le paquet est dépaqueté mais n'est pas configuré."

#. type: TP
#: dpkg.1:53
#, no-wrap
msgid "B<half-configured>"
msgstr "B<half-configured>"

#. type: Plain text
#: dpkg.1:57
msgid ""
"The package is unpacked and configuration has been started, but not yet "
"completed for some reason."
msgstr ""
"Le paquet est dépaqueté et la configuration a commencé mais, pour une "
"quelconque raison, ne s'est pas terminée."

#. type: TP
#: dpkg.1:57
#, no-wrap
msgid "B<triggers-awaited>"
msgstr "B<triggers-awaited>"

#. type: Plain text
#: dpkg.1:60
msgid "The package awaits trigger processing by another package."
msgstr ""
"Le paquet attend l'exécution d'une action différée qui est à la charge d'un "
"autre paquet."

#. type: TP
#: dpkg.1:60
#, no-wrap
msgid "B<triggers-pending>"
msgstr "B<triggers-pending>"

#. type: Plain text
#: dpkg.1:63
msgid "The package has been triggered."
msgstr "Une action différée de ce paquet a été activée, il reste à l'exécuter."

#. type: TP
#: dpkg.1:63
#, no-wrap
msgid "B<installed>"
msgstr "B<installed>"

#. type: Plain text
#: dpkg.1:66
msgid "The package is unpacked and configured OK."
msgstr "Le paquet est dépaqueté et correctement configuré."

#. type: SS
#: dpkg.1:66
#, no-wrap
msgid "PACKAGE SELECTION STATES"
msgstr "ÉTATS DE LA SÉLECTION DES PAQUETS"

#. type: TP
#: dpkg.1:67
#, no-wrap
msgid "B<install>"
msgstr "B<install>"

#. type: Plain text
#: dpkg.1:70
msgid "The package is selected for installation."
msgstr "Le paquet est sélectionné pour être installé."

#. type: TP
#: dpkg.1:70
#, no-wrap
msgid "B<hold>"
msgstr "B<hold>"

#. type: Plain text
#: dpkg.1:74
msgid ""
"A package marked to be on B<hold> is not handled by B<dpkg>, unless forced "
"to do that with option B<--force-hold>."
msgstr ""
"B<dpkg> laisse de côté un paquet marqué B<hold>, à moins qu'il ne soit lancé "
"avec l'option de forçage B<--force-hold>."

#. type: TP
#: dpkg.1:74
#, no-wrap
msgid "B<deinstall>"
msgstr "B<deinstall>"

#. type: Plain text
#: dpkg.1:78
msgid ""
"The package is selected for deinstallation (i.e. we want to remove all "
"files, except configuration files)."
msgstr ""
"Le paquet est sélectionné pour être désinstallé (c.-à-d. qu'on veut "
"supprimer tous les fichiers à l'exception des fichiers de configuration)."

#. type: TP
#: dpkg.1:78
#, no-wrap
msgid "B<purge>"
msgstr "B<purge>"

#. type: Plain text
#: dpkg.1:82
msgid ""
"The package is selected to be purged (i.e. we want to remove everything from "
"system directories, even configuration files)."
msgstr ""
"Le paquet est sélectionné pour être purgé (c.-à-d. qu'on veut tout supprimer "
"dans les répertoire du système même les fichiers de configuration)."

#. type: SS
#: dpkg.1:82
#, no-wrap
msgid "PACKAGE FLAGS"
msgstr "DRAPEAUX DES PAQUETS"

#. type: TP
#: dpkg.1:83
#, no-wrap
msgid "B<reinst-required>"
msgstr "B<reinst-required>"

#. type: Plain text
#: dpkg.1:88
msgid ""
"A package marked B<reinst-required> is broken and requires reinstallation. "
"These packages cannot be removed, unless forced with option B<--force-remove-"
"reinstreq>."
msgstr ""
"Un paquet marqué B<reinst-required> est défectueux et demande une "
"réinstallation. B<dpkg> ne peut supprimer de tels paquets, à moins qu'il ne "
"soit lancé avec l'option de forçage B<--force-remove-reinstreq>."

#. type: SH
#: dpkg.1:89 dselect.1:120
#, no-wrap
msgid "ACTIONS"
msgstr "ACTIONS"

#. type: TP
#: dpkg.1:90
#, fuzzy, no-wrap
#| msgid "B<-i>, B<--install> I<package_file>..."
msgid "B<-i>, B<--install> I<package-file>..."
msgstr "B<-i>, B<--install> I<fichier-paquet>..."

#. type: Plain text
#: dpkg.1:94
#, fuzzy
#| msgid ""
#| "Install the package. If B<--recursive> or B<-R> option is specified, "
#| "I<package_file> must refer to a directory instead."
msgid ""
"Install the package. If B<--recursive> or B<-R> option is specified, "
"I<package-file> must refer to a directory instead."
msgstr ""
"Installe le paquet. Si l'on donne l'option B<--recursive> ou B<-R>, "
"I<fichier-paquet> doit alors indiquer un répertoire."

#. type: Plain text
#: dpkg.1:96
msgid "Installation consists of the following steps:"
msgstr "L'installation comporte les étapes suivantes :"

#. type: Plain text
#: dpkg.1:99
msgid "B<1.> Extract the control files of the new package."
msgstr "B<1.> Extraction des fichiers de contrôle du nouveau paquet."

#. type: Plain text
#: dpkg.1:103
msgid ""
"B<2.> If another version of the same package was installed before the new "
"installation, execute I<prerm> script of the old package."
msgstr ""
"B<2.> Quand une ancienne version du même paquet est déjà installée, "
"exécution du script I<prerm> de l'ancien paquet."

#. type: Plain text
#: dpkg.1:106
msgid "B<3.> Run I<preinst> script, if provided by the package."
msgstr "B<3.> Lancement du script I<preinst>, s'il est fourni par le paquet."

#. type: Plain text
#: dpkg.1:110
msgid ""
"B<4.> Unpack the new files, and at the same time back up the old files, so "
"that if something goes wrong, they can be restored."
msgstr ""
"B<4.> Dépaquetage des nouveaux fichiers et, en même temps, sauvegarde des "
"anciens de manière à pouvoir les restaurer si quelque chose tourne mal."

#. type: Plain text
#: dpkg.1:117
msgid ""
"B<5.> If another version of the same package was installed before the new "
"installation, execute the I<postrm> script of the old package. Note that "
"this script is executed after the I<preinst> script of the new package, "
"because new files are written at the same time old files are removed."
msgstr ""
"B<5.> Quand une ancienne version du même paquet est déjà installée, "
"exécution du script I<postrm> de l'ancien paquet. Il faut remarquer que ce "
"script est exécuté après le script I<preinst> du nouveau paquet, parce que "
"les nouveaux fichiers sont écrits dans le même temps que les anciens sont "
"supprimés."

#. type: Plain text
#: dpkg.1:121
msgid ""
"B<6.> Configure the package. See B<--configure> for detailed information "
"about how this is done."
msgstr ""
"B<6.> Configuration du paquet. Voyez l'action B<--configure> pour savoir "
"comment cela se passe."

#. type: TP
#: dpkg.1:121
#, fuzzy, no-wrap
#| msgid "B<--unpack >I<package_file>..."
msgid "B<--unpack >I<package-file>..."
msgstr "B<--unpack >I<fichier-paquet>..."

#. type: Plain text
#: dpkg.1:126
#, fuzzy
#| msgid ""
#| "Unpack the package, but don't configure it. If B<--recursive> or B<-R> "
#| "option is specified, I<package_file> must refer to a directory instead."
msgid ""
"Unpack the package, but don't configure it. If B<--recursive> or B<-R> "
"option is specified, I<package-file> must refer to a directory instead."
msgstr ""
"Dépaquète le paquet, mais ne configure rien. Si l'on donne l'option B<--"
"recursive> ou B<-R>, I<fichier-paquet> doit alors indiquer un répertoire."

#. type: TP
#: dpkg.1:126
#, no-wrap
msgid "B<--configure >I<package>...|B<-a>|B<--pending>"
msgstr "B<--configure >I<paquet>...|B<-a>|B<--pending>"

#. type: Plain text
#: dpkg.1:131
msgid ""
"Configure a package which has been unpacked but not yet configured.  If B<-"
"a> or B<--pending> is given instead of I<package>, all unpacked but "
"unconfigured packages are configured."
msgstr ""
"Reconfiguration d'un paquet dépaqueté mais non encore configuré. Si l'option "
"B<-a> ou B<--pending> est utilisée au lieu de I<paquet>, tous les paquets "
"dépaquetés mais non configurés sont configurés."

#. type: Plain text
#: dpkg.1:135
msgid ""
"To reconfigure a package which has already been configured, try the B<dpkg-"
"reconfigure>(8)  command instead."
msgstr ""
"Pour reconfigurer un paquet qui l'a déjà été, vous devriez plutôt utiliser "
"la commande B<dpkg-reconfigure>(8)."

#. type: Plain text
#: dpkg.1:137
msgid "Configuring consists of the following steps:"
msgstr "La configuration comporte les étapes suivantes :"

#. type: Plain text
#: dpkg.1:142
msgid ""
"B<1.> Unpack the conffiles, and at the same time back up the old conffiles, "
"so that they can be restored if something goes wrong."
msgstr ""
"B<1.> Dépaquetage des fichiers de configuration, et dans le même temps "
"sauvegarde des anciens fichiers de configuration, de manière à pouvoir les "
"restaurer si quelque chose se passe mal."

#. type: Plain text
#: dpkg.1:145
msgid "B<2.> Run I<postinst> script, if provided by the package."
msgstr "B<2.> Exécution du script B<postinst>, s'il est fourni par le paquet."

#. type: TP
#: dpkg.1:145
#, no-wrap
msgid "B<--triggers-only> I<package>...|B<-a>|B<--pending>"
msgstr "B<--triggers-only> I<paquet> ...|B<-a> | B<--pending>"

#. type: Plain text
#: dpkg.1:152
msgid ""
"Processes only triggers. All pending triggers will be processed. If package "
"names are supplied only those packages' triggers will be processed, exactly "
"once each where necessary. Use of this option may leave packages in the "
"improper B<triggers-awaited> and B<triggers-pending> states. This can be "
"fixed later by running: B<dpkg --configure --pending>."
msgstr ""
"N'exécute que les actions différées. Toutes les actions différées en attente "
"seront traitées. Si des noms des paquets sont fournis, les actions différées "
"de ces paquets seront traitées, une fois chacune lorsque nécessaire. "
"L'utilisation de cette option peut laisser des paquets dans les états "
"incorrects de B<triggers-awaited> et de B<triggers-pending>. Cela peut être "
"corrigé plus tard en exécutant : B<dpkg --configure --pending>."

#. type: TP
#: dpkg.1:152
#, no-wrap
msgid "B<-r>, B<--remove>, B<-P>, B<--purge >I<package>...|B<-a>|B<--pending>"
msgstr "B<-r>, B<--remove>, B<-P>, B<--purge >I<paquet>...|B<-a>|B<--pending>"

#. type: Plain text
#: dpkg.1:169
msgid ""
"Remove an installed package. B<-r> or B<--remove> remove everything except "
"conffiles. This may avoid having to reconfigure the package if it is "
"reinstalled later. (Conffiles are configuration files that are listed in the "
"I<DEBIAN/conffiles> control file). B<-P> or B<--purge> removes everything, "
"including conffiles. If B<-a> or B<--pending> is given instead of a package "
"name, then all packages unpacked, but marked to be removed or purged in file "
"I</var/lib/dpkg/status>, are removed or purged, respectively. Note: some "
"configuration files might be unknown to B<dpkg> because they are created and "
"handled separately through the configuration scripts. In that case, B<dpkg> "
"won't remove them by itself, but the package's I<postrm> script (which is "
"called by B<dpkg>), has to take care of their removal during purge. Of "
"course, this only applies to files in system directories, not configuration "
"files written to individual users' home directories."
msgstr ""
"Supprime un paquet installé. L'action B<-r> ou B<--remove> supprime tout "
"sauf les fichiers de configuration. Cela peut éviter la reconfiguration du "
"paquet lors d'une réinstallation. Les fichiers de configuration sont les "
"fichiers répertoriés dans le fichier de contrôle I<debian/conffiles>. "
"L'option B<-P> ou B<--purge> supprime tout, y compris les fichiers de "
"configuration. Si l'on donne l'option B<-a> ou B<--pending> à la place d'un "
"nom de paquet, tous les paquets non dépaquetés, mais qui sont marqués comme "
"devant être supprimés ou purgés dans le fichier I</var/lib/dpkg/status>, "
"sont respectivement supprimés ou purgés. Note : certains fichiers de "
"configuration peuvent être inconnus de B<dpkg> car ils sont créés et gérés à "
"part, via les scripts de configuration. Dans ce cas, B<dpkg> ne les "
"supprimera pas lui-même et le script I<postrm> du paquet (qui est appelé par "
"B<dpkg>) doit s'occuper de leur suppression. Bien entendu, cela ne "
"s'applique qu'aux fichiers situés dans les répertoires du système, pas à "
"ceux existant dans les répertoires personnels des utilisateurs."

#. type: Plain text
#: dpkg.1:171
msgid "Removing of a package consists of the following steps:"
msgstr "La suppression d'un paquet comporte les étapes suivantes :"

#. type: Plain text
#: dpkg.1:174
msgid "B<1.> Run I<prerm> script"
msgstr "B<1.> Lancement du script I<prerm>"

#. type: Plain text
#: dpkg.1:177
msgid "B<2.> Remove the installed files"
msgstr "B<2.> Suppression des fichiers installés"

#. type: Plain text
#: dpkg.1:180
msgid "B<3.> Run I<postrm> script"
msgstr "B<3.> lancement du script I<postrm>"

#. type: TP
#: dpkg.1:181
#, no-wrap
msgid "B<--update-avail>, B<--merge-avail> I<Packages-file>"
msgstr "B<--update-avail>, B<--merge-avail> I<fichier-Paquets>"

#. type: Plain text
#: dpkg.1:190
msgid ""
"Update B<dpkg>'s and B<dselect>'s idea of which packages are available. With "
"action B<--merge-avail>, old information is combined with information from "
"I<Packages-file>. With action B<--update-avail>, old information is replaced "
"with the information in the I<Packages-file>. The I<Packages-file> "
"distributed with Debian is simply named I<Packages>. B<dpkg> keeps its "
"record of available packages in I</var/lib/dpkg/available>."
msgstr ""
"Met à jour l'information de B<dpkg> et de B<dselect> sur les paquets "
"disponibles. L'action B<--merge-avail> combine les informations anciennes "
"avec celles qui proviennent du fichier I<fichier-Packages>. L'action B<--"
"update-avail> remplace les informations anciennes par celles qui proviennent "
"du fichier I<fichier-Packages>. Le fichier I<fichier-Packages> distribué "
"avec Debian est appelé simplement I<Packages>. B<dpkg> garde son propre "
"enregistrement des paquets disponibles dans I</var/lib/dpkg/available>."

#. type: Plain text
#: dpkg.1:195
msgid ""
"A simpler one-shot command to retrieve and update the I<available> file is "
"B<dselect update>. Note that this file is mostly useless if you don't use "
"B<dselect> but an APT-based frontend: APT has its own system to keep track "
"of available packages."
msgstr ""
"A commande unique plus simple permettant de récupérer et mettre à jour le "
"fichier I<available> est B<dselect update>. Veuillez noter que ce fichier "
"est à peu près inutile si vous n'utilisez pas B<dselect> mais une interface "
"basée sur APT. APT comporte en effet son propre mécanisme pour suivre les "
"paquets disponibles."

#. type: TP
#: dpkg.1:195
#, fuzzy, no-wrap
#| msgid "B<-A>, B<--record-avail> I<package_file>..."
msgid "B<-A>, B<--record-avail> I<package-file>..."
msgstr "B<-A>, B<--record-avail> I<fichier_paquet>..."

#. type: Plain text
#: dpkg.1:201
#, fuzzy
#| msgid ""
#| "Update B<dpkg> and B<dselect>'s idea of which packages are available with "
#| "information from the package I<package_file>. If B<--recursive> or B<-R> "
#| "option is specified, I<package_file> must refer to a directory instead."
msgid ""
"Update B<dpkg> and B<dselect>'s idea of which packages are available with "
"information from the package I<package-file>. If B<--recursive> or B<-R> "
"option is specified, I<package-file> must refer to a directory instead."
msgstr ""
"Met à jour l'information de B<dpkg> et de B<dselect> sur les paquets "
"disponibles avec les informations qui proviennent de I<fichier-paquet>. Si "
"l'option B<--recursive> ou B<-R> est donnée, I<fichier-paquet> doit indiquer "
"un répertoire."

#. type: TP
#: dpkg.1:201
#, no-wrap
msgid "B<--forget-old-unavail>"
msgstr "B<--forget-old-unavail>"

#. type: Plain text
#: dpkg.1:205
msgid ""
"Now B<obsolete> and a no-op as B<dpkg> will automatically forget uninstalled "
"unavailable packages."
msgstr ""
"Désormais B<obsolète> et sans effet car B<dpkg> oublie automatiquement les "
"paquets désinstallés qui ne sont pas disponibles."

#. type: TP
#: dpkg.1:205
#, no-wrap
msgid "B<--clear-avail>"
msgstr "B<--clear-avail>"

#. type: Plain text
#: dpkg.1:208
msgid "Erase the existing information about what packages are available."
msgstr "Efface les renseignements existants sur les paquets disponibles."

#. type: TP
#: dpkg.1:208
#, no-wrap
msgid " B<-C>, B<--audit>"
msgstr "B<-C>, B<--audit>"

#. type: Plain text
#: dpkg.1:213
msgid ""
"Searches for packages that have been installed only partially on your "
"system. B<dpkg> will suggest what to do with them to get them working."
msgstr ""
"Recherche les paquets qui n'ont été que partiellement installés sur le "
"système. B<dpkg> suggère une manière de les faire fonctionner."

#. type: TP
#: dpkg.1:213
#, no-wrap
msgid "B<--get-selections> [I<package-name-pattern>...]"
msgstr "B<--get-selections> [I<motif-nom-paquet>...]"

#. type: Plain text
#: dpkg.1:218
msgid ""
"Get list of package selections, and write it to stdout. Without a pattern, "
"non-installed packages (i.e. those which have been previously purged)  will "
"not be shown."
msgstr ""
"Obtient la liste des sélections des paquets, et l'envoie sur la sortie "
"standard. Sans un motif, les paquets non installés (c'est à dire ceux qui "
"ont été précédemment purgés) ne seront pas affichés."

#. type: TP
#: dpkg.1:218 update-alternatives.8:299
#, no-wrap
msgid "B<--set-selections>"
msgstr "B<--set-selections>"

#. type: Plain text
#: dpkg.1:224
#, fuzzy
#| msgid ""
#| "Set package selections using file read from stdin. This file should be in "
#| "the format 'E<lt>packageE<gt> E<lt>stateE<gt>', where state is one of "
#| "install, hold, deinstall or purge. Blank lines and comment lines "
#| "beginning with '#' are also permitted."
msgid ""
"Set package selections using file read from stdin. This file should be in "
"the format 'I<package> I<state>', where state is one of B<install>, B<hold>, "
"B<deinstall> or B<purge>. Blank lines and comment lines beginning with '#' "
"are also permitted."
msgstr ""
"modifie la liste des sélections des paquets en lisant un fichier sur "
"l'entrée standard. Le format de ce fichier doit être de la forme "
"« E<lt>paquetE<gt> E<lt>étatE<gt> », où état vaut « install », « hold », "
"« deinstall » ou « purge ». Les lignes vides ou les lignes de commentaires "
"débutant par « # » sont autorisées."

#. type: TP
#: dpkg.1:224
#, no-wrap
msgid "B<--clear-selections>"
msgstr "B<--clear-selections>"

#. type: Plain text
#: dpkg.1:229
msgid ""
"Set the requested state of every non-essential package to deinstall.  This "
"is intended to be used immediately before --set-selections, to deinstall any "
"packages not in list given to --set-selections."
msgstr ""
"Met l'état de chaque paquet non essentiel à « deinstall ». Il faut utiliser "
"cette option juste avant --set-selections, pour désinstaller les paquets qui "
"ne sont pas affichés par --set-selections."

#. type: TP
#: dpkg.1:229
#, no-wrap
msgid "B<--yet-to-unpack>"
msgstr "B<--yet-to-unpack>"

#. type: Plain text
#: dpkg.1:233
msgid ""
"Searches for packages selected for installation, but which for some reason "
"still haven't been installed."
msgstr ""
"Recherche les paquets qui ont été sélectionnés pour l'installation, mais qui "
"pour une raison quelconque, ne sont pas encore installés."

#. type: TP
#: dpkg.1:234
#, no-wrap
msgid "B<--print-architecture>"
msgstr "B<--print-architecture>"

#. type: Plain text
#: dpkg.1:237
msgid ""
"Print architecture of packages B<dpkg> installs (for example, \"i386\")."
msgstr "Affiche l'architecture des paquets installés (par exemple, « i386 »)."

#. type: TP
#: dpkg.1:237
#, no-wrap
msgid "B<--compare-versions >I<ver1 op ver2>"
msgstr "B<--compare-versions >I<ver1 op ver2>"

#. type: Plain text
#: dpkg.1:248
msgid ""
"Compare version numbers, where I<op> is a binary operator. B<dpkg> returns "
"success (zero result) if the specified condition is satisfied, and failure "
"(nonzero result) otherwise. There are two groups of operators, which differ "
"in how they treat an empty I<ver1> or I<ver2>. These treat an empty version "
"as earlier than any version: B<lt le eq ne ge gt>. These treat an empty "
"version as later than any version: B<lt-nl le-nl ge-nl gt-nl>. These are "
"provided only for compatibility with control file syntax: B<E<lt> E<lt>E<lt> "
"E<lt>= = E<gt>= E<gt>E<gt> E<gt>>."
msgstr ""
"Compare des numéros de version, où I<op> est un opérateur binaire. B<dpkg> "
"retourne un zéro si la condition spécifiée est vérifiée, et retourne un "
"nombre différent de zéro dans le cas contraire. Il y a deux groupes "
"d'opérateurs ; ils diffèrent par leur façon de traiter l'absence de I<ver1> "
"ou de I<ver2>. Pour les opérateurs suivants, B<lt le eq ne ge gt>, l'absence "
"d'une version est considérée comme inférieure à toute version ; pour les "
"opérateurs B<lt-nl le-nl ge-nl gt-nl>, l'absence d'une version est "
"considérée comme supérieure à toute version. Les opérateurs B<E<lt> "
"E<lt>E<lt> E<lt>= = E<gt>= E<gt>E<gt> E<gt>> ne sont fournis que pour la "
"compatibilité avec la syntaxe du fichier de contrôle."

#. type: TP
#: dpkg.1:248
#, fuzzy, no-wrap
#| msgid "B<--command-fd >I<E<lt>nE<gt>>"
msgid "B<--command-fd >I<n>"
msgstr "B<--command-fd >I<E<lt>nE<gt>>"

#. type: Plain text
#: dpkg.1:253
#, fuzzy
#| msgid ""
#| "Accept a series of commands on input file descriptor I<E<lt>nE<gt>>. "
#| "Note: additional options set on the command line, and through this file "
#| "descriptor, are not reset for subsequent commands executed during the "
#| "same run."
msgid ""
"Accept a series of commands on input file descriptor I<n>. Note: additional "
"options set on the command line, and through this file descriptor, are not "
"reset for subsequent commands executed during the same run."
msgstr ""
"Cette action accepte une série de commandes sur le descripteur du fichier "
"d'entrée B<E<lt>nE<gt>>. Note : des options supplémentaires définies sur la "
"ligne de commande à travers ce descripteur de fichier ne sont pas redéfinies "
"pour les commandes suivantes qui sont exécutées pendant la même séquence."

#. type: TP
#: dpkg.1:253 dpkg-architecture.1:60 dpkg-buildflags.1:89 dpkg-divert.8:71
#: dpkg-mergechangelogs.1:38 dpkg-scansources.1:66 dpkg-statoverride.8:44
#: dpkg-vendor.1:28 dselect.1:113 update-alternatives.8:316
#, no-wrap
msgid "B<--help>"
msgstr "B<--help>"

#. type: Plain text
#: dpkg.1:256
msgid "Display a brief help message."
msgstr "Affiche un court message d'aide."

#. type: TP
#: dpkg.1:256
#, no-wrap
msgid "B<--force-help>"
msgstr "B<--force-help>"

#. type: Plain text
#: dpkg.1:259
msgid "Give help about the B<--force->I<thing> options."
msgstr "Donne des renseignements sur les options B<--force->I<quelque-chose>."

#. type: TP
#: dpkg.1:259
#, no-wrap
msgid "B<-Dh>, B<--debug=help>"
msgstr "B<-Dh>, B<--debug=help>"

#. type: Plain text
#: dpkg.1:262
msgid "Give help about debugging options."
msgstr "donne des renseignements sur les options de débogage."

#. type: TP
#: dpkg.1:262 dpkg-architecture.1:63 dpkg-buildflags.1:92
#: dpkg-buildpackage.1:226 dpkg-checkbuilddeps.1:36 dpkg-distaddfile.1:35
#: dpkg-deb.1:175 dpkg-divert.8:74 dpkg-genchanges.1:134 dpkg-gencontrol.1:124
#: dpkg-gensymbols.1:446 dpkg-mergechangelogs.1:41 dpkg-parsechangelog.1:36
#: dpkg-query.1:113 dpkg-scanpackages.1:99 dpkg-scansources.1:68
#: dpkg-shlibdeps.1:218 dpkg-source.1:99 dpkg-split.1:129
#: dpkg-statoverride.8:47 dpkg-trigger.1:34 dpkg-vendor.1:31 dselect.1:116
#: update-alternatives.8:319
#, no-wrap
msgid "B<--version>"
msgstr "B<--version>"

#. type: Plain text
#: dpkg.1:265
msgid "Display B<dpkg> version information."
msgstr "Affiche la version de B<dpkg>."

#. type: TP
#: dpkg.1:265
#, no-wrap
msgid "B<dpkg-deb actions>"
msgstr "B<dpkg-deb actions>"

#. type: Plain text
#: dpkg.1:268
msgid "See B<dpkg-deb>(1) for more information about the following actions."
msgstr ""
"Voyez B<dpkg-deb>(1) pour des renseignements supplémentaires sur les actions "
"suivantes."

#. type: Plain text
#: dpkg.1:288
#, no-wrap
msgid ""
"B<-b>, B<--build> I<directory> [I<archive>|I<directory>]\n"
"    Build a deb package.\n"
"B<-c>, B<--contents> I<archive>\n"
"    List contents of a deb package.\n"
"B<-e>, B<--control> I<filename> [I<directory>]\n"
"    Extract control-information from a package.\n"
"B<-x>, B<--extract> I<archive directory>\n"
"    Extract the files contained by package.\n"
"B<-X>, B<--vextract> I<archive directory>\n"
"    Extract and display the filenames contained by a\n"
"    package.\n"
"B<-f>, B<--field>  I<archive> [I<control-field>...]\n"
"    Display control field(s) of a package.\n"
"B<--fsys-tarfile> I<archive>\n"
"    Display the filesystem tar-file contained by a\n"
"    Debian package.\n"
"B<-I>, B<--info> I<archive> [I<control-file>...]\n"
"    Show information about a package.\n"
msgstr ""
"B<-b>, B<--build> I<répertoire> [I<archive>|I<répertoire>]\n"
"    Construit un paquet deb.\n"
"B<-c>, B<--contents> I<archive>\n"
"    Liste le contenu d'un paquet deb.\n"
"B<-e>, B<--control> I<nom-de-fichier> [I<répertoire>]\n"
"    Extrait les informations de contrôle d'un paquet.\n"
"B<-x>, B<--extract> I<répertoire de l'archive>\n"
"    Extrait et affiche les fichiers contenus dans un paquet.\n"
"B<-f>, B<--field> I<nom-de-fichier> [I<champ de contrôle>] ...\n"
"    Affiche le(s) champ(s) de contrôle d'un paquet.\n"
"B<--fsys-tarfile> I<archive>\n"
"    Affiche le contenu du fichier « tar » d'un paquet Debian.\n"
"B<-I>, B<--info> I<nom-de-fichier> [I<fichier de contrôle>]\n"
"    Affiche des renseignements sur un paquet.\n"

#. type: TP
#: dpkg.1:290
#, no-wrap
msgid "B<dpkg-query actions>"
msgstr "B<dpkg-query actions>"

#. type: Plain text
#: dpkg.1:293
msgid "See B<dpkg-query>(1) for more information about the following actions."
msgstr ""
"Voyez B<dpkg-query>(1) pour davantage d'explications sur les actions "
"suivantes."

#. type: Plain text
#: dpkg.1:308
#, no-wrap
msgid ""
"B<-l>, B<--list> I<package-name-pattern>...\n"
"    List packages matching given pattern.\n"
"B<-s>, B<--status> I<package-name>...\n"
"    Report status of specified package.\n"
"B<-L>, B<--listfiles> I<package-name>...\n"
"    List files installed to your system from I<package-name>.\n"
"B<-S>, B<--search> I<filename-search-pattern>...\n"
"    Search for a filename from installed packages.\n"
"B<-p>, B<--print-avail> I<package-name>...\n"
"    Display details about I<package-name>, as found in\n"
"    I</var/lib/dpkg/available>. Users of APT-based frontends\n"
"    should use B<apt-cache show> I<package-name> instead.\n"
msgstr ""
"B<-l>, B<--list> I<motif-du-nom-du-paquet> ...\n"
"    Affiche la liste des paquets qui correspondent au motif.\n"
"B<-s>, B<--status> I<nom-du-paquet> ...\n"
"    Donne l'état du paquet indiqué.\n"
"B<-L>, B<--listfiles> I<nom-paquet> ...\n"
"    Affiche la liste des fichiers installés qui appartiennent\n"
"    à I<paquet>.\n"
"B<-S>, B<--search> I<motif-du-fichier-à-rechercher> ...\n"
"    Recherche un fichier dans les paquets installés.\n"
"B<-p>, B<--print-avail> I<nom-du-paquet>\n"
"    Affiche les informations trouvées dans I</var/lib/dpkg/available>\n"
"    à propos de I<paquet>. Les utilisateurs des interfaces à APT\n"
"    devraient plutôt utiliser B<apt-cache show> I<nom-du-paquet>.\n"

#. type: SH
#: dpkg.1:310 dpkg-architecture.1:67 dpkg-buildpackage.1:50
#: dpkg-checkbuilddeps.1:18 dpkg-distaddfile.1:27 dpkg-deb.1:179
#: dpkg-divert.8:42 dpkg-genchanges.1:17 dpkg-gencontrol.1:37
#: dpkg-gensymbols.1:369 dpkg-mergechangelogs.1:27 dpkg-name.1:30
#: dpkg-parsechangelog.1:15 dpkg-query.1:117 dpkg-scanpackages.1:71
#: dpkg-scansources.1:44 dpkg-shlibdeps.1:106 dpkg-split.1:133
#: dpkg-statoverride.8:51 dpkg-trigger.1:38 dpkg-vendor.1:35 dselect.1:36
#: start-stop-daemon.8:103 update-alternatives.8:323
#, no-wrap
msgid "OPTIONS"
msgstr "OPTIONS"

#. type: Plain text
#: dpkg.1:316
msgid ""
"All options can be specified both on the command line and in the B<dpkg> "
"configuration file I</etc/dpkg/dpkg.cfg> or the files on the configuration "
"directory I</etc/dpkg/dpkg.cfg.d/>. Each line in the configuration file is "
"either an option (exactly the same as the command line option but without "
"leading dashes) or a comment (if it starts with a B<#>)."
msgstr ""
"On peut spécifier une option à la fois sur la ligne de commande et dans le "
"fichier de configuration de B<dpkg>, I</etc/dpkg/dpkg.cfg> ou dans les "
"fichiers du répertoire de configuration I</etc/dpkg/dpkg.cfg.d/>. Chaque "
"ligne de ce fichier est soit une option (identique à une option en ligne de "
"commande mais sans tiret), soit un commentaire, commençant par B<#>."

#. type: TP
#: dpkg.1:317
#, no-wrap
msgid "B<--abort-after=>I<number>"
msgstr "B<--abort-after=>I<nombre>"

#. type: Plain text
#: dpkg.1:320
msgid "Change after how many errors B<dpkg> will abort. The default is 50."
msgstr ""
"Modifie le nombre d'erreurs au delà duquel B<dpkg> s'arrête. Il est par "
"défaut égal à 50."

#. type: TP
#: dpkg.1:320
#, no-wrap
msgid "B<-B>, B<--auto-deconfigure>"
msgstr "B<-B>, B<--auto-deconfigure>"

#. type: Plain text
#: dpkg.1:326
msgid ""
"When a package is removed, there is a possibility that another installed "
"package depended on the removed package. Specifying this option will cause "
"automatic deconfiguration of the package which depended on the removed "
"package."
msgstr ""
"Quand un paquet est supprimé, il peut arriver qu'un paquet installé "
"dépendait du paquet supprimé. En spécifiant cette option, on obtient la "
"déconfiguration automatique du paquet qui dépendait du paquet supprimé."

#. type: TP
#: dpkg.1:326
#, no-wrap
msgid "B<-D>I<octal>B<, --debug=>I<octal>"
msgstr "B<-D>I<octal>B<, --debug=>I<octal>"

#. type: Plain text
#: dpkg.1:332
msgid ""
"Switch debugging on. I<octal> is formed by bitwise-orring desired values "
"together from the list below (note that these values may change in future "
"releases). B<-Dh> or B<--debug=help> display these debugging values."
msgstr ""
"Demande de débogage. I<octal> est formé en faisant un « ou » logique entre "
"des valeurs souhaitées appartenant à la liste ci-dessous (notez que ces "
"valeurs pourront changer dans les prochaines versions). B<-Dh> ou B<--"
"debug=help> affiche ces valeurs de débogage."

#. type: Plain text
#: dpkg.1:347
#, fuzzy, no-wrap
#| msgid ""
#| "    number  description\n"
#| "         1   Generally helpful progress information\n"
#| "         2   Invocation and status of maintainer scripts\n"
#| "        10   Output for each file processed\n"
#| "       100   Lots of output for each file processed\n"
#| "        20   Output for each configuration file\n"
#| "       200   Lots of output for each configuration file\n"
#| "        40   Dependencies and conflicts\n"
#| "       400   Lots of dependencies/conflicts output\n"
#| "     10000   Trigger activation and processing\n"
#| "     20000   Lots of output regarding triggers\n"
#| "     40000   Silly amounts of output regarding triggers\n"
#| "      1000   Lots of drivel about e.g. the dpkg/info dir\n"
#| "      2000   Insane amounts of drivel\n"
msgid ""
"    Number   Description\n"
"         1   Generally helpful progress information\n"
"         2   Invocation and status of maintainer scripts\n"
"        10   Output for each file processed\n"
"       100   Lots of output for each file processed\n"
"        20   Output for each configuration file\n"
"       200   Lots of output for each configuration file\n"
"        40   Dependencies and conflicts\n"
"       400   Lots of dependencies/conflicts output\n"
"     10000   Trigger activation and processing\n"
"     20000   Lots of output regarding triggers\n"
"     40000   Silly amounts of output regarding triggers\n"
"      1000   Lots of drivel about e.g. the dpkg/info dir\n"
"      2000   Insane amounts of drivel\n"
msgstr ""
" nombre  description\n"
"    1   Informations de progression \n"
"        en général utiles\n"
"    2   Appel et état des scripts du responsable\n"
"   10   Sortie pour chaque fichier traité\n"
"  100   De nombreuses sorties pour chaque fichier\n"
"        traité\n"
"   20   Sortie pour chaque fichier de configuration\n"
"  200   De nombreuses sorties pour chaque fichier\n"
"        de configuration\n"
"   40   Dépendances et conflits\n"
"  400   De nombreuses sorties pour les dépendances\n"
"        et les conflits\n"
"10000   Sortie sur l'activation et le traitement des actions différées\n"
"20000   De nombreuses sorties sur les actions différées\n"
"40000   Quantité stupide de sorties sur les actions différées\n"
" 1000   Beaucoup de radotage à propos du répertoire\n"
"        dpkg/info \n"
" 2000   Quantité stupide de radotage\n"

#. type: TP
#: dpkg.1:347
#, no-wrap
msgid "B<--force->I<things>, B<--no-force->I<things>, B<--refuse->I<things>"
msgstr "B<--force->I<quelque-chose>, B<--no-force->I<quelque-chose>, B<--refuse->I<quelque-chose>"

#. type: Plain text
#: dpkg.1:354
msgid ""
"Force or refuse (B<no-force> and B<refuse> mean the same thing)  to do some "
"things. I<things> is a comma separated list of things specified below. B<--"
"force-help> displays a message describing them.  Things marked with (*) are "
"forced by default."
msgstr ""
"Forcer ou refuser (B<no-force> et B<refuse> signifient la même chose) de "
"faire quelque chose. I<quelque-chose> est une liste d'actions séparées par "
"des virgules, décrites ci-après. B<--force-help> affiche un message qui les "
"décrit. Les actions marquées d'un (*) sont forcées par défaut."

#. type: Plain text
#: dpkg.1:358
msgid ""
"I<Warning: These options are mostly intended to be used by experts only. "
"Using them without fully understanding their effects may break your whole "
"system.>"
msgstr ""
"I<Avertissement : Ces options sont principalement destinées aux experts. Un "
"usage auquel manque la pleine compréhension de leurs effets peut casser le "
"système entier.>"

#. type: Plain text
#: dpkg.1:361
msgid "B<all>: Turns on (or off) all force options."
msgstr "B<all> : Met en oeuvre (ou pas) toutes les options de forçage."

#. type: Plain text
#: dpkg.1:364
msgid ""
"B<downgrade>(*): Install a package, even if newer version of it is already "
"installed."
msgstr ""
"B<downgrade>(*) : Installe un paquet, même si une version plus récente du "
"paquet est déjà installée."

#. type: Plain text
#: dpkg.1:371
msgid ""
"I<Warning: At present dpkg does not do any dependency checking on downgrades "
"and therefore will not warn you if the downgrade breaks the dependency of "
"some other package. This can have serious side effects, downgrading "
"essential system components can even make your whole system unusable. Use "
"with care.>"
msgstr ""
"I<Avertissement : Pour l'instant, dpkg ne recherche pas les dépendances lors "
"d'un retour à une version inférieure d'un paquet ; il ne vous préviendra pas "
"si la version choisie casse les dépendances d'un autre paquet. Cela peut "
"avoir de sérieuses conséquences ; et si l'on revient à des versions "
"antérieures des programmes essentiels du système, cela peut rendre votre "
"système inutilisable. N'utiliser qu'avec précaution.>"

#. type: Plain text
#: dpkg.1:375
msgid ""
"B<configure-any>: Configure also any unpacked but unconfigured packages on "
"which the current package depends."
msgstr ""
"B<configure-any> : Configure aussi les paquets dépaquetés mais non "
"configurés dont dépend le paquet en question."

#. type: Plain text
#: dpkg.1:378
msgid "B<hold>: Process packages even when marked \"hold\"."
msgstr "B<hold> : Traite même les paquets marqués « à garder » (« hold »)."

#. type: Plain text
#: dpkg.1:383
msgid ""
"B<remove-reinstreq>: Remove a package, even if it's broken and marked to "
"require reinstallation. This may, for example, cause parts of the package to "
"remain on the system, which will then be forgotten by B<dpkg>."
msgstr ""
"B<remove-reinstreq> : Supprime un paquet, même défectueux et marqué comme "
"demandant une réinstallation. Il se peut, dès lors, que des éléments du "
"paquet restent dans le système et soient oubliés par B<dpkg>."

#. type: Plain text
#: dpkg.1:388
msgid ""
"B<remove-essential>: Remove, even if the package is considered essential. "
"Essential packages contain mostly very basic Unix commands. Removing them "
"might cause the whole system to stop working, so use with caution."
msgstr ""
"B<remove-essential> : supprime un paquet même s'il est considéré comme "
"indispensable. Les paquets « Essential » comportent les commandes Unix les "
"plus fondamentales et les enlever peut casser le système entier. Il faut "
"utiliser cette option avec prudence."

#. type: Plain text
#: dpkg.1:391
msgid "B<depends>: Turn all dependency problems into warnings."
msgstr ""
"B<depends> : Change tous les problèmes de dépendance en avertissements."

#. type: Plain text
#: dpkg.1:394
msgid ""
"B<depends-version>: Don't care about versions when checking dependencies."
msgstr ""
"B<depends-version> : Ignore les versions dans les questions de dépendance."

#. type: Plain text
#: dpkg.1:397
msgid "B<breaks>: Install, even if this would break another package."
msgstr ""
"B<breaks>: Force l'installation, même si cela risque de casser un autre "
"paquet."

#. type: Plain text
#: dpkg.1:401
msgid ""
"B<conflicts>: Install, even if it conflicts with another package. This is "
"dangerous, for it will usually cause overwriting of some files."
msgstr ""
"B<conflicts> : Installe un paquet, même s'il est en conflit avec un autre "
"paquet. C'est dangereux car habituellement cela produit le remplacement de "
"certains fichiers."

#. type: Plain text
#: dpkg.1:406
msgid ""
"B<confmiss>: Always install a missing conffile. This is dangerous, since it "
"means not preserving a change (removing) made to the file."
msgstr ""
"B<confmiss> : Installe un fichier de configuration manquant. Cette opération "
"estdangereuse, puisque les changements apportés au fichier ne seront pas "
"préservés (suppression)."

#. type: Plain text
#: dpkg.1:411
msgid ""
"B<confnew>: If a conffile has been modified always install the new version "
"without prompting, unless the B<--force-confdef> is also specified, in which "
"case the default action is preferred."
msgstr ""
"B<confnew> : Quand un « conffile » a été modifié, toujours installer la "
"nouvelle version et ne rien demander, sauf si l'option B<--force-confdef> "
"est aussi présente, auquel cas l'action par défaut est choisie."

#. type: Plain text
#: dpkg.1:416
msgid ""
"B<confold>: If a conffile has been modified always keep the old version "
"without prompting, unless the B<--force-confdef> is also specified, in which "
"case the default action is preferred."
msgstr ""
"B<confold> : Quand un « conffile » a été modifié, garder l'ancienne version "
"et ne rien demander, sauf si l'option B<--force-confdef> est aussi présente, "
"auquel cas l'action par défaut est choisie."

#. type: Plain text
#: dpkg.1:422
msgid ""
"B<confdef>: If a conffile has been modified always choose the default "
"action. If there is no default action it will stop to ask the user unless "
"B<--force-confnew> or B<--force-confold> is also been given, in which case "
"it will use that to decide the final action."
msgstr ""
"B<confdef> : Utilise toujours l'action par défaut quand un « conffile » a "
"été modifié. Quand il n'y a pas d'action par défaut, la commande s'arrête et "
"interroge l'utilisateur, à moins que l'option B<--force-confnew> ou l'option "
"B<--force-confold> n'ait été donnée, auquel cas elle se sert de ces options "
"pour déterminer ce qu'il faut faire."

#. type: Plain text
#: dpkg.1:429
msgid ""
"B<confask>: If a conffile has been modified always offer to replace it with "
"the version in the package, even if the version in the package did not "
"change. If any of B<--force-confmiss>, B<--force-confnew>, B<--force-"
"confold>, or B<--force-confdef> is also given, it will be used to decide the "
"final action."
msgstr ""
"B<confask> : Si un fichier de configuration a été modifié, propose de le "
"remplacer avec la version du paquet, même si celle-ci n'a pas changé. Si "
"l'une des options B<--force-confmiss>, B<--force-confnew>, B<--force-"
"confold>, ou B<--force-confdef> est également mentionnée, elle déterminera "
"l'action finalement utilisée."

#. type: Plain text
#: dpkg.1:432
msgid "B<overwrite>: Overwrite one package's file with another's file."
msgstr "B<overwrite> : Remplace un fichier par un fichier d'un autre paquet."

#. type: Plain text
#: dpkg.1:435
msgid "B<overwrite-dir> Overwrite one package's directory with another's file."
msgstr ""
"B<overwrite-dir> : Remplace un répertoire par un répertoire d'un autre "
"paquet."

#. type: Plain text
#: dpkg.1:438
msgid ""
"B<overwrite-diverted>: Overwrite a diverted file with an undiverted version."
msgstr ""
"B<overwrite-diverted> : Remplace un fichier détourné avec une version non "
"détournée."

#. type: Plain text
#: dpkg.1:446
msgid ""
"B<unsafe-io>: Do not perform safe I/O operations when unpacking. Currently "
"this implies not performing file system syncs before file renames, which is "
"known to cause substantial performance degradation on some file systems, "
"unfortunately the ones that require the safe I/O on the first place due to "
"their unreliable behaviour causing zero-length files on abrupt system "
"crashes."
msgstr ""
"B<unsafe-io>: Ne pas effectuer d'actions d'entrée/sortie non sûre lors de la "
"décompression. Cela implique actuellement de ne pas synchroniser le système "
"de fichiers avant le renommage de fichiers, ce qui est une cause connue de "
"dégradation des performances sur certains systèmes, en général ceux qui, peu "
"fiables, ont besoin d'actions sûres pour éviter de terminer avec des "
"fichiers de taille vide en cas d'interruption inopinée."

#. type: Plain text
#: dpkg.1:452
msgid ""
"I<Note>: For ext4, the main offender, consider using instead the mount "
"option B<nodelalloc>, which will fix both the performance degradation and "
"the data safety issues, the latter by making the file system not produce "
"zero-length files on abrupt system crashes with any software not doing syncs "
"before atomic renames."
msgstr ""
"I<Note>: Pour ext4, le principal concerné, il est suggéré de plutôt utiliser "
"l'option de montage B<nodelalloc>, qui corrigera à la fois la dégradation "
"des performances et les problèmes de sécurité des données. Elle permet "
"notamment d'éviter de terminer avec des fichiers vides lors des arrêts "
"brutaux pour tout logiciel qui ne synchronise pas le système de fichiers "
"avant chaque renommage."

#. type: Plain text
#: dpkg.1:455
msgid ""
"I<Warning: Using this option might improve performance at the cost of losing "
"data, use with care.>"
msgstr ""
"I<Avertissement : L'utilisation de cette option peut améliorer la "
"performance mais augmente le risque de perte de données. Elle est donc à "
"utiliser avec précautions.>"

#. type: Plain text
#: dpkg.1:458
#, fuzzy
#| msgid "B<architecture>: Process even packages with the wrong architecture."
msgid "B<architecture>: Process even packages with wrong or no architecture."
msgstr "B<architecture> : Traite même les paquets d'une autre architecture"

#. type: Plain text
#: dpkg.1:461
#, fuzzy
#| msgid "B<architecture>: Process even packages with the wrong architecture."
msgid "B<bad-version>: Process even packages with wrong versions."
msgstr "B<architecture> : Traite même les paquets d'une autre architecture"

#. type: Plain text
#: dpkg.1:464
msgid ""
"B<bad-path>: B<PATH> is missing important programs, so problems are likely."
msgstr ""
"B<bad-path> : Programmes importants non visibles par la variable B<PATH>, ce "
"qui va poser des problèmes."

#. type: Plain text
#: dpkg.1:467
msgid "B<not-root>: Try to (de)install things even when not root."
msgstr "B<not-root> : Tente de (dés)installer même sans être root."

#. type: Plain text
#: dpkg.1:470
msgid "B<bad-verify>: Install a package even if it fails authenticity check."
msgstr ""
"B<bad-verify> : Installe un paquet même si la vérification de son "
"authenticité a échoué."

#. type: TP
#: dpkg.1:471
#, no-wrap
msgid "B<--ignore-depends>=I<package>,..."
msgstr "B<--ignore-depends>=I<paquet>,..."

#. type: Plain text
#: dpkg.1:475
msgid ""
"Ignore dependency-checking for specified packages (actually, checking is "
"performed, but only warnings about conflicts are given, nothing else)."
msgstr ""
"Ne tient pas compte de la vérification des dépendances pour les paquets "
"spécifiés (en fait, la vérification est faite mais on ne donne rien d'autre "
"que des avertissements)."

#. type: TP
#: dpkg.1:475
#, no-wrap
msgid "B<--no-act>, B<--dry-run>, B<--simulate>"
msgstr "B<--no-act>, B<--dry-run>, B<--simulate>"

#. type: Plain text
#: dpkg.1:480
msgid ""
"Do everything which is supposed to be done, but don't write any changes. "
"This is used to see what would happen with the specified action, without "
"actually modifying anything."
msgstr ""
"Faire tout ce qui doit être fait, mais n'écrire aucune modification. On "
"utilise cette option pour voir ce qui se passe sans modifier quoi que ce "
"soit."

#. type: Plain text
#: dpkg.1:485
msgid ""
"Be sure to give B<--no-act> before the action-parameter, or you might end up "
"with undesirable results. (e.g. B<dpkg --purge foo --no-act> will first "
"purge package foo and then try to purge package --no-act, even though you "
"probably expected it to actually do nothing)"
msgstr ""
"Assurez-vous de donner l'option B<--no-act> avant le paramètre action, sinon "
"des résultats fâcheux sont probables. Par exemple, la commande B<dpkg --"
"purge foo --no-act> purge d'abord le paquet foo et essaie ensuite de purger "
"le paquet --no-act, même si vous comptiez qu'elle ne ferait rien du tout."

#. type: TP
#: dpkg.1:485
#, no-wrap
msgid "B<-R>, B<--recursive>"
msgstr "B<-R>, B<--recursive>"

#. type: Plain text
#: dpkg.1:491
msgid ""
"Recursively handle all regular files matching pattern B<*.deb> found at "
"specified directories and all of its subdirectories. This can be used with "
"B<-i>, B<-A>, B<--install>, B<--unpack> and B<--avail> actions."
msgstr ""
"Traite récursivement tous les simples fichiers qui correspondent au motif "
"B<*.deb> et qui se trouvent dans les répertoires et sous-répertoires "
"spécifiés. On peut utiliser cette option avec les actions B<-i>, B<-A>, B<--"
"install>, B<--unpack> et B<--avail>."

#. type: TP
#: dpkg.1:491
#, no-wrap
msgid "B<-G>"
msgstr "B<-G>"

#. type: Plain text
#: dpkg.1:495
msgid ""
"Don't install a package if a newer version of the same package is already "
"installed. This is an alias of B<--refuse-downgrade>."
msgstr ""
"Ne pas installer un paquet si une version plus récente de ce paquet est déjà "
"installée. C'est un alias pour B<--refuse-downgrade>."

#. type: TP
#: dpkg.1:495 dpkg-buildpackage.1:217 dpkg-checkbuilddeps.1:19
#: dpkg-query.1:118 dpkg-shlibdeps.1:211 dpkg-trigger.1:39
#, no-wrap
msgid "B<--admindir=>I<dir>"
msgstr "B<--admindir>=I<dir>"

#. type: Plain text
#: dpkg.1:500
msgid ""
"Change default administrative directory, which contains many files that give "
"information about status of installed or uninstalled packages, etc.  "
"(Defaults to I</var/lib/dpkg>)"
msgstr ""
"Modifie le répertoire d'administration par défaut, qui contient de nombreux "
"fichiers donnant des informations au sujet de l'état des paquets installés "
"ou non, etc. (Le répertoire par défaut étant I</var/lib/dpkg>)"

#. type: TP
#: dpkg.1:500
#, no-wrap
msgid "B<--instdir=>I<dir>"
msgstr "B<--instdir=>I<repertoire>"

#. type: Plain text
#: dpkg.1:507
msgid ""
"Change default installation directory which refers to the directory where "
"packages are to be installed. B<instdir> is also the directory passed to "
"B<chroot>(2) before running package's installation scripts, which means that "
"the scripts see B<instdir> as a root directory.  (Defaults to I</>)"
msgstr ""
"Change le répertoire d'installation par défaut qui indique où les paquets "
"vont être installés. B<instdir> est aussi le nom du répertoire indiqué à "
"B<chroot>(2) avant que ne soient lancés les scripts d'installation, ce qui "
"signifie que ces scripts voient B<instdir> comme répertoire racine. (Le "
"répertoire par défaut est I</>)."

#. type: TP
#: dpkg.1:507
#, no-wrap
msgid "B<--root=>I<dir>"
msgstr "B<--root=>I<répertoire>"

#. type: Plain text
#: dpkg.1:511
msgid ""
"Changing B<root> changes B<instdir> to I<dir> and B<admindir> to I<dir>B</"
"var/lib/dpkg>."
msgstr ""
"Modifier B<root> change B<instdir> par I<répertoire> et B<admindir> par "
"I<dir>B</var/lib/dpkg>."

#. type: TP
#: dpkg.1:511
#, no-wrap
msgid "B<-O>, B<--selected-only>"
msgstr "B<-O>, B<--selected-only>"

#. type: Plain text
#: dpkg.1:517
msgid ""
"Only process the packages that are selected for installation. The actual "
"marking is done with B<dselect> or by B<dpkg>, when it handles packages. For "
"example, when a package is removed, it will be marked selected for "
"deinstallation."
msgstr ""
"Traiter seulement les paquets qui sont sélectionnés pour l'installation. La "
"sélection est réellement faite par B<dselect> ou par B<dpkg> quand ils "
"manipulent les paquets. Par exemple, quand un paquet est supprimé, il est "
"marqué comme ayant été sélectionné pour une désinstallation."

#. type: TP
#: dpkg.1:517
#, no-wrap
msgid "B<-E>, B<--skip-same-version>"
msgstr "B<-E>, B<--skip-same-version>"

#. type: Plain text
#: dpkg.1:521
msgid ""
"Don't install the package if the same version of the package is already "
"installed."
msgstr ""
"Ne pas installer le paquet si la même version du paquet est déjà installée."

#. type: Plain text
#: dpkg.1:523
msgid "B<--pre-invoke=>I<command>"
msgstr "B<--pre-invoke=>I<commande>"

#. type: Plain text
#: dpkg.1:525
msgid "B<--post-invoke=>I<command>"
msgstr "B<--post-invoke=>I<commande>"

#. type: Plain text
#: dpkg.1:534
msgid ""
"Set an invoke hook I<command> to be run via ``sh -c'' before or after the "
"dpkg run for the I<unpack>, I<configure>, I<install>, I<triggers-only>, "
"I<remove> and I<purge> dpkg actions. This option can be specified multiple "
"times. The order the options are specified is preserved, with the ones from "
"the configuration files taking precedence.  The environment variable "
"B<DPKG_HOOK_ACTION> is set for the hooks to the current dpkg action. Note: "
"front-ends might call dpkg several times per invocation, which might run the "
"hooks more times than expected."
msgstr ""
"Programme l'exécution de I<commande> via « sh -c » avant ou après "
"l'exécution de dpkg pour les actions I<unpack>, I<configure>, I<install>, "
"I<triggers-only>, I<remove> et I<purge>. Cette option peut être utilisée "
"plusieurs fois. L'ordre dans lequel les options multiples sont indiquées "
"sera préservé et celles indiquées dans le fichier de configuration auront la "
"priorité. La variable d'environnement B<DPKG_HOOK_ACTION> est utilisée pour "
"indiquer aux scripts utilisés quelle est l'action actuelle de dpkg. "
"Note : les interfaces de dpkg peuvent l'appeler plusieurs fois à chaque "
"invocation, ce qui peut provoquer l'exécution des « hooks » plus souvent que "
"prévu."

#. type: Plain text
#: dpkg.1:537
msgid "B<--path-exclude=>I<glob-pattern>"
msgstr "B<--path-exclude=>I<motif-global>"

#. type: Plain text
#: dpkg.1:539
msgid "B<--path-include=>I<glob-pattern>"
msgstr "B<--path-include=>I<motif-global>"

#. type: Plain text
#: dpkg.1:542
msgid ""
"Set I<glob-pattern> as a path filter, either by excluding or re-including "
"previously excluded paths matching the specified patterns during install."
msgstr ""
"Utilise I<motif-global> comme filtre de chemins, soit en excluant, soit en "
"ré-incluant des chemins précédemment exclus, correspondant au motif indiqué, "
"pendant l'installation."

#. type: Plain text
#: dpkg.1:545
msgid ""
"I<Warning: take into account that depending on the excluded paths you might "
"completely break your system, use with caution.>"
msgstr ""
"I<Attention : dépendre des chemins exclus peut entièrement casser le "
"système. Ce réglage soit donc être utilisé avec précautions.>"

#. type: Plain text
#: dpkg.1:555
msgid ""
"The glob patterns use the same wildcards used in the shell, were '*' matches "
"any sequence of characters, including the empty string and also '/'. For "
"example, I<'/usr/*/READ*'> matches I<'/usr/share/doc/package/README'>.  As "
"usual, '?' matches any single character (again, including '/'). And '[' "
"starts a character class, which can contain a list of characters, ranges and "
"complementations. See B<glob>(7) for detailed information about globbing. "
"Note: the current implementation might re-include more directories and "
"symlinks than needed, to be on the safe side and avoid possible unpack "
"failures, future work might fix this."
msgstr ""
"Les motifs globaux utilisent les mêmes caractères joker que le "
"shell où « * » correspond à une séquence quelconque de caractères, y compris "
"une chaîne vide ou le caractère « / ». Ainsi, I<'/usr/*/READ*'> comportera "
"I<'/usr/share/doc/package/README'>. Comme toujours, le caractère « ? » "
"correspond à un caractère quelconque (y compris « / »). Le caractère « [ » "
"marque le début d'une classe de caractères, qui contient une liste de "
"caractères, séries de caractères ou compléments de séries. Veuillez "
"consulter B<glob>(7) pour plus d'informations à propos des correspondances "
"globales. Note : l'implémentation actuelle pourrait ré-inclure plus de "
"répertoires et liens symboliques que nécessaire, par souci de sécurité et "
"pour éviter des éches possibles de décompression. Des modifications à venir "
"pourraient changer cela."

#. type: Plain text
#: dpkg.1:558
msgid ""
"This can be used to remove all paths except some particular ones; a typical "
"case is:"
msgstr ""
"Cela peut servir à exclure tous les chemins sauf certains spécifiques. Un "
"cas classique d'utilisation est :"

#. type: Plain text
#: dpkg.1:562
#, no-wrap
msgid ""
"B<--path-exclude=/usr/share/doc/*>\n"
"B<--path-include=/usr/share/doc/*/copyright>\n"
msgstr ""
"B<--path-exclude=/usr/share/doc/*>\n"
"B<--path-include=/usr/share/doc/*/copyright>\n"

#. type: Plain text
#: dpkg.1:565
msgid "to remove all documentation files except the copyright files."
msgstr ""
"qui permet de supprimer tous les fichiers de documentation sauf les fichiers "
"de « copyright »."

#. type: Plain text
#: dpkg.1:569
msgid ""
"These two options can be specified multiple times, and interleaved with each "
"other. Both are processed in the given order, with the last rule that "
"matches a file name making the decision."
msgstr ""
"Ces deux options peuvent être utilisées plusieurs fois et éventuellement "
"être alternées entre elles. Les deux sont traitées dans l'ordre indiqué : la "
"dernière règle correspondant à un fichier donné est alors celle qui sera "
"utilisée."

#. type: TP
#: dpkg.1:570
#, no-wrap
msgid "B<--status-fd >I<n>"
msgstr "B<--status-fd >I<n>"

#. type: Plain text
#: dpkg.1:576
msgid ""
"Send machine-readable package status and progress information to file "
"descriptor I<n>. This option can be specified multiple times. The "
"information is generally one record per line, in one of the following forms:"
msgstr ""
"Envoie un état du paquet compréhensible par la machine et met à jour cette "
"information dans le fichier de description I<n>. Cette option peut être "
"spécifiée plusieurs fois. L'information est généralement constituée d'un "
"enregistrement par ligne, dans l'une des formes suivantes :"

#. type: TP
#: dpkg.1:577
#, no-wrap
msgid "B<status: >I<package>B<: >I<status>"
msgstr "B<status: >I<paquet>B<: >I<status>"

#. type: Plain text
#: dpkg.1:580
msgid "Package status changed; I<status> is as in the status file."
msgstr ""
"L'état du paquet a changé ; le I<status> est tel que dans le fichier d'état "
"( «status file »)."

#. type: TP
#: dpkg.1:580
#, no-wrap
msgid "B<status: >I<package>B< : error : >I<extended-error-message>"
msgstr "B<status: >I<paquet>B< : error : >I<message-d'erreur-complet>"

#. type: Plain text
#: dpkg.1:584
msgid ""
"An error occurred. Any possible newlines in I<extended-error-message> will "
"be converted to spaces before output."
msgstr ""

#. type: TP
#: dpkg.1:584
#, no-wrap
msgid "B<status: >I<file>B< : conffile-prompt : '>I<real-old>B<' '>I<real-new>B<' >I<useredited>B< >I<distedited>"
msgstr "B<status: >I<fichier>B< : conffile-prompt : '>I<real-old>B<' '>I<real-new>B<' >I<useredited>B< >I<distedited>"

#. type: Plain text
#: dpkg.1:587
msgid "User is being asked a conffile question."
msgstr ""
"Une question pour un fichier de configuration va être posée à l'utilisateur."

#. type: TP
#: dpkg.1:587
#, no-wrap
msgid "B<processing: >I<stage>B<: >I<package>"
msgstr "B<processing: >I<stage>B<: >I<paquet>"

#. type: Plain text
#: dpkg.1:592
msgid ""
"Sent just before a processing stage starts. I<stage> is one of B<upgrade>, "
"B<install> (both sent before unpacking), B<configure>, B<trigproc>, "
"B<disappear>, B<remove>, B<purge>."
msgstr ""
"Envoyé juste avant le début du traitement d'un stage. Les I<stages> sont "
"B<upgrade>, B<install> (les deux sont envoyés avant le dépaquetage), "
"B<configure>, B<trigproc>, B<disappear>, B<remove>, B<purge>."

#. type: TP
#: dpkg.1:593
#, fuzzy, no-wrap
#| msgid "B<--post-invoke=>I<command>"
msgid "B<--status-logger>=I<command>"
msgstr "B<--post-invoke=>I<commande>"

#. type: Plain text
#: dpkg.1:598
#, fuzzy
#| msgid ""
#| "Send machine-readable package status and progress information to file "
#| "descriptor I<n>. This option can be specified multiple times. The "
#| "information is generally one record per line, in one of the following "
#| "forms:"
msgid ""
"Send machine-readable package status and progress information to the shell "
"I<command>'s standard input. This option can be specified multiple times. "
"The output format used is the same as in B<--status-fd.>"
msgstr ""
"Envoie un état du paquet compréhensible par la machine et met à jour cette "
"information dans le fichier de description I<n>. Cette option peut être "
"spécifiée plusieurs fois. L'information est généralement constituée d'un "
"enregistrement par ligne, dans l'une des formes suivantes :"

#. type: TP
#: dpkg.1:599
#, no-wrap
msgid "B<--log=>I<filename>"
msgstr "B<--log=>I<fichier>"

#. type: Plain text
#: dpkg.1:611
#, fuzzy
#| msgid ""
#| "Log status change updates and actions to I<filename>, instead of the "
#| "default I</var/log/dpkg.log>. If this option is given multiple times, the "
#| "last filename is used. Log messages are of the form `YYYY-MM-DD HH:MM:SS "
#| "status E<lt>stateE<gt> E<lt>pkgE<gt> E<lt>installed-versionE<gt>' for "
#| "status change updates; `YYYY-MM-DD HH:MM:SS E<lt>actionE<gt> "
#| "E<lt>pkgE<gt> E<lt>installed-versionE<gt> E<lt>available-versionE<gt>' "
#| "for actions where I<E<lt>actionE<gt>> is one of install, upgrade, remove, "
#| "purge; and `YYYY-MM-DD HH:MM:SS conffile E<lt>filenameE<gt> "
#| "E<lt>decisionE<gt>' for conffile changes where I<E<lt>decisionE<gt>> is "
#| "either install or keep."
msgid ""
"Log status change updates and actions to I<filename>, instead of the default "
"I</var/log/dpkg.log>. If this option is given multiple times, the last "
"filename is used. Log messages are of the form `YYYY-MM-DD HH:MM:SS status "
"I<state> I<pkg> I<installed-version>' for status change updates; `YYYY-MM-DD "
"HH:MM:SS I<action> I<pkg> I<installed-version> I<available-version>' for "
"actions where I<action> is one of B<install>, B<upgrade>, B<remove>, "
"B<purge>; and `YYYY-MM-DD HH:MM:SS conffile I<filename> I<decision>' for "
"conffile changes where I<decision> is either B<install> or B<keep>."
msgstr ""
"Enregistre la modification de l'état, la mise à jour ou l'action sur "
"I<fichier> au lieu de l'habituel I</var/log/dpkg.log>. Si cette option est "
"donnée plusieurs fois, le dernier fichier est utilisé. Les messages "
"d'enregistrement sont de la forme AAAA-MM-JJ HH:MM:SS status E<lt>étatE<gt> "
"E<lt>paquetE<gt> E<lt>version-installéeE<gt> pour les modifications d'état "
"et les mises à jour. Pour une action, où I<E<lt>actionE<gt>> est "
"« install », « upgrade », « remove » ou « purge », le message est de la "
"forme AAAA-MM-JJ HH:MM:SS E<lt>actionE<gt> E<lt>paquetE<gt> E<lt>version-"
"installéeE<gt> E<lt>version-disponibleE<gt>. Pour une modification de "
"conffile, le message est de la forme AAAA-MM-JJ HH:MM:SS conffile "
"E<lt>fichierE<gt> E<lt>décisionE<gt> ou E<lt>décisionE<gt> est soit install "
"soit keep."

#. type: TP
#: dpkg.1:611
#, no-wrap
msgid "B<--no-debsig>"
msgstr "B<--no-debsig>"

#. type: Plain text
#: dpkg.1:614
msgid "Do not try to verify package signatures."
msgstr "Ne pas tenter de vérifier la signature des paquets."

#. type: TP
#: dpkg.1:614
#, no-wrap
msgid "B<--no-triggers>"
msgstr "B<--no-triggers>"

#. type: Plain text
#: dpkg.1:623
msgid ""
"Do not run any triggers in this run (activations will still be recorded).  "
"If used with B<--configure> I<package> or B<--triggers-only> I<package> then "
"the named package postinst will still be run even if only a triggers run is "
"needed. Use of this option may leave packages in the improper B<triggers-"
"awaited> and B<triggers-pending> states. This can be fixed later by running: "
"B<dpkg --configure --pending>."
msgstr ""
"Durant ce traitement ne pas lancer d'actions différées (les activations "
"seront toujours enregistrées). S'il est utilisé avec B<--configure> "
"I<paquet> ou B<--triggers-only> I<paquet> alors le postinst du paquet sera "
"toujours exécuté même si seule l'exécution d'une action différée est "
"nécessaire. L'utilisation de cette option peut laisser des paquets dans les "
"mauvais états B<triggers-awaited> et B<triggers-pending>. Cela peut être "
"corrigé plus tard en exécutant B<dpkg --configure --pending>."

#. type: TP
#: dpkg.1:623
#, no-wrap
msgid "B<--triggers>"
msgstr "B<--triggers>"

#. type: Plain text
#: dpkg.1:626
msgid "Cancels a previous B<--no-triggers>."
msgstr "Annule un précédent B<--no-triggers>."

#. type: Plain text
#: dpkg.1:628 dpkg.cfg.5:16
#, no-wrap
msgid "I</etc/dpkg/dpkg.cfg>"
msgstr "I</etc/dpkg/dpkg.cfg>"

#. type: Plain text
#: dpkg.1:631
msgid "Configuration file with default options."
msgstr "Fichier de configuration contenant les options par défaut."

#. type: TP
#: dpkg.1:631
#, no-wrap
msgid "I</var/log/dpkg.log>"
msgstr "I</var/log/dpkg.log>"

#. type: Plain text
#: dpkg.1:635
msgid "Default log file (see I</etc/dpkg/dpkg.cfg>(5) and option B<--log>)."
msgstr ""
"Fichier journal standard. Voyez I</etc/dpkg/dpkg.cfg>(5) et l'option  B<--"
"log>."

#. type: Plain text
#: dpkg.1:638
msgid ""
"The other files listed below are in their default directories, see option "
"B<--admindir> to see how to change locations of these files."
msgstr ""
"Les autres fichiers répertoriés ici sont dans leur répertoire par défaut, "
"voyez l'option B<--admindir> pour savoir changer l'emplacement de ces "
"fichiers."

#. type: TP
#: dpkg.1:638
#, no-wrap
msgid "I</var/lib/dpkg/available>"
msgstr "I</var/lib/dpkg/available>"

#. type: Plain text
#: dpkg.1:641
msgid "List of available packages."
msgstr "Liste des paquets disponibles."

#. type: TP
#: dpkg.1:641
#, no-wrap
msgid "I</var/lib/dpkg/status>"
msgstr "I</var/lib/dpkg/status>"

#. type: Plain text
#: dpkg.1:647
msgid ""
"Statuses of available packages. This file contains information about whether "
"a package is marked for removing or not, whether it is installed or not, "
"etc. See section B<INFORMATION ABOUT PACKAGES> for more info."
msgstr ""
"États des paquets disponibles. Ce fichier contient des informations qui "
"permettent de savoir si un paquet est marqué comme devant être supprimé ou "
"pas, devant être installé ou pas, etc. Voyez la section B<RENSEIGNEMENTS SUR "
"LES PAQUETS> pour des informations supplémentaires."

#. type: Plain text
#: dpkg.1:650
msgid ""
"The status file is backed up daily in I</var/backups>. It can be useful if "
"it's lost or corrupted due to filesystems troubles."
msgstr ""
"Le fichier d'état est sauvegardé quotidiennement dans I</var/backups>. Cela "
"peut être utile en cas de perte ou de corruption dûe à des problèmes de "
"système de fichiers."

#. type: Plain text
#: dpkg.1:653
msgid ""
"The following files are components of a binary package. See B<deb>(5)  for "
"more information about them:"
msgstr ""
"Les fichiers suivants font partie d'un paquet binaire. Voyez B<deb>(5) pour "
"des informations supplémentaires :"

#. type: TP
#: dpkg.1:653
#, no-wrap
msgid "I<control>"
msgstr "I<control>"

#. type: TP
#: dpkg.1:655
#, no-wrap
msgid "I<conffiles>"
msgstr "I<conffiles>"

#. type: TP
#: dpkg.1:657
#, no-wrap
msgid "I<preinst>"
msgstr "I<preinst>"

#. type: TP
#: dpkg.1:659
#, no-wrap
msgid "I<postinst>"
msgstr "I<postinst>"

#. type: TP
#: dpkg.1:661
#, no-wrap
msgid "I<prerm>"
msgstr "I<prerm>"

#. type: TP
#: dpkg.1:663
#, no-wrap
msgid "I<postrm>"
msgstr "I<postrm>"

#. type: SH
#: dpkg.1:666 dpkg-buildflags.1:128 dpkg-buildpackage.1:230 dpkg-deb.1:232
#: dpkg-divert.8:112 dpkg-query.1:204 dpkg-statoverride.8:68 dpkg-trigger.1:60
#: dpkg-vendor.1:42 dselect.1:423 update-alternatives.8:354
#, no-wrap
msgid "ENVIRONMENT"
msgstr "ENVIRONNEMENT"

#. type: TP
#: dpkg.1:667 dselect.1:424
#, no-wrap
msgid "B<HOME>"
msgstr "B<HOME>"

#. type: Plain text
#: dpkg.1:671
msgid ""
"If set, B<dpkg> will use it as the directory from which to read the user "
"specific configuration file."
msgstr ""
"Si cette option est utilisée, B<dpkg> utilisera le répertoire indiqué pour "
"lire le fichier de configuration propre à l'utilisateur."

#. type: TP
#: dpkg.1:671 dpkg-deb.1:233
#, no-wrap
msgid "B<TMPDIR>"
msgstr "B<TMPDIR>"

#. type: Plain text
#: dpkg.1:675
msgid ""
"If set, B<dpkg> will use it as the directory in which to create temporary "
"files and directories."
msgstr ""
"Si cette option est utilisée, B<dpkg> utilisera le répertoire indiqué pour "
"créer les fichiers et répertoire temporaires."

#. type: TP
#: dpkg.1:675
#, no-wrap
msgid "B<PAGER>"
msgstr "B<PAGER>"

#. type: Plain text
#: dpkg.1:678
msgid "The program B<dpkg> will execute when displaying the conffiles."
msgstr ""
"Cette option indique le programme exécuté par B<dpkg> quand il affiche les "
"fichiers de configuration."

#. type: TP
#: dpkg.1:678
#, no-wrap
msgid "B<SHELL>"
msgstr "B<SHELL>"

#. type: Plain text
#: dpkg.1:681
msgid "The program B<dpkg> will execute when starting a new shell."
msgstr ""
"Le programme exécuté par B<dpkg> quand il lance un nouvel interpréteur de "
"commandes."

#. type: TP
#: dpkg.1:681 dpkg-query.1:209
#, no-wrap
msgid "B<COLUMNS>"
msgstr "B<COLUMNS>"

#. type: Plain text
#: dpkg.1:685
msgid ""
"Sets the number of columns B<dpkg> should use when displaying formatted "
"text. Currently only used by -l."
msgstr ""
"Fixe le nombre de colonnes utilisés par B<dpkg> lorsqu'il affiche un texte "
"formaté. Seule l'action B<-l> se sert actuellement de cette variable."

#. type: TP
#: dpkg.1:685
#, no-wrap
msgid "B<DPKG_SHELL_REASON>"
msgstr "B<DPKG_SHELL_REASON>"

#. type: Plain text
#: dpkg.1:689
msgid ""
"Defined by B<dpkg> on the shell spawned on the conffile prompt to examine "
"the situation. Current valid value: B<conffile-prompt>."
msgstr ""
"Cette variable définit l'invite du shell lancé par B<dpkg> lorsqu'il lui est "
"demandé d'«  examiner la situation » lors du traitement des fichiers de "
"configuration. La valeur actuellement valable est : B<conffile-prompt>/"

#. type: TP
#: dpkg.1:689
#, no-wrap
msgid "B<DPKG_CONFFILE_OLD>"
msgstr "B<DPKG_CONFFILE_OLD>"

#. type: Plain text
#: dpkg.1:693
msgid ""
"Defined by B<dpkg> on the shell spawned on the conffile prompt to examine "
"the situation. Contains the path to the old conffile."
msgstr ""
"Cette variable est définie pour le shell lancé par B<dpkg> lorsqu'il lui est "
"demandé d'«  examiner la situation » lors du traitement des fichiers de "
"configuration. Elle contient le nom de l'ancien fichier de configuration."

#. type: TP
#: dpkg.1:693
#, no-wrap
msgid "B<DPKG_CONFFILE_NEW>"
msgstr "B<DPKG_CONFFILE_NEW>"

#. type: Plain text
#: dpkg.1:697
msgid ""
"Defined by B<dpkg> on the shell spawned on the conffile prompt to examine "
"the situation. Contains the path to the new conffile."
msgstr ""
"Cette variable est définie pour le shell lancé par B<dpkg> lorsqu'il lui est "
"demandé d'«  examiner la situation » lors du traitement des fichiers de "
"configuration. Elle contient le nom du nouveau fichier de configuration."

#. type: TP
#: dpkg.1:697
#, no-wrap
msgid "B<DPKG_RUNNING_VERSION>"
msgstr "B<DPKG_RUNNING_VERSION>"

#. type: Plain text
#: dpkg.1:701
msgid ""
"Defined by B<dpkg> on the maintainer script environment to the version of "
"the currently running B<dpkg> instance."
msgstr ""
"Cette variables est définie par B<dpkg> dans l'environnement du script du "
"responsable. Elle contient la version de l'instance de B<dpkg> en cours "
"d'exécution."

#. type: TP
#: dpkg.1:701 dpkg-divert.8:117
#, no-wrap
msgid "B<DPKG_MAINTSCRIPT_PACKAGE>"
msgstr "B<DPKG_MAINTSCRIPT_PACKAGE>"

#. type: Plain text
#: dpkg.1:705
msgid ""
"Defined by B<dpkg> on the maintainer script environment to the package name "
"being handled."
msgstr ""
"Définie par B<dpkg> dans l'environnement du script du responsable, cette "
"variable contient le nom du paquet en cours de traitement."

#. type: TP
#: dpkg.1:705
#, no-wrap
msgid "B<DPKG_MAINTSCRIPT_ARCH>"
msgstr "B<DPKG_MAINTSCRIPT_ARCH>"

#. type: Plain text
#: dpkg.1:709
msgid ""
"Defined by B<dpkg> on the maintainer script environment to the architecture "
"the package got built for."
msgstr ""
"Définie par B<dpkg> dans l'environnement du script du responsable, cette "
"variable contient l'architecture pour laquelle le paquet a été construit."

#. type: TP
#: dpkg.1:709
#, no-wrap
msgid "B<DPKG_MAINTSCRIPT_NAME>"
msgstr "B<DPKG_MAINTSCRIPT_NAME>"

#. type: Plain text
#: dpkg.1:713
msgid ""
"Defined by B<dpkg> on the maintainer script environment to the name of the "
"script running (preinst, postinst, prerm, postrm)."
msgstr ""
"Définie par B<dpkg> dans l'environnement du script du responsable, cette "
"variable contient le nom du script en cours d'exécution (preinst, postinst, "
"prerm, postrm)."

#. type: Plain text
#: dpkg.1:716
msgid "To list packages related to the editor B<vi>(1):"
msgstr "Pour afficher les paquets liés au programme B<vi>(1) :"

#. type: Plain text
#: dpkg.1:718
#, no-wrap
msgid "     B<dpkg -l \\(aq*vi*\\(aq>\n"
msgstr "    B<dpkg -l \\(aq*vi*\\(aq>\n"

#. type: Plain text
#: dpkg.1:721
msgid "To see the entries in I</var/lib/dpkg/available> of two packages:"
msgstr ""
"Pour voir les entrées de I</var/lib/dpkg/available> concernant deux paquets :"

#. type: Plain text
#: dpkg.1:723
#, no-wrap
msgid "     B<dpkg --print-avail elvis vim | less>\n"
msgstr "    B<dpkg --print-avail elvis vim | less>\n"

#. type: Plain text
#: dpkg.1:726
msgid "To search the listing of packages yourself:"
msgstr "Pour rechercher vous-même dans la liste des paquets :"

#. type: Plain text
#: dpkg.1:728
#, no-wrap
msgid "     B<less /var/lib/dpkg/available>\n"
msgstr "    B<less /var/lib/dpkg/available>\n"

#. type: Plain text
#: dpkg.1:731
msgid "To remove an installed elvis package:"
msgstr "Pour supprimer le paquet installé elvis :"

#. type: Plain text
#: dpkg.1:733
#, no-wrap
msgid "     B<dpkg -r elvis>\n"
msgstr "    B<dpkg -r elvis>\n"

#. type: Plain text
#: dpkg.1:738
msgid ""
"To install a package, you first need to find it in an archive or CDROM. The "
"\"available\" file shows that the vim package is in section \"editors\":"
msgstr ""
"Pour installer un paquet, vous devez d'abord le trouver dans une archive ou "
"sur un CD. Le fichier « available » montre que le paquet vim se trouve dans "
"la section « editors » :"

#. type: Plain text
#: dpkg.1:741
#, fuzzy, no-wrap
#| msgid ""
#| "     B<cd /cdrom/pool/main/v/vim>\n"
#| "     B<dpkg -i vim_4.5-3.deb>\n"
msgid ""
"     B<cd /media/cdrom/pool/main/v/vim>\n"
"     B<dpkg -i vim_4.5-3.deb>\n"
msgstr ""
"     B<cd /cdrom/pool/main/v/vim>\n"
"     B<dpkg -i vim_4.5-3.deb>\n"

#. type: Plain text
#: dpkg.1:744
msgid "To make a local copy of the package selection states:"
msgstr "Pour faire une copie locale des états de sélection des paquets :"

#. type: Plain text
#: dpkg.1:746
#, no-wrap
msgid "     B<dpkg --get-selections E<gt>myselections>\n"
msgstr "    B<dpkg --get-selections E<gt>myselections>\n"

#. type: Plain text
#: dpkg.1:750
msgid ""
"You might transfer this file to another computer, and install it there with:"
msgstr ""
"Vous pourriez transférer ce fichier sur un autre ordinateur et l'installer "
"de cette manière :"

#. type: Plain text
#: dpkg.1:753
#, no-wrap
msgid ""
"     B<dpkg --clear-selections>\n"
"     B<dpkg --set-selections E<lt>myselections>\n"
msgstr ""
"    B<dpkg --clear-selections>\n"
"    B<dpkg --set-selections E<lt>myselections>\n"

#. type: Plain text
#: dpkg.1:759
msgid ""
"Note that this will not actually install or remove anything, but just set "
"the selection state on the requested packages. You will need some other "
"application to actually download and install the requested packages. For "
"example, run B<apt-get dselect-upgrade>."
msgstr ""
"On remarquera que cela n'installe ou ne supprime rien du tout ; cela ne fait "
"qu'enregistrer l'état souhaité des paquets. Vous aurez besoin d'autres "
"applications pour récupérer et installer réellement les paquets requis. Par "
"exemple, exécutez B<apt-get dselect-upgrade>."

#. type: Plain text
#: dpkg.1:762
msgid ""
"Ordinarily, you will find that B<dselect>(1) provides a more convenient way "
"to modify the package selection states."
msgstr ""
"Habituellement, vous trouverez que B<dselect>(1) fournit une façon plus "
"aisée de modifier les états de sélection des paquets."

#. type: SH
#: dpkg.1:764
#, no-wrap
msgid "ADDITIONAL FUNCTIONALITY"
msgstr "FONCTIONNALITÉS SUPPLÉMENTAIRES"

#. type: Plain text
#: dpkg.1:767
msgid ""
"Additional functionality can be gained by installing any of the following "
"packages: B<apt>, B<aptitude> and B<debsums>."
msgstr ""
"D'autres possibilités sont offertes en installant les paquets suivants : "
"B<apt>, B<aptitude> et B<debsums>."

#. type: Plain text
#: dpkg.1:779
msgid ""
"B<aptitude>(1), B<apt>(1), B<dselect>(1), B<dpkg-deb>(1), B<dpkg-query>(1), "
"B<deb>(5), B<deb-control>(5), B<dpkg.cfg>(5), and B<dpkg-reconfigure>(8)."
msgstr ""
"B<aptitude>(1), B<apt>(1), B<dselect>(1), B<dpkg-deb>(1), B<dpkg-query>(1), "
"B<deb>(5), B<deb-control>(5), B<dpkg.cfg>(5) et B<dpkg-reconfigure>(8)."

#. type: Plain text
#: dpkg.1:782
msgid "B<--no-act> usually gives less information than might be helpful."
msgstr "L'option B<--no-act> ne donne pas assez d'informations utiles."

#. type: Plain text
#: dpkg.1:785 dpkg.cfg.5:22
msgid ""
"See I</usr/share/doc/dpkg/THANKS> for the list of people who have "
"contributed to B<dpkg>."
msgstr ""
"Consultez I</usr/share/doc/dpkg/THANKS> pour la liste de ceux qui ont "
"contribué à B<dpkg>."

#. type: TH
#: dpkg-architecture.1:1
#, no-wrap
msgid "dpkg-architecture"
msgstr "dpkg-architecture"

#. type: Plain text
#: dpkg-architecture.1:4
msgid ""
"dpkg-architecture - set and determine the architecture for package building"
msgstr ""
"dpkg-architecture - Fixer et déterminer l'architecture pour la construction "
"d'un paquet"

#. type: Plain text
#: dpkg-architecture.1:8
#, fuzzy
#| msgid "B<dpkg-architecture> [I<options>] [I<commands>]"
msgid "B<dpkg-architecture> [I<option>...] [I<command>]"
msgstr "B<dpkg-architecture> [I<options>] [I<commandes>]"

#. type: Plain text
#: dpkg-architecture.1:13
msgid ""
"dpkg-architecture does provide a facility to determine and set the build and "
"host architecture for package building."
msgstr ""
"dpkg-architecture aide à déterminer et à fixer l'architecture de "
"construction et l'architecture hôte pour la création d'un paquet."

#. type: Plain text
#: dpkg-architecture.1:16
msgid ""
"The build architecture is always determined by an external call to B<dpkg>"
"(1), and can not be set at the command line."
msgstr ""
"L'architecture de construction est toujours déterminée par un appel externe "
"à B<dpkg>(1). Elle ne peut pas être spécifiée en ligne de commande."

#. type: Plain text
#: dpkg-architecture.1:25
msgid ""
"You can specify the host architecture by providing one or both of the "
"options B<-a> and B<-t>. The default is determined by an external call to "
"B<gcc>(1), or the same as the build architecture if \\s-1CC\\s0 or gcc are "
"both not available. One out of B<-a> and B<-t> is sufficient, the value of "
"the other will be set to a usable default. Indeed, it is often better to "
"only specify one, because B<dpkg-architecture> will warn you if your choice "
"does not match the default."
msgstr ""
"Vous pouvez spécifier une architecture hôte en utilisant une des options B<-"
"a> et B<-t> (ou les deux). Par défaut, la valeur est déterminée par un appel "
"à B<gcc>(1), ou en utilisant l'architecture de construction si \\s-1CC\\s0 "
"ou gcc ne sont pas disponibles. Utiliser une seule des options B<-a> et B<-"
"t> est suffisant, la valeur de l'une est utilisée comme valeur par défaut de "
"l'autre. Bien sûr, il est préférable de n'en préciser qu'une seule, puisque "
"B<dpkg-architecture> affichera un avertissement si le choix ne correspond "
"pas à la valeur par défaut."

#. type: SH
#: dpkg-architecture.1:26 dpkg-buildflags.1:45 dpkg-deb.1:27 dpkg-divert.8:24
#: dpkg-query.1:13 dpkg-source.1:18 dpkg-split.1:31 dpkg-statoverride.8:23
#: dpkg-trigger.1:24 dpkg-vendor.1:14 start-stop-daemon.8:34
#: update-alternatives.8:202
#, no-wrap
msgid "COMMANDS"
msgstr "COMMANDES"

#. type: TP
#: dpkg-architecture.1:27
#, no-wrap
msgid "B<-l>"
msgstr "B<-l>"

#. type: Plain text
#: dpkg-architecture.1:31
msgid ""
"Print the environment variables, one each line, in the format "
"I<VARIABLE=value>. This is the default action."
msgstr ""
"Affiche les variables d'environnement, une par ligne, en utilisant le format "
"I<VARIABLE=valeur>. C'est l'action par défaut."

#. type: TP
#: dpkg-architecture.1:31
#, no-wrap
msgid "B<-e>I<debian-architecture>"
msgstr "B<-e>I<architecture-debian>"

#. type: Plain text
#: dpkg-architecture.1:37
msgid ""
"Check for equality of architecture. By default I<debian-architecture> is "
"compared against the current Debian architecture, being the host.  This "
"action will not expand the architecture wildcards. Command finishes with an "
"exit status of 0 if matched, 1 if not matched."
msgstr ""
"Vérifie l'égalité d'architectures. Par défaut, I<architecture-debian> est "
"comparée à l'architecture Debian actuelle, qui est celle de la machine hôte. "
"Cette action ne développe pas les architectures joker. La commande quitte "
"avec un code de retour de 0 si l'architecture correspond et de 1 dans le cas "
"contraire."

#. type: TP
#: dpkg-architecture.1:37
#, no-wrap
msgid "B<-i>I<architecture-wildcard>"
msgstr "B<-i>I<architecture-joker>"

#. type: Plain text
#: dpkg-architecture.1:43
msgid ""
"Check for identity of architecture by expanding I<architecture-wildcard> as "
"an architecture wildcard and comparing against the current Debian "
"architecture. Command finishes with an exit status of 0 if matched, 1 if not "
"matched."
msgstr ""
"Vérifie l'égalité d'architectures en développant I<architecture-joker> et en "
"comparant à l'architecture Debian actuelle. La commande quitte avec un code "
"de retour de 0 si l'architecture correspond et de 1 dans le cas contraire."

#. type: TP
#: dpkg-architecture.1:43
#, no-wrap
msgid "B<-q>I<variable-name>"
msgstr "B<-q>I<nom-de-variable>"

#. type: Plain text
#: dpkg-architecture.1:46
msgid "Print the value of a single variable."
msgstr "Affiche la valeur d'une seule variable."

#. type: TP
#: dpkg-architecture.1:46
#, no-wrap
msgid "B<-s>"
msgstr "B<-s>"

#. type: Plain text
#: dpkg-architecture.1:50
msgid ""
"Print an export command. This can be used to set the environment variables "
"using eval."
msgstr ""
"Produit une commande, qui peut être utilisée pour positionner les variables "
"d'environnement avec « eval »."

#. type: TP
#: dpkg-architecture.1:50
#, no-wrap
msgid "B<-u>"
msgstr "B<-u>"

#. type: Plain text
#: dpkg-architecture.1:53
msgid "Print a similar command to B<-s> but to unset all variables."
msgstr ""
"Produit une commande similaire à celle produite par B<-s>, mais pour "
"supprimer les variables de l'environnement."

#. type: TP
#: dpkg-architecture.1:53
#, no-wrap
msgid "B<-c>I< command>"
msgstr "B<-c> I<commande>"

#. type: Plain text
#: dpkg-architecture.1:57
msgid ""
"Execute a I<command> in an environment which has all variables set to the "
"determined value."
msgstr ""
"Exécute une I<commande> dans un environnement où toutes les variables sont "
"positionnées aux valeurs spécifiées."

#. type: TP
#: dpkg-architecture.1:57
#, no-wrap
msgid "B<-L>"
msgstr "B<-L>"

#. type: Plain text
#: dpkg-architecture.1:60
msgid "Print a list of valid architecture names."
msgstr "Affiche une liste des architectures valables."

#. type: Plain text
#: dpkg-architecture.1:63 dpkg-buildflags.1:92 dpkg-buildpackage.1:226
#: dpkg-checkbuilddeps.1:36 dpkg-distaddfile.1:35 dpkg-deb.1:175
#: dpkg-divert.8:74 dpkg-genchanges.1:134 dpkg-gencontrol.1:124
#: dpkg-gensymbols.1:446 dpkg-mergechangelogs.1:41 dpkg-name.1:61
#: dpkg-parsechangelog.1:36 dpkg-query.1:113 dpkg-scanpackages.1:99
#: dpkg-scansources.1:68 dpkg-shlibdeps.1:218 dpkg-source.1:99
#: dpkg-split.1:129 dpkg-statoverride.8:47 dpkg-trigger.1:34 dpkg-vendor.1:31
#: update-alternatives.8:319
msgid "Show the usage message and exit."
msgstr "Affiche un message d'aide puis quitte."

#. type: Plain text
#: dpkg-architecture.1:66 dpkg-buildflags.1:95 dpkg-buildpackage.1:229
#: dpkg-checkbuilddeps.1:39 dpkg-distaddfile.1:38 dpkg-deb.1:178
#: dpkg-divert.8:77 dpkg-genchanges.1:137 dpkg-gencontrol.1:127
#: dpkg-gensymbols.1:449 dpkg-mergechangelogs.1:44 dpkg-name.1:64
#: dpkg-parsechangelog.1:39 dpkg-query.1:116 dpkg-scanpackages.1:102
#: dpkg-scansources.1:70 dpkg-shlibdeps.1:221 dpkg-source.1:102
#: dpkg-split.1:132 dpkg-statoverride.8:50 dpkg-trigger.1:37 dpkg-vendor.1:34
#: update-alternatives.8:322
msgid "Show the version and exit."
msgstr "Affiche le numéro de version puis quitte."

#. type: TP
#: dpkg-architecture.1:68
#, no-wrap
msgid "B<-a>I<debian-architecture>"
msgstr "B<-a>I<architecture-debian>"

#. type: Plain text
#: dpkg-architecture.1:71
msgid "Set the Debian architecture."
msgstr "Fixe l'architecture Debian."

#. type: TP
#: dpkg-architecture.1:71 dpkg-buildpackage.1:110
#, no-wrap
msgid "B<-t>I<gnu-system-type>"
msgstr "B<-t>I<type-de-système-gnu>"

#. type: Plain text
#: dpkg-architecture.1:74
msgid "Set the GNU system type."
msgstr "Fixe le type de système GNU."

#. type: TP
#: dpkg-architecture.1:74
#, no-wrap
msgid "B<-f>"
msgstr "B<-f>"

#. type: Plain text
#: dpkg-architecture.1:81
msgid ""
"Values set by existing environment variables with the same name as used by "
"the scripts are honored (i.e. used by B<dpkg-architecture>), except if this "
"force flag is present. This allows the user to override a value even when "
"the call to B<dpkg-architecture> is buried in some other script (for example "
"B<dpkg-buildpackage>(1))."
msgstr ""
"Les valeurs positionnées par les variables d'environnement ayant le même nom "
"que celles utilisées par les scripts sont prises en compte (c'est-à-dire "
"utilisée par B<dpkg-architecture>), sauf si cette option est présente. Ceci "
"permet à un utilisateur de surcharger une valeur même lorsque l'appel à "
"B<dpkg-architecture> est inclus dans un autre script (par exemple B<dpkg-"
"buildpackage>(1))."

#. type: SH
#: dpkg-architecture.1:82
#, no-wrap
msgid "TERMS"
msgstr "TERMINOLOGIE"

#. type: IP
#: dpkg-architecture.1:83
#, no-wrap
msgid "build machine"
msgstr "Machine de construction"

#. type: Plain text
#: dpkg-architecture.1:85
msgid "The machine the package is built on."
msgstr "Machine sur laquelle le paquet est construit."

#. type: IP
#: dpkg-architecture.1:85
#, no-wrap
msgid "host machine"
msgstr "Machine hôte"

#. type: Plain text
#: dpkg-architecture.1:87
msgid "The machine the package is built for."
msgstr "Machine pour laquelle le paquet est construit."

#. type: IP
#: dpkg-architecture.1:87
#, no-wrap
msgid "Debian architecture"
msgstr "Architecture Debian"

#. type: Plain text
#: dpkg-architecture.1:90
msgid ""
"The Debian architecture string, which specifies the binary tree in the "
"\\s-1FTP\\s0 archive. Examples: i386, sparc, hurd-i386."
msgstr ""
"Chaîne de caractères de l'architecture Debian, qui spécifie l'emplacement "
"dans l'archive \\s-1FTP\\s0. Par exemple : i386, sparc, hurd-i386."

#. type: IP
#: dpkg-architecture.1:90
#, no-wrap
msgid "architecture wildcard"
msgstr "Architecture joker"

#. type: Plain text
#: dpkg-architecture.1:94
msgid ""
"An architecture wildcard is a special architecture string that will match "
"any real architecture being part of it. The general form is E<lt>kernelE<gt>-"
"E<lt>cpuE<gt>.  Examples: linux-any, any-i386, hurd-any."
msgstr ""
"Une architecture joker est une architecture spéciale qui correspond à toutes "
"les architectures réelles qui en font partie. Il est en général de la forme "
"E<lt>noyauE<gt>-E<lt>processeurE<gt>. Par exemple : linux-any, any-i386, "
"hurd-any."

#. type: IP
#: dpkg-architecture.1:94
#, no-wrap
msgid "\\s-1GNU\\s0 system type"
msgstr "Type de système \\s-1GNU\\s0"

#. type: Plain text
#: dpkg-architecture.1:98
msgid ""
"An architecture specification string consisting of two parts separated by a "
"dash: cpu and system. Examples: i386-linux-gnu, sparc-linux-gnu, i386-gnu, "
"x86_64-netbsd."
msgstr ""
"Chaîne de caractères définissant l'architecture et constituée de deux "
"parties séparées par un tiret : processeur et système. Par exemple : i386-"
"linux-gnu, sparc-linux-gnu, i386-gnu, x86_64-netbsd."

#. type: SH
#: dpkg-architecture.1:99
#, no-wrap
msgid "VARIABLES"
msgstr "VARIABLES D'ENVIRONNEMENT"

#. type: Plain text
#: dpkg-architecture.1:101
msgid "The following variables are set by B<dpkg-architecture>:"
msgstr "Les variables suivantes sont positionnées par B<dpkg-architecture> :"

#. type: IP
#: dpkg-architecture.1:101
#, no-wrap
msgid "\\s-1DEB_BUILD_ARCH\\s0"
msgstr "\\s-1DEB_BUILD_ARCH\\s0"

#. type: Plain text
#: dpkg-architecture.1:103
msgid "The Debian architecture of the build machine."
msgstr "Architecture Debian de la machine de construction."

#. type: IP
#: dpkg-architecture.1:103
#, no-wrap
msgid "\\s-1DEB_BUILD_ARCH_OS\\s0"
msgstr "\\s-1DEB_BUILD_ARCH_OS\\s0"

#. type: Plain text
#: dpkg-architecture.1:105
msgid "The Debian system name of the build machine."
msgstr "Nom du système Debian de la machine de construction."

#. type: IP
#: dpkg-architecture.1:105
#, no-wrap
msgid "\\s-1DEB_BUILD_ARCH_CPU\\s0"
msgstr "\\s-1DEB_BUILD_ARCH_CPU\\s0"

#. type: Plain text
#: dpkg-architecture.1:107
msgid "The Debian cpu name of the build machine."
msgstr "Nom de processeur Debian de la machine de construction."

#. type: IP
#: dpkg-architecture.1:107
#, no-wrap
msgid "\\s-1DEB_BUILD_ARCH_BITS\\s0"
msgstr "\\s-1DEB_BUILD_ARCH_BITS\\s0"

#. type: Plain text
#: dpkg-architecture.1:109
msgid "The pointer size of the build machine (in bits)."
msgstr "Taille de pointeur de la machine de construction (en bits)."

#. type: IP
#: dpkg-architecture.1:109
#, no-wrap
msgid "\\s-1DEB_BUILD_ARCH_ENDIAN\\s0"
msgstr "\\s-1DEB_BUILD_ARCH_ENDIAN\\s0"

#. type: Plain text
#: dpkg-architecture.1:111
msgid "The endianness of the build machine (little / big)."
msgstr "« Endianness» de la machine de construction (little ou big)."

#. type: IP
#: dpkg-architecture.1:111
#, no-wrap
msgid "\\s-1DEB_BUILD_GNU_CPU\\s0"
msgstr "\\s-1DEB_BUILD_GNU_CPU\\s0"

#. type: Plain text
#: dpkg-architecture.1:113
msgid "The \\s-1CPU\\s0 part of \\s-1DEB_BUILD_GNU_TYPE\\s0."
msgstr "Partie \\s-1CPU\\s0 de \\s-1DEB_BUILD_GNU_TYPE\\s0."

#. type: IP
#: dpkg-architecture.1:113
#, no-wrap
msgid "\\s-1DEB_BUILD_GNU_SYSTEM\\s0"
msgstr "\\s-1DEB_BUILD_GNU_SYSTEM\\s0"

#. type: Plain text
#: dpkg-architecture.1:115
msgid "The System part of \\s-1DEB_BUILD_GNU_TYPE\\s0."
msgstr "Partie « système » de \\s-1DEB_BUILD_GNU_TYPE\\s0."

#. type: IP
#: dpkg-architecture.1:115
#, no-wrap
msgid "\\s-1DEB_BUILD_GNU_TYPE\\s0"
msgstr "\\s-1DEB_BUILD_GNU_TYPE\\s0"

#. type: Plain text
#: dpkg-architecture.1:117
msgid "The \\s-1GNU\\s0 system type of the build machine."
msgstr "Type de système \\s-1GNU\\s0 de la machine de construction."

#. type: IP
#: dpkg-architecture.1:117
#, fuzzy, no-wrap
#| msgid "\\s-1DEB_BUILD_ARCH\\s0"
msgid "\\s-1DEB_BUILD_MULTIARCH\\s0"
msgstr "\\s-1DEB_BUILD_ARCH\\s0"

#. type: Plain text
#: dpkg-architecture.1:120
#, fuzzy
#| msgid "The \\s-1GNU\\s0 system type of the build machine."
msgid ""
"The clarified \\s-1GNU\\s0 system type of the build machine, used for "
"filesystem paths."
msgstr "Type de système \\s-1GNU\\s0 de la machine de construction."

#. type: IP
#: dpkg-architecture.1:120
#, no-wrap
msgid "\\s-1DEB_HOST_ARCH\\s0"
msgstr "\\s-1DEB_HOST_ARCH\\s0"

#. type: Plain text
#: dpkg-architecture.1:122
msgid "The Debian architecture of the host machine."
msgstr "Architecture Debian de la machine hôte."

#. type: IP
#: dpkg-architecture.1:122
#, no-wrap
msgid "\\s-1DEB_HOST_ARCH_OS\\s0"
msgstr "\\s-1DEB_HOST_ARCH_OS\\s0"

#. type: Plain text
#: dpkg-architecture.1:124
msgid "The Debian system name of the host machine."
msgstr "Nom du système Debian de la machine hôte."

#. type: IP
#: dpkg-architecture.1:124
#, no-wrap
msgid "\\s-1DEB_HOST_ARCH_CPU\\s0"
msgstr "\\s-1DEB_HOST_ARCH_CPU\\s0"

#. type: Plain text
#: dpkg-architecture.1:126
msgid "The Debian cpu name of the host machine."
msgstr "Nom du processeur Debian de la machine hôte."

#. type: IP
#: dpkg-architecture.1:126
#, no-wrap
msgid "\\s-1DEB_HOST_ARCH_BITS\\s0"
msgstr "\\s-1DEB_HOST_ARCH_BITS\\s0"

#. type: Plain text
#: dpkg-architecture.1:128
msgid "The pointer size of the host machine (in bits)."
msgstr "Taille de pointeur de la machine hôte (en bits)."

#. type: IP
#: dpkg-architecture.1:128
#, no-wrap
msgid "\\s-1DEB_HOST_ARCH_ENDIAN\\s0"
msgstr "\\s-1DEB_HOST_ARCH_ENDIAN\\s0"

#. type: Plain text
#: dpkg-architecture.1:130
msgid "The endianness of the host machine (little / big)."
msgstr "« Endianess » de la machine hôte (little ou big)."

#. type: IP
#: dpkg-architecture.1:130
#, no-wrap
msgid "\\s-1DEB_HOST_GNU_CPU\\s0"
msgstr "\\s-1DEB_HOST_GNU_CPU\\s0"

#. type: Plain text
#: dpkg-architecture.1:132
msgid "The \\s-1CPU\\s0 part of \\s-1DEB_HOST_GNU_TYPE\\s0."
msgstr "Partie « processeur » de \\s-1DEB_HOST_GNU_TYPE\\s0."

#. type: IP
#: dpkg-architecture.1:132
#, no-wrap
msgid "\\s-1DEB_HOST_GNU_SYSTEM\\s0"
msgstr "\\s-1DEB_HOST_GNU_SYSTEM\\s0"

#. type: Plain text
#: dpkg-architecture.1:134
msgid "The System part of \\s-1DEB_HOST_GNU_TYPE\\s0."
msgstr "Partie « système » de \\s-1DEB_HOST_GNU_TYPE\\s0."

#. type: IP
#: dpkg-architecture.1:134
#, no-wrap
msgid "\\s-1DEB_HOST_GNU_TYPE\\s0"
msgstr "\\s-1DEB_HOST_GNU_TYPE\\s0"

#. type: Plain text
#: dpkg-architecture.1:136
msgid "The \\s-1GNU\\s0 system type of the host machine."
msgstr "Type de système \\s-1GNU\\s0 de la machine hôte."

#. type: IP
#: dpkg-architecture.1:136
#, fuzzy, no-wrap
#| msgid "\\s-1DEB_HOST_ARCH\\s0"
msgid "\\s-1DEB_HOST_MULTIARCH\\s0"
msgstr "\\s-1DEB_HOST_ARCH\\s0"

#. type: Plain text
#: dpkg-architecture.1:139
#, fuzzy
#| msgid "The \\s-1GNU\\s0 system type of the host machine."
msgid ""
"The clarified \\s-1GNU\\s0 system type of the host machine, used for "
"filesystem paths."
msgstr "Type de système \\s-1GNU\\s0 de la machine hôte."

#. type: SH
#: dpkg-architecture.1:140
#, no-wrap
msgid "DEBIAN/RULES"
msgstr "DEBIAN/RULES"

#. type: Plain text
#: dpkg-architecture.1:148
msgid ""
"The environment variables set by B<dpkg-architecture> are passed to I<debian/"
"rules> as make variables (see make documentation). However, you should not "
"rely on them, as this breaks manual invocation of the script. Instead, you "
"should always initialize them using B<dpkg-architecture> with the -q option. "
"Here are some examples, which also show how you can improve the cross "
"compilation support in your package:"
msgstr ""
"Les variables d'environnement définies par B<dpkg-architecture> sont "
"fournies à I<debian/rules> comme variables pour make (consultez la "
"documentation de make). Cependant, vous ne devez pas compter là-dessus "
"puisque cela empêche les appels manuels à ce script. À la place, vous devez "
"toujours les initialiser en utilisant B<dpkg-architecture> avec l'option -q. "
"Voici quelques exemples, qui indiquent aussi comment améliorer la gestion "
"des compilations croisées de votre paquet :"

#. type: Plain text
#: dpkg-architecture.1:151 dpkg-architecture.1:168
msgid "Instead of:"
msgstr "Au lieu de :"

#. type: Plain text
#: dpkg-architecture.1:155
#, no-wrap
msgid ""
"ARCH=\\`dpkg --print-architecture\\`\n"
"configure $(\\s-1ARCH\\s0)-linux\n"
msgstr ""
"ARCH=\\`dpkg --print-architecture\\`\n"
"configure $(\\s-1ARCH\\s0)-linux\n"

#. type: Plain text
#: dpkg-architecture.1:158
msgid "please use the following:"
msgstr "Veuillez utiliser :"

#. type: Plain text
#: dpkg-architecture.1:162
#, no-wrap
msgid ""
"\\&\\s-1DEB_BUILD_GNU_TYPE\\s0 := $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)\n"
"\\&\\s-1DEB_HOST_GNU_TYPE\\s0 := $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)\n"
msgstr ""
"\\&\\s-1DEB_BUILD_GNU_TYPE\\s0 := $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)\n"
"\\&\\s-1DEB_HOST_GNU_TYPE\\s0 := $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)\n"

#. type: Plain text
#: dpkg-architecture.1:164
#, no-wrap
msgid "configure --build=$(\\s-1DEB_BUILD_GNU_TYPE\\s0) --host=$(\\s-1DEB_HOST_GNU_TYPE\\s0)\n"
msgstr "configure --build=$(\\s-1DEB_BUILD_GNU_TYPE\\s0) --host=$(\\s-1DEB_HOST_GNU_TYPE\\s0)\n"

#. type: Plain text
#: dpkg-architecture.1:174
#, no-wrap
msgid ""
"ARCH=\\`dpkg --print-architecture\\`\n"
"ifeq ($(\\s-1ARCH\\s0),alpha)\n"
"  ...\n"
"endif\n"
msgstr ""
"ARCH=\\`dpkg --print-architecture\\`\n"
"ifeq ($(\\s-1ARCH\\s0),alpha)\n"
"  ...\n"
"endif\n"

#. type: Plain text
#: dpkg-architecture.1:177
msgid "please use:"
msgstr "Veuillez utiliser :"

#. type: Plain text
#: dpkg-architecture.1:180
#, no-wrap
msgid "\\&\\s-1DEB_HOST_ARCH\\s0 := $(shell dpkg-architecture -qDEB_HOST_ARCH)\n"
msgstr "\\&\\s-1DEB_HOST_ARCH\\s0 := $(shell dpkg-architecture -qDEB_HOST_ARCH)\n"

#. type: Plain text
#: dpkg-architecture.1:184
#, no-wrap
msgid ""
"ifeq ($(\\s-1DEB_HOST_ARCH\\s0),alpha)\n"
"  ...\n"
"endif\n"
msgstr ""
"ifeq ($(\\s-1DEB_HOST_ARCH\\s0),alpha)\n"
"  ...\n"
"endif\n"

#. type: Plain text
#: dpkg-architecture.1:188
msgid ""
"or if you only need to check the CPU or OS type, use the DEB_HOST_ARCH_CPU "
"or DEB_HOST_ARCH_OS variables."
msgstr ""
"Ou, si vous n'avez besoin que de vérifier le type du processeur et du "
"système, utilisez les variables DEB_HOST_ARCH_CPU ou DEB_HOST_ARCH_OS."

#. type: Plain text
#: dpkg-architecture.1:193
msgid ""
"In general, calling dpkg in the rules file to get architecture information "
"is deprecated (unless you want to provide backward compatibility, see "
"below).  Especially the --print-architecture option is unreliable since we "
"have Debian architectures which don't equal a processor name."
msgstr ""
"Appeler dpkg dans les fichiers « rules » pour obtenir les informations sur "
"l'architecture est déconseillé (sauf pour des raisons de compatibilité "
"arrière, voyez ci-dessous). En particulier, l'option --print-architecture "
"n'est pas fiable puisque certaines architectures Debian ne correspondent à "
"aucun nom de processeur."

#. type: SH
#: dpkg-architecture.1:194
#, no-wrap
msgid "BACKWARD COMPATIBILITY"
msgstr "COMPATIBILITÉ ARRIÈRE"

#. type: Plain text
#: dpkg-architecture.1:198
msgid ""
"The DEB_*_ARCH_BITS and DEB_*_ARCH_ENDIAN variables were introduced in dpkg-"
"dev 1.15.4. Using them in I<debian/rules> thus requires a build-dependency "
"on dpkg-dev (E<gt>= 1.15.4)."
msgstr ""
"Les variables DEB_*_ARCH_BITS et DEB_*_ARCH_ENDIAN sont apparues avec la "
"version 1.15.4 de dpkg-dev. Si elles sont utilisées dans I<debian/rules>, "
"une dépendance de construction sur dpkg-dev (E<gt>= 1.15.4) est nécessaire."

#. type: Plain text
#: dpkg-architecture.1:203
msgid ""
"The DEB_HOST_ARCH_CPU and DEB_HOST_ARCH_OS variables were introduced in dpkg-"
"dev 1.13.2. Before this I<debian/rules> files tended to check the values of "
"the DEB_HOST_GNU_CPU or DEB_HOST_GNU_TYPE variables which have been subject "
"to change."
msgstr ""
"Les variables DEB_HOST_ARCH_CPU et DEB_HOST_ARCH_OS sont apparues avec la "
"version 1.13.2 de dpkg-dev. Auparavant, les fichiers I<debian/rules> "
"utilisaient les variables DEB_HOST_GNU_CPU ou DEB_HOST_GNU_TYPE qui ont eu "
"tendance à varier dans le temps."

#. type: Plain text
#: dpkg-architecture.1:208
msgid ""
"Where I<debian/rules> files check these variables to decide how or what to "
"compile, this should be updated to use the new variables and values.  You "
"may wish to retain backwards compatibility with older version of dpkg-dev by "
"using the following code:"
msgstr ""
"Si ces variables sont encore utilisées dans un fichier I<debian/rules> pour "
"décider quoi construire et comment, il faut les remplacer par les nouvelles "
"variables. Vous pouvez rester compatible avec les versions précédentes de "
"dpkg-dev en utilisant le code suivant :"

#. type: Plain text
#: dpkg-architecture.1:212
#, no-wrap
msgid ""
"DEB_HOST_ARCH_CPU := $(shell dpkg-architecture -qDEB_HOST_ARCH_CPU 2E<gt>/dev/null)\n"
"DEB_HOST_ARCH_OS := $(shell dpkg-architecture -qDEB_HOST_ARCH_OS 2E<gt>/dev/null)\n"
msgstr ""
"DEB_HOST_ARCH_CPU := $(shell dpkg-architecture -qDEB_HOST_ARCH_CPU 2E<gt>/dev/null)\n"
"DEB_HOST_ARCH_OS := $(shell dpkg-architecture -qDEB_HOST_ARCH_OS 2E<gt>/dev/null)\n"

#. type: Plain text
#: dpkg-architecture.1:226
#, no-wrap
msgid ""
"# Take account of old dpkg-architecture output.\n"
"ifeq ($(DEB_HOST_ARCH_CPU),)\n"
"  DEB_HOST_ARCH_CPU := $(shell dpkg-architecture -qDEB_HOST_GNU_CPU)\n"
"  ifeq ($(DEB_HOST_ARCH_CPU),x86_64)\n"
"    DEB_HOST_ARCH_CPU := amd64\n"
"  endif\n"
"endif\n"
"ifeq ($(DEB_HOST_ARCH_OS),)\n"
"  DEB_HOST_ARCH_OS := $(subst -gnu,,$(shell dpkg-architecture -qDEB_HOST_GNU_SYSTEM))\n"
"  ifeq ($(DEB_HOST_ARCH_OS),gnu)\n"
"    DEB_HOST_ARCH_OS := hurd\n"
"  endif\n"
"endif\n"
msgstr ""
"# Prise en compte des anciennes versions de dpkg-architecture.\n"
"ifeq ($(DEB_HOST_ARCH_CPU),)\n"
"  DEB_HOST_ARCH_CPU := $(shell dpkg-architecture -qDEB_HOST_GNU_CPU)\n"
"  ifeq ($(DEB_HOST_ARCH_CPU),x86_64)\n"
"    DEB_HOST_ARCH_CPU := amd64\n"
"  endif\n"
"endif\n"
"ifeq ($(DEB_HOST_ARCH_OS),)\n"
"  DEB_HOST_ARCH_OS := $(subst -gnu,,$(shell dpkg-architecture -qDEB_HOST_GNU_SYSTEM))\n"
"  ifeq ($(DEB_HOST_ARCH_OS),gnu)\n"
"    DEB_HOST_ARCH_OS := hurd\n"
"  endif\n"
"endif\n"

#. type: Plain text
#: dpkg-architecture.1:229
msgid "And similarly for DEB_BUILD_ARCH_CPU and DEB_BUILD_ARCH_OS."
msgstr "Et de la même façon pour DEB_BUILD_ARCH_CPU et DEB_BUILD_ARCH_OS."

#. type: Plain text
#: dpkg-architecture.1:232
msgid ""
"If you still wish to support versions of dpkg-dev that did not include "
"B<dpkg-architecture>, the following does the job:"
msgstr ""
"Pour accepter encore les versions de dpkg-dev qui n'incluent pas B<dpkg-"
"architecture>, vous pouvez utiliser :"

#. type: Plain text
#: dpkg-architecture.1:242
#, no-wrap
msgid ""
"\\&\\s-1DEB_BUILD_ARCH\\s0 := $(shell dpkg --print-architecture)\n"
"\\&\\s-1DEB_BUILD_GNU_CPU\\s0 := $(patsubst hurd-%,%,$(\\s-1DEB_BUILD_ARCH\\s0))\n"
"ifeq ($(filter-out hurd-%,$(\\s-1DEB_BUILD_ARCH\\s0)),)\n"
"  \\s-1DEB_BUILD_GNU_SYSTEM\\s0 := gnu\n"
"else\n"
"  \\s-1DEB_BUILD_GNU_SYSTEM\\s0 := linux-gnu\n"
"endif\n"
"DEB_BUILD_GNU_TYPE=$(\\s-1DEB_BUILD_GNU_CPU\\s0)-$(\\s-1DEB_BUILD_GNU_SYSTEM\\s0)\n"
msgstr ""
"\\&\\s-1DEB_BUILD_ARCH\\s0 := $(shell dpkg --print-architecture)\n"
"\\&\\s-1DEB_BUILD_GNU_CPU\\s0 := $(patsubst hurd-%,%,$(\\s-1DEB_BUILD_ARCH\\s0))\n"
"ifeq ($(filter-out hurd-%,$(\\s-1DEB_BUILD_ARCH\\s0)),)\n"
"  \\s-1DEB_BUILD_GNU_SYSTEM\\s0 := gnu\n"
"else\n"
"  \\s-1DEB_BUILD_GNU_SYSTEM\\s0 := linux-gnu\n"
"endif\n"
"DEB_BUILD_GNU_TYPE=$(\\s-1DEB_BUILD_GNU_CPU\\s0)-$(\\s-1DEB_BUILD_GNU_SYSTEM\\s0)\n"

#. type: Plain text
#: dpkg-architecture.1:247
#, no-wrap
msgid ""
"\\&\\s-1DEB_HOST_ARCH\\s0 := $(\\s-1DEB_BUILD_ARCH\\s0)\n"
"\\&\\s-1DEB_HOST_GNU_CPU\\s0 := $(\\s-1DEB_BUILD_GNU_CPU\\s0)\n"
"\\&\\s-1DEB_HOST_GNU_SYSTEM\\s0 := $(\\s-1DEB_BUILD_GNU_SYSTEM\\s0)\n"
"\\&\\s-1DEB_HOST_GNU_TYPE\\s0 := $(\\s-1DEB_BUILD_GNU_TYPE\\s0)\n"
msgstr ""
"\\&\\s-1DEB_HOST_ARCH\\s0 := $(\\s-1DEB_BUILD_ARCH\\s0)\n"
"\\&\\s-1DEB_HOST_GNU_CPU\\s0 := $(\\s-1DEB_BUILD_GNU_CPU\\s0)\n"
"\\&\\s-1DEB_HOST_GNU_SYSTEM\\s0 := $(\\s-1DEB_BUILD_GNU_SYSTEM\\s0)\n"
"\\&\\s-1DEB_HOST_GNU_TYPE\\s0 := $(\\s-1DEB_BUILD_GNU_TYPE\\s0)\n"

#. type: Plain text
#: dpkg-architecture.1:251
msgid ""
"Put a subset of these lines at the top of your debian/rules file; these "
"default values will be overwritten if dpkg-architecture is used."
msgstr ""
"Vous pouvez placer certaines de ces lignes au début de votre debian/rules. "
"Ces valeurs par défaut seront écrasées si dpkg-architecture est utilisé."

#. type: Plain text
#: dpkg-architecture.1:258
msgid ""
"You don't need the full set. Choose a consistent set which contains the "
"values you use in the rules file. For example, if you only need the host "
"Debian architecture, `DEB_HOST_ARCH=\\`dpkg --print-architecture\\`' is "
"sufficient (this is indeed the Debian architecture of the build machine, but "
"remember that we are only trying to be backward compatible with native "
"compilation)."
msgstr ""
"Vous n'avez pas besoin de toutes ces lignes. Choisissez uniquement les "
"variables que vous utilisez dans votre fichier « rules ». Par exemple, si "
"vous n'avez besoin que de l'architecture hôte Debian, `DEB_HOST_ARCH=\\`dpkg "
"--print-architecture\\`' est suffisant (il s'agit bien sûr de l'architecture "
"Debian de la machine de construction, mais le but est ici de rester "
"compatible avec les anciennes compilations natives)."

#. type: Plain text
#: dpkg-architecture.1:261
msgid ""
"The B<-e> and B<-i> options were only introduced in relatively recent "
"versions of B<dpkg-architecture> (since dpkg 1.13.13)."
msgstr ""
"Les options B<-e> et B<-i> n'ont été ajoutées que relativement récemment à "
"B<dpkg-architecture> (depuis la version 1.13.13 de dpkg)."

#. type: Plain text
#: dpkg-architecture.1:265
msgid ""
"B<dpkg-buildpackage> accepts the B<-a> option and passes it to B<dpkg-"
"architecture>. Other examples:"
msgstr ""
"B<dpkg-buildpackage> accepte l'option B<-a>, et la passe à B<dpkg-"
"architecture>. Voici d'autres exemples :"

#. type: Plain text
#: dpkg-architecture.1:267
msgid "CC=i386-gnu-gcc dpkg-architecture -c debian/rules build"
msgstr "CC=i386-gnu-gcc dpkg-architecture -c debian/rules build"

#. type: Plain text
#: dpkg-architecture.1:269
msgid "eval \\`dpkg-architecture -u\\`"
msgstr "eval \\`dpkg-architecture -u\\`"

#. type: Plain text
#: dpkg-architecture.1:272
msgid ""
"Check if an architecture is equal to the current architecture or a given one:"
msgstr ""
"Vérifie si une architecture est identique à l'architecture actuelle ou à "
"celle spécifiée :"

#. type: Plain text
#: dpkg-architecture.1:274
msgid "dpkg-architecture -elinux-alpha"
msgstr "dpkg-architecture -elinux-alpha"

#. type: Plain text
#: dpkg-architecture.1:276
msgid "dpkg-architecture -amips -elinux-mips"
msgstr "dpkg-architecture -amips -elinux-mips"

#. type: Plain text
#: dpkg-architecture.1:279
msgid ""
"Check if the current architecture or an architecture provided with -a are "
"Linux systems:"
msgstr ""
"Vérifie si l'architecture actuelle ou celle spécifiée avec -a correspond à "
"un système Linux :"

#. type: Plain text
#: dpkg-architecture.1:281
msgid "dpkg-architecture -ilinux-any"
msgstr "dpkg-architecture -ilinux-any"

#. type: Plain text
#: dpkg-architecture.1:283
msgid "dpkg-architecture -ai386 -ilinux-any"
msgstr "dpkg-architecture -ai386 -ilinux-any"

#. type: Plain text
#: dpkg-architecture.1:288
#, fuzzy
#| msgid ""
#| "All these files have to be present for B<dpkg-architecture> to work. "
#| "Their location can be overridden at runtime with the environment variable "
#| "DPKG_DATADIR."
msgid ""
"All these files have to be present for B<dpkg-architecture> to work. Their "
"location can be overridden at runtime with the environment variable "
"B<DPKG_DATADIR>."
msgstr ""
"Tous ces fichiers sont nécessaires afin que B<dpkg-architecture> puisse "
"fonctionner. Leurs emplacements peuvent être modifiés lors du traitement via "
"la variable d'environnement DPKG_DATADIR."

#. type: TP
#: dpkg-architecture.1:288
#, no-wrap
msgid "I</usr/share/dpkg/cputable>"
msgstr "I</usr/share/dpkg/cputable>"

#. type: Plain text
#: dpkg-architecture.1:291
msgid "Table of known CPU names and mapping to their GNU name."
msgstr "Table des noms de processeurs connus et liaison avec leur nom GNU."

#. type: TP
#: dpkg-architecture.1:291
#, no-wrap
msgid "I</usr/share/dpkg/ostable>"
msgstr "I</usr/share/dpkg/ostable>"

#. type: Plain text
#: dpkg-architecture.1:294
msgid "Table of known operating system names and mapping to their GNU name."
msgstr ""
"Table des noms des systèmes d'exploitation connus et liaison avec leurs noms "
"GNU."

#. type: TP
#: dpkg-architecture.1:294
#, no-wrap
msgid "I</usr/share/dpkg/triplettable>"
msgstr "I</usr/share/dpkg/triplettable>"

#. type: Plain text
#: dpkg-architecture.1:298
msgid ""
"Mapping between Debian architecture triplets and Debian architecture names."
msgstr ""
"Correspondances entre les triplets de l'architecture Debian et les noms des "
"architectures Debian."

#. type: Plain text
#: dpkg-architecture.1:302
msgid "B<dpkg-buildpackage>(1), B<dpkg-cross>(1)."
msgstr "B<dpkg-buildpackage>(1), B<dpkg-cross>(1)."

#. type: Plain text
#: dpkg-architecture.1:307
msgid ""
"B<dpkg-architecture> and this man page were initially written by Marcus "
"Brinkmann E<lt>brinkmd@debian.orgE<gt>."
msgstr ""
"B<dpkg-architecture> et cette page de manuel ont été initialement écrits par "
"Marcus Brinkmann E<lt>brinkmd@debian.orgE<gt>."

#. type: TH
#: dpkg.cfg.5:1
#, no-wrap
msgid "dpkg.cfg"
msgstr "dpkg.cfg"

#. type: TH
#: dpkg.cfg.5:1
#, no-wrap
msgid "2009-09-05"
msgstr "05-09-2009"

#. type: Plain text
#: dpkg.cfg.5:4
msgid "dpkg.cfg - dpkg configuration file"
msgstr "dpkg.cfg - fichier de configuration de dpkg"

#. type: Plain text
#: dpkg.cfg.5:11
msgid ""
"This file contains default options for dpkg. Each line contains a single "
"option which is exactly the same as a normal command line option for dpkg "
"except for the leading dashes which are not used here. Quotes surrounding "
"option values are stripped. Comments are allowed by starting a line with a "
"hash sign (\"B<#>\")."
msgstr ""
"Ce fichier liste les options appliquées par défaut à dpkg. Chaque ligne "
"contient une seule option, écrite exactement comme sur la ligne de commande "
"mais sans les tirets initiaux, inutilisés. Les guillemets autour des valeurs "
"d'options sont supprimés. Les commentaires sont autorisés en faisant "
"commencer la ligne par un caractère B<(\"#\")>."

#. type: Plain text
#: dpkg.cfg.5:14
msgid "I</etc/dpkg/dpkg.cfg.d/[0-9a-zA-Z_-]*>"
msgstr "I</etc/dpkg/dpkg.cfg.d/[0-9a-zA-Z_-]*>"

#. type: Plain text
#: dpkg.cfg.5:18
msgid "I<~/.dpkg.cfg>"
msgstr "I<~/.dpkg.cfg>"

#. type: Plain text
#: dpkg.cfg.5:24 dpkg-divert.8:134 dpkg-query.1:222 dpkg-statoverride.8:86
msgid "B<dpkg>(1)."
msgstr "B<dpkg>(1)."

#. type: TH
#: dpkg-buildflags.1:1
#, no-wrap
msgid "dpkg-buildflags"
msgstr "dpkg-buildflags"

#. type: TH
#: dpkg-buildflags.1:1
#, fuzzy, no-wrap
#| msgid "2011-07-04"
msgid "2011-09-13"
msgstr "07-04-2011"

#. type: Plain text
#: dpkg-buildflags.1:4
msgid "dpkg-buildflags - returns build flags to use during package build"
msgstr ""
"dpkg-buildflags - retourne les options de compilation à utiliser pour "
"la                   construction du paquet"

#. type: Plain text
#: dpkg-buildflags.1:8
#, fuzzy
#| msgid "B<dpkg-buildflags> [I<option>...] I<command>"
msgid "B<dpkg-buildflags> [I<option>...] [I<command>]"
msgstr "B<dpkg-buildflags> [I<option>...] I<commande>"

#. type: Plain text
#: dpkg-buildflags.1:12
msgid ""
"B<dpkg-buildflags> is a tool to retrieve compilation flags to use during "
"build of Debian packages."
msgstr ""
"B<dpkg-buildflags> est un script qui permet de récupérer les options de "
"compilation à utiliser pour la construction d'un paquet."

#. type: Plain text
#: dpkg-buildflags.1:15
msgid ""
"The default flags are defined by the vendor but they can be extended/"
"overriden in several ways:"
msgstr ""
"Les drapeaux par défaut sont définis par le fournisseur de la distribution "
"mais peuvent être étendus ou remplacés de plusieurs façons :"

#. type: IP
#: dpkg-buildflags.1:15
#, no-wrap
msgid "1."
msgstr "1."

#. type: Plain text
#: dpkg-buildflags.1:17
msgid "system-wide with B</etc/dpkg/buildflags.conf>;"
msgstr "pour tout le système avec B</etc/dpkg/buildflags.conf>;"

#. type: IP
#: dpkg-buildflags.1:17
#, no-wrap
msgid "2."
msgstr "2."

#. type: Plain text
#: dpkg-buildflags.1:20
msgid ""
"for the current user with B<$XDG_CONFIG_HOME/dpkg/buildflags.conf> where B<"
"$XDG_CONFIG_HOME> defaults to B<$HOME/.config>;"
msgstr ""
"pour l'utilisateur courant avec B<$XDG_CONFIG_HOME/dpkg/buildflags.conf> où "
"la valeur par défaut de B<$XDG_CONFIG_HOME> est B<$HOME/.config>;"

#. type: IP
#: dpkg-buildflags.1:20
#, no-wrap
msgid "3."
msgstr "3."

#. type: Plain text
#: dpkg-buildflags.1:23
#, fuzzy
#| msgid "temporarily with environment variables (see section B<ENVIRONMENT>)."
msgid ""
"temporarily by the user with environment variables (see section "
"B<ENVIRONMENT>);"
msgstr ""
"temporairement avec des variables d'environnemenet (voir B<VARIABLES "
"D'ENVIRONNEMENT>)."

#. type: IP
#: dpkg-buildflags.1:23
#, no-wrap
msgid "4."
msgstr ""

#. type: Plain text
#: dpkg-buildflags.1:26
#, fuzzy
#| msgid "temporarily with environment variables (see section B<ENVIRONMENT>)."
msgid ""
"dynamically by the package maintainer with environment variables set via "
"B<debian/rules> (see section B<ENVIRONMENT>)."
msgstr ""
"temporairement avec des variables d'environnemenet (voir B<VARIABLES "
"D'ENVIRONNEMENT>)."

#. type: Plain text
#: dpkg-buildflags.1:28
msgid "The configuration files can contain two types of directives:"
msgstr ""
"Les fichiers de configuration peuvent contenir deux types de directives :"

#. type: TP
#: dpkg-buildflags.1:28
#, no-wrap
msgid "B<SET>I< flag value>"
msgstr "B<SET>I< drapeau valeur>"

#. type: Plain text
#: dpkg-buildflags.1:31
msgid "Override the flag named I<flag> to have the value I<value>."
msgstr "Remplace le drapeau I<drapeau> par la valeur I<valeur>."

#. type: TP
#: dpkg-buildflags.1:31
#, fuzzy, no-wrap
#| msgid "B<SET>I< flag value>"
msgid "B<STRIP>I< flag value>"
msgstr "B<SET>I< drapeau valeur>"

#. type: Plain text
#: dpkg-buildflags.1:34
#, fuzzy
#| msgid "Override the flag named I<flag> to have the value I<value>."
msgid ""
"Strip from the flag named I<flag> all the build flags listed in I<value>."
msgstr "Remplace le drapeau I<drapeau> par la valeur I<valeur>."

#. type: TP
#: dpkg-buildflags.1:34
#, no-wrap
msgid "B<APPEND>I< flag value>"
msgstr "B<APPEND>I< drapeau valeur>"

#. type: Plain text
#: dpkg-buildflags.1:38
#, fuzzy
#| msgid ""
#| "Extend the flag named I<flag> with the options given in I<value>.  A "
#| "space is prepended to the appended value if the flag's current value is "
#| "non-empty."
msgid ""
"Extend the flag named I<flag> by appending the options given in I<value>.  A "
"space is prepended to the appended value if the flag's current value is non-"
"empty."
msgstr ""
"Étend le drapeau I<drapeau> avec les options indiquées dans I<valeur>. Un "
"espace est ajouté au début de ce qui est ajouté si la valeur actuelle du "
"drapeau n'est pas vide."

#. type: TP
#: dpkg-buildflags.1:38
#, fuzzy, no-wrap
#| msgid "B<APPEND>I< flag value>"
msgid "B<PREPEND>I< flag value>"
msgstr "B<APPEND>I< drapeau valeur>"

#. type: Plain text
#: dpkg-buildflags.1:42
#, fuzzy
#| msgid ""
#| "Extend the flag named I<flag> with the options given in I<value>.  A "
#| "space is prepended to the appended value if the flag's current value is "
#| "non-empty."
msgid ""
"Extend the flag named I<flag> by prepending the options given in I<value>.  "
"A space is appended to the prepended value if the flag's current value is "
"non-empty."
msgstr ""
"Étend le drapeau I<drapeau> avec les options indiquées dans I<valeur>. Un "
"espace est ajouté au début de ce qui est ajouté si la valeur actuelle du "
"drapeau n'est pas vide."

#. type: Plain text
#: dpkg-buildflags.1:45
msgid ""
"The configuration files can contain comments on lines starting with a hash "
"(#). Empty lines are also ignored."
msgstr ""
"Les fichiers de configuration peuvent contenir des commentaires sur les "
"lignes commençant par un dièse (#). Les lignes vides sont également ignorées."

#. type: TP
#: dpkg-buildflags.1:46
#, fuzzy, no-wrap
#| msgid "B<--debug>"
msgid "B<--dump>"
msgstr "B<--debug>"

#. type: Plain text
#: dpkg-buildflags.1:51
msgid ""
"Print to standard output all compilation flags and their values. It prints "
"one flag per line separated from its value by an equal sign "
"(\"I<flag>=I<value>\"). This is the default action."
msgstr ""

#. type: TP
#: dpkg-buildflags.1:51
#, no-wrap
msgid "B<--list>"
msgstr "B<--list>"

#. type: Plain text
#: dpkg-buildflags.1:56
msgid ""
"Print the list of flags supported by the current vendor (one per line). See "
"the B<SUPPORTED FLAGS> section for more information about them."
msgstr ""
"Affiche la liste des drapeaux gérés par l'éditeur actuel (un par ligne). "
"Voir la section B<DRAPEAUX GÉRÉS> pour plus d'informations sur chacun d'eux."

#. type: TP
#: dpkg-buildflags.1:56
#, no-wrap
msgid "B<--export=>I<format>"
msgstr "B<--export=>I<format>"

#. type: Plain text
#: dpkg-buildflags.1:66
#, fuzzy
#| msgid ""
#| "Print to standard output shell (if I<format> is B<sh>) or make (if "
#| "I<format> is B<make>) commands that can be used to export all the "
#| "compilation flags in the environment. If the I<format> value is not "
#| "given, B<sh> is assumed. Only compilation flags starting with an upper "
#| "case character are included, others are assumed to not be suitable for "
#| "the environment."
msgid ""
"Print to standard output shell (if I<format> is B<sh>) or make (if I<format> "
"is B<make>) commands that can be used to export all the compilation flags in "
"the environment. If I<format> is B<configure> then the output can be used on "
"a B<./configure> command-line. If the I<format> value is not given, B<sh> is "
"assumed. Only compilation flags starting with an upper case character are "
"included, others are assumed to not be suitable for the environment."
msgstr ""
"Affiche sur la sortie standard, les commandes shell (si I<format> est B<sh>) "
"ou make (si I<format> est B<make>) qui permettent d'exporter tous les "
"drapeaux de compilation dans l'environnement. La valeur par défaut de "
"I<format> est B<sh>. Seuls les drapeaux de compilation commençant par une "
"majuscule sont inclus, les autres étant supposés inadaptés à l'environnement."

#. type: TP
#: dpkg-buildflags.1:66
#, no-wrap
msgid "B<--get>I< flag>"
msgstr "B<--get>I< drapeau>"

#. type: Plain text
#: dpkg-buildflags.1:70
msgid ""
"Print the value of the flag on standard output. Exits with 0 if the flag is "
"known otherwise exits with 1."
msgstr ""
"Affiche la valeur de ce drapeau sur la sortie standard. Retourne un code de "
"sortie 0 si le drapeau est connu et 1 s'il est inconnu."

#. type: TP
#: dpkg-buildflags.1:70
#, no-wrap
msgid "B<--origin>I< flag>"
msgstr "B<--origin>I< drapeau>"

#. type: Plain text
#: dpkg-buildflags.1:75
msgid ""
"Print the origin of the value that is returned by B<--get>. Exits with 0 if "
"the flag is known otherwise exits with 1. The origin can be one of the "
"following values:"
msgstr ""
"Affiche l'origine de la valeur renvoyée par B<--get>. Retourne un code de "
"sortie 0 si le drapeau est connu et 1 s'il est inconnu. L'origine est une "
"des valeurs suivantes :"

#. type: TP
#: dpkg-buildflags.1:76
#, no-wrap
msgid "B<vendor>"
msgstr "B<vendor>"

#. type: Plain text
#: dpkg-buildflags.1:79
msgid "the original flag set by the vendor is returned;"
msgstr "le drapeau défini à l'origine par l'éditeur est renvoyé ;"

#. type: TP
#: dpkg-buildflags.1:79
#, no-wrap
msgid "B<system>"
msgstr "B<system>"

#. type: Plain text
#: dpkg-buildflags.1:82
msgid "the flag is set/modified by a system-wide configuration;"
msgstr "le drapeau est placé ou modifié par un réglage système ;"

#. type: TP
#: dpkg-buildflags.1:82
#, no-wrap
msgid "B<user>"
msgstr "B<user>"

#. type: Plain text
#: dpkg-buildflags.1:85
msgid "the flag is set/modified by a user-specific configuration;"
msgstr ""
"le drapeau est placé ou modifié par une configuration spécifique à "
"l'utilisateur ;"

#. type: TP
#: dpkg-buildflags.1:85
#, no-wrap
msgid "B<env>"
msgstr "B<env>"

#. type: Plain text
#: dpkg-buildflags.1:88
msgid "the flag is set/modified by an environment-specific configuration."
msgstr ""
"le drapeau est placé ou modifié par une configuration spécifique dans "
"l'environnement."

#. type: SH
#: dpkg-buildflags.1:96
#, no-wrap
msgid "SUPPORTED FLAGS"
msgstr "DRAPEAUX GÉRÉS"

#. type: TP
#: dpkg-buildflags.1:97
#, no-wrap
msgid "B<CFLAGS>"
msgstr "B<CFLAGS>"

#. type: Plain text
#: dpkg-buildflags.1:103
msgid ""
"Options for the C compiler. The default value set by the vendor includes I<-"
"g> and the default optimization level (I<-O2> usually, or I<-O0> if the "
"B<DEB_BUILD_OPTIONS> environment variable defines I<noopt>)."
msgstr ""
"Options du compilateur C. La valeur par défaut définie par l'éditeur "
"comporte I<-g> le niveau d'optimisation par défaut (I<-O2> en général, ou I<-"
"O0> si la variables d'environnement B<DEB_BUILD_OPTIONS> contient I<noopt>)."

#. type: TP
#: dpkg-buildflags.1:103
#, no-wrap
msgid "B<CPPFLAGS>"
msgstr "B<CPPFLAGS>"

#. type: Plain text
#: dpkg-buildflags.1:106
msgid "Options for the C preprocessor. Default value: empty."
msgstr "Options du préprocesseur C. Valeur par défaut : aucune."

#. type: TP
#: dpkg-buildflags.1:106
#, no-wrap
msgid "B<CXXFLAGS>"
msgstr "B<CXXFLAGS>"

#. type: Plain text
#: dpkg-buildflags.1:109
msgid "Options for the C++ compiler. Same as B<CFLAGS>."
msgstr "Options du compilateur C++. Analogue à B<CFLAGS>."

#. type: TP
#: dpkg-buildflags.1:109
#, no-wrap
msgid "B<FFLAGS>"
msgstr "B<FFLAGS>"

#. type: Plain text
#: dpkg-buildflags.1:112
msgid "Options for the Fortran compiler. Same as B<CFLAGS>."
msgstr "Options du compilateur Fortran. Analogue à B<CFLAGS>."

#. type: TP
#: dpkg-buildflags.1:112
#, no-wrap
msgid "B<LDFLAGS>"
msgstr "B<LDFLAGS>"

#. type: Plain text
#: dpkg-buildflags.1:120
msgid ""
"Options passed to the compiler when linking executables or shared objects "
"(if the linker is called directly, then B<-Wl> and B<,> have to be stripped "
"from these options). Default value: empty."
msgstr ""
"Options passées au compilateur lors du processus de liaison des exécutables "
"ou des objets partagés (si le linker est appelé directement, alors B<-Wl> et "
"B<,> doivent être retirés de ces options). Valeur par défaut: aucune."

#. type: TP
#: dpkg-buildflags.1:122
#, no-wrap
msgid "B</etc/dpkg/buildflags.conf>"
msgstr "B</etc/dpkg/buildflags.conf>"

#. type: Plain text
#: dpkg-buildflags.1:125
msgid "System wide configuration file."
msgstr "Fichier de configuration pour l'ensemble du système."

#. type: TP
#: dpkg-buildflags.1:125
#, no-wrap
msgid "B<$XDG_CONFIG_HOME/dpkg/buildflags.conf> or B<$HOME/.config/dpkg/buildflags.conf>"
msgstr "B<$XDG_CONFIG_HOME/dpkg/buildflags.conf> ou B<$HOME/.config/dpkg/buildflags.conf>"

#. type: Plain text
#: dpkg-buildflags.1:128
msgid "User configuration file."
msgstr "Fichier de configuration propre à l'utilisateur"

#. type: Plain text
#: dpkg-buildflags.1:135
msgid ""
"There are 2 sets of environment variables doing the same operations, the "
"first one (DEB_I<flag>_I<op>) should never be used within B<debian/rules>. "
"It's meant for any user that wants to rebuild the source package with "
"different build flags. The second set (DEB_I<flag>_MAINT_I<op>) should only "
"be used in B<debian/rules> by package maintainers to change the resulting "
"build flags."
msgstr ""

#. type: TP
#: dpkg-buildflags.1:135
#, no-wrap
msgid "B<DEB_>I<flag>B<_SET>"
msgstr "B<DEB_>I<drapeau>B<_SET>"

#. type: TQ
#: dpkg-buildflags.1:137
#, fuzzy, no-wrap
#| msgid "B<DEB_>I<flag>B<_SET>"
msgid "B<DEB_>I<flag>B<_MAINT_SET>"
msgstr "B<DEB_>I<drapeau>B<_SET>"

#. type: Plain text
#: dpkg-buildflags.1:141
msgid ""
"This variable can be used to force the value returned for the given I<flag>."
msgstr ""
"Cette variable permet de forcer la valeur renvoyée pour le I<drapeau> "
"indiqué."

#. type: TP
#: dpkg-buildflags.1:141
#, fuzzy, no-wrap
#| msgid "B<DEB_>I<flag>B<_SET>"
msgid "B<DEB_>I<flag>B<_STRIP>"
msgstr "B<DEB_>I<drapeau>B<_SET>"

#. type: TQ
#: dpkg-buildflags.1:143
#, fuzzy, no-wrap
#| msgid "B<DEB_>I<flag>B<_SET>"
msgid "B<DEB_>I<flag>B<_MAINT_STRIP>"
msgstr "B<DEB_>I<drapeau>B<_SET>"

#. type: Plain text
#: dpkg-buildflags.1:148
#, fuzzy
#| msgid ""
#| "This variable can be used to append supplementary options to the value "
#| "returned for the given I<flag>."
msgid ""
"This variable can be used to provide a space separated list of options that "
"will be stripped from the set of flags returned for the given I<flag>."
msgstr ""
"Cette variable permet d'ajouter des options à la valeur renvoyée pour le "
"I<drapeau> indiqué."

#. type: TP
#: dpkg-buildflags.1:148
#, no-wrap
msgid "B<DEB_>I<flag>B<_APPEND>"
msgstr "B<DEB_>I<drapeau>B<_APPEND>"

#. type: TQ
#: dpkg-buildflags.1:150
#, fuzzy, no-wrap
#| msgid "B<DEB_>I<flag>B<_APPEND>"
msgid "B<DEB_>I<flag>B<_MAINT_APPEND>"
msgstr "B<DEB_>I<drapeau>B<_APPEND>"

#. type: Plain text
#: dpkg-buildflags.1:154
msgid ""
"This variable can be used to append supplementary options to the value "
"returned for the given I<flag>."
msgstr ""
"Cette variable permet d'ajouter des options à la valeur renvoyée pour le "
"I<drapeau> indiqué."

#. type: TP
#: dpkg-buildflags.1:154
#, fuzzy, no-wrap
#| msgid "B<DEB_>I<flag>B<_APPEND>"
msgid "B<DEB_>I<flag>B<_PREPEND>"
msgstr "B<DEB_>I<drapeau>B<_APPEND>"

#. type: TQ
#: dpkg-buildflags.1:156
#, fuzzy, no-wrap
#| msgid "B<DEB_>I<flag>B<_APPEND>"
msgid "B<DEB_>I<flag>B<_MAINT_PREPEND>"
msgstr "B<DEB_>I<drapeau>B<_APPEND>"

#. type: Plain text
#: dpkg-buildflags.1:160
#, fuzzy
#| msgid ""
#| "This variable can be used to append supplementary options to the value "
#| "returned for the given I<flag>."
msgid ""
"This variable can be used to prepend supplementary options to the value "
"returned for the given I<flag>."
msgstr ""
"Cette variable permet d'ajouter des options à la valeur renvoyée pour le "
"I<drapeau> indiqué."

#. type: TP
#: dpkg-buildflags.1:160
#, fuzzy, no-wrap
#| msgid "B<DEB_>I<flag>B<_SET>"
msgid "B<DEB_BUILD_MAINT_OPTIONS>"
msgstr "B<DEB_>I<drapeau>B<_SET>"

#. type: Plain text
#: dpkg-buildflags.1:165
msgid ""
"This variable can be used to disable/enable various hardening build flags "
"through the B<hardening> option. See the B<HARDENING> section for details."
msgstr ""

#. type: SH
#: dpkg-buildflags.1:166
#, fuzzy, no-wrap
#| msgid "WARNING"
msgid "HARDENING"
msgstr "AVERTISSEMENT"

#. type: Plain text
#: dpkg-buildflags.1:171
msgid ""
"Several compile-time options (detailed below) can be used to help harden a "
"resulting binary against memory corruption attacks, or provide additional "
"warning messages during compilation. Except as noted below, these are "
"enabled by default for architectures that support them."
msgstr ""

#. type: Plain text
#: dpkg-buildflags.1:177
msgid ""
"Each hardening feature can be enabled and disabled in the "
"B<DEB_BUILD_MAINT_OPTIONS> environment variable's B<hardening> value with "
"the \"+\" and \"-\" modifier. For example, to enable the \"pie\" feature and "
"disable the \"fortify\" feature you can do this in B<debian/rules>:"
msgstr ""

#. type: Plain text
#: dpkg-buildflags.1:179
#, no-wrap
msgid "  export DEB_BUILD_MAINT_OPTIONS=hardening=+pie,-fortify\n"
msgstr ""

#. type: Plain text
#: dpkg-buildflags.1:183
msgid ""
"The special feature B<all> can be used to enable or disable all hardening "
"features at the same time. Thus disabling everything and enabling only "
"\"format\" and \"fortify\" can be achieved with:"
msgstr ""

#. type: Plain text
#: dpkg-buildflags.1:185
#, no-wrap
msgid "  export DEB_BUILD_MAINT_OPTIONS=hardening=-all,+format,+fortify\n"
msgstr ""

#. type: TP
#: dpkg-buildflags.1:186
#, fuzzy, no-wrap
#| msgid "B<Format>"
msgid "B<format>"
msgstr "B<Format>"

#. type: Plain text
#: dpkg-buildflags.1:198
msgid ""
"This setting (enabled by default) adds B<-Wformat -Wformat-security -"
"Werror=format-security> to B<CFLAGS> and B<CXXFLAGS>. This will warn about "
"improper format string uses, and will fail when format functions are used in "
"a way that that represent possible security problems. At present, this warns "
"about calls to B<printf> and B<scanf> functions where the format string is "
"not a string literal and there are no format arguments, as in B<printf(foo);"
"> instead of B<printf(\"%s\", foo);> This may be a security hole if the "
"format string came from untrusted input and contains \"%n\"."
msgstr ""

#. type: TP
#: dpkg-buildflags.1:199
#, no-wrap
msgid "B<fortify>"
msgstr ""

#. type: Plain text
#: dpkg-buildflags.1:210
msgid ""
"This setting (enabled by default) adds B<-D_FORTIFY_SOURCE=2> to B<CFLAGS> "
"and B<CXXFLAGS>. During code generation the compiler knows a great deal of "
"information about buffer sizes (where possible), and attempts to replace "
"insecure unlimited length buffer function calls with length-limited ones. "
"This is especially useful for old, crufty code.  Additionally, format "
"strings in writable memory that contain '%n' are blocked. If an application "
"depends on such a format string, it will need to be worked around."
msgstr ""

#. type: Plain text
#: dpkg-buildflags.1:213
msgid ""
"Note that for this option to have any effect, the source must also be "
"compiled with B<-O1> or higher."
msgstr ""

#. type: TP
#: dpkg-buildflags.1:213
#, no-wrap
msgid "B<stackprotector>"
msgstr ""

#. type: Plain text
#: dpkg-buildflags.1:222
msgid ""
"This setting (enabled by default) adds B<-fstack-protector --param=ssp-"
"buffer-size=4> to B<CFLAGS> and B<CXXFLAGS>. This adds safety checks against "
"stack overwrites. This renders many potential code injection attacks into "
"aborting situations. In the best case this turns code injection "
"vulnerabilities into denial of service or into non-issues (depending on the "
"application)."
msgstr ""

#. type: Plain text
#: dpkg-buildflags.1:226
msgid ""
"This feature requires linking against glibc (or another provider of "
"B<__stack_chk_fail>), so needs to be disabled when building with B<-"
"nostdlib> or B<-ffreestanding> or similar."
msgstr ""

#. type: TP
#: dpkg-buildflags.1:227
#, fuzzy, no-wrap
#| msgid "B<regex>"
msgid "B<relro>"
msgstr "B<regex>"

#. type: Plain text
#: dpkg-buildflags.1:235
msgid ""
"This setting (enabled by default) adds B<-Wl,-z,relro> to B<LDFLAGS>.  "
"During program load, several ELF memory sections need to be written to by "
"the linker. This flags the loader to turn these sections read-only before "
"turning over control to the program. Most notably this prevents GOT "
"overwrite attacks."
msgstr ""

#. type: TP
#: dpkg-buildflags.1:236
#, no-wrap
msgid "B<bindnow>"
msgstr ""

#. type: Plain text
#: dpkg-buildflags.1:243
msgid ""
"This setting (disabled by default) adds B<-Wl,-z,now> to B<LDFLAGS>. During "
"program load, all dynamic symbols are resolved, allowing for the entire PLT "
"to be marked read-only (due to B<relro> above)."
msgstr ""

#. type: TP
#: dpkg-buildflags.1:244
#, no-wrap
msgid "B<pie>"
msgstr ""

#. type: Plain text
#: dpkg-buildflags.1:256
msgid ""
"This setting (disabled by default) adds B<-fPIE> to B<CFLAGS> and "
"B<CXXFLAGS>, and B<-fPIE -pie> to B<LDFLAGS>. Position Independent "
"Executable are needed to take advantage of Address Space Layout "
"Randomization, supported by some kernel versions. While ASLR can already be "
"enforced for data areas in the stack and heap (brk and mmap), the code areas "
"must be compiled as position-independent. Shared libraries already do this (-"
"fPIC), so they gain ASLR automatically, but binary .text regions need to be "
"build PIE to gain ASLR. When this happens, ROP (Return Oriented Programming) "
"attacks are much harder since there are no static locations to bounce off of "
"during a memory corruption attack."
msgstr ""

#. type: Plain text
#: dpkg-buildflags.1:259
msgid ""
"This is not compatible with B<-fPIC> so care must be taken when building "
"shared objects."
msgstr ""

#. type: Plain text
#: dpkg-buildflags.1:265
msgid ""
"Additionally, since PIE is implemented via a general register, some "
"architectures (most notably i386) can see performance losses of up to 15% in "
"very text-segment-heavy application workloads; most workloads see less than "
"1%. Architectures with more general registers (e.g. amd64)  do not see as "
"high a worst-case penalty."
msgstr ""

#. type: Plain text
#: dpkg-buildflags.1:268
#, fuzzy
#| msgid "Copyright \\(co 2008-2010 Rapha\\[:e]l Hertzog"
msgid "Copyright \\(co 2010-2011 Rapha\\[:e]l Hertzog"
msgstr "Copyright \\(co 2008-2010 Rapha\\[:e]l Hertzog"

#. type: Plain text
#: dpkg-buildflags.1:270
#, fuzzy
#| msgid "Copyright \\(co 2001 Joey Hess"
msgid "Copyright \\(co 2011 Kees Cook"
msgstr "Copyright \\(co 2001 Joey Hess"

#. type: TH
#: dpkg-buildpackage.1:1
#, no-wrap
msgid "dpkg-buildpackage"
msgstr "dpkg-buildpackage"

#. type: Plain text
#: dpkg-buildpackage.1:4
msgid "dpkg-buildpackage - build binary or source packages from sources"
msgstr ""
"dpkg-buildpackage - Construire depuis les sources des paquets binaires ou "
"sources"

#. type: Plain text
#: dpkg-buildpackage.1:8
#, fuzzy
#| msgid "B<dpkg-buildpackage> [I<options>]"
msgid "B<dpkg-buildpackage> [I<option>...]"
msgstr "B<dpkg-buildpackage> [I<options>]"

#. type: Plain text
#: dpkg-buildpackage.1:13
msgid ""
"B<dpkg-buildpackage> is a program that automates the process of building a "
"Debian package. It consists of the following steps:"
msgstr ""
"B<dpkg-buildpackage> est un programme qui permet d'automatiser la "
"construction d'un paquet Debian. Il comporte les étapes suivantes :"

#. type: IP
#: dpkg-buildpackage.1:13
#, no-wrap
msgid "B<1.>"
msgstr "B<1.>"

#. type: Plain text
#: dpkg-buildpackage.1:17
msgid ""
"It prepares the build environment by setting various environment variables "
"(see B<ENVIRONMENT>) and calls B<dpkg-source --before-build> (unless B<-T> "
"or B<--target> has been used)."
msgstr ""
"Préparation de l'environnement de compilation par positionnement de diverses "
"variables d'environnement (voir B<VARIABLES D'ENVIRONNEMENT>) et appel de "
"B<dpkg-source --before-build> (sauf si B<-T> ou B<--target> ont été "
"utilisés)."

#. type: IP
#: dpkg-buildpackage.1:17
#, no-wrap
msgid "B<2.>"
msgstr "B<2.>"

#. type: Plain text
#: dpkg-buildpackage.1:20
msgid ""
"It checks that the build-dependencies and build-conflicts are satisfied "
"(unless B<-d> is specified)."
msgstr ""
"Contrôle des dépendances de constructions et des conflits de construction "
"(non effectué si B<-d> est utilisé)."

#. type: IP
#: dpkg-buildpackage.1:20
#, no-wrap
msgid "B<3.>"
msgstr "B<3.>"

#. type: Plain text
#: dpkg-buildpackage.1:25
msgid ""
"If a specific target has been selected with the B<-T> or B<--target> option, "
"it calls that target and stops here. Otherwise it calls B<fakeroot debian/"
"rules clean> to clean the build-tree (unless B<-nc> is specified)."
msgstr ""
"Si une cible particuilère a été indiquée avec les options B<-T> ou B<--"
"target>, appel de cette cible et arrêt. Dans le cas contraire, appel de "
"B<fakeroot debian/rules clean> pour nettoyage de l'arborescence source (sauf "
"si B<-nc> a été utilisé)."

#. type: IP
#: dpkg-buildpackage.1:25
#, no-wrap
msgid "B<4.>"
msgstr "B<4.>"

#. type: Plain text
#: dpkg-buildpackage.1:29
msgid ""
"It calls B<dpkg-source -b> to generate the source package (unless a binary-"
"only build has been requested with B<-b>, B<-B> or B<-A>)."
msgstr ""
"Appel de B<dpkg-source -b> pour créer le paquet source (sauf si une "
"contruction binaire seule a été demandée avec B<-b>, B<-B> ou B<-A>)."

#. type: IP
#: dpkg-buildpackage.1:29
#, no-wrap
msgid "B<5.>"
msgstr "B<5.>"

#. type: Plain text
#: dpkg-buildpackage.1:36
#, fuzzy
#| msgid ""
#| "It calls B<debian/rules> B<build> followed by B<fakeroot debian/rules> "
#| "I<binary-target> (unless a source-only build has been requested with B<-"
#| "S>). Note that I<binary-target> is either B<binary> (default case, or if "
#| "B<-b> is specified)  or B<binary-arch> (if B<-B> is specified) or "
#| "B<binary-indep> (if B<-A> is specified)."
msgid ""
"It calls B<debian/rules> B<build> followed by B<fakeroot debian/rules> "
"I<binary-target> (unless a source-only build has been requested with B<-S>). "
"Note that I<binary-target> is either B<binary> (default case, or if B<-b> is "
"specified)  or B<binary-arch> (if B<-B> is specified) or B<binary-indep> (if "
"B<-A> is specified)."
msgstr ""
"Appel de B<debian/rules> B<build> suivi de B<fakeoot debian/rules> I<binary-"
"target> (sauf si une construction source seule a été demandée avec B<-S>). "
"Noter que I<binary-target> est soit B<binary> (cas par défaut, ou avec "
"utilisation de B<-b>) soit B<binary-arch> (si B<-B> est utilisé)."

#. type: IP
#: dpkg-buildpackage.1:36
#, no-wrap
msgid "B<6.>"
msgstr "B<6.>"

#. type: Plain text
#: dpkg-buildpackage.1:39
msgid ""
"It calls B<gpg> to sign the B<.dsc> file (if any, unless B<-us> is "
"specified)."
msgstr ""
"Appel de B<gpg> pour signature du fichier B<.dsc> (sauf si B<-us> est "
"utilisé)."

#. type: IP
#: dpkg-buildpackage.1:39
#, no-wrap
msgid "B<7.>"
msgstr "B<7.>"

#. type: Plain text
#: dpkg-buildpackage.1:43
msgid ""
"It calls B<dpkg-genchanges> to generate a B<.changes> file.  Many B<dpkg-"
"buildpackage> options are forwarded to B<dpkg-genchanges>."
msgstr ""
"Appel de B<dpkg-genchanges> pour créer un fichier B<.changes>. De nombreuses "
"options de B<dpkg-buildpackage> sont passées à B<dpkg-genchanges>."

#. type: IP
#: dpkg-buildpackage.1:43
#, no-wrap
msgid "B<8.>"
msgstr "B<8.>"

#. type: Plain text
#: dpkg-buildpackage.1:46
msgid ""
"It calls B<gpg> to sign the B<.changes> file (unless B<-uc> is specified)."
msgstr ""
"Appel de B<gpg> pour signer le fichier B<.changes> (sauf si B<-uc> est "
"utilisé)."

#. type: IP
#: dpkg-buildpackage.1:46
#, no-wrap
msgid "B<9.>"
msgstr "B<9.>"

#. type: Plain text
#: dpkg-buildpackage.1:49
msgid ""
"If B<-tc> is specified, it will call B<fakeroot debian/rules clean> again. "
"Finally it calls B<dpkg-source --after-build>."
msgstr ""
"Si B<-tc> est utilisé, appel de B<fakeroot debian/rules clean> à nouveau. "
"Enfin, appel de B<dpkg-source --after-build>."

#. type: TP
#: dpkg-buildpackage.1:51
#, no-wrap
msgid "B<-b>"
msgstr "B<-b>"

#. type: Plain text
#: dpkg-buildpackage.1:55
msgid ""
"Specifies a binary-only build, no source files are to be built and/or "
"distributed. Passed to B<dpkg-genchanges>."
msgstr ""
"Indique que seul un paquet binaire est à construire ; aucun fichier source "
"n'est à construire et/ou à distribuer. Passé à B<dpkg-genchanges>."

#. type: TP
#: dpkg-buildpackage.1:55 dpkg-checkbuilddeps.1:23
#, no-wrap
msgid "B<-B>"
msgstr "B<-B>"

#. type: Plain text
#: dpkg-buildpackage.1:59
msgid ""
"Specifies a binary-only build, limited to architecture dependent packages.  "
"Passed to B<dpkg-genchanges>."
msgstr ""
"Indique que seul un paquet binaire est à construire ; aucun fichier, "
"appartenant à un paquet binaire ne dépendant pas d'une architecture, n'est à "
"distribuer. Passé à B<dpkg-genchanges>."

#. type: TP
#: dpkg-buildpackage.1:59
#, no-wrap
msgid "B<-A>"
msgstr "B<-A>"

#. type: Plain text
#: dpkg-buildpackage.1:63
msgid ""
"Specifies a binary-only build, limited to architecture independent packages. "
"Passed to B<dpkg-genchanges>."
msgstr ""
"Indique que seul un paquet binaire est à construire ; aucun fichier, "
"appartenant à un paquet binaire ne dépendant pas d'une architecture, n'est à "
"distribuer. Passé à B<dpkg-genchanges>."

#. type: TP
#: dpkg-buildpackage.1:63 dpkg-genchanges.1:27
#, no-wrap
msgid "B<-S>"
msgstr "B<-S>"

#. type: Plain text
#: dpkg-buildpackage.1:67
msgid ""
"Specifies a source-only build, no binary packages need to be made.  Passed "
"to B<dpkg-genchanges>."
msgstr ""
"Ne construit qu'un paquet source, aucun paquet binaire ne sera construit. "
"Passé à B<dpkg-genchanges>."

#. type: TP
#: dpkg-buildpackage.1:67
#, no-wrap
msgid "B<-F>"
msgstr "B<-F>"

#. type: Plain text
#: dpkg-buildpackage.1:71
msgid ""
"Specifies a normal full build, binary and source packages will be built.  "
"This is the same as the default case when no build option is specified."
msgstr ""
"Construction complète où les paquets sources et binaires sont construits. "
"Identique au cas par défaut où aucune option de construction n'est indiquée."

#. type: Plain text
#: dpkg-buildpackage.1:73
msgid "B<--target=>I<target>"
msgstr "B<--target=>I<cible>"

#. type: Plain text
#: dpkg-buildpackage.1:75
msgid "B<--target >I<target>"
msgstr "B<--target >I<cible>"

#. type: Plain text
#: dpkg-buildpackage.1:77
msgid "B<-T>I<target>"
msgstr "B<-T>I<cible>"

#. type: Plain text
#: dpkg-buildpackage.1:83
msgid ""
"Calls B<debian/rules> I<target> after having setup the build environment and "
"stops the package build process here. If B<--as-root> is also given, then "
"the command is executed as root (see B<-r>). Note that official targets that "
"are required to be run as root by the Debian policy do not need this option."
msgstr ""
"Appelle B<debian/rules> I<cible> après avoir mis en place l'environnement de "
"construction, puis interrompt le processus de construction. Si B<--as-root> "
"est également utilisé, la commande sera exécutée avec les privilèges du "
"superutilisateur (voir B<-r>). Noter que les cibles dont l'exécution par "
"root est imposée par la Charte Debian n'ont pas besoin de cette option."

#. type: TP
#: dpkg-buildpackage.1:84
#, no-wrap
msgid "B<--as-root>"
msgstr "B<--as-root>"

#. type: Plain text
#: dpkg-buildpackage.1:88
msgid ""
"Only meaningful together with B<--target>. Requires that the target be run "
"with root rights."
msgstr ""
"N'est utile qu'avec B<--target>. Impose d'exécuter la cible avec les "
"privilèges du superutilisateur."

#. type: TP
#: dpkg-buildpackage.1:90 dpkg-genchanges.1:36
#, no-wrap
msgid "B<-si>"
msgstr "B<-si>"

#. type: TP
#: dpkg-buildpackage.1:92 dpkg-genchanges.1:42
#, no-wrap
msgid "B<-sa>"
msgstr "B<-sa>"

#. type: TP
#: dpkg-buildpackage.1:94 dpkg-genchanges.1:45
#, no-wrap
msgid "B<-sd>"
msgstr "B<-sd>"

#. type: TP
#: dpkg-buildpackage.1:96 dpkg-genchanges.1:49 dpkg-gencontrol.1:38
#: dpkg-gensymbols.1:377
#, no-wrap
msgid "B<-v>I<version>"
msgstr "B<-v>I<version>"

#. type: TP
#: dpkg-buildpackage.1:98 dpkg-genchanges.1:54
#, no-wrap
msgid "B<-C>I<changesdescription>"
msgstr "B<-C>I<description-des-changements>"

#. type: TP
#: dpkg-buildpackage.1:100 dpkg-genchanges.1:60
#, no-wrap
msgid "B<-m>I<maintaineraddress>"
msgstr "B<-m>I<adresse-du-responsable>"

#. type: TP
#: dpkg-buildpackage.1:102 dpkg-genchanges.1:66
#, no-wrap
msgid "B<-e>I<maintaineraddress>"
msgstr "B<-e>I<adresse-du-responsable>"

#. type: Plain text
#: dpkg-buildpackage.1:104
msgid "Passed unchanged to B<dpkg-genchanges>. See its manual page."
msgstr "Passé tel quel à B<dpkg-genchanges>. Voir sa page de manuel."

#. type: TP
#: dpkg-buildpackage.1:105
#, no-wrap
msgid "B<-a>I<architecture>"
msgstr "B<-a>I<architecture>"

#. type: Plain text
#: dpkg-buildpackage.1:110
msgid ""
"Specify the Debian architecture we build for. The architecture of the "
"machine we build on is determined automatically, and is also the default for "
"the host machine."
msgstr ""
"Précise l'architecture Debian pour laquelle on construit. L'architecture de "
"la machine sur laquelle on construit est automatiquement déterminée ; c'est "
"aussi l'architecture par défaut de la machine hôte."

#. type: Plain text
#: dpkg-buildpackage.1:115
msgid ""
"Specify the GNU system type we build for. It can be used in place of -a or "
"as a complement to override the default GNU system type of the target Debian "
"architecture."
msgstr ""
"Précise le type de système GNU pour lequel construire. Il peut être utilisé "
"à la place de B<-a> ou en tant que complément afin de remplacer le type de "
"système GNU par défaut de l'architecture Debian cible."

#. type: TP
#: dpkg-buildpackage.1:115
#, no-wrap
msgid "B<-j>I<jobs>"
msgstr "B<-j>I<jobs>"

#. type: Plain text
#: dpkg-buildpackage.1:126
msgid ""
"Number of jobs allowed to be run simultaneously, equivalent to the B<make>"
"(1)  option of the same name. Will add itself to the MAKEFLAGS environment "
"variable, which should cause all subsequent make invocations to inherit the "
"option. Also adds B<parallel=>I<jobs> to the DEB_BUILD_OPTIONS environment "
"variable which allows debian/rules files to use this information for their "
"own purposes.  The B<parallel=>I<jobs> in DEB_BUILD_OPTIONS environment "
"variable will override the B<-j> value if this option is given."
msgstr ""
"Nombre de processus simultanés qui peuvent être exécutés, équivalent à "
"l'option B<make>(1) du même nom. S'ajoutera tout seul à la variable "
"d'environnement MAKEFLAGS, afin que les appels suivants de make en héritent. "
"Ajoute aussi B<parallel=>I<jobs> à la variable d'environnement "
"DEB_BUILD_OPTIONS ce qui permet aux fichiers debian/rules d'utiliser cette "
"information pour leurs propres besoins. La présence de B<parallel=>I<jobs> "
"dans la variable d'environnement DEB_BUILD_OPTIONS remplace la valeur de "
"l'option B<-j> si elle est précisée."

#. type: TP
#: dpkg-buildpackage.1:126
#, no-wrap
msgid "B<-D>"
msgstr "B<-D>"

#. type: Plain text
#: dpkg-buildpackage.1:130
msgid ""
"Check build dependencies and conflicts; abort if unsatisfied. This is the "
"default behavior."
msgstr ""
"Vérifier les dépendances de constructions et les conflits ; se termine en "
"cas de problèmes. Ceci est le comportement par défaut."

#. type: TP
#: dpkg-buildpackage.1:130 dpkg-gensymbols.1:432
#, no-wrap
msgid "B<-d>"
msgstr "B<-d>"

#. type: Plain text
#: dpkg-buildpackage.1:133
msgid "Do not check build dependencies and conflicts."
msgstr "Ne pas vérifier les dépendances de constructions et les conflits."

#. type: TP
#: dpkg-buildpackage.1:133
#, no-wrap
msgid "B<-nc>"
msgstr "B<-nc>"

#. type: Plain text
#: dpkg-buildpackage.1:137
msgid ""
"Do not clean the source tree (implies B<-b> if nothing else has been "
"selected among B<-B>, B<-A> or B<-S>)."
msgstr ""
"Ne pas nettoyer l'arborescence des sources (implique B<-b> si aucune des "
"options B<-B>, B<-A> ou B<-S> n'est utilisée)."

#. type: TP
#: dpkg-buildpackage.1:137
#, no-wrap
msgid "B<-tc>"
msgstr "B<-tc>"

#. type: Plain text
#: dpkg-buildpackage.1:143
msgid ""
"Clean the source tree (using I<gain-root-command> B<debian/rules clean>)  "
"after the package has been built."
msgstr ""
"Nettoyage de l'arborescence (en utilisant I<commande-pour-obtenir-privilèges-"
"de-root> B<debian/rules clean>)  après la construction du paquet."

#. type: TP
#: dpkg-buildpackage.1:143
#, no-wrap
msgid "B<-r>I<gain-root-command>"
msgstr "B<-r>I<commande-pour-obtenir-privilèges-de-root>"

#. type: Plain text
#: dpkg-buildpackage.1:167
msgid ""
"When B<dpkg-buildpackage> needs to execute part of the build process as "
"root, it prefixes the command it executes with I<gain-root-command> if one "
"has been specified. Otherwise, if none has been specified, B<fakeroot> will "
"be used by default, if the command is present.  I<gain-root-command> should "
"start with the name of a program on the B<PATH> and will get as arguments "
"the name of the real command to run and the arguments it should take.  "
"I<gain-root-command> can include parameters (they must be space-separated) "
"but no shell metacharacters.  I<gain-root-command> might typically be "
"B<fakeroot>, B<sudo>, B<super> or B<really>.  B<su> is not suitable, since "
"it can only invoke the user's shell with B<-c> instead of passing arguments "
"individually to the command to be run."
msgstr ""
"Quand B<dpkg-buildpackage> doit exécuter une partie du processus de "
"construction en tant que root, il préfixe la commande exécutée par "
"I<commande-pour-obtenir-privilèges-de-root>, si une a été spécifié. Si ce "
"n'est pas le cas alors B<fakeroot> est utilisé par défaut. I<commande-pour-"
"obtenir-privilèges-de-root> doit débuter par le nom d'un programme "
"accessible depuis B<PATH> et avoir comme arguments le nom de la commande "
"réelle avec les arguments qu'elle doit prendre. I<commande-pour-obtenir-"
"privilèges-de-root> peut recevoir des paramètres (ils doivent être séparés "
"par des espaces) mais aucun « métacaractère » de l'interpréteur de "
"commandes. Classiquement I<commande-pour-obtenir-privilèges-de-root> devrait "
"être B<fakeroot>, B<sudo>, B<super> ou B<really>. B<su> ne va pas, puisque "
"ce programme peut uniquement utiliser l'interpréteur de commandes de "
"l'utilisateur avec l'option B<-c> au lieu de passer directement les "
"arguments à la commande qui doit être exécutée."

#. type: TP
#: dpkg-buildpackage.1:167
#, no-wrap
msgid "B<-R>I<rules-file>"
msgstr "B<-R>I<fichier-rules>"

#. type: Plain text
#: dpkg-buildpackage.1:178
msgid ""
"Building a Debian package usually involves invoking B<debian/rules> as a "
"command with several standard parameters. With this option it's possible to "
"use another program invocation to build the package (it can include space "
"separated parameters).  Alternatively it can be used to execute the standard "
"rules file with another make program (for example by using B</usr/local/bin/"
"make -f debian/rules> as I<rules-file>)."
msgstr ""
"Construire un paquet Debian implique généralement l'invocation de B<debian/"
"rules> comme une commande avec de nombreux paramètres standards. Avec cette "
"option, il est possible d'utiliser un autre programme à utiliser pour la "
"construction de paquet (ainsi que ses paramètres séparés par des espaces). "
"Une autre utilisation possible est d'exécuter le fichier rules standard avec "
"un autre programme de construction (par exemple en utilisant B</usr/local/"
"bin/make -f debian/rules> comme I<fichier-rules>)."

#. type: TP
#: dpkg-buildpackage.1:178
#, no-wrap
msgid "B<-p>I<sign-command>"
msgstr "B<-p>I<commande-de-signature>"

#. type: Plain text
#: dpkg-buildpackage.1:188
msgid ""
"When B<dpkg-buildpackage> needs to execute GPG or PGP to sign a source "
"control (B<.dsc>) file or a B<.changes> file it will run I<sign-command> "
"(searching the B<PATH> if necessary) instead of B<gpg>. I<sign-command> will "
"get all the arguments that B<pgp> would have gotten. If I<sign-command> "
"takes its arguments in GPG rather than PGP style, you should give the B<-"
"sgpg> option. I<sign-command> should not contain spaces or any other shell "
"metacharacters."
msgstr ""
"Quand B<dpkg-buildpackage> doit exécuter GPG ou PGP pour signer un fichier "
"source de contrôle (B<.dsc>) ou un fichier B<.changes>, il exécute "
"I<commande-de-signature> (recherché via B<PATH> si nécessaire) au lieu de "
"B<pgp>. I<commande-de-signature> reçoit tous les paramètres qu'aurait "
"reçuB<pgp>. Si I<commande-de-signature> veut recevoir ses paramètres à la "
"manière de GPG plutôt qu'à la manière de PGP, il faut utiliser l'option B<-"
"sgpg>. I<commande-de-signature> ne contiendra pas d'espace ni aucun "
"« métacaractère » de l'interpréteur de commandes."

#. type: TP
#: dpkg-buildpackage.1:188
#, no-wrap
msgid "B<-k>I<key-id>"
msgstr "B<-k>I<key-id>"

#. type: Plain text
#: dpkg-buildpackage.1:191
msgid "Specify a key-ID to use when signing packages."
msgstr "Précise une clé pour la signature des paquets."

#. type: TP
#: dpkg-buildpackage.1:191
#, no-wrap
msgid "B<-us>"
msgstr "B<-us>"

#. type: Plain text
#: dpkg-buildpackage.1:194
msgid "Do not sign the source package."
msgstr "Ne pas signer le paquet source."

#. type: TP
#: dpkg-buildpackage.1:194
#, no-wrap
msgid "B<-uc>"
msgstr "B<-uc>"

#. type: Plain text
#: dpkg-buildpackage.1:197
msgid "Do not sign the B<.changes> file."
msgstr "Ne pas signer le fichier B<.changes>."

#. type: Plain text
#: dpkg-buildpackage.1:199
msgid "B<-i>[I<regexp>]"
msgstr "B<-i>[I<regexp>]"

#. type: Plain text
#: dpkg-buildpackage.1:201
msgid "B<-I>I<[pattern]>"
msgstr "B<-I>I<[motif]>"

#. type: Plain text
#: dpkg-buildpackage.1:203
msgid "B<-s>[B<nsAkurKUR>]"
msgstr "B<-s>[B<nsAkurKUR>]"

#. type: Plain text
#: dpkg-buildpackage.1:205
msgid "B<-z>, B<-Z>"
msgstr "B<-z>, B<-Z>"

#. type: Plain text
#: dpkg-buildpackage.1:208
msgid "Passed unchanged to B<dpkg-source>. See its manual page."
msgstr ""
"Chaîne passée telle quelle à B<dpkg-source>. Voir la page de manuel "
"correspondante."

#. type: TP
#: dpkg-buildpackage.1:209
#, no-wrap
msgid "B<--source-option=>I<opt>"
msgstr "B<--source-option=>I<opt>"

#. type: Plain text
#: dpkg-buildpackage.1:212
msgid "Pass option I<opt> to B<dpkg-source>."
msgstr "Passe l'option I<opt> à B<dpkg-source>."

#. type: TP
#: dpkg-buildpackage.1:212
#, no-wrap
msgid "B<--changes-option=>I<opt>"
msgstr "B<--changes-option=>I<opt>"

#. type: Plain text
#: dpkg-buildpackage.1:215
msgid "Pass option I<opt> to B<dpkg-genchanges>."
msgstr "Passe l'option I<opt> à B<dpkg-genchanges>."

#. type: Plain text
#: dpkg-buildpackage.1:219
msgid "B<--admindir >I<dir>"
msgstr "B<--admindir >I<rép>"

#. type: Plain text
#: dpkg-buildpackage.1:222 dpkg-checkbuilddeps.1:23 dpkg-query.1:122
#: dpkg-shlibdeps.1:215 dpkg-trigger.1:43
msgid ""
"Change the location of the B<dpkg> database. The default location is I</var/"
"lib/dpkg>."
msgstr ""
"Change l'endroit où se trouve la base de données de B<dpkg>. Par défaut, "
"c'est I</var/lib/dpkg>."

#. type: TP
#: dpkg-buildpackage.1:223 dpkg-checkbuilddeps.1:33 dpkg-distaddfile.1:32
#: dpkg-deb.1:172 dpkg-genchanges.1:131 dpkg-gencontrol.1:121
#: dpkg-gensymbols.1:443 dpkg-name.1:58 dpkg-parsechangelog.1:33
#: dpkg-query.1:110 dpkg-scanpackages.1:96 dpkg-shlibdeps.1:215
#: dpkg-source.1:96 dpkg-split.1:126 dpkg-trigger.1:31
#, no-wrap
msgid "B<-h>, B<--help>"
msgstr "B<-h>, B<--help>"

#. type: Plain text
#: dpkg-buildpackage.1:234
#, fuzzy
#| msgid ""
#| "Even if B<dpkg-buildpackage> export some variables, B<debian/rules> "
#| "should not rely on their presence and should instead use the respective "
#| "interface to retrieve the needed values."
msgid ""
"Even if B<dpkg-buildpackage> exports some variables, B<debian/rules> should "
"not rely on their presence and should instead use the respective interface "
"to retrieve the needed values."
msgstr ""
"Même si B<dpkg-buildpackage> exporte certaines variables, B<debian/rules> ne "
"doit pas dépendre de leur présence, mais doit préférablement utiliser "
"l'interface correspondante pour retrouver les valeurs nécessaires."

#. type: SS
#: dpkg-buildpackage.1:234
#, no-wrap
msgid "Variables set by dpkg-architecture"
msgstr "Variables positionnées par B<dpkg-architecture>"

#. type: Plain text
#: dpkg-buildpackage.1:238
msgid ""
"B<dpkg-architecture> is called with the B<-a> and B<-t> parameters "
"forwarded. Any variable that is output by its B<-s> option is integrated in "
"the build environment."
msgstr ""
"B<dpkg-architecture> est lancé avec les paramètres de B<-a> and B<-t>. Toute "
"variable retournée par l'option B<-s> est intégrée dans l'environnement de "
"construction."

#. type: SS
#: dpkg-buildpackage.1:238
#, no-wrap
msgid "Compiler flags are no longer exported"
msgstr ""

#. type: Plain text
#: dpkg-buildpackage.1:243
msgid ""
"Between versions 1.14.17 and 1.16.1, B<dpkg-buildpackage> exported compiler "
"flags (B<CFLAGS>, B<CXXFLAGS>, B<FFLAGS>, B<CPPFLAGS> and B<LDFLAGS>) with "
"values as returned by B<dpkg-buildflags>. This is no longer the case."
msgstr ""

#. type: Plain text
#: dpkg-buildpackage.1:248
msgid ""
"It should be possible to specify spaces and shell metacharacters in and "
"initial arguments for I<gain-root-command> and I<sign-command>."
msgstr ""
"On devrait pouvoir mettre des espaces et des métacaractères du shell dans "
"les arguments initiaux de I<commande-pour-obtenir-privilèges-de-root> et "
"I<commande-de-signature>."

#. type: Plain text
#: dpkg-buildpackage.1:256
#, fuzzy
#| msgid ""
#| "B<dpkg-source>(1), B<dpkg-architecture>(1), B<dpkg-genchanges>(1), "
#| "B<fakeroot>(1), B<gpg>(1)."
msgid ""
"B<dpkg-source>(1), B<dpkg-architecture>(1), B<dpkg-buildflags>(1), B<dpkg-"
"genchanges>(1), B<fakeroot>(1), B<gpg>(1)."
msgstr ""
"B<dpkg-source>(1), B<dpkg-architecture>(1), B<dpkg-genchanges>(1), "
"B<fakeroot>(1), B<gpg>(1)."

#. type: Plain text
#: dpkg-buildpackage.1:265
msgid "Copyright \\(co 2008-2010 Rapha\\[:e]l Hertzog"
msgstr "Copyright \\(co 2008-2010 Rapha\\[:e]l Hertzog"

#. type: TH
#: dpkg-checkbuilddeps.1:1
#, no-wrap
msgid "dpkg-checkbuilddeps"
msgstr "dpkg-checkbuilddeps"

#. type: Plain text
#: dpkg-checkbuilddeps.1:4
msgid "dpkg-checkbuilddeps - check build dependencies and conflicts"
msgstr ""
"dpkg-checkbuilddeps - vérifier les dépendances et les conflits de "
"construction"

#. type: Plain text
#: dpkg-checkbuilddeps.1:9
#, fuzzy
#| msgid "B<dpkg-checkbuilddeps> [I<options>] [I<control-file>]"
msgid "B<dpkg-checkbuilddeps> [I<option>...] [I<control-file>]"
msgstr "B<dpkg-checkbuilddeps> [I<options>] [I<fichier-control>]"

#. type: Plain text
#: dpkg-checkbuilddeps.1:14
msgid ""
"This program checks the installed packages in the system against the build "
"dependencies and build conflicts listed in the control file. If any are not "
"met, it displays them and exits with a nonzero return code."
msgstr ""
"Ce programme vérifie si les dépendances et les conflits de construction "
"listés dans le fichier control existent dans les paquets installés sur le "
"système. S'il en existe, il les affiche et se termine avec un code de retour "
"différent de 0."

#. type: Plain text
#: dpkg-checkbuilddeps.1:17
#, fuzzy
#| msgid ""
#| "By default, I<debian/control> is read, but an alternate control filename "
#| "may be specified on the command line."
msgid ""
"By default, B<debian/control> is read, but an alternate control filename may "
"be specified on the command line."
msgstr ""
"Normalement, le fichier I<debian/control> est lu, mais un autre fichier peut "
"être indiqué sur la ligne de commande."

#. type: Plain text
#: dpkg-checkbuilddeps.1:27
msgid ""
"Ignore I<Build-Depends-Indep> lines. Use when no arch-indep packages will be "
"built."
msgstr ""
"Ignore les lignes I<Build-Depends-Indep>. À utiliser lorsque aucun paquet "
"indépendant d'une architecture ne va être construit."

#. type: TP
#: dpkg-checkbuilddeps.1:27
#, no-wrap
msgid "B<-d >I<build-depends-string>"
msgstr "B<-d >I<chaine-des-dépendances-pour-la-construction>"

#. type: TP
#: dpkg-checkbuilddeps.1:29
#, no-wrap
msgid "B<-c >I<build-conflicts-string>"
msgstr "B<-c >I<chaîne-des-conflits-de-construction>"

#. type: Plain text
#: dpkg-checkbuilddeps.1:33
msgid ""
"Use the given build dependencies/conflicts instead of those contained in the "
"I<debian/control> file."
msgstr ""
"Utilise les dépendances et conflits de construction donnés au lieu de ceux "
"indiqués dans le fichier I<debian/control>."

#. type: Plain text
#: dpkg-checkbuilddeps.1:42
msgid "Copyright \\(co 2001 Joey Hess"
msgstr "Copyright \\(co 2001 Joey Hess"

#. type: TH
#: dpkg-distaddfile.1:1
#, no-wrap
msgid "dpkg-distaddfile"
msgstr "dpkg-distaddfile"

#. type: Plain text
#: dpkg-distaddfile.1:4
msgid "dpkg-distaddfile - add entries to debian/files"
msgstr "dpkg-distaddfile - Ajouter une entrée au fichier debian/files."

#. type: Plain text
#: dpkg-distaddfile.1:8
#, fuzzy
#| msgid "B<dpkg-distaddfile> [I<options>]I< filename section priority>"
msgid "B<dpkg-distaddfile> [I<option>...]I< filename section priority>"
msgstr "B<dpkg-distaddfile> [I<options>]I< fichier section priorité>"

#. type: Plain text
#: dpkg-distaddfile.1:13
msgid "B<dpkg-distaddfile> adds an entry for a named file to B<debian/files>."
msgstr ""
"B<dpkg-distaddfile> ajoute une entrée pour un fichier dans B<debian/files>."

#. type: Plain text
#: dpkg-distaddfile.1:18
msgid ""
"It takes three non-option arguments, the filename and the section and "
"priority for the B<.changes> file."
msgstr ""
"Il prend trois arguments sans option, à savoir le nom du fichier, la section "
"et la priorité, pour le fichier B<.changes>."

#. type: Plain text
#: dpkg-distaddfile.1:26
msgid ""
"The filename should be specified relative to the directory where B<dpkg-"
"genchanges> will expect to find the files, usually B<..>, rather than being "
"a pathname relative to the current directory when B<dpkg-distaddfile> is run."
msgstr ""
"Le nom du fichier sera indiqué relativement au répertoire dans lequel B<dpkg-"
"genchanges> s'attend à trouver les fichiers, habituellement B<..>, plutôt "
"que relativement au répertoire dans lequel est exécuté B<dpkg-distaddfile.>"

#. type: TP
#: dpkg-distaddfile.1:28 dpkg-genchanges.1:103 dpkg-gencontrol.1:69
#, no-wrap
msgid "B<-f>I<fileslistfile>"
msgstr "B<-f>I<fichier/liste-des-fichiers>"

#. type: Plain text
#: dpkg-distaddfile.1:32 dpkg-gencontrol.1:73
msgid ""
"Read or write the list of files to be uploaded here, rather than using "
"B<debian/files>."
msgstr ""
"Lit ou écrit la liste des fichiers qui doivent être envoyés vers l'archive "
"dans ce fichier plutôt que dans le fichier B<debian/files>."

#. type: TP
#: dpkg-distaddfile.1:40 dpkg-genchanges.1:139 dpkg-gencontrol.1:134
#, no-wrap
msgid "B<debian/files>"
msgstr "B<debian/files>"

#. type: Plain text
#: dpkg-distaddfile.1:46
msgid ""
"The list of generated files which are part of the upload being prepared.  "
"B<dpkg-distaddfile> can be used to add additional files."
msgstr ""
"La liste des fichiers créés qui seront installés sur le serveur. B<dpkg-"
"distaddfile> peut être utilisé pour ajouter des fichiers supplémentaires."

#. type: TH
#: dpkg-deb.1:1
#, no-wrap
msgid "dpkg-deb"
msgstr "dpkg-deb"

#. type: Plain text
#: dpkg-deb.1:4
msgid "dpkg-deb - Debian package archive (.deb) manipulation tool"
msgstr ""
"dpkg-deb - outil pour la manipulation des archives (.deb) des paquets Debian"

#. type: Plain text
#: dpkg-deb.1:8
#, fuzzy
#| msgid "B<dpkg-deb> [I<options>] I<command>"
msgid "B<dpkg-deb> [I<option>...] I<command>"
msgstr "B<dpkg-deb> [I<options>] I<commande>"

#. type: Plain text
#: dpkg-deb.1:12
msgid ""
"B<dpkg-deb> packs, unpacks and provides information about Debian archives."
msgstr ""
"B<dpkg-deb> crée un paquet, dépaquette une archive ou donne des "
"renseignements sur les archives Debian"

#. type: Plain text
#: dpkg-deb.1:16
msgid "Use B<dpkg> to install and remove packages from your system."
msgstr "B<dpkg> sert à installer ou à supprimer des paquets sur le système."

#. type: Plain text
#: dpkg-deb.1:26
msgid ""
"You can also invoke B<dpkg-deb> by calling B<dpkg> with whatever options you "
"want to pass to B<dpkg-deb>. B<dpkg> will spot that you wanted B<dpkg-deb> "
"and run it for you."
msgstr ""
"Il est possible d'exécuter B<dpkg-deb> en appelant B<dpkg> avec les options "
"de B<dpkg-deb>. B<dpkg> comprend que B<dpkg-deb> est appelé et le lance."

#. type: TP
#: dpkg-deb.1:28
#, no-wrap
msgid "B<-b>, B<--build> I<directory> [I<archive>|I<directory>]"
msgstr "B<-b>, B<--build> I<répertoire> [I<archive>|I<répertoire>]"

#. type: Plain text
#: dpkg-deb.1:40
msgid ""
"Creates a debian archive from the filesystem tree stored in I<directory>. "
"I<directory> must have a B<DEBIAN> subdirectory, which contains the control "
"information files such as the control file itself. This directory will "
"I<not> appear in the binary package's filesystem archive, but instead the "
"files in it will be put in the binary package's control information area."
msgstr ""
"Crée une archive Debian avec l'arborescence contenue dans I<répertoire>. "
"I<répertoire> doit posséder un sous-répertoire B<DEBIAN> qui contient les "
"fichiers de contrôle tel que le fichier « control » lui-même. Ce répertoire "
"I<n'apparaît pas> dans l'archive de l'arborescence du paquet binaire ; mais "
"les fichiers qu'il contient sont mis dans la zone de contrôle du paquet "
"binaire."

#. type: Plain text
#: dpkg-deb.1:52
msgid ""
"Unless you specify B<--nocheck>, B<dpkg-deb> will read B<DEBIAN/control> and "
"parse it. It will check it for syntax errors and other problems, and display "
"the name of the binary package being built.  B<dpkg-deb> will also check the "
"permissions of the maintainer scripts and other files found in the B<DEBIAN> "
"control information directory."
msgstr ""
"À moins de préciser B<--nocheck>, B<dpkg-deb> lit B<DEBIAN/control> et "
"l'analyse. Il cherche les erreurs de syntaxe et d'autres problèmes "
"existants ; puis il affiche le nom du paquet binaire qu'il construit. B<dpkg-"
"deb> vérifie aussi les permissions des scripts du responsable et des autres "
"fichiers qu'il trouve dans le répertoire de contrôle B<DEBIAN>."

#. type: Plain text
#: dpkg-deb.1:59
msgid ""
"If no I<archive> is specified then B<dpkg-deb> will write the package into "
"the file I<directory>B<.deb>."
msgstr ""
"Quand aucune I<archive> n'est donnée, B<dpkg-deb> appelle le paquet "
"I<répertoire>B<.deb>."

#. type: Plain text
#: dpkg-deb.1:61
msgid "If the archive to be created already exists it will be overwritten."
msgstr "Si l'archive qui doit être créée existe déjà, elle est remplacée."

#. type: Plain text
#: dpkg-deb.1:77
msgid ""
"If the second argument is a directory then B<dpkg-deb> will write to the "
"file I<package>B<_>I<version>B<_>I<arch>B<.deb>, or "
"I<package>B<_>I<version>B<.deb> if no B<Architecture> field is present in "
"the package control file. When a target directory is specified, rather than "
"a file, the B<--nocheck> option may not be used (since B<dpkg-deb> needs to "
"read and parse the package control file to determine which filename to use)."
msgstr ""
"Quand le second argument est un répertoire, B<dpkg-deb> appelle le paquet "
"I<paquet>B<_>I<version>B<_>I<arch>B<.deb>,B< ou bien "
">I<paquet>B<_>I<version>B<.deb> si aucun champ B<Architecture> n'est présent "
"dans le fichier de contrôle du paquet. Quand un répertoire cible est précisé "
"à la place d'un fichier, l'option B<--nocheck> ne doit pas être utilisée "
"(puisque B<dpkg-deb> a besoin de lire et d'analyser le fichier de contrôle "
"du paquet pour connaître le nom de fichier à utiliser)."

#. type: TP
#: dpkg-deb.1:77
#, no-wrap
msgid "B<-I>, B<--info> I<archive> [I<control-file-name>...]"
msgstr "B<-I>, B<--info> I<archive> [I<nom-fichier-control>...]"

#. type: Plain text
#: dpkg-deb.1:80
msgid "Provides information about a binary package archive."
msgstr "Donne des renseignements sur une archive de paquet binaire."

#. type: Plain text
#: dpkg-deb.1:85
msgid ""
"If no I<control-file-name>s are specified then it will print a summary of "
"the contents of the package as well as its control file."
msgstr ""
"Quand aucun argument I<fichier-control> n'est précisé, un résumé du contenu "
"du paquet ainsi que son fichier « control » sont affichés."

#. type: Plain text
#: dpkg-deb.1:93
msgid ""
"If any I<control-file-name>s are specified then B<dpkg-deb> will print them "
"in the order they were specified; if any of the components weren't present "
"it will print an error message to stderr about each one and exit with status "
"2."
msgstr ""
"Quand un argument I<fichier-control> est précisé, B<dpkg-deb> affiche les "
"éléments dans l'ordre d'apparition ; quand l'un des éléments n'est pas "
"présent, il affiche un message d'erreur sur « stderr » et quitte avec un "
"code égal à 2."

#. type: TP
#: dpkg-deb.1:93
#, no-wrap
msgid "B<-W>, B<--show> I<archive>"
msgstr "B<-W>, B<--show> I<archive>"

#. type: Plain text
#: dpkg-deb.1:100
msgid ""
"Provides information about a binary package archive in the format specified "
"by the B<--showformat> argument. The default format displays the package's "
"name and version on one line, separated by a tabulator."
msgstr ""
"Cette option donne des informations sur l'archive d'un paquet binaire selon "
"le format spécifié par l'argument B<--showformat>. Le format par défaut "
"affiche le nom et la version du paquet sur une seule ligne, séparés par une "
"tabulation."

#. type: TP
#: dpkg-deb.1:100
#, no-wrap
msgid "B<-f>, B<--field> I<archive> [I<control-field-name>...]"
msgstr "B<-f>, B<--field> I<archive> [I<nom-du-champ-de-control>...]"

#. type: Plain text
#: dpkg-deb.1:103
msgid "Extracts control file information from a binary package archive."
msgstr ""
"Extrait les renseignements du fichier « control » de l'archive du paquet "
"binaire."

#. type: Plain text
#: dpkg-deb.1:107
msgid ""
"If no B<control-file-field>s are specified then it will print the whole "
"control file."
msgstr ""
"Quand aucun argument B<control-fichier-champ> n'est précisé, le fichier "
"« control » est affiché en entier."

#. type: Plain text
#: dpkg-deb.1:116
msgid ""
"If any are specified then B<dpkg-deb> will print their contents, in the "
"order in which they appear in the control file. If more than one B<control-"
"file-field> is specified then B<dpkg-deb> will precede each with its field "
"name (and a colon and space)."
msgstr ""
"Quand il y en a un, B<dpkg-deb> affiche ses éléments en suivant leur ordre "
"d'apparition dans le fichier « control ». Quand il y a plus d'un argument "
"B<control-fichier-field,> B<dpkg-deb> fait précéder chacun par le nom de son "
"champ (puis par un « deux-points » et une espace)."

#. type: Plain text
#: dpkg-deb.1:118
msgid "No errors are reported for fields requested but not found."
msgstr "L'absence des champs demandés ne provoque pas de message d'erreur."

#. type: TP
#: dpkg-deb.1:118
#, no-wrap
msgid "B<-c>, B<--contents> I<archive>"
msgstr "B<-c>, B<--contents> I<archive>"

#. type: Plain text
#: dpkg-deb.1:124
msgid ""
"Lists the contents of the filesystem tree archive portion of the package "
"archive. It is currently produced in the format generated by B<tar>'s "
"verbose listing."
msgstr ""
"Liste seulement l'arborescence des fichiers d'une archive de paquet. C'est "
"en fait le résultat produit par la commande B<tar> et une option "
"d'énumération verbeuse."

#. type: TP
#: dpkg-deb.1:124
#, no-wrap
msgid "B<-x>, B<--extract> I<archive directory>"
msgstr "B<-x>, B<--extract> I<archive répertoire>"

#. type: Plain text
#: dpkg-deb.1:128
msgid ""
"Extracts the filesystem tree from a package archive into the specified "
"directory."
msgstr ""
"Extrait l'arborescence des fichiers d'un paquet archive dans le répertoire "
"spécifié."

#. type: Plain text
#: dpkg-deb.1:134
msgid ""
"Note that extracting a package to the root directory will I<not> result in a "
"correct installation! Use B<dpkg> to install packages."
msgstr ""
"Il faut remarquer que l'extraction d'un paquet dans le répertoire root I<ne "
"produit pas> une installation correcte ! Utilisez B<dpkg> pour "
"l'installation des paquets."

#. type: Plain text
#: dpkg-deb.1:138
msgid ""
"I<directory> (but not its parents) will be created if necessary, and its "
"permissions modified to match the contents of the package."
msgstr ""
"I<répertoire> est créé si nécessaire (mais pas ses répertoires parents) et "
"ses permissions sont modifiées pour correspondre au cnotenu du paquet."

#. type: TP
#: dpkg-deb.1:138
#, no-wrap
msgid "B<-X>, B<--vextract> I<archive directory>"
msgstr "B<-X>, B<--vextract> I<archive répertoire>"

#. type: Plain text
#: dpkg-deb.1:145
#, fuzzy
#| msgid ""
#| "Is like B<--extract> (B<-x>)  but prints a listing of the files extracted "
#| "as it goes."
msgid ""
"Is like B<--extract> (B<-x>)  with B<--verbose> (B<-v>)  which prints a "
"listing of the files extracted as it goes."
msgstr ""
"Comme B<--extract> (B<-x>), mais affiche la liste des fichiers au fur et à "
"mesure qu'ils sont extraits."

#. type: TP
#: dpkg-deb.1:145
#, fuzzy, no-wrap
#| msgid "B<-x>, B<--extract> I<archive directory>"
msgid "B<-R>, B<--raw-extract> I<archive directory>"
msgstr "B<-x>, B<--extract> I<archive répertoire>"

#. type: Plain text
#: dpkg-deb.1:150
#, fuzzy
#| msgid ""
#| "Extracts the filesystem tree from a package archive into the specified "
#| "directory."
msgid ""
"Extracts the filesystem tree from a package archive into a specified "
"directory, and the control information files into a DEBIAN subdirectory of "
"the specified directory."
msgstr ""
"Extrait l'arborescence des fichiers d'un paquet archive dans le répertoire "
"spécifié."

#. type: Plain text
#: dpkg-deb.1:152 dpkg-deb.1:172
msgid ""
"The target directory (but not its parents) will be created if necessary."
msgstr ""
"Le répertoire cible est créé si nécessaire (mais pas ses répertoires "
"parents)."

#. type: TP
#: dpkg-deb.1:152
#, no-wrap
msgid "B<--fsys-tarfile> I<archive>"
msgstr "B<--fsys-tarfile> I<archive>"

#. type: Plain text
#: dpkg-deb.1:161
#, fuzzy
#| msgid ""
#| "Extracts the filesystem tree data from a binary package and sends it to "
#| "standard output in B<tar> format. Together with B<tar>(1)  this can be "
#| "used to extract a particular file from a package archive."
msgid ""
"Extracts the filesystem tree data from a binary package and sends it to "
"standard output in B<tar> format. Together with B<tar>(1)  this can be used "
"to extract a particular file from a package archive.  The input archive will "
"always be processed sequentially."
msgstr ""
"Extrait les données de l'arborescence d'un paquet binaire et les envoie sur "
"la sortie standard dans le format propre à la commande B<tar>. En combinant "
"cette option avec la commande B<tar>(1), on peut ainsi extraire un fichier "
"précis d'une archive de paquet."

#. type: TP
#: dpkg-deb.1:161
#, no-wrap
msgid "B<-e>, B<--control> I<archive> [I<directory>]"
msgstr "B<-e>, B<--control> I<archive> [I<répertoire>]"

#. type: Plain text
#: dpkg-deb.1:165
msgid ""
"Extracts the control information files from a package archive into the "
"specified directory."
msgstr ""
"Extrait les fichiers de contrôle d'une archive de paquet dans le répertoire "
"spécifié."

#. type: Plain text
#: dpkg-deb.1:169
msgid ""
"If no directory is specified then a subdirectory B<DEBIAN> in the current "
"directory is used."
msgstr ""
"Quand aucun répertoire n'est précisé, on utilise un sous-répertoire "
"B<DEBIAN> du répertoire actuel."

#. type: TP
#: dpkg-deb.1:180
#, no-wrap
msgid "B<--showformat=>I<format>"
msgstr "B<--showformat=>I<format>"

#. type: Plain text
#: dpkg-deb.1:185 dpkg-query.1:127
msgid ""
"This option is used to specify the format of the output B<--show> will "
"produce. The format is a string that will be output for each package listed."
msgstr ""
"Cette option sert à spécifier le format de sortie de l'option B<--show>. Ce "
"format sera utilisé pour chaque paquet listé."

#. type: Plain text
#: dpkg-deb.1:194
msgid ""
"The string may reference any status field using the \"${I<field-name>}\" "
"form, a list of the valid fields can be easily produced using B<-I> on the "
"same package. A complete explanation of the formatting options (including "
"escape sequences and field tabbing) can be found in the explanation of the "
"B<--showformat> option in B<dpkg-query>(1)."
msgstr ""
"Cet argument est une chaîne qui peut référencer tout champ avec la forme "
"${I<field-name>} ; une liste des champs valables peut être facilement "
"produite avec l'option B<-I> sur le même paquet. Une explication complète "
"des options de formatage (avec les séquences d'échappement et les espaces "
"entre les champs) se trouve dans la page B<dpkg-query>(1), option B<--"
"showformat>."

#. type: Plain text
#: dpkg-deb.1:196
msgid "The default for this field is \"${Package}\\et${Version}\\en\"."
msgstr "Par défaut, la valeur de ce champ est ${Package}\\et${Version}\\en."

#. type: TP
#: dpkg-deb.1:196
#, fuzzy, no-wrap
#| msgid "B<-z>I<compress_level>"
msgid "B<-z>I<compress-level>"
msgstr "B<-z>I<niveau_compression>"

#. type: Plain text
#: dpkg-deb.1:200
#, fuzzy
#| msgid ""
#| "Specify which compression level to pass to the compressor backend "
#| "program, when building a package."
msgid ""
"Specify which compression level to use on the compressor backend, when "
"building a package (default is 9 for gzip and bzip2, 6 for xz and lzma)."
msgstr ""
"Indique le niveau de compression à fournir au logiciel de compression appelé "
"en sous-main lors de la compression du paquet."

#. type: TP
#: dpkg-deb.1:200
#, fuzzy, no-wrap
#| msgid "B<-Z>I<compress_type>"
msgid "B<-Z>I<compress-type>"
msgstr "B<-Z>I<type_compression>"

#. type: Plain text
#: dpkg-deb.1:205
msgid ""
"Specify which compression type to use when building a package. Allowed "
"values are I<gzip>, I<xz>, I<bzip2>, I<lzma>, and I<none> (default is "
"I<gzip>)."
msgstr ""
"Indique le type de compression à utiliser lors de la construction d'un "
"paquet. Les valeurs autorisées sont I<gzip> (la valeur par défaut), I<xz>, "
"I<bzip2>, I<lzma> et I<none> (aucune compression)."

#. type: TP
#: dpkg-deb.1:205
#, no-wrap
msgid "B<--new>"
msgstr "B<--new>"

#. type: Plain text
#: dpkg-deb.1:210
msgid ""
"Ensures that B<dpkg-deb> builds a `new' format archive. This is the default."
msgstr ""
"S'assure que B<dpkg-deb> construit une archive avec le « nouveau » format. "
"C'est le comportement par défaut."

#. type: TP
#: dpkg-deb.1:210
#, no-wrap
msgid "B<--old>"
msgstr "B<--old>"

#. type: Plain text
#: dpkg-deb.1:218
msgid ""
"Forces B<dpkg-deb> to build an `old' format archive. This old archive format "
"is less easily parsed by non-Debian tools and is now obsolete; its only use "
"is when building packages to be parsed by versions of dpkg older than "
"0.93.76 (September 1995), which was released as i386 a.out only."
msgstr ""
"Oblige B<dpkg-deb> à construire une archive avec l'« ancien » format. Ce "
"format, moins facilement compris par les outils non-Debian, est maintenant "
"dépassé. On l'utilise seulement quand on construit des paquets qui doivent "
"être analysés par des versions de dpkg plus anciennes que la version 0.93.76 "
"(septembre 1995), qui fut produite uniquement pour le format « i386 a.out »."

#. type: TP
#: dpkg-deb.1:218
#, no-wrap
msgid "B<--nocheck>"
msgstr "B<--nocheck>"

#. type: Plain text
#: dpkg-deb.1:224
msgid ""
"Inhibits B<dpkg-deb --build>'s usual checks on the proposed contents of an "
"archive. You can build any archive you want, no matter how broken, this way."
msgstr ""
"Empêche les vérifications normales de B<dpkg-deb --build> quant au contenu "
"proposé d'une archive. De cette façon, on peut construire n'importe quelle "
"archive, aussi défectueuse soit-elle."

#. type: TP
#: dpkg-deb.1:224 start-stop-daemon.8:255
#, no-wrap
msgid "B<-v>, B<--verbose>"
msgstr "B<-v>, B<--verbose>"

#. type: Plain text
#: dpkg-deb.1:228
msgid ""
"Enables verbose output. This currently only affects B<--extract> making it "
"behave like B<--vextract>."
msgstr ""

#. type: TP
#: dpkg-deb.1:228
#, no-wrap
msgid "B<-D>, B<--debug>"
msgstr "B<-D>, B<--debug>"

#. type: Plain text
#: dpkg-deb.1:231
msgid "Enables debugging output. This is not very interesting."
msgstr "Permet les messages de débogage. Ce n'est pas très intéressant."

#. type: Plain text
#: dpkg-deb.1:237
msgid ""
"If set, B<dpkg-deb> will use it as the directory in which to create "
"temporary files and directories."
msgstr ""
"Si cette option est utilisée, B<dpkg> l'utilisera comme répertoire pour "
"créer les fichiers et répertoire temporaires."

#. type: Plain text
#: dpkg-deb.1:243
msgid ""
"B<dpkg-deb -I> I<package1>B<.deb> I<package2>B<.deb> does the wrong thing."
msgstr "B<dpkg-deb -I> I<paquet1>B<.deb> I<paquet2>B<.deb> se trompe."

#. type: Plain text
#: dpkg-deb.1:251
msgid ""
"There is no authentication on B<.deb> files; in fact, there isn't even a "
"straightforward checksum.  (Higher level tools like APT support "
"authenticating B<.deb> packages retrieved from a given repository, and most "
"packages nowadays provide an md5sum control file generated by debian/rules. "
"Though this is not directly supported by the lower level tools.)"
msgstr ""
"Il n'existe pas d'authentification des fichiers B<.deb>. Il n'existe même "
"pas de système de somme de contrôle immédiat. Les outils de haut niveau "
"comme APT gèrent l'authentification des paquets B<.deb> récupérés depuis un "
"dépôt donné et la plupart des paquets fournissent désormais une comme de "
"contrôle MD5 créée par debian/rules. Cependant, ceci n'est pas directement "
"géré par les outils de plus bas niveau."

#. type: Plain text
#: dpkg-deb.1:258
msgid ""
"Do not attempt to use just B<dpkg-deb> to install software! You must use "
"B<dpkg> proper to ensure that all the files are correctly placed and the "
"package's scripts run and its status and contents recorded."
msgstr ""
"N'essayez pas d'installer un logiciel avec B<dpkg-deb !> Vous devez utiliser "
"B<dpkg> pour être sûr que tous ses fichiers sont correctement mis en place, "
"que les scripts du paquet sont exécutés et que son contenu et son état sont "
"enregistrés."

#. type: Plain text
#: dpkg-deb.1:264
msgid "B<deb>(5), B<deb-control>(5), B<dpkg>(1), B<dselect>(1)."
msgstr "B<deb>(5), B<deb-control>(5), B<dpkg>(1), B<dselect>(1)."

#. type: TH
#: dpkg-divert.8:1
#, no-wrap
msgid "dpkg-divert"
msgstr "dpkg-divert"

#. type: Plain text
#: dpkg-divert.8:4
msgid "dpkg-divert - override a package's version of a file"
msgstr ""
"dpkg-divert - remplacer la version d'un fichier contenu dans un paquet."

#. type: Plain text
#: dpkg-divert.8:9
#, fuzzy
#| msgid "B<dpkg-divert> [I<options>] I<command>"
msgid "B<dpkg-divert> [I<option>...] I<command>"
msgstr "B<dpkg-divert> [I<options>] I<commande>"

#. type: Plain text
#: dpkg-divert.8:13
msgid ""
"B<dpkg-divert> is the utility used to set up and update the list of "
"diversions."
msgstr ""
"B<dpkg-divert> sert à créer et à mettre à jour la liste des détournements."

#. type: Plain text
#: dpkg-divert.8:23
msgid ""
"File I<diversions> are a way of forcing B<dpkg>(1)  not to install a file "
"into its location, but to a I<diverted> location. Diversions can be used "
"through the Debian package scripts to move a file away when it causes a "
"conflict. System administrators can also use it to override some package's "
"configuration file, or whenever some files (which aren't marked as "
"'conffiles') need to be preserved by dpkg, when installing a newer version "
"of a package which contains those files."
msgstr ""
"Le « détournement » de fichier est un moyen d'obliger B<dpkg>(1) à installer "
"un fichier non pas dans l'emplacement prévu mais dans un autre. Les scripts "
"des paquets Debian se servent de la déviation pour déplacer les fichiers qui "
"créent des conflits. Les administrateurs s'en servent, lors de "
"l'installation d'une version plus récente d'un paquet, pour remplacer les "
"fichiers de configuration de certains paquets, ou bien à chaque fois que des "
"fichiers (qui ne sont pas des « conffiles ») doivent être préservés par dpkg."

#. type: TP
#: dpkg-divert.8:25
#, no-wrap
msgid "[B<--add>] I<file>"
msgstr "[B<--add>] I<fichier>"

#. type: Plain text
#: dpkg-divert.8:28
msgid "Add a diversion for I<file>."
msgstr "Ajouter un détournement pour le I<fichier>."

#. type: TP
#: dpkg-divert.8:28 dpkg-statoverride.8:35
#, no-wrap
msgid "B<--remove>I< file>"
msgstr "B<--remove>I< fichier>"

#. type: Plain text
#: dpkg-divert.8:31
msgid "Remove a diversion for I<file>."
msgstr "Supprimer un détournement pour le I<fichier>."

#. type: TP
#: dpkg-divert.8:31
#, no-wrap
msgid "B<--list>I< glob-pattern>"
msgstr "B<--list> I<exp-reg>"

#. type: Plain text
#: dpkg-divert.8:34
msgid "List diversions matching I<glob-pattern>."
msgstr "Lister les détournements qui correspondent à I<exp-reg>."

#. type: TP
#: dpkg-divert.8:34
#, no-wrap
msgid "B<--listpackage>I< file>"
msgstr "B<--listpackage>I< fichier>"

#. type: Plain text
#: dpkg-divert.8:38
msgid ""
"Print the name of the package that diverts I<file>.  Prints LOCAL if I<file> "
"is locally diverted and nothing if I<file> is not diverted."
msgstr ""
"Afficher le nom du paquet qui dérive (« divert ») I<fichier>. Affiche LOCAL "
"si I<fichier> est dérivé localement et n'affiche rien si I<fichier> n'est "
"pas dérivé."

#. type: TP
#: dpkg-divert.8:38
#, no-wrap
msgid "B<--truename>I< file>"
msgstr "B<--truename>I< fichier>"

#. type: Plain text
#: dpkg-divert.8:41
msgid "Print the real name for a diverted file."
msgstr "Afficher le vrai nom d'un fichier détourné."

#. type: TP
#: dpkg-divert.8:43 dpkg-statoverride.8:52 dselect.1:44
#: update-alternatives.8:328
#, no-wrap
msgid "B<--admindir>I< directory>"
msgstr "B<--admindir>I< répertoire>"

#. type: Plain text
#: dpkg-divert.8:46
msgid ""
"Set the dpkg data directory to I<directory> (default: I</var/lib/dpkg>)."
msgstr ""
"Définir le répertoire de données de Dpkg comme I<répertoire> (par défaut "
"c'est I</var/lib/dpkg>)."

#. type: TP
#: dpkg-divert.8:46
#, no-wrap
msgid "B<--divert>I< divert-to>"
msgstr "B<--divert>I< détourner-dans>"

#. type: Plain text
#: dpkg-divert.8:50
msgid ""
"I<divert-to> is the location where the versions of I<file>, as provided by "
"other packages, will be diverted."
msgstr ""
"I<détourner-dans> est l'emplacement vers lequel les versions de I<fichier>, "
"tel qu'il est donné par d'autres paquets, seront détournées."

#. type: TP
#: dpkg-divert.8:50
#, no-wrap
msgid "B<--local>"
msgstr "B<--local>"

#. type: Plain text
#: dpkg-divert.8:56
msgid ""
"Specifies that all packages' versions of this file are diverted.  This "
"means, that there are no exceptions, and whatever package is installed, the "
"file is diverted. This can be used by an admin to install a locally modified "
"version."
msgstr ""
"Indique que toutes les versions de ce fichier sont détournées. Cela signifie "
"qu'il n'y a pas d'exception et quel que soit le paquet installé, ce fichier "
"sera détourné. Un administrateur peut par exemple installer une version "
"modifiée localement."

#. type: TP
#: dpkg-divert.8:56
#, no-wrap
msgid "B<--package>I< package>"
msgstr "B<--package>I< paquet>"

#. type: Plain text
#: dpkg-divert.8:61
msgid ""
"I<package> is the name of a package whose copy of I<file> will not be "
"diverted. i.e. I<file> will be diverted for all packages except I<package>."
msgstr ""
"I<paquet> est le nom du paquet dont la copie de I<fichier> ne sera pas "
"détournée. Autrement dit, I<fichier> sera détourné sauf s'il appartient à "
"I<paquet>."

#. type: TP
#: dpkg-divert.8:61 dpkg-statoverride.8:64 update-alternatives.8:350
#, no-wrap
msgid "B<--quiet>"
msgstr "B<--quiet>"

#. type: Plain text
#: dpkg-divert.8:64
msgid "Quiet mode, i.e. no verbose output."
msgstr "Mode silencieux, pas de bavardage."

#. type: TP
#: dpkg-divert.8:64
#, no-wrap
msgid "B<--rename>"
msgstr "B<--rename>"

#. type: Plain text
#: dpkg-divert.8:68
msgid ""
"Actually move the file aside (or back). B<dpkg-divert> will abort operation "
"in case the destination file already exists."
msgstr ""
"Met en fait le fichier de côté. Quand le fichier de destination existe, "
"B<dpkg-divert> interrompt l'opération."

#. type: TP
#: dpkg-divert.8:68
#, no-wrap
msgid "B<--test>"
msgstr "B<--test>"

#. type: Plain text
#: dpkg-divert.8:71
msgid "Test mode, i.e. don't actually perform any changes, just demonstrate."
msgstr "Mode de test, ne rien modifier réellement, seulement montrer."

#. type: SH
#: dpkg-divert.8:78
#, no-wrap
msgid "NOTES"
msgstr "NOTES"

#. type: Plain text
#: dpkg-divert.8:82
#, fuzzy
#| msgid ""
#| "When adding, default is B<--local> and B<--divert> I<E<lt>originalE<gt>."
#| "distrib>. When removing, B<--package> or B<--local> and B<--divert> must "
#| "match if specified."
msgid ""
"When adding, default is B<--local> and B<--divert> I<original>B<.distrib>. "
"When removing, B<--package> or B<--local> and B<--divert> must match if "
"specified."
msgstr ""
"Pour l'ajout, le défaut est B<--local> et B<--divert> I< E<lt>originalE<gt>."
"distrib>. Pour la suppression, B<--package> ou B<--local> et B<--divert> "
"doivent correspondre quand ils sont précisés."

#. type: Plain text
#: dpkg-divert.8:84
msgid "Directories can't be diverted with B<dpkg-divert>."
msgstr "On ne peut pas détourner des répertoires avec B<dpkg-divert>."

#. type: Plain text
#: dpkg-divert.8:90
msgid ""
"Care should be taken when diverting shared libraries, B<ldconfig>(8)  "
"creates a symbolic link based on the DT_SONAME field embedded in the "
"library.  Because ldconfig doesn't honour diverts (only dpkg does), the "
"symlink may end up pointing at the diverted library, if a diverted library "
"has the same SONAME as the undiverted one."
msgstr ""
"Il faut faire attention quand une bibliothèque partagée est détournée. "
"B<ldconfig>(8) crée un lien symbolique à partir du champ DT_SONAME embarqué "
"dans la bibliothèque. ldconfig ne connaît pas les détournements (seul dpkg "
"le fait), et si une bibliothèque détournée possède le même SONAME que la "
"bibliothèque non détournée, le lien symbolique peut pointer en fin de compte "
"sur la bibliothèque détournée."

#. type: Plain text
#: dpkg-divert.8:95
msgid ""
"To divert all copies of a I</usr/bin/example> to I</usr/bin/example.foo>, i."
"e. directs all packages providing I</usr/bin/example> to install it as I</"
"usr/bin/example.foo>, performing the rename if required:"
msgstr ""
"Pour détourner toutes les copies de I</usr/bin/example> vers I</usr/bin/"
"example.foo>, c'est-à-dire demander aux paquets qui fournissent I</usr/bin/"
"example> de l'installer dans I</usr/bin/example.foo>, en effectuant le "
"changement de nom si nécessaire :"

#. type: Plain text
#: dpkg-divert.8:97
msgid "dpkg-divert --divert /usr/bin/example.foo --rename /usr/bin/example"
msgstr "dpkg-divert --divert /usr/bin/example.foo --rename /usr/bin/example"

#. type: Plain text
#: dpkg-divert.8:99 dpkg-divert.8:109
msgid "To remove that diversion:"
msgstr "Pour supprimer ce détournement :"

#. type: Plain text
#: dpkg-divert.8:101
msgid "dpkg-divert --rename --remove /usr/bin/example"
msgstr "dpkg-divert --rename --remove /usr/bin/example"

#. type: Plain text
#: dpkg-divert.8:105
msgid ""
"To divert any package trying to install I</usr/bin/example> to I</usr/bin/"
"example.foo>, except your own I<wibble> package:"
msgstr ""
"Pour détourner un paquet qui veut installer I</usr/bin/example> dans I</usr/"
"bin/example.foo>, sauf votre propre paquet I<wibble> :"

#. type: Plain text
#: dpkg-divert.8:107
msgid ""
"dpkg-divert --package wibble --divert /usr/bin/example.foo --rename /usr/bin/"
"example"
msgstr ""
"dpkg-divert --package wibble --divert /usr/bin/example.foo --rename /usr/bin/"
"example"

#. type: Plain text
#: dpkg-divert.8:111
msgid "dpkg-divert --package wibble --rename --remove /usr/bin/example"
msgstr "dpkg-divert --package wibble --rename --remove /usr/bin/example"

#. type: TP
#: dpkg-divert.8:113 dpkg-query.1:205 dpkg-statoverride.8:69 dpkg-trigger.1:61
#: update-alternatives.8:355
#, fuzzy, no-wrap
#| msgid "B<DPKG_MAINTSCRIPT_ARCH>"
msgid "B<DPKG_ADMINDIR>"
msgstr "B<DPKG_MAINTSCRIPT_ARCH>"

#. type: Plain text
#: dpkg-divert.8:117 dpkg-query.1:209 dpkg-statoverride.8:73 dpkg-trigger.1:65
msgid ""
"If set and the B<--admindir> option has not been specified, it will be used "
"as the dpkg data directory."
msgstr ""

#. type: Plain text
#: dpkg-divert.8:121
msgid ""
"If set and the B<--local> and B<--package> options have not been specified, "
"B<dpkg-divert> will use it as the package name."
msgstr ""

#. type: TP
#: dpkg-divert.8:123
#, no-wrap
msgid "I</var/lib/dpkg/diversions>"
msgstr "I</var/lib/dpkg/diversions>"

#. type: Plain text
#: dpkg-divert.8:128
msgid ""
"File which contains the current list of diversions of the system. It is "
"located in the dpkg administration directory, along with other files "
"important to dpkg, such as I<status> or I<available>."
msgstr ""
"Ce fichier contient la liste des détournements en oeuvre sur le système. Il "
"se trouve dans le répertoire d'administration de dpkg, avec d'autres "
"fichiers importants comme « status » ou « available »."

#. type: Plain text
#: dpkg-divert.8:131
msgid ""
"Note: B<dpkg-divert> preserves the old copy of this file, with extension I<-"
"old>, before replacing it with the new one."
msgstr ""
"Note : B<dpkg-divert> préserve l'ancienne copie de ce fichier, avec "
"l'extension « -old », avant de la remplacer par la nouvelle."

#. type: Plain text
#: dpkg-divert.8:137 update-alternatives.8:496
msgid "Copyright \\(co 1995 Ian Jackson"
msgstr "Copyright \\(co 1995 Ian Jackson"

#. type: TH
#: dpkg-genchanges.1:1
#, no-wrap
msgid "dpkg-genchanges"
msgstr "dpkg-genchanges"

#. type: Plain text
#: dpkg-genchanges.1:4
msgid "dpkg-genchanges - generate Debian .changes files"
msgstr "dpkg-genchanges - Créer des fichiers « .changes »."

#. type: Plain text
#: dpkg-genchanges.1:8
#, fuzzy
#| msgid "B<dpkg-genchanges> [I<options>]"
msgid "B<dpkg-genchanges> [I<option>...]"
msgstr "B<dpkg-genchanges> [I<options>]"

#. type: Plain text
#: dpkg-genchanges.1:16
msgid ""
"B<dpkg-genchanges> reads information from an unpacked and built Debian "
"source tree and from the files it has generated and generates a Debian "
"upload control file (B<.changes> file)."
msgstr ""
"B<dpkg-genchanges> lit les informations à la fois dans une arborescence "
"debian dépaquetée et déjà construite et sur les fichiers qui ont été créés ; "
"puis il crée un fichier de contrôle pour la mise en place dans l'archive "
"Debian (c'est le fichier B<.changes>)."

#. type: TP
#: dpkg-genchanges.1:18
#, no-wrap
msgid "B<-b>, B<-B>, B<-A>"
msgstr "B<-b>, B<-B>, B<-A>"

#. type: Plain text
#: dpkg-genchanges.1:27
msgid ""
"Specifies that a binary-only build is taking place (no source files are to "
"be included). There's no distinction between B<-b>, B<-B> and B<-A>, the "
"produced B<.changes> file will include whatever files were created by the "
"B<binary-*> target(s) of the package being built."
msgstr ""
"Précise que l'on veut uniquement une construction du binaire (les fichiers "
"sources ne seront pas inclus). Il n'y a pas de distinction entre B<-b>, B<-"
"B> et B<-A> ; le fichier produit B<.changes> reprendra tous les fichiers "
"créés par les cibles B<binary-*> du paquet en cours de construction.."

#. type: Plain text
#: dpkg-genchanges.1:31
msgid ""
"Specifies that only the source should be uploaded (no binary packages will "
"be included)."
msgstr ""
"Ne construit que le paquet source (aucun paquet binaire ne sera construit)."

#. type: Plain text
#: dpkg-genchanges.1:36
msgid ""
"The B<-s>I<x> options control whether the original source archive is "
"included in the upload if any source is being generated (i.e.  B<-b> or B<-"
"B> haven't been used)."
msgstr ""
"Les options B<-s>I<x> contrôlent si l'archive source d'origine est incluse "
"dans l'installation produite si un paquet source est créé (cad. que les "
"options B<-b> ou B<-B> n'ont pas été utilisées)."

#. type: Plain text
#: dpkg-genchanges.1:42
msgid ""
"By default, or if specified, the original source will be included only if "
"the upstream version number (the version without epoch and without Debian "
"revision) differs from the upstream version number of the previous changelog "
"entry."
msgstr ""
"Par défaut, ou quand l'option est indiquée, les sources d'origine sont "
"incluses uniquement si le numéro de version majeur (c.à.d. la version sans "
"les parties epoch et « révision Debian ») diffère de la version précédente "
"indiquée dans le fichier de changelog."

#. type: Plain text
#: dpkg-genchanges.1:45
msgid "Forces the inclusion of the original source."
msgstr "Force l'inclusion des sources d'origine."

#. type: Plain text
#: dpkg-genchanges.1:48
msgid "Forces the exclusion of the original source and includes only the diff."
msgstr ""
"Force l'exclusion des sources d'origine et inclut seulement le « diff »."

#. type: Plain text
#: dpkg-genchanges.1:54
msgid ""
"Causes changelog information from all versions strictly later than "
"I<version> to be used."
msgstr ""
"Force l'utilisation des informations contenues dans le fichier « changelog » "
"et qui concernent toutes les versions strictement plus récentes que "
"I<version>."

#. type: Plain text
#: dpkg-genchanges.1:60
msgid ""
"Read the description of the changes from the file I<changesdescription> "
"rather than using the information from the source tree's changelog file."
msgstr ""
"Lit la description des changements dans le fichier I<description-des-"
"changements> plutôt que dans le fichier « changelog » de l'arborescence "
"source."

#. type: Plain text
#: dpkg-genchanges.1:66
msgid ""
"Use I<maintaineraddress> as the name and email address of the maintainer for "
"this package, rather than using the information from the source tree's "
"control file."
msgstr ""
"Utilise I<adresse-du-responsable> comme nom et adresse électronique du "
"responsable de paquet plutôt que d'utiliser les informations contenues dans "
"le fichier « control » de l'arborescence source."

#. type: Plain text
#: dpkg-genchanges.1:72
msgid ""
"Use I<maintaineraddress> as the name and email address of the maintainer for "
"this upload, rather than using the information from the source tree's "
"changelog."
msgstr ""
"Utilise I<adresse-du-responsable> comme nom et adresse électronique du "
"responsable de paquet pour cette mise en place, plutôt que d'utiliser les "
"informations contenues dans le fichier « changelog » de l'arborescence "
"source."

#. type: TP
#: dpkg-genchanges.1:72 dpkg-gencontrol.1:41 dpkg-source.1:127
#, no-wrap
msgid "B<-V>I<name>B<=>I<value>"
msgstr "B<-V>I<nom>B<=>I<valeur>"

#. type: Plain text
#: dpkg-genchanges.1:76 dpkg-source.1:131
msgid ""
"Set an output substitution variable.  See B<deb-substvars>(5) for a "
"discussion of output substitution."
msgstr ""
"Fixe la valeur d'une variable de substitution. Consultez B<deb-substvars>(5) "
"pour une discussion sur la valeur de substitution."

#. type: TP
#: dpkg-genchanges.1:76 dpkg-gencontrol.1:45 dpkg-shlibdeps.1:169
#: dpkg-source.1:131
#, no-wrap
msgid "B<-T>I<substvarsfile>"
msgstr "B<-T>I<fichier/substvars>"

#. type: Plain text
#: dpkg-genchanges.1:86
msgid ""
"Read substitution variables in I<substvarsfile>; the default is B<debian/"
"substvars>.  No variable substitution is done on any of the fields that are "
"output, however the special variable I<Format> will override the field of "
"the same name. This option can be used multiple times to read substitution "
"variables from multiple files."
msgstr ""
"Lecture des variables de substitution depuis I<substvarsfile> ; la valeur "
"par défaut est B<debian/substvars>. Aucune substitution de variable n'est "
"faite sur les champs de sorties, cependant la variable spéciale I<Format> "
"remplacera le champs qui porte le même nom. Cette option peut être utilisée "
"plusieurs fois pour lire les variables de substitution depuis plusieurs "
"fichiers."

#. type: TP
#: dpkg-genchanges.1:87 dpkg-gencontrol.1:53 dpkg-source.1:137
#, no-wrap
msgid "B<-D>I<field>B<=>I<value>"
msgstr "B<-D>I<champ>B<=>I<valeur>"

#. type: Plain text
#: dpkg-genchanges.1:90 dpkg-gencontrol.1:56 dpkg-source.1:140
msgid "Override or add an output control file field."
msgstr "Remplace ou ajoute en sortie un champ dans le fichier de contrôle."

#. type: TP
#: dpkg-genchanges.1:90 dpkg-gencontrol.1:56 dpkg-source.1:140
#, no-wrap
msgid "B<-U>I<field>"
msgstr "B<-U>I<champ>"

#. type: Plain text
#: dpkg-genchanges.1:93 dpkg-gencontrol.1:59 dpkg-source.1:143
msgid "Remove an output control file field."
msgstr "Supprime en sortie un champ dans le fichier de contrôle."

#. type: TP
#: dpkg-genchanges.1:93 dpkg-gencontrol.1:59 dpkg-source.1:104
#, no-wrap
msgid "B<-c>I<controlfile>"
msgstr "B<-c>I<fichier/control>"

#. type: Plain text
#: dpkg-genchanges.1:98 dpkg-gencontrol.1:64
msgid ""
"Specifies the main source control file to read information from. The default "
"is B<debian/control>."
msgstr ""
"Indique le principal fichier de contrôle des sources où trouver des "
"renseignements. Par défaut, c'est le fichier B<debian/control>."

#. type: TP
#: dpkg-genchanges.1:98 dpkg-gencontrol.1:64 dpkg-parsechangelog.1:16
#: dpkg-source.1:111
#, no-wrap
msgid "B<-l>I<changelogfile>"
msgstr "B<-l>I<fichier/changelog>"

#. type: Plain text
#: dpkg-genchanges.1:103 dpkg-gencontrol.1:69 dpkg-parsechangelog.1:21
msgid ""
"Specifies the change log file to read information from. The default is "
"B<debian/changelog>."
msgstr ""
"Indique le fichier d'enregistrement des changements où trouver des "
"renseignements. Par défaut, c'est le fichier B<debian/changelog>."

#. type: Plain text
#: dpkg-genchanges.1:107
msgid ""
"Read the list of files to be uploaded here, rather than using B<debian/"
"files>."
msgstr ""
"Lit ou écrit la liste des fichiers qui doivent être envoyés vers l'archive "
"dans ce fichier plutôt que dans le fichier B<debian/files>."

#. type: TP
#: dpkg-genchanges.1:107 dpkg-gencontrol.1:73 dpkg-parsechangelog.1:21
#: dpkg-source.1:118
#, no-wrap
msgid "B<-F>I<changelogformat>"
msgstr "B<-F>I<format-du-changelog>"

#. type: Plain text
#: dpkg-genchanges.1:112 dpkg-gencontrol.1:78 dpkg-parsechangelog.1:26
#: dpkg-source.1:123
msgid ""
"Specifies the format of the changelog. By default the format is read from a "
"special line near the bottom of the changelog or failing that defaults to "
"the debian standard format."
msgstr ""
"Donne le format du fichier changelog. Par défaut, c'est une ligne spéciale, "
"près de la fin du fichier, qui l'indique ; sinon, on utilise le format "
"classique B<debian>."

#. type: TP
#: dpkg-genchanges.1:112
#, no-wrap
msgid "B<-u>I<uploadfilesdir>"
msgstr "B<-u>I<répertoire-des-fichiers-à-installer>"

#. type: Plain text
#: dpkg-genchanges.1:123
msgid ""
"Look for the files to be uploaded in I<uploadfilesdir> rather than B<..> "
"(B<dpkg-genchanges> needs to find these files so that it can include their "
"sizes and checksums in the B<.changes> file)."
msgstr ""
"Cherche les fichiers à installer dans I<répertoire-des-fichiers-à-installer> "
"plutôt que dans B<..> (B<dpkg-genchanges> doit trouver ces fichiers de "
"manière à mettre leurs tailles et leurs sommes de contrôle dans le fichier "
"B<.changes.)>"

#. type: TP
#: dpkg-genchanges.1:123 dpkg-gensymbols.1:421
#, no-wrap
msgid "B<-q>"
msgstr "B<-q>"

#. type: Plain text
#: dpkg-genchanges.1:131
msgid ""
"Usually B<dpkg-genchanges> will produce informative messages on standard "
"error, for example about how many of the package's source files are being "
"uploaded.  B<-q> suppresses these messages."
msgstr ""
"B<dpkg-genchanges> affiche habituellement des messages d'information sur la "
"sortie d'erreur standard ; par exemple, combien de fichiers source du paquet "
"sont en cours d'installation. B<-q> supprime ces messages."

#. type: Plain text
#: dpkg-genchanges.1:147
msgid ""
"The list of generated files which are part of the upload being prepared.  "
"B<dpkg-genchanges> reads the data here when producing a B<.changes> file."
msgstr ""
"La liste des fichiers créés qui seront installés sur le serveur. B<dpkg-"
"genchanges> lit dans ce fichier les données nécessaires à la création du "
"fichier B<.changes>."

#. type: TH
#: dpkg-gencontrol.1:1
#, no-wrap
msgid "dpkg-gencontrol"
msgstr "dpkg-gencontrol"

#. type: Plain text
#: dpkg-gencontrol.1:4
msgid "dpkg-gencontrol - generate Debian control files"
msgstr "dpkg-gencontrol - Créer des fichiers de contrôle Debian."

#. type: Plain text
#: dpkg-gencontrol.1:8
#, fuzzy
#| msgid "B<dpkg-gencontrol> [I<options>]"
msgid "B<dpkg-gencontrol> [I<option>...]"
msgstr "B<dpkg-gencontrol> [I<options>]"

#. type: Plain text
#: dpkg-gencontrol.1:14
msgid ""
"B<dpkg-gencontrol> reads information from an unpacked Debian source tree and "
"generates a binary package control file (which defaults to debian/tmp/DEBIAN/"
"control); during this process it will simplify the relation fields."
msgstr ""
"B<dpkg-gencontrol> lit les informations contenues dans une arborescence "
"Debian dépaquetée et crée le fichier « control » d'un paquet binaire (par "
"défaut, c'est le fichier debian/tmp/DEBIAN/control) ; durant cette action il "
"y a simplification des champs de relations."

#. type: Plain text
#: dpkg-gencontrol.1:27
msgid ""
"Thus I<Pre-Depends>, I<Depends>, I<Recommends> and I<Suggests> are "
"simplified in this order by removing dependencies which are known to be true "
"according to the stronger dependencies already parsed. It will also remove "
"any self-dependency (in fact it will remove any dependency which evaluates "
"to true given the current version of the package as installed). Logically it "
"keeps the intersection of multiple dependencies on the same package. The "
"order of dependencies is preserved as best as possible: if any dependency "
"must be discarded due to another dependency appearing further in the field, "
"the superseding dependency will take the place of the discarded one."
msgstr ""
"I<Pre-Depends>, I<Depends>, I<Recommends> et I<Suggests> sont simplifiés "
"dans cet ordre supprimer les dépendances qui sont connues pour être vérifié "
"par la plus forte dépendance déjà traitée. Sont aussi supprimées toutes les "
"auto-dépendances (dans les faits, cela supprime les dépendances qui sont "
"déjà validées par la version du paquet déjà installé). Logiquement, il "
"conserve les correspondances entre plusieurs dépendances dans le même "
"paquet. L'ordre des dépendances est conservé du mieux possible : si une "
"dépendance doit être supprimée à cause d'une autre dépendance qui se trouve "
"dans un champs suivant, la dépendance remplaçante prendra la place de celle "
"éliminée."

#. type: Plain text
#: dpkg-gencontrol.1:32
msgid ""
"The other relation fields (I<Enhances>, I<Conflicts>, I<Breaks>, I<Replaces> "
"and I<Provides>)  are also simplified individually by computing the union of "
"the various dependencies when a package is listed multiple times in the "
"field."
msgstr ""
"Les autre champs (I<Enhances>, I<Conflicts>, I<Breaks>, I<Replaces> et "
"I<Provides>) sont également simplifiés individuellement par l'analyse des "
"différentes dépendances lorsque un paquet est indiqué plusieurs fois dans le "
"champ."

#. type: Plain text
#: dpkg-gencontrol.1:36
msgid ""
"B<dpkg-gencontrol> also adds an entry for the binary package to B<debian/"
"files>."
msgstr ""
"B<dpkg-gencontrol> ajoute aussi une entrée pour un paquet binaire dans "
"B<debian/files>."

#. type: Plain text
#: dpkg-gencontrol.1:41
msgid "Sets the version number of the binary package which will be generated."
msgstr "Fixe le numéro de version du paquet binaire qui sera créé."

#. type: Plain text
#: dpkg-gencontrol.1:45
msgid ""
"Set an output substitution variable. See B<deb-substvars>(5) for discussion "
"of output substitution."
msgstr ""
"Fixe la valeur d'une variable de substitution. Consultez B<deb-substvars>(5) "
"pour une discussion sur la valeur de substitution."

#. type: Plain text
#: dpkg-gencontrol.1:53
msgid ""
"Read substitution variables in I<substvarsfile>; the default is B<debian/"
"substvars>.  This option can be used multiple times to read substitution "
"variables from multiple files."
msgstr ""
"Lecture des variables de substitution depuis I<substvarsfile> ; la valeur "
"par défaut est B<debian/substvars>. Cette option peut être utilisée "
"plusieurs fois pour lire les variables de substitution depuis plusieurs "
"fichiers."

#. type: TP
#: dpkg-gencontrol.1:78 dpkg-gensymbols.1:373
#, no-wrap
msgid "B<-p>I<package>"
msgstr "B<-p>I<paquet>"

#. type: Plain text
#: dpkg-gencontrol.1:85
msgid ""
"Generate information for the binary package I<package>.  If the source "
"control file lists only one binary package then this option may be omitted; "
"otherwise it is essential to select which binary package's information to "
"generate."
msgstr ""
"Cette option produit les informations concernant le paquet binaire I<paquet>."
"Si le fichier de contrôle des sources liste un seul paquet binaire, on peut "
"omettre cette option ; sinon il est indispensable d'indiquer le paquet pour "
"lequel on veut produire les informations."

#. type: TP
#: dpkg-gencontrol.1:85
#, no-wrap
msgid "B<-n>I<filename>"
msgstr "B<-n>I<nom-de-fichier>"

#. type: Plain text
#: dpkg-gencontrol.1:90
msgid ""
"Assume the filename of the package will be I<filename> instead of the normal "
"package_version_arch.deb filename."
msgstr ""
"Le nom du paquet est I<nom-de-fichier> au lieu de l'habituel : "
"paquet_version_arch.deb."

#. type: TP
#: dpkg-gencontrol.1:90
#, no-wrap
msgid "B<-is>, B<-ip>, B<-isp>"
msgstr "B<-is>, B<-ip>, B<-isp>"

#. type: Plain text
#: dpkg-gencontrol.1:99
msgid ""
"These options are ignored for compatibility with older versions of dpkg-dev "
"but are now deprecated. Previously they were used to tell dpkg-gencontrol to "
"include the Section and Priority fields in the control file. This is now the "
"default behaviour. If you want to get the old behaviour you can use the B<-"
"U> option to delete the fields from the control file."
msgstr ""
"Ces options, conservées pour compatibilité avec les anciennes versions de "
"dpkg-dev, sont maintenant déconseillées. Elles servaient à dire à dpkg-"
"gencontrol d'inclure les champs « Section » et « Priority » dans le fichier "
"« control ». C'est maintenant le comportement par défaut. Si vous voulez "
"l'ancien comportement, vous pouvez utiliser l'option B<-U> pour supprimer "
"ces champs du fichier « control »."

#. type: TP
#: dpkg-gencontrol.1:99
#, no-wrap
msgid "B<-P>I<packagebuilddir>"
msgstr "B<-P>I<rep-de-construction-du-paquet>"

#. type: Plain text
#: dpkg-gencontrol.1:112
msgid ""
"Tells B<dpkg-source> that the package is being built in I<packagebuilddir> "
"instead of B<debian/tmp>.  This value is used to find the default value of "
"the B<Installed-Size> substitution variable and control file field (using "
"B<du>), and for the default location of the output file."
msgstr ""
"Cette option indique à B<dpkg-source> que le répertoire de construction du "
"paquet est I<rep-de-construction-du-paquet> au lieu de B<debian/tmp.> Cette "
"valeur sert à trouver la valeur par défaut de la variable de substitution "
"B<Installed-Size> et celle du champ correspondant dans le fichier de "
"contrôle (on utilise la commande B<du>) ; elle donne aussi l'emplacement par "
"défaut pour le fichier de sortie."

#. type: TP
#: dpkg-gencontrol.1:112 dpkg-gensymbols.1:391 dpkg-shlibdeps.1:150
#, no-wrap
msgid "B<-O>"
msgstr "B<-O>"

#. type: Plain text
#: dpkg-gencontrol.1:121
msgid ""
"Print the control file to standard output, rather than to B<debian/tmp/"
"DEBIAN/control> (or I<packagebuilddir>B</DEBIAN/control> if B<-P> was used)."
msgstr ""
"Affiche le fichier de contrôle sur la sortie standard au lieu de B<debian/"
"tmp/DEBIAN/control> (ou I<rep-de-construction-du-paquet>B</DEBIAN/control> "
"si l'option B<-P> a été utilisée)."

#. type: TP
#: dpkg-gencontrol.1:129
#, no-wrap
msgid "B<debian/control>"
msgstr "B<debian/control>"

#. type: Plain text
#: dpkg-gencontrol.1:134
msgid ""
"The main source control information file, giving version-independent "
"information about the source package and the binary packages it can produce."
msgstr ""
"Le principal fichier d'information sur les sources ; il donne des "
"renseignements qui ne dépendent pas d'une version concernant le paquet "
"source et les paquets binaires qui peuvent être créés."

#. type: Plain text
#: dpkg-gencontrol.1:141
msgid ""
"The list of generated files which are part of the upload being prepared.  "
"B<dpkg-gencontrol> adds the presumed filenames of binary packages whose "
"control files it generates here."
msgstr ""
"La liste des fichiers créés qui font partie de ceux qui seront installés sur "
"le serveur. B<dpkg-gencontrol> ajoute les noms présumés des fichiers des "
"paquets binaires à partir des fichiers « control » qu'il crée."

#. type: Plain text
#: dpkg-gencontrol.1:148 dpkg-shlibdeps.1:337
msgid "Copyright \\(co 2007-2008 Rapha\\[:e]l Hertzog"
msgstr "Copyright \\(co 2007-2008 Rapha\\[:e]l Hertzog"

#. type: TH
#: dpkg-gensymbols.1:2
#, no-wrap
msgid "dpkg-gensymbols"
msgstr "dpkg-gensymbols"

#. type: Plain text
#: dpkg-gensymbols.1:5
msgid ""
"dpkg-gensymbols - generate symbols files (shared library dependency "
"information)"
msgstr ""
"dpkg-gensymbols - création des fichiers de symboles (information destinée "
"aux dépendances de bibliothèques partagées)"

#. type: Plain text
#: dpkg-gensymbols.1:9
#, fuzzy
#| msgid "B<dpkg-gensymbols> [I<options>]"
msgid "B<dpkg-gensymbols> [I<option>...]"
msgstr "B<dpkg-gensymbols> [I<options>]"

#. type: Plain text
#: dpkg-gensymbols.1:16
msgid ""
"B<dpkg-gensymbols> scans a temporary build tree (debian/tmp by default) "
"looking for libraries and generate a I<symbols> file describing them. This "
"file, if non-empty, is then installed in the DEBIAN subdirectory of the "
"build tree so that it ends up included in the control information of the "
"package."
msgstr ""
"B<dpkg-gensymbols> analyse un répertoire temporaire de construction (par "
"défaut debian/tmp), y recherche les bibliothèques et crée un fichier "
"I<symbols> file qui les décrit. Si ce fichier n'est pas vide, il est "
"installé dans le sous-répertoire DEBIAN du répertoire de construction afin "
"de pouvoir être inclus dans les informations de contrôle du paquet."

#. type: Plain text
#: dpkg-gensymbols.1:20
msgid ""
"When generating those files, it uses as input some symbols files provided by "
"the maintainer. It looks for the following files (and use the first that is "
"found):"
msgstr ""
"Lors de la création de ces fichiers, il utilise en entrée certains fichiers "
"de symboles fournis par le responsable. Il recherche les fichiers suivants "
"(en utilisant le premier trouvé) :"

#. type: Plain text
#: dpkg-gensymbols.1:22
msgid "debian/I<package>.symbols.I<arch>"
msgstr "debian/I<paquet>.symbols.I<arch>"

#. type: Plain text
#: dpkg-gensymbols.1:24
msgid "debian/symbols.I<arch>"
msgstr "debian/symbols.I<arch>"

#. type: Plain text
#: dpkg-gensymbols.1:26
msgid "debian/I<package>.symbols"
msgstr "debian/I<paquet>.symbols"

#. type: Plain text
#: dpkg-gensymbols.1:28
msgid "debian/symbols"
msgstr "debian/symbols"

#. type: Plain text
#: dpkg-gensymbols.1:36
msgid ""
"The main interest of those files is to provide the minimal version "
"associated to each symbol provided by the libraries. Usually it corresponds "
"to the first version of that package that provided the symbol, but it can be "
"manually incremented by the maintainer if the ABI of the symbol is extended "
"without breaking backwards compatibility. It's the responsibility of the "
"maintainer to keep those files up-to-date and accurate, but B<dpkg-"
"gensymbols> helps him."
msgstr ""
"L'intérêt principal de ces fichiers est de fournir la version minimale "
"associée à chaque symbole fourni par les bibliothèques. En général, cela "
"correspond à la première version du paquet qui a fourni ce symbole, mais "
"cette valeur peut être augmentée manuellement par le responsable si "
"l'interface binaire applicative (ABI) du symbole est étendue sans casser la "
"compatibilité avec les versions précédentes. La tenue à jour de ces fichiers "
"est à la charge du responsable du paquet, avec l'aide de B<dpkg-"
"gensymbols> . "

#. type: Plain text
#: dpkg-gensymbols.1:42
msgid ""
"When the generated symbols files differ from the maintainer supplied one, "
"B<dpkg-gensymbols> will print a diff between the two versions.  Furthermore "
"if the difference is too significant, it will even fail (you can customize "
"how much difference you can tolerate, see the B<-c> option)."
msgstr ""
"Quand les fichiers de symboles créés sont différents de ceux fournis par le "
"responsable, B<dpkg-gensymbols> affichera les différences entre les deux "
"fichiers. Si ces différences sont trop importantes, le programme peut même "
"se terminer en échec (le nombre de différences tolérées peut être réglé avec "
"l'option B<-c>)."

#. type: SH
#: dpkg-gensymbols.1:42
#, no-wrap
msgid "MAINTAINING SYMBOLS FILES"
msgstr "TENUE À JOUR DES FICHIERS SYMBOLES"

#. type: Plain text
#: dpkg-gensymbols.1:55
msgid ""
"The symbols files are really useful only if they reflect the evolution of "
"the package through several releases. Thus the maintainer has to update them "
"every time that a new symbol is added so that its associated minimal version "
"matches reality. To do this properly he can use the diffs contained in the "
"build logs. In most cases, the diff applies directly to his debian/"
"I<package>.symbols file. That said, further tweaks are usually needed: it's "
"recommended for example to drop the Debian revision from the minimal version "
"so that backports with a lower version number but the same upstream version "
"still satisfy the generated dependencies.  If the Debian revision can't be "
"dropped because the symbol really got added by the Debian specific change, "
"then one should suffix the version with \"~\"."
msgstr ""
"Les fichiers de symboles deviennent réellement utiles lorsqu'ils permettent "
"de suivre l'évolution du paquet sur plusieurs versions. En conséquence, le "
"responsable doit les mettre à jour chaque fois qu'un nouveau symbole est "
"ajouté afin que la version minimale associée corresponde à la réalité. Pour "
"effectuer cette opération correctement, il est nécessaire d'utiliser le "
"fichier de différence indiqué dans le journal de construction. Dans la "
"plupart des cas, ce fichier de différences peut être appliqué tel quel au "
"fichier debian/I<paquet>.symbols. Cela étant, quelques adaptations sont "
"généralement nécessaires : il est par exemple recommandé de retirer le "
"numéro de révision Debian de la version minimale afin que les paquets rétro-"
"portés, de numéro de version inférieur mais avec la même version amont "
"continuent à répondre aux pré-requis. Si le numéro de révision Debian ne "
"peut vraiment pas être retiré car le nouveau symbole est la conséquence "
"d'une modification propre à Debian, il est suggéré d'ajouter un suffixe "
"« ~ » au numéro de version."

#. type: Plain text
#: dpkg-gensymbols.1:59
msgid ""
"Before applying any patch to the symbols file, the maintainer should double-"
"check that it's sane. Public symbols are not supposed to disappear, so the "
"patch should ideally only add new lines."
msgstr ""
"Avant d'appliquer le correctif au fichier de symboles, le responsable doit "
"contrôler qu'il est correct. Les symboles publics sont supposés ne jamais "
"disparaître et le correctif ne devrait donc qu'ajouter des lignes."

#. type: Plain text
#: dpkg-gensymbols.1:64
msgid ""
"Note that you can put comments in symbols files: any line with '#' as the "
"first character is a comment except if it starts with '#include' (see "
"section B<Using includes>). Lines starting with '#MISSING:' are special "
"comments documenting symbols that have disappeared."
msgstr ""

#. type: SS
#: dpkg-gensymbols.1:64
#, no-wrap
msgid "Using #PACKAGE# substitution"
msgstr "Utilisation du remplacement de #PACKAGE#"

#. type: Plain text
#: dpkg-gensymbols.1:72
msgid ""
"In some rare cases, the name of the library varies between architectures.  "
"To avoid hardcoding the name of the package in the symbols file, you can use "
"the marker I<#PACKAGE#>. It will be replaced by the real package name during "
"installation of the symbols files. Contrary to the I<#MINVER#> marker, "
"I<#PACKAGE#> will never appear in a symbols file inside a binary package."
msgstr ""
"Dans de rares cas, le nom de la bibliothèque dépend de l'architecture. Afin "
"d'éviter de coder le nom du paquet en dur dans le fichier de symboles, il "
"est possible d'utiliser le marqueur I<#PACKAGE#>. Il sera remplacé par le "
"vrai nom du paquet lors de l'installation des fichiers de symboles. À la "
"différence du marqueur I<#MINVER#>, I<#PACKAGE#> n'apparaîtra jamais dans le "
"fichier de symboles d'un paquet binaire."

#. type: SS
#: dpkg-gensymbols.1:72
#, no-wrap
msgid "Using symbol tags"
msgstr "Utilisation des étiquettes de symboles"

#. type: Plain text
#: dpkg-gensymbols.1:79
msgid ""
"Symbol tagging is useful for marking symbols that are special in some way.  "
"Any symbol can have an arbitrary number of tags associated with it. While "
"all tags are parsed and stored, only a some of them are understood by B<dpkg-"
"gensymbols> and trigger special handling of the symbols. See subsection "
"B<Standard symbol tags> for reference of these tags."
msgstr ""
"L'étiquetage des symboles (« symbol tagging ») est utile pour marquer des "
"symboles qui sont particuliers d'une manière ou d'une autre. Tout symbole "
"peut avoir un nombre quelconque d'étiquettes associées.  Bien que toutes les "
"étiquettes soient analysées et conservées, seules certaines d'entre elles "
"sont comprises par B<dpkg-gensymbols> et déclenchent un traitement "
"spécifique des symboles. Veuillez consulter la sous-section B<Étiquettes "
"standard de symboles> pour une référence complète à propos de ces étiquettes."

#. type: Plain text
#: dpkg-gensymbols.1:91
msgid ""
"Tag specification comes right before the symbol name (no whitespace is "
"allowed in between). It always starts with an opening bracket B<(>, ends "
"with a closing bracket B<)> and must contain at least one tag. Multiple tags "
"are separated by the B<|> character. Each tag can optionally have a value "
"which is separated form the tag name by the B<=> character. Tag names and "
"values can be arbitrary strings except they cannot contain any of the "
"special B<)> B<|> B<=> characters. Symbol names following a tag "
"specification can optionally be quoted with either B<'> or B<\"> characters "
"to allow whitespaces in them. However, if there are no tags specified for "
"the symbol, quotes are treated as part of the symbol name which continues up "
"until the first space."
msgstr ""
"L'indication de l'étiquette vient juste avant le nom du symbole (sans "
"espace). Elle commence toujours par une parenthèse ouvrante B<(>, se termine "
"avec une parenthèse fermante B<)> et doit contenir au moins une étiquette. "
"Les étiquettes multiples doivent être séparées par le caractère B<|>. Chaque "
"étiquette peut comporter optionnellement une valeur, séparée du nom de "
"l'étiquette par le caractère B<=>. Les noms et valeurs des étiquettes sont "
"des chaînes quelconques qui ne doivent pas comporter les caractères B<)> B<|"
"> et B<=>. Les noms de symboles qui suivent une étiquette peuvent "
"optionnellement être mis entre guillemets avec les caractères B<'> ou B<\"> "
"afin d'y autoriser la présence d'espaces. Cependant, si aucune étiquette "
"n'est utilisée, les guillemets sont alors traités comme une partie du nom du "
"symbole, qui s'arrête alors au premier espace."

#. type: Plain text
#: dpkg-gensymbols.1:95
#, no-wrap
msgid ""
" (tag1=i am marked|tag name with space)\"tagged quoted symbol\"@Base 1.0\n"
" (optional)tagged_unquoted_symbol@Base 1.0 1\n"
" untagged_symbol@Base 1.0\n"
msgstr ""
" (étiq1=je suis marqué|étiquette avec espace)\"symbole comportant des espaces\"@Base 1.0\n"
" (optional)symbole_non_protégé@Base 1.0 1\n"
" symbole_non_étiqueté@Base 1.0\n"

#. type: Plain text
#: dpkg-gensymbols.1:101
msgid ""
"The first symbol in the example is named I<tagged quoted symbol> and has two "
"tags: I<tag1> with value I<i am marked> and I<tag name with space> that has "
"no value. The second symbol named I<tagged_unquoted_symbol> is only tagged "
"with the tag named I<optional>. The last symbol is an example of the normal "
"untagged symbol."
msgstr ""
"Le premier symbole de cet exemple est appelé I<symbole comportant des "
"espaces> et utilise deux étiquettes : I<étiq1> avec la valeur I<je suis "
"marqué> et I<étiquette avec espace> sans valeur. Le deuxième symbole, appelé "
"I<symbole_non_protégé> ne comporte que l'étiquette I<optional>. Le dernier "
"symbole est un exemple de symbole normal sans étiquette."

#. type: Plain text
#: dpkg-gensymbols.1:113
msgid ""
"Since symbol tags are an extension of the I<deb-symbols(5)> format, they can "
"only be part of the symbols files used in source packages (those files "
"should then be seen as templates used to build the symbols files that are "
"embedded in binary packages). When B<dpkg-gensymbols> is called without the "
"I<-t> option, it will output symbols files compatible to the I<deb-symbols(5)"
"> format: it fully processes symbols according to the requirements of their "
"standard tags and strips all tags from the output. On the contrary, in "
"template mode (I<-t>) all symbols and their tags (both standard and unknown "
"ones)  are kept in the output and are written in their original form as they "
"were loaded."
msgstr ""
"Comme les étiquettes de symboles sont une extension du format de I<deb-"
"symbols(5)>, elles ne peuvent apparaître que dans les fichiers de symboles "
"des paquets source (ces fichiers peuvent ensuite être vus comme des modèles "
"permettant de construire les fichiers de symboles inclus dans les paquets "
"binaires). Lorsque B<dpkg-gensymbols> est lancé sans l'option I<-t>, il "
"affiche les fichiers de symboles compatibles avec le format I<deb-symbols(5)"
"> : il traite entièrement les symboles d'après les exigences des étiquettes "
"standard et supprime les étiquettes dans sa sortie. Au contraire, dans le "
"mode modèle (« template », option I<-t>), tous les symboles et leurs "
"étiquettes (standard et inconnues) sont conservés dans la sortie et écrits "
"dans leur forme d'origine."

#. type: SS
#: dpkg-gensymbols.1:113
#, no-wrap
msgid "Standard symbol tags"
msgstr "Étiquettes standard de symboles"

#. type: TP
#: dpkg-gensymbols.1:114
#, no-wrap
msgid "B<optional>"
msgstr "B<optional>"

#. type: Plain text
#: dpkg-gensymbols.1:124
msgid ""
"A symbol marked as optional can disappear from the library at any time and "
"that will never cause B<dpkg-gensymbols> to fail. However, disappeared "
"optional symbols will continuously appear as MISSING in the diff in each new "
"package revision.  This behaviour serves as a reminder for the maintainer "
"that such a symbol needs to be removed from the symbol file or readded to "
"the library. When the optional symbol, which was previously declared as "
"MISSING, suddenly reappears in the next revision, it will be upgraded back "
"to the \"existing\" status with its minimum version unchanged."
msgstr ""
"Un symbole marqué comme optionnel peut disparaître de la bibliothèque à tout "
"moment et ne provoquera pas l'échec de B<dpkg-gensymbols>. Cependant, les "
"symboles optionnels disparus apparaîtront en permanence comme manquants dans "
"le fichier de différences, à chaque nouvelle version du paquet. Ce "
"comportement sert de rappel au responsable qu'un tel symbole doit être "
"supprimé du fichier de symboles ou bien réajouté à la bibliothèque. Un "
"telsymbole optionnel, précédemment déclaré comme manquant (« MISSING »), "
"réapparaître soudainement dans la version suivante en étant remis à l'état "
"existant (« existing »), sans modification de sa version minimale."

#. type: Plain text
#: dpkg-gensymbols.1:129
msgid ""
"This tag is useful for symbols which are private where their disappearance "
"do not cause ABI breakage. For example, most of C++ template instantiations "
"fall into this category. Like any other tag, this one may also have an "
"arbitrary value: it could be used to indicate why the symbol is considered "
"optional."
msgstr ""
"Cette étiquette est utile pour les symboles qui sont privés car leur "
"disparition ne provoque pas de changement d'interface applicative (ABI). Par "
"exemple, les plupart des modèles d'instantiacion C++ sont dans cette "
"catégorie. Comme toute autre étiquette, celle-ci peut comproter une valeur "
"arbitraire qui peut servir à indiquer pour quelle raison le symbole est "
"optionnel."

#. type: TP
#: dpkg-gensymbols.1:129
#, no-wrap
msgid "B<arch=>I<architecture list>"
msgstr "B<arch=>I<liste d'architectures>"

#. type: Plain text
#: dpkg-gensymbols.1:142
msgid ""
"This tag allows one to restrict the set of architectures where the symbol is "
"supposed to exist. When the symbols list is updated with the symbols "
"discovered in the library, all arch-specific symbols which do not concern "
"the current host architecture are treated as if they did not exist. If an "
"arch-specific symbol matching the current host architecture does not exist "
"in the library, normal procedures for missing symbols apply and it may cause "
"B<dpkg-gensymbols> to fail. On the other hand, if the arch-specific symbol "
"is found when it was not supposed to exist (because the current host "
"architecture is not listed in the tag), it is made arch neutral (i.e. the "
"arch tag is dropped and the symbol will appear in the diff due to this "
"change), but it is not considered as new."
msgstr ""
"Cette étiquette permet de restreindre la liste des architectures avec "
"lesquelles le symbole est censé exister. Lorsque la liste des ymboles est "
"mise à jour avec ceux découverts dans la bibliothèque, tous les symboles "
"spécifiques d'architectures qui ne concernent pas l'architecture en cours "
"sont ignorés. Si un symbole propre à l'architecture en cours n'existe pas "
"dans la bibliothèque, les processus normaux pour des symboles manquants "
"s'appliquent jusqu'à éventuellement provoquer l'échec de B<dpkg-gensymbols>. "
"D'un autre côté, si le symbole propre à une architecture est trouvé alors "
"qu'il n'est pas censé exister (parce que l'architecture courante n'est pas "
"mentionnée dans l'étiquette), il est rendu indépendant de l'architecture "
"(l'étiquette d'architecture est abandonnée et le symbole apparaît dans le "
"fichier de différences) mais non considéré comme nouveau. (NdT : une "
"aspirine peut être nécessaire après la lecture de ce paragraphe)"

#. type: Plain text
#: dpkg-gensymbols.1:148
msgid ""
"When operating in the default non-template mode, among arch-specific symbols "
"only those that match the current host architecture are written to the "
"symbols file. On the contrary, all arch-specific symbols (including those "
"from foreign arches) are always written to the symbol file when operating in "
"template mode."
msgstr ""
"Dans le mode de fonctionnement par défaut (pas en mode « modèle »), seuls "
"les symboles spécifiques de certaines architectures qui correspondent à "
"l'architecture courante sont écrits dans le fichier de symboles. Au "
"contraire, tous les symboles spécifiques d'architectures (y compris ceux des "
"architectures différentes) seront écrits dans le fichier de symboles, dans "
"le mode « modèle »."

#. type: Plain text
#: dpkg-gensymbols.1:154
msgid ""
"The format of I<architecture list> is the same as the one used in the "
"I<Build-Depends> field of I<debian/control> (except the enclosing square "
"brackets []). For example, the first symbol from the list below will be "
"considered only on alpha, amd64, kfreebsd-amd64 and ia64 architectures while "
"the second one anywhere except on armel."
msgstr ""
"Le format de I<architecture list> est le même que le format utilisé dans les "
"champs I<Build-Depends> des fichiers I<debian/control> (à l'exception des "
"crochets d'inclusion []). Par exemple, le premier symbole de la liste qui "
"suit sera pris en compte sur les architectures alpha, amd64, kfreebsd-amd64 "
"et ia64, mais le second uniquement sur armel."

#. type: Plain text
#: dpkg-gensymbols.1:157
#, no-wrap
msgid ""
" (arch=alpha amd64 kfreebsd-amd64 ia64)a_64bit_specific_symbol@Base 1.0\n"
" (arch=!armel)symbol_armel_does_not_have@Base 1.0\n"
msgstr ""
" (arch=alpha amd64 kfreebsd-amd64 ia64)un_symbole_spécifique_64bit@Base 1.0\n"
" (arch=!armel)un_symbole_inexistant_sur_armel@Base 1.0\n"

#. type: TP
#: dpkg-gensymbols.1:157
#, no-wrap
msgid "B<ignore-blacklist>"
msgstr "B<ignore-blacklist>"

#. type: Plain text
#: dpkg-gensymbols.1:165
msgid ""
"dpkg-gensymbols has an internal blacklist of symbols that should not appear "
"in symbols files as they are usually only side-effects of implementation "
"details of the toolchain. If for some reason, you really want one of those "
"symbols to be included in the symbols file, you should tag the symbol with "
"B<ignore-blacklist>. It can be necessary for some low level toolchain "
"libraries like libgcc."
msgstr ""
"dpkg-gensymbols comporte une liste interne de symboles ignorés qui ne "
"devraient pas apparaître dans les fichiers de symboles car ils sont en "
"général uniquement des effets de bord de détails de mise en oeuvre de la "
"chaîne d'outils de construction. Si, pour une réison précise, vous voulez "
"vraiment inclure un de ces symboles dans le fichier, vous pouvez imposer "
"qu'il soit ignoré, avec B<ignore-blacklist>. Cela peut être utile pour "
"certaines bibliothèques de bas niveau telles que libgcc."

#. type: TP
#: dpkg-gensymbols.1:165 dpkg-gensymbols.1:202
#, no-wrap
msgid "B<c++>"
msgstr "B<c++>"

#. type: Plain text
#: dpkg-gensymbols.1:169
msgid ""
"Denotes I<c++> symbol pattern. See B<Using symbol patterns> subsection below."
msgstr ""
"Indique un motif de symbole I<c++>. Voir la sous-section B<Utilisation de "
"canevas de symboles> plus loin."

#. type: TP
#: dpkg-gensymbols.1:169 dpkg-gensymbols.1:233
#, no-wrap
msgid "B<symver>"
msgstr "B<symver>"

#. type: Plain text
#: dpkg-gensymbols.1:173
msgid ""
"Denotes I<symver> (symbol version) symbol pattern. See B<Using symbol "
"patterns> subsection below."
msgstr "Indique un motif de symbole I<symver> (version de symbole)."

#. type: TP
#: dpkg-gensymbols.1:173 dpkg-gensymbols.1:258
#, no-wrap
msgid "B<regex>"
msgstr "B<regex>"

#. type: Plain text
#: dpkg-gensymbols.1:177
msgid ""
"Denotes I<regex> symbol pattern. See B<Using symbol patterns> subsection "
"below."
msgstr ""
"Indique un motif de symbole basé sur des I<expressions rationnelles>. Voir "
"la sous-section B<Utilisation des motifs de symboles> plus loin."

#. type: SS
#: dpkg-gensymbols.1:177
#, no-wrap
msgid "Using symbol patterns"
msgstr "Utilisation des motifs de symboles"

#. type: Plain text
#: dpkg-gensymbols.1:185
msgid ""
"Unlike a standard symbol specification, a pattern may cover multiple real "
"symbols from the library. B<dpkg-gensymbols> will attempt to match each "
"pattern against each real symbol that does I<not> have a specific symbol "
"counterpart defined in the symbol file. Whenever the first matching pattern "
"is found, all its tags and properties will be used as a basis specification "
"of the symbol. If none of the patterns matches, the symbol will be "
"considered as new."
msgstr ""
"Au contraire d'une indication normale de symbole, un motif permet de couvrir "
"des symboles multiples de la bibliothèque. B<dpkg-gensymbols> essaie de "
"faire correspondre chaque motif à chaque symbole qui n'est pas explicitement "
"défini dans le fichier de symboles. Dès qu'un motif est trouvé qui "
"corresponde au symbole, l'ensemble de ses étiquettes et propriétés sont "
"utilisés comme spécification de base du symbole. Si aucun des motifs ne "
"correspond, le symbole sera considéré comme nouveau."

#. type: Plain text
#: dpkg-gensymbols.1:193
msgid ""
"A pattern is considered lost if it does not match any symbol in the library. "
"By default this will trigger a B<dpkg-gensymbols> failure under I<-c1> or "
"higher level. However, if the failure is undesired, the pattern may be "
"marked with the I<optional> tag. Then if the pattern does not match "
"anything, it will only appear in the diff as MISSING. Moreover, like any "
"symbol, the pattern may be limited to the specific architectures with the "
"I<arch> tag. Please refer to B<Standard symbol tags> subsection above for "
"more information."
msgstr ""
"A motif est considéré comme perdu si aucun symbole ne lui correspond dans la "
"bibliothèque. Par défaut, cela provoquera un échec de B<dpkg-gensymbols> "
"s'il est utilisé avec l'option I<-c1> (ou une valeur plus élevée). "
"Cependant, si l'échec n'est pas souhaité, le motif peut être marqué comme "
"optionnel avec l'étiquette I<optional>. Dans ce cas, si lemotif ne "
"correspond à rien, il sera simplement mentionné dans le fichier de "
"différences comme I<MISSING> (manquant). De plus, comme pour tout autre "
"symbole, le motif peut être limité à des architectures données avec "
"l'étiquette I<arch>. Veuillez consulter la sous-section B<Étiquettes "
"standard de symboles> pour plus d'informations."

#. type: Plain text
#: dpkg-gensymbols.1:200
msgid ""
"Patterns are an extension of the I<deb-symbols(5)> format hence they are "
"only valid in symbol file templates. Pattern specification syntax is not any "
"different from the one of a specific symbol. However, symbol name part of "
"the specification serves as an expression to be matched against "
"I<name@version> of the real symbol. In order to distinguish among different "
"pattern types, a pattern will typically be tagged with a special tag."
msgstr ""
"Les motifs sont une extension du format de I<deb-symbols(5)> en ce sens "
"qu'ils ne sont valables que dans les modèles de fichiers de symboles. "
"Cependant, la partie comportant le nom de symbole est utilisée comme une "
"expression à faire correspondre à I<name@version> du symbole réel. Afin de "
"faire la distinction entre les différents types de motifs, un motif sera "
"usuellement marqué avec une étiquette spéciale."

#. type: Plain text
#: dpkg-gensymbols.1:202
msgid "At the moment, B<dpkg-gensymbols> supports three basic pattern types:"
msgstr "Actuellement, B<dpkg-gensymbols> gères trois type de base de motifs :"

#. type: Plain text
#: dpkg-gensymbols.1:214
msgid ""
"This pattern is denoted by the I<c++> tag. It matches only C++ symbols by "
"their demangled symbol name (as emitted by B<c++filt>(1) utility). This "
"pattern is very handy for matching symbols which mangled names might vary "
"across different architectures while their demangled names remain the same. "
"One group of such symbols is I<non-virtual thunks> which have architecture "
"specific offsets embedded in their mangled names. A common instance of this "
"case is a virtual destructor which under diamond inheritance needs a non-"
"virtual thunk symbol. For example, even if _ZThn8_N3NSB6ClassDD1Ev@Base on "
"32bit architectures will probably be _ZThn16_N3NSB6ClassDD1Ev@Base on 64bit "
"ones, it can be matched with a single I<c++> pattern:"
msgstr ""
"Ce motif est repéré par l'étiquette I<c++>. Il ne sera comparé qu'aux "
"symboles C++ avec leur nom de symbole complet (demangled) tel qu'affiché "
"avec l'utilitaire B<c++filt>. Ce motif est très pratique pour faire "
"correspondre les symboles dont les noms raccourcis (mangled) peut différer "
"selon les architectures bien que leurs noms complet restent les mêmes. Un "
"tel groupe de symboles sont les I<non-virtual thunks> pou rlesquels les "
"décalages (offsets) spécifiques d'architectures sont inclus dans leur nom "
"court. Une manifestation  usuelle de ce cas est le destructeur virtuel qui, "
"en « diamon inheritance » (NdT: intraduisible?) a besoin d'un symbole "
"« thunk » (Ndt: ditto) non virtuel. Par exemple, même si "
"_ZThn8_N3NSB6ClassDD1Ev@Base sur une architecture 32bit est identique à "
"_ZThn16_N3NSB6ClassDD1Ev@Base sur une architecture 64bit, les deux peuvent "
"être indiqués avec le même motif I<c++> :"

#. type: Plain text
#: dpkg-gensymbols.1:220
#, no-wrap
msgid ""
"libdummy.so.1 libdummy1 #MINVER#\n"
" [...]\n"
" (c++)\"non-virtual thunk to NSB::ClassD::~ClassD()@Base\" 1.0\n"
" [...]\n"
msgstr ""
"libdummy.so.1 libdummy1 #MINVER#\n"
" [...]\n"
" (c++)\"non-virtual thunk to NSB::ClassD::~ClassD()@Base\" 1.0\n"
" [...]\n"

#. type: Plain text
#: dpkg-gensymbols.1:222
msgid ""
"The demangled name above can be obtained by executing the following command:"
msgstr "Le nom complet ci-dessus peut être obtenu avec la commande suivante :"

#. type: Plain text
#: dpkg-gensymbols.1:224
#, no-wrap
msgid " $ echo '_ZThn8_N3NSB6ClassDD1Ev@Base' | c++filt\n"
msgstr " $ echo '_ZThn8_N3NSB6ClassDD1Ev@Base' | c++filt\n"

#. type: Plain text
#: dpkg-gensymbols.1:232
msgid ""
"Please note that while mangled name is unique in the library by definition, "
"this is not necessarily true for demangled names. A couple of distinct real "
"symbols may have the same demangled name. For example, that's the case with "
"non-virtual thunk symbols in complex inheritance configurations or with most "
"constructors and destructors (since g++ typically generates two real symbols "
"for them). However, as these collisions happen on the ABI level, they should "
"not degrade quality of the symbol file."
msgstr ""
"Veuillez noter que, bien que le nom complet soit unique dans la bibliothèque "
"par définition, cela n'est pas forcément vrai pour le nom raccourci. Deux "
"symboles réels différents peuvent avoir le même nom raccourci. C'est par "
"exemple le cas avec les symboles « thunk » non virtuels dans des "
"configurations d'héritage complexes ou avec la plupart des constructeurs et "
"destructeurs (puisque g++ crée usuellement deux symboles réels pour eux). "
"Cependant, comme ces collisions se produisent au niveau de l'interface "
"applicative binaire (ABI), elle ne devraient pas dégrader la qualité du "
"fichier de symboles."

#. type: Plain text
#: dpkg-gensymbols.1:239
msgid ""
"This pattern is denoted by the I<symver> tag. Well maintained libraries have "
"versioned symbols where each version corresponds to the upstream version "
"where the symbol got added. If that's the case, you can use a I<symver> "
"pattern to match any symbol associated to the specific version. For example:"
msgstr ""
"Ce motif est indiqué par l'étiquette I<symver>. Les bibliothèques bien "
"gérées utilisent des symboles versionnés où chaque version correspond à la "
"version amont à laquelle le symbole a été ajouté. Si c'est le cas, il est "
"possible d'utiliser un motif I<symver> pour faire correspondre chaque "
"symbole associée à la version spécifique. Par exemple :"

#. type: Plain text
#: dpkg-gensymbols.1:246
#, no-wrap
msgid ""
"libc.so.6 libc6 #MINVER#\n"
" (symver)GLIBC_2.0 2.0\n"
" [...]\n"
" (symver)GLIBC_2.7 2.7\n"
" access@GLIBC_2.0 2.2\n"
msgstr ""
"libc.so.6 libc6 #MINVER#\n"
" (symver)GLIBC_2.0 2.0\n"
" [...]\n"
" (symver)GLIBC_2.7 2.7\n"
" access@GLIBC_2.0 2.2\n"

#. type: Plain text
#: dpkg-gensymbols.1:252
msgid ""
"All symbols associated with versions GLIBC_2.0 and GLIBC_2.7 will lead to "
"minimal version of 2.0 and 2.7 respectively with the exception of the symbol "
"access@GLIBC_2.0. The latter will lead to a minimal dependency on libc6 "
"version 2.2 despite being in the scope of the \"(symver)GLIBC_2.0\" pattern "
"because specific symbols take precedence over patterns."
msgstr ""
"Tous les symboles associés avec les versions GLIBC_2.0 et GLIBC_2.7 "
"conduiront respectivement à des versions minimales de 2.0 et 2.7, à "
"l'exception du symbole access@GLIBC_2.0. Ce dernier amène à une dépendance "
"minimale sur la version 2.2 de libc6 bien qu'il soit dans le scope de "
"« (symvar)GLIBC_2.0 ». Cela est dû au fait que les symboles spécifiques "
"prennent le pas sur les motifs."

#. type: Plain text
#: dpkg-gensymbols.1:257
msgid ""
"Please note that while old style wildcard patterns (denoted by \"*@version\" "
"in the symbol name field) are still supported, they have been deprecated by "
"new style syntax \"(symver|optional)version\". For example, \"*@GLIBC_2.0 "
"2.0\" should be written as \"(symver|optional)GLIBC_2.0 2.0\" if the same "
"behaviour is needed."
msgstr ""
"Veuillez noter que les anciens motifs avec caractères génériques (indiqués "
"sous la forme « *@version ») dans le champ de nom de symbole sont toujours "
"gérés. La nouvelle syntaxe « (symver|optional)version » doit toutefois leur "
"être préférée. Par exemple, « *@GLIBC_2.0 2.0 » devrait être écrit sous la "
"forme « (symver|optional)GLIBC_2.0 2.0 » si un comportement analogue est "
"recherché."

#. type: Plain text
#: dpkg-gensymbols.1:265
msgid ""
"Regular expression patterns are denoted by the I<regex> tag. They match by "
"the perl regular expression specified in the symbol name field. A regular "
"expression is matched as it is, therefore do not forget to start it with the "
"I<^> character or it may match any part of the real symbol I<name@version> "
"string. For example:"
msgstr ""
"Les motifs d'expressions rationnelles sont indiqués par l'étiquette "
"I<regex>. La correspondance se fait avec une expression rationnelle Perl sur "
"le champ de nom de symbole. la correspondance est faite telle quelle et il "
"ne faut donc pas oublier le caractère I<^>, sinon la correspondance est "
"faite sur n'importe quelle partie du symbole réel I<name@version>. Par "
"exemple :"

#. type: Plain text
#: dpkg-gensymbols.1:270
#, no-wrap
msgid ""
"libdummy.so.1 libdummy1 #MINVER#\n"
" (regex)\"^mystack_.*@Base$\" 1.0\n"
" (regex|optional)\"private\" 1.0\n"
msgstr ""
"libdummy.so.1 libdummy1 #MINVER#\n"
" (regex)\"^mystack_.*@Base$\" 1.0\n"
" (regex|optional)\"private\" 1.0\n"

#. type: Plain text
#: dpkg-gensymbols.1:275
msgid ""
"Symbols like \"mystack_new@Base\", \"mystack_push@Base\", \"mystack_pop@Base"
"\" etc.  will be matched by the first pattern while e.g. "
"\"ng_mystack_new@Base\" won't.  The second pattern will match all symbols "
"having the string \"private\" in their names and matches will inherit "
"I<optional> tag from the pattern."
msgstr ""
"Les symboles tels que « mystack_new@Base », « mystack_push@Base », "
"« mystack_pop@Base », etc. seront en correspondance avec le premier motif "
"alors que, par exemple, « ng_mystack_new@Base » ne le sera pas. Le deuxième "
"motif correspondra pour tous les symboles qui comportent la chaîne "
"« private » dans leur nom et les correspondances hériteront de l'étiquette "
"I<optional> depuis le motif."

#. type: Plain text
#: dpkg-gensymbols.1:280
msgid ""
"Basic patterns listed above can be combined where it makes sense. In that "
"case, they are processed in the order in which the tags are specified. For "
"example, both"
msgstr ""
"Les motifs de base indiqués précédemment peuvent être combinés au besoin. "
"Dans ce cas, ils sont traités dans l'ordre où les étiquettes sont indiquées. "
"Par exemple, les deux motifs"

#. type: Plain text
#: dpkg-gensymbols.1:283
#, no-wrap
msgid ""
" (c++|regex)\"^NSA::ClassA::Private::privmethod\\ed\\e(int\\e)@Base\" 1.0\n"
" (regex|c++)N3NSA6ClassA7Private11privmethod\\edEi@Base 1.0\n"
msgstr ""
" (c++|regex)\"^NSA::ClassA::Private::privmethod\\ed\\e(int\\e)@Base\" 1.0\n"
" (regex|c++)N3NSA6ClassA7Private11privmethod\\edEi@Base 1.0\n"

#. type: Plain text
#: dpkg-gensymbols.1:293
msgid ""
"will match symbols \"_ZN3NSA6ClassA7Private11privmethod1Ei@Base\" and "
"\"_ZN3NSA6ClassA7Private11privmethod2Ei@Base\". When matching the first "
"pattern, the raw symbol is first demangled as C++ symbol, then the demangled "
"name is matched against the regular expression. On the other hand, when "
"matching the second pattern, regular expression is matched against the raw "
"symbol name, then the symbol is tested if it is C++ one by attempting to "
"demangle it. A failure of any basic pattern will result in the failure of "
"the whole pattern.  Therefore, for example, "
"\"__N3NSA6ClassA7Private11privmethod\\edEi@Base\" will not match either of "
"the patterns because it is not a valid C++ symbol."
msgstr ""
"Seront en correspondance avec les symboles "
"« _ZN3NSA6ClassA7Private11privmethod1Ei@Base\" » et "
"« _ZN3NSA6ClassA7Private11privmethod2Ei@Base ». Lors de la correspondance "
"avec le premier motif, le symbole complet est d'abord décodé en tant que "
"symbole C++, puis compéré à l'expression rationnelle. D'un autre côté, lors "
"de la correspondance avec le deuxième motif, l'expression rationnelle est "
"comparée au nom de symbole brut, puis le symbole est testé en tant que "
"symbole C++ en tentant de le décoder. L'échec de n'importe quel motif de "
"base provoquera l'échec de l'ensemble du motif. Ainsi, par exemple, "
"« __N3NSA6ClassA7Private11privmethod\\edEi@Base » ne correspondra à aucun "
"des motifs car ce n'est pas un symbole C++ valable (Ndt : j'ai l'impression "
"de traduire du Klingon !)."

#. type: Plain text
#: dpkg-gensymbols.1:299
msgid ""
"In general, all patterns are divided into two groups: aliases (basic I<c++> "
"and I<symver>) and generic patterns (I<regex>, all combinations of multiple "
"basic patterns). Matching of basic alias-based patterns is fast (O(1))  "
"while generic patterns are O(N) (N - generic pattern count) for each "
"symbol.  Therefore, it is recommended not to overuse generic patterns."
msgstr ""
"En général, les motifs sont divisés en deux groupes : les alias (I<c++> et "
"I<symver> de base) et les motifs génériques (I<regex> et toutes les "
"combinaisons de motifs de base multiples). La correspondance de motifs basés "
"sur des alias est rapide (0(1)) alors que les motifs génériques sont 0(N) (N "
"étant le nombre de motifs génériques) pour chaque symbole. En conséquence, "
"il est déconseillé d'abuser des motifs génériques."

#. type: Plain text
#: dpkg-gensymbols.1:306
msgid ""
"When multiple patterns match the same real symbol, aliases (first I<c++>, "
"then I<symver>) are preferred over generic patterns. Generic patterns are "
"matched in the order they are found in the symbol file template until the "
"first success.  Please note, however, that manual reordering of template "
"file entries is not recommended because B<dpkg-gensymbols> generates diffs "
"based on the alphanumerical order of their names."
msgstr ""
"Lorsque plusieurs motifs correspondent pour le même symbole réel, les aliaas "
"(d'abord I<c++>, puis I<symver>) sont privilégiés par rapport aux motifs "
"génériques. Ceux-ci sont essayés dans l'ordre où ils apparaissent dans le "
"modèle de fichier de symbole, en s'arrêtant à la première correspondance. "
"Veuillez noter, cependant, que la modification manuelle de l'ordre des "
"entrées de fichiers n'est pas recommandée car B<dpkg-gensymbols> crée des "
"fichiers de différences d'après l'ordre alphabético-numérique de leur nom."

#. type: SS
#: dpkg-gensymbols.1:306
#, no-wrap
msgid "Using includes"
msgstr "Utilisation des inclusions"

#. type: Plain text
#: dpkg-gensymbols.1:311
msgid ""
"When the set of exported symbols differ between architectures, it may become "
"inefficient to use a single symbol file. In those cases, an include "
"directive may prove to be useful in a couple of ways:"
msgstr ""
"Lorsqu'un jeu de symboles exportés varie selon les architectures, il est "
"souvent peu efficace d'utiliser un seul fichier de symboles.  Pour couvrir "
"ces cas, une directive d'inclusion peut devenir utile dans certains cas."

#. type: Plain text
#: dpkg-gensymbols.1:315
msgid ""
"You can factorize the common part in some external file and include that "
"file in your I<package>.symbols.I<arch> file by using an include directive "
"like this:"
msgstr ""
"Il est possible de factoriser la partie commune dans un fichier externe "
"donné et l'inclure dans le fichier I<paquet>.symbols.I<arch> avec une "
"directive « include » utilisée de la manière suivante :"

#. type: Plain text
#: dpkg-gensymbols.1:317
msgid "#include \"I<packages>.symbols.common\""
msgstr "#include \"I<paquets>.symbols.common\""

#. type: Plain text
#: dpkg-gensymbols.1:319
msgid "The include directive may also be tagged like any symbol:"
msgstr ""
"La directive d'inclusion peut également être étiquetée comme tout autre "
"symbole :"

#. type: Plain text
#: dpkg-gensymbols.1:321
#, fuzzy
#| msgid "(tag|..|tagN)#include \"file_to_include\""
msgid "(tag|..|tagN)#include \"file-to-include\""
msgstr "(etiquette|..|etiquetteN)#include \"fichier_a_incllure\""

#. type: Plain text
#: dpkg-gensymbols.1:326
#, fuzzy
#| msgid ""
#| "As a result, all symbols included from I<file_to_include> will be "
#| "considered to be tagged with I<tag> .. I<tagN> by default. You can use "
#| "this feature to create a common I<package>.symbols file which includes "
#| "architecture specific symbol files:"
msgid ""
"As a result, all symbols included from I<file-to-include> will be considered "
"to be tagged with I<tag> .. I<tagN> by default. You can use this feature to "
"create a common I<package>.symbols file which includes architecture specific "
"symbol files:"
msgstr ""
"Le résultat sera que tous les symboles inclus depuis I<fichier_à_inclure> "
"seront considérés comme étiquetés avec I<eti>...I<etiqN>. Cela permetde "
"créerun fichier I<paquet>.symbols commun qui inclut les fichiers de symboles "
"spécifiques des architectures :"

#. type: Plain text
#: dpkg-gensymbols.1:331
#, no-wrap
msgid ""
"  common_symbol1@Base 1.0\n"
" (arch=amd64 ia64 alpha)#include \"package.symbols.64bit\"\n"
" (arch=!amd64 !ia64 !alpha)#include \"package.symbols.32bit\"\n"
"  common_symbol2@Base 1.0\n"
msgstr ""
"  symbole_commun1@Base 1.0\n"
" (arch=amd64 ia64 alpha)#include \"package.symbols.64bit\"\n"
" (arch=!amd64 !ia64 !alpha)#include \"package.symbols.32bit\"\n"
"  symbole_commun2@Base 1.0\n"

#. type: Plain text
#: dpkg-gensymbols.1:340
msgid ""
"The symbols files are read line by line, and include directives are "
"processed as soon as they are encountered. This means that the content of "
"the included file can override any content that appeared before the include "
"directive and that any content after the directive can override anything "
"contained in the included file. Any symbol (or even another #include "
"directive) in the included file can specify additional tags or override "
"values of the inherited tags in its tag specification. However, there is no "
"way for the symbol to remove any of the inherited tags."
msgstr ""
"Les fichiers de symboles sont lus ligne par ligne et les directives "
"d'inclusion sont traitées dès qu'elles sont trouvées. En conséquence, le "
"contenu du fichier d'inclusion peut remplacer une définition qui précède "
"l'inclusion at que ce qui suit l'inclusion peut remplacer une définition "
"qu'elle ajoutait. Tout symbole (ou même une autre directive d'inclusion) "
"dans le fichier inclus pet définir des étiquettes supplémentaires ou "
"remplacer les valeurs d'étiquettes héritées, dans sa définition "
"d'étiquettes.. Cependant, pour un symbole donné, il n'existe pas de méthode "
"permettant de remplacer une de ses étiquettes héritées."

#. type: Plain text
#: dpkg-gensymbols.1:345
msgid ""
"An included file can repeat the header line containing the SONAME of the "
"library. In that case, it overrides any header line previously read.  "
"However, in general it's best to avoid duplicating header lines. One way to "
"do it is the following:"
msgstr ""
"Un fichier inclus peut reprendre la ligne d'en-tête qui contient le "
"« SONAME » de la bibliothèque. Dans ce cas, cela remplace toute ligne d'en-"
"tête précédente. Il est cependant déconseillé de dupliquer les lignes d'en-"
"tête. Une façon de le faire est la méthode suivante :"

#. type: Plain text
#: dpkg-gensymbols.1:348
#, no-wrap
msgid ""
"#include \"libsomething1.symbols.common\"\n"
" arch_specific_symbol@Base 1.0\n"
msgstr ""
"#include \"libmachin1.symbols.common\"\n"
" symboles_specifique_architecture@Base 1.0\n"

#. type: SS
#: dpkg-gensymbols.1:348
#, no-wrap
msgid "Good library management"
msgstr "Bonnes pratiques de gestion des bibliothèques"

#. type: Plain text
#: dpkg-gensymbols.1:351
msgid "A well-maintained library has the following features:"
msgstr "une bibliothèque bien maintenue offre les possibilités suivantes :"

#. type: Plain text
#: dpkg-gensymbols.1:355
msgid ""
"its API is stable (public symbols are never dropped, only new public symbols "
"are added) and changes in incompatible ways only when the SONAME changes;"
msgstr ""
"son interface de programmation (API) est stable (les symboles publics ne "
"sont jamais supprimés et les changement ne concernant que des ajouts de "
"nouveaux symboles publics) et les modifications provoquant un "
"incompatibilité doivent être combinés avec un changement de SONAME ;"

#. type: Plain text
#: dpkg-gensymbols.1:358
msgid ""
"ideally, it uses symbol versioning to achieve ABI stability despite internal "
"changes and API extension;"
msgstr ""
"idéalement, elle utilise le versionnement des symboles pour garantir la "
"stabilité de interface applicative binaire (ABI) malgré ses modifications "
"internes et l'extension de son API ;"

#. type: Plain text
#: dpkg-gensymbols.1:361
msgid ""
"it doesn't export private symbols (such symbols can be tagged optional as "
"workaround)."
msgstr ""
"elle n'exporte pas les symboles privés (afin de contourner cela, de tels "
"symboles peuvent être étiquetés comme optionnels)"

#. type: Plain text
#: dpkg-gensymbols.1:369
msgid ""
"While maintaining the symbols file, it's easy to notice appearance and "
"disappearance of symbols. But it's more difficult to catch incompatible API "
"and ABI change. Thus the maintainer should read thoroughly the upstream "
"changelog looking for cases where the rules of good library management have "
"been broken. If potential problems are discovered, the upstream author "
"should be notified as an upstream fix is always better than a Debian "
"specific work-around."
msgstr ""
"En maintenant le fichier de symboles, il est facile d'en voir apparaître et "
"disparaître. Cependant, il est plus difficile de contrôler la présence "
"d'éventuelles modifications d'API ou ABI. En conséquence, le mainteneur doit "
"contrôler soigneusement le journal des modifications amont, à la recherche "
"de cas où une saine gestion des bibliothèque put avoir été omise. Si des "
"problèmes potentiels sont découverts, l'auteur amont doit être averti(e) car "
"une correction en amont est meilleure qu'un travail spécifique au paquet "
"Debian."

#. type: TP
#: dpkg-gensymbols.1:370
#, no-wrap
msgid "B<-P>I<package-build-dir>"
msgstr "B<-P>I<répertoire-construction-paquet>"

#. type: Plain text
#: dpkg-gensymbols.1:373
msgid "Scan I<package-build-dir> instead of debian/tmp."
msgstr "Analyse de I<répertoire-construction-paquet>, plutôt que debian/tmp."

#. type: Plain text
#: dpkg-gensymbols.1:377
msgid ""
"Define the package name. Required if more than one binary package is listed "
"in debian/control (or if there's no debian/control file)."
msgstr ""
"Définit le nom du paquet. Requis si plus d'un paquet binaire est indiqué "
"dans debian/control (ou s'il n'y a pas de fichier debian/control)."

#. type: Plain text
#: dpkg-gensymbols.1:381
msgid ""
"Define the package version. Defaults to the version extracted from debian/"
"changelog. Required if called outside of a source package tree."
msgstr ""
"Définit la version du paquet. La valeur par défaut est la version extraite "
"de debian/changelog. Ce paramètre est requis si le programme est lancé en "
"dehors de l'arborescence source d'un paquet."

#. type: TP
#: dpkg-gensymbols.1:381
#, no-wrap
msgid "B<-e>I<library-file>"
msgstr "B<-e>I<fichier-bibliothèque>"

#. type: Plain text
#: dpkg-gensymbols.1:387
msgid ""
"Only analyze libraries explicitly listed instead of finding all public "
"libraries. You can use a regular expression in I<library-file> to match "
"multiple libraries with a single argument (otherwise you need multiple B<-"
"e>)."
msgstr ""
"N'analyse que les bibliothèques explicitement mentionnées au lieu de "
"rechercher toutes les bibliothèques publiques. Une expression rationnelle "
"peut être utilisée dans I<fichier-bibliothèque> pour correspondre à "
"plusieurs bibliothèques avec un seul paramètre (dans le cas contraire, "
"plusieurs paramètres B<-e> sont nécessaires)."

#. type: TP
#: dpkg-gensymbols.1:387
#, no-wrap
msgid "B<-I>I<filename>"
msgstr "B<-I>I<nom-de-fichier>"

#. type: Plain text
#: dpkg-gensymbols.1:391
msgid ""
"Use I<filename> as reference file to generate the symbols file that is "
"integrated in the package itself."
msgstr ""
"Utilise I<nom-de-fichier> comme fichier de référence pour créer le fichier "
"de symboles à intégrer dans le paquet lui-même."

#. type: Plain text
#: dpkg-gensymbols.1:395
msgid ""
"Print the generated symbols file to standard output, rather than being "
"stored in the package build tree."
msgstr ""
"Affiche le fichier de symboles créé sur la sortie standard au lieu de "
"l'écrire dans l'arborescence source du paquet."

#. type: TP
#: dpkg-gensymbols.1:395
#, no-wrap
msgid "B<-O>I<filename>"
msgstr "B<-O>I<nom-de-fichier>"

#. type: Plain text
#: dpkg-gensymbols.1:401
msgid ""
"Store the generated symbols file as I<filename>. If I<filename> is pre-"
"existing, its content is used as basis for the generated symbols file.  You "
"can use this feature to update a symbols file so that it matches a newer "
"upstream version of your library."
msgstr ""
"Enregistre le fichier de symboles créé avec le nom I<nom-de-fichier>. Si "
"I<nom-de-fichier> existe déjà, son contenu sera utilisé comme base pour le "
"fichier créé. Cette fonctionnalité permet de mettre à jour le fichier de "
"symboles pour qu'il corresponde à une nouvelle version amont de la "
"bibliothèque."

#. type: TP
#: dpkg-gensymbols.1:401
#, no-wrap
msgid "B<-t>"
msgstr "B<-t>"

#. type: Plain text
#: dpkg-gensymbols.1:410
msgid ""
"Write the symbol file in template mode rather than the format compatible "
"with I<deb-symbols(5)>. The main difference is that in the template mode "
"symbol names and tags are written in their original form contrary to the "
"post-processed symbol names with tags stripped in the compatibility mode.  "
"Moreover, some symbols might be omitted when writing a standard I<deb-symbols"
"(5)> file (according to the tag processing rules) while all symbols are "
"always written to the symbol file template."
msgstr ""
"Écrit le fichier de symboles en mode modèle plutôt que dans un format "
"compatible avec I<deb-symbols(5)>. La différence majeure réside dans le fait "
"que les noms de symboles et les étiquettes sont écrits dans leur forme "
"d'origine au lieu d'être interprétés, avec réduction des étiquettes en mode "
"de compatibilité. De plus, certains symboles peuvent être omis lors de "
"l'écriture d'un fichier I<deb-symbols(5)> standard (selon les règles de "
"traitement des étiquettes) alors que tous les symboles sont écrits lors de "
"la création d'un modèle de fichier de symboles."

#. type: TP
#: dpkg-gensymbols.1:410
#, no-wrap
msgid "B<-c>I<[0-4]>"
msgstr "B<-c>I<[0-4]>"

#. type: Plain text
#: dpkg-gensymbols.1:418
msgid ""
"Define the checks to do when comparing the generated symbols file with the "
"template file used as starting point. By default the level is 1. Increasing "
"levels do more checks and include all checks of lower levels. Level 0 never "
"fails. Level 1 fails if some symbols have disappeared. Level 2 fails if some "
"new symbols have been introduced. Level 3 fails if some libraries have "
"disappeared. Level 4 fails if some libraries have been introduced."
msgstr ""
"Définit les contrôles à effectuer lors de la comparaison des symboles créés "
"en utilisant le fichier de modèle comme point de départ. Le niveau par "
"défaut est 1. Plus le niveau est augmenté, plus le nombre de contrôle "
"effectués est important. Chaque niveau de contrôle  comporte les contrôles "
"effectués pour les niveaux inférieurs. Le niveau 0 n'échoue jamais. Le "
"niveau 1 échoue si certains symboles ont disparu. Le niveau 2 échoue si de "
"nouveaux symboles ont été ajoutés. Le niveau 3 échoue si certaines "
"bibliothèques ont disparu. Le niveau 4 échoue si des bibliothèques ont été "
"ajoutées."

#. type: Plain text
#: dpkg-gensymbols.1:421
msgid ""
"This value can be overridden by the environment variable "
"DPKG_GENSYMBOLS_CHECK_LEVEL."
msgstr ""
"Cette valeur peut être remplacée par la valeur de la variable "
"d'environnement DPKG_GENSYMBOLS_CHECK_LEVEL."

#. type: Plain text
#: dpkg-gensymbols.1:427
msgid ""
"Keep quiet and never generate a diff between generated symbols file and the "
"template file used as starting point or show any warnings about new/lost "
"libraries or new/lost symbols. This option only disables informational "
"output but not the checks themselves (see I<-c> option)."
msgstr ""
"Fonctionne en mode silencieux et ne crée jamais de fichier de différences "
"entre le fichier de symboles créé et le fichier modèle utilisé comme point "
"de départ. N'affiche également aucun avertissement à propos de bibliothèques "
"nouvelles ou disparues ou de symboles nouveaux ou disparus. Cette option ne "
"désactive que l'affichage informatif, mais pas les contrôles eux-mêmes (voir "
"l'option I<-c>)."

#. type: TP
#: dpkg-gensymbols.1:427
#, no-wrap
msgid "B<-a>I<arch>"
msgstr "B<-a>I<arch>"

#. type: Plain text
#: dpkg-gensymbols.1:432
msgid ""
"Assume I<arch> as host architecture when processing symbol files. Use this "
"option to generate a symbol file or diff for any architecture provided its "
"binaries are already available."
msgstr ""
"Définit I<arch> comme architecture lors du traitement des fichiers de "
"symboles. Cette option permet de créer un fichier de symboles ou un fichier "
"de différences pour n'importe quelle architecture, à condition que les "
"fichiers binaires correspondants soient déjà disponibles."

#. type: Plain text
#: dpkg-gensymbols.1:437
msgid ""
"Enable debug mode. Numerous messages are displayed to explain what B<dpkg-"
"gensymbols> does."
msgstr ""
"Active le mode verbeux. De nombreux messages sont affichés pour expliquer ce "
"que B<dpkg-gensymbols> fait."

#. type: TP
#: dpkg-gensymbols.1:437
#, no-wrap
msgid "B<-V>"
msgstr "B<-V>"

#. type: Plain text
#: dpkg-gensymbols.1:443
msgid ""
"Enable verbose mode. The generated symbols file contains deprecated symbols "
"as comments. Furthermore in template mode, pattern symbols are followed by "
"comments listing real symbols that have matched the pattern."
msgstr ""
"Active le mode verbeux. Le fichier de symboles créé contiendra les symbols "
"dépréciés sous forme de commentaires. De plus, en mode modèle, les motifs de "
"symboles seront suivis de commentaires affichant les symboles réels qui "
"correspondent au motif."

#. type: Plain text
#: dpkg-gensymbols.1:452
msgid "B<http://people.redhat.com/drepper/symbol-versioning>"
msgstr "B<http://people.redhat.com/drepper/symbol-versioning>"

#. type: Plain text
#: dpkg-gensymbols.1:454
msgid "B<http://people.redhat.com/drepper/goodpractice.pdf>"
msgstr "B<http://people.redhat.com/drepper/goodpractice.pdf>"

#. type: Plain text
#: dpkg-gensymbols.1:456
msgid "B<http://people.redhat.com/drepper/dsohowto.pdf>"
msgstr "B<http://people.redhat.com/drepper/dsohowto.pdf>"

#. type: Plain text
#: dpkg-gensymbols.1:459
msgid "B<deb-symbols>(5), B<dpkg-shlibdeps>(1)."
msgstr "B<deb-symbols>(5), B<dpkg-shlibdeps>(1)."

#. type: Plain text
#: dpkg-gensymbols.1:462
msgid "Copyright \\(co 2007-2009 Rapha\\[:e]l Hertzog"
msgstr "Copyright \\(co 2007-2009 Rapha\\[:e]l Hertzog"

#. type: TH
#: dpkg-maintscript-helper.1:1
#, no-wrap
msgid "dpkg-maintscript-helper"
msgstr "dpkg-maintscript-helper"

#. type: Plain text
#: dpkg-maintscript-helper.1:4
msgid ""
"dpkg-maintscript-helper - works around known dpkg limitations in maintainer "
"scripts"
msgstr ""
"dpkg-maintscript-helper - contournement des limitations connues de dpkg dans "
"les scripts du responsable"

#. type: Plain text
#: dpkg-maintscript-helper.1:8
#, fuzzy
#| msgid ""
#| "B<dpkg-maintscript-helper> I<command> [I<parameters>...] -- I<maint-"
#| "script-parameters>"
msgid ""
"B<dpkg-maintscript-helper> I<command> [I<parameter>...] B<--> I<maint-script-"
"parameter>..."
msgstr ""
"B<dpkg-maintscript-helper> I<commande> [I<paramètres>...] -- I<paramètres-"
"script-responsable>"

#. type: SH
#: dpkg-maintscript-helper.1:9
#, no-wrap
msgid "COMMANDS AND PARAMETERS"
msgstr "COMMANDES ET PARAMÈTRES"

#. type: Plain text
#: dpkg-maintscript-helper.1:12
msgid "B<rm_conffile> I<conffile> [I<lastversion> [I<package>]]"
msgstr ""
"B<rm_conffile> I<fichier-de-configuration> [I<dernière-version> [I<paquet>]]"

#. type: Plain text
#: dpkg-maintscript-helper.1:14
msgid ""
"B<mv_conffile> I<oldconffile> I<newconffile> [I<lastversion> [I<package>]]"
msgstr ""
"B<mv_conffile> I<ancien-fichier-de-configuration> I<nouveau-fichier-de-"
"configuration> [I<dernière-version> [I<paquet>]]"

#. type: Plain text
#: dpkg-maintscript-helper.1:20
msgid ""
"This program is designed to be run within maintainer scripts to achieve some "
"tasks that dpkg can't (yet) handle natively either because of design "
"decisions or due to current limitations."
msgstr ""
"Ce programme est prévu pour être exécuté dans les scripts du responsable "
"afin de réaliser certaines tâches que dpkg ne peut pas (encore) prendre en "
"charge directement à cause de limites de conception ou de limitations "
"actuelles."

#. type: Plain text
#: dpkg-maintscript-helper.1:27
#, fuzzy
#| msgid ""
#| "Many of those tasks require coordinated actions from several maintainer "
#| "scripts (B<preinst>, B<postinst>, B<prerm>, B<postrm>). To avoid mistakes "
#| "the same call simply needs to be put in all scripts and the program will "
#| "automatically adapt its behaviour based on the environment variable "
#| "DPKG_MAINTSCRIPT_NAME and on the maintainer scripts arguments that you "
#| "have to forward after a double dash."
msgid ""
"Many of those tasks require coordinated actions from several maintainer "
"scripts (B<preinst>, B<postinst>, B<prerm>, B<postrm>). To avoid mistakes "
"the same call simply needs to be put in all scripts and the program will "
"automatically adapt its behaviour based on the environment variable "
"B<DPKG_MAINTSCRIPT_NAME> and on the maintainer scripts arguments that you "
"have to forward after a double dash."
msgstr ""
"La plupart de ces tâches nécessitent la coordination de plusieurs script du "
"responsable (B<preinst>, B<postinst>, B<prerm>, B<postrm>). Pour éviter des "
"erreurs, le même appel a simplement besoin d'être placé dans tous les "
"scripts. Le programme adaptera alors con comportement en fonction de la "
"variable d'environnement"

#. type: SH
#: dpkg-maintscript-helper.1:28
#, no-wrap
msgid "CONFFILE RELATED TASKS"
msgstr "TÂCHES LIÉES AUX FICHIERS DE CONFIGURATION"

#. type: Plain text
#: dpkg-maintscript-helper.1:38
msgid ""
"When upgrading a package, dpkg will not automatically remove a conffile (a "
"configuration file for which dpkg should preserve user changes) if it is not "
"present in the newer version. There are two principal reasons for this; the "
"first is that the conffile could've been dropped by accident and the next "
"version could restore it, users wouldn't want their changes thrown away. The "
"second is to allow packages to transition files from a dpkg-maintained "
"conffile to a file maintained by the package's maintainer scripts, usually "
"with a tool like debconf or ucf."
msgstr ""
"Lors de la mise à jour d'un paquet, dpkg ne supprime pas automatiquement les "
"fichiers de configuration (comportant des modifications locales à préserver) "
"s'il n'est pas présent dans la nouvelle version. Il existe deux raisons "
"principales à cela. En premier lieu, le fichier de configuration peut avoir "
"été supprimé par accident, être réintégré dans la version suivante et il "
"peut être nécessaire de retrouver les modifications locales. Ensuite, "
"l'objectif est également de permettre d'effectuer la transition depuis des "
"fichiers de configuration gérés par dpkg vers un fichier géré via les "
"scripts du responsable, en général à l'aide d'un outil comme debconf ou ucf."

#. type: Plain text
#: dpkg-maintscript-helper.1:43
msgid ""
"This means that if a package is intended to rename or remove a conffile, it "
"must explicitly do so and B<dpkg-maintscript-helper> can be used to "
"implement graceful deletion and moving of conffiles within maintainer "
"scripts."
msgstr ""
"Cela signifie que si un paquet a besoin de renommer ou supprimer un fichier "
"de configuration, il doit le faire explicitement. L'objectif de B<dpkg-"
"maintscript-helper> est donc de fournir des méthodes de suppression ou "
"renommage de fichiers de configuration via les scripts du responsable."

#. type: SS
#: dpkg-maintscript-helper.1:44
#, no-wrap
msgid "REMOVING A CONFFILE"
msgstr "SUPPRESSION D'UN FICHIER DE CONFIGURATION"

#. type: Plain text
#: dpkg-maintscript-helper.1:50
msgid ""
"If a conffile is completely removed, it should be removed from disk, unless "
"the user has modified it. If there are local modifications, they should be "
"preserved. If the package upgrades aborts, the newly obsolete conffile "
"should not disappear."
msgstr ""
"Si un fichier de configuration est complètement supprimé, il doit être "
"effacé du disque sauf si l'administrateur local l'a modifié. Les éventuelles "
"modifications locales doivent être conservées. Si la mise à jour du paquet "
"est interrompue, le fichier de configuration rendu obsolète ne doit pas "
"avoir disparu."

#. type: Plain text
#: dpkg-maintscript-helper.1:53
msgid ""
"All of this is implemented by putting the following shell snippet in the "
"B<preinst>, B<postinst> and B<postrm> maintainer scripts:"
msgstr ""
"L'ensemble de ces pré-requis est mis en oeuvre en utilisant les commandes "
"shell suivantes dans les scripts B<preinst>, B<postinst> et B<postrm> :"

#. type: Plain text
#: dpkg-maintscript-helper.1:56
#, no-wrap
msgid ""
"    dpkg-maintscript-helper rm_conffile \\e\n"
"        I<conffile> I<lastversion> I<package> -- \"$@\"\n"
msgstr ""
"    dpkg-maintscript-helper rm_conffile \\e\n"
"        I<fichier-de-configuration> I<dernière-version> I<paquet> -- \"$@\"\n"

#. type: Plain text
#: dpkg-maintscript-helper.1:66
msgid ""
"I<conffile> is the filename of the conffile to remove.  I<lastversion> is "
"the last version of the package that contained the conffile (or the last "
"version of the package that did not take care to remove the obsolete "
"conffile if this was not immediately implemented).  If I<lastversion> is "
"empty or omitted, then the operation is tried on every upgrade. I<package> "
"is the package name, it's optional as it will default to "
"$DPKG_MAINTSCRIPT_PACKAGE (this variable is set by dpkg to the name of the "
"package acted upon). All the parameters of the maintainer scripts have to be "
"forwarded to the program after \"--\"."
msgstr ""
"I<fichier-de-configuration> est le nom du fichier de configuration à "
"supprimer. I<dernière-version> est la dernière version du paquet qui le "
"fournissait (ou la dernière version du paquet qui ne prenait pas soin de "
"supprimer le fichier de configuration obsolète si la suppression correcte "
"n'a pas été immédiatement mise en oeuvre). Si I<dernière-version> est vide "
"ou est omis, cette suppression sera tenté pour toute mise à jour. I<paquet> "
"est le nom du paquet. Ce paramètre est optionnel, la valeur par défaut étant "
"$DPKG_MAINTSCRIPT_PACKAGE (cette variable est positionnée par dpkg sur le "
"nom du paquet sur lequel il travaille). Tous les paramètres des scripts du "
"responsable doivent être redirigés au programme après « -- »."

#. type: Plain text
#: dpkg-maintscript-helper.1:75
msgid ""
"Current implementation: in the B<preinst>, it checks if the conffile was "
"modified and renames it either to I<conffile>B<.dpkg-remove> (if not "
"modified) or to I<conffile>B<.dpkg-backup> (if modified). In the "
"B<postinst>, the latter file is renamed to I<conffile>B<.dpkg-bak> and kept "
"for reference as it contains user modifications but the former will be "
"removed. If the package upgrade aborts, the B<postrm> reinstalls the "
"original conffile. During purge, the B<postrm> will also delete the B<.dpkg-"
"bak> file kept up to now."
msgstr ""
"Détails de la mise en oeuvre actuelle : dans le script B<preinst>, il est "
"vérifié si le fichier de configuration a été modifié. Celui-ci est alors "
"renommé, soit en I<fichier-de-configuration>B<.dpkg-remove> s'il n'a pas été "
"modifié, soit en I<fichier-de-configuration>B<.dpkg-backup> s'il l'a été. "
"Dans le script B<postinst>, ce dernier fichier est ensuite renommé en "
"I<fichier-de-configuration>B<.dpkg-bak> et conservé pour référence puisqu'il "
"contient des modifications locales, mais le premier est supprimé. Si la mise "
"à jour du paquet est interrompue, le script B<postrm> remet en place le "
"fichier de configuration d'origine. À la purge du paquet, le script "
"B<postrm> supprimera également le fichier B<.dpkg-bak> qui avait été "
"conservé jusque là."

#. type: SS
#: dpkg-maintscript-helper.1:76
#, no-wrap
msgid "RENAMING A CONFFILE"
msgstr "RENOMMAGE D'UN FICHIER DE CONFIGURATION"

#. type: Plain text
#: dpkg-maintscript-helper.1:83
msgid ""
"If a conffile is moved from one location to another, you need to make sure "
"you move across any changes the user has made. This may seem a simple change "
"to the B<preinst> script at first, however that will result in the user "
"being prompted by dpkg to approve the conffile edits even though they are "
"not responsible of them."
msgstr ""
"Si un fichier de configuration est déplacé à un autre endroit, il est "
"nécessaire de garantir la préservation des modifications locales. À première "
"vue, cela peut sembler être une simple modification dans le script "
"B<preinst>, mais cela risque de résultat dans une demande, par dpkg, "
"d'approbation de modifications locales qui n'existent pas réellement."

#. type: Plain text
#: dpkg-maintscript-helper.1:87
msgid ""
"Graceful renaming can be implemented by putting the following shell snippet "
"in the B<preinst>, B<postinst> and B<postrm> maintainer scripts:"
msgstr ""
"Un renommage élégant peut être mis en oeuvre avec les extraits shell qui "
"suivent, dans les scripts B<preinst>, B<postinst> et B<postrm>."

#. type: Plain text
#: dpkg-maintscript-helper.1:90
#, no-wrap
msgid ""
"    dpkg-maintscript-helper mv_conffile \\e\n"
"        I<oldconffile> I<newconffile> I<lastversion> I<package> -- \"$@\"\n"
msgstr ""
"    dpkg-maintscript-helper mv_conffile \\e\n"
"        I<ancien-fichier> I<nouveau-fichier> I<dernière-version> I<paquet> -- \"$@\"\n"

#. type: Plain text
#: dpkg-maintscript-helper.1:100
msgid ""
"I<oldconffile> and I<newconffile> are the old and new name of the conffile "
"to rename. I<lastversion> is the last version of the package that contained "
"the conffile with the old name. If I<lastversion> is empty or omitted, then "
"the operation is tried on every upgrade (note: it's safer to give the "
"version and have the operation tried only once). I<package> is the package "
"name, it's optional as it will default to $DPKG_MAINTSCRIPT_PACKAGE (this "
"variable is set by dpkg to the name of the package acted upon). All the "
"parameters of the maintainer scripts have to be forwarded to the program "
"after \"--\"."
msgstr ""
"I<ancien-fichier> et I<nouveau-fichier> sont les deux noms successifs du "
"fichier de configuration. I<dernière-version> est la dernière version du "
"paquet qui contenait le fichier de configuration avec l'ancien nnom. Si "
"I<dernière-version> est vide ou manquant, l'opération sera tentée à chaque "
"mise à jour (il est plus sûr d'indiquer la bonne version afin qe l'opération "
"ne soit tentée qu'une fois). I<paquet> est le nom du paquet. Ce paramètre "
"est optionnel, la valeur par défaut étant $DPKG_MAINTSCRIPT_PACKAGE (cette "
"variable est positionnée par dpkg sur le nom du paquet sur lequel il "
"travaille). Tous les paramètres des scripts du responsable doivent être "
"redirigés au programme après « -- »."

#. type: Plain text
#: dpkg-maintscript-helper.1:108
msgid ""
"Current implementation: the B<preinst> checks if the conffile has been "
"modified, if yes it's left on place otherwise it's renamed to "
"I<oldconffile>B<.dpkg-remove>. On configuration, the B<postinst> removes "
"I<oldconffile>B<.dpkg-remove> and renames I<oldconffile> to I<newconffile> "
"if I<oldconffile> is still available. On abort-upgrade/abort-install, the "
"B<postrm> renames I<oldconffile>B<.dpkg-remove> back to I<oldconffile> if "
"required."
msgstr ""
"Détails de la mise en oeuvre actuelle : dans le script B<preinst>, il est "
"vérifié si le fichier de configuration a été modifié. Celui-ci est alors "
"soit laissé en place s'il a été modifié, soit renommé en I<ancien-fichier>B<."
"dpkg-remove> s'il ne l'a pas été. Lors de la configurations, le script "
"B<postinst> supprime I<ancien-fichier>B<.dpkg-remove> et renomme I<ancien-"
"fichier> and I<nouveau-fichier> si I<ancien-fichier> existe toujours Si la "
"mise à jour ou l'installation sont interrompues, le script B<postrm> renomme "
"I<ancien-fichier>B<.dpkg-remove> en I<ancien-fichier> si c'est indispensable."

#. type: SH
#: dpkg-maintscript-helper.1:109
#, no-wrap
msgid "INTEGRATION IN PACKAGES"
msgstr "INTÉGRATION DANS LES PAQUETS"

#. type: Plain text
#: dpkg-maintscript-helper.1:116
#, fuzzy
#| msgid ""
#| "Given that B<dpkg-maintscript-helper> is used in the B<preinst>, using it "
#| "unconditionally requires a pre-dependency to ensure that the required "
#| "version of dpkg has been configured before. The required version depends "
#| "on the command used, for B<rm_conffile> and B<mv_conffile> it is 1.15.7.2:"
msgid ""
"Given that B<dpkg-maintscript-helper> is used in the B<preinst>, using it "
"unconditionally requires a pre-dependency to ensure that the required "
"version of dpkg has been unpacked before. The required version depends on "
"the command used, for B<rm_conffile> and B<mv_conffile> it is 1.15.7.2:"
msgstr ""
"Comme B<dpkg-maintscript-helper> est utilisé dans le script B<preinst>, "
"l'utiliser sans conditions impose une pré-dépendance afin de garantir que la "
"version minimale nécessaire de dpkg et bien été préalablement configurée. La "
"version nécessaire dépend de la commande utilisée. La version minimale "
"dépend de la commande à utiliser : ainsi pour B<rm_conffile> et "
"B<mw_conffile>, cette version est 1.15.7.2 :"

#. type: Plain text
#: dpkg-maintscript-helper.1:118
#, fuzzy, no-wrap
#| msgid "    Pre-Depends: dpkg (E<gt>= 1.15.7.2)\n"
msgid "    B<Pre-Depends:> dpkg (E<gt>= 1.15.7.2)\n"
msgstr "    Pre-Depends: dpkg (E<gt>= 1.15.7.2)\n"

#. type: Plain text
#: dpkg-maintscript-helper.1:123
msgid ""
"But in many cases the operation done by the program is not critical for the "
"package, and instead of using a pre-dependency we can call the program only "
"if we know that the required command is supported by the currently installed "
"dpkg:"
msgstr ""
"Cependant, dans de nombreux cas, l'opération réalisée par le programme n'est "
"pas critique pour le paquet et au lieu d'utiliser une pré-dépendance, il est "
"possible de ne lancer le programme que si on a la certitude que la commande "
"nécessaire est gérée par la version actuellement installée de dpkg :"

#. type: Plain text
#: dpkg-maintscript-helper.1:127
#, fuzzy, no-wrap
#| msgid ""
#| "    if dpkg-maintscript-helper supports E<lt>commandE<gt>; then\n"
#| "        dpkg-maintscript-helper E<lt>commandE<gt> ...\n"
#| "    fi\n"
msgid ""
"    if dpkg-maintscript-helper supports I<command>; then\n"
"        dpkg-maintscript-helper I<command> ...\n"
"    fi\n"
msgstr ""
"    if dpkg-maintscript-helper supports E<lt>commandE<gt>; then\n"
"        dpkg-maintscript-helper E<lt>commandE<gt> ...\n"
"    fi\n"

#. type: Plain text
#: dpkg-maintscript-helper.1:130
msgid "Copyright \\(co 2010 Rapha\\[:e]l Hertzog"
msgstr "Copyright \\(co 2010 Rapha\\[:e]l Hertzog"

#. type: Plain text
#: dpkg-maintscript-helper.1:132
msgid "Copyright \\(co 2008 Joey Hess"
msgstr "Copyright \\(co 2008 Joey Hess"

#. type: Plain text
#: dpkg-maintscript-helper.1:134
msgid "Copyright \\(co 2007 Guillem Jover"
msgstr "Copyright \\(co 2007 Guillem Jover"

#. type: Plain text
#: dpkg-maintscript-helper.1:136
msgid "Copyright \\(co 2005 Scott James Remnant"
msgstr "Copyright \\(co 2005 Scott James Remnant"

#. type: TH
#: dpkg-mergechangelogs.1:1
#, no-wrap
msgid "dpkg-mergechangelogs"
msgstr "dpkg-mergechangelogs"

#. type: Plain text
#: dpkg-mergechangelogs.1:4
msgid "dpkg-mergechangelogs - 3-way merge of debian/changelog files"
msgstr "dpkg-mergechangelogs - fusion triple de fichiers debian/changelog"

#. type: Plain text
#: dpkg-mergechangelogs.1:8
msgid ""
"B<dpkg-mergechangelogs> [I<option>...] I<old> I<new-a> I<new-b> [I<out>]"
msgstr ""
"B<dpkg-mergechangelogs> [I<option>...] I<ancien> I<nouveau-a> I<nouveau-b> "
"[I<sortie>]"

#. type: Plain text
#: dpkg-mergechangelogs.1:15
msgid ""
"This program will use the 3 provided versions of the Debian changelog to "
"generate a merged changelog file. The resulting changelog is stored in the "
"file I<out> or output to the standard output if that parameter is not given."
msgstr ""
"Ce programme utilise les 3 versions fournies de journal des modifications "
"(« changelog ») Debian pour créer un fichier de journalisation fusionné. Le "
"résultat est placé dans le fichier I<sortie> ou affiché sur la sortie "
"standard si ce paramètre est omis."

#. type: Plain text
#: dpkg-mergechangelogs.1:26
msgid ""
"Each entry is identified by its version number and they are assumed to be "
"not conflicting, they are simply merged in the right order (by decreasing "
"version number). When B<--merge-prereleases> is used, the part of the "
"version number after the last tilde is dropped so that 1.0-1~exp1 and "
"1.0-1~exp5 are considered to be the same entry. When the same version is "
"available in both I<new-a> and I<new-b>, a standard line-based 3-way merge "
"is attempted (provided that the module Algorithm::Merge is available \\[em] "
"it's part of the package libalgorithm-merge-perl \\[em] otherwise you get a "
"global conflict on the content of the entry)."
msgstr ""
"Chaque entrée est identifiée par son numéro de version. Les entrées ne sont "
"pas censées entrer en conflit, mais sont simplement fusionnées dans le bon "
"ordre (par numéro de version décroissant). Si l'option B<--merge-"
"prereleases> est utilisée, la partie de numéro de version qui suit le "
"dernier caractère tilde est omise ; les versions 1.0-1~exp1 et 1.0-1exp5 "
"sont ainsi considérées comme la même entrée.  Quand la même version est "
"mentionnée dans I<nouveau-a> et I<nouveau-b>, une fusion triple ligne à "
"ligne  standard est tentée (sous réserve que le module Algorithm::Merge soit "
"disponible \\[em] il est fourni par le paquet libalgorithm-merge-perl "
"\\[em]. Dans le cas contraire, un conflit global est créé dans le contexte "
"de cette entrée."

#. type: TP
#: dpkg-mergechangelogs.1:28
#, no-wrap
msgid "B<--merge-prereleases>, B<-m>"
msgstr "B<--merge-prereleases>, B<-m>"

#. type: Plain text
#: dpkg-mergechangelogs.1:33
msgid ""
"Drop the part after the last tilde in the version number when doing version "
"comparison to identify if two entries are supposed to be the same or not."
msgstr ""
"Omet la version qui suit le dernier caractère tilde dans les numéros de "
"versions, lors de la comparaison qui permet d'identifier si ceux entrées "
"sont les mêmes ou pas."

#. type: Plain text
#: dpkg-mergechangelogs.1:38
msgid ""
"This is useful when you keep using the same changelog entry but you increase "
"its version number regularly. For instance, you might have 2.3-1~exp1, "
"2.3-1~exp2, ... until the official release 2.3-1 and they are all the same "
"changelog entry that has evolved over time."
msgstr ""
"Cette option utile lorsqu'on conserve la même entrée de journal mais que la "
"version est incrémentée régulièrement. Par exemple, cela permet d'utiliser "
"les numéros 2.3-1~exp1, 2.3-1~exp2, etc. jusqu'à une publication officielle "
"numérotée 2.3-1, toutes ces versions étant considérées comme l'évolution "
"dans le temps de la même version."

#. type: SH
#: dpkg-mergechangelogs.1:45
#, no-wrap
msgid "LIMITATIONS"
msgstr "LIMITATIONS"

#. type: Plain text
#: dpkg-mergechangelogs.1:50
msgid ""
"Anything that is not parsed by Dpkg::Changelog is lost during the merge.  "
"This might include stuff like vim modelines, comments which were not "
"supposed to be there, etc."
msgstr ""
"Tout ce qui ne peut pas être analysé par Dpkg::Changelog est perdu lors de "
"la fusion. Cela peut comprendre des lignes de mode vim, des commentaires qui "
"ne sont pas censés se trouver là, etc."

#. type: SH
#: dpkg-mergechangelogs.1:51
#, no-wrap
msgid "INTEGRATION WITH GIT"
msgstr "INTÉGRATION AVEC GIT"

#. type: Plain text
#: dpkg-mergechangelogs.1:56
msgid ""
"If you want to use this program to merge Debian changelog files in a git "
"repository, you have first to register a new merge driver in B<.git/config> "
"or B<~/.gitconfig>:"
msgstr ""
"Si vous souhaitez utiliser ce programme pour fusionner des journaux de "
"modifications Debian dans un dépôt git, vous devez tout d'abord enregistrer "
"un nouveau pilote de fusion dan B<.git/config> ou B<~/.gitconfig> :"

#. type: Plain text
#: dpkg-mergechangelogs.1:60
#, no-wrap
msgid ""
" [merge \"dpkg-mergechangelogs\"]\n"
"     name = debian/changelog merge driver\n"
"     driver = dpkg-mergechangelogs -m %O %A %B %A\n"
msgstr ""
" [merge \"dpkg-mergechangelogs\"]\n"
"     name = debian/changelog merge driver\n"
"     driver = dpkg-mergechangelogs -m %O %A %B %A\n"

#. type: Plain text
#: dpkg-mergechangelogs.1:64
msgid ""
"Then you have to setup the merge attribute for the debian/changelog file "
"either in B<.gitattributes> in the repository itself, or in B<.git/info/"
"attributes>:"
msgstr ""
"Vous devez ensuite configurer l'attribut de fusion pour le fichier debian/"
"changelog, soit dans B<.gitattributes> du dépôt lui-même, soit dans B<.git/"
"info/attributes> :"

#. type: Plain text
#: dpkg-mergechangelogs.1:66
#, no-wrap
msgid " debian/changelog merge=dpkg-mergechangelogs\n"
msgstr " debian/changelog merge=dpkg-mergechangelogs\n"

#. type: Plain text
#: dpkg-mergechangelogs.1:68
msgid "Copyright \\(co 2009-2010 Rapha\\[:e]l Hertzog"
msgstr "Copyright \\(co 2009-2010 Rapha\\[:e]l Hertzog"

#. type: TH
#: dpkg-name.1:6
#, no-wrap
msgid "dpkg-name"
msgstr "dpkg-name"

#. type: Plain text
#: dpkg-name.1:9
msgid "dpkg-name - rename Debian packages to full package names"
msgstr "dpkg-name - redonne aux paquets Debian leur nom complet"

#. type: Plain text
#: dpkg-name.1:15
#, fuzzy
#| msgid "B<dpkg-name> [I<options>] [B<-->] I<files>"
msgid "B<dpkg-name> [I<option>...] [B<-->] I<file>..."
msgstr "B<dpkg-name> [I<options>] [B<-->] I<fichiers>"

#. type: Plain text
#: dpkg-name.1:29
#, fuzzy
#| msgid ""
#| "This manual page documents the B<dpkg-name> program which provides an "
#| "easy way to rename B<Debian> packages into their full package names. A "
#| "full package name consists of "
#| "I<E<lt>packageE<gt>_E<lt>versionE<gt>_E<lt>architectureE<gt>."
#| "E<lt>package_typeE<gt>> as specified in the control file of the package. "
#| "The I<E<lt>versionE<gt>> part of the filename consists of the upstream "
#| "version information optionally followed by a hyphen and the revision "
#| "information. The I<E<lt>package_typeE<gt>> part comes from that field if "
#| "present or fallbacks to B<deb>."
msgid ""
"This manual page documents the B<dpkg-name> program which provides an easy "
"way to rename B<Debian> packages into their full package names. A full "
"package name consists of I<package>B<_>I<version>B<_>I<architecture>B<."
">I<package-type> as specified in the control file of the package. The "
"I<version> part of the filename consists of the upstream version information "
"optionally followed by a hyphen and the revision information. The I<package-"
"type> part comes from that field if present or fallbacks to B<deb>."
msgstr ""
"Cette page de manuel documente le programme B<dpkg-name> qui fournit une "
"façon simple de redonner aux paquets B<Debian> leur nom complet. Ce nom "
"consiste en une chaîne "
"« I<E<lt>paquetE<gt>_E<lt>versionE<gt>_E<lt>architectureE<gt>type_de_paquetE<gt>> » "
"telle qu'elle est indiquée dans le fichier « control » du paquet. La partie "
"I<E<lt>versionE<gt>> du nom est composée d'informations sur la version "
"originelle qui peuvent ou non être suivies d'un trait d'union et "
"d'informations sur la révision. La partie I<E<lt>type_de_paquetE<gt>> "
"provient de ce champ s'il existe. La valeur par défault étant B<deb>."

#. type: TP
#: dpkg-name.1:31
#, no-wrap
msgid "B<-a>, B<--no-architecture>"
msgstr "B<-a>, B<--no-architecture>"

#. type: Plain text
#: dpkg-name.1:34
msgid "The destination filename will not have the architecture information."
msgstr "Le nom du fichier n'aura pas l'information sur l'architecture."

#. type: TP
#: dpkg-name.1:34
#, no-wrap
msgid "B<-k>, B<--symlink>"
msgstr "B<-k>, B<--symlink>"

#. type: Plain text
#: dpkg-name.1:37
msgid "Create a symlink, instead of moving."
msgstr "Faire un lien symbolique plutôt qu'une création de fichier."

#. type: TP
#: dpkg-name.1:37
#, no-wrap
msgid "B<-o>, B<--overwrite>"
msgstr "B<-o>, B<--overwrite>"

#. type: Plain text
#: dpkg-name.1:41
msgid ""
"Existing files will be overwritten if they have the same name as the "
"destination filename."
msgstr ""
"Remplace des fichiers existants s'ils ont le même nom que le fichier de "
"destination."

#. type: TP
#: dpkg-name.1:41
#, no-wrap
msgid "B<-s>, B<--subdir> [I<dir>]"
msgstr "B<-s>, B<--subdir> [I<rep>]"

#. type: Plain text
#: dpkg-name.1:53
#, fuzzy
#| msgid ""
#| "Files will be moved into a subdirectory. If the directory given as "
#| "argument exists the files will be moved into that directory otherwise the "
#| "name of the target directory is extracted from the section field in the "
#| "control part of the package. The target directory will be `unstable/"
#| "binary-E<lt>architectureE<gt>/E<lt>sectionE<gt>'. If the section is not "
#| "found in the control, then `no-section' is assumed, and in this case, as "
#| "well as for sections `non-free' and `contrib' the target directory is "
#| "`E<lt>sectionE<gt>/binary-E<lt>architectureE<gt>'. The section field "
#| "isn't required so a lot of packages will find their way to the `no-"
#| "section' area. Use this option with care, it's messy."
msgid ""
"Files will be moved into a subdirectory. If the directory given as argument "
"exists the files will be moved into that directory otherwise the name of the "
"target directory is extracted from the section field in the control part of "
"the package. The target directory will be `unstable/binary-I<architecture>/"
"I<section>'. If the section is not found in the control, then `no-section' "
"is assumed, and in this case, as well as for sections `non-free' and "
"`contrib' the target directory is `I<section>/binary-I<architecture>'. The "
"section field isn't required so a lot of packages will find their way to the "
"`no-section' area. Use this option with care, it's messy."
msgstr ""
"Met les fichiers dans rep. Si le répertoire donné en argument existe, les "
"fichiers sont déplacés dans ce répertoire ; sinon le répertoire cible, "
"extrait du champ « section » que contient la partie de contrôle du paquet, "
"sera « unstable/binary-E<lt>architectureE<gt>/E<lt>sectionE<gt> ». Quand la "
"section est « non-free » ou « contrib », ou bien quand aucune information "
"sur la section n'est trouvée dans le fichier « control », le répertoire "
"cible est « E<lt>sectionE<gt>/binary-E<lt>architectureE<gt> ». Le champ "
"« section » est facultatif ; aussi beaucoup de paquets sont dans la zone "
"« no-section ». Utilisez cette option avec soin : elle est compliquée."

#. type: TP
#: dpkg-name.1:53
#, no-wrap
msgid "B<-c>, B<--create-dir>"
msgstr "B<-c>, B<--create-dir>"

#. type: Plain text
#: dpkg-name.1:58
msgid ""
"This option can used together with the -s option. If a target directory "
"isn't found it will be created automatically.  B<Use this option with care.>"
msgstr ""
"On peut utiliser cette option avec l'option -s. Quand un répertoire cible "
"n'est pas trouvé, il est créé automatiquement.  B<Utilisez cette option avec "
"soin.>"

#. type: TP
#: dpkg-name.1:61
#, no-wrap
msgid "B<-v>, B<--version>"
msgstr "B<-v>, B<--version>"

#. type: TP
#: dpkg-name.1:66
#, no-wrap
msgid "B<dpkg-name bar-foo.deb>"
msgstr "B<dpkg-name bar-foo.deb>"

#. type: Plain text
#: dpkg-name.1:71
msgid ""
"The file `bar-foo.deb' will be renamed to bar-foo_1.0-2_i386.deb or "
"something similar (depending on whatever information is in the control part "
"of `bar-foo.deb')."
msgstr ""
"Le nom du fichier « bar-foo.deb » devient « bar-foo_1.0-2_i386.deb » ou "
"quelque chose de similaire suivant les renseignements que contient la partie "
"de contrôle de « bar-foo.deb »."

#. type: TP
#: dpkg-name.1:71
#, no-wrap
msgid "B<find /root/debian/ -name \\(aq*.deb\\(aq | xargs -n 1 dpkg-name -a>"
msgstr "B<find /root/debian/ -name \\(aq*.deb\\(aq | xargs -n 1 dpkg-name -a>"

#. type: Plain text
#: dpkg-name.1:76
msgid ""
"All files with the extension `deb' in the directory /root/debian and its "
"subdirectory's will be renamed by dpkg-name if required into names with no "
"architecture information."
msgstr ""
"Cette commande redonne leur nom complet à tous les fichiers qui se trouvent "
"dans le répertoire /root/debian et ses sous-répertoires et qui possèdent une "
"extension « deb », mais supprime l'information sur l'architecture."

#. type: TP
#: dpkg-name.1:76
#, no-wrap
msgid "B<find -name \\(aq*.deb\\(aq | xargs -n 1 dpkg-name -a -o -s -c>"
msgstr "B<find -name \\(aq*.deb\\(aq | xargs -n 1 dpkg-name -a -o -s -c>"

#. type: Plain text
#: dpkg-name.1:82
msgid ""
"B<Don't do this.> Your archive will be messed up completely because a lot of "
"packages don't come with section information.  B<Don't do this.>"
msgstr ""
"B<Ne faites pas ça !> L'archive sera complètement gâchée par des paquets qui "
"ne possèdent pas d'informations sur la section. B<Ne faites pas ça !>"

#. type: TP
#: dpkg-name.1:82
#, no-wrap
msgid "B<dpkg --build debian-tmp && dpkg-name -o -s .. debian-tmp.deb>"
msgstr "B<dpkg --build debian-tmp && dpkg-name -o -s .. debian-tmp.deb>"

#. type: Plain text
#: dpkg-name.1:85
msgid "This can be used when building new packages."
msgstr ""
"On peut se servir de cette commande lors de la construction d'un nouveau "
"paquet."

#. type: Plain text
#: dpkg-name.1:95
#, fuzzy
#| msgid ""
#| "Some packages don't follow the name structure "
#| "E<lt>packageE<gt>_E<lt>versionE<gt>_E<lt>architectureE<gt>.deb. Packages "
#| "renamed by dpkg-name will follow this structure. Generally this will have "
#| "no impact on how packages are installed by B<dselect>(1)/ B<dpkg>(1), but "
#| "other installation tools might depend on this naming structure."
msgid ""
"Some packages don't follow the name structure "
"I<package>B<_>I<version>B<_>I<architecture>B<.deb>.  Packages renamed by "
"dpkg-name will follow this structure. Generally this will have no impact on "
"how packages are installed by B<dselect>(1)/B<dpkg>(1), but other "
"installation tools might depend on this naming structure."
msgstr ""
"Certains paquets ne respectent pas l'organisation "
"E<lt>paquetE<gt>_E<lt>versionE<gt>_E<lt>architectureE<gt>.deb. Les paquets "
"traités par dpkg-name la respecte. Cela n'a pas de conséquence sur la façon "
"dont B<dselect>(1) ou B<dpkg>(1) installe les paquets, mais il se peut que "
"d'autres systèmes d'installation aient besoin de cette organisation."

#. type: Plain text
#: dpkg-name.1:103
msgid ""
"B<deb>(5), B<deb-control>(5), B<dpkg>(1), B<dpkg-deb>(1), B<find>(1), "
"B<xargs>(1)."
msgstr ""
"B<deb>(5), B<deb-control>(5), B<dpkg>(1), B<dpkg-deb>(1), B<find>(1), "
"B<xargs>(1)."

#. type: Plain text
#: dpkg-name.1:106
msgid "Copyright \\(co 1995,1996 Erick Branderhorst"
msgstr "Copyright \\(co 1995,1996 Erick Branderhorst"

#. type: TH
#: dpkg-parsechangelog.1:1
#, no-wrap
msgid "dpkg-parsechangelog"
msgstr "dpkg-parsechangelog"

#. type: Plain text
#: dpkg-parsechangelog.1:4
msgid "dpkg-parsechangelog - parse Debian changelog files"
msgstr "dpkg-parsechangelog - Analyser un fichier changelog Debian."

#. type: Plain text
#: dpkg-parsechangelog.1:8
#, fuzzy
#| msgid "B<dpkg-parsechangelog> [I<options>]"
msgid "B<dpkg-parsechangelog> [I<option>...]"
msgstr "B<dpkg-parsechangelog> [I<options>]"

#. type: Plain text
#: dpkg-parsechangelog.1:14
msgid ""
"B<dpkg-parsechangelog> reads and parses the changelog of an unpacked Debian "
"source tree and outputs the information in it to standard output in a "
"machine-readable form."
msgstr ""
"B<dpkg-parsechangelog> lit et fait l'analyse du fichier « changelog » d'une "
"arborescence source dépaquetée et affiche les informations qu'il contient "
"sur la sortie standard et sous une forme lisible par la machine."

#. type: TP
#: dpkg-parsechangelog.1:26
#, no-wrap
msgid "B<-L>I<libdir>"
msgstr "B<-L>I<rep_lib>"

#. type: Plain text
#: dpkg-parsechangelog.1:33
msgid ""
"Specify an additional directory to search for parser scripts.  This "
"directory is searched before the default directories which are currently B</"
"usr/local/lib/dpkg/parsechangelog> and B</usr/lib/dpkg/parsechangelog>."
msgstr ""
"Spécifie un répertoire supplémentaire pour la recherche de scripts "
"d'analyse. Ce répertoire est examiné avant les répertoires par défaut qui "
"sont B</usr/local/lib/dpkg/parsechangelog> et B</usr/lib/dpkg/"
"parsechangelog>."

#. type: SS
#: dpkg-parsechangelog.1:39
#, no-wrap
msgid "Parser Options"
msgstr "Options de filtrage"

#. type: Plain text
#: dpkg-parsechangelog.1:44
msgid ""
"The following options can be used to influence the output of the changelog "
"parser, e.g. the range of entries or the format of the output. They need to "
"be supported by the parser script in question. See also B<CAVEATS>."
msgstr ""
"Les options suivantes peuvent être utilisées pour influencer la sortie de "
"l'analyseur du journal des modifications (« changelog »), par exemple la "
"gamme d'entrées ou le format de sortie. Ils doivent être gérés par le script "
"d'analyse en question. Voir aussi B<CAVEATS>."

#. type: TP
#: dpkg-parsechangelog.1:44
#, no-wrap
msgid "B<--format>I< outputformat>"
msgstr "B<--format>I< outputformat>"

#. type: Plain text
#: dpkg-parsechangelog.1:53
msgid ""
"Set the output format. Currently supported values are I<dpkg> and "
"I<rfc822>.  I<dpkg> is the classic output format (from before this option "
"existed) and the default. It consists of one paragraph in Debian control "
"format (see B<deb-control>(5)). If more than one entry is requested, then "
"most fields are taken from the latest entry, except otherwise stated:"
msgstr ""
"Règle le format de sortie. Actuellement les valeurs gérées sont I<dpkg> et "
"I<rfc822>. I<dpkg> est le format classique de sortie (avant que cette option "
"n'existe) et l'option par défaut. Il se compose d'un paragraphe dans le "
"format du fichier de contrôle Debian (voir B<deb-control>(5)). Si plus d'une "
"entrée est demandée, alors la plupart des champs sont tirés de la dernière "
"entrée, sauf s'il y a l'indication :"

#. type: TP
#: dpkg-parsechangelog.1:54
#, fuzzy, no-wrap
#| msgid "B<Source:> E<lt>pkg nameE<gt>"
msgid "B<Source:>I< pkg-name>"
msgstr "B<Source:> E<lt>nom du paquetE<gt>"

#. type: TP
#: dpkg-parsechangelog.1:56
#, fuzzy, no-wrap
#| msgid "B<Version:> E<lt>versionE<gt>"
msgid "B<Version:>I< version>"
msgstr "B<Version:> E<lt>versionE<gt>"

#. type: TP
#: dpkg-parsechangelog.1:58
#, fuzzy, no-wrap
#| msgid "B<Distribution:> E<lt>target distributionE<gt>"
msgid "B<Distribution:>I< target-distribution>"
msgstr "B<Distribution:> E<lt>distribution cibleE<gt>"

#. type: TP
#: dpkg-parsechangelog.1:60
#, fuzzy, no-wrap
#| msgid "B<Urgency:> E<lt>urgencyE<gt>"
msgid "B<Urgency:>I< urgency>"
msgstr "B<Urgency:> E<lt>prioritéE<gt>"

#. type: Plain text
#: dpkg-parsechangelog.1:63
msgid "The highest urgency of all included entries is used."
msgstr "La priorité la plus haute de celles indiquées est utilisée."

#. type: TP
#: dpkg-parsechangelog.1:63
#, fuzzy, no-wrap
#| msgid "B<Maintainer:> E<lt>authorE<gt>"
msgid "B<Maintainer:>I< author>"
msgstr "B<Maintainer:> E<lt>auteurE<gt>"

#. type: TP
#: dpkg-parsechangelog.1:65
#, fuzzy, no-wrap
#| msgid "B<Date:> E<lt>dateE<gt>"
msgid "B<Date:>I< date>"
msgstr "B<Date:> E<lt>dateE<gt>"

#. type: TP
#: dpkg-parsechangelog.1:67
#, fuzzy, no-wrap
#| msgid "B<Closes:> E<lt>bug numberE<gt>"
msgid "B<Closes:>I< bug-number>"
msgstr "B<Closes:> E<lt>Numéro de bogueE<gt>"

#. type: Plain text
#: dpkg-parsechangelog.1:70
msgid "The Closes fields of all included entries are merged."
msgstr "Les champs « Closes » de toutes les entrées incluses sont fusionnés."

#. type: TP
#: dpkg-parsechangelog.1:70
#, fuzzy, no-wrap
#| msgid "B<Changes:> E<lt>changelog entriesE<gt>"
msgid "B<Changes:>I< changelog-entries>"
msgstr "B<Changes:> E<lt>entrées du fichier des changementsE<gt>"

#. type: Plain text
#: dpkg-parsechangelog.1:77
msgid ""
"The text of all changelog entries is concatenated. To make this field a "
"valid Debian control format multiline field empty lines are replaced with a "
"single full stop and all lines is intended by one space character. The exact "
"content depends on the changelog format."
msgstr ""
"Le texte de toutes les entrées de changelog est concaténé. Pour faire de ce "
"champ un champ de contrôle Debian valide, les lignes multiples qui sont "
"vides sont remplacées par un point B<\".\"> et toutes les lignes sont "
"intentées par un seul espace. Le contenu exact dépend du format du changelog."

#. type: Plain text
#: dpkg-parsechangelog.1:80
msgid "There might be additional user-defined fields present."
msgstr ""
"Il est possible d'avoir d'autres champs qui sont définis par l'utilisateur."

#. type: Plain text
#: dpkg-parsechangelog.1:84
msgid ""
"The B<rfc822> format uses the same fields but outputs a separate paragraph "
"for each changelog entry so that all metadata for each entry is preserved."
msgstr ""
"Le format B<rfc822> utilise les mêmes champs mais le résultat est un "
"paragraphe distinct pour chaque entrée du changelog afin que toutes les "
"métadonnées de chaque entrée soit préservées."

#. type: TP
#: dpkg-parsechangelog.1:84
#, no-wrap
msgid "B<--since> I<version>, B<-s>I<version>,B< -v>I<version>"
msgstr "B<--since> I<version>, B<-s>I<version>,B< -v>I<version>"

#. type: Plain text
#: dpkg-parsechangelog.1:87
msgid "include all changes later than I<version>."
msgstr "inclut tous les changements qui ont suivi la I<version>."

#. type: TP
#: dpkg-parsechangelog.1:87
#, no-wrap
msgid "B<--until> I<version>, B<-u>I<version>"
msgstr "B<--until> I<version>, B<-u>I<version>"

#. type: Plain text
#: dpkg-parsechangelog.1:90
msgid "include all changes earlier than I<version>."
msgstr "inclut tous les changements qui ont eu lieu avant la I<version>."

#. type: TP
#: dpkg-parsechangelog.1:90
#, no-wrap
msgid "B<--from> I<version>, B<-f>I<version>"
msgstr "B<--from> I<version>, B<-f>I<version>"

#. type: Plain text
#: dpkg-parsechangelog.1:93
msgid "include all changes equal or later than I<version>."
msgstr "inclut tous les changements depuis la I<version> (incluse)."

#. type: TP
#: dpkg-parsechangelog.1:93
#, no-wrap
msgid "B<--to> I<version>, B<-t>I<version>"
msgstr "B<--to> I<version>, B<-t>I<version>"

#. type: Plain text
#: dpkg-parsechangelog.1:96
msgid "include all changes up to or equal than I<version>."
msgstr "inclut tous les changements apportés jusqu'à la I<version> comprise."

#. type: TP
#: dpkg-parsechangelog.1:96
#, no-wrap
msgid "B<--count> I<number>, B<-c>I<number>, B<-n>I<number>"
msgstr "B<--count> I<nombre>, B<-c>I<nombre>, B<-n>I<nombre>"

#. type: Plain text
#: dpkg-parsechangelog.1:100
msgid ""
"include I<number> entries from the top (or the tail if I<number> is lower "
"than 0)."
msgstr ""
"inclut ce I<nombre> d'entrées depuis le début (ou la fin si le I<nombre> est "
"inférieur à 0)."

#. type: TP
#: dpkg-parsechangelog.1:100
#, no-wrap
msgid "B<--offset> I<number>, B<-o>I<number>"
msgstr "B<--offset> I<nombre>, B<-o>I<nombre>"

#. type: Plain text
#: dpkg-parsechangelog.1:104
msgid ""
"change the starting point for --count, counted from the top (or the tail if "
"I<number> is lower than 0)."
msgstr ""
"modifie le point de départ pour « --count », à compter du début (ou la fin "
"si le I<nombre> est inférieure à 0)."

#. type: TP
#: dpkg-parsechangelog.1:104 update-alternatives.8:268
#, no-wrap
msgid "B<--all>"
msgstr "B<--all>"

#. type: Plain text
#: dpkg-parsechangelog.1:108
msgid ""
"include all changes. Note: other options have no effect when this is in use."
msgstr ""
"inclut toutes les modifications. Note : d'autres options deviennent sans "
"effet lorsque celle-ci est utilisée."

#. type: Plain text
#: dpkg-parsechangelog.1:114
msgid ""
"All B<Parser Options> except for -v are only supported in B<dpkg>, version "
"1.14.16 and later. Third party parsers for changelog formats other than "
"I<debian> might not support all options."
msgstr ""
"Toutes les B<Options d'analyse> sauf « -v » sont gérées par B<dpkg> avec la "
"version 1.14.16 et suivantes. Les analyseurs tiers pour le format du "
"changelog plus vieux que I<debian> ne gèrent peut-être pas toutes les "
"options."

#. type: TP
#: dpkg-parsechangelog.1:116
#, no-wrap
msgid "B<debian/changelog>"
msgstr "B<debian/changelog>"

#. type: Plain text
#: dpkg-parsechangelog.1:122
msgid ""
"The changelog file, used to obtain version-dependent information about the "
"source package, such as the urgency and distribution of an upload, the "
"changes made since a particular release, and the source version number "
"itself."
msgstr ""
"Le fichier d'enregistrement des modifications ; on s'en sert pour connaître "
"les informations qui dépendent d'une version du paquet source, par exemple "
"l'urgence ou la distribution d'une installation sur le serveur, les "
"modifications faites depuis telle édition et le numéro de la version source "
"lui-même."

#. type: Plain text
#: dpkg-parsechangelog.1:129
msgid "Copyright \\(co 2007, 2008 Frank Lichtenheld"
msgstr "Copyright \\(co 2007, 2008 Frank Lichtenheld"

#. type: TH
#: dpkg-query.1:1
#, no-wrap
msgid "dpkg-query"
msgstr "dpkg-query"

#. type: Plain text
#: dpkg-query.1:4
msgid "dpkg-query - a tool to query the dpkg database"
msgstr "dpkg-query - Un outil pour interroger la base de données de dpkg"

#. type: Plain text
#: dpkg-query.1:8
msgid "B<dpkg-query> [I<option>...] I<command>"
msgstr "B<dpkg-query> [I<option>...] I<commande>"

#. type: Plain text
#: dpkg-query.1:12
msgid ""
"B<dpkg-query> is a tool to show information about packages listed in the "
"B<dpkg> database."
msgstr ""
"B<dpkg-query> est un outil pour afficher des informations sur les paquets "
"connus par la base de données de B<dpkg>."

#. type: TP
#: dpkg-query.1:14
#, fuzzy, no-wrap
#| msgid "B<-l>, B<--list> I<package-name-pattern>..."
msgid "B<-l>, B<--list> [I<package-name-pattern>...]"
msgstr "B<-l>, B<--list> I<motif-de-nom-de-paquet>..."

#. type: Plain text
#: dpkg-query.1:24
msgid ""
"List packages matching given pattern. If no I<package-name-pattern> is "
"given, list all packages in I</var/lib/dpkg/status>, excluding the ones "
"marked as not-installed (i.e. those which have been previously purged). "
"Normal shell wildchars are allowed in I<package-name-pattern>. Please note "
"you will probably have to quote I<package-name-pattern> to prevent the shell "
"from performing filename expansion. For example this will list all package "
"names starting with ``libc6'':"
msgstr ""
"Affiche les paquets correspondants au motif donné. Si aucun I<nom-paquet-"
"motif> n'est indiqué, affiche tous les paquets de I</var/lib/dpkg/status>, "
"sauf ceux qui ne sont pas installés (c'est à dire ceux qui ont été "
"précédemment purgés). Les métacaractères ordinaires de l'interpréteur de "
"commandes sont autorisés dans I<nom-paquet-motif>. Il faudra sans doute "
"mettre I<nom-paquet-motif> entre apostrophes pour éviter l'expansion des "
"noms de fichier par l'interpréteur de commandes. Par exemple, tous les "
"paquets dont le nom commence par « libc6 » seront affichés par la commande :"

#. type: Plain text
#: dpkg-query.1:27
#, no-wrap
msgid "  B<dpkg-query -l \\(aqlibc6*\\(aq>\n"
msgstr "B<dpkg-query -l \\(aqlibc6*\\(aq>\n"

#. type: Plain text
#: dpkg-query.1:31
msgid ""
"The first three columns of the output show the desired action, the package "
"status, and errors, in that order."
msgstr ""
"Les trois premières colonnes affichées montrent dans l'ordre : l'action "
"souhaitée, l'état du paquet et les erreurs."

#. type: Plain text
#: dpkg-query.1:33
msgid "Desired action:"
msgstr "Action souhaitée :"

#. type: Plain text
#: dpkg-query.1:39
#, no-wrap
msgid ""
"  u = Unknown\n"
"  i = Install\n"
"  h = Hold\n"
"  r = Remove\n"
"  p = Purge\n"
msgstr ""
"  u = Inconnu (Unknown)\n"
"  i = Installer (Install)\n"
"  h = Garder (Hold)\n"
"  r = Supprimer (Remove)\n"
"  p = Purger (Purge)\n"

#. type: Plain text
#: dpkg-query.1:42
msgid "Package status:"
msgstr "État du paquet :"

#. type: Plain text
#: dpkg-query.1:51
#, no-wrap
msgid ""
"  n = Not-installed\n"
"  c = Config-files\n"
"  H = Half-installed\n"
"  U = Unpacked\n"
"  F = Half-configured\n"
"  W = Triggers-awaiting\n"
"  t = Triggers-pending\n"
"  i = Installed\n"
msgstr ""
"  n = Non installé (Not-installed\n"
")  c = Fichiers de configuration (Config-files)\n"
"  H = Semi-installé (Half-installed)\n"
"  U = Décompressé (Unpacked)\n"
"  F = Semi-configuré (Half-configured)\n"
"  W = Attente de déclenchements (Triggers-awaiting)\n"
"  t = Déclenchements en attente (Triggers-pending)\n"
"  i = Installé (Installed)\n"

#. type: Plain text
#: dpkg-query.1:54
msgid "Error flags:"
msgstr "Drapeaux d'erreur :"

#. type: Plain text
#: dpkg-query.1:57
#, no-wrap
msgid ""
"  E<lt>emptyE<gt> = (none)\n"
"  R = Reinst-required\n"
msgstr ""
"  E<lt>emptyE<gt> = (none)\n"
"  R = Reinst-required\n"

#. type: Plain text
#: dpkg-query.1:62
msgid ""
"An uppercase status or error letter indicates the package is likely to cause "
"severe problems. Please refer to B<dpkg>(1) for information about the above "
"states and flags."
msgstr ""
"Un état en majuscules ou une lettre d'erreur indiquent que le paquet peut "
"provoquer des problèmes graves. Veuillez consulter B<dpkg>(1) à propos des "
"états et drapeaux ci-dessus."

#. type: Plain text
#: dpkg-query.1:67
msgid ""
"The output format of this option is not configurable, but varies "
"automatically to fit the terminal width. It is intended for human readers, "
"and is not easily machine-readable. See B<-W> (B<--show>)  and B<--"
"showformat> for a way to configure the output format."
msgstr ""
"On ne peut pas configurer le format de sortie de cette option. Il s'adapte "
"automatiquement à la largeur du terminal. Ce format est destiné aux humains "
"et la machine le lit mal. Voyez B<-W> (B<--show>) et B<--showformat> pour "
"une possible configuration de ce format."

#. type: TP
#: dpkg-query.1:67
#, fuzzy, no-wrap
#| msgid "B<-W>, B<--show> I<package-name-pattern>..."
msgid "B<-W>, B<--show> [I<package-name-pattern>...]"
msgstr "B<-W>, B<--show> I<motif-de-nom-de-paquet>..."

#. type: Plain text
#: dpkg-query.1:74
msgid ""
"Just like the B<--list> option this will list all packages matching the "
"given pattern. However the output can be customized using the B<--"
"showformat> option.  The default output format gives one line per matching "
"package, each line having the name and installed version of the package, "
"separated by a tab."
msgstr ""
"Tout comme l'option B<--list>, cette option affiche la liste des paquets qui "
"correspondent au motif donné. La sortie peut cependant être formatée en "
"utilisant l'option B<--showformat>. Le format de sortie par défaut est le "
"suivant : une ligne pour chaque paquet, avec le nom et la version installée, "
"séparé par une tabulation."

#. type: TP
#: dpkg-query.1:74
#, no-wrap
msgid "B<-s>, B<--status> I<package-name>..."
msgstr "B<-s>, B<--status> I<nom-paquet> ..."

#. type: Plain text
#: dpkg-query.1:79
#, fuzzy
#| msgid ""
#| "Report status of specified package. This just displays the entry in the "
#| "installed package status database."
msgid ""
"Report status of specified package. This just displays the entry in the "
"installed package status database. When multiple I<package-name> are listed, "
"the requested status entries are separated by an empty line."
msgstr ""
"Donne l'état du paquet indiqué. C'est simplement l'affichage de l'entrée de "
"la base de données concernant les états des paquets installés."

#. type: TP
#: dpkg-query.1:79
#, no-wrap
msgid "B<-L>, B<--listfiles> I<package-name>..."
msgstr "B<-L>, B<--listfiles> I<nom-paquet>..."

#. type: Plain text
#: dpkg-query.1:85
#, fuzzy
#| msgid ""
#| "List files installed to your system from I<package-name>.  However, note "
#| "that files created by package-specific installation-scripts are not "
#| "listed."
msgid ""
"List files installed to your system from I<package-name>. When multiple "
"I<package-name> are listed, the requested lists of files are separated by an "
"empty line. However, note that files created by package-specific "
"installation-scripts are not listed."
msgstr ""
"Affiche la liste des fichiers du I<nom-paquet> installés sur le système. Il "
"faut remarquer cependant que les fichiers créés par les scripts "
"d'installation particuliers au paquet ne sont pas affichés."

#. type: TP
#: dpkg-query.1:85
#, no-wrap
msgid "B<-c>, B<--control-path> I<package-name> [I<control-file>]"
msgstr "B<-c>, B<--control-path> I<nom-paquet> [I<fichier-contrôle>]"

#. type: Plain text
#: dpkg-query.1:93
msgid ""
"List paths for control files installed to your system from I<package-name>.  "
"If I<control-file> is specified then only list the path for that control "
"file if it is present. B<Warning>: this command is semi-public, it should be "
"used only as a last resort solution, and if no other interface is available. "
"It might get deprecated later on if better interfaces or the current "
"architectural deficiencies have been solved."
msgstr ""
"Affiche les chemins pour les fichiers de contrôle installés sur votre "
"système pour I<nom-paquet>. Si I<fichier-contrôle> est indiqué, seul le "
"chemin pour ce fichier de contrôle sera affiché, s'il est présent. "
"B<Attention> : cette commande est semi-publique et ne devrait être utilisée "
"qu'en dernier ressort et si aucune autre interface n'est disponible. Elle "
"pourrait devenir obsolète dans le futur si de meilleures interfaces sont "
"mises en place ou si les défauts actuels d'architecture sont résolus."

#. type: TP
#: dpkg-query.1:93
#, no-wrap
msgid "B<-S>, B<--search> I<filename-search-pattern>..."
msgstr "B<-S>, B<--search> I<motif-de-nom-a-rechercher>..."

#. type: Plain text
#: dpkg-query.1:99
#, fuzzy
#| msgid ""
#| "Search for a filename from installed packages. All standard shell "
#| "wildchars can be used in the pattern. This command will not list extra "
#| "files created by maintainer scripts, nor will it list alternatives."
msgid ""
"Search for packages that own files corresponding to the given pattern.  "
"Standard shell wildchars can be used in the pattern.  This command will not "
"list extra files created by maintainer scripts, nor will it list "
"alternatives."
msgstr ""
"Recherche un nom de fichier dans les paquets installés. On peut utiliser "
"dans le motif tous les métacaractères de l'interpréteur de commandes. Cette "
"commande ne donne pas les fichiers supplémentaires créés par les scripts du "
"responsable de paquet, ni les alternatives."

#. type: TP
#: dpkg-query.1:99
#, no-wrap
msgid "B<-p>, B<--print-avail> I<package-name>..."
msgstr "B<-p>, B<--print-avail> I<nom-paquet>..."

#. type: Plain text
#: dpkg-query.1:105
#, fuzzy
#| msgid ""
#| "Display details about I<package-name>, as found in I</var/lib/dpkg/"
#| "available>. Users of APT-based frontends should use B<apt-cache show> "
#| "I<package-name> instead as the I<available> file is only kept up-to-date "
#| "when using B<dselect>."
msgid ""
"Display details about I<package-name>, as found in I</var/lib/dpkg/"
"available>. When multiple I<package-name> are listed, the requested "
"I<available> entries are separated by an empty line."
msgstr ""
"Affiche les détails relatifs à I<nom-paquet>, tels que présents dans I</var/"
"lib/dpkg/available>. Les utilisateurs des outils basés sur APT devraient "
"plutôt utiliser la commande B<apt-cache show> I<nom-paquet> car le fichier "
"I<available> n'est tenu à jour que lorsque B<dselect> est utilisé."

#. type: Plain text
#: dpkg-query.1:110
#, fuzzy
#| msgid ""
#| "Display details about I<package-name>, as found in I</var/lib/dpkg/"
#| "available>. Users of APT-based frontends should use B<apt-cache show> "
#| "I<package-name> instead as the I<available> file is only kept up-to-date "
#| "when using B<dselect>."
msgid ""
"Users of APT-based frontends should use B<apt-cache show> I<package-name> "
"instead as the I<available> file is only kept up-to-date when using "
"B<dselect>."
msgstr ""
"Affiche les détails relatifs à I<nom-paquet>, tels que présents dans I</var/"
"lib/dpkg/available>. Les utilisateurs des outils basés sur APT devraient "
"plutôt utiliser la commande B<apt-cache show> I<nom-paquet> car le fichier "
"I<available> n'est tenu à jour que lorsque B<dselect> est utilisé."

#. type: TP
#: dpkg-query.1:122
#, no-wrap
msgid "B<-f>, B<--showformat=>I<format>"
msgstr "B<-f>, B<--showformat=>I<format>"

#. type: Plain text
#: dpkg-query.1:129
msgid "In the format string, \\(lqB<\\e>\\(rq introduces escapes:"
msgstr "Dans la chaîne, \\(lqB<\\e>\\(rq déspécifie le caractère"

#. type: Plain text
#: dpkg-query.1:134
#, no-wrap
msgid ""
"    B<\\en>  newline\n"
"    B<\\er>  carriage return\n"
"    B<\\et>  tab\n"
msgstr ""
"    B<\\en>  nouvelle ligne\n"
"    B<\\er>  retour chariot\n"
"    B<\\et>  tabulation\n"

#. type: Plain text
#: dpkg-query.1:139
msgid ""
"\\(lqB<\\e>\\(rq before any other character suppresses any special meaning "
"of the following character, which is useful for \\(lqB<\\e>\\(rq and \\(lqB<"
"$>\\(rq."
msgstr ""
"\\(lqB<\\e>\\(rq avant un caractère supprime la signification du caractère "
"qui suit. C'est utile pour les caractères \\(lqB<\\e>\\(rq and \\(lqB<$>"
"\\(rq."

#. type: Plain text
#: dpkg-query.1:147
msgid ""
"Package information can be included by inserting variable references to "
"package fields using the syntax \\(lqB<${>I<field>[B<;>I<width>]B<}>\\(rq. "
"Fields are printed right-aligned unless the width is negative in which case "
"left alignment will be used. The following I<field>s are recognised but they "
"are not necessarily available in the status file (only internal fields or "
"fields stored in the binary package end up in it):"
msgstr ""
"L'information relative à un paquet peut être indiquée en insérant des appels "
"de variables spécifiant des champs du paquet avec la syntaxe suivante : "
"\\(lqB<${>I<field>[B<;>I<width>]B<}>\\(rq. Les champs sont alignés à droite, "
"à moins que la largeur ne soit négative, auquel cas ils sont alignés à "
"gauche. Les champs suivants sont reconnus, mais pas nécessairement "
"disponibles dans le fichier d'état (seuls les champs internes ou les champs "
"conservés avec le paquet binaire le sont) :"

#. type: Plain text
#: dpkg-query.1:182
#, fuzzy, no-wrap
#| msgid ""
#| "    B<Architecture>\n"
#| "    B<Bugs>\n"
#| "    B<Conffiles> (internal)\n"
#| "    B<Config-Version> (internal)\n"
#| "    B<Conflicts>\n"
#| "    B<Breaks>\n"
#| "    B<Depends>\n"
#| "    B<Description>\n"
#| "    B<Enhances>\n"
#| "    B<Essential>\n"
#| "    B<Filename> (internal, dselect related)\n"
#| "    B<Homepage>\n"
#| "    B<Installed-Size>\n"
#| "    B<MD5sum> (internal, dselect related)\n"
#| "    B<MSDOS-Filename> (internal, dselect related)\n"
#| "    B<Maintainer>\n"
#| "    B<Origin>\n"
#| "    B<Package>\n"
#| "    B<Pre-Depends>\n"
#| "    B<Priority>\n"
#| "    B<Provides>\n"
#| "    B<Recommends>\n"
#| "    B<Replaces>\n"
#| "    B<Revision> (obsolete)\n"
#| "    B<Section>\n"
#| "    B<Size> (internal, dselect related)\n"
#| "    B<Source>\n"
#| "    B<Status> (internal)\n"
#| "    B<Suggests>\n"
#| "    B<Tag> (usually not in the .deb but in APT's Packages files)\n"
#| "    B<Triggers-Awaited> (internal)\n"
#| "    B<Triggers-Pending> (internal)\n"
#| "    B<Version>\n"
msgid ""
"    B<Architecture>\n"
"    B<Bugs>\n"
"    B<Conffiles> (internal)\n"
"    B<Config-Version> (internal)\n"
"    B<Conflicts>\n"
"    B<Breaks>\n"
"    B<Depends>\n"
"    B<Description>\n"
"    B<Enhances>\n"
"    B<Essential>\n"
"    B<Filename> (internal, front-end related)\n"
"    B<Homepage>\n"
"    B<Installed-Size>\n"
"    B<MD5sum> (internal, front-end related)\n"
"    B<MSDOS-Filename> (internal, front-end related)\n"
"    B<Maintainer>\n"
"    B<Origin>\n"
"    B<Package>\n"
"    B<Pre-Depends>\n"
"    B<Priority>\n"
"    B<Provides>\n"
"    B<Recommends>\n"
"    B<Replaces>\n"
"    B<Revision> (obsolete)\n"
"    B<Section>\n"
"    B<Size> (internal, front-end related)\n"
"    B<Source>\n"
"    B<Status> (internal)\n"
"    B<Suggests>\n"
"    B<Tag> (usually not in the .deb but in the repository Packages files)\n"
"    B<Triggers-Awaited> (internal)\n"
"    B<Triggers-Pending> (internal)\n"
"    B<Version>\n"
msgstr ""
"    B<Architecture>\n"
"    B<Bugs>\n"
"    B<Conffiles> (interne)\n"
"    B<Config-Version> (interne)\n"
"    B<Conflicts>\n"
"    B<Breaks>\n"
"    B<Depends>\n"
"    B<Description>\n"
"    B<Enhances>\n"
"    B<Essential>\n"
"    B<Filename> (interne, lié à dselect)\n"
"    B<Homepage>\n"
"    B<Installed-Size>\n"
"    B<MD5sum> (interne, lié à dselect)\n"
"    B<MSDOS-Filename> (interne, lié à dselect)\n"
"    B<Maintainer>\n"
"    B<Origin>\n"
"    B<Package>\n"
"    B<Pre-Depends>\n"
"    B<Priority>\n"
"    B<Provides>\n"
"    B<Recommends>\n"
"    B<Replaces>\n"
"    B<Revision> (obsolète)\n"
"    B<Section>\n"
"    B<Size> (interne, lié à dselect)\n"
"    B<Source>\n"
"    B<Status> (interne)\n"
"    B<Suggests>\n"
"    B<Tag> (pas dans le .deb mais dans les fichiers Packages d'APT)\n"
"    B<Triggers-Awaited> (interne)\n"
"    B<Triggers-Pending> (interne)\n"
"    B<Version>\n"

#. type: Plain text
#: dpkg-query.1:190
msgid ""
"The default format string is \\(lqB<${Package}\\et${Version}\\en>\\(rq.  "
"Actually, all other fields found in the status file (i.e. user defined "
"fields) can be requested, too. They will be printed as-is, though, no "
"conversion nor error checking is done on them.  To get the name of the dpkg "
"maintainer and the installed version, you could run:"
msgstr ""
"Le format par défaut est le suivant : \\(lqB<${Package}\\et${Version}\\en>"
"\\(rq. Tous les autres champs du fichier status, par exemple des champs "
"définis par l'utilisateur, peuvent être demandés. Ils seront affichés mais "
"sans aucune mise en forme et aucune vérification n'est faite. Pour obtenir "
"le nom du responsable de dpkg et la version installée, exécutez par exemple :"

#. type: Plain text
#: dpkg-query.1:193
#, no-wrap
msgid "  B<dpkg-query -W -f=\\(aq${Package} ${Version}\\et${Maintainer}\\en\\(aq dpkg>\n"
msgstr "  B<dpkg-query -W -f=\\(aq${Package} ${Version}\\et${Maintainer}\\en\\(aq dpkg>\n"

#. type: SH
#: dpkg-query.1:195 dpkg-split.1:179 start-stop-daemon.8:259
#: update-alternatives.8:374
#, no-wrap
msgid "EXIT STATUS"
msgstr "CODE DE SORTIE"

#. type: TP
#: dpkg-query.1:196 dpkg-split.1:180 start-stop-daemon.8:260
#: start-stop-daemon.8:289 update-alternatives.8:375
#, no-wrap
msgid "B<0>"
msgstr ""

#. type: Plain text
#: dpkg-query.1:199
msgid "The requested query was successfully performed."
msgstr "La requête demandée s'est correctement déroulée."

#. type: TP
#: dpkg-query.1:199 dpkg-split.1:186 start-stop-daemon.8:270
#: start-stop-daemon.8:292
#, no-wrap
msgid "B<1>"
msgstr ""

#. type: Plain text
#: dpkg-query.1:203
msgid ""
"Problems were encountered while parsing the command line or performing the "
"query, including no file or package being found (except for --control-path)."
msgstr ""
"Des problèmes sont survenus lors de l'analyse de la ligne de commande ou "
"bien pendant l'exécution de la requête. Cela peut être une absence de "
"fichier ou de paquet (sauf pour --control-path)."

#. type: Plain text
#: dpkg-query.1:213
msgid ""
"This setting influences the output of the B<--list> option by changing the "
"width of its output."
msgstr ""
"Ce réglage influence la sortie de l'option B<--list> en modifiant la largeur "
"d'affichage."

#. type: Plain text
#: dpkg-query.1:216
msgid "Copyright \\(co 2001 Wichert Akkerman"
msgstr "Copyright \\(co 2001 Wichert Akkerman"

#. type: TH
#: dpkg-scanpackages.1:15
#, no-wrap
msgid "dpkg-scanpackages"
msgstr "dpkg-scanpackages"

#. type: Plain text
#: dpkg-scanpackages.1:18
msgid "dpkg-scanpackages - create Packages index files"
msgstr "dpkg-scanpackages - créer des fichiers d'index de paquets."

#. type: Plain text
#: dpkg-scanpackages.1:26
#, fuzzy
#| msgid ""
#| "B<dpkg-scanpackages> [I<options>] I<binary-dir> [I<override-file> [I<path-"
#| "prefix>]] B<E<gt>> I<Packages>"
msgid ""
"B<dpkg-scanpackages> [I<option>...] I<binary-dir> [I<override-file> [I<path-"
"prefix>]] B<E<gt>> I<Packages>"
msgstr ""
"B<dpkg-scanpackages> [I<options>] I<rep-de-binaires> [I<fichier-override> "
"[I<chemin-à-préfixer>]] B<E<gt>> I<Packages>"

#. type: Plain text
#: dpkg-scanpackages.1:39
msgid ""
"B<dpkg-scanpackages> sorts through a tree of Debian binary packages and "
"creates a Packages file, used by B<apt>(8), B<dselect>(1), etc, to tell the "
"user what packages are available for installation. These Packages files are "
"the same as those found on Debian archive sites and CD-ROMs. You might use "
"B<dpkg-scanpackages> yourself if making a directory of local packages to "
"install on a cluster of machines."
msgstr ""
"B<dpkg-scanpackages> trie une arborescence contenant des paquets binaires "
"Debian et crée un fichier « Packages » qui permettra à B<apt>(8), B<dselect>"
"(1), ou à un autre programme, de savoir quels sont les paquets installables. "
"Ces fichiers « Packages » sont semblables à ceux qu'on peut trouver sur les "
"sites d'archives Debian ou sur des CD. Quand on crée un répertoire contenant "
"des paquets qu'on veut installer sur un ensemble de machines, on peut se "
"servir soi-même de B<dpkg-scanpackages>."

#. type: Plain text
#: dpkg-scanpackages.1:51
msgid ""
"B<Note:> If you want to access the generated Packages file with B<apt> you "
"will probably need to compress the file with B<bzip2>(1)  (generating a "
"Packages.bz2 file) or B<gzip>(1)  (generating a Packages.gz file). apt "
"ignores uncompressed Packages files except on local access (i.e.  B<file://> "
"sources)."
msgstr ""
"B<Note :> Pour pouvoir accéder avec B<apt> au fichier Packages créé, il "
"faudra sans doute le compresser avec B<bzip2>(1) (qui crée un fichier "
"Packages.bz2) ou B<gzip>(1) (qui crée un fichier Packages.gz). apt ignore "
"les fichiers Packages non compressés, sauf pour des sources locales (cad "
"B<file://>)."

#. type: Plain text
#: dpkg-scanpackages.1:58
msgid ""
"I<binarydir> is the name of the tree of the binary packages to process (for "
"example, B<contrib/binary-i386>).  It is best to make this relative to the "
"root of the Debian archive, because every Filename field in the new Packages "
"file will start with this string."
msgstr ""
"I<rep-de-binaires> est le nom de l'arborescence des paquets binaires (par "
"exemple B<contrib/binary-i386)> que l'on veut traiter. Il vaut mieux qu'elle "
"soit relative à la racine de l'archive Debian ; ainsi chaque champ "
"« Filename » dans le nouveau fichier « Packages » commencera par cette "
"chaîne."

#. type: Plain text
#: dpkg-scanpackages.1:63
msgid ""
"I<overridefile> is the name of a file to read which contains information "
"about how the package fits into the distribution (it can be a compressed "
"file); see B<deb-override>(5)."
msgstr ""
"I<fichier-d'-override> est le nom du fichier qui contient les renseignements "
"sur la manière dont le paquet s'insère dans la distribution (ce fichier peut "
"être compressé) ; voir B<deb-override>(5)."

#. type: Plain text
#: dpkg-scanpackages.1:66
msgid ""
"I<pathprefix> is an optional string to be prepended to the Filename fields."
msgstr ""
"I<chemin-à-préfixer> est une chaîne facultative qui préfixera les champs "
"« Filename »."

#. type: Plain text
#: dpkg-scanpackages.1:70
msgid ""
"If more than one version of a package is found only the newest one is "
"included in the output. If they have the same version and only differ in "
"architecture only the first one found is used."
msgstr ""
"S'il existe plusieurs versions d'un paquet, seule la plus récente est "
"affichée en sortie. Si les paquets ont la même version mais diffèrent par "
"l'architecture, seul le premier trouvé est utilisé."

#. type: TP
#: dpkg-scanpackages.1:72
#, no-wrap
msgid "B<-t>, B<--type> I<type>"
msgstr "B<-t>, B<--type> I<type>"

#. type: Plain text
#: dpkg-scanpackages.1:75
msgid "Scan for *.I<type> packages, instead of *.deb."
msgstr "Recherche des fichiers *.I<type>, plutôt que I<*.deb>."

#. type: TP
#: dpkg-scanpackages.1:75
#, no-wrap
msgid "B<-u>, B<--udeb>"
msgstr "B<-u>, B<--udeb>"

#. type: Plain text
#: dpkg-scanpackages.1:78
msgid "B<Obsolete> alias for B<-tudeb>."
msgstr "Alias B<obsolete> pour B<-tudeb>."

#. type: IP
#: dpkg-scanpackages.1:78 dpkg-scansources.1:49
#, no-wrap
msgid "B<-e>, B<--extra-override> I<file>"
msgstr "B<-e>, B<--extra-override> I<fichier>"

#. type: Plain text
#: dpkg-scanpackages.1:84 dpkg-scansources.1:54
msgid ""
"Scan I<file> to find supplementary overrides (the file can be compressed). "
"See B<deb-extra-override>(5)  for more information on its format."
msgstr ""
"Examine I<fichier> à la recherche d'« overrides » supplémentaires (ce "
"fichier peut être compressé). Voir B<deb-extra-override>(5) pour plus "
"d'information sur le format utilisé."

#. type: TP
#: dpkg-scanpackages.1:84
#, no-wrap
msgid "B<-a>, B<--arch> I<arch>"
msgstr "B<-a>, B<--arch> I<arch>"

#. type: Plain text
#: dpkg-scanpackages.1:88
msgid ""
"Use a pattern consisting of I<*_all.deb> and I<*_arch.deb> instead of "
"scanning for all debs."
msgstr ""
"Utiliser un motif équivalent à I<*_all.deb> et à I<*_arch.deb>, plutôt que "
"de rechercher tous les fichiers debs."

#. type: TP
#: dpkg-scanpackages.1:88
#, no-wrap
msgid "B<-m>, B<--multiversion>"
msgstr "B<-m>, B<--multiversion>"

#. type: Plain text
#: dpkg-scanpackages.1:91
msgid "Include all found packages in the output."
msgstr "Affiche tous les paquets trouvés en sortie."

#. type: TP
#: dpkg-scanpackages.1:91
#, no-wrap
msgid "B<-M>, B<--medium> I<id-string>"
msgstr "B<-M>, B<--medium> I<id-chaîne>"

#. type: Plain text
#: dpkg-scanpackages.1:96
msgid ""
"Add an X-Medium field containing the value I<id-string>. This field is "
"required if you want to generate B<Packages.cd> files for use by the multicd "
"access method of dselect."
msgstr ""
"Ajoute un champ X-Medium qui contient la valeur I<id-chaîne>. Ce champ est "
"obligatoire si vous voulez créer des fichiers B<Packages.cd> files destinés "
"à être utilisés avec la méthode multicd de dselect."

#. type: SH
#: dpkg-scanpackages.1:103 update-alternatives.8:448
#, no-wrap
msgid "DIAGNOSTICS"
msgstr "DIAGNOSTICS"

#. type: Plain text
#: dpkg-scanpackages.1:109
msgid ""
"B<dpkg-scanpackages> outputs the usual self-explanatory errors. It also "
"warns about packages that are in the wrong subdirectory, are duplicated, "
"have a Filename field in their control file, are missing from the override "
"file, or have maintainer substitutions which do not take effect."
msgstr ""
"B<dpkg-scanpackages> affiche les erreurs habituelles qui se comprennent "
"d'elles-mêmes. Il affiche aussi des avertissements quand des paquets sont "
"dans un mauvais sous-répertoire, existent en double exemplaire, ont des "
"champs « Filename » dans leur fichier « control », sont absents du fichier "
"« override » ou bien dont les substitutions de responsable ne peuvent pas "
"s'appliquer."

#. type: Plain text
#: dpkg-scanpackages.1:115
msgid ""
"B<dpkg>(1), B<dselect>(1), B<deb-override>(5), B<deb-extra-override>(5), "
"B<dpkg-scansources>(1)."
msgstr ""
"B<dpkg>(1), B<dselect>(1), B<deb-override>(5), B<deb-extra-override>(5), "
"B<dpkg-scansources>(1)."

#. type: TH
#: dpkg-scansources.1:1
#, no-wrap
msgid "dpkg-scansources"
msgstr "dpkg-scansources"

#. type: Plain text
#: dpkg-scansources.1:4
msgid "dpkg-scansources - create Sources index files"
msgstr "dpkg-scansources - créer des fichiers d'index de sources"

#. type: Plain text
#: dpkg-scansources.1:12
#, fuzzy
#| msgid ""
#| "B<dpkg-scansources> [I<options>] I<binary-dir> [I<override-file> [I<path-"
#| "prefix>]] B<E<gt>> I<Sources>"
msgid ""
"B<dpkg-scansources> [I<option>...] I<binary-dir> [I<override-file> [I<path-"
"prefix>]] B<E<gt>> I<Sources>"
msgstr ""
"B<dpkg-scansources> [I<options>] I<rep-de-binaires> [I<fichier-override> "
"[I<chemin-à-préfixer>]] B<E<gt>> I<Sources>"

#. type: Plain text
#: dpkg-scansources.1:17
msgid ""
"B<dpkg-scansources> scans the given I<binary-dir> for I<.dsc> files.  These "
"are used to create a Debian source index, which is output to stdout."
msgstr ""
"B<dpkg-scansources> recherche des fichiers I<.dsc> dans le répertoire I<rep-"
"de-binaires> indiqué. Ces fichiers sont utilisés pour créer un index de "
"sources Debian, qui est envoyé sur la sortie standard."

#. type: Plain text
#: dpkg-scansources.1:28
msgid ""
"The I<override-file>, if given, is used to set priorities in the resulting "
"index records and to override the maintainer field given in the I<.dsc> "
"files. The file can be compressed. See B<deb-override>(5)  for the format of "
"this file. \\s-1NB:\\s0 Since the override file is indexed by binary, not "
"source, packages, there's a bit of a problem here. The current "
"implementation uses the highest priority of all the binary packages produced "
"by a I<.dsc> file for the priority of the source package, and the override "
"entry for the first binary package listed in the I<.dsc> file to modify "
"maintainer information. This might change."
msgstr ""
"Le I<fichier-override>, s'il est indiqué, est utilisé pour fixer les "
"priorités dans l'index créé et pour modifier le responsable donné par les "
"fichiers I<.dsc>. Consultez B<deb-override>(5) pour plus de détails sur le "
"format de ce fichier. \\s-1Note :\\s0 S comme le fichier override est indexé "
"par paquet binaire et non pas par paquet source, cela pose un léger "
"problème. L'implémentation actuelle utilise la priorité la plus élevée des "
"paquets produit par un fichier I<.dsc> comme priorité du paquet source, et "
"l'entrée du fichier override du premier paquet binaire listé dans le fichier "
"I<.dsc> pour modifier l'information sur le responsable. Ceci pourra changer."

#. type: Plain text
#: dpkg-scansources.1:32
msgid ""
"The I<path-prefix>, if given, is prepended to the directory field in the "
"generated source index. You generally use this to make the directory fields "
"contain the path from the top of the Debian archive hierarchy."
msgstr ""
"Le I<chemin-à-préfixer>, s'il est indiqué, est ajouté au début du champ "
"Directory (« répertoire ») dans l'index des sources généré. C'est en règle "
"générale utilisé pour que le champ Directory contienne un chemin depuis la "
"racine de l'archive Debian."

#. type: Plain text
#: dpkg-scansources.1:43
msgid ""
"B<Note:> If you want to access the generated Sources file with B<apt>(8)  "
"you will probably need to compress the file with B<gzip>(1)  (generating a "
"Sources.gz file). apt ignores uncompressed Sources files except on local "
"access (i.e.  B<file://> sources)."
msgstr ""
"B<Note :> Si vous voulez accéder au fichier Sources généré avec B<apt>(8), "
"vous devrez probablement compresser ce fichier avec B<gzip>(1) (pour créer "
"un fichier Sources.gz). Apt ignore les fichiers Sources non compressés sauf "
"pour les accès locaux (c'est-à-dire les sources B<file://>)."

#. type: IP
#: dpkg-scansources.1:45
#, no-wrap
msgid "B<-n>, B<--no-sort>"
msgstr "B<-n>, B<--no-sort>"

#. type: Plain text
#: dpkg-scansources.1:48
msgid ""
"Don't sort the index records. Normally they are sorted by source package "
"name."
msgstr ""
"Ne trie pas les entrées de l'index. Elles sont d'habitude triées en fonction "
"du nom du paquet source."

#. type: IP
#: dpkg-scansources.1:54
#, no-wrap
msgid "B<-s>, B<--source-override> I<file>"
msgstr "B<-s>, B<--source-override> I<fichier>"

#. type: Plain text
#: dpkg-scansources.1:58
msgid ""
"Use I<file> as the source override file (the file can be compressed).  The "
"default is the name of the override file you specified with I<.src> appended."
msgstr ""
"Utilise I<fichier> comme fichier override des sources (ce fichier peut être "
"compressé). La valeur par défaut est le fichier override indiqué auquel est "
"ajoutée l'extension I<.src>."

#. type: Plain text
#: dpkg-scansources.1:64
msgid ""
"The source override file is in a different format from the binary override "
"file. It contains only two whitespace separated fields, the first is the "
"source package name and the second is the section. Blank lines and comment "
"lines are ignored in the normal manner. If a package appears in both files "
"the source override takes precedence for setting the section."
msgstr ""
"Le format des fichiers override des sources est différent des fichiers "
"override des binaires. Il ne contient que deux champs séparés par des "
"espaces, le premier indique le paquet source et le second, la section. Les "
"lignes blanches et les lignes de commentaire sont ignorées comme à "
"l'habitude. Si un paquet apparaît dans chaque fichier, le fichier des "
"sources est prioritaire pour fixer la section."

#. type: IP
#: dpkg-scansources.1:64
#, no-wrap
msgid "B<--debug>"
msgstr "B<--debug>"

#. type: Plain text
#: dpkg-scansources.1:66
msgid "Turn debugging on."
msgstr "Active le débogage."

#. type: Plain text
#: dpkg-scansources.1:75
msgid "B<deb-override>(5), B<deb-extra-override>(5), B<dpkg-scanpackages>(1)."
msgstr "B<deb-override>(5), B<deb-extra-override>(5), B<dpkg-scanpackages>(1)."

#. type: Plain text
#: dpkg-scansources.1:77
msgid "Roderick Schertler E<lt>roderick@argon.orgE<gt>"
msgstr "Roderick Schertler E<lt>roderick@argon.orgE<gt>"

#. type: TH
#: dpkg-shlibdeps.1:1
#, no-wrap
msgid "dpkg-shlibdeps"
msgstr "dpkg-shlibdeps"

#. type: Plain text
#: dpkg-shlibdeps.1:4
msgid "dpkg-shlibdeps - generate shared library substvar dependencies"
msgstr ""
"dpkg-shlibdeps - générateur de variables de substitution de dépendances pour "
"bibliothèques partagées"

#. type: Plain text
#: dpkg-shlibdeps.1:8
#, fuzzy
#| msgid ""
#| "B<dpkg-shlibdeps> [I<options>] I<executable>|B<-e>I<executable> "
#| "[I<options>]"
msgid "B<dpkg-shlibdeps> [I<option>...] [B<-e>]I<executable> [I<option>...]"
msgstr ""
"B<dpkg-shlibdeps> [I<options>] I<exécutable>|B<-e>I<exécutable> [I<options>]"

#. type: Plain text
#: dpkg-shlibdeps.1:22
#, fuzzy
#| msgid ""
#| "B<dpkg-shlibdeps> calculates shared library dependencies for executables "
#| "named in its arguments. The dependencies are added to the substitution "
#| "variables file B<debian/substvars> as variable names B<shlibs:"
#| ">I<dependencyfield> where I<dependencyfield> is a dependency field name. "
#| "Any other variables starting I<shlibs:> are removed from the file."
msgid ""
"B<dpkg-shlibdeps> calculates shared library dependencies for executables "
"named in its arguments. The dependencies are added to the substitution "
"variables file B<debian/substvars> as variable names B<shlibs:"
">I<dependencyfield> where I<dependencyfield> is a dependency field name. Any "
"other variables starting with B<shlibs:> are removed from the file."
msgstr ""
"B<dpkg-shlibdeps> calcule, pour les exécutables nommés dans ses arguments, "
"les dépendances envers les bibliothèques partagées. Ces dépendances sont "
"ajoutées au fichier B<debian/substvars> sous la forme B<shlibs:"
">I<dependencyfield> où I<dependencyfield> est le nom du champ de "
"« dépendance ». Toute autre variable après I<shlibs:> est supprimée du "
"fichier."

#. type: Plain text
#: dpkg-shlibdeps.1:45
msgid ""
"B<dpkg-shlibdeps> has two possible sources of information to generate "
"dependency information. Either I<symbols> files or I<shlibs> files. For each "
"binary that B<dpkg-shlibdeps> analyzes, it finds out the list of libraries "
"that it's linked with.  Then, for each library, it looks up either the "
"I<symbols> file, or the I<shlibs> file (if the former doesn't exist or if "
"debian/shlibs.local contains the relevant dependency). Both files are "
"supposed to be provided by the library package and should thus be available "
"as /var/lib/dpkg/info/I<package>.I<symbols> or /var/lib/dpkg/info/I<package>."
"I<shlibs>. The package name is identified in two steps: find the library "
"file on the system (looking in the same directories that B<ld.so> would "
"use), then use B<dpkg -S >I<library-file> to lookup the package providing "
"the library."
msgstr ""
"B<dpkg-shlibdeps> a deux sources possibles pour crééer les informations "
"concernant les dépendances. Soit les fichiers I<symbols>, soit les fichiers "
"I<shlibs>. Pour chaque fichier binaire qu'il analyse, B<dpkg-shlibdeps> "
"recherche la liste des bibliothèques partagées qui lui sont liées. Puis, "
"pour chacune d'elles il analyse soit le fichier I<symbols>, soit le fichier "
"I<shlibs> (si le premier n'existe pas ou si debian/shlibs.local contient les "
"dépendances appropriées). Ces deux fichiers sont sensés être fournis par le "
"paquet de la bibliothèque et disponibles dans /var/lib/dpkg/info/I<paquet>."
"I<symbols> ou /var/lib/dpkg/info/I<paquet>.I<shlibs>. Le nom du paquet est "
"trouvé en deux étapes : en cherchant les fichiers de la bibliothèque sur le "
"système, dans le répertoire que B<ld.so> utiliserait, puis un utilisant "
"B<dpkg -S >I<fichier-bibliothèque> pour trouver le paquet qui fournit cette "
"bibliothèque."

#. type: SS
#: dpkg-shlibdeps.1:45
#, no-wrap
msgid "Symbols files"
msgstr "Fichiers symboles"

#. type: Plain text
#: dpkg-shlibdeps.1:50
msgid ""
"Symbols files contain finer-grained dependency information by providing the "
"minimum dependency for each symbol that the library exports. The script "
"tries to find a symbols file associated to a library package in the "
"following places (first match is used):"
msgstr ""
"Les fichiers symboles contiennent des informations de dépendances plus fines "
"en fournissant les dépendances minimales pour chaque symbole de la "
"bibliothèque exportée. Le script essaie de trouver un fichier de symboles "
"associé à un paquet de bibliothèque dans les emplacements suivants (le "
"premier trouvé est utilisé) :"

#. type: IP
#: dpkg-shlibdeps.1:50
#, no-wrap
msgid "debian/*/DEBIAN/symbols"
msgstr "debian/*/DEBIAN/symbols"

#. type: Plain text
#: dpkg-shlibdeps.1:58
msgid ""
"Shared library information generated by the current build process that also "
"invoked B<dpkg-shlibdeps>.  They are generated by B<dpkg-gensymbols>(1).  "
"They are only used if the library is found in a package's build tree. The "
"symbols file in that build tree takes precedence over symbols files from "
"other binary packages."
msgstr ""
"L'information des bibliothèques partagées générée par l'actuel processus de "
"construction qui invoque aussi B<dpkg-shlibdeps>. Elles sont générées par "
"B<dpkg-gensymbols>(1) et ne sont utilisées que si la bibliothèque se trouve "
"dans l'arbre de construction d'un paquet. Le fichier des symboles qui "
"construit l'arbre s'appuie sur les fichiers de symboles d'autres paquets "
"binaires."

#. type: IP
#: dpkg-shlibdeps.1:58
#, no-wrap
msgid "/etc/dpkg/symbols/I<package>.symbols.I<arch>"
msgstr "/etc/dpkg/symbols/I<paquet>.symbols.I<architecture>"

#. type: IP
#: dpkg-shlibdeps.1:59
#, no-wrap
msgid "/etc/dpkg/symbols/I<package>.symbols"
msgstr "/etc/dpkg/symbols/I<paquet>.symbols"

#. type: Plain text
#: dpkg-shlibdeps.1:63
msgid ""
"Per-system overriding shared library dependency information.  I<arch> is the "
"architecture of the current system (obtained by B<dpkg-architecture -"
"qDEB_HOST_ARCH>)."
msgstr ""
"L'information de dépendance des bibliothèques partagées associée aux "
"systèmes. I<arch> est l'architecture du système actuel (obtenu par B<dpkg-"
"architecture -qDEB_HOST_ARCH>)."

#. type: IP
#: dpkg-shlibdeps.1:63
#, no-wrap
msgid "Output from \\(lqB<dpkg-query --control-path> I<package> symbols\\(rq"
msgstr ""

#. type: Plain text
#: dpkg-shlibdeps.1:66 dpkg-shlibdeps.1:100
#, fuzzy
#| msgid ""
#| "Package-provided shared library dependency information.  Unless "
#| "overridden, I<admindir> is /var/lib/dpkg."
msgid ""
"Package-provided shared library dependency information.  Unless overridden "
"by --admindir, those files are located in /var/lib/dpkg."
msgstr ""
"Paquet fournissant des informations concernant les dépendances envers des "
"bibliothèques partagées. Sauf indication contraire, I<admindir> est par "
"défaut « /var/lib/dpkg »."

#. type: Plain text
#: dpkg-shlibdeps.1:73
msgid ""
"While scanning the symbols used by all binaries, B<dpkg-shlibdeps> remembers "
"the (biggest) minimal version needed for each library. At the end of the "
"process, it is able to write out the minimal dependency for every library "
"used (provided that the information of the I<symbols> files are accurate)."
msgstr ""
"Lors de l'analyse des symboles utilisés par tous les binaires, B<dpkg-"
"shlibdeps> retient la (plus grande) version minimale nécessaire pour chaque "
"bibliothèque. À la fin du processus, il est capable d'écrire la dépendance "
"minimale pour toutes les bibliothèques utilisées (à condition que "
"l'information des fichiers I<symbols> soit exacte)."

#. type: Plain text
#: dpkg-shlibdeps.1:80
msgid ""
"As a safe-guard measure, a symbols file can provide a I<Build-Depends-"
"Package> meta-information field and B<dpkg-shlibdeps> will extract the "
"minimal version required by the corresponding package in the Build-Depends "
"field and use this version if it's higher than the minimal version computed "
"by scanning symbols."
msgstr ""
"Comme garde-fou, un fichier de symboles peut fournir un champ I<Build-"
"Depends-Package> de méta-information et B<dpkg-shlibdeps> en extraira la "
"version minimale requise par le paquet correspondant depuis ce champ Build-"
"Depends et utiliser cette version si elle est supérieure à la version "
"minimale calculée par l'examen des symboles."

#. type: SS
#: dpkg-shlibdeps.1:80
#, no-wrap
msgid "Shlibs files"
msgstr "Fichiers Shlibs"

#. type: Plain text
#: dpkg-shlibdeps.1:84
msgid ""
"Shlibs files associate directly a library to a dependency (without looking "
"at the symbols). It's thus often stronger than really needed but very safe "
"and easy to handle."
msgstr ""
"Les fichiers Shlibs associent directement une bibliothèque à une dépendance "
"(sans regarder les symboles). Il agit donc souvent plus fortement que ce "
"dont on aurait besoin mais il reste très sûr et facile à manipuler."

#. type: Plain text
#: dpkg-shlibdeps.1:87
msgid ""
"The dependencies for a library are looked up in several places. The first "
"file providing information for the library of interest is used:"
msgstr ""
"Les dépendances d'une bibliothèque sont recherchées à plusieurs endroits. Le "
"premier fichier d'informations trouvé qui concerne la bibliothèque est "
"utilisé :"

#. type: IP
#: dpkg-shlibdeps.1:87
#, no-wrap
msgid "debian/shlibs.local"
msgstr "debian/shlibs.local"

#. type: Plain text
#: dpkg-shlibdeps.1:89
msgid "Package-local overriding shared library dependency information."
msgstr ""
"Fichier particulier à un paquet remplaçant les informations qui concernent "
"les dépendances envers des bibliothèques partagées."

#. type: IP
#: dpkg-shlibdeps.1:89
#, no-wrap
msgid "/etc/dpkg/shlibs.override"
msgstr "/etc/dpkg/shlibs.override"

#. type: Plain text
#: dpkg-shlibdeps.1:91
msgid "Per-system overriding shared library dependency information."
msgstr ""
"Fichier système remplaçant les informations qui concernent les dépendances "
"envers des bibliothèques partagées."

#. type: IP
#: dpkg-shlibdeps.1:91
#, no-wrap
msgid "debian/*/DEBIAN/shlibs"
msgstr "debian/*/DEBIAN/shlibs"

#. type: Plain text
#: dpkg-shlibdeps.1:97
msgid ""
"Shared library information generated by the current build process that also "
"invoked B<dpkg-shlibdeps>.  They are only used if the library is found in a "
"package's build tree. The shlibs file in that build tree takes precedence "
"over shlibs files from other binary packages."
msgstr ""
"Information sur la bibliothèque partagée généré par le processus actuel de "
"construction qui invoque aussi B<dpkg-shlibdeps>. Il n'est utilisé que si la "
"bibliothèque se trouve dans l'arbre de construction du paquet. Le fichier "
"shlibs qui construit l'arbre a priorité sur les fichiers shlibs des autres "
"paquets binaires."

#. type: IP
#: dpkg-shlibdeps.1:97
#, no-wrap
msgid "Output from \\(lqB<dpkg-query --control-path> I<package> shlibs\\(rq"
msgstr ""

#. type: IP
#: dpkg-shlibdeps.1:100
#, no-wrap
msgid "/etc/dpkg/shlibs.default"
msgstr "/etc/dpkg/shlibs.default"

#. type: Plain text
#: dpkg-shlibdeps.1:102
msgid "Per-system default shared library dependency information."
msgstr ""
"Fichier système par défaut concernant les informations de dépendance envers "
"des bibliothèques partagées."

#. type: Plain text
#: dpkg-shlibdeps.1:106
msgid ""
"The extracted dependencies are then directly used (except if they are "
"filtered out because they have been identified as duplicate, or as weaker "
"than another dependency)."
msgstr ""
"Les dépendances trouvées sont ensuite directement utilisées (sauf si elles "
"sont filtrées parce qu'elles ont été identifiées comme étant en double, ou "
"d'un niveau plus faible qu'une autre dépendance)."

#. type: Plain text
#: dpkg-shlibdeps.1:111
msgid ""
"B<dpkg-shlibdeps> interprets non-option arguments as executable names, just "
"as if they'd been supplied as B<-e>I<executable>."
msgstr ""
"B<dpkg-shlibdeps> interprète des arguments sans option comme des commandes "
"exécutables, comme si on avait simplement donné B<-e>I<exécutable>."

#. type: TP
#: dpkg-shlibdeps.1:111
#, no-wrap
msgid "B<-e>I<executable>"
msgstr "B<-e>I<exécutable>"

#. type: Plain text
#: dpkg-shlibdeps.1:115
msgid ""
"Include dependencies appropriate for the shared libraries required by "
"I<executable>."
msgstr ""
"Cette option inclut les bonnes dépendances envers les bibliothèques "
"partagées que demande I<exécutable>."

#. type: TP
#: dpkg-shlibdeps.1:115
#, no-wrap
msgid "B<-d>I<dependencyfield>"
msgstr "B<-d>I<champ-dépendance>"

#. type: Plain text
#: dpkg-shlibdeps.1:121
msgid ""
"Add dependencies to be added to the control file dependency field "
"I<dependencyfield>.  (The dependencies for this field are placed in the "
"variable B<shlibs:>I<dependencyfield>.)"
msgstr ""
"Cette option ajoute les dépendances destinées au champ « dépendance » du "
"fichier de contrôle I<champ-dépendance.> (Les dépendances pour ce champ sont "
"dans la variable B<shlibs:>I<champ-dépendance>.)"

#. type: Plain text
#: dpkg-shlibdeps.1:131
msgid ""
"The B<-d>I<dependencyfield> option takes effect for all executables after "
"the option, until the next B<-d>I<dependencyfield>.  The default "
"I<dependencyfield> is B<Depends>."
msgstr ""
"L'option B<-d>I<champ-dépendance> concerne tous les exécutables qui suivent "
"l'option, jusqu'à la prochaine option B<-d>I<champ-dépendance>. Par défaut, "
"I<champ-dépendance> vaut B<Depends>."

#. type: Plain text
#: dpkg-shlibdeps.1:139
msgid ""
"If the same dependency entry (or set of alternatives) appears in more than "
"one of the recognised dependency field names B<Pre-Depends>, B<Depends>, "
"B<Recommends>, B<Enhances> or B<Suggests> then B<dpkg-shlibdeps> will "
"automatically remove the dependency from all fields except the one "
"representing the most important dependencies."
msgstr ""
"Quand, dans plusieurs champs reconnus ayant trait aux dépendances comme les "
"champs B<Pre-Depends>, B<Depends>, B<Recommends>, B<Enhances> ou B<Suggests> "
"apparaît la même entrée (ou bien un ensemble d'alternatives), B<dpkg-"
"shlibdeps> supprime automatiquement les dépendances dans tous les champs "
"sauf celui qui représente les dépendances les plus importantes."

#. type: TP
#: dpkg-shlibdeps.1:139
#, no-wrap
msgid "B<-p>I<varnameprefix>"
msgstr "B<-p>I<préfixe-pour-le-nom-des-variables>"

#. type: Plain text
#: dpkg-shlibdeps.1:150
msgid ""
"Start substitution variables with I<varnameprefix>B<:> instead of B<shlibs:"
">.  Likewise, any existing substitution variables starting with "
"I<varnameprefix>B<:> (rather than B<shlibs:>)  are removed from the the "
"substitution variables file."
msgstr ""
"Fait commencer les variables de substitution par I<préfixe-pour-le-nom-des-"
"variables>B<:> au lieu de B<shlibs:>. De même, toute variable de "
"substitution commençant par I<préfixe-pour-le-nom-des-variables>B<:> (au "
"lieu de B<shlibs:>) est enlevée du fichier de substitution des variables."

#. type: Plain text
#: dpkg-shlibdeps.1:156
msgid ""
"Print substitution variable settings to standard output, rather than being "
"added to the substitution variables file (B<debian/substvars> by default)."
msgstr ""
"Affiche les définitions des variables de substitution sur la sortie "
"standard, plutôt que de les ajouter dans le fichier de substitution des "
"variables qui est par défaut debian/substvars."

#. type: TP
#: dpkg-shlibdeps.1:156
#, no-wrap
msgid "B<-t>I<type>"
msgstr "B<-t>I<type>"

#. type: Plain text
#: dpkg-shlibdeps.1:163
msgid ""
"Prefer shared library dependency information tagged for the given package "
"type. If no tagged information is available, falls back to untagged "
"information. The default package type is \"deb\". Shared library dependency "
"information is tagged for a given type by prefixing it with the name of the "
"type, a colon, and whitespace."
msgstr ""
"Préférer les informations sur les dépendances des bibliothèques partagées "
"qui sont étiquetées pour un type de paquet donné. Si aucune information de "
"type n'est donnée, il n'utilisera pas d'information. Par défaut, le type de "
"paquet est « deb ». On peut créer une étiquette pour ces informations en les "
"préfixant par le nom du type, un deux-points et une espace."

#. type: TP
#: dpkg-shlibdeps.1:163
#, no-wrap
msgid "B<-L>I<localshlibsfile>"
msgstr "B<-L>I<fichier-local-shlibs>"

#. type: Plain text
#: dpkg-shlibdeps.1:169
msgid ""
"Read overriding shared library dependency information from "
"I<localshlibsfile> instead of B<debian/shlibs.local>."
msgstr ""
"Lire les informations de remplacement concernant les dépendances envers les "
"bibliothèques partagées dans I<fichier-local-shlibs> au lieu de B<debian/"
"shlibs.local>."

#. type: Plain text
#: dpkg-shlibdeps.1:175
msgid ""
"Write substitution variables in I<substvarsfile>; the default is B<debian/"
"substvars>."
msgstr ""
"Écrire les variables de substitution dans I<fichier/substvars> ; le fichier "
"par défaut est B<debian/substvars>."

#. type: TP
#: dpkg-shlibdeps.1:175
#, no-wrap
msgid "B<-v>"
msgstr "B<-v>"

#. type: Plain text
#: dpkg-shlibdeps.1:180
msgid ""
"Enable verbose mode. Numerous messages are displayed to explain what B<dpkg-"
"shlibdeps> does."
msgstr ""
"Active le mode verbeux. De nombreux messages sont affichés pour expliquer ce "
"que B<dpkg-shlibdeps> fait."

#. type: TP
#: dpkg-shlibdeps.1:180
#, no-wrap
msgid "B<-x>I<package>"
msgstr "B<-x>I<package>"

#. type: Plain text
#: dpkg-shlibdeps.1:187
msgid ""
"Exclude the package from the generated dependencies. This is useful to avoid "
"self-dependencies for packages which provide ELF binaries (executables or "
"library plugins) using a library contained in the same package. This option "
"can be used multiple times to exclude several packages."
msgstr ""
"Exclut le paquet des dépendances générées. Cela évite les auto-dépendances "
"pour les paquets fournissant des exécutables ELF (exécutables ou modules "
"complémentaires de bibliothèque) qui utilisent une bibliothèque incluse dans "
"ce même paquet. Cette option peut être utilisée plusieurs fois pour exclure "
"plusieurs paquets."

#. type: TP
#: dpkg-shlibdeps.1:187
#, no-wrap
msgid "B<-S>I<pkgbuilddir>"
msgstr "B<-S>I<pkgbuilddir>"

#. type: Plain text
#: dpkg-shlibdeps.1:194
msgid ""
"Look into I<pkgbuilddir> first when trying to find a library. This is useful "
"when the source package builds multiple flavors of the same library and you "
"want to ensure that you get the dependency from a given binary package. You "
"can use this option multiple times: directories will be tried in the same "
"order before directories of other binary packages."
msgstr ""
"Recherche dans I<pkgbuilddir> en premier et essaie de trouver une "
"bibliothèque. C'est utile lorsque le paquet source construit plusieurs "
"saveurs de la même bibliothèque et que vous voulez vous assurer que vous "
"obtiendrez la dépendance d'un paquet binaire donné. Cette option peut être "
"utilisée plusieurs fois : les répertoires seront examinés dans le même ordre "
"avant les répertoires d'autres paquets binaires."

#. type: TP
#: dpkg-shlibdeps.1:194
#, no-wrap
msgid "B<--ignore-missing-info>"
msgstr "B<--ignore-missing-info>"

#. type: Plain text
#: dpkg-shlibdeps.1:200
msgid ""
"Do not fail if dependency information can't be found for a shared library.  "
"Usage of this option is discouraged, all libraries should provide dependency "
"information (either with shlibs files, or with symbols files)  even if they "
"are not yet used by other packages."
msgstr ""
"Pas d'échec si l'information de dépendance ne peut pas être trouvée pour une "
"bibliothèque partagée. L'utilisation de cette option est déconseillée, "
"toutes les bibliothèques devraient fournir leurs informations de dépendance "
"(que ce soit avec les fichiers shlibs, ou avec les fichiers symboles), même "
"si elles ne sont pas encore utilisées par d'autres paquets."

#. type: TP
#: dpkg-shlibdeps.1:200
#, no-wrap
msgid "B<--warnings=>I<value>"
msgstr "B<--warnings=>I<valeur>"

#. type: Plain text
#: dpkg-shlibdeps.1:211
msgid ""
"I<value> is a bit field defining the set of warnings that can be emitted by "
"B<dpkg-shlibdeps>.  Bit 0 (value=1) enables the warning \"symbol I<sym> used "
"by I<binary> found in none of the libraries\", bit 1 (value=2) enables the "
"warning \"dependency on I<library> could be avoided\" and bit 2 (value=4)  "
"enables the warning \"I<binary> shouldn't be linked with I<library>\".  The "
"default I<value> is 3: the first two warnings are active by default, the "
"last one is not. Set I<value> to 7 if you want all warnings to be active."
msgstr ""
"I<valeur> est un champ de « bit » définissant l'ensemble des avertissements "
"qui peuvent être émis par B<dpkg-shlibdeps>. Le bit 0 (valeur = 1) active "
"l'avertissement « symbole I<sym> utilisé par le I<binaire> trouvé dans "
"aucune des bibliothèques ». Le bit 1 (valeur = 2) active l'avertissement "
"« la dépendance à la I<bibliothèque> pourrait être évitée ». Le bit 2 "
"(valeur = 4) active l'avertissement « Le I<binaire> ne devrait pas être lié "
"à la I<bibliothèque> ». La I<valeur> par défaut est 3 : les deux premières "
"mises en garde sont actives par défaut, la dernière ne l'est pas. "
"Positionnez la I<valeur> à 7 si vous souhaitez que tous les avertissements "
"soient actifs."

#. type: SH
#: dpkg-shlibdeps.1:222
#, no-wrap
msgid "WARNINGS"
msgstr "AVERTISSEMENTS"

#. type: Plain text
#: dpkg-shlibdeps.1:230
msgid ""
"Since B<dpkg-shlibdeps> analyzes the set of symbols used by each binary of "
"the generated package, it is able to emit warnings in several cases. They "
"inform you of things that can be improved in the package. In most cases, "
"those improvements concern the upstream sources directly. By order of "
"decreasing importance, here are the various warnings that you can encounter:"
msgstr ""
"Depuis que B<dpkg-shlibdeps> analyse l'ensemble des symboles utilisés par "
"chaque binaire généré par le paquet, il est en mesure d'émettre des "
"avertissements dans plusieurs cas. Ils vous informent des choses qui peuvent "
"être améliorées dans le paquet. Dans la plupart des cas, ces améliorations "
"concernent directement les sources amont. Dans l'ordre d'importance "
"décroissant, voici les différents avertissements que vous pouvez rencontrer :"

#. type: TP
#: dpkg-shlibdeps.1:230
#, no-wrap
msgid "B<symbol>I< sym>B< used by >I<binary>B< found in none of the libraries.>"
msgstr "B<symbole>I< sym>B< utilisé par >I<binaire>B< trouvé dans aucune des bibliothèques.>"

#. type: Plain text
#: dpkg-shlibdeps.1:236
msgid ""
"The indicated symbol has not been found in the libraries linked with the "
"binary. The I<binary> is most likely a library and it needs to be linked "
"with an additional library during the build process (option B<-l>I<library> "
"of the linker)."
msgstr ""
"Le symbole indiqué n'a pas été trouvé dans les bibliothèques liées au "
"binaire. Le I<binaire> est probablement plutôt une bibliothèque et elle doit "
"être liée avec une bibliothèque supplémentaire durant le processus de "
"construction (l'option B<-l>I<bibliothèque> de l'éditeur de liens)."

#. type: TP
#: dpkg-shlibdeps.1:236
#, no-wrap
msgid "I<binary>B< contains an unresolvable reference to symbol >I<sym>B<: it's probably a plugin>"
msgstr "I<binary>B< contient une référence non résolue au symbole >I<sym>B<: il s'agit probablement d'un greffon (plugin)>"

#. type: Plain text
#: dpkg-shlibdeps.1:249
msgid ""
"The indicated symbol has not been found in the libraries linked with the "
"binary. The I<binary> is most likely a plugin and the symbol is probably "
"provided by the program that loads this plugin. In theory a plugin doesn't "
"have any SONAME but this binary does have one and as such it could not be "
"clearly identified as such. However the fact that the binary is stored in a "
"non-public directory is a strong indication that's it's not a normal shared "
"library. If the binary is really a plugin, then disregard this warning. But "
"there's always the possibility that it's a real library and that programs "
"linking to it are using an RPATH so that the dynamic loader finds it. In "
"that case, the library is broken and needs to be fixed."
msgstr ""
"Le symbole indiqué n'a pas été trouvé dans les bilbiohtèques liées avec le "
"fichier binaire. Le I<binaire> es très probablement un greffon (plugin) et "
"le symbole est probablement fourni par le programme qui charge ce greffon. "
"En théori, un greffon n'a pas de « SONAME » mais ce binaire en possède un et "
"n'a pas pu être identifié en tant que tel. Cependant, le fait que le binaire "
"soit stocké dans un répertoire non public est une indication forte qu'il ne "
"s'agit pas d'une bibliothèque partagée normale. Si le binaire est vraiment "
"un greffon, vous pouvez ignorer cet avertissement. Il existe cependant une "
"possibilité qu'il s'agisse d'un vrai binaire et que les programmes avec "
"lequel il est lié utilisent un RPATH afin que le chargeur dynamique le "
"trouve. Dans ce cas, la bibliothèque est incorrecte et doit être corrigée."

#. type: TP
#: dpkg-shlibdeps.1:249
#, no-wrap
msgid "B<dependency on >I<library>B< could be avoided if >I<binaries>B< were not uselessly linked against it (they use none of its symbols).>"
msgstr "B<la dépendance sur la> I<bibliothèque> B<pourrait être évitée si> I<les binaires>B< inutiles n'étaient pas liés à celle-ci (ils n'utilisent aucun de ses symboles).>"

#. type: Plain text
#: dpkg-shlibdeps.1:255
msgid ""
"None of the I<binaries> that are linked with I<library> use any of the "
"symbols provided by the library. By fixing all the binaries, you would avoid "
"the dependency associated to this library (unless the same dependency is "
"also generated by another library that is really used)."
msgstr ""
"Aucun des I<binaires> liés à la I<bibliothèque> utilise les symboles qu'elle "
"fournit. En corrigeant tous les binaires, vous éviteriez la dépendance "
"associée à cette bibliothèque (à moins que la même dépendance soit également "
"liée à une autre bibliothèque qui est elle réellement utilisée)."

#. type: TP
#: dpkg-shlibdeps.1:255
#, no-wrap
msgid "I<binary>B< shouldn't be linked with >I<library>B< (it uses none of its symbols).>"
msgstr "I<le binaire>B< ne devrait pas être lié avec la >I<bibliothèque>B< (il ne fait usage d'aucun de ses symboles).>"

#. type: Plain text
#: dpkg-shlibdeps.1:262
msgid ""
"The I<binary> is linked to a library that it doesn't need. It's not a "
"problem but some small performance improvements in binary load time can be "
"obtained by not linking this library to this binary. This warning checks the "
"same information than the previous one but does it for each binary instead "
"of doing the check globally on all binaries analyzed."
msgstr ""
"Le I<binaire> est lié à une bibliothèque dont il n'a pas besoin. Ce n'est "
"pas un problème mais de petites améliorations de performance dans le temps "
"de chargement de celui-ci peuvent être obtenues en ne le liant pas à cette "
"bibliothèque. Cet avertissement vérifie la même information que la "
"précédente mais elle le fait pour tous les binaires au lieu de ne faire le "
"contrôle qu'au niveau global sur tous les binaires analysés."

#. type: SH
#: dpkg-shlibdeps.1:262
#, no-wrap
msgid "ERRORS"
msgstr "ERREURS"

#. type: Plain text
#: dpkg-shlibdeps.1:269
msgid ""
"B<dpkg-shlibdeps> will fail if it can't find a public library used by a "
"binary or if this library has no associated dependency information (either "
"shlibs file or symbols file). A public library has a SONAME and is versioned "
"(libsomething.so.I<X>). A private library (like a plugin) should not have a "
"SONAME and doesn't need to be versioned."
msgstr ""
"B<dpkg-shlibdeps> échouera s'il ne peut pas trouver de bibliothèque publique "
"utilisée par un binaire ou si cette bibliothèque n'a pas d'informations sur "
"les dépendances associées (soit les fichier shlibs, soit le fichier des "
"symboles). Une bibliothèque publique a un SONAME et un numéro de version "
"(libsomething.so.I<X>). Une bibliothèque privée (comme un module "
"additionnel) ne devrait pas avoir de SONAME et n'a pas besoin d'avoir de "
"version."

#. type: TP
#: dpkg-shlibdeps.1:269
#, no-wrap
msgid "B<couldn't find library >I<library-soname>B< needed by >I<binary>B< (its RPATH is '>I<rpath>B<')>"
msgstr "B<impossible de trouver la bibliothèque >I<library-soname> B<demandée par le> I<binaire> B<(son RPATH est '>I<rpath>B<')>"

#. type: Plain text
#: dpkg-shlibdeps.1:285
#, fuzzy
#| msgid ""
#| "The I<binary> uses a library called I<library-soname> but B<dpkg-"
#| "shlibdeps> has been unable to find the library.  B<dpkg-shlibdeps> "
#| "creates a list of directories to check as following: directories listed "
#| "in the RPATH of the binary, directories listed in /etc/ld.so.conf, "
#| "directories listed in the LD_LIBRARY_PATH environment variable, and "
#| "standard public directories (/lib, /usr/lib, /lib32, /usr/lib32, /lib64, /"
#| "usr/lib64). Then it checks those directories in the package's build tree "
#| "of the binary being analyzed, in the packages's build trees indicated "
#| "with the -S command-line option, in other packages's build trees that "
#| "contains a DEBIAN/shlibs or DEBIAN/symbols file and finally in the root "
#| "directory.  If the library is not found in any of those directories, then "
#| "you get this error."
msgid ""
"The I<binary> uses a library called I<library-soname> but B<dpkg-shlibdeps> "
"has been unable to find the library.  B<dpkg-shlibdeps> creates a list of "
"directories to check as following: directories listed in the RPATH of the "
"binary, directories listed in /etc/ld.so.conf, directories listed in the "
"LD_LIBRARY_PATH environment variable, and standard public directories (/"
"lib, /usr/lib, /lib32, /usr/lib32, /lib64, /usr/lib64). Then it checks those "
"directories in the package's build tree of the binary being analyzed, in the "
"packages' build trees indicated with the -S command-line option, in other "
"packages' build trees that contains a DEBIAN/shlibs or DEBIAN/symbols file "
"and finally in the root directory.  If the library is not found in any of "
"those directories, then you get this error."
msgstr ""
"Le I<binaire> utilise une bibliothèque appelée I<library-soname> mais B<dpkg-"
"shlibdeps> n'a pas été en mesure de trouver cette bibliothèque. B<dpkg-"
"shlibdeps> crée une liste de répertoires à vérifier de la manière suivante : "
"les répertoires énumérés dans le RPATH du binaire, les répertoires listés "
"dans /etc/ld.so.conf, les répertoires listés dans la variable "
"d'environnement LD_LIBRARY_PATH, et les répertoires publics standard (/lib, /"
"usr/lib, /lib32, /usr/lib32, /lib64, /usr/lib64). Ensuite, il vérifie les "
"répertoires qui sont dans l'arbre de construction du paquet binaire en cours "
"d'analyse, dans l'arbre de construction du paquets indiqué avec l'option de "
"ligne de commande -S, dans les autres arbres de paquets qui contiennent des "
"fichiers DEBIAN/shlibs ou un DEBIAN/symbols et enfin dans le répertoire "
"racine. Si la bibliothèque n'est pas trouvée dans l'un de ces répertoires, "
"alors ce message d'erreur est obtenu."

#. type: Plain text
#: dpkg-shlibdeps.1:291
msgid ""
"If the library not found is in a private directory of the same package, then "
"you want to add the directory to LD_LIBRARY_PATH. If it's in another binary "
"package being built, you want to make sure that the shlibs/symbols file of "
"this package is already created and that LD_LIBRARY_PATH contains the "
"appropriate directory if it also is in a private directory."
msgstr ""
"Si la bibliothèque non trouvée est cependant disponible dans le répertoire "
"privé de ce même paquet, alors il vous faut ajouter ce répertoire dans "
"LD_LIBRARY_PATH. S'il est dans un autre paquet binaire en cours de "
"construction, alors assurez-vous que le fichier shlibs/symbols de ce paquet "
"est déjà créé et que LD_LIBRARY_PATH contient le répertoire approprié si "
"c'est aussi un répertoire privé."

#. type: TP
#: dpkg-shlibdeps.1:291
#, no-wrap
msgid "B<no dependency information found for >I<library-file>B< (used by >I<binary>B<).>"
msgstr "B<aucune information de dépendance trouvé pour> I<la bibliothèque> B<(utilisée par le> I<binaire>B<).>"

#. type: Plain text
#: dpkg-shlibdeps.1:304
msgid ""
"The library needed by I<binary> has been found by B<dpkg-shlibdeps> in "
"I<library-file> but B<dpkg-shlibdeps> has been unable to find any dependency "
"information for that library. To find out the dependency, it has tried to "
"map the library to a Debian package with the help of B<dpkg -S >I<library-"
"file>.  Then it checked the corresponding shlibs and symbols files in /var/"
"lib/dpkg/info/, and in the various package's build trees (debian/*/DEBIAN/)."
msgstr ""
"La bibliothèque nécessaire au I<binaire> a été trouvée par B<dpkg-shlibdeps> "
"dans I<fichier-bibliothèque> mais B<dpkg-shlibdeps> n'a pas été en mesure de "
"trouver d'informations de dépendance pour cette bibliothèque. Pour trouver "
"la dépendance, il a essayé de lier la bibliothèque à un paquet Debian avec "
"l'aide de B<dpkg -S >I<fichier-bibliothèque>. Puis, il a vérifié les shlibs "
"correspondants et les fichiers symboles de /var/lib/dpkg/info/ et enfin les "
"différents arbres des paquets construits (debian/*/DEBIAN/)."

#. type: Plain text
#: dpkg-shlibdeps.1:318
msgid ""
"This failure can be caused by a bad or missing shlibs or symbols file in the "
"package of the library. It might also happen if the library is built within "
"the same source package and if the shlibs files has not yet been created (in "
"which case you must fix debian/rules to create the shlibs before calling "
"B<dpkg-shlibdeps>). Bad RPATH can also lead to the library being found under "
"a non-canonical name (example: /usr/lib/openoffice.org/../lib/libssl."
"so.0.9.8 instead of /usr/lib/libssl.so.0.9.8) that's not associated to any "
"package, B<dpkg-shlibdeps> tries to work around this by trying to fallback "
"on a canonical name (using B<realpath>(3))  but it might not always work. "
"It's always best to clean up the RPATH of the binary to avoid problems."
msgstr ""
"Cet échec peut être causé par un shlibs ou un fichier de symboles qui serait "
"mauvais ou manquant dans le paquet. Une autre cause serait que la "
"bibliothèque soit construite au sein du même paquet source et que les "
"fichiers shlibs n'aient pas encore été créés (dans ce cas debian/rules doit "
"être modifié pour créer le shlibs avant l'appel de B<dpkg-shlibdeps>). Un "
"mauvais RPATH peut aussi conduire à ce que la bibliothèque soit trouvée sous "
"un nom non-canonique (comme: /usr/lib/openoffice.org/../lib/libssl.so.0.9.8 "
"au lieu de /usr/lib/libssl.so.0.9.8) qui n'est associé à aucun paquet, "
"B<dpkg-shlibdeps> essaie de travailler sur ce nom non-canonique (en "
"utilisant B<realpath>(3)), mais cela ne fonctionne pas toujours. Il est "
"toujours préférable de bien nettoyer le RPATH du binaire afin d'éviter ces "
"problèmes."

#. type: Plain text
#: dpkg-shlibdeps.1:324
msgid ""
"Calling B<dpkg-shlibdeps> in verbose mode (-v) will provide much more "
"information about where it tried to find the dependency information. This "
"might be useful if you don't understand why it's giving you this error."
msgstr ""
"L'appel de B<dpkg-shlibdeps> en mode verbeux (-v) fournira beaucoup plus "
"informations sur l'endroit où il a essayé de trouver l'information sur les "
"dépendances. Ceci peut être utile si vous ne comprenez pas pourquoi vous "
"obtenez cette erreur."

#. type: Plain text
#: dpkg-shlibdeps.1:328
msgid "B<deb-shlibs>(5), B<deb-symbols>(5), B<dpkg-gensymbols>(1)."
msgstr "B<deb-shlibs>(5), B<deb-symbols>(5), B<dpkg-gensymbols>(1)."

#. type: Plain text
#: dpkg-shlibdeps.1:335
msgid "Copyright \\(co 2006 Frank Lichtenheld"
msgstr "Copyright \\(co 2006 Frank Lichtenheld"

#. type: TH
#: dpkg-source.1:2
#, no-wrap
msgid "dpkg-source"
msgstr "dpkg-source"

#. type: Plain text
#: dpkg-source.1:5
msgid "dpkg-source - Debian source package (.dsc) manipulation tool"
msgstr "dpkg-source - outil de manipulation des paquets sources Debian (.dsc)."

#. type: Plain text
#: dpkg-source.1:9
#, fuzzy
#| msgid "B<dpkg-source> [I<options>] I<command>"
msgid "B<dpkg-source> [I<option>...] I<command>"
msgstr "B<dpkg-source> [I<options>] I<commande>"

#. type: Plain text
#: dpkg-source.1:13
msgid "B<dpkg-source> packs and unpacks Debian source archives."
msgstr "B<dpkg-source> empaquete ou dépaquete une archive source Debian."

#. type: Plain text
#: dpkg-source.1:17
msgid ""
"None of these commands allow multiple options to be combined into one, and "
"they do not allow the value for an option to be specified in a separate "
"argument."
msgstr ""
"Aucune de ces commandes ne permet la combinaison de plusieurs options en une "
"seule et elles ne permettent pas d'indiquer la valeur d'une option dans un "
"argument séparé."

#. type: TP
#: dpkg-source.1:19
#, no-wrap
msgid "B<-x >I<filename>B<.dsc >[I<output-directory>]"
msgstr "B<-x >I<fichier>B<.dsc> [I<répertoire-de-sortie>]"

#. type: Plain text
#: dpkg-source.1:29
msgid ""
"Extract a source package. One non-option argument must be supplied, the name "
"of the Debian source control file (B<.dsc>).  An optional second non-option "
"argument may be supplied to specify the directory to extract the source "
"package to, this must not exist. If no output directory is specified, the "
"source package is extracted into a directory named I<source>-I<version> "
"under the current working directory."
msgstr ""
"Cette option sert à extraire un paquet source. On doit donner un seul "
"argument sans option : le nom du fichier de contrôle des sources Debian (B<."
"dsc>).  Un deuxième argument sans option peut être donné pour indiquer le "
"répertoire où extraire le paquet source, cela ne doit pas exister. Quand "
"aucun répertoire n'est indiqué, le paquet source est extrait dans un "
"répertoire I<source>-I<version> du répertoire courant."

#. type: Plain text
#: dpkg-source.1:35
msgid ""
"B<dpkg-source> will read the names of the other file(s) making up the source "
"package from the control file; they are assumed to be in the same directory "
"as the B<.dsc>."
msgstr ""
"B<dpkg-source> lit, dans le fichier de contrôle, les noms des fichiers qui "
"composent le paquet source ; il suppose qu'ils sont dans le même répertoire "
"que le fichier B<.dsc>."

#. type: Plain text
#: dpkg-source.1:43
msgid ""
"The files in the extracted package will have their permissions and "
"ownerships set to those which would have been expected if the files and "
"directories had simply been created - directories and executable files will "
"be 0777 and plain files will be 0666, both modified by the extractors' "
"umask; if the parent directory is setgid then the extracted directories will "
"be too, and all the files and directories will inherit its group ownership."
msgstr ""
"Les fichiers extraits du paquet auront le même système de propriété et de "
"permission que s'ils avaient été simplement créés -- les répertoires et les "
"fichiers exécutables auront un système de permission égal à 0777 et les "
"simples fichiers, 0666 ; ces deux systèmes étant modifiés par le masque de "
"celui qui fait l'extraction ; si le répertoire parent est « setgid », les "
"répertoires extraits le seront aussi et tous les fichiers et répertoires "
"hériteront du système de propriété de ce groupe."

#. type: Plain text
#: dpkg-source.1:48
msgid ""
"If the source package uses a non-standard format (currently this means all "
"formats except \"1.0\"), its name will be stored in B<debian/source/format> "
"so that the following builds of the source package use the same format by "
"default."
msgstr ""
"Si le paquet source utilise un format non-standard (actuellement, cela "
"signifie tous les formats sauf le \"1.0\"), son nom sera enregistré dans "
"B<debian/source/format> de sorte que la construction du paquet source "
"utilise le même format par défaut."

#. type: TP
#: dpkg-source.1:49
#, no-wrap
msgid "B<-b> I<directory> [I<format-specific-parameters>]"
msgstr "B<-b> I<répertoire> [I<paramètres-dans-un-format-spécifique>]"

#. type: Plain text
#: dpkg-source.1:56
msgid ""
"Build a source package. The first non-option argument is taken as the name "
"of the directory containing the debianized source tree (i.e. with a debian "
"sub-directory and maybe changes to the original files).  Depending on the "
"source package format used to build the package, additional parameters might "
"be accepted."
msgstr ""
"Construit un paquet source. Le premier argument non optionnel est pris comme "
"nom du répertoire contenant l'arborescence des sources Debianisées (c'est-à-"
"dire avec un sous-répertoire debian et peut-être des modifications sur les "
"fichiers d'origine). Selon le format du paquet source utilisé pour "
"construire le paquet, d'autres paramètres peuvent être acceptés."

#. type: Plain text
#: dpkg-source.1:65
#, fuzzy
#| msgid ""
#| "B<dpkg-source> will build the source package with the first format found "
#| "in this ordered list: the format indicated with the I<--format> command-"
#| "line option, the format indicated in B<debian/source/format>, \"1.0\". "
#| "The fallback to \"1.0\" is deprecated and will be removed at some point "
#| "in the future, you should always document the desired source format in "
#| "B<debian/source/format>. See section B<SOURCE PACKAGE FORMATS> for an "
#| "extensive description of the various source package formats."
msgid ""
"B<dpkg-source> will build the source package with the first format found in "
"this ordered list: the format indicated with the I<--format> command line "
"option, the format indicated in B<debian/source/format>, \"1.0\". The "
"fallback to \"1.0\" is deprecated and will be removed at some point in the "
"future, you should always document the desired source format in B<debian/"
"source/format>. See section B<SOURCE PACKAGE FORMATS> for an extensive "
"description of the various source package formats."
msgstr ""
"B<dpkg-source> va construire le paquet source dans le premier format qui "
"fonctionnera dans la liste suivante : le(s) format(s) indiqué(s) avec le "
"paramètre de la ligne de commande I<--format>, le format indiqué dans "
"B<debian/source/format>, « 1.0 ». L'utilisation de « 1.0 » comme dernier "
"recours est dépréciée et sera retirée dans le futur. Le format source "
"devrait toujours être indiqué dans B<debian/source/format>. Voir la section "
"B<FORMATS DE PAQUETS SOURCE> pour une description plus détaillée des "
"différents formats de paquet source."

#. type: TP
#: dpkg-source.1:66
#, no-wrap
msgid "B<--print-format> I<directory>"
msgstr "B<--print-format> I<répertoire>"

#. type: Plain text
#: dpkg-source.1:71
msgid ""
"Print the source format that would be used to build the source package if "
"B<dpkg-source -b >I<directory> was called (in the same conditions and with "
"the same parameters)."
msgstr ""
"Affiche le format source qui serait utilisé pour construire le paquet source "
"si B<dpkg-source -b >I<répertoire> était utilisé (dans les mêmes conditions "
"et avec les mêmes options)."

#. type: TP
#: dpkg-source.1:72
#, no-wrap
msgid "B<--before-build> I<directory>"
msgstr "B<--before-build> I<répertoire>"

#. type: Plain text
#: dpkg-source.1:81
#, fuzzy
#| msgid ""
#| "This command should be called before any build of the package (B<dpkg-"
#| "buildpackage> calls it very early even before B<debian/rules clean>). "
#| "This command should be idempotent and can be called multiple times. Not "
#| "all source formats implement something in this hook, and those that do "
#| "usually prepare the source tree for the build for example by ensuring "
#| "that the Debian patches are applied."
msgid ""
"Run the corresponding hook of the source package format. This hook is called "
"before any build of the package (B<dpkg-buildpackage> calls it very early "
"even before B<debian/rules clean>). This command is idempotent and can be "
"called multiple times. Not all source formats implement something in this "
"hook, and those that do usually prepare the source tree for the build for "
"example by ensuring that the Debian patches are applied."
msgstr ""
"Cette commande doit être utilisée avant toute construction du paquet (B<dpkg-"
"buildpackage> l'utilise très tôt, avant même B<debian/rules clean>). Elle "
"doit être « idempotent » et peut être lancée plusieurs fois. Tous les "
"formats source ne mettent pas en oeuvre ce branchement et ceux qui le font "
"préparent l'arborescence source pour la construction, par exemple en "
"garantissant que les correctifs Debian sont appliqués."

#. type: TP
#: dpkg-source.1:82
#, no-wrap
msgid "B<--after-build> I<directory>"
msgstr "B<--after-build> I<répertoire>"

#. type: Plain text
#: dpkg-source.1:89
#, fuzzy
#| msgid ""
#| "This command should be called after any build of the package (B<dpkg-"
#| "buildpackage> calls it last). This command should be idempotent and can "
#| "be called multiple times. Not all source formats implement something in "
#| "this hook, and those that do usually use it to undo what B<--before-"
#| "build> has done."
msgid ""
"Run the corresponding hook of the source package format. This hook is called "
"after any build of the package (B<dpkg-buildpackage> calls it last). This "
"command is idempotent and can be called multiple times. Not all source "
"formats implement something in this hook, and those that do usually use it "
"to undo what B<--before-build> has done."
msgstr ""
"Cette commande doit être utilisée après toute construction du paquet (B<dpkg-"
"buildpackage> l'utilise en dernier). Elle doit être « idempotent » et peut "
"être lancée plusieurs fois. Tous les formats source ne mettent pas en oeuvre "
"ce branchement et ceux qui le font s'en servent pour défaire ce qui a été "
"fait par B<--before-build>.."

#. type: TP
#: dpkg-source.1:90
#, fuzzy, no-wrap
#| msgid "B<--print-format> I<directory>"
msgid "B<--commit> [I<directory>] ..."
msgstr "B<--print-format> I<répertoire>"

#. type: Plain text
#: dpkg-source.1:95
msgid ""
"Record changes in the source tree unpacked in I<directory>. This command can "
"take supplementary parameters depending on the source format.  It will error "
"out for formats where this operation doesn't mean anything."
msgstr ""

#. type: SH
#: dpkg-source.1:103
#, no-wrap
msgid "GENERIC BUILD OPTIONS"
msgstr "OPTIONS DE CONSTRUCTION GÉNÉRIQUES"

#. type: Plain text
#: dpkg-source.1:111
msgid ""
"Specifies the main source control file to read information from. The default "
"is B<debian/control>.  If given with relative pathname this is interpreted "
"starting at the source tree's top level directory."
msgstr ""
"Indique le principal fichier de contrôle des sources où trouver les "
"renseignements. Par défaut, c'est le fichier B<debian/control>. Lorsqu'un "
"chemin relatif est fourni, on considère qu'il est relatif au répertoire le "
"plus élevé de l'arborescence source."

#. type: Plain text
#: dpkg-source.1:118
msgid ""
"Specifies the change log file to read information from. The default is "
"B<debian/changelog>.  If given with relative pathname this is interpreted "
"starting at the source tree's top level directory."
msgstr ""
"Indique le fichier d'enregistrement des changements où trouver des "
"renseignements. Par défaut, c'est le fichier B<debian/changelog>. Lorsqu'un "
"chemin relatif est fourni, on considère qu'il est relatif au répertoire le "
"plus élevé de l'arborescence source."

#. type: TP
#: dpkg-source.1:123
#, no-wrap
msgid "B<--format=>I<value>"
msgstr "B<--format=>I<valeur>"

#. type: Plain text
#: dpkg-source.1:127
msgid ""
"Use the given format for building the source package. It does override any "
"format given in B<debian/source/format>."
msgstr ""
"Utilise le format indiqué pour la construction du paquet source. Ce choix "
"remplace le format indiqué dans B<debian/source/format>."

#. type: Plain text
#: dpkg-source.1:137
msgid ""
"Read substitution variables in I<substvarsfile>; the default is to not read "
"any file. This option can be used multiple times to read substitution "
"variables from multiple files."
msgstr ""
"Lit les variables de substitution dans I<fichier-substvars> ; par défaut "
"aucun fichier n'est lu. Cette option peut être utilisée plusieurs fois pour "
"lire des variables de substitution depuis plusieurs fichiers."

#. type: TP
#: dpkg-source.1:143
#, no-wrap
msgid "B<-Z>I<compression>, B<--compression>=I<compression>"
msgstr "B<-Z>I<compression>, B<--compression>=I<compression>"

#. type: Plain text
#: dpkg-source.1:151
msgid ""
"Specify the compression to use for created files (tarballs and diffs).  Note "
"that this option will not cause existing tarballs to be recompressed, it "
"only affects new files. Supported values are: I<gzip>, I<bzip2>, I<lzma> and "
"I<xz>.  I<gzip> is the default. I<xz> is only supported since dpkg-dev "
"1.15.5."
msgstr ""
"Spécifie le niveau de compression à utiliser pour les fichiers créés "
"(archives et fichiers diffs). Notez que cette option ne causera pas la "
"recompression des archives existantes, cela ne concerne que les nouveaux "
"fichiers. Les valeurs acceptées sont les suivantes : I<gzip>, I<bzip2>, "
"I<lzma> et I<xz>. I<gzip> étant l'option par défaut. I<xz> n'est géré que "
"depuis dpkg-dev 1.15.5."

#. type: TP
#: dpkg-source.1:151
#, no-wrap
msgid "B<-z>I<level>, B<--compression-level>=I<level>"
msgstr "B<-z>I<niveau>, B<--compression-level>=I<niveau>"

#. type: Plain text
#: dpkg-source.1:157
#, fuzzy
#| msgid ""
#| "Compression level to use. As with B<-Z> it only affects newly created "
#| "files. Supported values are: I<1> to I<9>, I<best>, and I<fast>.  I<9> is "
#| "the default."
msgid ""
"Compression level to use. As with B<-Z> it only affects newly created files. "
"Supported values are: I<1> to I<9>, I<best>, and I<fast>.  The default is "
"I<9> for gzip and bzip2, I<6> for xz and lzma."
msgstr ""
"Niveau de compression à utiliser. Comme avec B<-Z> cela ne concerne que les "
"fichiers nouvellement créés. Les valeurs prises possibles sont les "
"suivantes : I<1> à I<9>, I<best>, et I<fast>. I<9> est la valeur par défaut."

#. type: TP
#: dpkg-source.1:157
#, no-wrap
msgid "B<-i>[I<regexp>], B<--diff-ignore>[=I<regexp>]"
msgstr "B<-i>[I<expr. rat.>], B<--diff-ignore>[=I<expr. rat.>]"

#. type: Plain text
#: dpkg-source.1:169
msgid ""
"You may specify a perl regular expression to match files you want filtered "
"out of the list of files for the diff. (This list is generated by a find "
"command.) (If the source package is being built as a version 3 source "
"package using a VCS, this can be used to ignore uncommited changes on "
"specific files. Using -i.* will ignore all of them.)  B<-i> by itself "
"enables the option, with a default regexp that will filter out control files "
"and directories of the most common revision control systems, backup and swap "
"files and Libtool build output directories. There can only be one active "
"regexp, of multiple B<-i> options only the last one will take effect."
msgstr ""
"Il est possible de donner une expression rationnelle Perl pour filtrer les "
"fichiers qui doivent être éliminés de la liste des fichiers pour le "
"« diff ». Cette liste est créée avec une commande « find ». Si le fichier "
"source en construction est un fichier source de version 3 utilisant un "
"système de suivi de versions, cette option est utile pour ignorer les "
"modifications non envoyées. L'option B<-i> active cette fonction avec une "
"expression rationnelle qui couvre les fichiers de contrôle des plus usuels "
"systèmes de gestion de version, les fichiers de sauvegardes, les fichiers "
"d'échange et les répertoires utilisés par Libtool. Il ne peut y avoir qu'une "
"seule expression rationnelle active ; seule la dernière mentionnée sera "
"prise en compte."

#. type: Plain text
#: dpkg-source.1:179
msgid ""
"This is very helpful in cutting out extraneous files that get included in "
"the diff, e.g. if you maintain your source in a revision control system and "
"want to use a checkout to build a source package without including the "
"additional files and directories that it will usually contain (e.g. CVS/, ."
"cvsignore, .svn/). The default regexp is already very exhaustive, but if you "
"need to replace it, please note that by default it can match any part of a "
"path, so if you want to match the begin of a filename or only full "
"filenames, you will need to provide the necessary anchors (e.g. '(^|/)', "
"'($|/)') yourself."
msgstr ""
"C'est très utile pour supprimer des fichiers qui sont inclus dans le diff, "
"par exemple, si vous maintenez un source avec un système de contrôle de "
"révision et que voulez construire un paquet source sans inclure des fichiers "
"et répertoires additionnels qu'il contient généralement (par exemple CVS/, ."
"cvsignore, .svn/). L'expression rationnelle par défaut  est déjà très "
"exhaustive, mais si avez besoin de la remplacer, veuillez noter que par "
"défaut, il sait vérifier n'importe quelle partie d'un chemin, donc si vous "
"voulez trouver le début d'un nom de fichier ou des noms de fichiers "
"complets, vous devrez fournir les caractères spéciaux vous-même (par "
"exemple'(^|/)', '($|/)')."

#. type: TP
#: dpkg-source.1:179
#, no-wrap
msgid "B<--extend-diff-ignore>=I<regexp>"
msgstr "B<--extend-diff-ignore>=I<expr.rat.>"

#. type: Plain text
#: dpkg-source.1:186
#, fuzzy
#| msgid ""
#| "The perl regular expression specified will extend the default regular "
#| "expression associated to B<-i> by concatenating \"B<|>I<regexp>\" to the "
#| "default regexp.  This option is convenient to use in B<debian/source/"
#| "options> to exclude some auto-generated files from the automatic patch "
#| "generation."
msgid ""
"The perl regular expression specified will extend the default value of B<--"
"diff-ignore> and its current value (if set). It does this by concatenating "
"\"B<|>I<regexp>\" to the existing value.  This option is convenient to use "
"in B<debian/source/options> to exclude some auto-generated files from the "
"automatic patch generation."
msgstr ""
"L'expression rationnelle Perl indiquée complétera celle associée à B<-i> en "
"concaténant \"B<|>I<expr.rat.> à l'expression rationnelle par défaut. Cette "
"option est pratique das B<debian/source/options> pour exclure certains "
"fichiers auto-créés de la création automatique de correctifs."

#. type: TP
#: dpkg-source.1:186
#, no-wrap
msgid "B<-I>[I<file-pattern>], B<--tar-ignore>[=I<file-pattern>]"
msgstr "B<-I>[I<motif-fichier>], B<--tar-ignore>[=I<motif-fichier>]"

#. type: Plain text
#: dpkg-source.1:195
msgid ""
"If this option is specified, the pattern will be passed to B<tar>(1)'s --"
"exclude option when it is called to generate a .orig.tar or .tar file. For "
"example, -ICVS will make tar skip over CVS directories when generating a ."
"tar.gz file. The option may be repeated multiple times to list multiple "
"patterns to exclude."
msgstr ""
"Avec cette option, le fichier est passé à l'option B<tar>(1) quand on veut "
"créer un fichier .orig.tar.gz ou .tar.gz. Par exemple, -ICVS fera que tar "
"sautera les répertoires du CVS quand il doit créer un fichier .tar.gz. On "
"peut répéter cette option pour exclure plusieurs fichiers."

#. type: Plain text
#: dpkg-source.1:200
msgid ""
"B<-I> by itself adds default --exclude options that will filter out control "
"files and directories of the most common revision control systems, backup "
"and swap files and Libtool build output directories."
msgstr ""
"B<-I> ajoute par défaut des options «\\--exclude » qui élimineront les "
"fichiers et les répertoires de contrôles des systèmes les plus connus de "
"contrôle de version, les fichiers d'échange et de sauvegarde et les "
"répertoires utilisés par Libtool."

#. type: Plain text
#: dpkg-source.1:212
msgid ""
"B<Note:> While they have similar purposes, B<-i> and B<-I> have very "
"different syntax and semantics. B<-i> can only be specified once and takes a "
"perl compatible regular expression which is matched against the full "
"relative path of each file. B<-I> can specified multiple times and takes a "
"filename pattern with shell wildcards.  The pattern is applied to the full "
"relative path but also to each part of the path individually. The exact "
"semantic of tar's --exclude option is somewhat complicated, see http://www."
"gnu.org/software/tar/manual/tar.html#wildcards for a full documentation."
msgstr ""
"B<Note :> même si elles ont des rôles similaires, B<-i> et B<-I> ont une "
"syntaxe et une sémantique très différentes. B<-i> ne peut être spécifié "
"qu'une fois et reçoit une expression rationnelle compatible avec le langage "
"Perl qui est appliquée sur chaque chemin relatif complet de chaque fichier. "
"B<I> peut être spécifié plusieurs fois et prend un motif de nom de fichier "
"avec les méta-caractères du shell. Le motif est appliqué au chemin relatif "
"complet mais aussi à chaque partie du chemin individuellement. La sémantique "
"exacte de l'option « tar --exclude » est un peu compliquée, voir http://www."
"gnu.org/software/tar/manuel/tar.html#wildcards pour une documentation plus "
"complète."

#. type: Plain text
#: dpkg-source.1:215
msgid ""
"The default regexp and patterns for both options can be seen in the output "
"of the B<--help> command."
msgstr ""
"L'expression rationnelle et le motif par défaut pour les deux options "
"peuvent être trouvés dans la sortie de la commande B<--help>."

#. type: SH
#: dpkg-source.1:215
#, no-wrap
msgid "GENERIC EXTRACT OPTIONS"
msgstr "LES OPTIONS GENERIQUES POUR EXTRACTION"

#. type: TP
#: dpkg-source.1:216
#, no-wrap
msgid "B<--no-copy>"
msgstr "B<--no-copy>"

#. type: Plain text
#: dpkg-source.1:219
msgid "Do not copy original tarballs near the extracted source package."
msgstr ""
"Ne pas copier l'archive d'origine près de l'extraction du paquet source."

#. type: TP
#: dpkg-source.1:219
#, no-wrap
msgid "B<--no-check>"
msgstr "B<--no-check>"

#. type: Plain text
#: dpkg-source.1:222
msgid "Do not check signatures and checksums before unpacking."
msgstr ""
"Ne vérifie pas les signatures et les sommes de contrôle avant de dépaqueter."

#. type: TP
#: dpkg-source.1:222
#, no-wrap
msgid "B<--require-valid-signature>"
msgstr "B<--require-valid-signature>"

#. type: Plain text
#: dpkg-source.1:230
msgid ""
"Refuse to unpack the source package if it doesn't contain an OpenPGP "
"signature that can be verified either with the user's I<trustedkeys.gpg> "
"keyring, one of the vendor-specific keyrings, or one of the official Debian "
"keyrings (I</usr/share/keyrings/debian-keyring.gpg> and I</usr/share/"
"keyrings/debian-maintainers.gpg>)."
msgstr ""
"Refuse de décompresser le paquet source s'il ne contient pas de signature "
"OpenPGP pouvant être vérifiée soit avec le fichier de clés I<trustedkeys."
"gpg> de l'utilisateur, un des fichiers de clés propre à un distributeur ou "
"un des fichiers de clés officiels de Debian (I</usr/share/keyrings/debian-"
"keyring.gpg> et I</usr/share/keyrings/debian-maintainers.gpg>)."

#. type: SH
#: dpkg-source.1:231
#, no-wrap
msgid "SOURCE PACKAGE FORMATS"
msgstr "FORMATS DE PAQUET SOURCE"

#. type: Plain text
#: dpkg-source.1:236
msgid ""
"If you don't know what source format to use, you should probably pick either "
"\"3.0 (quilt)\" or \"3.0 (native)\". See http://wiki.debian.org/Projects/"
"DebSrc3.0 for information on the deployment of those formats within Debian."
msgstr ""
"Si vous ne savez pas quel format source utiliser, il est conseillé de "
"choisir soit « 3.0 (quilt)\" soit \"3.0 (native)\". Voir http://wiki.debian."
"org/Projects/DebSrc3.0 pour plus d'informations sur la mise en oeuvre de ces "
"formats dans Debian."

#. type: SS
#: dpkg-source.1:237
#, no-wrap
msgid "Format: 1.0"
msgstr "Format: 1.0"

#. type: Plain text
#: dpkg-source.1:241
msgid ""
"A source package in this format consists either of a B<.orig.tar.gz> "
"associated to a B<.diff.gz> or a single B<.tar.gz> (in that case the package "
"is said to be I<native>)."
msgstr ""
"Un paquet source dans ce format se compose soit d'un B<.orig.tar.gz> associé "
"à un B<.diff.gz> ou un simple B<.tar.gz> (dans ce cas, le paquet est appelé "
"natif I<\"native\">)."

#. type: Plain text
#: dpkg-source.1:243 dpkg-source.1:411 dpkg-source.1:586 dpkg-source.1:625
msgid "B<Extracting>"
msgstr "B<Extracting>"

#. type: Plain text
#: dpkg-source.1:253
msgid ""
"Extracting a native package is a simple extraction of the single tarball in "
"the target directory. Extracting a non-native package is done by first "
"unpacking the B<.orig.tar.gz> and then applying the patch contained in the "
"B<.diff.gz> file. The timestamp of all patched files is reset to the "
"extraction time of the source package (this avoids timestamp skews leading "
"to problems when autogenerated files are patched). The diff can create new "
"files (the whole debian directory is created that way) but can't remove "
"files (empty files will be left over)."
msgstr ""
"Extraire un paquet natif revient à une simple extraction de l'archive TAR "
"dans le répertoire cible. L'extraction d'un paquet non-natif consiste au "
"dépaquetage du B<.orig.tar.gz> puis l'application des correctifs contenues "
"dans le B<.diff.gz>. La date de tous les fichiers correctifs est celle du "
"moment où a eu lieu l'extraction depuis le paquet source (cela évite les "
"heures fausses menant à des problèmes lorsque des fichiers générés "
"automatiquement sont modifiés). Le diff peut créer de nouveaux fichiers "
"(tout le répertoire debian est créé de cette façon) mais ne peut pas "
"supprimer de fichiers (les fichiers vides seront laissé là)."

#. type: Plain text
#: dpkg-source.1:255 dpkg-source.1:439 dpkg-source.1:597 dpkg-source.1:630
msgid "B<Building>"
msgstr "B<Construction>"

#. type: Plain text
#: dpkg-source.1:261
msgid ""
"Building a native package is just creating a single tarball with the source "
"directory. Building a non-native package involves extracting the original "
"tarball in a separate \".orig\" directory and regenerating the B<.diff.gz> "
"by comparing the source package I<directory> with the .orig directory."
msgstr ""
"Construire un paquet natif revient simplement à créer une archive TAR avec "
"le répertoire du source. La création d'un paquet non-natif consiste à "
"extraire l'archive d'origine dans un répertoire séparé \".orig\" puis "
"régénérer le B<.diff.gz> en comparant le I<répertoire> du paquet source avec "
"répertoire \".orig\"."

#. type: TP
#: dpkg-source.1:262
#, no-wrap
msgid "B<Build options (with -b):>"
msgstr "B<Options de construction (avec -b):>"

#. type: Plain text
#: dpkg-source.1:275
msgid ""
"If a second non-option argument is supplied it should be the name of the "
"original source directory or tarfile or the empty string if the package is a "
"Debian-specific one and so has no Debianisation diffs. If no second argument "
"is supplied then B<dpkg-source> will look for the original source tarfile "
"I<package>B<_>I<upstream-version>B<.orig.tar.gz> or the original source "
"directory I<directory>B<.orig> depending on the B<-sX> arguments."
msgstr ""
"Si l'on donne un second argument, ce sera le nom du répertoire source "
"d'origine ou le nom du fichier « tar » ou bien une chaîne vide si le paquet "
"est un « debian pure souche » et n'a donc pas de fichiers « diffs » "
"concernant sa « debianisation ». S'il n'y a pas de second argument, et selon "
"les autres arguments donnés, B<dpkg-source> cherche le fichier « tar » des "
"sources d'origine I<paquet>B<_>I<version-d'origine>B<.orig.tar.gz> ou bien "
"le répertoire source d'origine I<répertoire>B<.orig> selon les paramètres B<-"
"sX>."

#. type: Plain text
#: dpkg-source.1:281
msgid ""
"B<-sa>, B<-sp>, B<-sk>, B<-su> and B<-sr> will not overwrite existing "
"tarfiles or directories. If this is desired then B<-sA>, B<-sP>, B<-sK>, B<-"
"sU> and B<-sR> should be used instead."
msgstr ""
"Les options B<-sa>, B<-sp>, B<-sk>, B<-su> et B<-sr> ne remplacent pas les "
"fichiers « tar » ou les répertoires existants. Pour cela, il faut utiliser "
"les options B<-sA>, B<-sP>, B<-sK>, B<-sU> et B<-sR.>"

#. type: TP
#: dpkg-source.1:281
#, no-wrap
msgid "B<-sk>"
msgstr "B<-sk>"

#. type: Plain text
#: dpkg-source.1:290
msgid ""
"Specifies to expect the original source as a tarfile, by default "
"I<package>B<_>I<upstream-version>B<.orig.tar.>I<extension>.  It will leave "
"this original source in place as a tarfile, or copy it to the current "
"directory if it isn't already there. The tarball will be unpacked into "
"I<directory>B<.orig> for the generation of the diff."
msgstr ""
"Quand on spécifie en fichier source d'origine un fichier « tar » ; par "
"défaut, I<paquet>B<_>I<version-d'origine>B<.orig.tar>I<extension>. Il le "
"laisse en place en tant que fichier « tar » ou le copie dans le répertoire "
"en cours s'il n'y est pas déjà. Le fichier sera dépaqueté dans "
"I<répertoire>B<.orig> pour la génération du fichier diff."

#. type: TP
#: dpkg-source.1:290 dpkg-source.1:359
#, no-wrap
msgid "B<-sp>"
msgstr "B<-sp>"

#. type: Plain text
#: dpkg-source.1:295
msgid "Like B<-sk> but will remove the directory again afterwards."
msgstr "Comme B<-sk> mais supprimera le répertoire à nouveau par la suite."

#. type: TP
#: dpkg-source.1:295 dpkg-source.1:365
#, no-wrap
msgid "B<-su>"
msgstr "B<-su>"

#. type: Plain text
#: dpkg-source.1:303
msgid ""
"Specifies that the original source is expected as a directory, by default "
"I<package>B<->I<upstream-version>B<.orig> and B<dpkg-source> will create a "
"new original source archive from it."
msgstr ""
"Quand on spécifie que le source d'origine est un répertoire ; la valeur par "
"défaut est le répertoire I<paquet>B<->I<version-d'origine>B<.orig> et B<dpkg-"
"source> crée une nouvelle archive du source d'origine."

#. type: TP
#: dpkg-source.1:303
#, no-wrap
msgid "B<-sr>"
msgstr "B<-sr>"

#. type: Plain text
#: dpkg-source.1:308
msgid "Like B<-su> but will remove that directory after it has been used."
msgstr "Comme B<-su> mais supprimera ce répertoire après utilisation."

#. type: TP
#: dpkg-source.1:308
#, no-wrap
msgid "B<-ss>"
msgstr "B<-ss>"

#. type: Plain text
#: dpkg-source.1:316
msgid ""
"Specifies that the original source is available both as a directory and as a "
"tarfile. dpkg-source will use the directory to create the diff, but the "
"tarfile to create the B<.dsc>.  This option must be used with care - if the "
"directory and tarfile do not match a bad source archive will be generated."
msgstr ""
"Indique que le source d'origine est disponible à la fois comme un répertoire "
"et comme un fichier « tar ». « dpkg-source » se servira du répertoire pour "
"créer le « diff », mais du fichier « tar » pour créer le fichier B<.dsc>. "
"Aussi, faire attention avec cette option. Si le répertoire et le fichier "
"« tar » ne correspondent pas, une mauvaise archive source en résulte."

#. type: TP
#: dpkg-source.1:316 dpkg-source.1:368
#, no-wrap
msgid "B<-sn>"
msgstr "B<-sn>"

#. type: Plain text
#: dpkg-source.1:322
msgid ""
"Specifies to not look for any original source, and to not generate a diff.  "
"The second argument, if supplied, must be the empty string. This is used for "
"Debian-specific packages which do not have a separate upstream source and "
"therefore have no debianisation diffs."
msgstr ""
"Indique de ne pas chercher de source d'origine et de ne pas créer de "
"« diff ». Le second argument, s'il existe, doit être une chaîne vide. Cela "
"sert pour les paquets Debian pure souche qui n'ont pas une source d'origine "
"distincte et donc pas de fichier « diff » de debianisation."

#. type: TP
#: dpkg-source.1:322
#, no-wrap
msgid "B<-sa> or B<-sA>"
msgstr "B<-sa> or B<-sA>"

#. type: Plain text
#: dpkg-source.1:348
msgid ""
"Specifies to look for the original source archive as a tarfile or as a "
"directory - the second argument, if any, may be either, or the empty string "
"(this is equivalent to using B<-sn>).  If a tarfile is found it will unpack "
"it to create the diff and remove it afterwards (this is equivalent to B<-"
"sp>); if a directory is found it will pack it to create the original source "
"and remove it afterwards (this is equivalent to B<-sr>); if neither is found "
"it will assume that the package has no debianisation diffs, only a "
"straightforward source archive (this is equivalent to B<-sn>).  If both are "
"found then B<dpkg-source> will ignore the directory, overwriting it, if B<-"
"sA> was specified (this is equivalent to B<-sP>)  or raise an error if B<-"
"sa> was specified.  B<-sA> is the default."
msgstr ""
"Indique comme source d'origine soit un fichier « tar », soit un répertoire - "
"le deuxième argument, s'il existe, doit être l'un d'eux ou bien une chaîne "
"vide (cela revient à utiliser l'option B<-sn)>. Quand un fichier « tar » "
"existe, il est dépaqueté pour créer le fichier « diff » ; ensuite il est "
"supprimé (cela revient à utiliser l'option B<-sp)> ; quand un répertoire est "
"trouvé, il est dépaqueté et B<dpkg-source> crée le source d'origine et "
"supprime ensuite ce répertoire (cela revient à utiliser l'option B<-sr)> ; "
"quand ni l'un ni l'autre n'est trouvé, B<dpkg-source> suppose que le paquet "
"ne possède pas de fichier « diff » de debianisation, mais seulement une "
"simple archive source (cela revient à utiliser l'option B<-sn>). Quand les "
"deux sont trouvés, B<dpkg-source> ignore le répertoire et le remplace si "
"l'option B<-sA> a été spécifiée (cela revient à utiliser l'option B<-sP)> ou "
"il provoque une erreur si l'option B<-sa> a été spécifiée. L'option par "
"défaut est B<-sA>."

#. type: TP
#: dpkg-source.1:348 dpkg-source.1:541
#, no-wrap
msgid "B<--abort-on-upstream-changes>"
msgstr "B<--abort-on-upstream-changes>"

#. type: Plain text
#: dpkg-source.1:354
msgid ""
"The process fails if the generated diff contains changes to files outside of "
"the debian sub-directory. This option is not allowed in B<debian/source/"
"options> but can be used in B<debian/source/local-options>."
msgstr ""
"Ce processus échoue si le fichier de différences contient des modifications "
"apportées à des fichiers en dehors du sous-répertoire debian. Cette option "
"n'est pas autorisée dans B<debian/source/options> mais peut être utilisée "
"dans B<debian/source/local-options>."

#. type: TP
#: dpkg-source.1:355
#, no-wrap
msgid "B<Extract options (with -x):>"
msgstr "B<options d'extractions (avec -x):>"

#. type: Plain text
#: dpkg-source.1:359
msgid "In all cases any existing original source tree will be removed."
msgstr ""
"Dans tous ces cas, l'arborescence existante des sources d'origine est "
"supprimée."

#. type: Plain text
#: dpkg-source.1:365
msgid ""
"Used when extracting then the original source (if any) will be left as a "
"tarfile. If it is not already located in the current directory or if an "
"existing but different file is there it will be copied there.  (B<This is "
"the default>)."
msgstr ""
"Quand on extrait le répertoire source d'origine (s'il existe), il est "
"conservé en tant que fichier « tar ». S'il n'est pas déjà dans le répertoire "
"courant ou si ce répertoire contient un fichier différent, le fichier "
"« tar » est copié dans ce répertoire. (B<Ceci est le comportement par "
"défaut>)."

#. type: Plain text
#: dpkg-source.1:368
msgid "Unpacks the original source tree."
msgstr "Dépaquetage de l'arborescence du répertoire source d'origine."

#. type: Plain text
#: dpkg-source.1:373
msgid ""
"Ensures that the original source is neither copied to the current directory "
"nor unpacked. Any original source tree that was in the current directory is "
"still removed."
msgstr ""
"Assure que le répertoire source d'origine ne sera ni copié dans le "
"répertoire en cours, ni dépaqueté. Si une arborescence source d'origine est "
"présente dans le répertoire courant, elle est toujours supprimée."

#. type: Plain text
#: dpkg-source.1:378
msgid ""
"All the B<-s>I<X> options are mutually exclusive. If you specify more than "
"one only the last one will be used."
msgstr ""
"Toutes les options B<-s>I<X> s'excluent mutuellement. Si vous en indiquez "
"plusieurs, seule la dernière sera prise en compte."

#. type: TP
#: dpkg-source.1:378 dpkg-source.1:555
#, no-wrap
msgid "B<--skip-debianization>"
msgstr "B<--skip-debianization>"

#. type: Plain text
#: dpkg-source.1:381
msgid "Skips application of the debian diff on top of the upstream sources."
msgstr ""
"Passe l'étape d'application du fichier de différences Debian aux sources "
"amont."

#. type: SS
#: dpkg-source.1:382
#, no-wrap
msgid "Format: 2.0"
msgstr "Format: 2.0"

#. type: Plain text
#: dpkg-source.1:386
msgid ""
"Also known as wig&pen. This format is not recommended for wide-spread usage, "
"the format \"3.0 (quilt)\" replaces it. Wig&pen was the first specification "
"of a new-generation source package format."
msgstr ""
"Aussi connu sous le nom de « wig&pen ». Ce format n'est pas recommandé afin "
"d'assurer une utilisation massive du format \"3.0 (quilt)\" qui le remplace. "
"Wig&pen a été la première spécification d'une nouvelle génération de format "
"de paquet source."

#. type: Plain text
#: dpkg-source.1:391
msgid ""
"The behaviour of this format is the same as the \"3.0 (quilt)\" format "
"except that it doesn't use an explicit list of patches. All files in "
"B<debian/patches/> matching the perl regular expression B<[\\ew-]+> must be "
"valid patches: they are applied at extraction time."
msgstr ""
"Le comportement de ce format est le même que pour le format \"3.0 (quilt)\" "
"sauf qu'il n'utilise pas de liste explicite de correctifs. Tous les fichiers "
"dans B<debian/patches/> correspondant à l'expression rationnelle Perl B<"
"[\\ew-]+> doivent être des correctifs valides : ils sont appliqués au moment "
"de l'extraction."

#. type: Plain text
#: dpkg-source.1:394
msgid ""
"When building a new source package, any change to the upstream source is "
"stored in a patch named B<zz_debian-diff-auto>."
msgstr ""
"Lors de la construction d'un nouveau paquet source, toute modification "
"apportée à la source amont est enregistré dans un correctif nommé "
"B<zz_debian-diff-auto>."

#. type: SS
#: dpkg-source.1:395
#, no-wrap
msgid "Format: 3.0 (native)"
msgstr "Format: 3.0 (native)"

#. type: Plain text
#: dpkg-source.1:401
msgid ""
"This format is an extension of the native package format as defined in the "
"1.0 format. It supports all compression methods and will ignore by default "
"any VCS specific files and directories as well as many temporary files (see "
"default value associated to B<-I> option in the B<--help> output)."
msgstr ""
"Ce format est une extension du format de paquet natif tel que défini dans le "
"format 1.0. Il gère toutes les méthodes de compression et ignore par défaut "
"tout fichier et répertoire VCS ainsi que de nombreux fichiers temporaires "
"(voir la valeur par défaut associé à l'option B<-I> dans la sortie de B<--"
"help>)."

#. type: SS
#: dpkg-source.1:402
#, no-wrap
msgid "Format: 3.0 (quilt)"
msgstr "Format: 3.0 (quilt)"

#. type: Plain text
#: dpkg-source.1:409
msgid ""
"A source package in this format contains at least an original tarball (B<."
"orig.tar.>I<ext> where I<ext> can be B<gz>, B<bz2>, B<lzma> and B<xz>) and a "
"debian tarball (B<.debian.tar.>I<ext>). It can also contain additional "
"original tarballs (B<.orig->I<component>B<.tar.>I<ext>).  I<component> can "
"only contain alphanumeric characters and dashes (\"-\")."
msgstr ""
"Un paquet source dans ce format contient au moins une archive tar d'origine "
"(B<.orig.tar.>I<ext> où I<ext> peut être B<gz>, B<bz2> B<lzma> et B<xz>) et "
"une archive tar debian (B<.debian.tar.>I<ext>). Il peut également contenir "
"d'autres archives tar d'origine (B<.orig->I<composant>B<.tar.>I<ext>). "
"I<composant> ne peut être constitué que de caractères alphanumériques et de "
"tirets (« - »)."

#. type: Plain text
#: dpkg-source.1:420
msgid ""
"The main original tarball is extracted first, then all additional original "
"tarballs are extracted in subdirectories named after the I<component> part "
"of their filename (any pre-existing directory is replaced). The debian "
"tarball is extracted on top of the source directory after prior removal of "
"any pre-existing B<debian> directory. Note that the debian tarball must "
"contain a B<debian> sub-directory but it can also contain binary files "
"outside of that directory (see B<--include-binaries> option)."
msgstr ""
"L'archive principale tar d'origine est extraite tout d'abord, puis toutes "
"les autres archives tar d'origine sont extraites dans des sous-répertoires "
"dont le nom est formé à partir de la partie I<composant> de leur nom. "
"L'archive tar Debian est extraite par dessus le répertoire source, après la "
"suppression de tout répertoire B<debian> existant. Notez que l'archive tar "
"Debian doit contenir un sous-répertoire B<debian>, mais il peut également "
"contenir des fichiers binaires en dehors de ce répertoire (voir l'option B<--"
"include-binaries>)."

#. type: Plain text
#: dpkg-source.1:432
msgid ""
"All patches listed in B<debian/patches/debian.series> or B<debian/patches/"
"series> are then applied.  If the former file is used and the latter one "
"doesn't exist (or is a symlink), then the latter is replaced with a symlink "
"to the former. This is meant to simplify usage of quilt to manage the set of "
"patches. Note however that while B<dpkg-source> parses correctly series "
"files with explicit options used for patch application (stored on each line "
"after the patch filename and one or more spaces), it does ignore those "
"options and always expect patches that can be applied with the B<-p1> option "
"of B<patch>. It will thus emit a warning when it encounters such options, "
"and the build is likely to fail."
msgstr ""
"Toutes les modifications figurant dans B<debian/patches/debian.series> ou "
"B<debian/patches/series> sont alors appliquées. Si l'ancien fichier est "
"utilisé et qu'il n'y a pas de plus récent (ou que c'est un lien symbolique), "
"alors celui-ci est remplacé par un lien symbolique vers l'ancien. Cette "
"disposition vise à simplifier l'utilisation de « quilt » pour gérer "
"l'ensemble des patches. Notez toutefois que si B<dpkg-source> analyse "
"correctement une série de fichiers avec les options utilisées pour "
"l'application du correctif (stockées sur chaque ligne après le nom du patch "
"et d'un ou plusieurs espaces), il n'ignore pas cesoptions et s'attendra "
"toujours que les correctifs puissent être appliqués avec l'option B<-p1> de "
"B<patch>. Il va donc émettre un avertissement lorsqu'il rencontre ces "
"options, et la construction est susceptible d'échouer."

#. type: Plain text
#: dpkg-source.1:434
msgid ""
"Similarly to quilt's default behaviour, the patches can remove files too."
msgstr ""
"Similaire au comportement par défaut de « quilt », les modifications peuvent "
"aussi supprimer des fichiers."

#. type: Plain text
#: dpkg-source.1:437
msgid ""
"The file B<.pc/applied-patches> is created if some patches have been applied "
"during the extraction."
msgstr ""
"Le fichier B<.pc/applied-patches> est créé si certains correctifs ont été "
"appliqués au cours de l'extraction."

#. type: Plain text
#: dpkg-source.1:451
#, fuzzy
#| msgid ""
#| "All original tarballs found in the current directory are extracted in a "
#| "temporary directory by following the same logic as for the unpack, the "
#| "debian directory is copied over in the temporary directory, and all "
#| "patches except the automatic patch (B<debian-changes->I<version> or "
#| "B<debian-changes>, depending on B<--single-debian-patch>) are applied. "
#| "The temporary directory is compared to the source package directory and "
#| "the diff (if non-empty) is stored in the automatic patch.  If the "
#| "automatic patch is created/deleted, it's added/removed from the series "
#| "file and from the quilt metadata."
msgid ""
"All original tarballs found in the current directory are extracted in a "
"temporary directory by following the same logic as for the unpack, the "
"debian directory is copied over in the temporary directory, and all patches "
"except the automatic patch (B<debian-changes->I<version> or B<debian-"
"changes>, depending on B<--single-debian-patch>) are applied. The temporary "
"directory is compared to the source package directory. When the diff is non-"
"empty, the build fails unless B<--single-debian-patch> or B<--auto-commit> "
"has been used, in which case the diff is stored in the automatic patch.  If "
"the automatic patch is created/deleted, it's added/removed from the series "
"file and from the quilt metadata."
msgstr ""
"Les originaux de toutes les archives tar trouvées dans le répertoire courant "
"sont extraits dans un répertoire temporaire en suivant la même logique que "
"pour le dépaquetage, le répertoire debian est copié dans le répertoire "
"temporaire, et toutes les mises à jour sauf B<debian-changes->I<version> "
"sont appliquées. Le répertoire temporaire est comparé à celui du paquet "
"source et le fichier de différences (s'il est non vide) est stocké dans le "
"correctif automatique. Si le correctif automatique est créé ou supprimé, il "
"est ajouté ou supprimé dans le fichier series et les méta-données de quilt."

#. type: Plain text
#: dpkg-source.1:459
msgid ""
"Any change on a binary file is not representable in a diff and will thus "
"lead to a failure unless the maintainer deliberately decided to include that "
"modified binary file in the debian tarball (by listing it in B<debian/source/"
"include-binaries>). The build will also fail if it finds binary files in the "
"debian sub-directory unless they have been whitelisted through B<debian/"
"source/include-binaries>."
msgstr ""
"Tout changement dans un fichier binaire ne peut être indiqué dans le diff et "
"va déboucher sur un échec à moins que le mainteneur décide délibérément "
"d'inclure cette modification binaire dans l'archive tar Debian (en le "
"listant dans B<debian/source/include-binaries>). La construction pourra "
"également échouer si des fichiers binaires sont trouvés dans le sous-"
"répertoire debian sans être indiqué dans la liste blanche de B<debian/source/"
"include-binaries>."

#. type: Plain text
#: dpkg-source.1:462
msgid ""
"The updated debian directory and the list of modified binaries is then used "
"to generate the debian tarball."
msgstr ""
"Le répertoire debian mis à jour et la liste des binaires modifiés sont "
"ensuite utilisés pour recréer l'archive tar debian."

#. type: Plain text
#: dpkg-source.1:468
msgid ""
"The automatically generated diff doesn't include changes on VCS specific "
"files as well as many temporary files (see default value associated to B<-i> "
"option in the B<--help> output). In particular, the B<.pc> directory used by "
"quilt is ignored during generation of the automatic patch."
msgstr ""
"Le diff généré automatiquement n'inclut pas les changements spécifiques sur "
"les fichiers VCS ainsi sur que de nombreux fichiers temporaires (pour la "
"valeur par défaut associée à l'option B<-i>, voir la sortie de B<--help>). "
"En particulier, le répertoire B<.pc> utilisé par « quilt » est ignoré lors "
"de la génération automatique du patch."

#. type: Plain text
#: dpkg-source.1:477
#, fuzzy
#| msgid ""
#| "Note: B<dpkg-source> expects the source tree to have all patches listed "
#| "in the series file applied when you generate the source package.  This is "
#| "not the case when the source tree has been obtained by unpacking a source "
#| "package using the Format: 1.0 for instance. To mitigate the problem, "
#| "B<dpkg-source> will apply the patches by itself if it believes that they "
#| "have not yet been applied. To detect this situation, it uses the "
#| "following heuristic: it finds the list of supposedly unapplied patches "
#| "(they are listed in the B<series> file but not in B<.pc/applied-"
#| "patches>), and if the first patch in that set can be applied without "
#| "errors, it will apply them all.  The option B<--no-preparation> can be "
#| "used to disable this behaviour. This operation is usually done as part of "
#| "the B<--prepare-build> command."
msgid ""
"Note: B<dpkg-source> B<--before-build> (and B<-b>) will ensure that all "
"patches listed in the series file are applied so that a package build always "
"has all patches applied. It does this by finding unapplied patches (they are "
"listed in the B<series> file but not in B<.pc/applied-patches>), and if the "
"first patch in that set can be applied without errors, it will apply them "
"all. The option B<--no-preparation> can be used to disable this behavior."
msgstr ""
"Note : B<dpkg-source> s'attend à ce que l'arbre source ait toutes les "
"corrections d'appliquées lorsque vous créez le paquet source. Ce n'est pas "
"le cas lorsque l'arbre source a été obtenu par le dépaquetage d'un paquet "
"source utilisant le format : 1.0 par exemple. Pour réduire le problème, "
"B<dpkg-source> appliquera les corrections lui-même s'il détecte qu'elles ne "
"l'ont pas été. Pour effectuer cette détection, il suit le raisonnement "
"suivant : il recherche la liste des correctifs supposément non appliqués "
"(ils sont mentionnés dans le fichier B<series> mais pas dans B<.pc/applied-"
"patches>) et si le premier de cette liste peut être appliqué dans erreur, il "
"les applique tous. L'option B<--no-preparation> peut être utilisée pour "
"désactiver ce comportement. Cette opération est en général effectuée dans le "
"cadre de l'utilisation de la commande B<--prepare-build>."

#. type: Plain text
#: dpkg-source.1:480
#, fuzzy
#| msgid "B<debian/changelog>"
msgid "B<Recording changes>"
msgstr "B<debian/changelog>"

#. type: TP
#: dpkg-source.1:480
#, fuzzy, no-wrap
#| msgid "B<-c>, B<--control-path> I<package-name> [I<control-file>]"
msgid "B<--commit> [I<directory>] [I<patch-name>] [I<patch-file>]"
msgstr "B<-c>, B<--control-path> I<nom-paquet> [I<fichier-contrôle>]"

#. type: Plain text
#: dpkg-source.1:490
msgid ""
"Generates a patch corresponding to the local changes that are not managed by "
"the quilt patch system and integrates it in the patch system under the name "
"I<patch-name>. If the name is missing, it will be asked interactively. If "
"I<patch-file> is given, it is used as the patch corresponding to the local "
"changes to integrate. This is mainly useful after a build failure that pre-"
"generated this file. Once integrated, an editor is launched so that you can "
"edit the meta-information in the patch header."
msgstr ""

#. type: Plain text
#: dpkg-source.1:493 dpkg-source.1:567 dpkg-source.1:606
msgid "B<Build options>"
msgstr "B<Options de construction>"

#. type: TP
#: dpkg-source.1:493
#, no-wrap
msgid "B<--allow-version-of-quilt-db=>I<version>"
msgstr "B<--allow-version-of-quilt-db=>I<version>"

# type: Plain text
#. type: Plain text
#: dpkg-source.1:501
msgid ""
"Allow B<dpkg-source> to build the source package if the version of the quilt "
"metadata is the one specified, even if B<dpkg-source> doesn't know about it. "
"Effectively this says that the given version of the quilt metadata is "
"compatible with the version 2 that B<dpkg-source> currently supports. The "
"version of the quilt metadata is stored in B<.pc/.version>."
msgstr ""
"Autorise B<dpkg-source> à construire le fichier si la version des méta-"
"données de quilt est celle indiquée, même si B<dpkg-source> n'en n'a pas "
"connaissance. En fait, cela indique que la version indiquée des méta-données "
"de quilt est compatible avec la version 2 que B<dpkg-source> gère. La "
"version des méta-données de quilt est conservée dans B<.pc/.version>."

#. type: TP
#: dpkg-source.1:501
#, no-wrap
msgid "B<--include-removal>"
msgstr "B<--include-removal>"

#. type: Plain text
#: dpkg-source.1:505
msgid ""
"Do not ignore removed files and include them in the automatically generated "
"patch."
msgstr ""
"Ne pas ignorer les fichiers supprimés et les inclure dans le fichier de "
"modification généré automatiquement."

#. type: TP
#: dpkg-source.1:505
#, no-wrap
msgid "B<--include-timestamp>"
msgstr "B<--include-timestamp>"

#. type: Plain text
#: dpkg-source.1:508
msgid "Include timestamp in the automatically generated patch."
msgstr "Inclure la date dans le patch généré automatiquement."

#. type: TP
#: dpkg-source.1:508
#, no-wrap
msgid "B<--include-binaries>"
msgstr "B<--include-binaries>"

#. type: Plain text
#: dpkg-source.1:513
msgid ""
"Add all modified binaries in the debian tarball. Also add them to B<debian/"
"source/include-binaries>: they will be added by default in subsequent builds "
"and this option is thus no more needed."
msgstr ""
"Ajouter tous les binaires modifiés dans l'archive tar debian. Les ajouter "
"aussi à B<debian/source/include-binaries> : elles seront ajoutées par défaut "
"dans les constructions correspondantes aussi cette option n'est donc plus "
"nécessaire."

#. type: TP
#: dpkg-source.1:513
#, no-wrap
msgid "B<--no-preparation>"
msgstr "B<--no-preparation>"

#. type: Plain text
#: dpkg-source.1:517
msgid ""
"Do not try to prepare the build tree by applying patches which are "
"apparently unapplied."
msgstr ""
"Ne pas essayer de préparer l'arbre de la construction en appliquant les "
"correctifs qui ne lui sont apparemment pas appliqués."

#. type: TP
#: dpkg-source.1:517
#, no-wrap
msgid "B<--single-debian-patch>"
msgstr "B<--single-debian-patch>"

# type: Plain text
#. type: Plain text
#: dpkg-source.1:528
#, fuzzy
#| msgid ""
#| "Use B<debian/patches/debian-changes> instead of B<debian/patches/debian-"
#| "changes->I<version> for the name of the automatic patch generated during "
#| "build. This option is particularly useful when the package is maintained "
#| "in a VCS and a patch set can't reliably be generated. Instead the current "
#| "diff with upstream should be stored in a single patch. When using this "
#| "option, it is recommended to create a debian/source/patch-header file "
#| "explaining how the Debian changes can be best reviewed, for example in "
#| "the VCS that is used."
msgid ""
"Use B<debian/patches/debian-changes> instead of B<debian/patches/debian-"
"changes->I<version> for the name of the automatic patch generated during "
"build. This option is particularly useful when the package is maintained in "
"a VCS and a patch set can't reliably be generated. Instead the current diff "
"with upstream should be stored in a single patch. The option would be put in "
"B<debian/source/local-options> and would be accompanied by a B<debian/source/"
"local-patch-header> file explaining how the Debian changes can be best "
"reviewed, for example in the VCS that is used."
msgstr ""
"Utilise B<debian/patches/debian-changes> au lieu de B<debian/patches/debian-"
"changes->I<version> comme nom du correctif automatiquement créé au cours de "
"la construction. Cette option est particulièrement pratique lorsque le "
"paquet est géré avec un outil de gestion de versions et qu'un jeu de "
"correctifs ne peut être créé de façon fiable. Dans ce cas, les différences "
"avec la version amont doivent être conservées dans un correctif unique. "
"Lorsque cette option est utilisée, il est recommandé d'utiliser un fichier "
"debian/source/patch-header qui explique la mailleure méthode pour relire les "
"corrections spécifiques à Debian, par exemple dans le gestionnaire de "
"versions utilisé."

#. type: TP
#: dpkg-source.1:528
#, no-wrap
msgid "B<--create-empty-orig>"
msgstr "B<--create-empty-orig>"

#. type: Plain text
#: dpkg-source.1:534
msgid ""
"Automatically create the main original tarball as empty if it's missing and "
"if there are supplementary original tarballs. This option is meant to be "
"used when the source package is just a bundle of multiple upstream software "
"and where there's no \"main\" software."
msgstr ""
"Crée automatiquement une archive tar d'origine vide si elle est manquante et "
"qu'il existe des archives tar d'origine additionnelles. Cette option peut "
"être utilisée lorsque le paquet source est une collection de différentes "
"sources amont et qu'il n'existe pas de logiciel « principal »."

#. type: TP
#: dpkg-source.1:534
#, no-wrap
msgid "B<--unapply-patches>"
msgstr "B<--unapply-patches>"

#. type: Plain text
#: dpkg-source.1:541
#, fuzzy
#| msgid ""
#| "Unapply the patches in the B<--after-build> hook. This is mainly useful "
#| "when you build your package directly in a VCS that contains unpatched "
#| "upstream source and where you want to keep the tree unpatched even after "
#| "a package build. This option is usually put in B<debian/source/local-"
#| "options> (it's not allowed in B<debian/source/options> so that all "
#| "generated source packages have the same behaviour by default)."
msgid ""
"Unapply the patches in the B<--after-build> hook. You usually don't need "
"this option as dpkg-source will automatically unapply the patches if it did "
"apply them during B<--before-build>. This option is only allowed in B<debian/"
"source/local-options> so that all generated source packages have the same "
"behavior by default."
msgstr ""
"Retire les correctifs dans le point d'entrée B<--after-build>. Cette option "
"est principalement utile lorsque le paquet est construit directement depuis "
"un gestionnaire de versions qui contient les sources amont non modifiées et "
"que l'on souhaite conserver l'arborescence non modifiée après la "
"construction du paquet. Cette option est en général utilisée dans B<debian/"
"source/local-options> (elle n'est pas permis dans  B<debian/source/options> "
"afin que tous les paquets source créés aient le même comportement par défaut."

#. type: Plain text
#: dpkg-source.1:548
msgid ""
"The process fails if an automatic patch has been generated. This option can "
"be used to ensure that all changes were properly recorded in separate quilt "
"patches prior to the source package build. This option is not allowed in "
"B<debian/source/options> but can be used in B<debian/source/local-options>."
msgstr ""
"Ce processus échouera si un correctif automatique a été créé. Elle peut "
"servir à vérifier que toutes les modifications ont été enregistrées "
"correctement dans des correctifs quilt distincts avant la construction du "
"paquet source. Elle n'est pas autorisée dans B<debian/source/options> mais "
"peut prendre place dans B<debian/source/local-options>."

#. type: TP
#: dpkg-source.1:548
#, fuzzy, no-wrap
#| msgid "B<--no-act>"
msgid "B<--auto-commit>"
msgstr "B<--no-act>"

#. type: Plain text
#: dpkg-source.1:552
msgid ""
"The process doesn't fail if an automatic patch has been generated, instead "
"it's immediately recorded in the quilt series."
msgstr ""

#. type: Plain text
#: dpkg-source.1:555
msgid "B<Extract options>"
msgstr "B<Options d'extraction>"

#. type: Plain text
#: dpkg-source.1:558
msgid "Skips extraction of the debian tarball on top of the upstream sources."
msgstr ""
"Passe l'étape d'extraction de l'archive tar debian par dessus les sources "
"amont"

#. type: TP
#: dpkg-source.1:558
#, no-wrap
msgid "B<--skip-patches>"
msgstr "B<--skip-patches>"

#. type: Plain text
#: dpkg-source.1:561
msgid "Do not apply patches at the end of the extraction."
msgstr "Ne pas appliquer des correctifs à la fin de l'extraction."

#. type: SS
#: dpkg-source.1:562
#, no-wrap
msgid "Format: 3.0 (custom)"
msgstr "Format: 3.0 (custom)"

#. type: Plain text
#: dpkg-source.1:565
#, fuzzy
#| msgid ""
#| "This format is particular. It doesn't represent a real source package "
#| "format but can be used to create source packages with arbitrary files."
msgid ""
"This format is special. It doesn't represent a real source package format "
"but can be used to create source packages with arbitrary files."
msgstr ""
"Ce format est particulier. Il ne représente pas un réel format de paquet "
"source mais peut être utilisé pour créer des paquets sources avec des "
"fichiers arbitraires."

#. type: Plain text
#: dpkg-source.1:571
msgid ""
"All non-option arguments are taken as files to integrate in the generated "
"source package. They must exist and are preferably in the current directory. "
"At least one file must be given."
msgstr ""
"Tous les arguments qui ne sont pas des options sont pris pour des fichiers à "
"intégrer dans le paquet source généré. Ils doivent exister et être de "
"préférence dans le répertoire courant. Au moins un fichier doit être donné."

#. type: TP
#: dpkg-source.1:571
#, no-wrap
msgid "B<--target-format=>I<value>"
msgstr "B<--target-format=>I<valeur>"

#. type: Plain text
#: dpkg-source.1:576
msgid ""
"B<Required>. Defines the real format of the generated source package.  The "
"generated .dsc file will contain this value in its I<Format> field and not "
"\"3.0 (custom)\"."
msgstr ""
"B<Required>. Définit le format réel du paquet source généré. Le fichier "
"généré .dsc contiendra cette valeur dans son champ I<format> et non \"3.0 "
"(custom)\"."

#. type: SS
#: dpkg-source.1:577
#, no-wrap
msgid "Format: 3.0 (git)"
msgstr "Format: 3.0 (git)"

#. type: Plain text
#: dpkg-source.1:579
msgid "This format is experimental."
msgstr "Ce format est expérimental."

#. type: Plain text
#: dpkg-source.1:584
msgid ""
"A source package in this format consists of a single bundle of a git "
"repository B<.git> to hold the source of a package.  There may also be a B<."
"gitshallow> file listing revisions for a shallow git clone."
msgstr ""
"Un paquet source qui utilise ce format est constitué d'un ensemble d'un seul "
"dépôt git B<.git> qui contient les sources du paquet.  Il peut également "
"exister un fichier B<.gitshallow> qui donne les révisions d'un clone git "
"« shallow »."

#. type: Plain text
#: dpkg-source.1:590
msgid ""
"The bundle is cloned as a git repository to the target directory.  If there "
"is a gitshallow file, it is installed as `.git/shallow` inside the cloned "
"git repository."
msgstr ""
"Cet ensemble est cloné sous forme d'un dépôt git dans le répertoire cible. "
"S'il existe un fichier .gitshallow, il est installé en tant que « .git/"
"shallow » dans le dépôt git cloné."

#. type: Plain text
#: dpkg-source.1:595
msgid ""
"Note that by default the new repository will have the same branch checked "
"out that was checked out in the original source. (Typically \"master\", but "
"it could be anything.) Any other branches will be available under `remotes/"
"origin/`."
msgstr ""
"Veuillez noter que, par défaut, le nouveau dépôt aura la même branche "
"récupérée que celle qui était récupérée dans les sources d'origine (souvent "
"« master » mais cela peut être tout à fait autre chose). Toutes les autres "
"branches seront disponibles sous « remotes/origin »."

#. type: Plain text
#: dpkg-source.1:600 dpkg-source.1:633
msgid ""
"Before going any further, some checks are done to ensure that we don't have "
"any non-ignored uncommitted changes."
msgstr ""
"Avant d'aller plus loin, quelques vérifications sont effectuées afin de "
"s'assurer qu'il n'existe aucun changement non-soumis et à ne pas ignorer."

#. type: Plain text
#: dpkg-source.1:604
msgid ""
"B<git-bundle>(1) is used to generate a bundle of the git repository.  By "
"default, all branches and tags in the repository are included in the bundle."
msgstr ""
"B<git-bundle>(1) permet de créer un ensemble à partir du dépôt git. Par "
"défaut, toutes les branches et étiquettes du dépôt sont inclus dans cet "
"ensemble."

#. type: TP
#: dpkg-source.1:606
#, no-wrap
msgid "B<--git-ref=>I<ref>"
msgstr "B<--git-ref=>I<réf>"

#. type: Plain text
#: dpkg-source.1:616
msgid ""
"Allows specifying a git ref to include in the git bundle. Use disables the "
"default behavior of including all branches and tags. May be specified "
"multiple times. The I<ref> can be the name of a branch or tag to include. It "
"may also be any parameter that can be passed to B<git-rev-list>(1). For "
"example, to include only the master branch, use --git-ref=master. To include "
"all tags and branches, except for the private branch, use --git-ref=--all --"
"git-ref=^private"
msgstr ""
"Permet d'indiquer une référence git à inclure dans l'ensemble git. "
"L'utilisation de cette option désactive le comportement par défaut qui est "
"d'inclure toutes les branches et étiquettes. Cette option peut-être  "
"utilisée plusieurs fois. Le paramètre I<réf> peut être le nom d'une branche "
"ou une étiquette à inclure. Il peut également être tout paramètre que l'on "
"peut passer à B<git-rev-list>(1). Par exemple, pour n'inclure que la  "
"« master », on peut utiliser --git-ref=master. Pour inclure toutes les "
"étiquettes et toutes les branches, sauf la branche privée, on peut utiliser -"
"git-ref=--all -- git-ref=^private."

#. type: TP
#: dpkg-source.1:616
#, no-wrap
msgid "B<--git-depth=>I<number>"
msgstr "B<--git-depth=>I<nombre>"

#. type: Plain text
#: dpkg-source.1:620
msgid ""
"Creates a shallow clone with a history truncated to the specified number of "
"revisions."
msgstr ""
"Crée un clone « shallow » dont l'historique est tronqué au nombre indiqué de "
"révisions."

#. type: SS
#: dpkg-source.1:620
#, no-wrap
msgid "Format: 3.0 (bzr)"
msgstr "Format: 3.0 (bzr)"

#. type: Plain text
#: dpkg-source.1:623
msgid ""
"This format is experimental. It generates a single tarball containing the "
"bzr repository."
msgstr ""
"Ce format est expérimental. Il crée une archive tar contenant le dépôt bzr "
"correspondant."

#. type: Plain text
#: dpkg-source.1:628
msgid ""
"The tarball is unpacked and then bzr is used to checkout the current branch."
msgstr ""
"L'archive tar est décompressée puis bzr est utilisé afin de récupérer la "
"branche courante."

#. type: Plain text
#: dpkg-source.1:637
msgid ""
"Then the VCS specific part of the source directory is copied over to a "
"temporary directory. Before this temporary directory is packed in a tarball, "
"various cleanup are done to save space."
msgstr ""
"Ensuite, la partie spécifique du répertoire source du gestionnaire de "
"versions est copiée dans un répertoire temporaire. Avant que ce répertoire "
"temporaire ne soit empaqueté dans une archive tar, divers nettoyages sont "
"effectuées pour économiser de l'espace."

#. type: SH
#: dpkg-source.1:637
#, no-wrap
msgid "WARNINGS AND ERRORS"
msgstr "AVERTISSEMENTS ET ERREURS"

#. type: SS
#: dpkg-source.1:638
#, no-wrap
msgid "no source format specified in debian/source/format"
msgstr "aucun format source indiqué dans debian/source/format"

#. type: Plain text
#: dpkg-source.1:644
msgid ""
"The file B<debian/source/format> should always exist and indicate the "
"desired source format. For backwards compatibility, format \"1.0\" is "
"assumed when the file doesn't exist but you should not rely on this: at some "
"point in the future dpkg-source will be modified to fail when that file "
"doesn't exist."
msgstr ""
"Le fichier B<debian/source/format> devrait toujours exister et indiquer le "
"format source souhaité. Pour préserver la compatibilité avec d'anciennes "
"versions, le format « 1.0 » est implicite quand le fichier n'existe pas. Il "
"est déconseillé de dépendre de ce comportement qui pourrait être modifié "
"dans de futures versions de dpkg-source, qui échoueront alors en l'absence "
"d'une mention explicite de format."

#. type: Plain text
#: dpkg-source.1:650
msgid ""
"The rationale is that format \"1.0\" is no longer the recommended format, "
"you should usually pick one of the newer formats (\"3.0 (quilt)\", \"3.0 "
"(native)\") but B<dpkg-source> will not do this automatically for you.  If "
"you want to continue using the old format, you should be explicit about it "
"and put \"1.0\" in B<debian/source/format>."
msgstr ""
"Cela est dû au fait que le format « 1.0 » n'est plus le format recommandé, "
"qu'il est conseillé de choisir un des formats les plus récents (« 3.0 "
"(quilt) » ou « 3.0 (native) ») mais que dpkg-source ne le fera pas "
"automatiquement. Si vous souhaitez continuer à utiliser l'ancien format, il "
"est nécessaire d'être explicite et indiquer « 1.0 » dans B<debian/source/"
"format>."

#. type: SS
#: dpkg-source.1:650
#, no-wrap
msgid "the diff modifies the following upstream files"
msgstr "le fichier de différences modifie les fichiers amont suivants"

#. type: Plain text
#: dpkg-source.1:657
msgid ""
"When using source format \"1.0\" it is usually a bad idea to modify upstream "
"files directly as the changes end up hidden and mostly undocumented in the ."
"diff.gz file. Instead you should store your changes as patches in the debian "
"directory and apply them at build-time. To avoid this complexity you can "
"also use the format \"3.0 (quilt)\" that offers this natively."
msgstr ""
"Lors de l'utilisation du format source « 1.0 », il est déconseillé de "
"modifier directement les fichiers amont car les modifications restent alors "
"cachées et souvent non documentées dans le fichier diff.gz. AU contraire, il "
"est conseillé de conserver les modifications sous forme de correctifs dans "
"le répertoire debian et de les appliquer au moment de la construction. Pour "
"éviter ces opérations plus complexes, vous pouvez également choisir le "
"format « 3.0 (quilt) » qui permet ces opérations de manière native."

#. type: SS
#: dpkg-source.1:657
#, no-wrap
msgid "cannot represent change to I<file>"
msgstr "impossible d'identifier les changements de I<fichier>"

#. type: Plain text
#: dpkg-source.1:663
msgid ""
"Changes to upstream sources are usually stored with patch files, but not all "
"changes can be represented with patches: they can only alter the content of "
"plain text files. If you try replacing a file with something of a different "
"type (for example replacing a plain file with a symlink or a directory), you "
"will get this error message."
msgstr ""
"Les modifications des sources amont sont en général conservées dans des "
"fichiers de correctifs mais certaines modifications ne peuvent être "
"représentées sous forme de tels fichiers qui ne peuvent modifier que des "
"fichiers texte. Si vous essayez de remplacer un fichier avec un objet d'un "
"type différent (par exemple remplacer un fichier par un lien ou un "
"répertoire), ce message d'erreur s'affichera."

#. type: SS
#: dpkg-source.1:663
#, no-wrap
msgid "newly created empty file I<file> will not be represented in diff"
msgstr "le fichier I<fichier>, nouvellement créé, ne sera pas représenté dans le fichier de différences"

#. type: Plain text
#: dpkg-source.1:666
msgid ""
"Empty files can't be created with patch files. Thus this change is not "
"recorded in the source package and you are warned about it."
msgstr ""
"Les fichiers vides ne peuvent pas être créés avec des correctifs. En "
"conséquence, la modification n'est pas enregistrée dans le paquet source, ce "
"qui provoque cet avertissement."

#. type: SS
#: dpkg-source.1:666
#, no-wrap
msgid "executable mode I<perms> of I<file> will not be represented in diff"
msgstr "le mode exécutable I<permissions> de I<fichier> ne sera pas représenté dans le fichier de différences"

#. type: SS
#: dpkg-source.1:667
#, no-wrap
msgid "special mode I<perms> of I<file> will not be represented in diff"
msgstr "le mode spécial I<permissions> de I<fichier> ne sera pas représenté dans le fichier de différences"

#. type: Plain text
#: dpkg-source.1:671
msgid ""
"Patch files do not record permissions of files and thus modified permissions "
"are not stored in the source package. This warning reminds you of that fact."
msgstr ""
"Les fichiers correctifs n'enregistrent pas les permissions de fichiers et, "
"en conséquence, les permissions modifiées ne sont pas enregistrées dans le "
"paquet source, ce qui provoque cet avertissement."

#. type: SH
#: dpkg-source.1:671
#, no-wrap
msgid "FILE FORMATS"
msgstr "FORMATS DE FICHIERS"

#. type: SS
#: dpkg-source.1:672
#, no-wrap
msgid "debian/source/format"
msgstr "debian/source/format"

#. type: Plain text
#: dpkg-source.1:676
msgid ""
"This file contains on a single line the format that should be used to build "
"the source package (possible formats are described above). No leading or "
"trailing spaces are allowed."
msgstr ""
"Ce fichier contient sur une seule ligne le format à utiliser pour construire "
"le paquet source (les formats acceptés sont décrits plus haut). Il ne doit "
"pas contenir d'espaces avant ou après l'indication du format."

#. type: SS
#: dpkg-source.1:676
#, no-wrap
msgid "debian/source/include-binaries"
msgstr "debian/source/include-binaries"

#. type: Plain text
#: dpkg-source.1:680
msgid ""
"This file contains a list of binary files (one per line) that should be "
"included in the debian tarball. Leading and trailing spaces are stripped.  "
"Lines starting with \"#\" are comments and are skipped. Empty lines are "
"ignored."
msgstr ""
"Ce fichier contient une liste de fichiers binaires (un par ligne) qui "
"doivent être inclus dans l'archive tar debian. Les espaces placés avant ou "
"après ces noms sont supprimés. Les lignes commençant par « # » sont des "
"commentaires et sont ignorées, ainsi que les lignes vides."

#. type: SS
#: dpkg-source.1:680
#, no-wrap
msgid "debian/source/options"
msgstr "debian/source/options"

#. type: Plain text
#: dpkg-source.1:686
msgid ""
"This file contains a list of long options that should be automatically "
"prepended to the set of command line options of a B<dpkg-source -b> or "
"B<dpkg-source --print-format> call. Options like B<--compression> and B<--"
"compression-level> are well suited for this file."
msgstr ""
"Ce fichier contient la liste des options qui seront automatiquement ajoutées "
"au jeu d'options de ligne de commande utilisées par B<dpkg-source -b> ou "
"B<dpkg-source --print-format>. Des options comme B<--compression> et B<--"
"compression-level> conviennent bien pour ce fichier."

#. type: Plain text
#: dpkg-source.1:692
msgid ""
"Each option should be put on a separate line. Empty lines and lines starting "
"with \"#\" are ignored. The leading \"--\" should be stripped and short "
"options are not allowed. Optional spaces are allowed around the \"=\" symbol "
"and optional quotes are allowed around the value.  Here's an example of such "
"a file:"
msgstr ""
"Chaque option doit être placée sur une ligne distincte. Les lignes vides et "
"les lignes commençant par le caractère « # » sont ignorées. Les caractères "
"initiaux « -- » doivent être retirés et les options courtes ne peuvent pas "
"être utilisées. Des espaces optionnels sont autorisés autour du symbole "
"« = », ainsi que des guillemets optionnels autour de la valeur d'une option "
"donnée. Voici un exemple d'un tel fichier :"

#. type: Plain text
#: dpkg-source.1:700
#, fuzzy, no-wrap
#| msgid ""
#| "  # let dpkg-source create a debian.tar.bz2 with maximal compression\n"
#| "  compression = \"bzip2\"\n"
#| "  compression-level = 9\n"
#| "  # use debian/patches/debian-changes as automatic patch\n"
#| "  single-debian-patch\n"
msgid ""
"  # let dpkg-source create a debian.tar.bz2 with maximal compression\n"
"  compression = \"bzip2\"\n"
"  compression-level = 9\n"
"  # use debian/patches/debian-changes as automatic patch\n"
"  single-debian-patch\n"
"  # ignore changes on config.{sub,guess}\n"
"  extend-diff-ignore = \"(^|/)(config.sub|config.guess)$\"\n"
msgstr ""
"  # autoriser dpkg-source à créer un fichier debian.tar.bz2 avec la compression maximale\n"
"  compression = \"bzip2\"\n"
"  compression-level = 9\n"
"  # utiliser debian/patches/debian-changes comme correctif automatique\n"
"  single-debian-patch\n"

#. type: Plain text
#: dpkg-source.1:703
msgid ""
"Note: B<format> options are not accepted in this file, you should use "
"B<debian/source/format> instead."
msgstr ""
"Note : les options de B<format> ne sont pas acceptées dans ce fichier. Vous "
"devriez utiliser B<debian/source/format> à la place."

#. type: SS
#: dpkg-source.1:703
#, no-wrap
msgid "debian/source/local-options"
msgstr "debian/source/local-options"

#. type: Plain text
#: dpkg-source.1:708
msgid ""
"Exactly like B<debian/source/options> except that the file is not included "
"in the generated source package. It can be useful to store a preference tied "
"to the maintainer or to the VCS repository where the source package is "
"maintained."
msgstr ""
"Identique à B<debian/source/options> mais n'est pas enregistré dans le "
"paquet source créé. Ce fichier peut être utile pour conserver une préférence "
"propre au responsable ou au dépôt de gestionnaire de versions où le paquet "
"source est géré."

#. type: SS
#: dpkg-source.1:708
#, fuzzy, no-wrap
#| msgid "debian/source/patch-header"
msgid "debian/source/local-patch-header"
msgstr "debian/source/patch-header"

#. type: SS
#: dpkg-source.1:709
#, no-wrap
msgid "debian/source/patch-header"
msgstr "debian/source/patch-header"

# type: Plain text
#. type: Plain text
#: dpkg-source.1:713
#, fuzzy
#| msgid ""
#| "Free form text that is put on top of the automatic patch generated in "
#| "formats \"2.0\" or \"3.0 (quilt)\"."
msgid ""
"Free form text that is put on top of the automatic patch generated in "
"formats \"2.0\" or \"3.0 (quilt)\". B<local-patch-header> is not included in "
"the generated source package while B<patch-header> is."
msgstr ""
"Texte en format libre qui sera ajouté au correctif automatique créé dans les "
"formats « 2.0 » et « 3.0 (quilt) »."

#. type: SS
#: dpkg-source.1:713
#, no-wrap
msgid "debian/patches/series"
msgstr "debian/patches/series"

#. type: Plain text
#: dpkg-source.1:722
msgid ""
"This file lists all patches that have to be applied (in the given order)  on "
"top of the upstream source package. Leading and trailing spaces are "
"stripped. Lines starting with \"#\" are comments and are skipped. Empty "
"lines are ignored. Remaining lines start with a patch filename (relative to "
"the B<debian/patches/> directory) up to the first space character or the end "
"of line. Optional quilt options can follow up to the end of line or the "
"first \"#\" preceded by one or more spaces (which marks the start of a "
"comment up to the end of line)."
msgstr ""
"Ce fichier comporte la liste de toutes les corrections qui ont été "
"appliquées (dans l'ordre indiqué) aux sources amont. Les espaces situés "
"avant et après les noms sont ignorés. Les lignes commençant par « # » sont "
"des commentaires et sont ignorées, ainsi que les lignes vides. Les autres "
"lignes débutent par le nom du fichier de correction (relatif au répertoire "
"B<debian/patches/>) qui se termine au premier espace ou à la fin de la "
"ligne. Des options facultatives de quilt peuvent être placées jusqu'à la fin "
"de la ligne ou jusqu'au premier caractère « # » précédé par un ou plusieurs "
"espaces (qui indique un commentaire qui se poursuit jusqu'à la fin de la "
"ligne)."

#. type: Plain text
#: dpkg-source.1:729
msgid "B<dpkg-deb>(1), B<dpkg>(1), B<dselect>(1)."
msgstr "B<dpkg-deb>(1), B<dpkg>(1), B<dselect>(1)."

#. type: Plain text
#: dpkg-source.1:736
#, fuzzy
#| msgid "Copyright \\(co 2008-2010 Rapha\\[:e]l Hertzog"
msgid "Copyright \\(co 2008-2011 Rapha\\[:e]l Hertzog"
msgstr "Copyright \\(co 2008-2010 Rapha\\[:e]l Hertzog"

#. type: TH
#: dpkg-split.1:2
#, no-wrap
msgid "dpkg-split"
msgstr "dpkg-split"

#. type: Plain text
#: dpkg-split.1:5
msgid "dpkg-split - Debian package archive split/join tool"
msgstr "dpkg-split - outil de décomposition/recomposition des paquets Debian"

#. type: Plain text
#: dpkg-split.1:9
#, fuzzy
#| msgid "B<dpkg-split> [I<options>] I<command>"
msgid "B<dpkg-split> [I<option>...] I<command>"
msgstr "B<dpkg-split> [I<options>] I<commande>"

#. type: Plain text
#: dpkg-split.1:15
msgid ""
"B<dpkg-split> splits Debian binary package files into smaller parts and "
"reassembles them again, to support the storage of large package files on "
"small media such as floppy disks."
msgstr ""
"B<dpkg-split> décompose les fichiers d'un paquet binaire Debian en parties "
"plus petites (et les recompose), pour permettre l'enregistrement des "
"fichiers d'un paquet volumineux sur des média de faible capacité tels que "
"les disquettes."

#. type: Plain text
#: dpkg-split.1:19
msgid ""
"It can be operated manually using the B<--split>, B<--join> and B<--info> "
"options."
msgstr ""
"On peut s'en servir « à la main » avec les options B<--split>, B<--join> et "
"B<--info>."

#. type: Plain text
#: dpkg-split.1:27
msgid ""
"It also has an automatic mode, invoked using the B<--auto> option, where it "
"maintains a queue of parts seen but not yet reassembled and reassembles a "
"package file when it has seen all of its parts. The B<--listq> and B<--"
"discard> options allow the management of the queue."
msgstr ""
"Il possède aussi un mode automatique, appelé avec l'option B<--auto>, dans "
"lequel il conserve séparément dans une file les parties connues ou recompose "
"le fichier d'un paquet quand il connaît toutes ses parties. Les options B<--"
"listq> et B<--discard> permettent la gestion de cette file."

#. type: Plain text
#: dpkg-split.1:30
msgid ""
"All splitting, joining and queueing operations produce informative messages "
"on standard output; these may safely be ignored."
msgstr ""
"Toutes les opérations de décomposition, recomposition ou de mise en file "
"produisent des messages sur la sortie standard ; ils peuvent être "
"tranquillement ignorés."

#. type: TP
#: dpkg-split.1:32
#, no-wrap
msgid "B<-s>, B<--split> I<complete-archive> [I<prefix>]"
msgstr "B<-s>, B<--split> I<archive-complète> [I<préfixe>]"

#. type: Plain text
#: dpkg-split.1:35
msgid "Splits a single Debian binary package into several parts."
msgstr "Décompose en plusieurs parties un paquet binaire Debian."

#. type: Plain text
#: dpkg-split.1:43
msgid ""
"The parts are named I<prefix>B<.>I<N>B<of>I<M>B<.deb> where I<N> is the part "
"number, starting at 1, and I<M> is the total number of parts (both in "
"decimal)."
msgstr ""
"Le nom d'une partie est : I<préfixe>B<.>I<N>B<de>I<M>B<.deb> où I<N> le "
"numéro de partie, commençant à 1, et I<M> est le nombre total de parties "
"(les deux sont des décimaux)."

#. type: Plain text
#: dpkg-split.1:51
msgid ""
"If no I<prefix> is supplied then the I<complete-archive> filename is taken, "
"including directory, with any trailing B<.deb> removed."
msgstr ""
"Quand on ne donne pas de I<préfixe>, le nom du fichier I<archive-complète> "
"est utilisé, en incluant le répertoire et en supprimant tout B<.deb> restant."

#. type: TP
#: dpkg-split.1:51
#, no-wrap
msgid "B<-j>, B<--join> I<part>..."
msgstr "B<-j>, B<--join> I<partie>..."

#. type: Plain text
#: dpkg-split.1:55
msgid ""
"Joins the parts of a package file together, reassembling the original file "
"as it was before it was split."
msgstr ""
"Rassemble les parties d'un fichier, recomposant ainsi le fichier d'origine "
"tel qu'il était avant la décomposition."

#. type: Plain text
#: dpkg-split.1:59
msgid ""
"The part files given as arguments must be all the parts of exactly the same "
"original binary file. Each part must occur exactly once in the argument "
"list, though the parts to not need to be listed in order."
msgstr ""
"Ces parties, données comme arguments, doivent appartenir toutes au même "
"fichier binaire d'origine. Chaque partie ne doit apparaître qu'une seule "
"fois dans la liste des arguments ; mais il est inutile de les ordonner."

#. type: Plain text
#: dpkg-split.1:64
msgid ""
"The parts must of course all have been generated with the same part size "
"specified at split time, which means that they must usually have been "
"generated by the same invocation of B<dpkg-split --split>."
msgstr ""
"Les parties doivent bien sûr avoir été créées selon le même modèle (taille "
"maximum des parties), qui est déclaré au moment de la décomposition ; ce qui "
"signifie en fait qu'elles doivent avoir été créées par le même appel à "
"B<dpkg-split --split>."

#. type: Plain text
#: dpkg-split.1:66
msgid "The parts' filenames are not significant for the reassembly process."
msgstr ""
"Les parties des noms ne sont pas significatives pour le processus de "
"recomposition."

#. type: Plain text
#: dpkg-split.1:69
#, fuzzy
#| msgid ""
#| "By default the output file is called I<package>B<->I<version>B<.deb>."
msgid ""
"By default the output file is called I<package>B<_>I<version>B<_>I<arch>B<."
"deb>."
msgstr ""
"Par défaut, le fichier produit s'appelle : I<paquet>B<->I<version>B<.deb>."

#. type: TP
#: dpkg-split.1:70
#, no-wrap
msgid "B<-I>, B<--info> I<part>..."
msgstr "B<-I>, B<--info> I<partie>..."

#. type: Plain text
#: dpkg-split.1:75
msgid ""
"Prints information, in a human-readable format, about the part file(s)  "
"specified. Arguments which are not binary package parts produce a message "
"saying so instead (but still on standard output)."
msgstr ""
"Affiche les renseignements concernant telle partie dans un format lisible "
"par tous. Les arguments ne représentant pas la partie d'un fichier binaire "
"le disent aussi sur la sortie standard."

#. type: TP
#: dpkg-split.1:75
#, no-wrap
msgid "B<-a>, B<--auto -o> I<complete-output part>"
msgstr "B<-a>, B<--auto -o> I<fichier-complet partie>"

#. type: Plain text
#: dpkg-split.1:78
msgid "Automatically queue parts and reassemble a package if possible."
msgstr ""
"Met en file automatiquement les parties en vue de la recomposition d'un "
"paquet."

#. type: Plain text
#: dpkg-split.1:83
msgid ""
"The I<part> specified is examined, and compared with other parts of the same "
"package (if any) in the queue of packages file parts."
msgstr ""
"La I<partie> déclarée est examinée et comparée avec les autres parties du "
"même paquet qui se trouvent (si elles existent) dans la file."

#. type: Plain text
#: dpkg-split.1:90
msgid ""
"If all parts of the package file of which I<part> is a part are available "
"then the package is reassembled and written to I<complete-output> (which "
"should not usually already exist, though this is not an error)."
msgstr ""
"Quand toutes les parties d'un fichier (auquel appartient la partie I<part>) "
"sont présentes, le fichier est recomposé et créé en tant que I<fichier-"
"complet> (ce fichier ne devrait pas déjà exister, mais ce n'est pas une "
"erreur)."

#. type: Plain text
#: dpkg-split.1:96
msgid ""
"If not then the I<part> is copied into the queue and I<complete-output> is "
"not created."
msgstr ""
"Quand ce n'est pas le cas, la partie I<part> est mise dans la file et le "
"fichier I<fichier-complet> n'est pas créé."

#. type: Plain text
#: dpkg-split.1:103
#, fuzzy
#| msgid ""
#| "If I<part> is not a split binary package part then B<dpkg-split> will "
#| "exit with status 1; if some other trouble occurs then it will exit with "
#| "status 2."
msgid ""
"If I<part> is not a split binary package part then B<dpkg-split> will exit "
"with status B<1>; if some other trouble occurs then it will exit with status "
"B<2>."
msgstr ""
"Quand la partie I<part> n'appartient pas à un paquet binaire décomposé, "
"B<dpkg-split> se termine avec un code de sortie égal à 1 ; s'il y a une "
"autre erreur, c'est un code de sortie égal à 2."

#. type: Plain text
#: dpkg-split.1:110
msgid ""
"The B<--output> or B<-o> option must be supplied when using B<--auto>.  (If "
"this were not mandatory the calling program would not know what output file "
"to expect.)"
msgstr ""
"L'option B<--output> ou B<-o> doit être fournie avec l'action B<--auto>. Si "
"cela n'était pas obligatoire, le programme appelant ne saurait pas quel "
"fichier attendre."

#. type: TP
#: dpkg-split.1:110
#, no-wrap
msgid "B<-l>, B<--listq>"
msgstr "B<-l>, B<--listq>"

#. type: Plain text
#: dpkg-split.1:113
msgid "Lists the contents of the queue of packages to be reassembled."
msgstr "Liste le contenu d'une file de paquets à recomposer."

#. type: Plain text
#: dpkg-split.1:117
msgid ""
"For each package file of which parts are in the queue the output gives the "
"name of the package, the parts in the queue, and the total number of bytes "
"stored in the queue."
msgstr ""
"Pour chaque fichier possédant des parties dans la file, cette action donne "
"le nom du fichier, les parties présentes dans la file et le nombre total "
"d'octets conservés."

#. type: TP
#: dpkg-split.1:117
#, no-wrap
msgid "B<-d>, B<--discard> [I<package>...]"
msgstr "B<-d>, B<--discard> [I<paquet>...]"

#. type: Plain text
#: dpkg-split.1:121
msgid ""
"This discards parts from the queue of those waiting for the remaining parts "
"of their packages."
msgstr ""
"Cette action laisse de côté certaines parties dans la file, celles qui sont "
"en attente des autres parties composant le paquet."

#. type: Plain text
#: dpkg-split.1:126
msgid ""
"If no I<package> is specified then the queue is cleared completely; if any "
"are specified then only parts of the relevant package(s) are deleted."
msgstr ""
"Quand aucun I<paquet> n'est donné, la file est vidée ; si un paquet est "
"donné, seules les parties de ce paquet sont détruites."

#. type: TP
#: dpkg-split.1:134
#, no-wrap
msgid "B<--depotdir>I< directory>"
msgstr "B<--depotdir>I< répertoire>"

#. type: Plain text
#: dpkg-split.1:139
msgid ""
"Specifies an alternative directory for the queue of parts awaiting automatic "
"reassembly. The default is B</var/lib/dpkg>."
msgstr ""
"Indique un répertoire différent pour la file comprenant les parties en "
"attente d'une recomposition automatique. Par défaut, c'est le répertoire B</"
"var/lib/dpkg>."

#. type: TP
#: dpkg-split.1:139
#, no-wrap
msgid "B<-S>, B<--partsize> I<kibibytes>"
msgstr "B<-S>, B<--partsize> I<kibi-octets>"

#. type: Plain text
#: dpkg-split.1:143
msgid ""
"Specifies the maximum part size when splitting, in kibibytes (1024 bytes). "
"The default is 450 KiB."
msgstr ""
"Indique, en kibi-octets (1024 octets), la taille maximum d'une partie lors "
"d'une décomposition. Par défaut, la taille maximum est de 450 Kio."

#. type: TP
#: dpkg-split.1:143
#, no-wrap
msgid "B<-o>, B<--output> I<complete-output>"
msgstr "B<-o>, B<--output> I<fichier-complet>"

#. type: Plain text
#: dpkg-split.1:146
msgid "Specifies the output file name for a reassembly."
msgstr "Indique le nom du fichier à produire pour une recomposition."

#. type: Plain text
#: dpkg-split.1:151
msgid ""
"This overrides the default for a manual reassembly (B<--join>)  and is "
"mandatory for an automatic queue-or-reassemble (B<--auto>)."
msgstr ""
"Cela annule le fichier par défaut lors d'une recomposition « à la "
"main » (B<--join>) et c'est obligatoire pour une recomposition ou une mise "
"en file automatiques (B<--auto>)."

#. type: TP
#: dpkg-split.1:151
#, no-wrap
msgid "B<-Q>, B<--npquiet>"
msgstr "B<-Q>, B<--npquiet>"

#. type: Plain text
#: dpkg-split.1:162
msgid ""
"When doing automatic queue-or-reassembly B<dpkg-split> usually prints a "
"message if it is given a I<part> that is not a binary package part. This "
"option suppresses this message, to allow programs such as B<dpkg> to cope "
"with both split and unsplit packages without producing spurious messages."
msgstr ""
"Pour une recomposition ou une mise en file automatiques, B<dpkg-split> "
"affiche habituellement un message si on lui donne une I<partie> qui n'est "
"pas une partie d'un paquet binaire. Cette option supprime ce message ; cela "
"permet à des programmes comme B<dpkg> de ne pas afficher de faux messages "
"quand il est confronté à des paquets décomposés et des paquets non "
"décomposés."

#. type: TP
#: dpkg-split.1:162
#, no-wrap
msgid "B<--msdos>"
msgstr "B<--msdos>"

#. type: Plain text
#: dpkg-split.1:167
msgid ""
"Forces the output filenames generated by B<--split> to be msdos-compatible."
msgstr ""
"Oblige le nom des fichiers produits par B<--split> à se conformer à msdos."

#. type: Plain text
#: dpkg-split.1:173
msgid ""
"This mangles the prefix - either the default derived from the input filename "
"or the one supplied as an argument: alphanumerics are lowercased, plus signs "
"are replaced by B<x>'s and all other characters are discarded."
msgstr ""
"Cela supprime le préfixe - soit celui par défaut dérivé du fichier d'entrée, "
"soit celui donné comme argument : les caractères alphanumériques sont en "
"minuscules, les signes plus sont remplacés par des B<x> et tous les autres "
"caractères sont abandonnés."

#. type: Plain text
#: dpkg-split.1:178
msgid ""
"The result is then truncated as much as is necessary, and filenames of the "
"form I<prefixN>B<of>I<M>B<.deb> are generated."
msgstr ""
"le résultat est alors tronqué autant que nécessaire et des fichiers de la "
"forme : I<prefixN>B<of>I<M>B<.deb> sont créés."

#. type: Plain text
#: dpkg-split.1:186
#, fuzzy
#| msgid ""
#| "An exit status of 0 indicates that the requested split, merge, or other "
#| "command succeeded.  B<--info> commands count as successful even if the "
#| "files are not binary package parts."
msgid ""
"The requested split, merge, or other command succeeded.  B<--info> commands "
"count as successful even if the files are not binary package parts."
msgstr ""
"Un code de sortie égal à 0 signifie que la décomposition demandée, la "
"recomposition ou bien toute autre commande a réussi. Les commandes B<--info> "
"réussissent toujours même si les fichiers ne sont pas des parties d'un "
"paquet binaire."

#. type: Plain text
#: dpkg-split.1:193
#, fuzzy
#| msgid ""
#| "An exit status of 1 occurs only with B<--auto> and indicates that the "
#| "I<part> file was not a binary package part."
msgid ""
"Only occurs with B<--auto> and indicates that the I<part> file was not a "
"binary package part."
msgstr ""
"Un code de sortie égal à 1 ne peut apparaître qu'avec l'action B<--auto> et "
"signale que le fichier I<partie> n'est pas une partie d'un paquet binaire."

#. type: TP
#: dpkg-split.1:193 start-stop-daemon.8:275 update-alternatives.8:378
#, no-wrap
msgid "B<2>"
msgstr ""

#. type: Plain text
#: dpkg-split.1:198
#, fuzzy
#| msgid ""
#| "An exit status of 2 indicates some kind of trouble, such as a system call "
#| "failure, a file that looked like a package part file but was corrupted, a "
#| "usage error or some other problem."
msgid ""
"Some kind of trouble happened, such as a system call failure, a file that "
"looked like a package part file but was corrupted, a usage error or some "
"other problem."
msgstr ""
"Un code de sortie égal à 2 signale des problèmes, comme l'échec d'un appel "
"système, ou un fichier qui, bien que ressemblant à une partie de fichier, "
"est défectueux, ou bien une erreur d'utilisation, etc."

#. type: Plain text
#: dpkg-split.1:202
msgid ""
"Full details of the packages in the queue are impossible to get without "
"digging into the queue directory yourself."
msgstr ""
"On ne peut pas obtenir tous les détails voulus sur les paquets présents dans "
"la file à moins d'aller voir soi-même dans le répertoire de la file."

#. type: Plain text
#: dpkg-split.1:205
msgid ""
"There is no easy way to test whether a file that may be a binary package "
"part is one."
msgstr ""
"On ne peut pas facilement savoir si un fichier est vraiment la partie d'un "
"paquet binaire ou non."

#. type: TP
#: dpkg-split.1:207
#, no-wrap
msgid "I</var/lib/dpkg/parts>"
msgstr "I</var/lib/dpkg/parts>"

#. type: Plain text
#: dpkg-split.1:211
msgid ""
"The default queue directory for part files awaiting automatic reassembly."
msgstr ""
"Le répertoire par défaut de la file contenant les fichiers qui attendent une "
"recomposition automatique."

#. type: Plain text
#: dpkg-split.1:216
msgid ""
"The filenames used in this directory are in a format internal to B<dpkg-"
"split> and are unlikely to be useful to other programs, and in any case the "
"filename format should not be relied upon."
msgstr ""
"Les noms de fichiers utilisés dans ce répertoire sont dans un format "
"particulier à B<dpkg-split> et ne sont sans doute pas utiles pour d'autres "
"programmes ; en tous cas on ne peut pas compter sur ce format de nom de "
"fichier."

#. type: Plain text
#: dpkg-split.1:222
msgid "B<deb>(5), B<deb-control>(5), B<dpkg-deb>(1), B<dpkg>(1)."
msgstr "B<deb>(5), B<deb-control>(5), B<dpkg-deb>(1), B<dpkg>(1)."

#. type: TH
#: dpkg-statoverride.8:1
#, no-wrap
msgid "dpkg-statoverride"
msgstr "dpkg-statoverride"

#. type: TH
#: dpkg-statoverride.8:1
#, no-wrap
msgid "Debian project"
msgstr "Projet Debian"

#. type: Plain text
#: dpkg-statoverride.8:4
msgid "dpkg-statoverride - override ownership and mode of files"
msgstr "dpkg-statoverride - annuler la propriété et le mode des fichiers"

#. type: Plain text
#: dpkg-statoverride.8:8
#, fuzzy
#| msgid "B<dpkg-statoverride> [I<options>] I<command>"
msgid "B<dpkg-statoverride> [I<option>...] I<command>"
msgstr "B<dpkg-statoverride> [I<options>] I<commande>"

#. type: Plain text
#: dpkg-statoverride.8:18
msgid ""
"`B<stat overrides>' are a way to tell B<dpkg>(1)  to use a different owner "
"or mode for a file when a package is installed. (note: I use the word `file' "
"here, but in reality this can be any filesystem object that dpkg handles, "
"including directories, devices, etc.). This can be used to force programs "
"that are normally setuid to be install without a setuid flag, or only "
"executable by a certain group."
msgstr ""
"Les « B<dérogations au statut> » sont une façon de demander à B<dpkg>(1) de "
"changer le propriétaire ou le mode d'un fichier lors de l'installation d'un "
"paquet. (Note : je dis « fichier » ici, mais cela peut être en réalité "
"n'importe quel système de fichiers gérable par Dpkg, par exemple, des "
"répertoires, des périphériques, etc.) On peut s'en servir pour forcer "
"l'installation de programmes qui sont normalement « setuid » sans ce drapeau "
"« setuid », ou pour les rendre exécutables seulement par un groupe donné."

#. type: Plain text
#: dpkg-statoverride.8:22
msgid ""
"B<dpkg-statoverride> is a utility to manage the list of stat overrides. It "
"has three basic functions: adding, removing and listing overrides."
msgstr ""
"B<dpkg-statoverride> est un utilitaire pour gérer la liste des dérogations. "
"Il possède trois fonctions élémentaires : l'ajout, la suppression et le "
"listage des dérogations."

#. type: TP
#: dpkg-statoverride.8:24
#, no-wrap
msgid "B<--add>I< user group mode file>"
msgstr "B<--add>I< utilisateur groupe mode fichier>"

#. type: Plain text
#: dpkg-statoverride.8:32
msgid ""
"Add an override for I<file>. I<file> does not need to exist when this "
"command is used; the override will be stored and used later.  Users and "
"groups can be specified by their name (for example B<root> or B<nobody>), or "
"by their number by prepending the number with a `B<#>' (for example B<#0> or "
"B<#65534>). The I<mode> needs to be specified in octal."
msgstr ""
"Ajoute une dérogation (« override ») pour I<fichier>. I<fichier> n'a pas "
"besoin d'exister quand cette commande est utilisée ; la dérogation est "
"stockée et utilisée par la suite. Les utilisateurs ou les groupes peuvent "
"être indiqués par leur nom (par exemple B<root> ou B<nobody>), ou bien par "
"leur numéro, en préfixant ce numéro par le caractère « B<#> » (par exemple, "
"B<#0> ou B<#65534>). Le I<mode> doit être indiqué en numérotation octale."

#. type: Plain text
#: dpkg-statoverride.8:35
msgid ""
"If --update is specified and I<file> exists, it is immediately set to the "
"new owner and mode."
msgstr ""
"Si --update est utilisée et si I<fichier> existe, le fichier obtient un "
"nouveau propriétaire et un nouveau mode."

#. type: Plain text
#: dpkg-statoverride.8:39
msgid ""
"Remove an override for I<file>, the status of I<file> is left unchanged by "
"this command."
msgstr ""
"Supprime une dérogation (« override ») pour I<fichier>, l'état de I<fichier> "
"est inchangé."

#. type: TP
#: dpkg-statoverride.8:39
#, no-wrap
msgid "B<--list> [I<glob-pattern>]"
msgstr "B<--list> [I<exp-reg>]"

#. type: Plain text
#: dpkg-statoverride.8:44
msgid ""
"List all overrides. If a glob pattern is specified restrict the output to "
"overrides which match the glob. If there are no overrides or none match the "
"glob B<dpkg-statoverride> will exit with an exitcode of 1."
msgstr ""
"Liste toutes les dérogations. Quand on donne une expression rationnelle, on "
"réduit la sortie aux dérogations qui correspondent au motif. Quand il n'y a "
"pas de dérogation, ou quand aucune ne correspond au motif, B<dpkg-"
"statoverride> se termine avec un code de sortie égal à 1."

#. type: Plain text
#: dpkg-statoverride.8:56
msgid ""
"Change the I<directory> of the dpkg database where the statoverride file is "
"also stored. Defaults to I</var/lib/dpkg>."
msgstr ""
"Change le I<répertoire> de la base de données de dpkg, où se trouve aussi le "
"fichier statoverride. La valeur par défaut est I</var/lib/dpkg>."

#. type: TP
#: dpkg-statoverride.8:56 update-alternatives.8:336
#, no-wrap
msgid "B<--force>"
msgstr "B<--force>"

#. type: Plain text
#: dpkg-statoverride.8:60
msgid ""
"Force an action, even if a sanity check would otherwise prohibit it.  This "
"is necessary to override an existing override."
msgstr ""
"Forcer une opération, même si une vérification raisonnable l'interdirait. "
"C'est nécessaire pour annuler une précédente dérogation."

#. type: TP
#: dpkg-statoverride.8:60
#, no-wrap
msgid "B<--update>"
msgstr "B<--update>"

#. type: Plain text
#: dpkg-statoverride.8:64
msgid ""
"Immediately try to change the file to the new owner and mode if it exists."
msgstr ""
"Essayer de changer immédiatement le propriétaire et le mode du fichier si ce "
"fichier existe."

#. type: Plain text
#: dpkg-statoverride.8:67
msgid "Be less verbose about what we do."
msgstr "Moins de bavardage sur ce qui est fait."

#. type: TP
#: dpkg-statoverride.8:75
#, no-wrap
msgid "I</var/lib/dpkg/statoverride>"
msgstr "I</var/lib/dpkg/statoverride>"

#. type: Plain text
#: dpkg-statoverride.8:80
msgid ""
"File which contains the current list of stat overrides of the system. It is "
"located in the dpkg administration directory, along with other files "
"important to dpkg, such as `status' or `available'."
msgstr ""
"Ce fichier contient la liste actuelle des dérogations concernant le système. "
"Il se trouve dans le répertoire d'administration de Dpkg, avec les autres "
"fichiers importants comme « status » ou « available »."

#. type: Plain text
#: dpkg-statoverride.8:83
msgid ""
"Note: B<dpkg-statoverride> preserves the old copy of this file, with "
"extension \"-old\", before replacing it with the new one."
msgstr ""
"Note : B<dpkg-statoverride> garde une copie de ce fichier, avec une "
"extension \"-old\", avant de le remplacer par un nouveau."

#. type: TH
#: dpkg-trigger.1:1
#, no-wrap
msgid "dpkg-trigger"
msgstr "dpkg-trigger"

#. type: Plain text
#: dpkg-trigger.1:4
msgid "dpkg-trigger - a package trigger utility"
msgstr ""
"dpkg-trigger - un utilitaire pour activer les actions différées de paquets"

#. type: Plain text
#: dpkg-trigger.1:8
msgid "B<dpkg-trigger> [I<option>...] I<trigger-name>"
msgstr "B<dpkg-trigger> [I<option>...] I<nom-action-différée>"

#. type: Plain text
#: dpkg-trigger.1:11
msgid "B<dpkg-trigger> [I<option>...] I<command>"
msgstr "B<dpkg-trigger> [I<option>...] I<commande>"

#. type: Plain text
#: dpkg-trigger.1:15
msgid ""
"B<dpkg-trigger> is a tool to explicitly activate triggers and check for its "
"support on the running B<dpkg>."
msgstr ""
"B<dpkg-trigger> est un outil pour activer explicitement les actions "
"différées et pour vérifier leur gestion dans le fonctionnement de B<dpkg>."

#. type: Plain text
#: dpkg-trigger.1:21
msgid ""
"This can be used by maintainer scripts in complex and conditional situations "
"where the file triggers, or the declarative B<activate> triggers control "
"file directive, are insufficiently rich. It can also be used for testing and "
"by system administrators (but note that the triggers won't actually be run "
"by B<dpkg-trigger>)."
msgstr ""
"Utilisable par les scripts du mainteneur dans certaines situations complexes "
"où un fichier d'actions différées (« triggers ») ou la directive B<activate> "
"du fichier de contrôle des actions différées ne sont pas suffisants. Peut "
"également être utilisé pour des essais ou par les administrateurs système "
"(noter que les actions différées ne seront alors pas exécutées par B<dpkg-"
"trigger>)."

#. type: Plain text
#: dpkg-trigger.1:23
msgid "Unrecognised trigger name syntaxes are an error for B<dpkg-trigger>."
msgstr ""
"Les syntaxes non-reconnues pour le nom des actions différées constituent une "
"erreur pour B<dpkg-trigger>."

#. type: TP
#: dpkg-trigger.1:25
#, no-wrap
msgid "B<--check-supported>"
msgstr "B<--check-supported>"

#. type: Plain text
#: dpkg-trigger.1:31
#, fuzzy
#| msgid ""
#| "Check if the running B<dpkg> supports triggers (usually called from a "
#| "postinst). Will exit 0 if a triggers-capable B<dpkg> has run, or 1 with "
#| "an error message to stderr if not. Normally, however, it is better just "
#| "to activate the desired trigger with B<dpkg-trigger>."
msgid ""
"Check if the running B<dpkg> supports triggers (usually called from a "
"postinst). Will exit B<0> if a triggers-capable B<dpkg> has run, or B<1> "
"with an error message to stderr if not. Normally, however, it is better just "
"to activate the desired trigger with B<dpkg-trigger>."
msgstr ""
"Vérifie si B<dpkg> sait gérer les actions différées (généralement appelées "
"depuis un script de post-installation). Retourne en sortie 0 si c'est le "
"cas, ou 1 avec un message d'erreur sur stderr si ce n'est pas le cas. "
"Toutefois, en règle générale, il est préférable de simplement activer "
"l'action différée désirée à l'aide de B<dpkg-trigger>."

#. type: TP
#: dpkg-trigger.1:43
#, no-wrap
msgid "B<--by-package=>I<package>"
msgstr "B<--by-package=>I<paquet>"

#. type: Plain text
#: dpkg-trigger.1:49
#, fuzzy
#| msgid ""
#| "Override trigger awaiter (normally set by B<dpkg> through the "
#| "DPKG_MAINTSCRIPT_PACKAGE environment variable of the maintainer scripts, "
#| "naming the package to which the script belongs, and this will be used by "
#| "default)."
msgid ""
"Override trigger awaiter (normally set by B<dpkg> through the "
"B<DPKG_MAINTSCRIPT_PACKAGE> environment variable of the maintainer scripts, "
"naming the package to which the script belongs, and this will be used by "
"default)."
msgstr ""
"Indique le paquet qui sera marqué en attente de l'exécution de l'action "
"différée (normalement défini par la variable d'environnement "
"DPKG_MAINTSCRIPT_PACKAGE dans les scripts du mainteneur, qui nomme le paquet "
"auquel le script appartient, et qui constitue la valeur par défaut)."

#. type: TP
#: dpkg-trigger.1:49
#, no-wrap
msgid "B<--no-await>"
msgstr "B<--no-await>"

#. type: Plain text
#: dpkg-trigger.1:56
msgid ""
"This option arranges that the calling package T (if any) need not await the "
"processing of this trigger; the interested package(s) I, will not be added "
"to T's trigger processing awaited list and T's status is unchanged.  T may "
"be considered installed even though I may not yet have processed the trigger."
msgstr ""
"Cette option fait en sorte que le paquet appelant T (s'il existe) n'a pas "
"besoin d'attendre l'exécution de cette action différée ; I, le(s) paquet(s) "
"associé(s) à l'action différée, ne sera pas ajouté à liste des paquets dont "
"le traitement des actions différées est attendu par T et l'état de T reste "
"inchangé. T peut être considéré installé même si les actions différées de I "
"n'ont pas encore été exécutées."

#. type: TP
#: dpkg-trigger.1:56
#, no-wrap
msgid "B<--no-act>"
msgstr "B<--no-act>"

#. type: Plain text
#: dpkg-trigger.1:59
msgid "Just test, do not actually change anything."
msgstr "Teste uniquement, n'apporte aucun changement."

#. type: Plain text
#: dpkg-trigger.1:69
msgid ""
"B<dpkg>(1), B<deb-triggers>(5), B</usr/share/doc/dpkg-dev/triggers.txt.gz>."
msgstr ""
"B<dpkg>(1), B<deb-triggers>(5), B</usr/share/doc/dpkg-dev/triggers.txt.gz>."

#. type: TH
#: dpkg-vendor.1:1
#, no-wrap
msgid "dpkg-vendor"
msgstr "dpkg-vendor"

#. type: Plain text
#: dpkg-vendor.1:4
msgid "dpkg-vendor - queries information about distribution vendors"
msgstr ""
"dpkg-vendor - récupére les informations sur les éditeurs de distribution"

#. type: Plain text
#: dpkg-vendor.1:8
msgid "B<dpkg-vendor> [I<option>...] I<command>"
msgstr "B<dpkg-vendor> [I<option>...] I<commande>"

#. type: Plain text
#: dpkg-vendor.1:13
msgid ""
"B<dpkg-vendor> is a tool to query information about vendors listed in B</etc/"
"dpkg/origins>. B</etc/dpkg/origins/default> contains information about the "
"current vendor."
msgstr ""
"B<dpkg-vendor> est un outil qui permet de récupérer des informations sur les "
"éditeurs (« vendors ») de distributions référencés dans B</etc/dpkg/"
"origins>. B</etc/dpkg/origins/default> contient l'information relative à "
"l'éditeur actuellement utilisé."

#. type: TP
#: dpkg-vendor.1:15
#, no-wrap
msgid "B<--is>I< vendor>"
msgstr "B<--is>I< éditeur>"

#. type: Plain text
#: dpkg-vendor.1:19
#, fuzzy
#| msgid ""
#| "Exits with 0 if the current vendor is I<vendor>. Otherwise exits with non-"
#| "zero."
msgid ""
"Exits with B<0> if the current vendor is I<vendor>. Otherwise exits with non-"
"zero."
msgstr ""
"Retourne 0 si l'éditeur est I<éditeur>. Retourne une valeur non nulle dans "
"le cas contraire."

#. type: TP
#: dpkg-vendor.1:19
#, no-wrap
msgid "B<--derives-from>I< vendor>"
msgstr "B<--derives-from>I< éditeur>"

#. type: Plain text
#: dpkg-vendor.1:24
#, fuzzy
#| msgid ""
#| "Exits with 0 if the current vendor distribution is a derivative of "
#| "I<vendor>, otherwise exits with non-zero. It uses the \"Parent\" field to "
#| "browse all ancestors of the current vendor."
msgid ""
"Exits with B<0> if the current vendor distribution is a derivative of "
"I<vendor>, otherwise exits with non-zero. It uses the \"Parent\" field to "
"browse all ancestors of the current vendor."
msgstr ""
"Retourne 0 si la distribution de l'éditeur actuel est une distribution "
"dérivée de I<éditeur>. Le champ « Parent » est utilisé pour parcourir tous "
"les ancêtres de l'éditeur actuel."

#. type: TP
#: dpkg-vendor.1:24
#, no-wrap
msgid "B<--query>I< field>"
msgstr "B<--query>I< champ>"

#. type: Plain text
#: dpkg-vendor.1:28
msgid ""
"Print on standard output the value of the vendor-specific I<field> for the "
"current vendor."
msgstr ""
"Affiche sur la sortie standard la valeur du champ spécifique I<champ> de "
"l'éditeur actuel."

#. type: TP
#: dpkg-vendor.1:36
#, no-wrap
msgid "B<--vendor>I< vendor>"
msgstr "B<--vendor>I< éditeur>"

#. type: Plain text
#: dpkg-vendor.1:41
#, fuzzy
#| msgid ""
#| "Assumes the current vendor is I<vendor> instead of discovering it with "
#| "the DEB_VENDOR environment variable or B</etc/dpkg/origins/default>."
msgid ""
"Assumes the current vendor is I<vendor> instead of discovering it with the "
"B<DEB_VENDOR> environment variable or B</etc/dpkg/origins/default>."
msgstr ""
"Suppose que l'éditeur actuel est I<éditeur> au lieu d'utiliser la variable "
"DEB_VENDOR ou B</etc/dpkg/origins/default>."

#. type: TP
#: dpkg-vendor.1:43
#, no-wrap
msgid "B<DEB_VENDOR>"
msgstr "B<DEB_VENDOR>"

#. type: Plain text
#: dpkg-vendor.1:47
msgid ""
"This setting defines the current vendor. If not set, it will discover the "
"current vendor by reading B</etc/dpkg/origins/default>."
msgstr ""
"Ce réglage définit l'éditeur (« vendor ») actuel. Si cette valeur est vide, "
"le contenu du fichier B</etc/dpkg/origins/default> est utilisé."

#. type: Plain text
#: dpkg-vendor.1:50 update-alternatives.8:498
msgid "Copyright \\(co 2009 Rapha\\[:e]l Hertzog"
msgstr "Copyright \\(co 2009 Rapha\\[:e]l Hertzog"

#. type: TH
#: dselect.1:1
#, no-wrap
msgid "dselect"
msgstr "dselect"

#. type: Plain text
#: dselect.1:4
msgid "dselect - Debian package management frontend"
msgstr "dselect - Interface de gestion de paquets Debian."

#. type: Plain text
#: dselect.1:8
#, fuzzy
#| msgid "B<dpkg> [I<options>] I<action>"
msgid "B<dselect> [I<option>...] [I<action>]"
msgstr "B<dpkg> [I<options>] I<action>"

#. type: Plain text
#: dselect.1:17
#, no-wrap
msgid ""
"B<dselect>\n"
"is one of the primary user interfaces for managing packages on a Debian\n"
"system. At the B<dselect> main menu, the system administrator can:\n"
" - Update the list of available package versions,\n"
" - View the status of installed and available packages,\n"
" - Alter package selections and manage dependencies,\n"
" - Install new packages or upgrade to newer versions.\n"
msgstr ""
"B<dselect> est une des principales interfaces de gestion des paquets sur un système Debian. À partir du menu principal de B<dselect>, l'administrateur système peut :\n"
" - Mettre à jour la liste des versions des paquets disponibles,\n"
" - Voir l'état des paquets installés ou disponibles,\n"
" - Modifier les sélections de paquets et gérer les dépendances,\n"
" - Installer de nouveaux paquets ou mettre à jour vers de nouvelles versions.\n"

#. type: Plain text
#: dselect.1:29
msgid ""
"B<dselect> operates as a front-end to B<dpkg>(1), the low-level debian "
"package handling tool. It features a full-screen package selections manager "
"with package depends and conflicts resolver. When run with administrator "
"privileges, packages can be installed, upgraded and removed. Various access "
"methods can be configured to retrieve available package version information "
"and installable packages from package repositories.  Depending on the used "
"access method, these repositories can be public archive servers on the "
"internet, local archive servers or cdroms.  The recommended access method is "
"I<apt>, which is provided by the package B<apt>."
msgstr ""
"B<dselect> est une interface au dessus de B<dpkg>(1), l'outil bas niveau de "
"gestion des paquets Debian. Il propose à l'écran un gestionnaire de "
"sélections de paquets avec la possibilité de résoudre les conflits et "
"dépendances. Exécuté avec les droits administrateur, il permet d'installer "
"des paquets, les mettre à jour ou les retirer. Plusieurs méthode d'accès "
"peuvent être configurées pour récupérer les informations sur les versions "
"des paquets disponibles et les paquets eux-mêmes dans les dépôts de paquets. "
"Suivant la méthode d'accès utilisée, ces dépôts peuvent être des serveurs "
"d'archives publics sur Internet, des serveurs locaux ou des CDROM. La "
"méthode d'accès recommandée est I<apt>, qui est fournie par le paquet B<apt>."

#. type: Plain text
#: dselect.1:35
#, fuzzy
#| msgid ""
#| "Normally B<dselect> is invoked without parameters. An interactive menu is "
#| "presented, offering the user a list of actions. If an action is given as "
#| "argument, then that action is started immediately. Several commandline "
#| "parameters are still available to modify the running behaviour of "
#| "B<dselect> or show additional information about the program."
msgid ""
"Normally B<dselect> is invoked without parameters. An interactive menu is "
"presented, offering the user a list of actions. If an action is given as "
"argument, then that action is started immediately. Several command line "
"parameters are still available to modify the running behaviour of B<dselect> "
"or show additional information about the program."
msgstr ""
"Normalement, B<dselect> est appelé sans paramètre. Un menu interactif est "
"présenté, offrant à l'utilisateur une liste d'actions. Si une action est "
"donnée en paramètre, alors cette action est démarrée immédiatement. "
"Plusieurs paramètres en ligne de commande sont disponibles pour modifier le "
"comportement de B<dselect> ou pour montrer des informations supplémentaires "
"sur le programme."

#. type: Plain text
#: dselect.1:43
#, fuzzy
#| msgid ""
#| "All options can be specified both on the commandline and in the "
#| "B<dselect> configuration file I</etc/dpkg/dselect.cfg> or the files on "
#| "the configuration directory I</etc/dpkg/dpkg.cfg.d/>. Each line in the "
#| "configuration file is either an option (exactly the same as the "
#| "commandline option but without leading dashes) or a comment (if it starts "
#| "with a B<#>)."
msgid ""
"All options can be specified both on the command line and in the B<dselect> "
"configuration file I</etc/dpkg/dselect.cfg> or the files on the "
"configuration directory I</etc/dpkg/dselect.cfg.d/>. Each line in the "
"configuration file is either an option (exactly the same as the command line "
"option but without leading dashes) or a comment (if it starts with a B<#>)."
msgstr ""
"On peut spécifier une option à la fois sur la ligne de commande, dans le "
"fichier de configuration de dselect, I</etc/dpkg/dselect.cfg> ou dans les "
"fichiers du répertoire de configuration I</etc/dpkg/dpkg.cfg.d/>. Chaque "
"ligne de ce fichier est soit une option (identique à une option en ligne de "
"commande mais sans tiret), soit un commentaire, commençant par B<#>."

#. type: Plain text
#: dselect.1:49
msgid ""
"Changes the directory where the dpkg `I<status>', `I<available>' and similar "
"files are located. This defaults to I</var/lib/dpkg> and normally there "
"shouldn't be any need to change it."
msgstr ""
"Change le répertoire où les fichiers « I<status> », « I<available> » et "
"autres sont situés. Le répertoire par défaut est I</var/lib/dpkg> et il ne "
"devrait pas avoir besoin de le modifier."

#. type: TP
#: dselect.1:49
#, fuzzy, no-wrap
#| msgid "B<--debug>I< E<lt>fileE<gt> >|I< >B<-D>I<E<lt>fileE<gt>>"
msgid "B<--debug>I< file >|I< >B<-D>I<file>"
msgstr "B<--debug>I< E<lt>fichierE<gt> >|I< >B<-D>I<E<lt>fichierE<gt>>"

#. type: Plain text
#: dselect.1:52
#, fuzzy
#| msgid ""
#| "Turn on debugging. Debugging information is sent to I<E<lt>fileE<gt>>."
msgid "Turn on debugging. Debugging information is sent to I<file>."
msgstr ""
"Activer le débogage. Les informations de débogage sont envoyées dans le "
"I<E<lt>fichierE<gt>>."

#. type: TP
#: dselect.1:52
#, no-wrap
msgid "B<--expert>"
msgstr "B<--expert>"

#. type: Plain text
#: dselect.1:56
msgid ""
"Turns on expert mode, i.e. doesn't display possibly annoying help messages."
msgstr ""
"Activer le mode expert, c'est-à-dire ne pas afficher les messages d'aide "
"ennuyeux."

#. type: TP
#: dselect.1:56
#, no-wrap
msgid "B<--colour>|B<--color> I<screenpart:>[I<foreground>],[I<background>][I<:attr>[I<+attr+..>]]"
msgstr "B<--colour>|B<--color> I<partie_écran:>[I<premier_plan>],[I<arrière_plan>][I<:attr>[I<+attr+..>]]"

#. type: Plain text
#: dselect.1:63
msgid ""
"Configures screen colors. This works only if your display supports colors.  "
"This option may be used multiple times (and is best used in I<dselect.cfg>). "
"Each use changes the color (and optionally, other attributes) of one part of "
"the screen.  The parts of the screen (from top to bottom) are:"
msgstr ""
"Configure les couleurs des écrans. Ceci ne fonctionne que si votre terminal "
"gère les couleurs. Cette option peut-être utilisée plusieurs fois (et il est "
"préférable de l'utiliser dans I<dselect.cfg>). Chaque utilisation change la "
"couleur (et, en option, d'autres attributs) d'une partie de l'écran. Les "
"parties de l'écran (de haut en bas) sont :"

#. type: TP
#: dselect.1:64
#, no-wrap
msgid "B<title>"
msgstr "B<title>"

#. type: Plain text
#: dselect.1:67
msgid "The screen title."
msgstr "Le titre de l'écran."

#. type: TP
#: dselect.1:67
#, no-wrap
msgid "B<listhead>"
msgstr "B<listhead>"

#. type: Plain text
#: dselect.1:70
msgid "The header line above the list of packages."
msgstr "La ligne d'en-tête au dessus de la liste de paquets."

#. type: TP
#: dselect.1:70
#, no-wrap
msgid "B<list>"
msgstr "B<list>"

#. type: Plain text
#: dselect.1:73
msgid "The scrolling list of packages (and also some help text)."
msgstr "La liste déroulante de paquets (et de textes explicatifs)."

#. type: TP
#: dselect.1:73
#, no-wrap
msgid "B<listsel>"
msgstr "B<listsel>"

#. type: Plain text
#: dselect.1:76
msgid "The selected item in the list."
msgstr "L'élément sélectionné dans la liste."

#. type: TP
#: dselect.1:76
#, no-wrap
msgid "B<pkgstate>"
msgstr "B<pkgstate>"

#. type: Plain text
#: dselect.1:80
msgid ""
"In the list of packages, the text indicating the current state of each "
"package."
msgstr ""
"Dans la liste des paquets, le texte qui indique l'état actuel de chaque "
"paquet."

#. type: TP
#: dselect.1:80
#, no-wrap
msgid "B<pkgstatesel>"
msgstr "B<pkgstatesel>"

#. type: Plain text
#: dselect.1:84
msgid ""
"In the list of packages, the text indicating the current state of the "
"currently selected package."
msgstr ""
"Dans la liste des paquets, le texte qui indique l'état actuel du paquet "
"sélectionné."

#. type: TP
#: dselect.1:84
#, no-wrap
msgid "B<infohead>"
msgstr "B<infohead>"

#. type: Plain text
#: dselect.1:87
msgid ""
"The header line that displays the state of the currently selected package."
msgstr "La ligne d'en-tête qui affiche l'état du paquet sélectionné."

#. type: TP
#: dselect.1:87
#, no-wrap
msgid "B<infodesc>"
msgstr "B<infodesc>"

#. type: Plain text
#: dselect.1:90
msgid "The package's short description."
msgstr "La description courte du paquet."

#. type: TP
#: dselect.1:90
#, no-wrap
msgid "B<info>"
msgstr "B<info>"

#. type: Plain text
#: dselect.1:93
msgid "Used to display package info such as the package's description."
msgstr ""
"Utilisé pour afficher les informations sur le paquet, comme par exemple la "
"description du paquet."

#. type: TP
#: dselect.1:93
#, no-wrap
msgid "B<infofoot>"
msgstr "B<infofoot>"

#. type: Plain text
#: dselect.1:96
msgid "The last line of the screen when selecting packages."
msgstr "La dernière ligne de l'écran lors de la sélection des paquets."

#. type: TP
#: dselect.1:96
#, no-wrap
msgid "B<query>"
msgstr "B<query>"

#. type: Plain text
#: dselect.1:99
msgid "Used to display query lines"
msgstr "Utilisé pour les lignes des recherches."

#. type: TP
#: dselect.1:99
#, no-wrap
msgid "B<helpscreen>"
msgstr "B<helpscreen>"

#. type: Plain text
#: dselect.1:102
msgid "Color of help screens."
msgstr "La couleur des écrans d'aide."

#. type: Plain text
#: dselect.1:107
msgid ""
"After the part of the screen comes a colon and the color specification. You "
"can specify either the foreground color, the background color, or both, "
"overriding the compiled-in colors. Use standard curses color names."
msgstr ""
"Après la partie de l'écran concernée, vient un signe deux-points et la "
"spécification des couleurs. Pour surcharger les valeurs des couleurs "
"compilées, vous pouvez indiquer la couleur du premier plan, de l'arrière-"
"plan, ou les deux. Utilisez les noms standard de couleurs curses."

#. type: Plain text
#: dselect.1:113
msgid ""
"Optionally, after the color specification is another colon, and an attribute "
"specification. This is a list of one or more attributes, separated by plus "
"(\"+\") characters. Available attributes include (not all of these will work "
"on all terminals): normal, standout, underline, reverse, blink, bright, dim, "
"bold"
msgstr ""
"En option, les spécifications des couleurs peuvent être suivies d'un signe "
"deux-points et de la spécification d'un attribut. Il s'agit d'une liste "
"d'attributs, séparés par des caractères plus (« + »). Parmi les attributs "
"disponibles, on trouve (tous ne fonctionnent pas sur tous les terminaux) : "
"normal, standout, underline, reverse, blink, bright, dim et bold."

#. type: Plain text
#: dselect.1:116
msgid "Print a brief help text and exit successfully."
msgstr "Affiche une aide rapide et se termine normalement."

#. type: Plain text
#: dselect.1:119
msgid "Print version information and exit successfully."
msgstr "Affiche la version et se termine normalement."

#. type: Plain text
#: dselect.1:126
#, fuzzy
#| msgid ""
#| "When B<dselect> is started interactively, it prompts the user with a menu "
#| "of available actions:"
msgid ""
"When B<dselect> is started it can perform the following actions, either "
"directly if it was specified on the command line or by prompting the user "
"with a menu of available actions if running interactively:"
msgstr ""
"Quand B<dselect> est démarré en mode interactif, un menu propose à "
"l'utilisateur une liste d'actions :"

#. type: SS
#: dselect.1:126
#, no-wrap
msgid "access"
msgstr "Accéder (access)"

#. type: Plain text
#: dselect.1:128
msgid "Choose and configure an access method to access package repositories."
msgstr "Choisir et configurer une méthode d'accès aux dépôts de paquets."

#. type: Plain text
#: dselect.1:134
#, fuzzy
#| msgid ""
#| "By default, B<dselect> provides several methods such as I<floppy>, "
#| "I<harddisk> or I<cdrom>, but other packages may provide additional "
#| "methods, eg. the I<apt> access method provided by the B<apt> package or "
#| "I<multi_cd> by the B<dpkg-multicd> package."
msgid ""
"By default, B<dselect> provides several methods such as I<cdrom>, "
"I<multi_cd>, I<nfs>, I<multi_nfs>, I<harddisk>, I<mounted>, I<multi_mount>, "
"I<floppy> or I<ftp>, but other packages may provide additional methods, eg. "
"the I<apt> access method provided by the B<apt> package."
msgstr ""
"Par défaut, B<dselect> fournit plusieurs méthodes telles que I<floppy> "
"(disquette), I<harddisk> (disque dur) ou I<cdrom>, mais d'autres paquets "
"peuvent fournir des méthodes supplémentaires, comme la méthode d'accès "
"I<apt> fournie par le paquet B<apt> ou I<multi_cd> fournie par le paquet "
"B<dpkg-multicd>."

#. type: Plain text
#: dselect.1:136
msgid "The use of the I<apt> access method is strongly recommended."
msgstr "L'utilisation de la méthode d'accès I<apt> est fortement conseillée."

#. type: SS
#: dselect.1:137
#, no-wrap
msgid "update"
msgstr "Mise à jour (update)"

#. type: Plain text
#: dselect.1:139
msgid "Refresh the available packages database."
msgstr "Rafraîchir la liste des paquets disponibles."

#. type: Plain text
#: dselect.1:146
msgid ""
"Retrieves a list of available package versions from the package repository, "
"configured for the current access method, and update the dpkg database. The "
"package lists are commonly provided by the repository as files named "
"I<Packages> or I<Packages.gz>.  These files can be generated by repository "
"maintainers, using the program B<dpkg-scanpackages>(1)."
msgstr ""
"Récupère une liste de versions de paquets disponibles depuis un dépôt de "
"paquets, qui a été configuré pour la méthode d'accès actuelle, puis met à "
"jour la base de données de dpkg. Les listes de paquets sont d'habitude "
"fournis par les dépôts sous la forme de fichiers I<Packages> ou I<Packages."
"gz>. Ces fichiers peuvent être générés par les responsables des dépôts grâce "
"au programme B<dpkg-scanpackages>(1)."

#. type: Plain text
#: dselect.1:149
msgid ""
"Details of the update action depend on the access method's implementation.  "
"Normally the process is straightforward and requires no user interaction."
msgstr ""
"Le fonctionnement détaillé des mises à jour dépend de l'implémentation de la "
"méthode d'accès. Normalement le processus se passe tout seul, sans "
"intervention de l'utilisateur."

#. type: SS
#: dselect.1:150
#, no-wrap
msgid "select"
msgstr "Sélectionner (select)"

#. type: Plain text
#: dselect.1:152
msgid "View or manage package selections and dependencies."
msgstr "Voir ou gérer les paquets sélectionnés et les dépendances."

#. type: Plain text
#: dselect.1:158
msgid ""
"This is the main function of B<dselect>. In the select screen, the user can "
"review a list of all available and installed packages. When run with "
"administrator privileges, it is also possible to interactively change "
"packages selection state. B<dselect> tracks the implications of these "
"changes to other depending or conflicting packages."
msgstr ""
"Il s'agit de la fonction principale de B<dselect>. Dans l'écran de "
"sélection, l'utilisateur peut consulter la liste de tous les paquets "
"disponibles ou installés. Exécuté avec les privilèges administrateur, il "
"permet également de changer de façon interactive l'état de paquets "
"sélectionnés. B<dselect> vérifie les implications de ces changements vis-à-"
"vis des dépendances et des conflits entre paquets."

#. type: Plain text
#: dselect.1:165
msgid ""
"When a conflict or failed depends is detected, a dependency resolution "
"subscreen is prompted to the user. In this screen, a list of conflicting or "
"depending packages is shown, and for each package listed, the reason for its "
"listing is shown. The user may apply the suggestions proposed by B<dselect>, "
"override them, or back out all the changes, including the ones that created "
"the unresolved depends or conflicts."
msgstr ""
"Lorsqu'un conflit ou une dépendance manquante est détecté, un sous-écran de "
"résolution des dépendances est proposé à l'utilisateur. Dans cet écran, une "
"liste de paquets avec des conflits ou avec des dépendances manquantes est "
"affichée et pour chaque paquet listé, la raison de sa présence dans cette "
"liste est indiquée. L'utilisateur peut ensuite appliquer les suggestion de "
"B<dselect>, les modifier ou supprimer toutes les modifications, dont celles "
"qui ont créé les conflits ou dépendances non résolues."

#. type: Plain text
#: dselect.1:168
msgid ""
"The use of the interactive package selections management screen is explained "
"in more detail below."
msgstr ""
"L'utilisation de l'écran interactif des sélections de paquets est expliquée "
"de façon plus détaillée ci-dessous."

#. type: SS
#: dselect.1:169
#, no-wrap
msgid "install"
msgstr "Installer (install)"

#. type: Plain text
#: dselect.1:171
msgid "Installs selected packages."
msgstr "Installer les paquets sélectionnés."

#. type: Plain text
#: dselect.1:177
msgid ""
"The configured access method will fetch installable or upgradable packages "
"from the relevant repositories and install these using B<dpkg>.  Depending "
"on the implementation of the access method, all packages can be prefetched "
"before installation, or fetched when needed.  Some access methods may also "
"remove packages that were marked for removal."
msgstr ""
"La méthode d'accès récupérera dans les dépôts les paquets qui peuvent être "
"installés ou mis à jour, puis les installe avec B<dpkg>. En fonction de la "
"méthode d'accès, les paquets peuvent être tous récupérés avant installation, "
"ou récupérés à la demande. Certaines méthodes d'accès retirent également les "
"paquets qui ont été marqués pour être retirés."

#. type: Plain text
#: dselect.1:185
msgid ""
"If an error occurred during install, it is usually advisable to run install "
"again. In most cases, the problems will disappear or be solved.  If problems "
"persist or the installation performed was incorrect, please investigate into "
"the causes and circumstances, and file a bug in the Debian bug tracking "
"system. Instructions on how to do this can be found at http://bugs.debian."
"org/ or by reading the documentation for B<bug>(1) or B<reportbug>(1), if "
"these are installed."
msgstr ""
"Si une erreur apparaît lors de l'installation, il est recommandé de "
"redémarrer une installation. La plupart des fois, les problèmes "
"disparaissent ou sont résolus. Si les problèmes persistent ou si "
"l'installation n'est pas correcte, veuillez examiner les causes et "
"circonstances puis soumettez un rapport de bogue au système de suivi des "
"bogues Debian. Les instructions pour soumettre ces rapports de bogues se "
"trouvent sur http://bugs.debian.org/ ou dans la page de manuel de "
"B<reportbug>(1), si ce paquet est installé."

#. type: Plain text
#: dselect.1:192
msgid ""
"Details of the install action depend on the access method's implementation.  "
"The user's attention and input may be required during installation, "
"configuration or removal of packages. This depends on the maintainer scripts "
"in the package. Some packages make use of the B<debconf>(1)  library, "
"allowing for more flexible or even automated installation setups."
msgstr ""
"Les détails de l'action d'installation dépendent de l'implémentation de la "
"méthode d'accès. L'attention et la contribution de l'utilisateur peuvent "
"être nécessaire lors de l'installation ou du retrait des paquets. Ceci "
"dépend des scripts des responsables des paquets. Certains paquets utilisent "
"la bibliothèque B<debconf>(1), ce qui permet la mise en place "
"d'installations plus flexibles ou même automatisées."

#. type: SS
#: dselect.1:193
#, no-wrap
msgid "config"
msgstr "Configurer (config)"

#. type: Plain text
#: dselect.1:195
msgid "Configures any previously installed, but not fully configured packages."
msgstr ""
"Configure les paquets déjà installés mais n'étant pas complètement installés."

#. type: SS
#: dselect.1:196
#, no-wrap
msgid "remove"
msgstr "Retirer (remove)"

#. type: Plain text
#: dselect.1:198
msgid "Removes or purges installed packages, that are marked for removal."
msgstr ""
"Retirer ou purger les paquets installés qui sont marqués comme étant à "
"retirer."

#. type: SS
#: dselect.1:199
#, no-wrap
msgid "quit"
msgstr "Quitter (quit)"

#. type: Plain text
#: dselect.1:201
msgid "Quit B<dselect>"
msgstr "Quitter B<dselect>"

#. type: Plain text
#: dselect.1:203
msgid "Exits the program with zero (successful) errorcode."
msgstr "Quitte le programme avec un code d'erreur de 0 (succès)."

#. type: SH
#: dselect.1:205
#, no-wrap
msgid "Package selections management"
msgstr "Gestion des sélections de paquets"

#. type: SS
#: dselect.1:207
#, no-wrap
msgid "Introduction"
msgstr "Introduction"

#. type: Plain text
#: dselect.1:223
msgid ""
"B<dselect> directly exposes the administrator to some of the complexities "
"involved with managing large sets of packages with many interdependencies. "
"For a user who is unfamiliar with the concepts and the ways of the debian "
"package management system, it can be quite overwhelming. Although B<dselect> "
"is aimed at easing package management and administration, it is only "
"instrumental in doing so and can not be assumed to be a sufficient "
"substitute for administrator skill and understanding. The user is required "
"to be familiar with the concepts underlying the Debian packaging system.  In "
"case of doubt, consult the B<dpkg>(1) manpage and the Debian Policy manual, "
"contained in the B<debian-policy> package."
msgstr ""
"B<dselect> expose directement l'administrateur à une partie de la complexité "
"liée à la gestion d'un grand nombre de paquets ayant beaucoup de liens entre "
"eux. Pour un utilisateur qui n'est pas habitué aux concepts et au système de "
"gestion des paquets Debian, cela peut être perturbant. Mais B<dselect> est "
"conçu pour aider la gestion et l'administration des paquets. Ce n'est qu'un "
"outil, et ne doit pas remplacer la compréhension et les aptitudes d'un "
"administrateur. L'utilisateur doit être familier des concepts sous-jacents "
"au système de gestion des paquets Debian. En cas de doute, consultez la page "
"de manuel B<dpkg>(1) et la charte Debian présente dans le paquet B<debian-"
"policy>."

#. type: Plain text
#: dselect.1:229
msgid ""
"Unless B<dselect> is run in expert or immediate mode, a help screen is first "
"displayed when choosing this action from the menu. The user is I<strongly> "
"advised to study all of the information presented in the online help "
"screens, when one pops up.  The online help screens can at any time be "
"invoked with the B<'?'> key."
msgstr ""
"A moins que B<dselect> soit lancé en mode expert ou intermédiaire, un "
"message d'aide est d'abord affiché lorsque cette action est choisie dans le "
"menu. Il est B<fortement> conseillé à l'utilisateur d'étudier toutes les "
"informations dans ces écrans d'aide lorsqu'ils apparaissent. Les écrans "
"d'aide peuvent être affichés à tout moment à l'aide de la touche « B<?> »."

#. type: SS
#: dselect.1:230
#, no-wrap
msgid "Screen layout"
msgstr "Disposition de l'écran"

#. type: Plain text
#: dselect.1:238
msgid ""
"The select screen is by default split in a top and a bottom half.  The top "
"half shows a list of packages. A cursor bar can select an individual "
"package, or a group of packages, if applicable, by selecting the group "
"header. The bottom half of the screen shows some details about the package "
"currently selected in the top half of the screen.  The type of detail that "
"is displayed can be varied."
msgstr ""
"L'écran de sélection est découpé par défaut en une moitié supérieure et une "
"moitié inférieure. La moitié supérieure affiche une liste de paquets. Un "
"curseur permet de sélectionner un paquet, ou un groupe de paquet en "
"sélectionnant le titre du groupe, si ça s'applique. La moitié inférieure de "
"l'écran affiche les détails du paquet sélectionné dans la moitié supérieure. "
"Le type de détail affiché peut varier."

#. type: Plain text
#: dselect.1:241
msgid ""
"Pressing the B<'I'> key toggles a full-screen display of the packages list, "
"an enlarged view of the package details, or the equally split screen."
msgstr ""
"Appuyez sur la touche « B<I> » pour passer d'un affichage de la liste des "
"paquets en mode plein-écran, à un affichage plus important des détails des "
"paquets ou à un mode partagé équitablement."

#. type: SS
#: dselect.1:242
#, no-wrap
msgid "Package details view"
msgstr "Vue des détails d'un paquet"

#. type: Plain text
#: dselect.1:251
#, no-wrap
msgid ""
"The package details view by default shows the extended package description\n"
"for the package that is currently selected in the packages status list.\n"
"The type of detail can be toggled by pressing the B<'i'> key. This\n"
"alternates between:\n"
" - the extended description\n"
" - the control information for the installed version\n"
" - the control information for the available version\n"
msgstr ""
"La vue des détails d'un paquet affiche par défaut la description longue du paquet sélectionné dans la liste des paquets. Le type de détail peut être modifié en pressant la touche « B<i> ». Ceci permet de passer de :\n"
" - la description longue\n"
" - les informations de contrôle de la version installée\n"
" - les informations de contrôle de la version disponible\n"

#. type: Plain text
#: dselect.1:255
msgid ""
"In a dependency resolution screen, there is also the possibility of viewing "
"the specific unresolved depends or conflicts related to the package and "
"causing it to be listed."
msgstr ""
"Dans un écran de résolution des dépendances, on peut également voir les "
"dépendances et conflits spécifiques au paquet et qui expliquent la présence "
"du paquet dans la liste."

#. type: SS
#: dselect.1:256
#, no-wrap
msgid "Packages status list"
msgstr "Liste des états des paquets"

#. type: Plain text
#: dselect.1:261
msgid ""
"The main select screen displays a list of all packages known to the debian "
"package management system. This includes packages installed on the system "
"and packages known from the available packages database."
msgstr ""
"L'écran principal de sélection affiche une liste de tous les paquets connus "
"par le système de gestion des paquets Debian. Ceci inclus les paquets "
"installés sur le système et les paquets connus par la base de données des "
"paquets disponibles."

#. type: Plain text
#: dselect.1:269
msgid ""
"For every package, the list shows the package's status, priority, section, "
"installed and available versions, the package name and its short "
"description, all in one line. By pressing the B<'V'> key, the display of the "
"installed and available version can be toggled between on an off. By "
"pressing the B<'v'> key, the package status display is toggled between "
"verbose and shorthand.  Shorthand display is the default."
msgstr ""
"Pour tous les paquets, la liste affiche sur une ligne l'état du paquet, sa "
"priorité, sa section, les versions installées et disponibles, le nom du "
"paquet et sa description courte. En appuyant sur la touche « B<V> », on peut "
"activer ou désactiver l'affichage des versions installées et disponibles. En "
"appuyant sur la touche « B<v> », l'affichage de l'état passe d'un mode "
"verbeux à un mode raccourci. Par défaut, l'état raccourci est utilisé."

#. type: Plain text
#: dselect.1:275
msgid ""
"The shorthand status indication consists of four parts: an error flag, which "
"should normally be clear, the current status, the last selection state and "
"the current selection state.  The first two relate to the actual state of "
"the package, the second pair are about the selections set by the user."
msgstr ""
"L'état raccourci consiste en 4 parties : un drapeau d'erreur, qui est "
"d'habitude vide, l'état courant, l'état de sélection précédent et l'état de "
"sélection actuel. Les deux premiers donnent des indications sur l'état "
"courant du paquet, les deux suivants concernent les sélections définies par "
"l'utilisateur."

#. type: Plain text
#: dselect.1:293
#, no-wrap
msgid ""
"These are the meanings of the shorthand package status indicator codes:\n"
" Error flag:\n"
"  I<empty>   no error\n"
"  B<R>       serious error, needs reinstallation;\n"
" Installed state:\n"
"  I<empty>   not installed;\n"
"  B<*>       fully installed and configured;\n"
"  B<->       not installed but some config files may remain;\n"
"  B<U>       unpacked but not yet configured;\n"
"  B<C>       half-configured (an error happened);\n"
"  B<I>       half-installed (an error happened).\n"
" Current and requested selections:\n"
"  B<*>       marked for installation or upgrade;\n"
"  B<->       marked for removal, configuration files remain;\n"
"  B<=>       on hold: package will not be processed at all;\n"
"  B<_>       marked for purge, also remove configuration;\n"
"  B<n>       package is new and has yet to be marked.\n"
msgstr ""
"Voici la signification des codes d'indication des états :\n"
" Drapeau d'erreur :\n"
"  I<vide>    aucune erreur ;\n"
"  B<R>       erreur sérieuse, réinstallation nécessaire.\n"
" État d'installation :\n"
"  I<vide>    pas installé ;\n"
"  B<*>       complètement installé et configuré ;\n"
"  B<->       pas installé, mais des fichiers de configuration existent toujours ;\n"
"  B<U>       dépaqueté, mais toujours pas configuré ;\n"
"  B<C>       à moitié configuré (il y a eu une erreur) ;\n"
"  B<I>       à moitié installé (il y a eu une erreur).\n"
" Sélection actuelle et demandée :\n"
"  B<*>       marqué comme étant à installer ou à mettre à jour ;\n"
"  B<->       marqué comme étant à retirer, en conservant la configuration ;\n"
"  B<=>       marqué comme à conserver : le paquet ne sera pas traité ;\n"
"  B<_>       marqué comme étant à nettoyé, la configuration sera retirée également ;\n"
"  B<n>       nouveau paquet, n'a toujours pas été marqué.\n"

#. type: SS
#: dselect.1:294
#, no-wrap
msgid "Cursor and screen movement"
msgstr "Déplacement du curseur et de l'écran"

#. type: Plain text
#: dselect.1:299
msgid ""
"The package selection list and the dependency conflict resolution screens "
"can be navigated using motion commands mapped to the following keys:"
msgstr ""
"Vous pouvez naviguer dans la liste de sélection des paquets et dans l'écran "
"de résolution des dépendances et des conflits à l'aide des touches "
"suivantes :"

#. type: Plain text
#: dselect.1:316
#, no-wrap
msgid ""
"  B<p, Up, k>           move cursor bar up\n"
"  B<n, Down, j>         move cursor bar down\n"
"  B<P, Pgup, Backspace> scroll list 1 page up\n"
"  B<N, Pgdn, Space>     scroll list 1 page down\n"
"  B<^p>                 scroll list 1 line up\n"
"  B<^n>                 scroll list 1 line down\n"
"  B<t, Home>            jump to top of list\n"
"  B<e, End>             jump to end of list\n"
"  B<u>                  scroll info 1 page up\n"
"  B<d>                  scroll info 1 page down\n"
"  B<^u>                 scroll info 1 line up\n"
"  B<^d>                 scroll info 1 line down\n"
"  B<B, Left-arrow>      pan display 1/3 screen left\n"
"  B<F, Right-arrow>     pan display 1/3 screen right\n"
"  B<^b>                 pan display 1 character left\n"
"  B<^f>                 pan display 1 character right\n"
msgstr ""
"  B<p, Haut, k>             déplace le curseur vers le haut\n"
"  B<n, Bas, j>              déplace le curseur vers le bas\n"
"  B<P, Page-préc., Effacer> fait défiler la liste d'une page vers le haut\n"
"  B<N, Page-suiv., Espace>  fait défiler la liste d'une page vers le bas\n"
"  B<^p>                     fait défiler la liste d'une ligne vers le haut\n"
"  B<^n>                     fait défiler la liste d'une ligne vers le bas\n"
"  B<t, Home>                saute au début de la liste\n"
"  B<e, Fin>                 saute à la fin de la liste\n"
"  B<u>                      fait défiler les informations d'une page vers le haut\n"
"  B<d>                      fait défiler les informations d'une page vers le bas\n"
"  B<^u>                     fait défiler les informations d'une ligne vers le haut\n"
"  B<^d>                     fait défiler les informations d'une ligne vers le bas\n"
"  B<B, gauche>              déplace l'affichage de 1/3 vers la gauche\n"
"  B<F, droite>              déplace l'affichage de 1/3 vers la droite\n"
"  B<^b>                     déplace l'affichage d'un caractère vers la gauche\n"
"  B<^f>                     déplace l'affichage d'un caractère vers la droite\n"

#. type: SS
#: dselect.1:317
#, no-wrap
msgid "Searching and sorting"
msgstr "Recherches et tris"

#. type: Plain text
#: dselect.1:331
msgid ""
"The list of packages can be searched by package name. This is done by "
"pressing B<'/'>, and typing a simple search string. The string is "
"interpreted as a B<regex>(7)  regular expression.  If you add B<'/d'> to the "
"search expression, dselect will also search in descriptions. If you add B<'/"
"i'> the search will be case insensitive.  You may combine these two suffixes "
"like this: B<'/id'>.  Repeated searching is accomplished by repeatedly "
"pressing the B<'n'> or B<'\\e'> keys, until the wanted package is found.  If "
"the search reaches the bottom of the list, it wraps to the top and continues "
"searching from there."
msgstr ""
"On peut rechercher un paquet par son nom dans la liste des paquets. Pour "
"cela, il faut presser la touche « B</> », puis taper le texte à rechercher. "
"Ce texte est interprété comme une expression rationnelle (voir B<regex>(7)). "
"Si vous ajoutez « B</d> » à la recherche, dselect recherchera également dans "
"les descriptions. Si vous ajoutez « B</i> », la recherche ne prend pas en "
"compte la casse. Les deux suffixes peuvent être combinés comme ceci : « B</"
"id> ». La recherche peut être répétée en appuyant sur la touche « B<n> » ou "
"« B<\\e> », jusqu'à ce que le paquet soit trouvé. Lorsque la recherche "
"atteint la fin de la liste, elle recommence au début."

#. type: Plain text
#: dselect.1:338
#, no-wrap
msgid ""
"The list sort order can be varied by pressing\n"
"the B<'o'> and B<'O'> keys repeatedly.\n"
"The following nine sort orderings can be selected:\n"
" alphabet          available           status\n"
" priority+section  available+priority  status+priority\n"
" section+priority  available+section   status+section\n"
msgstr ""
"On peut changer l'ordre du tri en appuyant sur la touche « B<o> » ou « B<O> ». Les neuf systèmes de tris suivants existent :\n"
" alphabétique      disponible           état\n"
" priorité+section  disponible+priorité  état+priorité\n"
" section+priorité  disponible+section   état+section\n"

#. type: Plain text
#: dselect.1:341
msgid ""
"Where not listed above explicitly, alphabetic order is used as the final "
"subordering sort key."
msgstr ""
"Lorsqu'il n'est pas indiqué, l'ordre alphabétique est utilisé comme dernier "
"critère de tri."

#. type: SS
#: dselect.1:342
#, no-wrap
msgid "Altering selections"
msgstr "Modifier les sélections"

#. type: Plain text
#: dselect.1:351
#, no-wrap
msgid ""
"The requested selection state of individual packages may be\n"
"altered with the following commands:\n"
"  B<+, Insert>    install or upgrade\n"
"  B<=, H>         hold in present state and version\n"
"  B<:, G>         unhold: upgrade or leave uninstalled\n"
"  B<-, Delete>    remove, but leave configuration\n"
"  B<_>            remove & purge configuration\n"
msgstr ""
"Le type de sélection demandé d'un paquet peut être changé à l'aide des commandes suivantes :\n"
"  B<+, Inser>     installer ou mettre à jour\n"
"  B<=, H>         à garder dans l'état et la version actuels\n"
"  B<:, G>         ne plus garder : mettre à jour ou laisser non installé\n"
"  B<-, Suppr>     retirer, en gardant la configuration\n"
"  B<_>            retirer et supprimer la configuration\n"

#. type: Plain text
#: dselect.1:355
msgid ""
"When the change request results in one or more unsatisfied depends or "
"conflicts, B<dselect> prompts the user with a dependency resolution screen. "
"This will be further explained below."
msgstr ""
"Lorsque la demande de modification entraîne des dépendances non satisfaites "
"ou des conflits, B<dselect> fournit à l'utilisateur un écran de résolution "
"des dépendances. Ceci sera décrit plus tard."

#. type: Plain text
#: dselect.1:360
msgid ""
"It is also possible to apply these commands to groups of package selections, "
"by pointing the cursor bar onto a group header. The exact grouping of "
"packages is dependent on the current list ordering settings."
msgstr ""
"Il est également possible d'appliquer ces commandes à des groupes de "
"sélections de paquets en plaçant le curseur sur le titre d'un groupe. Le "
"regroupement des paquets dépend de la façon dont les paquets sont triés dans "
"la liste."

#. type: Plain text
#: dselect.1:366
msgid ""
"Proper care should be taken when altering large groups of selections, "
"because this can instantaneously create large numbers of unresolved depends "
"or conflicts, all of which will be listed in one dependency resolution "
"screen, making them very hard to handle. In practice, only hold and unhold "
"operations are useful when applied to groups."
msgstr ""
"Une attention particulière doit être prise lors de la modification de grands "
"groupes de sélections, parce qu'ils peuvent créer rapidement un nombre "
"important de dépendances non résolues ou de conflits, qui seraient tous "
"listés dans un écran de résolution de dépendances, le rendant difficile à "
"utiliser. En pratique, seules les opérations « à garder » et « ne plus "
"garder » sont utiles pour les groupes."

#. type: SS
#: dselect.1:367
#, no-wrap
msgid "Resolving depends and conflicts"
msgstr "Résoudre les dépendances et les conflits"

#. type: Plain text
#: dselect.1:372
msgid ""
"When the change request results in one or more unsatisfied depends or "
"conflicts, B<dselect> prompts the user with a dependency resolution screen. "
"First however, an informative help screen is displayed."
msgstr ""
"Lorsque la demande de modification entraîne des dépendances non satisfaites "
"ou des conflits, B<dselect> fournit à l'utilisateur un écran de résolution "
"des dépendances. Mais un écran d'information est affiché dans un premier "
"temps."

#. type: Plain text
#: dselect.1:379
msgid ""
"The top half of this screen lists all the packages that will have unresolved "
"depends or conflicts, as a result of the requested change, and all the "
"packages whose installation can resolve any of these depends or whose "
"removal can resolve any of the conflicts.  The bottom half defaults to show "
"the depends or conflicts that cause the currently selected package to be "
"listed."
msgstr ""
"La moitié supérieure de cet écran liste tous les paquets ayant des "
"dépendances non résolues ou des conflits dus aux modifications demandées, "
"ainsi que les paquets dont l'installation permettrait de résoudre une "
"dépendance ou dont le retrait permettrait de résoudre un conflit. La moitié "
"inférieure affiche par défaut les dépendances ou conflits pour lesquels le "
"paquet sélectionné se trouve présent dans la liste."

#. type: Plain text
#: dselect.1:385
msgid ""
"When the sublist of packages is displayed initially, B<dselect> may have "
"already set the requested selection status of some of the listed packages, "
"in order to resolve the depends or conflicts that caused the dependency "
"resolution screen to be displayed. Usually, it is best to follow up the "
"suggestions made by B<dselect>."
msgstr ""
"Quand la sous-liste de paquets est affichée pour la première fois, "
"B<dselect> peut avoir déjà fixé les états demandés pour certains des paquets "
"listés, ceci afin de résoudre les dépendances ou les conflits qui ont causé "
"l'apparition de l'écran de résolution des dépendances. Il est d'habitude "
"recommandé de suivre les suggestions de B<dselect>."

#. type: Plain text
#: dselect.1:393
msgid ""
"The listed packages' selection state may be reverted to the original "
"settings, as they were before the unresolved depends or conflicts were "
"created, by pressing the B<'R'> key. By pressing the B<'D'> key, the "
"automatic suggestions are reset, but the change that caused the dependency "
"resolution screen to be prompted is kept as requested.  Finally, by pressing "
"B<'U'>, the selections are again set to the automatic suggestion values."
msgstr ""
"Le type de sélection des paquets listés peut être remis dans leurs états "
"précédents, avant que le problème de dépendance ou le conflit soit créé, en "
"appuyant sur la touche « B<R> ». La touche « B<D> » permet de remettre à "
"zéro les suggestions automatiques, tout en conservant les modifications qui "
"ont causées l'apparition de l'écran de résolution des dépendances. Enfin, la "
"touche « B<U> » permet de rétablir les suggestions automatiques."

#. type: SS
#: dselect.1:394
#, no-wrap
msgid "Establishing the requested selections"
msgstr "Établir les sélections demandées"

#. type: Plain text
#: dselect.1:401
msgid ""
"By pressing B<enter>, the currently displayed set of selections is accepted. "
"If B<dselect> detects no unresolved depends as a result of the requested "
"selections, the new selections will be set.  However, if there are any "
"unresolved depends, B<dselect> will again prompt the user with a dependency "
"resolution screen."
msgstr ""
"En appuyant sur B<Entrée>, les sélections affichées sont acceptées. Si "
"B<dselect> ne détecte pas de dépendances non résolues du fait de ces "
"sélections, les nouvelles sélections sont établies. Cependant, si des "
"dépendances non résolues sont trouvées, B<dselect> affichera de nouveau un "
"écran de résolution des dépendances."

#. type: Plain text
#: dselect.1:407
msgid ""
"To alter a set of selections that creates unresolved depends or conflicts "
"and forcing B<dselect> to accept it, press the B<'Q'> key. This sets the "
"selections as specified by the user, unconditionally. Generally, don't do "
"this unless you've read the fine print."
msgstr ""
"Pour modifier un jeu de sélections qui causent des dépendances non résolues "
"ou des conflits, et forcer B<dselect> à l'accepter, appuyez sur la touche "
"« B<Q> ». Ceci fixe les sélections telles qu'elles sont définies par "
"l'utilisateur, sans condition. En général, ne faites pas cela, sauf si vous "
"avez bien lu ce qu'il y a d'écrit."

#. type: Plain text
#: dselect.1:414
msgid ""
"The opposite effect, to back out any selections change requests and go back "
"to the previous list of selections, is attained by pressing the B<'X'> or "
"B<escape> keys. By repeatedly pressing these keys, any possibly detrimental "
"changes to the requested package selections can be backed out completely to "
"the last established settings."
msgstr ""
"L'effet inverse, qui consiste à oublier les demandes de modification des "
"sélections et revenir à la liste précédente de sélections, peut être obtenu "
"en appuyant sur la touche « B<X> » ou « B<Echap> ». En répétant l'opération, "
"on peut complètement revenir à la dernière configuration établie."

#. type: Plain text
#: dselect.1:421
msgid ""
"If you mistakenly establish some settings and wish to revert all the "
"selections to what is currently installed on the system, press the B<'C'> "
"key.  This is somewhat similar to using the unhold command on all packages, "
"but provides a more obvious panic button in cases where the user pressed "
"B<enter> by accident."
msgstr ""
"Si par erreur vous avez fixé certains paramètres et que vous souhaitez "
"revenir en arrière sur ce qui est actuellement installé sur le système, "
"appuyez sur la touche B<'C'>. C'est un peu comme utiliser la commande de "
"déblocage sur tous les paquets, mais cela offre un bouton panique plus "
"évident pour les cas où l'utilisateur à appuyé sur B<entrer> "
"accidentellement."

#. type: Plain text
#: dselect.1:428
msgid ""
"If set, B<dselect> will use it as the directory from which to read the user "
"specific configuration file."
msgstr ""
"Si positionné, sera utilisé par B<dselect> comme le répertoire d'où sera lu "
"le fichier de configuration propre à l'utilisateur."

#. type: Plain text
#: dselect.1:434
msgid ""
"The B<dselect> package selection interface is confusing to some new users.  "
"Reportedly, it even makes seasoned kernel developers cry."
msgstr ""
"L'interface B<dselect> de sélection de paquets est déroutante pour les "
"nouveaux utilisateurs. On rapporte même qu'elle fait pleurer certains "
"développeurs chevronnés du noyau (NdT : du moins les derniers historiques "
"dinosaures qui s'en servent encore)."

#. type: Plain text
#: dselect.1:436
msgid "The documentation is lacking."
msgstr "La documentation manque."

#. type: Plain text
#: dselect.1:438
msgid "There is no help option in the main menu."
msgstr "Il n'existe pas d'option d'aide dans le menu."

#. type: Plain text
#: dselect.1:440
msgid "The visible list of available packages cannot be reduced."
msgstr "La liste visible des paquets disponibles ne peut pas être réduite."

#. type: Plain text
#: dselect.1:444
msgid ""
"The built in access methods can no longer stand up to current quality "
"standards. Use the access method provided by apt, it is not only not broken, "
"it is also much more flexible than the built in access methods."
msgstr ""
"La méthode d'accès intégrée ne satisfait pas les normes de qualité "
"actuelles. Utilisez plutôt la méthode fournie par APT. Non seulement elle "
"n'est pas cassée, mais en plus elle est plus souple que la méthode d'accès "
"intégrée."

#. type: Plain text
#: dselect.1:450
msgid "B<dpkg>(1), B<apt-get>(8), B<sources.list>(5), B<deb>(5)."
msgstr "B<dpkg>(1), B<apt-get>(8), B<sources.list>(5), B<deb>(5)."

#. type: Plain text
#: dselect.1:455
msgid ""
"B<dselect> was written by Ian Jackson (ijackson@gnu.ai.mit.edu). Full list "
"of contributors may be found in 'dselect --version'."
msgstr ""
"B<dselect> a été écrit par Ian Jackson (ijackson@gnu.ai.mit.edu). La liste "
"complète des contributeurs est affichée par « dselect --version »."

#. type: Plain text
#: dselect.1:458
msgid ""
"This manual page was written by Juho Vuori E<lt>javuori@cc.helsinki.fiE<gt>, "
"Josip Rodin and Joost kooij."
msgstr ""
"Cette page de manuel a été écrite par Juho Vuori E<lt>javuori@cc.helsinki."
"fiE<gt>, Josip Rodin et Joost kooij."

#. type: TH
#: dselect.cfg.5:1
#, no-wrap
msgid "dselect.cfg"
msgstr "dselect.cfg"

#. type: TH
#: dselect.cfg.5:1
#, fuzzy, no-wrap
#| msgid "2009-02-27"
msgid "2011-07-03"
msgstr "27-02-2009"

#. type: Plain text
#: dselect.cfg.5:4
msgid "dselect.cfg - dselect configuration file"
msgstr "dselect.cfg - Fichier de configuration de dselect"

#. type: Plain text
#: dselect.cfg.5:11
#, fuzzy
#| msgid ""
#| "This file contains default options for dselect. Each line contains a "
#| "single option which is exactly the same as a normal commandline option "
#| "for dselect except for the leading dashes which are not used here. Quotes "
#| "surrounding option values are stripped. Comments are allowed by starting "
#| "a line with a hash sign (\"B<#>\")."
msgid ""
"This file contains default options for dselect. Each line contains a single "
"option which is exactly the same as a normal command line option for dselect "
"except for the leading dashes which are not used here. Quotes surrounding "
"option values are stripped. Comments are allowed by starting a line with a "
"hash sign (\"B<#>\")."
msgstr ""
"Ce fichier liste les options appliquées par défaut à dselect. Chaque ligne "
"contient une seule option, écrite exactement comme sur la ligne de commande "
"mais sans les tirets initiaux, inutilisés. Les guillemets placés autour des "
"options sont supprimés. Les commentaires sont autorisés en faisant commencer "
"la ligne par un caractère B<#>."

#. type: Plain text
#: dselect.cfg.5:14
msgid "I</etc/dpkg/dselect.cfg.d/[0-9a-zA-Z_-]*>"
msgstr "I</etc/dpkg/dselect.cfg.d/[0-9a-zA-Z_-]*>"

#. type: Plain text
#: dselect.cfg.5:16
msgid "I</etc/dpkg/dselect.cfg>"
msgstr "I</etc/dpkg/dselect.cfg>"

#. type: Plain text
#: dselect.cfg.5:18
msgid "I<~/.dselect.cfg>"
msgstr "I<~/.dselect.cfg>"

#. type: Plain text
#: dselect.cfg.5:22
msgid ""
"See I</usr/share/doc/dpkg/THANKS> for the list of people who have "
"contributed to B<dselect>."
msgstr ""
"Consultez I</usr/share/doc/dpkg/THANKS> pour la liste de ceux qui ont "
"contribué à B<dselect>."

#. type: Plain text
#: dselect.cfg.5:24
msgid "B<dselect>(1)."
msgstr "B<dselect>(1)."

#. type: TH
#: start-stop-daemon.8:1
#, no-wrap
msgid "start-stop-daemon"
msgstr "start-stop-daemon"

#. type: Plain text
#: start-stop-daemon.8:4
msgid "start-stop-daemon - start and stop system daemon programs"
msgstr "start-stop-daemon - lance ou arrête des démons système"

#. type: Plain text
#: start-stop-daemon.8:8
#, fuzzy
#| msgid "B<start-stop-daemon> [I<options>] I<command>"
msgid "B<start-stop-daemon> [I<option>...] I<command>"
msgstr "B<start-stop-daemon> [I<options>] I<commande>"

#. type: Plain text
#: start-stop-daemon.8:14
msgid ""
"B<start-stop-daemon> is used to control the creation and termination of "
"system-level processes.  Using one of the matching options, B<start-stop-"
"daemon> can be configured to find existing instances of a running process."
msgstr ""
"On se sert de B<start-stop-daemon> pour contrôler la création ou l'arrêt de "
"processus système. En utilisant les options correspondantes, B<start-stop-"
"daemon> peut être configuré pour trouver les exemplaires présents d'un "
"processus en fonctionnement."

#. type: Plain text
#: start-stop-daemon.8:33
msgid ""
"Note: unless B<--pidfile> is specified, B<start-stop-daemon> behaves similar "
"to B<killall>(1).  B<start-stop-daemon> will scan the process table looking "
"for any processes which match the process name, uid, and/or gid (if "
"specified). Any matching process will prevent B<--start> from starting the "
"daemon. All matching processes will be sent the TERM signal (or the one "
"specified via B<--signal> or B<--retry>) if B<--stop> is specified. For "
"daemons which have long-lived children which need to live through a B<--"
"stop>, you must specify a pidfile."
msgstr ""
"Veuillez noter qu'à moins d'utiliser B<--pidfile>, le programme B<start-stop-"
"daemon> se comporte comme B<killall>(1). B<start-stop-daemon> recherche dans "
"le tableau des processus tout processus qui correspond au nom, uid et/ou gid "
"du processus (si indiqué). Toute correspondance empêchera B<--start> de "
"démarrer le démon. Tous les processus qui correspondent recevront le signal "
"TERM (ou le signal indiqué par B<--signal> or B<--retry>). Pour les démons "
"avec des processus enfant qui doivent survivre à un B<--stop>, il est "
"nécessaired'indiquer un fichier pid (« pidfile »)."

#. type: TP
#: start-stop-daemon.8:35
#, no-wrap
msgid "B<-S>, B<--start> [B<-->] I<arguments>"
msgstr "B<-S>, B<--start> [B<-->] I<paramètres>"

#. type: Plain text
#: start-stop-daemon.8:52
msgid ""
"Check for the existence of a specified process.  If such a process exists, "
"B<start-stop-daemon> does nothing, and exits with error status 1 (0 if B<--"
"oknodo> is specified).  If such a process does not exist, it starts an "
"instance, using either the executable specified by B<--exec> or, if "
"specified, by B<--startas>.  Any arguments given after B<--> on the command "
"line are passed unmodified to the program being started."
msgstr ""
"Vérifier l'existence d'un processus particulier. Quand il existe un tel "
"processus, B<start-stop-daemon> ne fait rien et se termine avec un code "
"d'erreur égal à 1 (0 si B<--oknodo> est précisé). Quand un tel processus "
"n'existe pas, un exemplaire de l'exécutable est lancé, en utilisant le "
"paramètre de B<--exec> ou, celui de B<--startas> si cette option est "
"précisée. Tout argument donné après B<--> sur la ligne de commande est passé "
"tel quel au programme qui doit être lancé."

#. type: TP
#: start-stop-daemon.8:52
#, no-wrap
msgid "B<-K>, B<--stop>"
msgstr "B<-K>, B<--stop>"

#. type: Plain text
#: start-stop-daemon.8:70
msgid ""
"Checks for the existence of a specified process.  If such a process exists, "
"B<start-stop-daemon> sends it the signal specified by B<--signal>, and exits "
"with error status 0.  If such a process does not exist, B<start-stop-daemon> "
"exits with error status 1 (0 if B<--oknodo> is specified). If B<--retry> is "
"specified, then B<start-stop-daemon> will check that the process(es) have "
"terminated."
msgstr ""
"Vérifier aussi l'existence d'un processus particulier. Quand un tel "
"processus existe B<start-stop-daemon> lui envoie le signal précisé avec B<--"
"signal> et se termine avec un code d'erreur égal à 0. Quand un tel processus "
"n'existe pas B<start-stop-daemon> se termine avec un code d'erreur égal à 1 "
"(0 if B<--oknodo> est précisé). Si B<--retry> est indiquée, B<start-stop-"
"daemon> recherche si le processus ou les processus se sont bien terminés."

#. type: TP
#: start-stop-daemon.8:70
#, fuzzy, no-wrap
#| msgid "B<-K>, B<--stop>"
msgid "B<-T>, B<--status>"
msgstr "B<-K>, B<--stop>"

#. type: Plain text
#: start-stop-daemon.8:74
msgid ""
"Check for the existence of a specified process, and returns an exit status "
"code, according to the LSB Init Script Actions."
msgstr ""

#. type: TP
#: start-stop-daemon.8:74
#, no-wrap
msgid "B<-H>, B<--help>"
msgstr "B<-H>, B<--help>"

#. type: Plain text
#: start-stop-daemon.8:77
msgid "Show usage information and exit."
msgstr "Affiche un message d'aide, puis quitte."

#. type: TP
#: start-stop-daemon.8:77
#, no-wrap
msgid "B<-V>, B<--version>"
msgstr "B<-V>, B<--version>"

#. type: Plain text
#: start-stop-daemon.8:80
msgid "Show the program version and exit."
msgstr "Affiche la version du programme et le copyright, puis quitte."

#. type: SH
#: start-stop-daemon.8:81
#, no-wrap
msgid "MATCHING OPTIONS"
msgstr "OPTIONS DE CORRESPONDANCE"

#. type: TP
#: start-stop-daemon.8:82
#, no-wrap
msgid "B<-p>, B<--pidfile> I<pid-file>"
msgstr "B<-p>, B<--pidfile> I<pid-file>"

#. type: Plain text
#: start-stop-daemon.8:86
msgid "Check whether a process has created the file I<pid-file>."
msgstr ""
"Cherche les processus dont les identifiants sont précisés dans I<pid-file>."

#. type: TP
#: start-stop-daemon.8:86
#, no-wrap
msgid "B<-x>, B<--exec> I<executable>"
msgstr "B<-x>, B<--exec> I<exécutable>"

#. type: Plain text
#: start-stop-daemon.8:90
msgid ""
"Check for processes that are instances of this executable (according to B</"
"proc/>I<pid>B</exe>)."
msgstr ""
"Cherche les processus qui sont des exemplaires de cet exécutable (selon B</"
"proc/>I<pid>B</exe>)."

#. type: TP
#: start-stop-daemon.8:90
#, no-wrap
msgid "B<-n>, B<--name> I<process-name>"
msgstr "B<-n>, B<--name> I<nomdeprocessus>"

#. type: Plain text
#: start-stop-daemon.8:96
msgid ""
"Check for processes with the name I<process-name> (according to B</proc/"
">I<pid>B</stat>)."
msgstr ""
"Cherche les processus dont le nom est I<nomdeprocessus> (selon B</proc/"
">I<pid>B</stat>)."

#. type: TP
#: start-stop-daemon.8:96
#, no-wrap
msgid "B<-u>, B<--user> I<username>|I<uid>"
msgstr "B<-u>, B<--user> I<nomdutilisateur>|I<uid>"

#. type: Plain text
#: start-stop-daemon.8:102
msgid ""
"Check for processes owned by the user specified by I<username> or I<uid>."
msgstr ""
"Cherche les processus qui appartiennent à l'utilisateur défini par "
"I<nomdutilisateur> ou I<uid.>"

#. type: TP
#: start-stop-daemon.8:104
#, no-wrap
msgid "B<-g>, B<--group> I<group>|I<gid>"
msgstr "B<-g>, B<--group> I<group>|I<gid>"

#. type: Plain text
#: start-stop-daemon.8:107
msgid "Change to I<group> or I<gid> when starting the process."
msgstr "Modifie le I<group> ou le I<gid> au début du processus."

#. type: TP
#: start-stop-daemon.8:107
#, no-wrap
msgid "B<-s>, B<--signal> I<signal>"
msgstr "B<-s>, B<--signal> I<signal>"

#. type: Plain text
#: start-stop-daemon.8:112
msgid ""
"With B<--stop>, specifies the signal to send to processes being stopped "
"(default TERM)."
msgstr ""
"L'action B<--stop,> définit le signal à envoyer au processus qui doit être "
"arrêté (par défaut : TERM)."

#. type: TP
#: start-stop-daemon.8:112
#, no-wrap
msgid "B<-R>, B<--retry> I<timeout>|I<schedule>"
msgstr "B<-R>, B<--retry> I<durée>|I<action-prévue>"

#. type: Plain text
#: start-stop-daemon.8:122
msgid ""
"With B<--stop>, specifies that B<start-stop-daemon> is to check whether the "
"process(es)  do finish. It will check repeatedly whether any matching "
"processes are running, until none are. If the processes do not exit it will "
"then take further action as determined by the schedule."
msgstr ""
"Avec l'action B<--stop>, B<start-stop-daemon> doit vérifier que les "
"processus se sont terminés. Il le fait pour tous les processus "
"correspondants qui tournent, jusqu'à ce qu'il n'y en ait plus. Quand le "
"processus ne se termine pas, il prend d'autres mesures déterminées par "
"l'action-prévue."

#. type: Plain text
#: start-stop-daemon.8:133
msgid ""
"If I<timeout> is specified instead of I<schedule>, then the schedule "
"I<signal>B</>I<timeout>B</KILL/>I<timeout> is used, where I<signal> is the "
"signal specified with B<--signal>."
msgstr ""
"Si I<durée> est indiqué plutôt que I<action-prévue>, l'action-prévue "
"I<signal>B</>I<durée>B</KILL/>I<durée> est utilisée, où I<signal> est le "
"signal indiqué par B<--signal>."

#. type: Plain text
#: start-stop-daemon.8:149
msgid ""
"I<schedule> is a list of at least two items separated by slashes (B</>); "
"each item may be B<->I<signal-number> or [B<->]I<signal-name>, which means "
"to send that signal, or I<timeout>, which means to wait that many seconds "
"for processes to exit, or B<forever>, which means to repeat the rest of the "
"schedule forever if necessary."
msgstr ""
"I<action-prévue> est une liste d'au moins deux items séparés par des barres "
"obliques (B</>) ; chaque item peut être de la forme B<->I<signal-number> ou "
"de la forme [B<->]I<signal-name>, ce qui demande d'envoyer ce signal ; ou "
"bien de la forme I<durée,> ce qui demande d'attendre tant de secondes avant "
"de terminer les processus, ou bien de la forme B<forever>, ce qui demande de "
"répéter constamment le reste de action-prévue, si nécessaire."

#. type: Plain text
#: start-stop-daemon.8:159
msgid ""
"If the end of the schedule is reached and B<forever> is not specified, then "
"B<start-stop-daemon> exits with error status 2.  If a schedule is specified, "
"then any signal specified with B<--signal> is ignored."
msgstr ""
"Quand la fin de l'action-prévue est atteinte et que B<forever> n'a pas été "
"précisé, B<start-stop-daemon> se termine avec un code d'erreur égal à 2. "
"Quand une action-prévue est indiquée, tout signal donné par B<--signal> est "
"ignoré."

#. type: TP
#: start-stop-daemon.8:159
#, no-wrap
msgid "B<-a>, B<--startas> I<pathname>"
msgstr "I<-a>, B<--startas> I<chemin/nom>"

#. type: Plain text
#: start-stop-daemon.8:167
msgid ""
"With B<--start>, start the process specified by I<pathname>.  If not "
"specified, defaults to the argument given to B<--exec>."
msgstr ""
"Avec l'action B<--start>, lance le processus spécifié par I<chemin/nom.> Si "
"rien n'est précisé, c'est par défaut l'argument donné à B<--exec.>"

#. type: TP
#: start-stop-daemon.8:167
#, no-wrap
msgid "B<-t>, B<--test>"
msgstr "B<-t>, B<--test>"

#. type: Plain text
#: start-stop-daemon.8:171
msgid ""
"Print actions that would be taken and set appropriate return value, but take "
"no action."
msgstr ""
"Affiche les actions qui seraient entreprises et détermine la bonne valeur de "
"retour, mais ne fait rien."

#. type: TP
#: start-stop-daemon.8:171
#, no-wrap
msgid "B<-o>, B<--oknodo>"
msgstr "B<-o>, B<--oknodo>"

#. type: Plain text
#: start-stop-daemon.8:174
msgid "Return exit status 0 instead of 1 if no actions are (would be) taken."
msgstr ""
"Retourne un code de sortie égal à 0 au lieu de 1 si rien n'est ou ne sera "
"fait."

#. type: TP
#: start-stop-daemon.8:174
#, no-wrap
msgid "B<-q>, B<--quiet>"
msgstr "B<-q>, B<--quiet>"

#. type: Plain text
#: start-stop-daemon.8:177
msgid "Do not print informational messages; only display error messages."
msgstr ""
"N'affiche pas de messages d'information ; affiche seulement les messages "
"d'erreur."

#. type: TP
#: start-stop-daemon.8:177
#, fuzzy, no-wrap
#| msgid "B<-c>, B<--chuid> I<username>|I<uid>"
msgid "B<-c>, B<--chuid> I<username>|I<uid>[B<:>I<group>|I<gid>]"
msgstr "B<-c>, B<--chuid> I<utilisateur>|I<uid>"

#. type: Plain text
#: start-stop-daemon.8:195
msgid ""
"Change to this username/uid before starting the process. You can also "
"specify a group by appending a B<:>, then the group or gid in the same way "
"as you would for the `chown' command (I<user>B<:>I<group>).  If a user is "
"specified without a group, the primary GID for that user is used.  When "
"using this option you must realize that the primary and supplemental groups "
"are set as well, even if the B<--group> option is not specified. The B<--"
"group> option is only for groups that the user isn't normally a member of "
"(like adding per process group membership for generic users like B<nobody>)."
msgstr ""
"Change pour cet utilisateur ou « uid » avant de lancer le processus. On peut "
"aussi préciser un groupe en ajoutant un B<:>, puis le groupe ou un « gid » "
"de la même façon qu'avec la commande « chown » (I<utilisateur>B<:"
">I<groupe>). Lorsque un utilisateur est indiqué mais pas de groupe alors le "
"groupe primaire de celui-ci est utilisé. Quand on utilise cette option, on "
"doit veiller à ce que les groupes primaires ainsi que les groupes "
"secondaires existent bien, même si l'option B<--group> n'est pas spécifiée. "
"L'option B<--group> » sert seulement pour les groupes dont l'utilisateur "
"n'est pas membre (c'est comme rendre membre d'un groupe-pour-processus des "
"utilisateurs génériques comme B<nobody>)."

#. type: TP
#: start-stop-daemon.8:195
#, no-wrap
msgid "B<-r>, B<--chroot> I<root>"
msgstr "B<-r>, B<--chroot> I<root>"

#. type: Plain text
#: start-stop-daemon.8:201
msgid ""
"Chdir and chroot to I<root> before starting the process. Please note that "
"the pidfile is also written after the chroot."
msgstr ""
"Change de répertoire racine pour B<root> avant de lancer le processus. "
"Remarquez que le « pidfile » est aussi écrit après le changement de racine."

#. type: TP
#: start-stop-daemon.8:201
#, no-wrap
msgid "B<-d>, B<--chdir> I<path>"
msgstr "B<-d>, B<--chdir> I<path>"

#. type: Plain text
#: start-stop-daemon.8:209
msgid ""
"Chdir to I<path> before starting the process. This is done after the chroot "
"if the B<-r>|B<--chroot> option is set. When not specified, start-stop-"
"daemon will chdir to the root directory before starting the process."
msgstr ""
"Change de répertoire pour I<chemin> avant de commencer le processus. Cela "
"est fait après le changement de répertoire racine si l'option B<-r>|B<--"
"chroot> est demandée. Si rien n'est demandé, start-stop-daemon changera de "
"répertoire racine avant de commencer le processus."

#. type: TP
#: start-stop-daemon.8:209
#, no-wrap
msgid "B<-b>, B<--background>"
msgstr "B<-b>, B<--background>"

#. type: Plain text
#: start-stop-daemon.8:221
msgid ""
"Typically used with programs that don't detach on their own. This option "
"will force B<start-stop-daemon> to fork before starting the process, and "
"force it into the background.  B<WARNING: start-stop-daemon> cannot check "
"the exit status if the process fails to execute for B<any> reason. This is a "
"last resort, and is only meant for programs that either make no sense "
"forking on their own, or where it's not feasible to add the code for them to "
"do this themselves."
msgstr ""
"Utilisé généralement pour les programmes qui ne « se détachent » pas d'eux-"
"mêmes. Cette option oblige B<start-stop-daemon> à se dupliquer (fork) avant "
"de lancer le processus, et l'oblige à passer en arrière-plan. "
"B<AVERTISSEMENT : start-stop-daemon> ne peut pas vérifier le code de sortie "
"quand, pour B<une raison ou une autre>, le processus échoue. C'est un "
"expédient dont on se servira seulement pour des programmes dont la "
"duplication n'a pas de sens ou bien des programmes dont le code n'est pas "
"adaptable pour leur ajouter cette fonctionnalité."

#. type: TP
#: start-stop-daemon.8:221
#, no-wrap
msgid "B<-N>, B<--nicelevel> I<int>"
msgstr "B<-N>, B<--nicelevel> I<int>"

#. type: Plain text
#: start-stop-daemon.8:224
msgid "This alters the priority of the process before starting it."
msgstr "Cela modifie la priorité du processus avant qu'il ne soit lancé."

#. type: TP
#: start-stop-daemon.8:224
#, no-wrap
msgid "B<-P>, B<--procsched> I<policy>B<:>I<priority>"
msgstr "B<-P>, B<--procsched> I<politique>B<:>I<priorité>"

#. type: Plain text
#: start-stop-daemon.8:230
msgid ""
"This alters the process scheduler policy and priority of the process before "
"starting it. The priority can be optionally specified by appending a B<:> "
"followed by the value. The default I<priority> is 0. The currently supported "
"policy values are B<other>, B<fifo> and B<rr>."
msgstr ""
"Modifie la politique du programmateur de processus (« process scheduler "
"policy ») et la priorité du processus avant de le démarrer. La priorité peut "
"être indiquée de manière facultative avec B<:> suivi de la valeur souhaitée. "
"La I<priorité> par défaut est 0. Les valeurs de politiques actuellement "
"gérées sont B<other>, B<fifo> et B<rr>."

#. type: TP
#: start-stop-daemon.8:230
#, no-wrap
msgid "B<-I>, B<--iosched> I<class>B<:>I<priority>"
msgstr "B<-I>, B<--iosched> I<classe>B<:>I<priorité>"

#. type: Plain text
#: start-stop-daemon.8:237
msgid ""
"This alters the IO scheduler class and priority of the process before "
"starting it. The priority can be optionally specified by appending a B<:> "
"followed by the value. The default I<priority> is 4, unless I<class> is "
"B<idle>, then I<priority> will always be 7. The currently supported values "
"for I<class> are B<idle>, B<best-effort> and B<real-time>."
msgstr ""
"Modifie la classe du programmateur d'entrée/sortie (« IO scheduler ») et la "
"priorité du processus avant de le démarrer. La priorité peut être indiquée "
"de manière facultative avec B<:> suivi de la valeur souhaitée. La "
"I<priorité> par défaut est 4, sauf si I<classe> est B<idle>, auquel cas "
"I<priorité> sera toujours égale à 7. Les valeurs de I<classe> actuellement "
"gérées sont B<idle>, B<best-effort> et B<real-time>."

#. type: TP
#: start-stop-daemon.8:237
#, no-wrap
msgid "B<-k>, B<--umask> I<mask>"
msgstr "B<-k>, B<--umask> I<mask>"

#. type: Plain text
#: start-stop-daemon.8:240
msgid "This sets the umask of the process before starting it."
msgstr ""
"Cela modifie le masque utilisateur du processus avant qu'il ne soit lancé."

#. type: TP
#: start-stop-daemon.8:240
#, no-wrap
msgid "B<-m>, B<--make-pidfile>"
msgstr "B<-m>, B<--make-pidfile>"

#. type: Plain text
#: start-stop-daemon.8:255
msgid ""
"Used when starting a program that does not create its own pid file. This "
"option will make B<start-stop-daemon> create the file referenced with B<--"
"pidfile> and place the pid into it just before executing the process. Note, "
"the file will not be removed when stopping the program.  B<NOTE:> This "
"feature may not work in all cases. Most notably when the program being "
"executed forks from its main process. Because of this, it is usually only "
"useful when combined with the B<--background> option."
msgstr ""
"Utilisé lors du lancement d'un programme qui ne crée pas son propre fichier "
"identificateur « pid ». Cette option indique à B<start-stop-daemon> de créer "
"le fichier référencé par B<--pidfile> et placer le « pid » dans ce fichier "
"juste avant d'exécuter le processus. Il faut remarquer que ce fichier n'est "
"pas supprimé quand le programme s'arrête. B<NOTE :> il se peut que cette "
"caractéristique ne marche pas dans tous les cas. Notamment quand le "
"programme qui est exécuté se duplique. À cause de cela, cette option n'est "
"habituellement utile que combinée avec l'option B<--background>."

#. type: Plain text
#: start-stop-daemon.8:258
msgid "Print verbose informational messages."
msgstr "Affiche des messages prolixes en renseignements."

#. type: Plain text
#: start-stop-daemon.8:270
msgid ""
"The requested action was performed. If B<--oknodo> was specified, it's also "
"possible that nothing had to be done.  This can happen when B<--start> was "
"specified and a matching process was already running, or when B<--stop> was "
"specified and there were no matching processes."
msgstr ""

#. type: Plain text
#: start-stop-daemon.8:275
msgid "If B<--oknodo> was not specified and nothing was done."
msgstr ""

#. type: Plain text
#: start-stop-daemon.8:283
msgid ""
"If B<--stop> and B<--retry> were specified, but the end of the schedule was "
"reached and the processes were still running."
msgstr ""

#. type: TP
#: start-stop-daemon.8:283 start-stop-daemon.8:295
#, no-wrap
msgid "B<3>"
msgstr ""

#. type: Plain text
#: start-stop-daemon.8:286
msgid "Any other error."
msgstr ""

#. type: Plain text
#: start-stop-daemon.8:289
msgid ""
"When using the B<--status> command, the following status codes are returned:"
msgstr ""

#. type: Plain text
#: start-stop-daemon.8:292
msgid "Program is running."
msgstr ""

#. type: Plain text
#: start-stop-daemon.8:295
msgid "Program is not running and the pid file exists."
msgstr ""

#. type: Plain text
#: start-stop-daemon.8:298
msgid "Program is not running."
msgstr ""

#. type: TP
#: start-stop-daemon.8:298
#, no-wrap
msgid "B<4>"
msgstr ""

#. type: Plain text
#: start-stop-daemon.8:301
msgid "Unable to determine program status."
msgstr ""

#. type: Plain text
#: start-stop-daemon.8:305
msgid ""
"Start the B<food> daemon, unless one is already running (a process named "
"food, running as user food, with pid in food.pid):"
msgstr ""
"Démarre le démon B<food>, à moins qu'il soit déjà en cours d'exécution (un "
"processus nommé B<food>, tournant sous le nom d'utilisateur B<food>, avec un "
"pid dans food.pid) :"

#. type: Plain text
#: start-stop-daemon.8:308
#, no-wrap
msgid "start-stop-daemon --start --oknodo --user food --name food --pidfile /var/run/food.pid --startas /usr/sbin/food --chuid food -- --daemon\n"
msgstr "start-stop-daemon --start --oknodo --user food --name food --pidfile /var/run/food.pid --startas /usr/sbin/food --chuid food -- --daemon\n"

#. type: Plain text
#: start-stop-daemon.8:311
msgid "Send B<SIGTERM> to B<food> and wait up to 5 seconds for it to stop:"
msgstr ""
"Envoie le signal B<SIGTERM> à B<food> et attend durant 5 secondes son arrêt :"

#. type: Plain text
#: start-stop-daemon.8:314
#, no-wrap
msgid "start-stop-daemon --stop --oknodo --user food --name food --pidfile /var/run/food.pid --retry 5\n"
msgstr "start-stop-daemon --stop --oknodo --user food --name food --pidfile /var/run/food.pid --retry 5\n"

#. type: Plain text
#: start-stop-daemon.8:317
msgid "Demonstration of a custom schedule for stopping B<food>:"
msgstr "Démonstration d'un ordonnanceur personnalisé pour l'arrêt de B<food> :"

#. type: Plain text
#: start-stop-daemon.8:320
#, no-wrap
msgid "start-stop-daemon --stop --oknodo --user food --name food --pidfile /var/run/food.pid --retry=TERM/30/KILL/5\n"
msgstr "start-stop-daemon --stop --oknodo --user food --name food --pidfile /var/run/food.pid --retry=TERM/30/KILL/5\n"

#. type: Plain text
#: start-stop-daemon.8:326
msgid ""
"Marek Michalkiewicz E<lt>marekm@i17linuxb.ists.pwr.wroc.plE<gt> based on a "
"previous version by Ian Jackson E<lt>ian@chiark.greenend.org.ukE<gt>."
msgstr ""
"Marek Michalkiewicz E<lt>marekm@i17linuxb.ists.pwr.wroc.plE<gt> à partir "
"d'une version faite par Ian Jackson E<lt>ian@chiark.greenend.org.ukE<gt>."

#. type: Plain text
#: start-stop-daemon.8:328
msgid ""
"Manual page by Klee Dienes E<lt>klee@mit.eduE<gt>, partially reformatted by "
"Ian Jackson."
msgstr ""
"Page de manuel par Klee Dienes E<lt>klee@mit.eduE<gt>, partiellement "
"reformattée par Ian Jackson."

#. type: TH
#: update-alternatives.8:8
#, no-wrap
msgid "update-alternatives"
msgstr "update-alternatives"

#. type: Plain text
#: update-alternatives.8:11
msgid ""
"update-alternatives - maintain symbolic links determining default commands"
msgstr ""
"update-alternatives - maintenance des liens symboliques déterminant les noms "
"par défaut de certaines commandes"

#. type: Plain text
#: update-alternatives.8:15
#, fuzzy
#| msgid "B<update-alternatives> [I<options>] I<command>"
msgid "B<update-alternatives> [I<option>...] I<command>"
msgstr "B<update-alternatives> [I<options>] I<commande>"

#. type: Plain text
#: update-alternatives.8:20
msgid ""
"B<update-alternatives> creates, removes, maintains and displays information "
"about the symbolic links comprising the Debian alternatives system."
msgstr ""
"B<update-alternatives> crée, enlève, conserve et affiche des informations "
"concernant les liens symboliques qui forment le système Debian des "
"« alternatives »."

#. type: Plain text
#: update-alternatives.8:28
msgid ""
"It is possible for several programs fulfilling the same or similar functions "
"to be installed on a single system at the same time.  For example, many "
"systems have several text editors installed at once.  This gives choice to "
"the users of a system, allowing each to use a different editor, if desired, "
"but makes it difficult for a program to make a good choice for an editor to "
"invoke if the user has not specified a particular preference."
msgstr ""
"Il est possible d'installer, sur un même système et en même temps, des "
"programmes qui remplissent des fonctions identiques ou semblables. Par "
"exemple, beaucoup de systèmes installent plusieurs éditeurs de texte en même "
"temps. Cela permet à chaque utilisateur d'un système de choisir, s'il le "
"désire, un éditeur de texte différent ; mais cela rend les choses difficiles "
"pour le programme qui doit choisir un bon éditeur de texte quand "
"l'utilisateur n'a pas fait de choix précis."

#. type: Plain text
#: update-alternatives.8:50
msgid ""
"Debian's alternatives system aims to solve this problem.  A generic name in "
"the filesystem is shared by all files providing interchangeable "
"functionality.  The alternatives system and the system administrator "
"together determine which actual file is referenced by this generic name.  "
"For example, if the text editors B<ed>(1)  and B<nvi>(1)  are both installed "
"on the system, the alternatives system will cause the generic name I</usr/"
"bin/editor> to refer to I</usr/bin/nvi> by default. The system administrator "
"can override this and cause it to refer to I</usr/bin/ed> instead, and the "
"alternatives system will not alter this setting until explicitly requested "
"to do so."
msgstr ""
"Le système Debian des « alternatives » essaie de résoudre ce problème. Tous "
"les fichiers qui proposent des fonctions interchangeables se servent d'un "
"nom générique qui se trouve dans l'arborescence. Le système des "
"« alternatives » et l'administrateur système font connaître ensemble le "
"fichier qui est réellement visé par ce nom générique. Par exemple, si les "
"éditeurs de texte B<ed>(1) et B<nvi>(1) sont tous les deux installés, le "
"système des « alternatives » fait que le nom générique I</usr/bin/editor> "
"renvoie par défaut à I</usr/bin/nvi>. L'administrateur système peut "
"remplacer cette assignation par I</usr/bin/ed> et le système des "
"« alternatives » ne la changera pas tant qu'on ne lui aura pas demandé "
"explicitement de le faire."

#. type: Plain text
#: update-alternatives.8:60
msgid ""
"The generic name is not a direct symbolic link to the selected alternative.  "
"Instead, it is a symbolic link to a name in the I<alternatives> "
"I<directory>, which in turn is a symbolic link to the actual file "
"referenced.  This is done so that the system administrator's changes can be "
"confined within the I</etc> directory: the FHS (q.v.) gives reasons why this "
"is a Good Thing."
msgstr ""
"Le nom générique n'est pas un lien symbolique direct vers l'alternative "
"choisie. C'est en fait un lien symbolique vers un nom situé dans le "
"I<répertoire> I<des « alternatives »>, lequel nom est à son tour un lien "
"symbolique vers le fichier réellement visé. Les modifications faites par "
"l'administrateur système sont ainsi confinées dans le répertoire I</etc> ; "
"le FHS (lisez-le) donne de Bonnes Raisons de faire ainsi."

#. type: Plain text
#: update-alternatives.8:72
msgid ""
"When each package providing a file with a particular functionality is "
"installed, changed or removed, B<update-alternatives> is called to update "
"information about that file in the alternatives system.  B<update-"
"alternatives> is usually called from the B<postinst> (configure) or B<prerm> "
"(install) scripts in Debian packages."
msgstr ""
"Chaque fois qu'un paquet proposant un fichier pour une fonction déterminée, "
"est installé, modifié ou désinstallé, B<update-alternatives> est appelé pour "
"mettre à jour les informations concernant ce fichier dans le système des "
"« alternatives ». En général, B<update-alternatives> est appelé dans les "
"scripts B<postinst> (configure) et B<prerm> (install) des paquets Debian."

#. type: Plain text
#: update-alternatives.8:91
msgid ""
"It is often useful for a number of alternatives to be synchronised, so that "
"they are changed as a group; for example, when several versions of the B<vi>"
"(1)  editor are installed, the man page referenced by I</usr/share/man/man1/"
"vi.1> should correspond to the executable referenced by I</usr/bin/vi>.  "
"B<update-alternatives> handles this by means of I<master> and I<slave> "
"links; when the master is changed, any associated slaves are changed too.  A "
"master link and its associated slaves make up a I<link> I<group>."
msgstr ""
"Il est souvent utile de synchroniser certaines alternatives, de manière à "
"pouvoir les manipuler globalement ; par exemple, quand plusieurs versions de "
"B<vi>(1)  sont installées, la page de manuel qui est visée par I</usr/share/"
"man/man1/vi.1> devrait correspondre à I</usr/bin/vi>. B<update-alternatives> "
"gère ce problème avec les liens I<principaux (« master »)> et les liens "
"I<secondaires (« slave »)>. Quand le lien principal est changé, tous les "
"liens secondaires associés sont changés. Un lien principal et ses liens "
"secondaires associés composent un I<groupe> de I<liens.>"

#. type: Plain text
#: update-alternatives.8:100
msgid ""
"Each link group is, at any given time, in one of two modes: automatic or "
"manual.  When a group is in automatic mode, the alternatives system will "
"automatically decide, as packages are installed and removed, whether and how "
"to update the links.  In manual mode, the alternatives system will retain "
"the choice of the administrator and avoid changing the links (except when "
"something is broken)."
msgstr ""
"À tout moment, un groupe de liens est dans l'un des deux modes suivants : "
"automatique ou manuel. Quand un groupe est dans le mode automatique et que "
"des paquets sont installés ou désinstallés, le système des « alternatives » "
"décide automatiquement s'il doit mettre à jour les liens et comment le "
"faire. Dans le mode manuel, le système des « alternatives » ne change pas "
"les liens et laisse l'administrateur système prendre toutes les décisions "
"(sauf si quelque chose est cassé)."

#. type: Plain text
#: update-alternatives.8:109
msgid ""
"Link groups are in automatic mode when they are first introduced to the "
"system.  If the system administrator makes changes to the system's automatic "
"settings, this will be noticed the next time B<update-alternatives> is run "
"on the changed link's group, and the group will automatically be switched to "
"manual mode."
msgstr ""
"Un groupe de liens est en mode automatique quand il est crée sur un système "
"pour la première fois. Quand l'administrateur système modifie le paramétrage "
"automatique du système, B<update-alternatives> le remarquera la prochaine "
"fois qu'il sera lancé pour ce groupe aux liens modifiés et il fera passer ce "
"groupe en mode manuel."

#. type: Plain text
#: update-alternatives.8:116
msgid ""
"Each alternative has a I<priority> associated with it.  When a link group is "
"in automatic mode, the alternatives pointed to by members of the group will "
"be those which have the highest priority."
msgstr ""
"À chaque alternative est associée une I<priorité>. Quand un groupe de liens "
"est en mode automatique, l'alternative visée par les éléments du groupe est "
"celle qui possède la priorité la plus élevée."

#. type: Plain text
#: update-alternatives.8:133
#, fuzzy
#| msgid ""
#| "When using the I<--config> option, B<update-alternatives> will list all "
#| "of the choices for the link group of which given I<name> is the master "
#| "alternative name. The current choice is marked with a '*'.  You will then "
#| "be prompted for your choice regarding this link group.  Depending on the "
#| "choice made, the link group might no longer be in I<auto> mode. You will "
#| "need to use the I<--auto> option in order to return to the automatic mode "
#| "(or you can rerun I<--config> and select the entry marked as automatic)."
msgid ""
"When using the B<--config> option, B<update-alternatives> will list all of "
"the choices for the link group of which given I<name> is the master "
"alternative name. The current choice is marked with a '*'.  You will then be "
"prompted for your choice regarding this link group.  Depending on the choice "
"made, the link group might no longer be in I<auto> mode. You will need to "
"use the B<--auto> option in order to return to the automatic mode (or you "
"can rerun B<--config> and select the entry marked as automatic)."
msgstr ""
"Quand l'option I<--config> est utilisée, B<update-alternatives> affiche "
"toutes les possibilités du groupe pour lequel I<nom> est le lien principal. "
"Le choix actuel est noté par un « * ». Il sera alors demandé quel choix doit "
"être fait pour ce groupe. Suivant le choix effectué, le groupe de liens peut "
"ne plus être en mode I<auto>. Il vous faudra utiliser l'option I<--auto> "
"pour revenir au mode automatique (ou  réutiliser I<--config> et choisir "
"l'entrée marquée comme automatique)."

#. type: Plain text
#: update-alternatives.8:137
#, fuzzy
#| msgid ""
#| "If you want to configure non-interactively you can use the I<--set> "
#| "option instead (see below)."
msgid ""
"If you want to configure non-interactively you can use the B<--set> option "
"instead (see below)."
msgstr ""
"Si vous voulez configurer de manière non interactive, vous pouvez utiliser "
"l'option I<--set> (voyez ci-dessous)."

#. type: Plain text
#: update-alternatives.8:148
msgid ""
"Different packages providing the same file need to do so B<cooperatively>.  "
"In other words, the usage of B<update-alternatives> is B<mandatory> for all "
"involved packages in such case. It is not possible to override some file in "
"a package that does not employ the B<update-alternatives> mechanism."
msgstr ""
"Les différents paquets qui fournissent un même fichier doivent le faire en "
"B<collaborant>. En d'autres termes, l'utilisation de B<update-alternatives> "
"est B<obligatoire> pour tous les paquets qui sont dans ce cas et il n'est "
"pas possible de remplacer un fichier d'un paquet qui n'utilise pas le "
"mécanisme offert par B<update-alternatives>."

#. type: SH
#: update-alternatives.8:149
#, no-wrap
msgid "TERMINOLOGY"
msgstr "TERMINOLOGIE"

#. type: Plain text
#: update-alternatives.8:154
msgid ""
"Since the activities of B<update-alternatives> are quite involved, some "
"specific terms will help to explain its operation."
msgstr ""
"Comme les opérations de B<update-alternatives> sont très compliquées, voici "
"quelques termes qui faciliteront l'explication."

#. type: TP
#: update-alternatives.8:154
#, no-wrap
msgid "generic name (or alternative link)"
msgstr "nom générique (ou lien alternatif)"

#. type: Plain text
#: update-alternatives.8:160
msgid ""
"A name, like I</usr/bin/editor>, which refers, via the alternatives system, "
"to one of a number of files of similar function."
msgstr ""
"C'est un nom, par exemple I</usr/bin/editor>, qui renvoie, à travers le "
"système des « alternatives », à l'un des fichiers qui remplissent des "
"fonctions similaires."

#. type: TP
#: update-alternatives.8:160
#, no-wrap
msgid "alternative name"
msgstr "nom alternatif"

#. type: Plain text
#: update-alternatives.8:163
msgid "The name of a symbolic link in the alternatives directory."
msgstr "Nom d'un lien symbolique dans le répertoire des alternatives."

#. type: TP
#: update-alternatives.8:163
#, no-wrap
msgid "alternative (or alternative path)"
msgstr "alternative (ou chemin alternatif)"

#. type: Plain text
#: update-alternatives.8:167
msgid ""
"The name of a specific file in the filesystem, which may be made accessible "
"via a generic name using the alternatives system."
msgstr ""
"C'est le nom d'un fichier particulier dans l'arborescence ; il peut être "
"accessible avec un nom génériques grâce au système d'alternatives."

#. type: TP
#: update-alternatives.8:167
#, no-wrap
msgid "alternatives directory"
msgstr "répertoire des alternatives "

#. type: Plain text
#: update-alternatives.8:172
msgid "A directory, by default I</etc/alternatives>, containing the symlinks."
msgstr ""
"C'est le répertoire qui contient les liens symboliques ; il s'agit par "
"défaut de I</etc/alternatives.>"

#. type: TP
#: update-alternatives.8:172
#, no-wrap
msgid "administrative directory"
msgstr "répertoire administratif"

#. type: Plain text
#: update-alternatives.8:179
msgid ""
"A directory, by default I</var/lib/dpkg/alternatives>, containing B<update-"
"alternatives>' state information."
msgstr ""
"C'est le répertoire qui contient des renseignements sur l'état de B<update-"
"alternatives.> Il s'agit par défaut de I</var/lib/dpkg/alternatives.>"

#. type: TP
#: update-alternatives.8:179
#, no-wrap
msgid "link group"
msgstr "groupe de liens"

#. type: Plain text
#: update-alternatives.8:182
msgid "A set of related symlinks, intended to be updated as a group."
msgstr ""
"C'est un ensemble de liens symboliques corrélés, de manière qu'on puisse les "
"mettre à jour en une seule fois."

#. type: TP
#: update-alternatives.8:182
#, no-wrap
msgid "master link"
msgstr "lien principal"

#. type: Plain text
#: update-alternatives.8:186
msgid ""
"The alternative link in a link group which determines how the other links in "
"the group are configured."
msgstr ""
"Dans un groupe de liens, le lient alternatif est le lien qui détermine "
"comment sont configurés les autres liens du groupe."

#. type: TP
#: update-alternatives.8:186
#, no-wrap
msgid "slave link"
msgstr "lien secondaire (« slave »)"

#. type: Plain text
#: update-alternatives.8:190
msgid ""
"An alternative link in a link group which is controlled by the setting of "
"the master link."
msgstr ""
"Un lien alternatif est un groupe de liens contrôlés par le réglage du lien "
"principal."

#. type: TP
#: update-alternatives.8:190
#, no-wrap
msgid "automatic mode"
msgstr "mode automatique"

#. type: Plain text
#: update-alternatives.8:196
msgid ""
"When a link group is in automatic mode, the alternatives system ensures that "
"the links in the group point to the highest priority alternative appropriate "
"for the group."
msgstr ""
"Quand un groupe de liens est en mode automatique, le système des "
"« alternatives » assure que les liens dans le groupe pointent vers "
"l'alternative possédant la priorité la plus élevée dans ce groupe."

#. type: TP
#: update-alternatives.8:196
#, no-wrap
msgid "manual mode"
msgstr "mode manuel "

#. type: Plain text
#: update-alternatives.8:201
msgid ""
"When a link group is in manual mode, the alternatives system will not make "
"any changes to the system administrator's settings."
msgstr ""
"Quand un groupe de liens est en mode manuel, le système des « alternatives » "
"ne modifie pas le paramétrage de l'administrateur système."

#. type: TP
#: update-alternatives.8:203
#, no-wrap
msgid "B<--install> I<link name path priority> [B<--slave> I<link name path>]..."
msgstr "B<--install> I<lien nom chemin priorité> [B<--slave> I<lien nom chemin>]..."

#. type: Plain text
#: update-alternatives.8:222
msgid ""
"Add a group of alternatives to the system.  I<link> is the generic name for "
"the master link, I<name> is the name of its symlink in the alternatives "
"directory, and I<path> is the alternative being introduced for the master "
"link.  The arguments after B<--slave> are the generic name, symlink name in "
"the alternatives directory and the alternative path for a slave link.  Zero "
"or more B<--slave> options, each followed by three arguments, may be "
"specified. Note that the master alternative must exist or the call will "
"fail. However if a slave alternative doesn't exist, the corresponding slave "
"alternative link will simply not be installed (a warning will still be "
"displayed). If some real file is installed where an alternative link has to "
"be installed, it is kept unless B<--force> is used."
msgstr ""
"Ajoute un groupe d'alternatives au système. I<lien> est le nom générique du "
"lien principal, I<nom> est le nom de son lien symbolique, et I<chemin> est "
"l'alternative présentée pour le lien principal. Les paramètres qui suivent "
"B<--slave> sont le nom générique, le lien symbolique dans le répertoire des "
"alternatives et l'alternative pour un lien secondaire. On peut indiquer zéro "
"ou plusieurs options B<--slave> chacune suivie par trois paramètres. "
"L'alternative principale doit exister, sinon la commande échouera. "
"Cependant, si une alternative secondaire n'existe pas, le lien secondaire ne "
"sera simplement pas installé (mais un avertissement sera affiché). Si un "
"fichier existe à l'emplacement où l'alternative doit être installée, il est "
"conservé sauf si B<--force> est utilisé."

#. type: Plain text
#: update-alternatives.8:233
msgid ""
"If the alternative name specified exists already in the alternatives "
"system's records, the information supplied will be added as a new set of "
"alternatives for the group.  Otherwise, a new group, set to automatic mode, "
"will be added with this information.  If the group is in automatic mode, and "
"the newly added alternatives' priority is higher than any other installed "
"alternatives for this group, the symlinks will be updated to point to the "
"newly added alternatives."
msgstr ""
"Quand le lien principal spécifié existe déjà dans les enregistrements du "
"système des « alternatives », les renseignements fournis sont ajoutés dans "
"un nouvel ensemble d'alternatives pour le groupe. Sinon, un nouveau groupe "
"contenant ces informations est ajouté et mis en mode automatique. Quand un "
"groupe est en mode automatique, et que la priorité des alternatives "
"nouvellement ajoutées est supérieure à celle de toutes les alternatives "
"installées dans ce groupe, les liens symboliques sont mis à jour et pointent "
"vers les alternatives nouvellement ajoutées."

#. type: TP
#: update-alternatives.8:233
#, no-wrap
msgid "B<--set> I<name path>"
msgstr "B<--set> I<nom chemin>"

#. type: Plain text
#: update-alternatives.8:242
#, fuzzy
#| msgid ""
#| "Set the program I<path> as alternative for I<name.> This is equivalent to "
#| "I<--config> but is non-interactive and thus scriptable."
msgid ""
"Set the program I<path> as alternative for I<name.> This is equivalent to "
"B<--config> but is non-interactive and thus scriptable."
msgstr ""
"Ajoute le programme I<chemin> comme alternative pour I<nom>. C'est "
"équivalent à I<--config> mais ce n'est pas interactif et on peut donc écrire "
"un script."

#. type: TP
#: update-alternatives.8:242
#, no-wrap
msgid "B<--remove> I<name path>"
msgstr "B<--remove> I<nom chemin>"

#. type: Plain text
#: update-alternatives.8:263
msgid ""
"Remove an alternative and all of its associated slave links.  I<name> is a "
"name in the alternatives directory, and I<path> is an absolute filename to "
"which I<name> could be linked. If I<name> is indeed linked to I<path>, "
"I<name> will be updated to point to another appropriate alternative (and the "
"group is put back in automatic mode), or removed if there is no such "
"alternative left.  Associated slave links will be updated or removed, "
"correspondingly.  If the link is not currently pointing to I<path>, no links "
"are changed; only the information about the alternative is removed."
msgstr ""
"Enlève une alternative et tous ses liens secondaires associés. I<nom> est un "
"nom dans le répertoire des « alternatives », et I<chemin> est un nom de "
"fichier auquel I<nom> peut être lié. Quand I<nom> est en effet lié à "
"I<chemin>, I<nom> est mis à jour et pointe vers une autre alternative "
"adéquate ou bien est enlevé s'il n'y en a pas d'autre. De même, les liens "
"secondaires associés sont mis à jour ou enlevés. Quand le lien ne pointe pas "
"déjà sur I<chemin>, aucun lien n'est modifié ; seules les informations sur "
"l'alternative sont supprimées."

#. type: TP
#: update-alternatives.8:263
#, no-wrap
msgid "B<--remove-all> I<name>"
msgstr "B<--remove-all> I<nom>"

#. type: Plain text
#: update-alternatives.8:268
msgid ""
"Remove all alternatives and all of their associated slave links.  I<name> is "
"a name in the alternatives directory."
msgstr ""
"Supprime toutes les alternatives et tous les liens secondaires associés. "
"I<nom> est un nom dans le répertoire des alternatives."

#. type: Plain text
#: update-alternatives.8:275
msgid ""
"Call B<--config> on all alternatives. It can be usefully combined with B<--"
"skip-auto> to review and configure all alternatives which are not configured "
"in automatic mode. Broken alternatives are also displayed.  Thus a simple "
"way to fix all broken alternatives is to call B<yes \\[aq]\\[aq] | update-"
"alternatives --force --all>."
msgstr ""
"Utilise B<--call> sur toutes les alternatives. Cette option peut être "
"combinée avec B<--skip-auto> pour revoir et configurer toutes les "
"alternatives qui ne sont pas en mode automatique. Les alternatives erronées "
"sont aussi affichées. Ainsi, une méthode simple pour corriger les "
"alternatives cassées est d'utiliser B<yes \\[aq]\\[aq] | update-alternatives "
"--force --all>."

#. type: TP
#: update-alternatives.8:275
#, no-wrap
msgid "B<--auto> I<name>"
msgstr "B<--auto> I<nom>"

#. type: Plain text
#: update-alternatives.8:282
msgid ""
"Switch the link group behind the alternative for I<name> to automatic mode.  "
"In the process, the master symlink and its slaves are updated to point to "
"the highest priority installed alternatives."
msgstr ""
"Passe le lien symbolique principal I<nom> en mode automatique. En même "
"temps, le lien symbolique principal et ses liens secondaires sont mis à jour "
"et pointent vers les alternatives avec les priorités les plus élevées."

#. type: TP
#: update-alternatives.8:282
#, no-wrap
msgid "B<--display> I<name>"
msgstr "B<--display> I<nom>"

#. type: Plain text
#: update-alternatives.8:291
msgid ""
"Display information about the link group.  Information displayed includes "
"the group's mode (auto or manual), which alternative the master link "
"currently points to, what other alternatives are available (and their "
"corresponding slave alternatives), and the highest priority alternative "
"currently installed."
msgstr ""
"Affiche des renseignements sur le groupe de liens. L'information affichée "
"comprend le mode du groupe (auto ou manuel), vers quelle alternative le lien "
"symbolique pointe actuellement, quelles autres alternatives sont disponibles "
"(et les liens secondaires associés), et l'alternative actuellement installée "
"qui possède la priorité la plus élevée."

#. type: TP
#: update-alternatives.8:291
#, no-wrap
msgid "B<--get-selections>"
msgstr "B<--get-selections>"

#. type: Plain text
#: update-alternatives.8:299
msgid ""
"List all master alternative names (those controlling a link group)  and "
"their status. Each line contains up to 3 fields (separated by one or more "
"spaces). The first field is the alternative name, the second one is the "
"status (either \"auto\" or \"manual\"), and the last one contains the "
"current choice in the alternative (beware: it's a filename and thus might "
"contain spaces)."
msgstr ""
"Affiche tous les noms principaux d'alternatives (ceux qui contrôlent un "
"groupe de liens) ainsi que leur état. Chaque ligne comporte jusqu'à trois "
"champs (séparés par un ou plusieurs espaces). Le premier est le nom de "
"l'alternative, le second est son état (« auto » ou « manual ») et le dernier "
"montre le choix actuel pour l'alternative (il s'agit d'un nom de fichier, "
"qui peut contenir des espaces)."

#. type: Plain text
#: update-alternatives.8:304
msgid ""
"Read configuration of alternatives on standard input in the format generated "
"by B<update-alternatives --get-selections> and reconfigure them accordingly."
msgstr ""
"Lit la configuration des alternatives sur l'entrée standard, dans le format "
"utilisé par B<update-alternatives --get-selections> et les configure en "
"conséquence."

#. type: TP
#: update-alternatives.8:304
#, no-wrap
msgid "B<--query> I<name>"
msgstr "B<--query> I<nom>"

#. type: Plain text
#: update-alternatives.8:309
msgid ""
"Display information about the link group like --display does, but in a "
"machine parseable way (see section B<QUERY FORMAT> below)."
msgstr ""
"Affiche des informations sur le groupe de liens de manière analogue à --"
"display, mais sous une forme qui peut être analysée automatiquement (voir la "
"section B<FORMAT DE REQUÊTE> ci-dessous)."

#. type: TP
#: update-alternatives.8:309
#, no-wrap
msgid "B<--list> I<name>"
msgstr "B<--list> I<nom>"

#. type: Plain text
#: update-alternatives.8:312
msgid "Display all targets of the link group."
msgstr "Affiche toutes les cibles du groupe de liens."

#. type: TP
#: update-alternatives.8:312
#, no-wrap
msgid "B<--config> I<name>"
msgstr "B<--config> I<nom>"

#. type: Plain text
#: update-alternatives.8:316
msgid ""
"Show available alternatives for a link group and allow the user to "
"interactively select which one to use. The link group is updated."
msgstr ""
"Affiche les alternatives disponibles pour un groupe de liens et permetde "
"choisir interactivement laquelle doit être utilisée. Le groupe de liens est "
"mis à jour."

#. type: TP
#: update-alternatives.8:324
#, no-wrap
msgid "B<--altdir>I< directory>"
msgstr "B<--altdir>I< répertoire>"

#. type: Plain text
#: update-alternatives.8:328
msgid ""
"Specifies the alternatives directory, when this is to be different from the "
"default."
msgstr ""
"Donne le répertoire des alternatives, quand il est différent de celui par "
"défaut."

#. type: Plain text
#: update-alternatives.8:332
msgid ""
"Specifies the administrative directory, when this is to be different from "
"the default."
msgstr ""
"Donne le répertoire administratif, quand il est différent de celui par "
"défaut."

#. type: TP
#: update-alternatives.8:332
#, no-wrap
msgid "B<--log>I< file>"
msgstr "B<--log>I< fichier>"

#. type: Plain text
#: update-alternatives.8:336
msgid ""
"Specifies the log file, when this is to be different from the default (/var/"
"log/alternatives.log)."
msgstr ""
"Indique le fichier journal, pour utiliser un fichier différent du fichier "
"par défaut (/var/log/alternatives.log)."

#. type: Plain text
#: update-alternatives.8:340
#, fuzzy
#| msgid ""
#| "Let B<update-alternatives> replace any real file that is installed where "
#| "an alternative link has to be installed."
msgid ""
"Let B<update-alternatives> replace or drop any real file that is installed "
"where an alternative link has to be installed or removed."
msgstr ""
"Autorise B<update-alternatives> à remplacer tout fichier installé à la place "
"d'un lien d'alternative qui doit être créé."

#. type: TP
#: update-alternatives.8:340
#, no-wrap
msgid "B<--skip-auto>"
msgstr "B<--skip-auto>"

#. type: Plain text
#: update-alternatives.8:345
msgid ""
"Skip configuration prompt for alternatives which are properly configured in "
"automatic mode. This option is only relevant with B<--config> or B<--all>."
msgstr ""
"Passe l'invite de configuration pour les alternatives qui sont correctement "
"configurées en mode automatique. Cette option n'est pertinente qu'avec B<--"
"config> ou B<--all>."

#. type: TP
#: update-alternatives.8:345
#, no-wrap
msgid "B<--verbose>"
msgstr "B<--verbose>"

#. type: Plain text
#: update-alternatives.8:350
msgid "Generate more comments about what B<update-alternatives> is doing."
msgstr "produit plus de commentaires sur ce que fait B<update-alternatives>."

#. type: Plain text
#: update-alternatives.8:353
msgid "Don't generate any comments unless errors occur."
msgstr "Ne crée pas de commentaire à moins qu'une erreur ne survienne."

#. type: Plain text
#: update-alternatives.8:359
msgid ""
"If set and the B<--admindir> option has not been specified, it will be used "
"as the base administrative directory."
msgstr ""

#. type: TP
#: update-alternatives.8:361
#, no-wrap
msgid "I</etc/alternatives/>"
msgstr "I</etc/alternatives/>"

#. type: Plain text
#: update-alternatives.8:367
msgid ""
"The default alternatives directory.  Can be overridden by the B<--altdir> "
"option."
msgstr ""
"Le répertoire des « alternatives » par défaut. Peut être remplacé avec "
"l'option B<--altdir>."

#. type: TP
#: update-alternatives.8:367
#, no-wrap
msgid "I</var/lib/dpkg/alternatives/>"
msgstr "I</var/lib/dpkg/alternatives/>"

#. type: Plain text
#: update-alternatives.8:373
msgid ""
"The default administration directory.  Can be overridden by the B<--"
"admindir> option."
msgstr ""
"Le répertoire administratif par défaut. Peut être remplacé avec l'option B<--"
"admindir>"

#. type: Plain text
#: update-alternatives.8:378
msgid "The requested action was successfully performed."
msgstr "L'action demandée s'est correctement déroulée."

#. type: Plain text
#: update-alternatives.8:382
msgid ""
"Problems were encountered whilst parsing the command line or performing the "
"action."
msgstr ""
"Des problèmes sont survenus lors de l'analyse de la ligne de commande ou "
"bien pendant l'exécution de l'action."

#. type: SH
#: update-alternatives.8:383
#, no-wrap
msgid "QUERY FORMAT"
msgstr "FORMAT DE REQUÊTE"

#. type: Plain text
#: update-alternatives.8:388
#, fuzzy
#| msgid ""
#| "The B<update-alternatives> I<--query> format is using an RFC822-like flat "
#| "format. It's made of I<n> + 1 blocks where I<n> is the number of "
#| "alternatives available in the queried link group. The first block "
#| "contains the following fields:"
msgid ""
"The B<update-alternatives --query> format is using an RFC822-like flat "
"format. It's made of I<n> + 1 blocks where I<n> is the number of "
"alternatives available in the queried link group. The first block contains "
"the following fields:"
msgstr ""
"Le format d'B<update-alternatives> I<--query> est un format à plat de type "
"RFC822. Il est constitué de I<n>+1 blocs où I<n> est le nombre "
"d'alternatives disponibles dans le groupe de liens interrogé. Le premier "
"bloc contient les champs suivants :"

#. type: TP
#: update-alternatives.8:388
#, fuzzy, no-wrap
#| msgid "B<Link:> E<lt>linkE<gt>"
msgid "B<Link:>I< link>"
msgstr "B<Link:> E<lt>lienE<gt>"

#. type: Plain text
#: update-alternatives.8:391
msgid "The generic name of the alternative."
msgstr "Nom générique de l'alternative."

#. type: TP
#: update-alternatives.8:391
#, fuzzy, no-wrap
#| msgid "B<Status:> E<lt>statusE<gt>"
msgid "B<Status:>I< status>"
msgstr "B<Status:> E<lt>étatE<gt>"

#. type: Plain text
#: update-alternatives.8:394
msgid "The status of the alternative (B<auto> or B<manual>)."
msgstr "État de l'alternative (B<auto> ou B<manual>)."

#. type: TP
#: update-alternatives.8:394
#, fuzzy, no-wrap
#| msgid "B<Best:> E<lt>best choiceE<gt>"
msgid "B<Best:>I< best-choice>"
msgstr "B<Best:> E<lt>meilleur choixE<gt>"

#. type: Plain text
#: update-alternatives.8:398
msgid ""
"The path of the best alternative for this link group. Not present if there "
"is no alternatives available."
msgstr ""
"Chemin de la meilleure alternative pour ce groupe de liens. N'est pas "
"présent si aucun alternative n'est disponible."

#. type: TP
#: update-alternatives.8:398
#, fuzzy, no-wrap
#| msgid "B<Value:> E<lt>currently selected alternativeE<gt> "
msgid "B<Value:>I< currently-selected-alternative>"
msgstr "B<Value:> E<lt>alternative actuellement choisieE<gt> "

#. type: Plain text
#: update-alternatives.8:402
msgid ""
"The path of the currently selected alternative. It can also take the magic "
"value B<none>. It is used if the link doesn't exist."
msgstr ""
"Chemin de l'alternative actuellement choisie. Peut aussi prendre la valeur "
"spéciale B<none>, utilisée si le lien n'existe pas."

#. type: TP
#: update-alternatives.8:403
#, no-wrap
msgid "The other blocks describe the available alternatives in the queried link group:"
msgstr "Les autres blocs décrivent les alternatives disponibles dans le groupe de liens interrogé."

#. type: TP
#: update-alternatives.8:405
#, fuzzy, no-wrap
#| msgid "B<Alternative:> E<lt>path of this alternativeE<gt>"
msgid "B<Alternative:>I< path-of-this-alternative>"
msgstr "B<Alternative:> E<lt>chemin de cette alternativeE<gt>"

#. type: Plain text
#: update-alternatives.8:408
msgid "Path to this block's alternative."
msgstr "Chemin vers l'alternative de ce bloc"

#. type: TP
#: update-alternatives.8:408
#, fuzzy, no-wrap
#| msgid "B<Priority:> E<lt>priority valueE<gt>"
msgid "B<Priority:>I< priority-value>"
msgstr "B<Priority:> E<lt>valeur de la prioritéE<gt>"

#. type: Plain text
#: update-alternatives.8:411
msgid "Value of the priority of this alternative."
msgstr "Valeur de la priorité alternative."

#. type: TP
#: update-alternatives.8:411
#, fuzzy, no-wrap
#| msgid "B<Slaves:> E<lt>list of slavesE<gt>"
msgid "B<Slaves:>I< list-of-slaves>"
msgstr "B<Replaces:> E<lt>liste des liens secondairesE<gt>"

#. type: Plain text
#: update-alternatives.8:417
msgid ""
"When this header is present, the B<next> lines hold all slave alternatives "
"associated to the master link of the alternative. There is one slave per "
"line. Each line contains one space, the generic name of the slave "
"alternative, another space, and the path to the slave alternative."
msgstr ""
"Lorsque cet en-tête est présent, la ligne suivante contient toutes les "
"alternatives secondaires associées au lien principal de cette alternative, à "
"raison d'une alternative secondaire par ligne. Chaque ligne comporte un "
"espace, le nom de l'alternative secondaire, un espace et le chemin vers "
"l'alternative secondaire."

#. type: TP
#: update-alternatives.8:418
#, no-wrap
msgid "B<Example>"
msgstr "B<Exemple>"

#. type: Plain text
#: update-alternatives.8:426
#, no-wrap
msgid ""
"$ update-alternatives --query editor\n"
"Link: editor\n"
"Status: auto\n"
"Best: /usr/bin/vim.gtk\n"
"Value: /usr/bin/vim.gtk\n"
msgstr ""
"$ update-alternatives --query editor\n"
"Link: editor\n"
"Status: auto\n"
"Best: /usr/bin/vim.gtk\n"
"Value: /usr/bin/vim.gtk\n"

#. type: Plain text
#: update-alternatives.8:431
#, no-wrap
msgid ""
"Alternative: /bin/ed\n"
"Priority: -100\n"
"Slaves:\n"
" editor.1.gz /usr/share/man/man1/ed.1.gz\n"
msgstr ""
"Alternative: /bin/ed\n"
"Priority: -100\n"
"Slaves:\n"
" editor.1.gz /usr/share/man/man1/ed.1.gz\n"

#. type: Plain text
#: update-alternatives.8:446
#, no-wrap
msgid ""
"Alternative: /usr/bin/vim.gtk\n"
"Priority: 50\n"
"Slaves:\n"
" editor.1.gz /usr/share/man/man1/vim.1.gz\n"
" editor.ru.1.gz /usr/share/man/ru/man1/vim.1.gz\n"
" editor.pl.ISO8859-2.1.gz /usr/share/man/pl.ISO8859-2/man1/vim.1.gz\n"
" editor.it.ISO8859-1.1.gz /usr/share/man/it.ISO8859-1/man1/vim.1.gz\n"
" editor.pl.UTF-8.1.gz /usr/share/man/pl.UTF-8/man1/vim.1.gz\n"
" editor.it.1.gz /usr/share/man/it/man1/vim.1.gz\n"
" editor.fr.UTF-8.1.gz /usr/share/man/fr.UTF-8/man1/vim.1.gz\n"
" editor.fr.1.gz /usr/share/man/fr/man1/vim.1.gz\n"
" editor.it.UTF-8.1.gz /usr/share/man/it.UTF-8/man1/vim.1.gz\n"
" editor.pl.1.gz /usr/share/man/pl/man1/vim.1.gz\n"
" editor.fr.ISO8859-1.1.gz /usr/share/man/fr.ISO8859-1/man1/vim.1.gz\n"
msgstr ""
"Alternative: /usr/bin/vim.gtk\n"
"Priority: 50\n"
"Slaves:\n"
" editor.1.gz /usr/share/man/man1/vim.1.gz\n"
" editor.ru.1.gz /usr/share/man/ru/man1/vim.1.gz\n"
" editor.pl.ISO8859-2.1.gz /usr/share/man/pl.ISO8859-2/man1/vim.1.gz\n"
" editor.it.ISO8859-1.1.gz /usr/share/man/it.ISO8859-1/man1/vim.1.gz\n"
" editor.pl.UTF-8.1.gz /usr/share/man/pl.UTF-8/man1/vim.1.gz\n"
" editor.it.1.gz /usr/share/man/it/man1/vim.1.gz\n"
" editor.fr.UTF-8.1.gz /usr/share/man/fr.UTF-8/man1/vim.1.gz\n"
" editor.fr.1.gz /usr/share/man/fr/man1/vim.1.gz\n"
" editor.it.UTF-8.1.gz /usr/share/man/it.UTF-8/man1/vim.1.gz\n"
" editor.pl.1.gz /usr/share/man/pl/man1/vim.1.gz\n"
" editor.fr.ISO8859-1.1.gz /usr/share/man/fr.ISO8859-1/man1/vim.1.gz\n"

#. type: Plain text
#: update-alternatives.8:458
#, fuzzy
#| msgid ""
#| "With I<--verbose> B<update-alternatives> chatters incessantly about its "
#| "activities on its standard output channel.  If problems occur, B<update-"
#| "alternatives> outputs error messages on its standard error channel and "
#| "returns an exit status of 2.  These diagnostics should be self-"
#| "explanatory; if you do not find them so, please report this as a bug."
msgid ""
"With B<--verbose> B<update-alternatives> chatters incessantly about its "
"activities on its standard output channel.  If problems occur, B<update-"
"alternatives> outputs error messages on its standard error channel and "
"returns an exit status of 2.  These diagnostics should be self-explanatory; "
"if you do not find them so, please report this as a bug."
msgstr ""
"Avec l'option I<--verbose>, B<update-alternatives> affiche de très "
"nombreuses informations sur la sortie standard. Quand un problème survient, "
"B<update-alternatives> envoie des messages d'erreur sur la sortie d'erreur "
"standard et retourne un état de sortie égal à 2. Ces diagnostics devraient "
"être simples à comprendre ; si ce n'est pas le cas, veuillez envoyer un "
"rapport de bogue."

#. type: Plain text
#: update-alternatives.8:464
msgid ""
"There are several packages which provide a text editor compatible with "
"B<vi>, for example B<nvi> and B<vim>. Which one is used is controlled by the "
"link group B<vi>, which includes links for the program itself and the "
"associated manpage."
msgstr ""
"Plusieurs paquets fournissent un éditeur de texte compatible avec B<vi>, par "
"exemple B<nvi> et B<vim>. Celui qui sera utilisé est déterminé par le groupe "
"de liens B<vi>, qui comprend des liens pour le programme lui-même et sa page "
"de manuel."

#. type: Plain text
#: update-alternatives.8:467
#, fuzzy
#| msgid ""
#| "To display the available packages which provide B<vi> and the current "
#| "setting for it, use the I<--display> action:"
msgid ""
"To display the available packages which provide B<vi> and the current "
"setting for it, use the B<--display> action:"
msgstr ""
"Pour afficher les paquets disponibles qui fournissent B<vi> et son "
"paramétrage actuel, on peut utiliser l'action I<--display> :"

#. type: Plain text
#: update-alternatives.8:470
msgid "B<update-alternatives --display vi>"
msgstr "B<update-alternatives --display vi>"

#. type: Plain text
#: update-alternatives.8:474
msgid ""
"To choose a particular B<vi> implementation, use this command as root and "
"then select a number from the list:"
msgstr ""
"Pour choisir une implémentation particulière de B<vi> on peut utiliser cette "
"commande en tant que superutilisateur et choisir un nombre dans la liste :"

#. type: Plain text
#: update-alternatives.8:477
msgid "B<update-alternatives --config vi>"
msgstr "B<update-alternatives --config vi>"

#. type: Plain text
#: update-alternatives.8:481
msgid ""
"To go back to having the B<vi> implementation chosen automatically, do this "
"as root:"
msgstr ""
"Pour retrouver l'implémentation par défaut de B<vi> on peut utiliser cette "
"commande en tant que super-utilisateur :"

#. type: Plain text
#: update-alternatives.8:484
msgid "B<update-alternatives --auto vi>"
msgstr "B<update-alternatives --auto vi>"

#. type: Plain text
#: update-alternatives.8:488
msgid ""
"If you find a bug, please report it using the Debian bug-tracking system."
msgstr ""
"Si vous trouvez un bogue, veuillez le signaler au système de suivi des "
"bogues de Debian."

#. type: Plain text
#: update-alternatives.8:493
msgid ""
"If you find any discrepancy between the operation of B<update-alternatives> "
"and this manual page, it is a bug, either in the implementation or the "
"documentation; please report it."
msgstr ""
"Si vous trouvez une discordance entre l'action de B<update-alternatives> et "
"cette page de manuel, c'est qu'il y a un bogue, soit dans l'implémentation "
"soit dans la documentation ; faites un rapport."

#. type: Plain text
#: update-alternatives.8:504
msgid ""
"This manual page is copyright 1997,1998 Charles Briscoe-Smith and others."
msgstr ""
"Cette page de manuel est copyright 1997, 1998 Charles Briscoe-Smith et "
"autres auteurs."

#. type: Plain text
#: update-alternatives.8:507
msgid ""
"This is free documentation; see the GNU General Public Licence version 2 or "
"later for copying conditions. There is NO WARRANTY."
msgstr ""
"Cette documentation est libre ; voyez la « GNU General Public Licence » "
"version 2 ou supérieure pour le copyright. Il n'y a PAS de garantie."

#. type: Plain text
#: update-alternatives.8:510
msgid "B<ln>(1), FHS, the Filesystem Hierarchy Standard."
msgstr "B<ln>(1), FHS, le standard pour l'organisation du système de fichiers."

#~ msgid "2009-02-27"
#~ msgstr "27-02-2009"

#~ msgid "2011-04-29"
#~ msgstr "29-04-2011"

#~ msgid "2006-02-28"
#~ msgstr "28-02-2006"

#~ msgid "2007-03-07"
#~ msgstr "07-03-2007"

#~ msgid "2007-07-16"
#~ msgstr "16-07-2007"

#~ msgid "2009-03-15"
#~ msgstr "15-03-2009"

#, fuzzy
#~| msgid "2009-02-27"
#~ msgid "2011-04-27"
#~ msgstr "27-02-2009"

#, fuzzy
#~| msgid "2009-02-27"
#~ msgid "2011-07-07"
#~ msgstr "27-02-2009"

#~ msgid "2010-04-18"
#~ msgstr "18-04-2010"

#~ msgid "B<Build-Features:>I< features-list>"
#~ msgstr "B<Build-Features:>I< liste de fonctionnalités>"

#~ msgid ""
#~ "A comma-separated list of names of build-time features that are supported "
#~ "by the source package. Currently, the only supported feature is B<build-"
#~ "arch>. It allows dpkg-buildpackage to call the I<build-arch> or I<build-"
#~ "indep> targets in place of I<build>."
#~ msgstr ""
#~ "donne la liste des noms des fonctionnalités qui sont gérées par le paquet "
#~ "source. À ce jour, la seule fonctionnalité gérée est B<build-arch>. Elle "
#~ "permet à dpkg-buildpackage d'utiliser les cibles I<build-arch> ou I<build-"
#~ "indep> à la place de I<build>"

#, fuzzy
#~| msgid "User configuration file."
#~ msgid "Package maintainer configuration file."
#~ msgstr "Fichier de configuration propre à l'utilisateur"

#~ msgid "2010-07-29"
#~ msgstr "29-07-2010"

#~ msgid "B<Package:> E<lt>package nameE<gt>"
#~ msgstr "B<Package:> E<lt>nom du paquetE<gt>"

#, fuzzy
#~| msgid "2007-11-22"
#~ msgid "2010-11-22"
#~ msgstr "22-11-2007"

#, fuzzy
#~| msgid "B<Source:> E<lt>source nameE<gt>"
#~ msgid "B<Multi-Arch:> E<lt>same|foreign|allowedE<gt> "
#~ msgstr "B<Source:> E<lt>nom du sourceE<gt>"

#~ msgid "2010-01-28"
#~ msgstr "28-01-2010"

#~ msgid ""
#~ "The first member is named B<debian-split> and contains a series of lines, "
#~ "separated by newlines. Currently seven lines are present.  The first is "
#~ "the format version number, B<2.1> at the time this manual page was "
#~ "written. The second is the package name. The third is the package "
#~ "version. The fourth is the md5sum of the package.  The fifth is the total "
#~ "size of the package. The sixth is the maximum part size. The seventh is "
#~ "the current part number, followed by a slash and the total amount of "
#~ "parts (as in \\(oq1/10\\(cq)."
#~ msgstr ""
#~ "Le premier membre est nommé B<debian-split> et contient une succession de "
#~ "lignes, séparées par des retours-chariot. Pour le moment, sept lignes "
#~ "sont présentes. La première est le numéro de version du format, B<2.1> à "
#~ "l'heure où ce document a été écrit. Le second est le nom du paquet. Le "
#~ "troisième est la version du paquet. Le quatrième est la somme MD5 du "
#~ "paquet. Le cinquième est la taille totale du paquet. Le sixième est la "
#~ "taille maximale d'une partie. Le septième est le numéro d'ordre de la "
#~ "partie concernée, suivi du caractère « / » et du nombre total de parties "
#~ "(de le forme \\(oq1/10\\(cq)."

#~ msgid "2008-08-18"
#~ msgstr "18-08-2008"

#~ msgid ""
#~ "B<dpkg> can also be used as a front-end to B<dpkg-deb>(1).  The following "
#~ "are B<dpkg-deb> actions, and if they are encountered, B<dpkg> just runs "
#~ "B<dpkg-deb> with the parameters given to it:"
#~ msgstr ""
#~ "On peut aussi utiliser B<dpkg> comme une interface à B<dpkg-deb>(1). "
#~ "Quand B<dpkg> rencontre les actions suivantes, qui sont des actions de "
#~ "B<dpkg-deb>, il lance simplement B<dpkg-deb> avec les paramètres qui lui "
#~ "ont été fournis :"

#~ msgid ""
#~ "    B<-b>, B<--build>,\n"
#~ "    B<-c>, B<--contents>,\n"
#~ "    B<-I>, B<--info>,\n"
#~ "    B<-f>, B<--field>,\n"
#~ "    B<-e>, B<--control>,\n"
#~ "    B<-x>, B<--extract>,\n"
#~ "    B<-X>, B<--vextract>, and\n"
#~ "    B<--fsys-tarfile>.\n"
#~ msgstr ""
#~ "    B<-b>, B<--build>,\n"
#~ "    B<-c>, B<--contents>,\n"
#~ "    B<-I>, B<--info>,\n"
#~ "    B<-f>, B<--field>,\n"
#~ "    B<-e>, B<--control>,\n"
#~ "    B<-x>, B<--extract>,\n"
#~ "    B<-X>, B<--vextract>, et\n"
#~ "    B<--fsys-tarfile>.\n"

#~ msgid "Please refer to B<dpkg-deb>(1) for information about these actions."
#~ msgstr ""
#~ "Voyez B<dpkg-deb>(1) pour des renseignements supplémentaires sur ces "
#~ "actions."

#~ msgid "B<--new>, B<--old>"
#~ msgstr "B<--new>, B<--old>"

#~ msgid ""
#~ "Select new or old binary package format. This is a B<dpkg-deb>(1)  option."
#~ msgstr ""
#~ "Sélectionne soit l'ancien format des paquet binaires, soit le nouveau. "
#~ "C'est une option de B<dpkg-deb>(1)."

#~ msgid ""
#~ "Don't read or check contents of control file while building a package.  "
#~ "This is a B<dpkg-deb>(1) option."
#~ msgstr ""
#~ "Ne pas lire ni vérifier le contenu du fichier de contrôle pendant la "
#~ "construction d'un paquet. C'est une option de B<dpkg-deb>(1)."

#~ msgid "2009-08-15"
#~ msgstr "15-08-2009"

#~ msgid "Compiler flags"
#~ msgstr "Drapeaux de compilation"

#~ msgid ""
#~ "The B<CFLAGS>, B<CXXFLAGS>, B<FFLAGS>, B<CPPFLAGS> and B<LDFLAGS> "
#~ "environment variables are set to the values that B<dpkg-buildflags> "
#~ "returned. See its manual page for more information."
#~ msgstr ""
#~ "Les variables d'environnement B<CFLAGS>, B<CXXFLAGS>, B<FFLAGS>, "
#~ "B<CPPFLAGS> et B<LDFLAGS> prennent les valeurs renvoyées par B<dpkg-"
#~ "buildflags>. Veuillez consulter la page de manuel de ce programme pour "
#~ "plus d'informations."

#~ msgid "2009-11-21"
#~ msgstr "21-11-2009"

#~ msgid "2010-03-07"
#~ msgstr "07-03-2010"

#, fuzzy
#~| msgid "2010-10-10"
#~ msgid "2010-10-12"
#~ msgstr "10-10-2010"

#~ msgid "2009-08-07"
#~ msgstr "07-08-2009"

#~ msgid "2010-04-16"
#~ msgstr "16-04-2010"

#~ msgid "2009-05-19"
#~ msgstr "19-05-2009"

#~ msgid "0"
#~ msgstr "0"

#~ msgid "1"
#~ msgstr "1"

#~ msgid "2009-10-01"
#~ msgstr "01-10-2009"

#~ msgid "2009-06-26"
#~ msgstr "26-06-2009"

#~ msgid ""
#~ "B<dpkg-split> uses some rather out-of-date conventions for the the "
#~ "filenames of Debian packages."
#~ msgstr ""
#~ "B<dpkg-split> utilise des conventions plutôt périmées pour les noms des "
#~ "paquets Debian."

#~ msgid ""
#~ "The architecture is not represented in the part files' header, only in "
#~ "the control information of the contained binary package file, and it is "
#~ "not present in the filenames generated."
#~ msgstr ""
#~ "L'architecture n'est pas indiquée dans l'en-tête des fichiers ; elle "
#~ "l'est seulement dans les informations de contrôle du paquet binaire ; et "
#~ "elle n'est pas présente dans les fichiers produits."

#~ msgid "2009-05-10"
#~ msgstr "10-05-2009"

#~ msgid ""
#~ "B<dselect> [B<--admindir> I<E<lt>directoryE<gt>>] [B<--help>] [B<--"
#~ "version>] [B<--expert>] [B<--debug>|B<-D>I<E<lt>fileE<gt>>] "
#~ "[I<E<lt>actionE<gt>>] [B<--colour>|B<--color> I<screenpart:>"
#~ "[I<foreground>],[I<background>][I<:attr>[I<+attr+..>]]]"
#~ msgstr ""
#~ "B<dselect> [B<--admindir> I<E<lt>répertoireE<gt>>] [B<--help>] [B<--"
#~ "version>] [B<--expert>] [B<--debug>|B<-D>I<E<lt>fichierE<gt>>] "
#~ "[I<E<lt>actionE<gt>>] [B<--colour>|B<--color> I<partie-écran:>[I<avant-"
#~ "plan>],[I<arrière-plan>][I<:attr>[I<+attr+..>]]]"

#~ msgid "B<--admindir>I< E<lt>directoryE<gt>>"
#~ msgstr "B<--admindir>I< E<lt>répertoireE<gt>>"

#~ msgid "USAGE"
#~ msgstr "UTILISATION"

#~ msgid ""
#~ "B<start-stop-daemon> returns 0 if the requested action was performed, or "
#~ "if B<--oknodo> is specified and either B<--start> was specified and a "
#~ "matching process was already running, or B<--stop> was specified and "
#~ "there were no matching processes. If B<--oknodo> was not specified and "
#~ "nothing was done, 1 is returned. If B<--stop> and B<--retry> were "
#~ "specified, but the end of the schedule was reached and the processes were "
#~ "still running, the error value is 2. For all other errors, the status is "
#~ "3."
#~ msgstr ""
#~ "B<start-stop-daemon> renvoie 0 si l'action demandée a été effectuée, ou "
#~ "si B<--oknodo> est spécifié et aussi si B<--start> a été spécifié et "
#~ "qu'un processus de comparaison est déjà en cours d'exécution, ou si B<--"
#~ "stop> a été spécifié et qu'il n'y avait pas de processus correspondant. "
#~ "Si B<--oknodo> n'a pas été spécifié et rien n'a été fait, alors 1 est "
#~ "retourné. Si B<--stop> et B<--retry> ont été précisés, mais que "
#~ "l'ordonnanceur a atteint la fin du calendrier en ayant toujours le "
#~ "processus en cours d'exécution, la valeur d'erreur est 2. Pour toutes les "
#~ "autres erreurs, l'état est 3."

#~ msgid "2"
#~ msgstr "2"

#~ msgid ""
#~ "An error occurred. Unfortunately at the time of writing I<extended-error-"
#~ "message> can contain newlines, although in locales where the translators "
#~ "have not made mistakes every newline is followed by at least one space."
#~ msgstr ""
#~ "Une erreur s'est produite. Malheureusement, lors de l'écriture il se "
#~ "trouve que I<message-d'erreur-complet> peut contenir des retour à la "
#~ "ligne, alors que dans les locales où les traducteurs n'ont pas fait "
#~ "d'erreurs, chaque nouvelle ligne est suivie par au moins une espace."

#~ msgid "2009-03-08"
#~ msgstr "08-03-2009"

#~ msgid "I<admindir>/info/I<package>.symbols"
#~ msgstr "I<admindir>/info/I<paquet>.symbols"

#~ msgid "I<admindir>/info/I<package>.shlibs"
#~ msgstr "I<admindir>/info/I<paquet>.shlibs"

#~ msgid "2009-11-11"
#~ msgstr "11-11-2009"

#~ msgid "2009-02-26"
#~ msgstr "26-02-2009"

#~ msgid "2009-04-13"
#~ msgstr "13-04-2009"

#~ msgid "2007-10-08"
#~ msgstr "08-10-2007"

#, fuzzy
#~| msgid ""
#~| "Defined by B<dpkg> on the maintainer script environment to the version "
#~| "of the currently running B<dpkg> instance."
#~ msgid ""
#~ "Defined by B<dpkg> on the maintainer script environment to the private "
#~ "library directory of the currently running B<dpkg> instance."
#~ msgstr ""
#~ "Définie par B<dpkg> dans l'environnement du script du responsable, cette "
#~ "variable contient la version de l'instance de B<dpkg> en cours "
#~ "d'exécution."

#, fuzzy
#~| msgid "2009-04-13"
#~ msgid "2010-04-11"
#~ msgstr "13-04-2009"

#~ msgid "Format: 3.0 (git) and 3.0 (bzr)"
#~ msgstr "Format: 3.0 (git) et 3.0 (bzr)"

#~ msgid ""
#~ "I<priority> and I<section> place the package within the release tree; "
#~ "these ought not to be found in the control file. If the package is found "
#~ "in a subdirectory of I<binarydir>, that will be checked against "
#~ "I<section>."
#~ msgstr ""
#~ "Les éléments I<priorité> et I<section> placent le paquet dans "
#~ "l'arborescence ; on ne devrait pas les trouver dans le fichier "
#~ "« control ». Quand le paquet se trouve dans un sous-répertoire de I<rep-"
#~ "de-binaires,> on le compare avec le contenu de I<section>."

#~ msgid ""
#~ "If the host architecture differs from the build architecture (as is the "
#~ "case for a cross-compilation), and if the environment variable "
#~ "B<PKG_CONFIG_LIBDIR> is not set, then it is set to a value suitable for "
#~ "cross-compilation (\"/usr/I<gnu-system-type>/lib/pkgconfig/:/usr/share/"
#~ "pkgconfig\")."
#~ msgstr ""
#~ "Si l'architecture de l'hôte est différente de l'architecture construite "
#~ "(comme c'est le cas lors de compilation croisée) et si la variable "
#~ "d'environnement B<PKG_CONFIG_LIBDIR> n'est pas renseignée, alors elle est "
#~ "positionnée à une valeur adaptée à la compilation croisée (\"/usr/I<selon-"
#~ "système-gnu>/lib/pkgconfig/:/usr/share/pkgconfig\")."

#~ msgid ""
#~ "Some environment variables defining compiler and linker options are set "
#~ "to default values unless already present in the environment. Note that "
#~ "this mechanism was only introduced in version 1.14.17 of dpkg-dev and not "
#~ "all I<rules> files and build tools will honour these variables, yet."
#~ msgstr ""
#~ "Certaines variables d'environnement qui définissent les options du "
#~ "compilateur et de l'éditeur de lien sont réglés par défaut sauf si elles "
#~ "ont déjà été fixées dans l'environnement. Veuillez noter que ce mécanisme "
#~ "n'a été mis en place qu'à partir de la version 1.14.17 de dpkg-dev et que "
#~ "tous les fichiers I<rules> et les outils de construction n'utilisent pas "
#~ "encore ces variables."

#~ msgid ""
#~ "Optimization options which are passed to the Debian build system and can/"
#~ "should be overridden by the package build if needed (default value: B<-g -"
#~ "O2>, or B<-g\\ -O0> if B<noopt> is specified in DEB_BUILD_OPTIONS). "
#~ "Overriding options can be used to explicitly set a higher optimization "
#~ "level, or work around compiler bugs, which only can be seen with some "
#~ "optimization levels (the last opt level \"wins\")."
#~ msgstr ""
#~ "Les options d'optimisation qui sont passées au système de construction "
#~ "Debian et qui peuvent être remplacées par le générateur de paquet si "
#~ "besoin (valeur par défaut : B<-g\\ -O2>, ou B<-g\\ -O0> si B<noopt> est "
#~ "indiqué dans DEB_BUILD_OPTIONS). Remplacer ces options peut être utilisé "
#~ "pour fixer un niveau d'optimisation plus élevé, ou plus de travail dans "
#~ "la recherche de bogues, qui ne peuvent être détectés qu'avec certains "
#~ "niveaux d'optimisation (le dernier niveau d'optimisation \"gagne\")."

#~ msgid "B<CFLAGS_APPEND>"
#~ msgstr "B<CFLAGS_APPEND>"

#~ msgid ""
#~ "Optimization options appended to the compiler flags, which must not be "
#~ "overwritten by the package (mostly used to for test builds). Default "
#~ "value: empty."
#~ msgstr ""
#~ "Les options d'optimisation passées sur les drapeaux du compilateur, qui "
#~ "ne doivent pas être remplacé par ceux du paquet (le plus souvent utilisé "
#~ "pour faire des tests de construction). Valeur par défaut : aucune."

#~ msgid "Same as B<CFLAGS> for C++ sources."
#~ msgstr "Identique à B<CFLAGS> pour des sources en C++."

#~ msgid "B<CXXFLAGS_APPEND>"
#~ msgstr "B<CXXFLAGS_APPEND>"

#~ msgid "Same as B<CFLAGS_APPEND> for C++ sources."
#~ msgstr "Identique à B<CFLAGS_APPEND> pour des sources en C++."

#~ msgid "Same as B<CFLAGS> for Fortran sources."
#~ msgstr "Identique à B<CFLAGS> pour des sources en Fortran."

#~ msgid "B<FFLAGS_APPEND>"
#~ msgstr "B<FFLAGS_APPEND>"

#~ msgid "Same as B<CFLAGS_APPEND> for Fortran sources."
#~ msgstr "identique à B<CFLAGS_APPEND> pour des sources en Fortran."

#~ msgid ""
#~ "Preprocessor flags which are passed to the Debian build system and can/"
#~ "should be overridden by the package build if needed (default: empty). "
#~ "This macro is seldom used (most build systems just use B<CFLAGS> instead "
#~ "of B<CPPFLAGS>)."
#~ msgstr ""
#~ "Les drapeaux du préprocesseur qui sont passés au système de construction "
#~ "Debian peuvent être remplacés par ceux du paquet en construction si "
#~ "besoin (par défaut : aucun). Cette macro est rarement utilisée (la "
#~ "plupart des systèmes de construction utilisent simplement B<CFLAGS> au "
#~ "lieu de B<CPPFLAGS>)."

#~ msgid "B<CPPFLAGS_APPEND>"
#~ msgstr "B<CPPFLAGS_APPEND>"

#~ msgid ""
#~ "Preprocessor flags appended to the preprocessor flags, which must not be "
#~ "overwritten by the package (mostly used to for test builds). Default "
#~ "value: empty."
#~ msgstr ""
#~ "Drapeaux du préprocesseur liés à ceux de ce dernier, qui ne doivent pas "
#~ "être remplacés par ceux du paquet (le plus souvent utilisé pour des tests "
#~ "de construction). Valeur par défaut : aucuns."

#~ msgid "B<LDFLAGS_APPEND>"
#~ msgstr "B<LDFLAGS_APPEND>"

#~ msgid ""
#~ "Optimization options appended to the compiler flags when linking code, "
#~ "which must not be overwritten by the package (mostly used to for test "
#~ "builds). Default value: empty."
#~ msgstr ""
#~ "Options d'optimisation passées par les drapeaux du compilateur durant la "
#~ "phase de liaison, qui ne doivent pas être remplacés par ceux du paquet "
#~ "(le plus souvent utilisé pour des tests de construction). Valeur par "
#~ "défaut : aucunes."

#~ msgid "include all changes."
#~ msgstr "inclut tous les changements."

#~ msgid "2009-11-12"
#~ msgstr "12-11-2009"

#~ msgid "B<--licence>, B<--license>"
#~ msgstr "B<--licence>, B<--license>"

#~ msgid "Display B<dpkg> licence."
#~ msgstr "Affiche la licence de B<dpkg>."

#~ msgid "ENVIRONMENT VARIABLES"
#~ msgstr "VARIABLES D'ENVIRONNEMENT"

#~ msgid "B<DPKG_NO_TSTP>"
#~ msgstr "B<DPKG_NO_TSTP>"

#~ msgid ""
#~ "Define this to something if you prefer B<dpkg> starting a new shell "
#~ "rather than suspending itself, while doing a shell escape."
#~ msgstr ""
#~ "Donnez lui une valeur si vous préférez que B<dpkg> lance un nouvel "
#~ "interpréteur de commandes plutôt que de s'interrompre, pour faire un "
#~ "appel à l'interpréteur de commandes."

#~ msgid "2009-06-13"
#~ msgstr "13-06-2009"

#~ msgid "2009-01-07"
#~ msgstr "07-01-2009"

#~ msgid "B<--license>, B<--licence>"
#~ msgstr "B<--license>, B<--licence>"

#~ msgid "Show the copyright licensing terms and exit."
#~ msgstr ""
#~ "Affiche des renseignements sur le copyright et la licence, puis quitte."

#~ msgid ""
#~ "Read substitution variables in I<substvarsfile>; the default is B<debian/"
#~ "substvars>."
#~ msgstr ""
#~ "Lire les variables de substitution dans I<fichier/substvars> ; le fichier "
#~ "par défaut est B<debian/substvars>."

#~ msgid "B<-l>, B<--license>"
#~ msgstr "B<-l>, B<--license>"

#~ msgid "2009-09-06"
#~ msgstr "06-09-2009"

#~ msgid "B<-I>[I<file-pattern>]"
#~ msgstr "B<-I>[I<motif-de-fichier>]"

#~ msgid "2009-08-20"
#~ msgstr "20-08-2009"

#~ msgid "B<--licence>|B<--license>"
#~ msgstr "B<--licence>|B<--license>"

#~ msgid ""
#~ "Displays the B<dselect> copyright and license information and exits "
#~ "successfully."
#~ msgstr ""
#~ "Affiche les informations sur le copyright et sur la licence de "
#~ "B<dselect>, puis se termine normalement."

#~ msgid "B<-h>"
#~ msgstr "B<-h>"

#~ msgid "B<--without-quilt>"
#~ msgstr "B<--without-quilt>"

#~ msgid ""
#~ "Don't use quilt to apply patches but dpkg-source's own code. It won't be "
#~ "possible to use quilt directly on the unpacked directory but it will be "
#~ "free of quilt's temporary files as well."
#~ msgstr ""
#~ "Ne pas utiliser « quilt » afin d'appliquer des correctifs, mais le code "
#~ "même de dpkg-source. Il ne sera pas possible d'utiliser directement "
#~ "« quilt » sur le répertoire dépaqueté mais il sera libre d'en faire usage "
#~ "sur les fichiers temporaires."

#~ msgid "2008-04-09"
#~ msgstr "09-04-2008"

#~ msgid "2007-03-06"
#~ msgstr "06-03-2007"

#~ msgid "2007-06-12"
#~ msgstr "12-06-2007"

#~ msgid "B<-Z>I<compression>"
#~ msgstr "B<-Z>I<compression>"

#~ msgid "B<-z>I<level>"
#~ msgstr "B<-z>I<niveau>"

#~ msgid "2009-01-04"
#~ msgstr "04-01-2009"

#~ msgid "2009-02-18"
#~ msgstr "18-02-2009"

#~ msgid "Forget about uninstalled unavailable packages."
#~ msgstr ""
#~ "Oublie ce qui concerne les paquets non installés ou non disponibles."

#~ msgid "install-info"
#~ msgstr "install-info"

#~ msgid "install-info - create or update entry in Info dir file"
#~ msgstr ""
#~ "install-info - Création ou mise à jour d'une entrée dans le fichier dir "
#~ "du système Info."

#~ msgid ""
#~ "B<install-info> [B<--version>] [B<--help>] [B<--debug>] [B<--"
#~ "maxwidth=>I<nnn>] [B<--section >I<regexp>B< >I<title>] [B<--"
#~ "infodir=>I<xxx>] [B<--align=>I<nnn>] [B<--quiet>] [B<--menuentry=>I<xxx>] "
#~ "[B<--description=>I<xxx>] [B<--remove>|B<--remove-exactly>] [B<-->] "
#~ "I<filename>"
#~ msgstr ""
#~ "B<install-info> [B<--version>] [B<--help>] [B<--debug>] [B<--"
#~ "maxwidth=nnn>] [B<--section >I<regexp>B< >I<title>] [B<--infodir=>I<xxx>] "
#~ "[B<--align=>I<nnn>] [B<--quiet>] [B<--menuentry=>I<xxx>] [B<--"
#~ "description=>I<xxx>] [B<--remove>|B<--remove-exactly>] [B<-->] I<fichier>"

#~ msgid ""
#~ "B<install-info> creates, updates or removes entries in the Info B<dir> "
#~ "file. When updating or creating entries, if no description is specified "
#~ "on the command line or in the Info file, it attempts to guess a "
#~ "description from the contents of the file."
#~ msgstr ""
#~ "B<install-info> crée, met à jour ou supprime des entrées dans le fichier "
#~ "B<dir> d'Info. Quand, pour la création ou la mise à jour d'une entrée, on "
#~ "ne donne aucune description sur la ligne de commande ou dans le fichier "
#~ "Info, B<install-info> essaie d'en deviner une à travers le contenu du "
#~ "fichier."

#~ msgid ""
#~ "See the description of the B<--section> option for details of where the "
#~ "entry will be placed and a description of the expected format of the "
#~ "B<dir> file."
#~ msgstr ""
#~ "Voyez la description de l'option B<--section> pour des précisions sur "
#~ "l'emplacement choisi pour l'entrée et sur le format attendu du fichier "
#~ "B<dir.>"

#~ msgid "B<[--] >I<filename>"
#~ msgstr "B<[--] >I<nom-de-fichier>"

#~ msgid ""
#~ "Gives the filename of the Info file whose menu entry is to be created, "
#~ "updated or removed. If B<--remove-exactly> is specified, then I<filename> "
#~ "should be the exact entry name to be removed (e.g. \"emacs-20/emacs\" or "
#~ "\"gcc\"), otherwise the basename of this filename is used as the referent "
#~ "of the menu entry which is created, unless there's an overriding START-"
#~ "INFO-DIR entry inside the given file. This file must therefore exist (or "
#~ "be about to be installed, or have previously existed when removing an "
#~ "entry) in the same directory as the B<dir> file (see the B<--infodir> "
#~ "option)."
#~ msgstr ""
#~ "Donne le nom du fichier Info dont l'entrée de menu doit être créée, mise "
#~ "à jour ou supprimée. Si l'option B<--remove-exactly> est précisée, "
#~ "I<fichier> sera le nom exact de l'entrée à supprimer (p. ex. « emacs-20/"
#~ "emacs » ou « gcc ») ; dans les autres cas, la partie principale de ce nom "
#~ "sert de référent pour l'entrée de menu qui est créée, à moins qu'il y "
#~ "ait, dans le fichier donné, une entrée START-INFO-DIR. Ce fichier doit "
#~ "donc exister (ou bien être sur le point d'être installé, ou bien doit "
#~ "avoir existé en cas de suppression d'entrée) dans le même répertoire que "
#~ "le fichier B<dir> (voyez l'option B<--infodir>)."

#~ msgid ""
#~ "If I<filename> ends in B<.gz>, it is taken to refer to a file compressed "
#~ "with B<gzip>; if it doesn't exist, but a corresponding I<filename>B<.gz> "
#~ "does, the latter is used instead."
#~ msgstr ""
#~ "Indique que si une entrée doit être créée, elle sera placée dans la "
#~ "section du un fichier comprimé avec B<gzip> ; s'il n'existe pas, mais "
#~ "qu'il y a un I<nom-de-fichier>B<.gz>, on utilisera ce dernier."

#~ msgid ""
#~ "When adding or updating entries, the file must exist at the path "
#~ "specified (possibly with an additional B<.gz> extension)."
#~ msgstr ""
#~ "Quand on ajoute ou on met à jour des entrées, ce fichier doit exister "
#~ "dans le chemin spécifié (si possible avec l'extension B<.gz> "
#~ "supplémentaire)."

#~ msgid "B<--remove>"
#~ msgstr "B<--remove>"

#~ msgid ""
#~ "Specifies that the entry for the file I<filename> is to be removed; by "
#~ "default entries are created or updated."
#~ msgstr ""
#~ "Demande que l'entrée pour le fichier I<nom-de-fichier> soit détruite ; "
#~ "par défaut les entrées sont créées ou mises à jour."

#~ msgid ""
#~ "If the removal results in a section becoming empty, the section heading "
#~ "(and the spare blank line) will be removed as well, unless this is the "
#~ "last section in the file or B<--keep-old> is specified. See the B<--"
#~ "section> option for details about the expected format of the B<dir> file."
#~ msgstr ""
#~ "Quand la suppression d'une entrée vide une section, l'en-tête (et la "
#~ "ligne blanche détachée) de la section est supprimée aussi, à moins que ce "
#~ "ne soit la dernière section du fichier ou bien que l'option B<--keep-old> "
#~ "soit indiquée. Voyez l'option B<--section> pour des précisions sur le "
#~ "format attendu du fichier B<dir>."

#~ msgid ""
#~ "If there are several suitable entries in the B<dir> file, only those in "
#~ "the first matching contiguous group will be removed and the others "
#~ "silently ignored."
#~ msgstr ""
#~ "Quand il y a plusieurs entrées possibles dans le fichier B<dir>, seules "
#~ "celles qui appartiennent au premier groupe contigu correspondant sont "
#~ "supprimées ; les autres sont silencieusement ignorées."

#~ msgid ""
#~ "It is not an error for no suitable entry to be found, though B<install-"
#~ "info> will issue a warning unless the B<--quiet> option was specified."
#~ msgstr ""
#~ "Ne pas trouver d'entrée possible n'est pas une erreur, bien que B<install-"
#~ "info> avertisse du problème quand l'option B<--quiet> n'a pas été "
#~ "demandée."

#~ msgid ""
#~ "When B<--remove> is specified the B<--maxwidth>, B<--align> and B<--"
#~ "calign> formatting options are silently ignored."
#~ msgstr ""
#~ "Quand B<--remove> est spécifié, les options de formatage B<--maxwidth>, "
#~ "B<--align> et B<--calign> sont silencieusement ignorées."

#~ msgid "B<--remove-exactly>"
#~ msgstr "B<--remove-exactly>"

#~ msgid ""
#~ "This option is essentially the same as B<--remove> except that "
#~ "I<filename> is taken as the exact entry to be removed, rather than as the "
#~ "name of an existing file. This can be important when trying to remove "
#~ "entries that refer to info files in subdirectories (e.g. \"emacs-20/emacs"
#~ "\") because B<--remove> will operate on the basename of the given "
#~ "I<filename> rather than the exact name given. (i.e.  B<--remove> "
#~ "\"emacs-20/emacs\" would cause B<install-info> to look for \"emacs\", not "
#~ "\"emacs-20/emacs\")."
#~ msgstr ""
#~ "Cette option est pratiquement identique à B<--remove> mais I<fichier> est "
#~ "compris comme le nom exact de l'entrée à supprimer plutôt que comme le "
#~ "nom d'un fichier existant. Cela peut être important quand on essaie de "
#~ "supprimer des entrées pour des fichiers info dans des sous-répertoires "
#~ "(p. ex. « emacs-20/emacs ») car B<--remove> opère sur la partie "
#~ "principale du I<fichier> plutôt que sur le nom exact. (p. ex.  B<--"
#~ "remove> « emacs-20/emacs » forcerait B<install-info> à chercher "
#~ "« emacs », pas « emacs-20/emacs »)."

#~ msgid "B<--section >I<regexp title>"
#~ msgstr "B<--section >I<exp-reg titre>"

#~ msgid ""
#~ "Specifies that if a new entry is to be made, it should be placed in a "
#~ "section of the B<dir> file whose title matches I<regexp>.  If no such "
#~ "section exists, one will be created as the second to last section in the "
#~ "file (see below) with title I<title>.  A section is a part of the B<dir> "
#~ "menu delimited by blank lines; the first line is assumed to be the title."
#~ msgstr ""
#~ "Indique que l'entrée qui doit être créée sera placée dans la section du "
#~ "fichier B<dir> dont le titre correspond à I<exp-reg>. Si une telle "
#~ "section n'existe pas, une nouvelle dernière section (voyez ci-après) est "
#~ "créée dans le fichier, avec un titre égal à I<titre>. Une section est un "
#~ "choix possible dans le menu de B<dir> ; les choix sont séparés par des "
#~ "lignes blanches ; la première ligne est supposée représenter le titre."

#~ msgid ""
#~ "If a new entry is to be created, B<install-info> will attempt to insert "
#~ "it within the section in alphabetic order. If the entries in the section "
#~ "aren't already sorted, the new location within the section will be "
#~ "unpredictable. The order of existing entries will not be changed."
#~ msgstr ""
#~ "Quand une nouvelle entrée doit être créée, B<install-info> essaie de "
#~ "l'insérer dans la section selon l'ordre alphabétique. Si les entrées de "
#~ "la section ne sont pas déjà triées, on ne peut prévoir l'emplacement qui "
#~ "sera choisi. L'ordre existant des entrées n'est pas modifié."

#~ msgid ""
#~ "If the B<--section> option is not specified, B<install-info> will look "
#~ "for a title in the Info file itself by looking for an entry of the form"
#~ msgstr ""
#~ "Si l'option B<--section> n'est pas spécifiée, B<install-info> recherchera "
#~ "un titre dans le fichier Info lui-même, en recherchant une entrée de la "
#~ "forme :"

#~ msgid "B<INFO-DIR-SECTION>I< title>"
#~ msgstr "B<INFO-DIR-SECTION>I< titre>"

#~ msgid ""
#~ "If no section title is found, the default is to append new entries to the "
#~ "end of the file. The last section (even if it only consists of the title "
#~ "line) should always exist to ensure that new sections are created in the "
#~ "right place. The final section should be titled to reflect the fact that "
#~ "Info files with no better specified location are appended to it."
#~ msgstr ""
#~ "Par défaut, si aucun titre de section n'est trouvé, les entrées nouvelles "
#~ "sont ajoutées à la fin du fichier. La dernière section doit toujours "
#~ "exister (même si elle consiste en une simple ligne de titre) de manière "
#~ "que les nouvelles sections puissent être créées au bon endroit. Le titre "
#~ "de la dernière section devrait refléter le fait que des fichiers Info "
#~ "sans emplacement bien défini sont ajoutés à la fin de cette section."

#~ msgid ""
#~ "If there is already an entry for the Info file being installed, it is "
#~ "replaced in situ with the new entry."
#~ msgstr ""
#~ "Quand le fichier Info que l'on doit installer possède déjà une entrée, "
#~ "celle-ci est remplacée in situ par la nouvelle entrée."

#~ msgid ""
#~ "If a section is specified when removing an entry, the section is ignored "
#~ "and a warning is issued."
#~ msgstr ""
#~ "Quand on supprime une entrée, une section spécifiée est ignorée et un "
#~ "avertissement est produit."

#~ msgid ""
#~ "If a section is requested when adding an entry, but the file contains no "
#~ "section headings at all, then B<install-info> will create both the "
#~ "requested section and a Miscellaneous section at the end of the file."
#~ msgstr ""
#~ "Quand on ajoute une entrée et qu'une section est spécifiée, mais que le "
#~ "fichier ne contient aucun en-tête de section, B<install-info> crée à la "
#~ "fois la section demandée et une section « Miscellaneous » à la fin du "
#~ "fichier."

#~ msgid "B<--infodir=>I<infodir>"
#~ msgstr "B<--infodir=>I<rep-info>"

#~ msgid ""
#~ "Specifies that the B<dir> file is, and the installed copy of the new Info "
#~ "file was, is or will be located in I<infodir>.  The default is B</usr/"
#~ "share/info/>."
#~ msgstr ""
#~ "Spécifie que le fichier B<dir> est situé dans I<infodir>, ou que la copie "
#~ "installée du nouveau fichier Info était, est ou sera située dans "
#~ "I<infodir>. Par défaut, c'est B</usr/share/info>."

#~ msgid "B<--align=>I<nnn>B< [deprecated]>"
#~ msgstr "B<--align=>I<nnn>B< [déconseillé]>"

#~ msgid ""
#~ "Specifies that the first line of the description should be indented at "
#~ "least I<nnn> characters; extra spaces will be added as required. If "
#~ "necessary because of the length of the B<dir> menu entry details, it may "
#~ "be offset more. The default is 27."
#~ msgstr ""
#~ "Précise que l'espace d'indentation de la première ligne de la description "
#~ "sera d'au moins I<nnn> caractères ; des espaces supplémentaires peuvent "
#~ "être ajoutées. Quand la longueur des éléments de l'entrée du menu B<dir> "
#~ "le demande, on peut le décaler davantage. Par défaut ce nombre est égal à "
#~ "27."

#~ msgid "B<--calign=>I<nnn>B< [deprecated]>"
#~ msgstr "B<--calign=>I<nnn>B< [déconseillé]>"

#~ msgid ""
#~ "Specifies that the second and subsequent lines of the description should "
#~ "be indented at least I<nnn> characters. The default is 29."
#~ msgstr ""
#~ "Précise que l'espace d'indentation de la deuxième ligne et des lignes "
#~ "suivantes de la description sera d'au moins I<nnn> caractères. Par défaut "
#~ "ce nombre est égal à 29."

#~ msgid "B<--maxwidth=>I<nnn>B< [deprecated]>"
#~ msgstr "B<--maxwidth=>I<nnn>B< [déconseillé]>"

#~ msgid ""
#~ "Specifies that the maximum width for the Info file is I<nnn>.  This is "
#~ "used when word-wrapping the descriptive text.  The default is 79."
#~ msgstr ""
#~ "Précise que la largeur maximale d'une ligne du fichier Info est de "
#~ "I<nnn>. Cela sert pour « couper » automatiquement les lignes du texte "
#~ "descriptif. Par défaut ce nombre est égal à 79."

#~ msgid ""
#~ "Prevents the usual display of the new menu entry just before it is "
#~ "inserted and of the messages announcing the replacement and removal of "
#~ "existing entries and the creation and deletion of sections."
#~ msgstr ""
#~ "Empêche l'affichage normal de la nouvelle entrée du menu juste avant "
#~ "qu'elle soit insérée et l'affichage de messages annonçant le remplacement "
#~ "ou la suppression d'entrées existantes ou la création ou la suppression "
#~ "de section."

#~ msgid "Causes B<install-info> to display its usage information and exit."
#~ msgstr "Option pour afficher une aide sur l'utilisation de B<install-info>"

#~ msgid ""
#~ "Causes B<install-info> to display its version and copyright information "
#~ "and exit."
#~ msgstr "Option pour afficher la version et le copyright de B<install-info>"

#~ msgid ""
#~ "Specifies that the description to use after the menu entry in new or "
#~ "updated entries be I<xxx>.  The default is to use the the value specified "
#~ "in the Info file itself; this is found by searching for a section of the "
#~ "form"
#~ msgstr ""
#~ "Précise que la description employée après l'entrée du menu pour une "
#~ "nouvelle entrée ou bien pour une entrée mise à jour sera I<xxx>. Par "
#~ "défaut, on emploie la valeur indiquée par le fichier Info lui-même ; on "
#~ "peut la trouver en cherchant une section de la forme suivante :"

#~ msgid "B<START-INFO-DIR-ENTRY>"
#~ msgstr "B<START-INFO-DIR-ENTRY>"

#~ msgid "B<* Auto-PGP: (auto-pgp). PGP under GNU Emacs.>"
#~ msgstr "B<* Auto-PGP: (auto-pgp). PGP under GNU Emacs.>"

#~ msgid "B<END-INFO-DIR-ENTRY>"
#~ msgstr "B<END-INFO-DIR-ENTRY>"

#~ msgid ""
#~ "If the entry found in the Info file itself extends across several lines, "
#~ "each giving a menu entry, the text found in the file is used verbatim. In "
#~ "this case, the alphabetic ordering scheme is turned off, and the entries "
#~ "are inserted at the top of section in question. In this case, the B<--"
#~ "menuentry>, B<--maxwidth>, B<--align>, B<--calign> and B<--menuentry> "
#~ "options are ignored."
#~ msgstr ""
#~ "Quand l'entrée trouvée dans le fichier Info lui-même s'étend sur "
#~ "plusieurs lignes, chacune donnant une entrée du menu, on reprend le texte "
#~ "trouvé « verbatim ». Dans ce cas, on ne tient pas compte de l'ordre "
#~ "alphabétique et les entrées sont insérées au début de la section en "
#~ "question.  Et les options B<--menuentry>, B<--maxwidth>, B<--align>, B<--"
#~ "calign> sont ignorées."

#~ msgid ""
#~ "If there is no B<dir> entry in the file, the program will try to find a "
#~ "paragraph early in the file starting B<this file documents>.  It will "
#~ "capitalise the first character of the remainder, and use that."
#~ msgstr ""
#~ "Quand il n'y a pas d'entrée pour B<dir> dans le fichier, le programme "
#~ "essaie de trouver un paragraphe au début du fichier qui commence par "
#~ "B<this file documents>. Il met une capitale au premier caractère de la "
#~ "suite et l'utilise comme description."

#~ msgid "It is an error for none of these methods to yield a description."
#~ msgstr ""
#~ "C'est une erreur si aucune de ces méthodes ne peut donner une description."

#~ msgid ""
#~ "If a description argument is given when B<--remove> is specified, it is "
#~ "ignored and a warning is issued."
#~ msgstr ""
#~ "Quand l'option B<--remove> est donnée, l'argument pour l'option « "
#~ "description » est ignoré et un avertissement est produit."

#~ msgid "B<--menuentry=>I<xxx>"
#~ msgstr "B<--menuentry=>I<xxx>"

#~ msgid ""
#~ "Specifies that the entry in the menu should be I<xxx>.  The default is to "
#~ "use the the value specified in the Info file itself.  If this is not "
#~ "present, the basename of the Info file is used (any B<.info >is deleted, "
#~ "and the entry is made mixed case).  See above for details of the format "
#~ "expected for the menu entry in the Info file."
#~ msgstr ""
#~ "Précise que l'entrée de menu sera I<xxx>. Par défaut, on emploie la "
#~ "valeur indiquée par le fichier Info lui-même. Quand elle n'est pas "
#~ "présente, la partie principale du nom du fichier Info est utilisée (tout "
#~ "fichier B<.info >est supprimé et la première lettre de l'entrée est "
#~ "capitalisée). Voyez ci-dessus pour des précisions sur le format attendu "
#~ "pour l'entrée de menu dans le fichier Info."

#~ msgid ""
#~ "When removing entries, the value of the B<--menuentry> option must match "
#~ "the actual menu entry field in the menu item to be removed (case not "
#~ "significant). If B<--menuentry> is omitted, no check on the menu entry is "
#~ "done."
#~ msgstr ""
#~ "Quand on supprime des entrées, la valeur de l'option B<--menuentry> doit "
#~ "correspondre au champ réel de l'entrée de menu qui doit être supprimée "
#~ "(peu importe la casse). Quand l'option B<--menuentry> est omise, aucune "
#~ "vérification sur l'entrée de menu n'est faite."

#~ msgid "B<--keep-old>"
#~ msgstr "B<--keep-old>"

#~ msgid ""
#~ "Inhibits the replacement of existing entries and the removal of empty "
#~ "sections."
#~ msgstr ""
#~ "Empêche le remplacement d'entrées existantes et la suppression des "
#~ "sections vides."

#~ msgid ""
#~ "If the file being installed already has an entry in the Info B<dir> file, "
#~ "the old entry will be left alone instead of being replaced; the default "
#~ "is to overwrite any old entry found with the newly generated one."
#~ msgstr ""
#~ "Quand le fichier qu'on doit installer possède déjà une entrée dans le "
#~ "fichier B<dir> d'Info, l'ancienne entrée est laissée seule plutôt que "
#~ "remplacée. Par défaut, toute entrée ancienne trouvée est remplacée par la "
#~ "nouvelle."

#~ msgid ""
#~ "If B<--remove> is specified, B<--keep-old> will prevent the removal of "
#~ "the section heading which would otherwise happen if the section is made "
#~ "empty by the removal."
#~ msgstr ""
#~ "Quand l'option B<--remove> est indiquée, B<--keep-old> empêche la "
#~ "suppression de l'en-tête de section qui sans cela serait supprimé si la "
#~ "suppression vidait la section."

#~ msgid ""
#~ "Enables test mode, which inhibits the update of the Info B<dir> file."
#~ msgstr ""
#~ "Met en mode test, lequel empêche la mise à jour du fichier B<dir> d'Info."

#~ msgid ""
#~ "Enables debugging mode, in which the results of some internal processing "
#~ "steps are shown."
#~ msgstr ""
#~ "Met en mode débogage, lequel montre les résultats de certaines étapes du "
#~ "traitement."

#~ msgid "B<emacs>(1), B<info>(1), B<gzip(1).>"
#~ msgstr "B<emacs>(1), B<info>(1), B<gzip>(1)."

#~ msgid "Copyright \\(co 1994 Ian Jackson"
#~ msgstr "Copyright \\(co 1994 Ian Jackson"

#~ msgid "Vendor identification"
#~ msgstr "Identifzierung des Lieferanten"

#~ msgid ""
#~ "The variable B<DEB_VENDOR> will be set to the name of the current vendor "
#~ "if I</etc/dpkg/origins/default> exists and can be used to look up the "
#~ "vendor name. If the variable already exists, and contains the name of an "
#~ "existing vendor in I</etc/dpkg/origins>, it will be kept; otherwise the "
#~ "variable is unset."
#~ msgstr ""
#~ "Die Variable B<DEB_VENDOR> wird auf den Namen des derzeitigen Lieferanten "
#~ "(englisch: vendor) gesetzt, falls I</etc/dpkg/origins/default> existiert "
#~ "und zum Nachschlagen des Lieferanten genutzt werden kann. Falls die "
#~ "Variable bereits existiert und den Namen eines existierenden Lieferanten "
#~ "in I</etc/dpkg/origins> enthlt, wird diese beibehalten; andernfalls wird "
#~ "die Variable zurckgesetzt (d.h. sie ist im Bauprozess nicht gesetzt)."

#~ msgid ""
#~ "This is a variant of the 2.0 format. The differences concern the "
#~ "management of the patches. This format uses an explicit list of patches "
#~ "contained in B<debian/patches/debian.series> or B<debian/patches/series>."
#~ msgstr ""
#~ "Dies ist eine Variante des 2.0-Formats. Die Unterschiede betreffen die "
#~ "Verwaltung der Patches. Dieses Format verwendet eine explizite Liste von "
#~ "Patches, die in B<debian/patches/debian.series> oder B<debian/patches/"
#~ "series> enthalten sind."

#~ msgid "Unpacking of tarballs is done exactly like in the 2.0 format."
#~ msgstr "Das Entpacken des Tarballs erfolgt exakt wie im 2.0-Format."

#~ msgid ""
#~ "The B<.pc> directory used by quilt is ignored during generation of the "
#~ "automatic patch."
#~ msgstr ""
#~ "Das von Quilt verwandte B<.pc>-Verzeichnis wird whrend der Erstellung des "
#~ "automatischen Patches ignoriert."

#~ msgid "It supports all the options of the 2.0 format."
#~ msgstr "Es untersttzt alle Optionen des 2.0-Formats."

#~ msgid ""
#~ "Furthermore, in some cases, this will lead to a non-versioned dependency "
#~ "on the library that could have been avoided if the binary was only linked "
#~ "against libraries that it really uses. The exception to this rule is when "
#~ "several binaries are linked against the same set of libraries but each "
#~ "binary only uses a subset of those. You will have warnings on individual "
#~ "binaries, but the set of libraries needed at the package level is the "
#~ "same whether you fix the binaries or not."
#~ msgstr ""
#~ "Desweiteren fhrt dies in einigen Fllen zu einer unversionierten "
#~ "Abhngigkeit auf diese Bibliothek, die vermieden werden knnte, falls das "
#~ "Programm nur gegen Bibliotheken gelinkt wre, die es wirklich verwendet. "
#~ "Die Ausnahme dieser Regel liegt dann vor, wenn mehrere Programme gegen "
#~ "den gleichen Satz an Bibliotheken gelinkt sind, aber jedes Programm nur "
#~ "eine Teilmenge davon verwendet. Sie werden fr die einzelnen Programme "
#~ "individuelle Warnungen erhalten, aber der bentigte Satz an Bibliotheken "
#~ "ist auf der Paketebene identisch, ob sie die Programme korrigieren oder "
#~ "nicht."

#~ msgid ""
#~ "Shared library information generated by the current build process that "
#~ "also invoked B<dpkg-shlibdeps>."
#~ msgstr ""
#~ "Laufzeitbibliotheksinformationen, die vom aktuellen Bauprozess erstellt "
#~ "werden, der auch B<dpkg-shlibdeps> aufruft."

#~ msgid "I<E<lt>divert-toE<gt>> is the name used by other packages' versions."
#~ msgstr ""
#~ "I<E<lt>umzuleitende<gt>> ist der Name der Datei, der von Versionen "
#~ "anderer Pakete benutzt wird."

#~ msgid "Specifies that all packages' versions are diverted."
#~ msgstr "Gibt an, dass die Versionen aus allen Paketen umgeleitet sind."

#~ msgid "822-date"
#~ msgstr "822-date"

#~ msgid "2007-01-24"
#~ msgstr "24-01-2007"

#~ msgid "822-date - Print date and time in RFC2822 format"
#~ msgstr "822-date - Afficher la date au format RFC2822"

#~ msgid "B<822-date>"
#~ msgstr "B<822-date>"

#~ msgid ""
#~ "B<822-date> displays the current date and time in the format described in "
#~ "RFC2822.  It does so by simply calling B<date>(1)  with the B<-R> option."
#~ msgstr ""
#~ "B<822-date> affiche la date et l'heure courante dans le format décrit par "
#~ "la RFC 2822. Pour ceci, la commande B<date>(1) est simplement appelée "
#~ "avec l'option B<-R>."

#~ msgid ""
#~ "B<Using 822-date is deprecated since> B<date>(1)  provides the same "
#~ "functionality when called with the B<-R>."
#~ msgstr ""
#~ "B<L'utilisation de 822-date est obsolète> parce que B<date>(1) fournit la "
#~ "même fonctionnalité grâce à son option B<-R>."

#~ msgid "B<822-date> does not take any arguments or options."
#~ msgstr "B<822-date> ne prend aucun paramètre ni aucune option."

#~ msgid "This facility really ought to be part of B<date>(1)."
#~ msgstr "Cette fonctionnalité devrait vraiment être intégrée à B<date>(1)."

#~ msgid "I<Internet Message Format> (RFC2822), B<date>(1)."
#~ msgstr ""
#~ "I<Internet Message Format> (RFC2822, format des messages Internet), "
#~ "B<date>(1)."

#~ msgid ""
#~ "B<822-date> is a really simple wrapper around B<date>(1).  By its "
#~ "simplicity, the code is probably not copyrightable and should be "
#~ "considered to be in the public domain. This man page was written by Frank "
#~ "Lichtenheld based on an earlier version by Ian Jackson and was also put "
#~ "in the public domain."
#~ msgstr ""
#~ "B<822-date> ne fait qu'appeler B<date>(1). De par sa simplicité, son code "
#~ "n'est probablement pas soumis aux règles des copyright et doit être "
#~ "considéré comme étant dans le domaine public. Cette page de manuel a été "
#~ "écrite par Frank Lichtenheld en se basant sur la version précédente "
#~ "écrite par Ian Jackson, qui était également dans le domaine public."

#~ msgid "Do not clean the source tree (implies B<-b>)."
#~ msgstr "Ne pas nettoyer l'arborescence source (implique l'option B<-b>)."

#~ msgid ""
#~ "B<Deprecated>. Set an output substitution variable.  See B<deb-substvars>"
#~ "(5) for a discussion of output substitution."
#~ msgstr ""
#~ "B<Deprecated>. Fixe la valeur d'une variable de substitution. Consultez "
#~ "B<deb-substvars>(5) pour une discussion sur la valeur de substitution."

#~ msgid "cleanup-info"
#~ msgstr "cleanup-info"

#~ msgid ""
#~ "cleanup-info - clean up the mess that bogus install-info may have done"
#~ msgstr ""
#~ "cleanup-info - nettoie le désordre qui a pu être mis par un install-info "
#~ "bogué"

#~ msgid "B<cleanup-info> [I<options>] [B<-->] [I<dirname>]"
#~ msgstr "B<cleanup-info> [I<options>] [B<-->] [I<répertoire>]"

#~ msgid ""
#~ "B<cleanup-info> is a Perl script that tries to clean up the mess that "
#~ "bogus B<install-info>(8)  may have done.  It gathers all sections with "
#~ "the same heading into a single one.  It tries to be smart about cases and "
#~ "trailing colon/spaces."
#~ msgstr ""
#~ "B<cleanup-info> est un script Perl qui essaye de nettoyer le désordre qui "
#~ "a pu être mis par un B<install-info>(8) bogué. Il rassemble en une seule "
#~ "section toutes les sections qui possèdent le même en-tête. Il essaye de "
#~ "se débrouiller avec les problèmes de casse des lettres ou avec les "
#~ "espaces ou les deux-points qui peuvent avoir été laissés."

#~ msgid ""
#~ "Other clean-ups include removing of empty sections, and squeezing the "
#~ "blank lines (in entries part only)."
#~ msgstr ""
#~ "Il procède aussi à la suppression des sections vides et à l'élimination "
#~ "des lignes blanches (dans les entrées seulement)."

#~ msgid ""
#~ "Order of sections is preserved (the first encountered section counts).  "
#~ "Order of entries within a section is preserved."
#~ msgstr ""
#~ "L'ordre des sections est préservé (la première section rencontrée est "
#~ "prise en compte). L'ordre des entrées à l'intérieur des sections est "
#~ "préservé."

#~ msgid ""
#~ "Please be B<extremely careful> when using this utility - it might not be "
#~ "100% safe. cleanup-info tries to be careful with your info dir file, but "
#~ "only until it writes it. You should back the file up prior to using this "
#~ "script."
#~ msgstr ""
#~ "B<Faites très attention> en utilisant ce script, il n'est peut-être pas "
#~ "entièrement fiable. cleanup-info essaye de faire attention au fichier "
#~ "« info/dir », mais seulement jusqu'à ce qu'il l'ait modifié. Il vaut "
#~ "mieux sauvegarder ce fichier avant d'utiliser ce script."

#~ msgid "B<--unsafe>"
#~ msgstr "B<--unsafe>"

#~ msgid "Set some additional possibly useful options."
#~ msgstr "Apporte quelques options supplémentaires qui peuvent être utiles."

#~ msgid ""
#~ "B<Warning: the `--unsafe' option may garble an otherwise correct file!>"
#~ msgstr ""
#~ "B<Attention : l'option « --unsafe » peut altérer un fichier qui était "
#~ "correct !>\""

#~ msgid "I</usr/info/dir> or I<E<lt>dirnameE<gt>/dir>"
#~ msgstr "I</usr/info/dir> ou I<E<lt>répertoireE<gt>/dir>"

#~ msgid ""
#~ "The info directory file. The lock file is named the same, with \".lock\" "
#~ "suffix."
#~ msgstr ""
#~ "Le fichier « dir » du répertoire « info ». Le fichier verrouillé porte le "
#~ "même nom suivi de « .lock »."

#~ msgid "Probably many."
#~ msgstr "Beaucoup, sans doute."

#~ msgid "B<install-info>(8), B<info>(1)."
#~ msgstr "B<install-info>(8), B<info>(1)."

#, fuzzy
#~ msgid "Copyright \\(co 1996 Kim-Minh Kaplan"
#~ msgstr "Copyright (C) 1996 Kim-Minh Kaplan."

#~ msgid "2008-01-30"
#~ msgstr "30-01-2008"

#~ msgid "generic name"
#~ msgstr "nom générique"

#~ msgid "symlink"
#~ msgstr "lien symbolique"

#~ msgid ""
#~ "Without any further qualification, this means a symbolic link in the "
#~ "alternatives directory: one which the system administrator is expected to "
#~ "adjust."
#~ msgstr ""
#~ "Sans autre information, c'est un lien symbolique qui se trouve dans le "
#~ "répertoire alternatives, lien que l'administrateur système est supposé "
#~ "établir."

#~ msgid "Call B<--config> on all alternatives."
#~ msgstr "Appelle B<--config> sur toutes les alternatives."

#, fuzzy
#~ msgid "B<Error:> E<lt>error detailsE<gt>"
#~ msgstr "B<Priority:> E<lt>prioritéE<gt>"

#~ msgid "mailto:joeyh@debian.org"
#~ msgstr "mailto:joeyh@debian.org"

#, fuzzy
#~ msgid "E<lt>joeyh@debian.orgE<gt>"
#~ msgstr "E<lt>joeyh@debian.orgE<gt>."

#~ msgid "mailto:wakkerma@debian.org"
#~ msgstr "mailto:wakkerma@debian.org"

#~ msgid "E<lt>wakkerma@debian.orgE<gt>"
#~ msgstr "E<lt>wakkerma@debian.orgE<gt>"

#, fuzzy
#~| msgid "2007-07-16"
#~ msgid "2007-07-18"
#~ msgstr "16-07-2007"

#~ msgid "2007-10-06"
#~ msgstr "06-10-2007"

#~ msgid "2008-03-14"
#~ msgstr "14-03-2008"

#, fuzzy
#~ msgid ""
#~ "The B<-s>I<x> options control whether the original source archive is "
#~ "included in the upload if any source is being generated (i.e.  B<-b>, B<-"
#~ "B> or B<-A> haven't been used)."
#~ msgstr ""
#~ "Les options B<-s>I<x> contrôlent si l'archive source originale est "
#~ "incluse dans l'installation produite si un paquet source est créé (cad. "
#~ "que les options B<-b> ou B<-B> n'ont pas été utilisées)."

#~ msgid ""
#~ "By default, or if specified, the original source will be included if the "
#~ "version number ends in B<-0> or B<-1>, i.e. if the Debian revision part "
#~ "of the version number is B<0> or B<1>."
#~ msgstr ""
#~ "Par défaut, ou si spécifié, les sources originales sont incluses si le "
#~ "numéro de version se termine par B<-0> ou B<-1>, c'est-à-dire si la "
#~ "partie « révision Debian » du numéro de version est égal à B<0> ou B<1>."

#~ msgid ""
#~ "Use changelog information from all versions strictly later than "
#~ "I<version>."
#~ msgstr ""
#~ "Utilise les informations contenues dans le fichier « changelog » et qui "
#~ "concernent toutes les versions strictement plus récentes que I<version>."

#~ msgid "B<-E>"
#~ msgstr "B<-E>"

#~ msgid ""
#~ "Turn certain warnings into errors. Only B<dpkg-source> uses this, but "
#~ "B<dpkg-buildpackage> recognizes it, and passes it thru to B<dpkg-source>."
#~ msgstr ""
#~ "Transforme certains avertissements en erreurs. Seul B<dpkg-source> "
#~ "l'utilise, mais B<dpkg-buildpackage> la reconnaît et la transmet à B<dpkg-"
#~ "source>."

#~ msgid "B<-W>"
#~ msgstr "B<-W>"

#~ msgid ""
#~ "Negates a previously set B<-E>.  Only B<dpkg-source> uses this, but "
#~ "B<dpkg-buildpackage> recognizes it, and passes it thru to B<dpkg-source>."
#~ msgstr ""
#~ "Annule une option B<-E> utilisée précédemment. Seul B<dpkg-source> "
#~ "l'utilise, mais B<dpkg-buildpackage> la reconnaît et la transmet à B<dpkg-"
#~ "source>."

#~ msgid "2007-09-08"
#~ msgstr "08-09-2007"

#~ msgid ""
#~ "There is no authentication on B<.deb> files; in fact, there isn't even a "
#~ "straightforward checksum."
#~ msgstr ""
#~ "Il n'y a pas de validation des fichiers B<.deb ;> en fait, il n'y a même "
#~ "pas de simple somme de contrôle."

#~ msgid "2008-03-02"
#~ msgstr "02-03-2008"

#~ msgid "2008-01-13"
#~ msgstr "13-01-2008"

#~ msgid "2008-03-25"
#~ msgstr "25-03-2008"

#~ msgid "2008-03-16"
#~ msgstr "16-03-2008"

#~ msgid "2008-04-08"
#~ msgstr "08-04-2008"

#~ msgid ""
#~ "A simpler one-shot command to retrieve and update the I<available> file "
#~ "is B<dselect update>."
#~ msgstr ""
#~ "Pour récupérer et mettre à jour le fichier I<available>, il existe une "
#~ "commande plus simple : B<dselect update>."

#~ msgid ""
#~ "Display details about I<package-name>, as found in I</var/lib/dpkg/"
#~ "available>."
#~ msgstr ""
#~ "Affiche des renseignements détaillés sur I<paquet>, tels qu'ils sont "
#~ "trouvés dans le fichier I</var/lib/dpkg/available>."

#~ msgid ""
#~ "Send package status info to file descriptor I<E<lt>nE<gt>>. This can be "
#~ "given multiple times. Status updates are of the form `status: "
#~ "E<lt>pkgE<gt>: E<lt>pkg stateE<gt>'.  Errors are reported as `status: "
#~ "E<lt>pkgE<gt>: error: extend-error-message'.  Configuration file "
#~ "conflicts are reported as `status: conffile-prompt: conffile : 'current-"
#~ "conffile' 'new-conffile' useredited distedited'."
#~ msgstr ""
#~ "Cette action envoie des informations sur l'état d'un paquet au "
#~ "descripteur de fichier I<E<lt>nE<gt>>. On peut répéter l'opération "
#~ "plusieurs fois. La mise à jour d'un état est de la forme : « status: "
#~ "E<lt>pkgE<gt>: E<lt>pkg stateE<gt> ».  Une erreur est signalée sous la "
#~ "forme : E<lt>pkgE<gt>: error: extend-error-message.  Un conflit avec un "
#~ "fichier de configuration est signalé sous la forme : status: conffile-"
#~ "prompt: conffile : 'current-conffile' 'new-conffile' useredited distedited"

#, fuzzy
#~ msgid "2008-01-03"
#~ msgstr "13-01-2008"

#, fuzzy
#~ msgid "B<-b> I<directory> [I<orig-directory>|I<orig-targz>|\\(aq\\(aq]"
#~ msgstr ""
#~ "B<-b> [I<options>] I<répertoire> [I<répertoire-d'origine>|B<orig-"
#~ "targz>|'']"

#, fuzzy
#~ msgid "This option turns certain warnings into errors."
#~ msgstr "Cette option transforme certaines erreurs en avertissements."

#, fuzzy
#~ msgid "This option negates a previously set B<-E>."
#~ msgstr "Cette option annule une option B<-W> utilisée précédemment."

#~ msgid ""
#~ "The binary package entries in the B<debian/files> file will be passed "
#~ "through variable substitution twice. This should not matter, since B<$>, "
#~ "B<{> and B<}> are not legal in package names or version numbers."
#~ msgstr ""
#~ "On opère deux fois la substitution de variable sur les entrées d'un "
#~ "paquet binaire dans le fichier B<debian/files>. Cela ne devrait pas poser "
#~ "de problème puisque B<$>, B<{> et B<}> ne sont pas permis dans les noms "
#~ "de paquet et les numéros de version."

#, fuzzy
#~ msgid "shlibs"
#~ msgstr "deb-shlibs"

#, fuzzy
#~ msgid "FIXME not used in the source!?"
#~ msgstr "Ne pas signer le paquet source."

#, fuzzy
#~ msgid ""
#~ "Don't actually do anything, just say what would be done.  This option is "
#~ "not yet implemented."
#~ msgstr ""
#~ "Ne produit pas de commentaire à moins qu'une erreur survienne. Cette "
#~ "option n'est pas encore implémentée."

#, fuzzy
#~ msgid ""
#~ "See I</usr/share/doc/dpkg/THANKS> for the list of people who have\n"
#~ "contributed to B<dpkg>.\n"
#~ msgstr ""
#~ "Consultez I</usr/share/doc/dpkg/THANKS> pour la liste de ceux qui ont "
#~ "contribué à B<dpkg>."

#~ msgid ""
#~ "This is very helpful in cutting out extraneous files that get included in "
#~ "the .diff.gz, (eg: \"debian/BUGS_TODO/*\" or \"debian/RCS/*,v\"). For "
#~ "instance, if you maintain a package that you track via remote CVS, where "
#~ "you don't have access permissions for committing the debian control files "
#~ "and making tags for I<cvs-buildpackage(1)>, it is necessary to perform an "
#~ "extra checkout/update into a directory you keep pristine, to generate "
#~ "the .orig.tar.gz from. That directory will have CVS/Entries files in it "
#~ "that will contain timestamps that differ from the ones in your working "
#~ "directory, thus causing them to be unnecessarily included in every .diff."
#~ "gz, unless you use the B<-i> switch."
#~ msgstr ""
#~ "C'est très utile pour supprimer les fichiers superflus qui sont inclus "
#~ "dans le .diff.gz (p. ex. « debian/BUGS_TODO/* » ou « debian/RCS/*,v »). "
#~ "Quand on suit avec un CVS distant un paquet que l'on maintient, et qu'on "
#~ "a pas la possibilité d'enregistrer les fichiers debian de contrôle ou "
#~ "d'étiqueter I<cvs-buildpackage(1)>, il faut faire un « checkout/update » "
#~ "supplémentaire dans un répertoire tenu vierge pour créer le fichier orig."
#~ "tar.gz. Les fichiers « CVS/Entries » de ce répertoire contiennent des "
#~ "dates qui diffèrent de celles du répertoire de travail ; cela provoque "
#~ "indûment leur inclusion dans chaque .diff.gz créé, à moins d'utiliser "
#~ "l'option B<-i>."

#, fuzzy
#~ msgid ""
#~ "This is free software; see the GNU General Public Licence version 2 or "
#~ "later for copying conditions. There is NO warranty."
#~ msgstr ""
#~ "Ce programme est un logiciel libre ; voyez la « GNU General Public "
#~ "Licence » version 2 ou supérieure pour le copyright. Il n'y a PAS de "
#~ "garantie."

#~ msgid "The utilities and this manpage were written by Ian Jackson."
#~ msgstr "Ces outils et cette page de manuel ont été écrits par Ian Jackson."

#~ msgid "B<--root=>I<dir> | B<--admindir=>I<dir> | B<--instdir=>I<dir>"
#~ msgstr "B<--root=>I<rep> | B<--admindir=>I<rep> | B<--instdir=>I<rep>"

#, fuzzy
#~ msgid ""
#~ "These options control whether the original source archive is included in "
#~ "the upload generated by B<dpkg-buildpackage> if any source is being "
#~ "generated (i.e., B<-b> or B<-B> haven't been used)."
#~ msgstr ""
#~ "Les options B<-s>I<x> contrôlent si l'archive source originale est "
#~ "incluse dans l'installation produite si un paquet source est créé (cad. "
#~ "que les options B<-b> ou B<-B> n'ont pas été utilisées)."

#, fuzzy
#~ msgid ""
#~ "Include the original source if the version number ends in B<-0> or B<-1>, "
#~ "i.e. if the Debian revision part of the version number is B<0> or B<1>.  "
#~ "B<This is the default.>"
#~ msgstr ""
#~ "Par défaut, ou si spécifié, les sources originales sont incluses si le "
#~ "numéro de version se termine par B<-0> ou B<-1>, c'est-à-dire si la "
#~ "partie « révision Debian » du numéro de version est égal à B<0> ou B<1>."

#~ msgid ""
#~ "B<dpkg-deb> and this manpage were written by Ian Jackson.  They are "
#~ "Copyright (C) 1995-1996 by him and released under the GNU General Public "
#~ "Licence version 2 or later; there is NO WARRANTY. See I</usr/share/doc/"
#~ "dpkg/copyright> and I</usr/share/common-licenses/GPL> for details."
#~ msgstr ""
#~ "B<dpkg-deb> et cette page de manuel ont été écrits par Ian Jackson. Le "
#~ "copyright (C) date de 1995-1996 et ils ont paru sous la licence « GNU "
#~ "General Public Licence », version 2 ou supérieure ; il n'y a PAS de "
#~ "garantie. Voyez B</usr/share/doc/dpkg/copyright> et B</usr/share/common-"
#~ "licenses/GPL> pour des précisions."

#, fuzzy
#~ msgid ""
#~ "B<-sa> forces the inclusion of the original source; B<-sd> forces its "
#~ "exclusion and includes only the diff."
#~ msgstr ""
#~ "Force l'exclusion des sources originelles et inclut seulement le « diff »."

#, fuzzy
#~ msgid ""
#~ "Copyright 1995,1996 Erick Branderhorst.  B<dpkg-name> is free software; "
#~ "see the GNU General Public Licence version 2 or later for copying "
#~ "conditions. There is B<no> warranty."
#~ msgstr ""
#~ "Ce programme est un logiciel libre ; voyez la « GNU General Public "
#~ "Licence » version 2 ou supérieure pour le copyright. Il n'y a PAS de "
#~ "garantie."

#~ msgid ""
#~ "B<dpkg-split> and this manpage were written by Ian Jackson. They are "
#~ "Copyright (C) 1995-1996 by him and released under the GNU General Public "
#~ "Licence version 2 or later; there is NO WARRANTY. See I</usr/share/doc/"
#~ "dpkg/copyright> and I</usr/share/common-licenses/GPL> for details."
#~ msgstr ""
#~ "B<dpkg-split> et cette page de manuel ont été écrits par Ian Jackson.  "
#~ "Copyright (C) 1995-1996 Ils ont été édités sous la « GNU General Public "
#~ "Licence », version 2 ou supérieure ; il n'y a PAS de GARANTIE. Voyez B</"
#~ "usr/share/dpkg/copyright> et B</usr/share/common-licenses/GPL> pour des "
#~ "précisions."

#, fuzzy
#~ msgid ""
#~ "Copyright 1994, Ian Jackson.  B<install-info> is free software; see the "
#~ "GNU General Public Licence version 2 or later for copying conditions. "
#~ "There is I<no> warranty."
#~ msgstr ""
#~ "Ce programme est un logiciel libre ; voyez la « GNU General Public "
#~ "Licence » version 2 ou supérieure pour le copyright. Il n'y a PAS de "
#~ "garantie."

#, fuzzy
#~ msgid ""
#~ "Debian update-alternatives is copyright 1995 Ian Jackson. It is free "
#~ "software; see the GNU General Public Licence version 2 or later for "
#~ "copying conditions. There is NO warranty."
#~ msgstr ""
#~ "Ce programme est un logiciel libre ; voyez la « GNU General Public "
#~ "Licence » version 2 ou supérieure pour le copyright. Il n'y a PAS de "
#~ "garantie."

#, fuzzy
#~ msgid ""
#~ "This manual page is copyright 1997/98 Charles Briscoe-Smith.  This is "
#~ "free documentation; see the GNU General Public Licence version 2 or later "
#~ "for copying conditions. There is NO WARRANTY."
#~ msgstr ""
#~ "Cette documentation est libre ; voyez la « GNU General Public Licence » "
#~ "version 2 ou supérieure pour le copyright. Il n'y a PAS de garantie."

#~ msgid ""
#~ "You can find the GNU GPL in /usr/share/common-licenses/GPL on any Debian "
#~ "system."
#~ msgstr ""
#~ "On peut trouver la licence GNU GPL dans /usr/share/common-licenses/GPL "
#~ "sur tous les systèmes Debian."

#, fuzzy
#~ msgid ""
#~ "dpkg-scansources - search for '.dsc' files and build the 'Sources' index"
#~ msgstr "dpkg-scansources - créer des fichiers d'index de sources"

#~ msgid "I<Standard for the Format of ARPA Internet Text Messages> (RFC822),"
#~ msgstr ""
#~ "I<Standard for the Format of ARPA Internet Text Messages> (RFC 822),"

#~ msgid ""
#~ "I<Requirements for Internet Hosts -- Application and Support> (RFC1123) "
#~ "section 5.2.14,"
#~ msgstr ""
#~ "I<Requirements for Internet Hosts -- Application and Support> (RFC 1123) "
#~ "section 5.2.14,"

#~ msgid ""
#~ "B<822-date> and this manpage were written by Ian Jackson. They are hereby "
#~ "placed by him into the public domain."
#~ msgstr ""
#~ "B<822-date> et cette page de manuel ont été écrites par Ian Jackson, qui "
#~ "les a placé dans le domaine public."

#, fuzzy
#~ msgid ""
#~ "B<cleanup-info> [B<--help>] [B<--unsafe>] [B<--version>] [B<-->] "
#~ "[I<E<lt>dirnameE<gt>>]"
#~ msgstr "B<cleanup-info> [I<options>] [B<-->] [I<répertoire>]"

#, fuzzy
#~ msgid "Output the help screen and exit successfully."
#~ msgstr "Affiche une aide rapide et se termine normalement."

#, fuzzy
#~ msgid "Output version and exit successfully."
#~ msgstr "Affiche la version et se termine normalement."

#~ msgid "Print a usage message."
#~ msgstr "Affiche un message d'aide."

#, fuzzy
#~ msgid "Print program version."
#~ msgstr "Affiche la version du programme et le copyright, puis quitte."

#~ msgid "B<dpkg-deb> B<-W>|B<--show> [B<--showformat>=I<format>] I<archive>"
#~ msgstr "B<dpkg-deb> B<-W>|B<--show> [B<--showformat>=I<format>] I<archive>"

#, fuzzy
#~ msgid ""
#~ "B<dpkg-deb> B<-x>|B<--extract>|B<-X>|B<--vextract> I<archive directory>"
#~ msgstr "B<-X>, B<--vextract> I<archive répertoire>"

#~ msgid ""
#~ "Prints B<dpkg-deb>'s usage message, giving a summary of its options and "
#~ "their uses."
#~ msgstr ""
#~ "Affiche l'aide de B<dpkg-deb> qui résume la manière d'utiliser ses "
#~ "options."

#, fuzzy
#~ msgid "Prints B<dpkg-deb>'s version number."
#~ msgstr "Affiche la version de B<dpkg>."

#, fuzzy
#~ msgid "B<dpkg-divert> [I<options>] B<--remove> I<E<lt>fileE<gt>>"
#~ msgstr "B<dpkg-name> [I<options>] [B<-->] I<fichiers>"

#, fuzzy
#~ msgid "B<dpkg-divert> [I<options>] B<--list> I<E<lt>glob-patternE<gt>>"
#~ msgstr "B<dpkg-divert> [I<options>] I<commande>"

#, fuzzy
#~ msgid "B<dpkg-divert> [I<options>] B<--truename> I<E<lt>fileE<gt>>"
#~ msgstr "B<dpkg-name> [I<options>] [B<-->] I<fichiers>"

#~ msgid ""
#~ "B<dpkg-divert> is the utility used to set up and update the list of "
#~ "diversions. It functions in three basic modes - adding, removing, and "
#~ "listing diversions.  The options are B<--add>, B<--remove>, and B<--"
#~ "list>, respectively. Additionally, it can print out the real name for a "
#~ "diverted file with B<--truename>. Other options (listed below) may also "
#~ "be specified."
#~ msgstr ""
#~ "B<dpkg-divert> sert à créer et à mettre à jour la liste des "
#~ "détournements. Il possède trois modes élémentaires, l'ajout, la "
#~ "suppression et le listage d'un détournement. Les options sont "
#~ "respectivement B<--add>, B<--remove> et B<--list>. De plus, il peut "
#~ "afficher le vrai nom d'un fichier détourné avec B<--truename>. On peut "
#~ "indiquer d'autres options (voyez la liste ci-dessous)."

#, fuzzy
#~ msgid "Output short usage instructions, and exit successfully."
#~ msgstr "Affiche la version et se termine normalement."

#, fuzzy
#~ msgid "Output program name and version and exit successfully."
#~ msgstr "Affiche la version et se termine normalement."

#~ msgid ""
#~ "B<dpkg-name> [B<-a>|B<--no-architecture>] [B<-o>|B<--overwrite>] [B<-s>|"
#~ "B<--subdir> [I<dir>]] [B<-c>|B<--create-dir>] [B<-h>|B<--help>] [B<-v>|"
#~ "B<--version>] [B<-l>|B<--license>] [B<-k>|B<--symlink>] [B<-->] [I<files>]"
#~ msgstr ""
#~ "B<dpkg-name> [B<-a>|B<--no-architecture>] [B<-o>|B<--overwrite>] [B<-s>|"
#~ "B<--subdir> [I<rep>]] [B<-c>|B<--create-dir>] [B<-h>|B<--help>] [B<-v>|"
#~ "B<--version> [B<-l>|B<--license>] [B<-k>|B<--symlink>] [B<-->] "
#~ "[I<fichiers>]"

#, fuzzy
#~ msgid "Print a usage message and exit successfully."
#~ msgstr "Affiche une aide rapide et se termine normalement."

#, fuzzy
#~ msgid ""
#~ "Print copyright information and (a reference to GNU) license information "
#~ "and exit successfully."
#~ msgstr ""
#~ "Affiche les informations sur le copyright et sur la licence de "
#~ "B<dselect>, puis se termine normalement."

#, fuzzy
#~ msgid "Display licence and copyright information."
#~ msgstr "Affiche la version de B<dpkg>."

#, fuzzy
#~ msgid "Display version information."
#~ msgstr "Affiche la version de B<dpkg>."

#, fuzzy
#~ msgid ""
#~ "B<dpkg-scanpackages> [B<-u>] [B<-a> I<E<lt>archE<gt>> ] [B<-m>] "
#~ "I<binarydir> I<overridefile> [I<pathprefix>] B<E<gt>> I<Packages>"
#~ msgstr ""
#~ "B<dpkg-scanpackages> [I<options>] I<rep-de-binaires> [I<fichier-override> "
#~ "[I<chemin-à-préfixer>]] B<E<gt>> I<Packages>"

#~ msgid ""
#~ "When B<-a>I<E<lt>archE<gt>> is specified, then instead of scanning for "
#~ "all debs, a pattern consisting of *_all.deb and *_arch.deb is used."
#~ msgstr ""
#~ "Quand B<-a>I<E<lt>archE<gt>> est spécifiée, la commande ne recherche pas "
#~ "tous les fichiers debs ; elle utilise un motif équivalent à *_all.deb et "
#~ "à *_arch.deb."

#~ msgid "THE OVERRIDE FILE"
#~ msgstr "LE FICHIER « OVERRIDE »"

#~ msgid ""
#~ "dpkg-source, dpkg-gencontrol, dpkg-shlibdeps, dpkg-genchanges, dpkg-"
#~ "buildpackage, dpkg-distaddfile, dpkg-parsechangelog - Debian source "
#~ "package tools"
#~ msgstr ""
#~ "dpkg-source, dpkg-gencontrol, dpkg-shlibdeps, dpkg-genchanges, dpkg-"
#~ "buildpackage, dpkg-distaddfile, dpkg-parsechangelog - Les outils de "
#~ "Debian pour les paquets source."

#, fuzzy
#~ msgid "COMMON OPTIONS"
#~ msgstr "OPTIONS"

#~ msgid ""
#~ "Many of these programs share options; these are described here, together "
#~ "with the programs that accept them."
#~ msgstr ""
#~ "Beaucoup de ces programmes partagent les options qui sont décrites ici ; "
#~ "on décrit en même temps les programmes qui les acceptent."

#~ msgid ""
#~ "Display the particular program's usage message, including a synopsis of "
#~ "the options it understands.  This option is understood by all the source "
#~ "package tools."
#~ msgstr ""
#~ "Affiche le message d'aide associé au programme : il comprend un résumé "
#~ "des options acceptées. Tous les outils pour les paquets source "
#~ "comprennent cette option."

#~ msgid ""
#~ "Display the particular program's version, including copyright and license "
#~ "information.  This option is understood by all the source package tools."
#~ msgstr ""
#~ "Affiche la version du programme ; le message comprend des informations "
#~ "sur la licence et le copyright. Tous les outils pour les paquets source "
#~ "comprennent cette option."

#, fuzzy
#~ msgid ""
#~ "This is free software; see the GNU General Public Licence version 2 or "
#~ "later for copying conditions. There is NO WARRANTY. See B</usr/share/doc/"
#~ "dpkg/copyright> and B</usr/share/common-licenses/GPL> for details."
#~ msgstr ""
#~ "Ce programme est un logiciel libre ; voyez la « GNU General Public "
#~ "Licence » version 2 ou supérieure pour le copyright. Il n'y a PAS de "
#~ "garantie."

#~ msgid ""
#~ "Prints B<dpkg-split>'s usage message, giving a summary of its options and "
#~ "their uses."
#~ msgstr ""
#~ "Affiche un message de B<dpkg-split> donnant un résumé de ses options et "
#~ "de leur utilisation."

#~ msgid "Prints B<dpkg-split>'s version number."
#~ msgstr "Affiche le numéro de version de B<dpkg-split>."

#~ msgid ""
#~ "B<dpkg-statoverride> [I<options>] B<--add>I< E<lt>userE<gt> "
#~ "E<lt>groupE<gt> E<lt>modeE<gt> E<lt>fileE<gt>>"
#~ msgstr ""
#~ "B<dpkg-statoverride> [I<options>] B<--add>I< E<lt>utilisateurE<gt> "
#~ "E<lt>groupeE<gt> E<lt>modeE<gt> E<lt>fichierE<gt>>"

#, fuzzy
#~ msgid "B<dpkg-statoverride> [I<options>] B<--remove>I< E<lt>fileE<gt>>"
#~ msgstr "B<dpkg-statoverride> [I<options>] I<commande>"

#, fuzzy
#~ msgid ""
#~ "B<dpkg-statoverride> [I<options>] B<--list> [I<E<lt>glob-patternE<gt>>]"
#~ msgstr "B<dpkg-statoverride> [I<options>] I<commande>"

#, fuzzy
#~ msgid "Print help information; then exit."
#~ msgstr "Affiche un message d'aide, puis quitte."

#, fuzzy
#~ msgid "Print version information; then exit."
#~ msgstr "Affiche la version et se termine normalement."

#, fuzzy
#~ msgid ""
#~ "B<update-alternatives> [I<options>] B<--install> I<genname symlink altern "
#~ "priority> [B<--slave> I<genname symlink> I<altern>]..."
#~ msgstr ""
#~ "B<--install> I<genname lien altern priority> [B<--slave> I<genname lien "
#~ "altern>]..."

#, fuzzy
#~ msgid "B<update-alternatives> [I<options>] B<--remove> I<name path>"
#~ msgstr "B<update-alternatives> [I<options>] I<commande>"

#, fuzzy
#~ msgid "B<update-alternatives> [I<options>] B<--remove-all> I<name>"
#~ msgstr "B<update-alternatives> [I<options>] I<commande>"

#, fuzzy
#~ msgid "B<update-alternatives> [I<options>] B<--display> I<name>"
#~ msgstr "B<update-alternatives> [I<options>] I<commande>"

#, fuzzy
#~ msgid "B<update-alternatives> [I<options>] B<--list> I<name>"
#~ msgstr "B<update-alternatives> [I<options>] I<commande>"

#, fuzzy
#~ msgid "B<update-alternatives> [I<options>] B<--config> I<name>"
#~ msgstr "B<update-alternatives> [I<options>] I<commande>"

#, fuzzy
#~ msgid "B<update-alternatives> [I<options>] B<--set> I<name path>"
#~ msgstr "B<update-alternatives> [I<options>] I<commande>"

#~ msgid ""
#~ "Exactly one action must be specified if B<update-alternatives> is to "
#~ "perform any meaningful task.  Any number of the common options may be "
#~ "specified together with any action."
#~ msgstr ""
#~ "Pour toute opération significative, on doit demander une seule action à "
#~ "B<update-alternatives.> Pour toute action, on peut préciser un certain "
#~ "nombre d'options."

#, fuzzy
#~ msgid "Give some usage information."
#~ msgstr "Affiche un message d'aide, puis quitte."

#, fuzzy
#~ msgid "Tell which version of B<update-alternatives> this is."
#~ msgstr ""
#~ "produit plus de commentaires sur ce que fait B<update-alternatives>."

#, fuzzy
#~ msgid ""
#~ "Give some usage information (and say which version of B<update-"
#~ "alternatives> this is)."
#~ msgstr ""
#~ "produit plus de commentaires sur ce que fait B<update-alternatives>."

#~ msgid "COPYRIGHT"
#~ msgstr "COPYRIGHT"

#~ msgid ""
#~ "For B<dpkg-genchanges> and B<dpkg-buildpackage> B<-b> and B<-B> specify "
#~ "that a binary-only build is taking place.  B<-b> indicates that no source "
#~ "files are to be built and/or distributed, and B<-B> that no architecture-"
#~ "independent binary package files are to be distributed either.  B<-S> "
#~ "specifies that only the source should be uploaded and no binary packages "
#~ "need to be made. The distinction between B<-b> and B<-B> is only used by "
#~ "B<dpkg-buildpackage>; B<dpkg-genchanges> just produces a B<.changes> file "
#~ "for whatever files were produced by the B<binary-*> target(s) of the "
#~ "package being built."
#~ msgstr ""
#~ "Avec B<dpkg-genchanges> et B<dpkg-buildpackage> les options B<-b> et B<-"
#~ "B> indiquent qu'on veut seulement construire un paquet binaire. L'option "
#~ "B<-b> indique qu'aucun fichier source n'est à construire ou à distribuer, "
#~ "et l'option B<-B> indique en plus qu'aucun fichier, appartenant à un "
#~ "paquet binaire ne dépendant pas d'une architecture, n'est à distribuer. "
#~ "L'option B<-S> indique que seul le source doit être installé et qu'on a "
#~ "pas besoin de construire un paquet binaire. Seul B<dpkg-buildpackage> se "
#~ "sert des options B<-b> et B<-B>. B<dpkg-genchanges> crée seulement un "
#~ "fichier B<.changes> pour tous les fichiers produits par la cible B<binary-"
#~ "*> du paquet qui est construit."

#~ msgid ""
#~ "B<-sa>,B<-sp>,B<-su>,B<-sk>,B<-sA>,B<-sP>,B<-sU>,B<-sK>,B<-ss> with B<-b>"
#~ msgstr ""
#~ "B<-sa>,B<-sp>,B<-su>,B<-sk>,B<-sA>,B<-sP>,B<-sU>,B<-sK>,B<-ss> avec B<-b>"

#~ msgid "B<-sp>,B<-su>,B<-sn> with B<-x>"
#~ msgstr "B<-sp>,B<-su>,B<-sn> avec B<-x>"

#~ msgid ""
#~ "You can specify the compression level used by adding a B<-z#> option.  "
#~ "B<dpkg-deb> will pass that option on to gzip."
#~ msgstr ""
#~ "On peut préciser le degré de compression en ajoutant une option B<-z#>.  "
#~ "B<dpkg-deb> passe cette option à gzip."

#~ msgid "B<--extract>, B<-x>, B<--vextract>, B<-X>"
#~ msgstr "B<--extract>, B<-x>, B<--vextract>, B<-X>"

#~ msgid ""
#~ "Prints information about B<dpkg-deb>'s copyright licensing and lack of "
#~ "warranty. (The American spelling B<--license> is also supported)."
#~ msgstr ""
#~ "Affiche des renseignements sur le copyright de B<dpkg-deb> et l'absence "
#~ "de garantie. (On peut utiliser l'écriture américaine B<--license.>)"

#~ msgid ""
#~ "Read (or, for B<dpkg-shlibdeps>, write) substitution variables in "
#~ "I<substvarsfile>; the default is B<debian/substvars>.  This option is "
#~ "understood by B<dpkg-source>, B<dpkg-gencontrol>, B<dpkg-shlibdeps> and "
#~ "B<dpkg-genchanges>."
#~ msgstr ""
#~ "Lit (ou, écrit, pour B<dpkg-shlibdeps),> les variables de substitution "
#~ "dans le fichier I<fichier/substvars>; Par défaut c'est le fichier "
#~ "B<debian/substvars.> B<dpkg-source>, B<dpkg-gencontrol>, B<dpkg-"
#~ "shlibdeps> et dpkg-genchanges acceptent cette option."

#~ msgid ""
#~ "Override or add an output control file field.  This option is understood "
#~ "by B<dpkg-source>, B<dpkg-gencontrol> and B<dpkg-genchanges>."
#~ msgstr ""
#~ "Remplace ou ajoute en sortie un champ dans le fichier de contrôle. B<dpkg-"
#~ "source>, B<dpkg-gencontrol> et B<dpkg-genchanges> acceptent cette option."

#~ msgid ""
#~ "Remove an output control file field.  This option is understood by B<dpkg-"
#~ "source>, B<dpkg-gencontrol> and B<dpkg-genchanges>."
#~ msgstr ""
#~ "Supprime en sortie un champ dans le fichier de contrôle. B<dpkg-source>, "
#~ "B<dpkg-gencontrol> et B<dpkg-genchanges> acceptent cette option."

#~ msgid ""
#~ "B<-b> tells B<dpkg-source> to build a source package (rather than to "
#~ "extract one) - see below."
#~ msgstr ""
#~ "L'option B<-b> indique à B<dpkg-source> de construire un paquet source "
#~ "(plutôt que d'en extraire un), voyez ci-dessous."

#~ msgid "dpkg-SOURCE OPTIONS"
#~ msgstr "LES OPTIONS DE DPKG-SOURCE"

#~ msgid "dpkg-SHLIBDEPS OPTIONS"
#~ msgstr "LES OPTIONS POUR DPKG-SHLIBDEPS"

#~ msgid "dpkg-BUILDPACKAGE OPTIONS"
#~ msgstr "LES OPTIONS DE DPKG-BUILDPACKAGE"

#~ msgid "dpkg-DISTADDFILE ARGUMENTS"
#~ msgstr "LES ARGUMENTS DE DPKG-DISTADDFILE"

#~ msgid "dpkg-PARSECHANGELOG ARGUMENTS"
#~ msgstr "LES ARGUMENTS DE DPKG-PARSECHANGELOG"

#~ msgid ""
#~ "Prints information about B<dpkg-split>'s copyright licensing and lack of "
#~ "warranty. (The American spelling B<--license> is also supported.)"
#~ msgstr ""
#~ "Affiche les renseignements sur le copyright et l'absence de garantie.  "
#~ "(L'orthographe américaine : B<--license> est acceptée.)"

#, fuzzy
#~ msgid "2007-09-24"
#~ msgstr "24-01-2007"

#, fuzzy
#~ msgid "2007-03-08"
#~ msgstr "08-10-2007"

#, fuzzy
#~ msgid "2007-09-28"
#~ msgstr "08-09-2007"

#, fuzzy
#~ msgid "B<deb-shlibs>(5)."
#~ msgstr "deb-shlibs"

#, fuzzy
#~ msgid "2007-08-31"
#~ msgstr "18-07-2007"

#, fuzzy
#~ msgid "2007-05-15"
#~ msgstr "18-07-2007"

#, fuzzy
#~ msgid "B<dpkg -C> | B<--audit>"
#~ msgstr "B<-C>, B<--audit>"

#, fuzzy
#~ msgid "B<dpkg --help>"
#~ msgstr "B<--help>"

#, fuzzy
#~ msgid "B<dpkg -Dh >|B< --debug=help>"
#~ msgstr "B<-Dh>, B<--debug=help>"

#, fuzzy
#~ msgid "B<dpkg --licence> | B<dpkg --license>"
#~ msgstr "B<--licence>|B<--license>"

#, fuzzy
#~ msgid "B<dpkg --version>"
#~ msgstr "B<--version>"

#, fuzzy
#~ msgid "Copyright 2001 Wichert Akkerman"
#~ msgstr "Copyright (C) 2001 Wichert Akkerman"

#, fuzzy
#~ msgid "Copyright 2000 Wichert Akkerman"
#~ msgstr "Copyright (C) 2000 Wichert Akkerman"

#, fuzzy
#~ msgid "2006-04-09"
#~ msgstr "09-04-2008"

#, fuzzy
#~ msgid "2007-03-13"
#~ msgstr "18-07-2007"

#, fuzzy
#~ msgid "B<date>(1)."
#~ msgstr "B<dpkg>(1)."

#, fuzzy
#~ msgid "2006-05-23"
#~ msgstr "28-02-2006"

#, fuzzy
#~ msgid "B<--build>, B<-b>"
#~ msgstr "B<-b>, B<-B>"

#, fuzzy
#~ msgid "B<--info>, B<-I>"
#~ msgstr "B<-z>, B<-Z>"

#, fuzzy
#~ msgid "B<--show>, B<-W>"
#~ msgstr "B<-z>, B<-Z>"

#, fuzzy
#~ msgid "B<--field>, B<-f>"
#~ msgstr "B<-z>, B<-Z>"

#, fuzzy
#~ msgid "B<--contents>, B<-c>"
#~ msgstr "B<--license>, B<--licence>"

#, fuzzy
#~ msgid "B<--fsys-tarfile>"
#~ msgstr "B<--fsys-tarfile> I<archive>"

#, fuzzy
#~ msgid "B<--control>, B<-e>"
#~ msgstr "B<-t>, B<--test>"

#, fuzzy
#~ msgid "B<--help>, B<-h>"
#~ msgstr "B<-h>, B<--help>"

#, fuzzy
#~ msgid "B<--licence>"
#~ msgstr "B<-l>, B<--license>"

#, fuzzy
#~ msgid "OTHER OPTIONS"
#~ msgstr "OPTIONS"

#, fuzzy
#~ msgid "B<--debug>, B<-D>"
#~ msgstr "B<-b>, B<-B>"

#, fuzzy
#~ msgid "B<-h, --help>"
#~ msgstr "B<-h>, B<--help>"

#, fuzzy
#~ msgid "B<dpkg-query> B<-l>|B<--list> I<package-name-pattern> ..."
#~ msgstr "B<-l>, B<--list> I<motif-de-nom-de-paquet>..."

#, fuzzy
#~ msgid "B<dpkg-query> B<-W>|B<--show> I<package-name-pattern> ..."
#~ msgstr "B<-W>, B<--show> I<motif-de-nom-de-paquet>..."

#, fuzzy
#~ msgid "B<dpkg-query> B<-s>|B<--status> I<package-name> ..."
#~ msgstr "B<-s>, B<--status> I<nom-paquet> ..."

#, fuzzy
#~ msgid "B<dpkg-query> B<-L>|B<--listfiles> I<package-name> ..."
#~ msgstr "B<-L>, B<--listfiles> I<nom-paquet>..."

#, fuzzy
#~ msgid "B<dpkg-query> B<-S>|B<--search> I<filename-search-pattern> ..."
#~ msgstr "B<-S>, B<--search> I<motif-de-nom-a-rechercher>..."

#, fuzzy
#~ msgid "B<dpkg-query> B<-p>|B<--print-avail> I<package-name> ..."
#~ msgstr "B<-p>, B<--print-avail> I<nom-paquet>..."

#, fuzzy
#~ msgid "B<dpkg-query> B<--licence>|B<--license>"
#~ msgstr "B<--licence>|B<--license>"

#, fuzzy
#~ msgid "B<dpkg-query> B<--version>"
#~ msgstr "B<-v>, B<--version>"

#, fuzzy
#~ msgid ""
#~ "This option negates a previously set B<-W>.  It is currently only "
#~ "understood by B<dpkg-buildpackage> and B<dpkg-source>."
#~ msgstr ""
#~ "Annule une option B<-E> utilisée précédemment. Seul B<dpkg-source> "
#~ "l'utilise, mais B<dpkg-buildpackage> la reconnaît et la transmet à B<dpkg-"
#~ "source>."

#, fuzzy
#~ msgid "B<-x>"
#~ msgstr "B<-G>"

#, fuzzy
#~ msgid "B<-IE<lt>filenameE<gt>>"
#~ msgstr "B<-n>I<nom-de-fichier>"

#, fuzzy
#~ msgid "B<dpkg-gencontrol> does not take any non-option arguments."
#~ msgstr "B<822-date> ne prend aucun paramètre ni aucune option."

#, fuzzy
#~ msgid "dpkg-GENCHANGES OPTIONS"
#~ msgstr "OPTIONS DE CORRESPONDANCE"

#, fuzzy
#~ msgid "B<dpkg-genchanges> does not take any non-option arguments."
#~ msgstr "B<822-date> ne prend aucun paramètre ni aucune option."

#, fuzzy
#~ msgid "B<dpkg-buildpackage> does not take any non-option arguments."
#~ msgstr "B<822-date> ne prend aucun paramètre ni aucune option."

#, fuzzy
#~ msgid ""
#~ "B<dpkg-parsechangelog> does not take any non-common options or non-option "
#~ "arguments."
#~ msgstr "B<822-date> ne prend aucun paramètre ni aucune option."

#, fuzzy
#~ msgid "VARIABLE SUBSTITUTION"
#~ msgstr "VARIABLES D'ENVIRONNEMENT"

#, fuzzy
#~ msgid "B<dpkg-split> B<-l>|B<--listq>"
#~ msgstr "B<-l>, B<--listq>"

#, fuzzy
#~ msgid "B<--join>, B<-j>"
#~ msgstr "B<-z>, B<-Z>"

#, fuzzy
#~ msgid "B<--auto>, B<-a>"
#~ msgstr "B<--auto> I<nom>"

#, fuzzy
#~ msgid "B<--listq>, B<-l>"
#~ msgstr "B<--list> I<link>"

#, fuzzy
#~ msgid "B<--discard>, B<-d>"
#~ msgstr "B<--new>, B<--old>"

#, fuzzy
#~ msgid "B<--npquiet>, B<-Q>"
#~ msgstr "B<--new>, B<--old>"

#, fuzzy
#~ msgid "B<--admindir>"
#~ msgstr "B<--admindir>=I<dir>"

#, fuzzy
#~ msgid "B<start-stop-daemon> B<-H>|B<--help>"
#~ msgstr "start-stop-daemon"

#, fuzzy
#~ msgid "B<start-stop-daemon> B<-V>|B<--version>"
#~ msgstr "B<start-stop-daemon> [I<options>] I<commande>"

#, fuzzy
#~ msgid "B<-H>|B<--help>"
#~ msgstr "B<-H>, B<--help>"
