# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Apache CloudStack Administration RTD\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-06-30 12:52+0200\n"
"PO-Revision-Date: 2016-10-09 19:29+0200\n"
"Language-Team: French (http://www.transifex.com/ke4qqq/apache-cloudstack-"
"administration-rtd/language/fr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: fr\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"Last-Translator: \n"
"X-Generator: Poedit 1.8.9\n"

# e178ac0be7b0492e8a2edc6ed9be7a7b
#: ../../networking.rst:18
msgid "Setting Up Networking for Users"
msgstr "Configurer le réseau pour les utilisateurs"

# 04f3cd2def1648f2a118dc72cdd5a592
#: ../../networking.rst:21
msgid "Overview of Setting Up Networking for Users"
msgstr "Tour d'horizon de la configuration du réseau pour les Utilisateurs"

# 60188130ecb74037bd537749bcaf4750
#: ../../networking.rst:23
msgid ""
"People using cloud infrastructure have a variety of needs and preferences "
"when it comes to the networking services provided by the cloud. As a "
"CloudStack administrator, you can do the following things to set up "
"networking for your users:"
msgstr ""
"Les personnes qui utilisent une infrastructure cloud ont une variété de "
"besoins et préférences quand ils font appel aux services réseaux fournis "
"par le cloud. En tant qu'administrateur CloudStack, vous pouvez faire les "
"choses suivantes pour configurer le réseau pour vos utilisateurs :"

# fb8952bb97144229abe5a477941ae76a
#: ../../networking.rst:28
msgid "Set up physical networks in zones"
msgstr "Configurer les réseaux physiques dans les zones"

# 8dd6941ef2c54c6bbabf956d9eb0680a
#: ../../networking.rst:30
msgid ""
"Set up several different providers for the same service on a single "
"physical network (for example, both Cisco and Juniper firewalls)"
msgstr ""
"Configurer plusieurs fournisseurs différents pour le même servicesur un "
"seul réseau physique (par exemple à la fois des parefeus Cisco et Juniper)"

# d4c8d144d71e47c7b10f71c182941308
#: ../../networking.rst:33
msgid ""
"Bundle different types of network services into network offerings, so users "
"can choose the desired network services for any given virtual machine"
msgstr ""
"Regrouper différents types de services réseaux dans des offres réseaux, "
"afin que les utilisateurs puissent choisir les services réseaux désirés "
"pour n'importe quelle machine virtuelle."

# f5309ffd41a14f77a9dd77113c106332
#: ../../networking.rst:37
msgid ""
"Add new network offerings as time goes on so end users can upgrade to a "
"better class of service on their network"
msgstr ""
"Ajouter de nouvelles offres réseaux au fil de l'eau afin que les "
"utilisateurs finaux puissent évoluer vers de meilleurs classe de service "
"sur leur réseau"

# 13b07adc896a416793148e27ab919b13
#: ../../networking.rst:40
msgid ""
"Provide more ways for a network to be accessed by a user, such as through a "
"project of which the user is a member"
msgstr ""
"Fournir à un utilisateur plusieurs façons d'accéder à un réseau, par "
"exemple via un projet auquel l'utilisateur est un membre"

# 75c4f2f501724f68be26715201e81f13
#: ../../networking.rst:45
msgid "About Virtual Networks"
msgstr "A propos des réseaux virtuels"

# 6e8b5c92233f49618f96673822e130e6
#: ../../networking.rst:47
msgid ""
"A virtual network is a logical construct that enables multi-tenancy on a "
"single physical network. In CloudStack a virtual network can be shared or "
"isolated."
msgstr ""
"Un réseau virtuel est une construction logique qui active plusieurs "
"allocations sur un seul réseau physique. Dans CloudStack un réseau virtuel "
"peut être partagé ou isolé."

# e96b2f098a274b148edc9883c7424a27
#: ../../networking.rst:53
msgid "Isolated Networks"
msgstr "Réseaux isolés"

# 3358619f0382468a9d2f2aea99522408
#: ../../networking.rst:55
msgid ""
"An isolated network can be accessed only by virtual machines of a single "
"account. Isolated networks have the following properties."
msgstr ""
"Un réseau isolé peut être accédé seulement par les machines virtuelles d'un "
"seul compte. Les réseaux isolés ont les propriétés suivantes."

# c84b0ce76be64977bad2361a036a55cf
#: ../../networking.rst:58
msgid "Resources such as VLAN are allocated and garbage collected dynamically"
msgstr "Les ressources comme les VLAN sont alloués et recyclés dynamiquement"

# 3eb29ededba94d0dbcb168491b1acda6
#: ../../networking.rst:61
msgid "There is one network offering for the entire network"
msgstr "Il y a une offre réseau pour le réseau entier"

# ff059c44a53e4765b488337444f9fd70
#: ../../networking.rst:63
msgid ""
"The network offering can be upgraded or downgraded but it is for the entire "
"network"
msgstr ""
"L'offre réseau peut être amélioré ou rétrogradé mais pour le réseau entier"

# d147367777724c05a61626c7756aae05
#: ../../networking.rst:66
msgid ""
"For more information, see `“Configure Guest Traffic in an Advanced Zone” "
"<networking2.html#configure-guest-traffic-in-an-advanced-zone>`_."
msgstr ""
"Pour plus d'information, voir `“Configurer le Trafic Invité dans une Zone "
"Avancée” <networking2.html#configure-guest-traffic-in-an-advanced-zone>`_."

# 9cb58dfba63248058b6e4c2370250e1f
#: ../../networking.rst:71
msgid "Shared Networks"
msgstr "Réseaux partagés"

# 4b159336d5054af78283deb65966e56d
#: ../../networking.rst:73
msgid ""
"A shared network can be accessed by virtual machines that belong to many "
"different accounts. Network Isolation on shared networks is accomplished by "
"using techniques such as security groups, which is supported only in Basic "
"zones in CloudStack 3.0.3 and later versions."
msgstr ""
"Un réseau partagé peut être accédé par les machines virtuelles qui "
"appartiennent à pleins de comptes différents. L'isolation du réseau dans "
"les réseaux partagés est obtenue en utilisant des techniques comme les "
"groupes de sécurité, qui sont supportés seulement dans les zones Basiques "
"dans CloudStack 3.0.3 et versions ultérieures."

