# 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.
DeleteDialog.UseTreeDeleteControl=Utiliser le control Tree Delete
EntryExistsCopyStrategyDialogImpl.IgnoreEntryAndContinue=Ignorer l''entr\u00E9e et continuer
EntryExistsCopyStrategyDialogImpl.OverwriteEntryAndContinue=Ecraser l''entr\u00E9e et continuer
EntryExistsCopyStrategyDialogImpl.RenameEntryAndContinue=Renommer l''entr\u00E9e et continuer
EntryExistsCopyStrategyDialogImpl.SelectCopyStrategy=S\u00E9lectionner une strat\u00E9gie de copie
EntryExistsCopyStrategyDialogImpl.SelectCopyStrategyDescription=L''entr\u00E9e {0} existe d\u00E9j\u00E0. Veuillez s\u00E9lectionner la fa\u00E7on de proc\u00E9der.
EntryExistsCopyStrategyDialogImpl.StopCopyProcess=Arr\u00EAter le processus de copie
FilterDialog.FilterEditor=Editeur de filtre
FilterDialog.Format=Formater
FilterWidgetDialog.EnterValidFilter=Veuillez entrer un filtre valide.
HexDialog.CantReadFile=Impossible de lire le fichier
HexDialog.CantWriteToFile=Impossible d''\u00E9crire le fichier
HexDialog.EditAsText=Editer comme texte...
HexDialog.HexEditor=Editeur Hex
HexDialog.LoadData=Charger des donn\u00E9es
HexDialog.LoadDataButton=Charger des donn\u00E9es...
HexDialog.SaveData=Sauvegarder des donn\u00E9es
HexDialog.SaveDataButton=Sauvegarder des donn\u00E9es...
MoveEntriesDialog.MoveEntries=D\u00E9placer les entr\u00E9es
MoveEntriesDialog.MoveEntriesDescription=Veuillez entrer/s\u00E9lectionner le DN parent o\u00F9 les entr\u00E9es s\u00E9lectionn\u00E9es doivent \u00EAtre d\u00E9plac\u00E9es.
MultivaluedDialog.MultivaluedEditor=Editeur multivalu\u00E9
RenameEntryDialog.RenameEntry=Renommer l''entr\u00E9e
RenameEntryDialog.RenameEntryDescription=Veuillez entrer le nouveau RDN de l''entr\u00E9e s\u00E9lectionn\u00E9e.
ScopeDialog.CopiedEntriesAndDirectChildren=O&ne Level (Les entr\u00E9es copi\u00E9es et leurs fils directs)
ScopeDialog.CopiedEntryAndDirectChildren=O&ne Level (L''entr\u00E9e copi\u00E9e et ses fils directs)
ScopeDialog.OnlyCopiedEntries=&Object (Uniquement les entr\u00E9es copi\u00E9es)
ScopeDialog.OnlyCopiedEntry=&Object (Uniquement l''entr\u00E9e copi\u00E9e)
ScopeDialog.SelectCopyDepth=Veuillez s\u00E9lectionner la profondeur de copie
ScopeDialog.WholeSubtree=&Subtree (Tout le sous-arbre)
ScopeDialog.WholeSubtrees=&Subtree (Tout les sous-arbres)
SimulateRenameDialogImpl.SimulateButton=Appuyer sur OK pour simuler l''op\u00E9ration de d\u00E9placement/renommage par recherche/copie/suppression.
SimulateRenameDialogImpl.SimulateRename=Simuler le d\u00E9placement/renommage ?
SimulateRenameDialogImpl.SimulateRenameDescription1=Vous essayez de d\u00E9placer/renommer {0} vers/en {1}.
SimulateRenameDialogImpl.SimulateRenameDescription2=Le serveur LDAP {0} ne supporte pas le d\u00E9placement/renommage d''entr\u00E9e qui ne sont pas des feuilles.
TextDialog.TextEditor=Editeur de texte
TextDialog.WrapLines=Formatage des lignes