# 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.

Editor_LdifEditor_name=Editeur LDIF

NewWizard_NewLdifFileWizard_name=Fichier LDIF

PrefPage_LdifEditorPreferencePage_name=Editeur LDIF
PrefPage_LdifEditorContentAssistPreferencePage_name=Aide \u00E0 la saisie
PrefPage_LdifEditorSyntaxColoringPreferencePage_name=Coloration Syntaxique
PrefPage_LdifEditorTemplatesPreferencePage_name=Mod\u00E8les

CtxType_LdifFile_name=Fichier LDIF
CtxType_LdifAttributeValueRecord_name=Enregistrement LDIF de type Valeur d'Attribut
CtxType_LdifModificationRecord_name=Enregistrement LDIF de type Modification
CtxType_LdifModificationItem_name=El\u00E9ment LDIF de type Modification
CtxType_LdifModdnRecord_name=Enregistrement LDIF de type Moddn

Template_LdifContentRecord_description=Contenu d'un enregistrement LDIF
Template_LdifAddRecord_description=Modification LDIF 'change add'
Template_LdifModifyRecord_description=Modification LDIF 'change modify'
Template_LdifDeleteRecord_description=Modification LDIF 'change delete'
Template_LdifModdnRecord_description=Modification LDIF 'change modify DN'
Template_LdifModifyRecord_AddValue_description=Ajout d'une valeur
Template_LdifModifyRecord_ReplaceValue_description=Remplacement d'une valeur
Template_LdifModifyRecord_DeleteValue_description=Suppression d'une valeur
Template_LdifModifyRecord_DeleteAttribute_description=Suppression d'un attribut