# 0eed59cfbc8447e98bc84e58489e3ae7
#: ../../networking.rst:78
msgid "Shared Networks are created by the administrator"
msgstr "Les Réseaux Partagés sont créés par l'administrateur"

# b29eadf838f449549e16a2e745f711af
#: ../../networking.rst:80
msgid "Shared Networks can be designated to a certain domain"
msgstr ""
"Les Réseaux Partagés peuvent être désignés pour un domaine particulier"

# 956864b9c95e4fb98178b4a0ad4918d3
#: ../../networking.rst:82
msgid ""
"Shared Network resources such as VLAN and physical network that it maps to "
"are designated by the administrator"
msgstr ""
"Les ressources d'un Réseau Partagé comme les VLAN et le réseau physique qui "
"lui est attaché sont désignés par l'administrateur"

# a9b84145482e4171bdf228084a5d51f4
#: ../../networking.rst:85
msgid "Shared Networks can be isolated by security groups"
msgstr "Les Réseaux Partagés peuvent être isolés par les groupes de sécurité"

# 345abc742c6749aeb975b3453c70c387
#: ../../networking.rst:87
msgid "Public Network is a shared network that is not shown to the end users"
msgstr ""
"Le Réseau Public est un réseau partagé qui n'est pas affiché aux "
"utilisateurs finaux."

# 743e27f0ef1d415180cce8da2bb79724
#: ../../networking.rst:89
msgid ""
"Source NAT per zone is not supported in Shared Network when the service "
"provider is virtual router. However, Source NAT per account is supported. "
"For information, see `“Configuring a Shared Guest Network” <networking2."
"html#configuring-a-shared-guest-network>`_."
msgstr ""
"Le NAT source par zone n'est pas supporté dans un Réseau Partagé quand le "
"fournisseur de service est un routeur virtuel. Toutefois, le NAT source par "
"compte est supporté. Pour plus d'information, voir `“Configurer un Réseau "
"Partagé Invité” <networking2.html#configuring-a-shared-guest-network>`_."

# dfed0497ec374d71927a32da736f6b28
#: ../../networking.rst:96
msgid "Runtime Allocation of Virtual Network Resources"
msgstr "L'allocation à chaud de Ressources de Réseau Virtuel"

# 33c1cc37caa3449d8a22888ee5706153
#: ../../networking.rst:98
msgid ""
"When you define a new virtual network, all your settings for that network "
"are stored in CloudStack. The actual network resources are activated only "
"when the first virtual machine starts in the network. When all virtual "
"machines have left the virtual network, the network resources are garbage "
"collected so they can be allocated again. This helps to conserve network "
"resources."
msgstr ""
"Quand vous définissez un nouveau réseau virtuel, tous vos paramètres pour "
"ce réseau sont stockés dans CloudStack. Les ressources du réseau actuel "
"sont activées seulement lorsque la première machine virtuelle dans le "
"réseau démarre. Quand toutes les machines virtuelles ont quittés le réseau "
"virtuel, les ressources du réseau sont récupérés et recyclée afin de "
"pouvoir être à nouveau allouée. Cela aide à conserver les ressources "
"réseaux."

# c7699333b3c747f09b34f3a541caa725
#: ../../networking.rst:107
msgid "Network Service Providers"
msgstr "Fournisseurs de service réseau"

# 90bd799fd2444d978136f72070afd1ca
#: ../../networking.rst:110
msgid ""
"For the most up-to-date list of supported network service providers, see "
"the CloudStack UI or call `listNetworkServiceProviders`."
msgstr ""
"Pour la liste la plus à jour des fournisseurs de services réseaux "
"supportés, voir l'interface CloudStack ou appeler "
"`listNetworkServiceProviders`."

# 3f97bb088f7240d99034a78ca6adf65f
#: ../../networking.rst:113
msgid ""
"A service provider (also called a network element) is hardware or virtual "
"appliance that makes a network service possible; for example, a firewall "
"appliance can be installed in the cloud to provide firewall service. On a "
"single network, multiple providers can provide the same network service. "
"For example, a firewall service may be provided by Cisco or Juniper devices "
"in the same physical network."
msgstr ""
"Un fournisseur de service (aussi appelé un élément réseau) est un matériel "
"ou une appliance virtuelle qui rend le service réseau possible ; par "
"exemple, une appliance de parefeu peut être installé dans le cloud pour "
"fournir un service de parefeu. Sur un seul réseau, plusieurs fournisseurs "
"peuvent fournir le même service réseau. Par exemple, un service de parefeu "
"peut être fourni par des périphériques Cisco ou Juniper dans le même réseau "
"physique."

# e52ed5139a664c31acccd845de73897d
#: ../../networking.rst:120
msgid ""
"You can have multiple instances of the same service provider in a network "
"(say, more than one Juniper SRX device)."
msgstr ""
"Vous pouvez avoir plusieurs instances du même fournisseur de service dans "
"un réseau (comprendre plus d'un périphérique Juniper SRX)."

# 013a36e42a254aaa98b7e3ad9ea97db8
#: ../../networking.rst:123
msgid ""
"If different providers are set up to provide the same service on the "
"network, the administrator can create network offerings so users can "
"specify which network service provider they prefer (along with the other "
"choices offered in network offerings). Otherwise, CloudStack will choose "
"which provider to use whenever the service is called for."
msgstr ""
"Si différents fournisseurs sont configurés pour fournir le même service sur "
"le réseau, les administrateurs peuvent créer des offres réseaux afin que "
"les utilisateurs peuvent spécifier quel fournisseur de service réseau ils "
"préfèrent (en même temps que les autres choix offerts dans les offres "
"réseaux). Autrement, CloudStack va choisir quel fournisseur utiliser chaque "
"fois que le service est appelé."

# eb5e7f69942b448f906dc822400a348c
#: ../../networking.rst:129
msgid "*Supported Network Service Providers*"
msgstr "*Fournisseurs de service réseau supportés*"

# d43ecfbdacb84dac9d6ffe5229f277a3
#: ../../networking.rst:131
msgid ""
"CloudStack ships with an internal list of the supported service providers, "
"and you can choose from this list when creating a network offering."
msgstr ""
"CloudStack est livré avec une liste interne des fournisseurs de services "
"supportés, et vous pouvez choisir depuis cette liste lorsque vous créez une "
"offre réseau."

# 5dd3d24c6aa149cd8be77c9e90e924fa
#: ../../networking.rst:136
msgid "Virtual Router"
msgstr "Routeur virtuel"

# 8f9be66568214ef19761bdd0b1e87a0a
#: ../../networking.rst:136
msgid "Citrix NetScaler"
msgstr "Citrix NetScaler"

# dccb0ff066124e7ca8f1f4b1df9b566a
#: ../../networking.rst:136
msgid "Juniper SRX"
msgstr "Juniper SRX"

# b6c9b2cf119641999eeded8e8069824f
#: ../../networking.rst:136
msgid "F5 BigIP"
msgstr "F5 BigIP"

# 4eec0320581e47cea2b8b9a6eb5c5b70
#: ../../networking.rst:136
msgid "Host based (KVM/Xen)"
msgstr "Basé sur l'hôte (KVM/Xen)"

# 2c2f1239e908471a929feb91a02e08dd
#: ../../networking.rst:139
msgid "Remote Access VPN"
msgstr "Accès distant VPN"

# 3ae9d08f24164c359e5553b13dd96db0
# 0c7c9adabf9449babcb4553e3a59b52b
# 411fef44341e42758013621c4a23b6b6
# 6c934e881e7849368f5400433ea69f81
# 1fc336068db6481183d8a01c5746f5e0
# 8a397af8cc344e41b52173b2d9bce329
# 8a7faf6012614a33a03fce7b63e06032
# f4b01e6ad27f435bbe4aa4b14adc6cd9
# 60fc90d0645a4e70a2b43c269d7d92ab
# 72abbb0d60bb43e7ac7ca73f206aa8dd
# 3f6508ced2f04ac2adcd337ac022d6b0
# 5492ba67a1304fdb9b75910ef384ac85
# 1b2c1c6af0814e59bd1d64623dec20d6
# 76efa1585e2241eaaae3e5a45da37007
# 933c860bae084ab4846ad9f7270712aa
# c38c824dc105481f82f564a1071efb74
#: ../../networking.rst:139 ../../networking.rst:141 ../../networking.rst:143
#: ../../networking.rst:145 ../../networking.rst:147 ../../networking.rst:149
#: ../../networking.rst:151 ../../networking.rst:153 ../../networking.rst:155
msgid "Yes"
msgstr "Oui"

# d7b2c2af7ecd47769b0c7bb3013e1bbd
# beb488a16e4646b3aa87280ad9216415
# ad48bd439e3148fa94443e2df8acd5a1
# 5151e216286b45c3b574d6658543a92c
# ebc177c1de7040e687bb410d7c258141
# c4efe853b93e471b814a74e0ed31f17d
# e8ffc6413ca549d69b9a74e6508574d1
# 8245b2e9c1934761a766679012c0a805
# 16ec8446477c4c68aabd30136ee67fc0
# 8a8f9ec35bea40f1853aba71a675887e
# ec884b7505904c66b59ae39b287f3682
# a1222a93d01240518b5a74fc57aee793
# e4317cd2542d43ab90a5f054e18a7e58
# 82eb13cd8e6a4c14828982cb7c145778
# fdceedef2f9e43bbbb62a4fb09483cf2
# 10e8e962affb46bd999d66cae4c189c0
# 0c5c555a0d3748ac9a84b51b0aaff10a
# 07903eb7e9fc46fbb91c64c77357409f
# 98c2b214043b41dea4181a3d1d4726d8
# ce61ff1d67ff4e90a5a5a722d0fef5f0
# ded424a7c1b345f398e02e70edea8a5a
# 9feb3d9ea53b45c5a8e95492710b7124
# 562866fe2ede4c5f838067549ca5b4bd
# f21d80c3b07e4fd69b54807235ed3cdb
# e2d5fa4c2d874e8e90d4022e41f6a3ef
# 4f7bcdd07de343638f1983951581d2a9
# 6491fc2c462b4ae5ace77aa2cb534435
# 248462887faa478ab6a39350b06d8262
# 5f0d4dc5583a4a2eab7336f826b54b67
#: ../../networking.rst:139 ../../networking.rst:141 ../../networking.rst:143
#: ../../networking.rst:145 ../../networking.rst:147 ../../networking.rst:149
#: ../../networking.rst:151 ../../networking.rst:153 ../../networking.rst:155
msgid "No"
msgstr "Non"

# ab9d28c06dcf43d6b43310410d730272
#: ../../networking.rst:141
msgid "DNS/DHCP/User Data"
msgstr "DNS/DHCP/Données utilisateur"

# ec9a836945d54daa80b2790549b0e124
# 98b80ddeb60c417e839a5e695b989f52
# 155333ae90b64d45959ef29649a45d44
#: ../../networking.rst:143 ../../networking.rst:180 ../../networking.rst:288
msgid "Firewall"
msgstr "Pare-feu"

# ec3524d24a7c47479fbc5f696c94c8ba
# 5d871878b8f6400babacd35334ff571b
#: ../../networking.rst:145 ../../networking.rst:178
msgid "Load Balancing"
msgstr "Répartition de charge"

# e9f00e30da4347368893885b9ebf0951
#: ../../networking.rst:147
msgid "Elastic IP"
msgstr "Elastic IP"

# 2665ea2a6b90470e81ee706892bc8f12
#: ../../networking.rst:149
msgid "Elastic LB"
msgstr "Elastic LB"

# b07356b446e34c669846ad2c208ed183
# 522b28c564644bf68213f95712c5b120
# 2177095ff4a24da29d588bb4cd3c2f4a
#: ../../networking.rst:151 ../../networking.rst:172 ../../networking.rst:289
msgid "Source NAT"
msgstr "Source NAT"

# eea6bbfe102d498e8fed5cb73cc69b0d
# c02a1aa3d43f4cde9668b0c049f5ca68
# fdd23b4cdd3f4aa4a540bf84253e6a5b
#: ../../networking.rst:153 ../../networking.rst:174 ../../networking.rst:292
msgid "Static NAT"
msgstr "Static NAT"

# b4c037f8d0f1486a8b571d432c94dfc2
# 218d3d03262e42b2aff11ea6d99f0a49
# 3ec6fc2e436743f7bf4b9704948e4af3
#: ../../networking.rst:155 ../../networking.rst:176 ../../networking.rst:295
msgid "Port Forwarding"
msgstr "Port Forwarding"

# 479f4b962b404a428355bb406c787cd9
#: ../../networking.rst:160
msgid "Network Offerings"
msgstr "Offres réseau"

# 25cda5fdd680428d82d9dc0b90b9da3f
#: ../../networking.rst:163
msgid ""
"For the most up-to-date list of supported network services, see the "
"CloudStack UI or call listNetworkServices."
msgstr ""
"Pour la liste la plus à jour des services réseaux supportés, voir "
"l'interface CloudStack ou appeler `listNetworkServices`."

# 746c329fee3d40298682a774fc0e1ce0
#: ../../networking.rst:166
msgid "A network offering is a named set of network services, such as:"
msgstr ""
"Une offre réseau est un nommage pour un ensemble de services réseau, comme :"

# 1f84716ebc364d34a628de273bfae124
# 50ebc53bb5124166b60910b97ac86bc4
#: ../../networking.rst:168 ../../networking.rst:283
msgid "DHCP"
msgstr "DHCP"

# 883e0ebe77d94552b3e24415615a7bd9
# 206e31a90b27475a957f3a6347b7e15d
#: ../../networking.rst:170 ../../networking.rst:284
msgid "DNS"
msgstr "DNS"

# c7ba4a3ce199420a8e1ffa59b6b5aa77
# e018337607ad4a9d90fe4ef3ab26189e
#: ../../networking.rst:182 ../../networking.rst:298
msgid "VPN"
msgstr "VPN"

# 0c8566ee7245401e89972f62635febae
#: ../../networking.rst:184
msgid ""
"(Optional) Name one of several available providers to use for a given "
"service, such as Juniper for the firewall"
msgstr ""
"(Optionel) Nommer un des nombreux fournisseurs disponibles à utiliser pour "
"un service donné, comme Juniper pour le parefeu."

# 010067ad73c94e95ad457ead1a816c4e
#: ../../networking.rst:187
msgid "(Optional) Network tag to specify which physical network to use"
msgstr ""
"(Optionnel) Etiquette réseau pour spécifier quel réseau physique utiliser"

# 27fc0e1384a041e280aad1d5c6497be1
#: ../../networking.rst:189
msgid ""
"When creating a new VM, the user chooses one of the available network "
"offerings, and that determines which network services the VM can use."
msgstr ""
"Lorsqu'il crée une nouvelle VM, l'utilisateur choisi une des offres réseaux "
"disponibles, et cela détermine quels services réseaux la VM peut utiliser."

# f0629abea4a3489ab43c6616754295d7
#: ../../networking.rst:192
msgid ""
"The CloudStack administrator can create any number of custom network "
"offerings, in addition to the default network offerings provided by "
"CloudStack. By creating multiple custom network offerings, you can set up "
"your cloud to offer different classes of service on a single multi-tenant "
"physical network. For example, while the underlying physical wiring may be "
"the same for two tenants, tenant A may only need simple firewall protection "
"for their website, while tenant B may be running a web server farm and "
"require a scalable firewall solution, load balancing solution, and "
"alternate networks for accessing the database backend."
msgstr ""
"L'administrateur CloudStack peut créer autant d'offres réseaux "
"personnalisées en complément des offres réseaux par défaut fournies par "
"CloudStack. En créant plusieurs offres de réseaux personnalisées, vous "
"pouvez configurer votre cloud pour fournir différentes classes de service "
"sur un seul réseau physique. Par exemple, alors que le câblage physique "
"sous-jacent peut être le même pour les deux parties, la partie A peut "
"seulement nécessiter une simple protection par pare-feu de son site, alors "
"que la partie B peut lancer une ferme de serveurs web et nécessiter une "
"solution de pare-feu évolutive, une solution de répartition de charge, et "
"des réseaux alternatifs pour accéder au backend de base de données."

# f84d6b9ac9d44d159518d14cc74cef39
#: ../../networking.rst:204
msgid ""
"If you create load balancing rules while using a network service offering "
"that includes an external load balancer device such as NetScaler, and later "
"change the network service offering to one that uses the CloudStack virtual "
"router, you must create a firewall rule on the virtual router for each of "
"your existing load balancing rules so that they continue to function."
msgstr ""
"Si vous créez des règles de répartition de charge lors de votre utilisation "
"d'une offre de service réseau qui inclue un périphérique externe de "
"répartition de charge comme un NetScaler, et plus tard changer l'offre de "
"service réseau pour une qui utilise un routeur virtuel CloudStack, vous "
"devrez créer une règle de pare-feu sur le routeur virtuel pour chacune de "
"vos règles de répartition de charge afin qu'il puisse continuer de "
"fonctionner."

# 6a193ad193634184b47093dfab78d48b
#: ../../networking.rst:211
msgid ""
"When creating a new virtual network, the CloudStack administrator chooses "
"which network offering to enable for that network. Each virtual network is "
"associated with one network offering. A virtual network can be upgraded or "
"downgraded by changing its associated network offering. If you do this, be "
"sure to reprogram the physical network to match."
msgstr ""
"Lorsque vous créez un nouveau réseau virtuel, l'administrateur CloudStack "
"choisit quelle offre de réseau activer pour chaque réseau. Chaque réseau "
"virtuel est associé avec une offre de service. Un routeur virtuel peut être "
"amélioré ou rétrogradé en changeant son offre de réseau associé. Si vous "
"faîtes cela, soyez certains de reprogrammer le réseau physique pour "
"correspondre."

# 514547d261a44dbba069882e1163a863
#: ../../networking.rst:217
msgid ""
"CloudStack also has internal network offerings for use by CloudStack system "
"VMs. These network offerings are not visible to users but can be modified "
"by administrators."
msgstr ""
"CloudStack a aussi des offres de réseaux internes pour les besoins des VMs "
"systèmes CloudStack. Ces offres de réseaux ne sont pas visibles des "
"utilisateurs mais peuvent être modifiées par les administrateurs."

# 9eab025e1e0b4102aabc5ed825ad3513
#: ../../networking.rst:223
msgid "Creating a New Network Offering"
msgstr "Créer une nouvelle offre de service Réseau"

# 101c5c58b3164f2d91d7c068fa2ddc13
#: ../../networking.rst:225
msgid "To create a network offering:"
msgstr "Pour créer une offre de réseau :"

# ad144ea208224f0ba8bfd3d268ebaa1a
#: ../../networking.rst:227
msgid "Log in with admin privileges to the CloudStack UI."
msgstr ""
"Se connecter avec les droits d'administrateur à l'interface CloudStack."

# 7183c1c87f1e4a549609755e3b609e22
#: ../../networking.rst:229
msgid "In the left navigation bar, click Service Offerings."
msgstr ""
"Dans la barre de navigation de gauche, cliquer sur les Offres de Service."

# 22b7bae2bee145399e00d289bccc7917
#: ../../networking.rst:231
msgid "In Select Offering, choose Network Offering."
msgstr "Dans Sélectionner une offre, choisir une offre réseau."

# ef1169d122904044a6c0246757cbbb46
#: ../../networking.rst:233
msgid "Click Add Network Offering."
msgstr "Cliquer sur Ajouter une offre de réseau."

# 3479c8e9a5ef4f458aa9a86725ea9a15
#: ../../networking.rst:235
msgid "In the dialog, make the following choices:"
msgstr "Dans la boîte de dialogue, faire les choix suivants :"

# b9faa7d006ed43108fcd33897fea3a5f
#: ../../networking.rst:237
msgid "**Name**. Any desired name for the network offering."
msgstr "**Nom** : N'importe quel nom souhaité pour l'offre de réseau."

# 28d48401d7c74f61a6251f06e8e33ea5
#: ../../networking.rst:239
msgid ""
"**Description**. A short description of the offering that can be displayed "
"to users."
msgstr ""
"**Description** : Une description courte pour l'offre qui peut être "
"affichée aux utilisateurs."

# a81d203163fd41108b4ed24231b5c84d
#: ../../networking.rst:242
msgid "**Network Rate**. Allowed data transfer rate in MB per second."
msgstr ""
"**Vitesse Réseau** : Vitesse de transfert de données autorisée en MB par "
"seconde."

# bf34e4c1410c487c81e21d82564c0ceb
#: ../../networking.rst:244
msgid ""
"**Guest Type**. Choose whether the guest network is isolated or shared."
msgstr "**Type d'invité**. Choisir si le réseau invité est isolé ou partagé."

# 636bbcf4e8ff4e89bc5a3263fa3152fd
#: ../../networking.rst:247
msgid ""
"For a description of this term, see `“About Virtual Networks” <#about-"
"virtual-networks>`_."
msgstr ""
"Pour une description de ces termes, voir `“A propos des Réseaux Virtuels” "
"<#about-virtual-networks>`_."

# d9e50bd69812476c975c4eb28509a054
#: ../../networking.rst:250
msgid ""
"**Persistent**. Indicate whether the guest network is persistent or not. "
"The network that you can provision without having to deploy a VM on it is "
"termed persistent network. For more information, see `“Persistent Networks” "
"<networking2.html#persistent-networks>`_."
msgstr ""
"**Persistent**. Indique si le réseau invité est persistent ou pas. Le "
"réseau que vous pouvez provisionner sans avoir à déployer une VM sur celui-"
"ci est appelé réseau persistant. Pour plus d'informations, voir `“Réseaux "
"Persistants” <networking2.html#persistent-networks>`_."

# a78fcf61c20941b4a0074b52d456b4fb
#: ../../networking.rst:256
msgid ""
"**Specify VLAN**. (Isolated guest networks only) Indicate whether a VLAN "
"could be specified when this offering is used. If you select this option "
"and later use this network offering while creating a VPC tier or an "
"isolated network, you will be able to specify a VLAN ID for the network you "
"create."
msgstr ""
"**Spécifier un VLAN**. (Réseaux invités isolés seulement) Indique si un "
"VLAN peut être spécifié quand cette offre est utilisée. Si vous "
"sélectionnez cette option et plus tard utilisez cette offre réseau lors de "
"la création d'un VPC ou un réseau isolé, vous pourrez spécifier un ID de "
"VLAN pour le réseau que vous créez."

# 0c356efbc6b1453083e1df0e795cfc3f
#: ../../networking.rst:262
msgid ""
"**VPC**. This option indicate whether the guest network is Virtual Private "
"Cloud-enabled. A Virtual Private Cloud (VPC) is a private, isolated part of "
"CloudStack. A VPC can have its own virtual network topology that resembles "
"a traditional physical network. For more information on VPCs, see `“About "
"Virtual Private Clouds” <networking2.html#about-virtual-private-clouds>`_."
msgstr ""
"**VPC**. Cette option indique si le réseau invité est activable pour un "
"Cloud Virtuel Privé. Un Cloud Virtuel Privé (VPC) est une partie de "
"CloudStack privée, isolée. Un VPC peut avoir sa propre topologie réseau "
"virtuelle qui ressemble a un réseau privé traditionnel. Pour plus "
"d'informations sur les VPC, voir `“A propos des Clouds Privés Virtuels” "
"<networking2.html#about-virtual-private-clouds>`_."

# 99699a8ca7b8442b9273331bf3721599
#: ../../networking.rst:269
msgid ""
"**Supported Services**. Select one or more of the possible network "
"services. For some services, you must also choose the service provider; for "
"example, if you select Load Balancer, you can choose the CloudStack virtual "
"router or any other load balancers that have been configured in the cloud. "
"Depending on which services you choose, additional fields may appear in the "
"rest of the dialog box."
msgstr ""
"**Services supportés**. Sélectionner un ou plusieurs des services réseaux "
"possibles. Pour certains services, vous devez aussi choisir le fournisseur "
"de service ; par exemple, si vous sélectionnez un Répartiteur de Charge, "
"vous pouvez choisir le routeur virtuel CloudStack ou n'importe quels autres "
"répartiteurs qui ont été configurés dans la cloud. En fonction du service "
"que vous avez choisi, des champs additionnels peuvent apparaître dans le "
"reste de la boîte de dialogue."

# 92f1a16c1ffe4ceb84808c9ba972cbd4
#: ../../networking.rst:277
msgid ""
"Based on the guest network type selected, you can see the following "
"supported services:"
msgstr ""
"En fonction du type de réseau invité sélectionné, vous pouvez voir les "
"services supportés suivants :"

# 88a57a6470eb454ba571d8fde5632a82
#: ../../networking.rst:281
msgid "Supported Services"
msgstr "Services supportés"

# d4aa55848ef645639458f908896ac697
#: ../../networking.rst:281
msgid "Description"
msgstr "Description"

# f8724e6bbae14251ae83b23169d9420f
#: ../../networking.rst:281
msgid "Isolated"
msgstr "Isolé"

# 23bd72f8680a493682d6741602166846
#: ../../networking.rst:281
msgid "Shared"
msgstr "Partagé"

# b488c5b17c004a7b88b330efbc3bc05f
# 9817c5466dbe4abf99c2de124120bbed
#: ../../networking.rst:283 ../../networking.rst:284
msgid ""
"For more information, see `“DNS and DHCP” <networking2.html#dns-and-dhcp>`_."
msgstr ""
"Pour plus d'informations, voir `“DNS et DHCP” <networking2.html#dns-and-"
"dhcp>`_."

# c4875cd1ba3341f0801c282d362f1d24
# d065a3aee4944733bff2d01f26b75c7f
# 9f736e032cce456ebb4f77be38b5e58f
# 7df1ac5d383948bd84380b75c4e098af
# 3ba5059895ef4d1c85924407662447ee
# 3e841c3844b94853b7a8aaaed25cd4ad
# c77eeef8c5314be099fb3716d3445a66
# 25f106d12a764b078bb2b6524ad18215
# f63379e1fe44403bb4b003d91fc04f93
# 4f4951219e654f71ba852ba5238e8851
# 15ddd915917341cb80019e9b900a4731
# 8dacf6aaa0704e9db73a0126c94e16e5
# 50e87369ed7e48e29d7cb426767a5ed8
# c1b167740f9e43c2a17a96fbf65930bf
# 22a23c6ed73740b8a269adc46484bd2a
# bb47b4ce2443499aa4f5308fec5ed187
# 8754a866d8d14c92a6556744cf012422
#: ../../networking.rst:283 ../../networking.rst:284 ../../networking.rst:285
#: ../../networking.rst:288 ../../networking.rst:289 ../../networking.rst:292
#: ../../networking.rst:295 ../../networking.rst:298 ../../networking.rst:300
#: ../../networking.rst:302 ../../networking.rst:304
msgid "Supported"
msgstr "Supporté"

# 50819151ad5442aeb2570677b2632a46
#: ../../networking.rst:285
msgid "Load Balancer"
msgstr "Répartition de charge"

# b9edc8827ba44d2db0f62206a215e670
#: ../../networking.rst:285
msgid ""
"If you select Load Balancer, you can choose the CloudStack virtual router "
"or any other load balancers that have been configured in the cloud."
msgstr ""
"Si vous choisissez Répartiteur de Charge, vous pouvez choisir le routeur "
"virtuel CloudStack ou n'importe quel répartiteur de charge qui a été "
"configuré dans le cloud."

# 2e489054cb1e4a35ac3e90f70c1f1255
#: ../../networking.rst:288
msgid "For more information, see the Administration Guide."
msgstr "Pour plus d'informations, voir le Guide d'Administration."

# 8e117eda9d13423c93e568f0818cc4d9
#: ../../networking.rst:289
msgid ""
"If you select Source NAT, you can choose the CloudStack virtual router or "
"any other Source NAT providers that have been configured in the cloud."
msgstr ""
"Si vous sélectionnez Source NAT, vous pouvez choisir le routeur virtuel "
"CloudStack ou n'importe quel autre fournisseur de Source NAT qui a été "
"configuré dans le cloud."

# aba8109b051a46d89785cb597e382503
#: ../../networking.rst:292
msgid ""
"If you select Static NAT, you can choose the CloudStack virtual router or "
"any other Static NAT providers that have been configured in the cloud."
msgstr ""
"Si vous sélectionnez NAT Statique, vous pouvez choisir le routeur virtuel "
"CloudStack ou n'importe quel autre fournisseur de NAT Statique qui a été "
"configuré dans le cloud."

# d932fb3f0c49487e8fb03f47c8ec3137
#: ../../networking.rst:295
msgid ""
"If you select Port Forwarding, you can choose the CloudStack virtual router "
"or any other Port Forwarding providers that have been configured in the "
"cloud."
msgstr ""
"Si vous sélectionnez Transmission de Port, vous pouvez choisir le routeur "
"virtuel CloudStack ou n'importe quel fournisseur de Transmission de Port "
"qui a été configuré dans le cloud."

# ba3080b2df494a6194c5a4ec14bd1410
# 5c07262385d1478c927953b93692e644
# 23f57ac958b34548a1c2d23a776e1da8
# c3490a0f19134b8b886f204a4794c427
# 111a4f3a414c443cb13dcb958326620f
#: ../../networking.rst:295 ../../networking.rst:298 ../../networking.rst:300
#: ../../networking.rst:302 ../../networking.rst:304
msgid "Not Supported"
msgstr "Non supporté"

# ab512b24e90a4f0fbeff2872914232bf
#: ../../networking.rst:298
msgid ""
"For more information, see `“Remote Access VPN” <networking2.html#remote-"
"access-vpn>`_."
msgstr ""
"Pour plus d'informations, voir `“Accès distant VPN” <networking2."
"html#remote-access-vpn>`_."

# bc836dbec7dd41098535b7062953abf7
#: ../../networking.rst:300
msgid "User Data"
msgstr "Donnée utilisateur"

# 2ee92986a8924dd1a8704e477e3ce1a6
#: ../../networking.rst:300
msgid ""
"For more information, see `“User Data and Meta Data” <api.html#user-data-"
"and-meta-data>`_."
msgstr ""
"Pour plus d'informations, voir `“Données et Méta-données utilisateur” <api."
"html#user-data-and-meta-data>`_."

# c84e2a3c0cb2440f96442843325bf941
#: ../../networking.rst:302
msgid "Network ACL"
msgstr "ACL réseau"

# 1a00657b608e45b9b31d17dedf1209d9
#: ../../networking.rst:302
msgid ""
"For more information, see `“Configuring Network Access Control List” "
"<networking2.html#configuring-network-access-control-list>`_."
msgstr ""
"Pour plus d'informations, voir `“Configurer les Listes de Contrôles d'Accès "
"Réseau” <networking2.html#configuring-network-access-control-list>`_."

# 72b47ce7c25a4820af0c52549a594235
#: ../../networking.rst:304
msgid "Security Groups"
msgstr "Groupes de sécurité"

# 08f3a340905b433990695bcc9c4fdd28
#: ../../networking.rst:304
msgid ""
"For more information, see `“Adding a Security Group” <networking2."
"html#adding-a-security-group>`_."
msgstr ""
"Pour plus d'informations, voir `“Ajouter un groupe de sécurité” "
"<networking2.html#adding-a-security-group>`_."

# e235b3337dbb400c90ecee3f5837fde2
#: ../../networking.rst:309
msgid ""
"**System Offering**. If the service provider for any of the services "
"selected in Supported Services is a virtual router, the System Offering "
"field appears. Choose the system service offering that you want virtual "
"routers to use in this network. For example, if you selected Load Balancer "
"in Supported Services and selected a virtual router to provide load "
"balancing, the System Offering field appears so you can choose between the "
"CloudStack default system service offering and any custom system service "
"offerings that have been defined by the CloudStack root administrator."
msgstr ""
"**Offre système**. Si le fournisseur de service pour n'importe lequel des "
"services sélectionnés dans les Services Supportés est un routeur virtuel, "
"le champ Offre Système apparaît. Choisir l'offre de service système que "
"vous voulez que les routeurs virtuels utilisent dans ce réseau. Par "
"exemple, si vous avez sélectionné Répartiteur de Charge dans les Services "
"Supportés et sélectionné un routeur virtuel pour fournir la répartition de "
"charge, le champ Offre Système apparaît afin que vous puissiez choisir "
"entre l'offre de service système par défaut de CloudStack ou n'importe "
"quelle offre de service système personnalisée qui a été définie par "
"l'administrateur CloudStack."

# 34b519afb51c4d1f9b1718b0f32cb527
#: ../../networking.rst:319
msgid ""
"For more information, see `“System Service Offerings” <service_offerings."
"html#system-service-offerings>`_."
msgstr ""
"Pour plus d'informations, voir `“Offres de service système” "
"<service_offerings.html#system-service-offerings>`_."

# 66fb3b1df7164cd6bc37c61a61367d73
#: ../../networking.rst:322
msgid ""
"**LB Isolation**: Specify what type of load balancer isolation you want for "
"the network: Shared or Dedicated."
msgstr ""
"**LB Isolation** : Spécifie quel type d'isolation par répartiteur de charge "
"vous voulez pour le réseau : Partagé ou Dédié."

# a07b6242746142e18198a5bf7356254f
#: ../../networking.rst:325
msgid ""
"**Dedicated**: If you select dedicated LB isolation, a dedicated load "
"balancer device is assigned for the network from the pool of dedicated load "
"balancer devices provisioned in the zone. If no sufficient dedicated load "
"balancer devices are available in the zone, network creation fails. "
"Dedicated device is a good choice for the high-traffic networks that make "
"full use of the device's resources."
msgstr ""
"**Dédié** : Si vous sélectionnez une isolation par LB dédié, un "
"périphérique répartiteur de charge dédié est assignée pour le réseau depuis "
"la réserve de périphériques de répartition de charge dédiés provisionnés "
"dans la zone. Si aucun périphérique de répartition de charge dédié n'est "
"disponible dans la zone, la création du réseau échoue. Un périphérique "
"dédié est un bon choix pour les réseaux à fort trafic qui font un usage "
"complet des ressources du périphérique."

# 1481728f6860436790f1bbdf1de1b4d0
#: ../../networking.rst:333
msgid ""
"**Shared**: If you select shared LB isolation, a shared load balancer "
"device is assigned for the network from the pool of shared load balancer "
"devices provisioned in the zone. While provisioning CloudStack picks the "
"shared load balancer device that is used by the least number of accounts. "
"Once the device reaches its maximum capacity, the device will not be "
"allocated to a new account."
msgstr ""
"**Partagé** : Si vous sélectionnez une isolation par LB partagé, un "
"périphérique de répartition de charge partagé est assigné pour le réseau "
"depuis la réserve des périphériques de répartiteurs de charge partagés "
"provisionnés dans la zone. Lors du provisionnement, CloudStack choisit le "
"périphérique de répartition de charge partagé qui est utilisé par le plus "
"petit nombre de comptes. Une fois que le périphérique a atteint le maximum "
"de ses capacités, le périphérique ne sera plus attribué à de nouveaux "
"comptes."

# 232eced6797144d7b6cb941627e8d2e6
#: ../../networking.rst:341
msgid "**Mode**: You can select either Inline mode or Side by Side mode:"
msgstr ""
"**Mode** :  Vous pouvez sélectionner soit le mode En ligne ou le mode Côte "
"à Côte."

# 7684aca0c54c44fb9871f784de706a13
#: ../../networking.rst:343
msgid ""
"**Inline mode**: Supported only for Juniper SRX firewall and BigF5 load "
"balancer devices. In inline mode, a firewall device is placed in front of a "
"load balancing device. The firewall acts as the gateway for all the "
"incoming traffic, then redirect the load balancing traffic to the load "
"balancer behind it. The load balancer in this case will not have the direct "
"access to the public network."
msgstr ""
"**Mode en ligne** : Supporté seulement par les pare-feu Juniper SRX et les "
"périphériques de répartition de charge BigF5. Dans le mode en ligne, un "
"périphérique parefeu est placé devant un périphérique de répartition de "
"charge. Le parefeu agit comme une passerelle pour tout le trafic entrant "
"qui redirige tout le trafic à répartir au répartiteur de charge derrière "
"lui. Le répartiteur de charge dans ce cas n'aura pas laccès directement au "
"réseau public."

# a5a609bdc196450fb249b0fed2b62618
#: ../../networking.rst:351
msgid ""
"**Side by Side**: In side by side mode, a firewall device is deployed in "
"parallel with the load balancer device. So the traffic to the load balancer "
"public IP is not routed through the firewall, and therefore, is exposed to "
"the public network."
msgstr ""
"**Côte à côte** : Dans le mode côte à côte, un périphérique de parefeu est "
"déployé en parallèle du périphérique de répartition de charge. Le trafic "
"vers l'adresse IP publique du répartiteur de charge n'est pas routé via le "
"parefeu, et par conséquent il est exposé au réseau public."

# fddae68fcb5145e68976043eb707eed5
#: ../../networking.rst:356
msgid ""
"**Associate Public IP**: Select this option if you want to assign a public "
"IP address to the VMs deployed in the guest network. This option is "
"available only if"
msgstr ""
"**IP publique associée** : Sélectionnez cette option si vous voulez "
"assigner une adresse IP publique aux VMs déployées dans le réseau invité. "
"Cette option est disponible seulement si"

# b6cedd774fb4418b8c7f09c30e492ac5
#: ../../networking.rst:360
msgid "Guest network is shared."
msgstr "Le réseau invité est partagé."

# c011835f1c314df2afcb840630a7ff99
#: ../../networking.rst:362
msgid "StaticNAT is enabled."
msgstr "Le NAT-age statique est activé."

# fcd9521a7c684aaaaacf045798eaaf33
#: ../../networking.rst:364
msgid "Elastic IP is enabled."
msgstr "Elastic IP est activé."

# 9818049dc1484f41b94a2c0c3904838d
#: ../../networking.rst:366
msgid ""
"For information on Elastic IP, see `“About Elastic IP” <networking2."
"html#about-elastic-ip>`_."
msgstr ""
"Pour des informations sur Elastic IP, voir `“A propos d'Elastic IP” "
"<networking2.html#about-elastic-ip>`_."

# 6c9c68a68ab14d30a00460dd3b13f8a6
#: ../../networking.rst:369
msgid ""
"**Redundant router capability**: Available only when Virtual Router is "
"selected as the Source NAT provider. Select this option if you want to use "
"two virtual routers in the network for uninterrupted connection: one "
"operating as the master virtual router and the other as the backup. The "
"master virtual router receives requests from and sends responses to the "
"user’s VM. The backup virtual router is activated only when the master is "
"down. After the failover, the backup becomes the master virtual router. "
"CloudStack deploys the routers on different hosts to ensure reliability if "
"one host is down."
msgstr ""
"**Capacité de routeur redondant** : disponible seulement quand le Routeur "
"Virtuel est sélectionné comme fournisseur de Source NAT. Sélectionner cette "
"option si vous voulez utiliser 2 routeurs virtuels dans le réseau pour des "
"connexion ininterrompues : un opère comme routeur virtuel maître et l'autre "
"comme secours. Le routeur virtuel maître reçoit les requêtes des VMs "
"utilisateurs et leur envoi les réponses. Le routeur virtuel de secours est "
"activé seulement quand le maître est indisponible. Après la panne, le "
"secours devient le routeur virtuel maître. CloudStack déploie les routeurs "
"sur des hôtes différents pour assurer la fiabilité si un des hôtes est "
"indisponible."

# e5994ec5233c4a979624fa1fc8593822
#: ../../networking.rst:380
msgid ""
"**Conserve mode**: Indicate whether to use conserve mode. In this mode, "
"network resources are allocated only when the first virtual machine starts "
"in the network. When conservative mode is off, the public IP can only be "
"used for a single service. For example, a public IP used for a port "
"forwarding rule cannot be used for defining other services, such as "
"StaticNAT or load balancing. When the conserve mode is on, you can define "
"more than one service on the same public IP."
msgstr ""
"**Mode conservation** : Indique si le mode conservation est utilisé. Dans "
"ce mode, les ressources réseaux sont allouée seulement lorsque la première "
"machine virtuelle démarre dans le réseau. Quand le mode de conservation est "
"arrêté, l'IP publique peut seulement être utilisée pour un seul "
"périphérique. Par exemple, une IP publique utilisée pour une règle de "
"transmission de port ne peut pas être utilisée pour définir d'autres "
"services, comme le StaticNAT ou la répartition de charge. Quand le mode de "
"conservation est activé, vous pouvez définir plus d'un service avec la même "
"IP publique."

# 6a2faa335b6b42588d747ac83fc4770b
#: ../../networking.rst:390
msgid ""
"If StaticNAT is enabled, irrespective of the status of the conserve mode, "
"no port forwarding or load balancing rule can be created for the IP. "
"However, you can add the firewall rules by using the createFirewallRule "
"command."
msgstr ""
"Si le StaticNAT est activé, quelque soit le statut du mode conservé, aucune "
"transmission de port ou règle de répartition de charge he peut être crée "
"pour l'IP. Toutefois, vous pouvez ajouter les règles de pare-feu en "
"utilisant la commande createFirewallRule."

# 029a76d3e8444e15981d3fda29b8982e
#: ../../networking.rst:395
msgid "**Tags**: Network tag to specify which physical network to use."
msgstr ""
"**Etiquettes** : Etiquette réseau pour spécifier quel réseau physique "
"utiliser."

# e0d7d2460dba47d29922d3dcf0d16dc5
#: ../../networking.rst:397
msgid ""
"**Default egress policy**: Configure the default policy for firewall egress "
"rules. Options are Allow and Deny. Default is Allow if no egress policy is "
"specified, which indicates that all the egress traffic is accepted when a "
"guest network is created from this offering."
msgstr ""
"**Politique de sortie par défaut** : Configurer la politique par défaut "
"pour les règles sortantes par défaut. Les options sont Autoriser ou "
"Refuser. La valeur par défaut est Autoriser si aucune règle sortante n'est "
"spécifiée, ce qui indique que tout le trafic sortant est accepté lorsque le "
"réseau invité est crée depuis cette offre."

# 6cf9fba73dda48b8801d8608ce2f52a4
#: ../../networking.rst:403
msgid ""
"To block the egress traffic for a guest network, select Deny. In this case, "
"when you configure an egress rules for an isolated guest network, rules are "
"added to allow the specified traffic."
msgstr ""
"Pour bloquer le trafic sortant pour un réseau invité, sélectionner Refuser. "
"Dans ce cas, lorsque vous configurez des règles sortantes pour un réseau "
"invité isolé, les règles sont ajoutées pour autoriser le trafic spécifié."

# fcfc7b9313f94bbda5ac1afbd8168f7c
#: ../../networking.rst:407
msgid "Click Add."
msgstr "Cliquer sur Ajouter."
