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

Perspective_SchemaEditor_name=Editeur de sch\u00E9ma

Views_Category_name=Editeur de sch\u00E9ma

View_SchemaView_name=Sch\u00E9ma

View_HierarchyView_name=Hi\u00E9rarchie

View_ProblemsView_name=Probl\u00E8mes

View_ProjectsView_name=Projets

View_SearchView_name=Rechercher

NewWizards_Category_name=Editeur de sch\u00E9ma

NewWizard_NewProjectWizard_name=Nouveau projet de sch\u00E9ma

NewWizard_NewSchemaWizard_name=Nouveau sch\u00E9ma

NewWizard_NewAttributeTypeWizard_name=Nouveau type d'attribut

NewWizard_NewObjectClassWizard_name=Nouvelle classe d'objet

Editor_ObjectClassEditor_name=Editeur de classe d'objet

Editor_AttributeTypeEditor_name=Editeur de type d'attribut

Editor_SchemaEditor_name=Editeur de sch\u00E9ma

ExportWizards_Category_name=Editeur de sch\u00E9ma

ExportWizard_ExportSchemasAsXmlWizard_name=Sch\u00E9mas vers fichiers XML

ExportWizard_ExportSchemasAsOpenLdapWizard_name=Sch\u00E9mas vers fichier OpenLDAP

ExportWizard_ExportSchemasForADSWizard_name=Schemas vers fichier ApacheDS

ExportWizard_ExportProjectsWizard_name=Projets de sch\u00E9ma

ImportWizards_Category_name=Editeur de sch\u00E9ma

ImportWizard_ImportCoreSchemasWizard_name=Fichiers de sch\u00E9ma de base

ImportWizard_ImportSchemasFromXmlWizard_name=Sch\u00E9mas \u00E0 partir de fichiers XML

ImportWizard_ImportSchemasFromOpenLdapWizard_name=Sch\u00E9mas \u00E0 partir de fichiers OpenLDAP

ImportWizard_ImportProjectsWizard_name=Projets de sch\u00E9ma

PrefPage_SchemaEditor_name=Editeur de sch\u00E9ma

PrefPage_HierarchyView_name=Vue hi\u00E9rarchie

PrefPage_SchemaView_name=Vue sch\u00E9ma

PrefPage_SearchView_name=Vue rechercher

Decorator_SchemaEditorTypeDecorator_label=D\u00E9corateur de type de l'\u00E9diteur de sch\u00E9ma
Decorator_SchemaEditorTypeDecorator_description=Illustre les icones de l'\u00E9diteur de sch\u00E9ma avec les informations de type

Decorator_SchemaEditorSchemaCheckerDecorator_label=D\u00E9corateur de contr\u00F4le de sch\u00E9ma de l'\u00E9diteur de sch\u00E9ma
Decorator_SchemaEditorSchemaCheckerDecorator_description=Illustre les icones de l'\u00E9diteur de sch\u00E9ma avec les informations de cont\u00F4le de sch\u00E9ma

SearchPage_SchemaEditorSearch_label=Rechercher dans l'\u00E9diteur de sch\u00E9ma

Ctx_ProjectsView_name=Dans la vue sur les projets de l'\u00E9diteur de sch\u00E9ma
Ctx_ProjectsView_description=Dans la vue sur les projets de l'\u00E9diteur de sch\u00E9ma

Ctx_SchemaView_name=Dans la vue sur le sch\u00E9ma de l'\u00E9diteur de sch\u00E9ma
Ctx_SchemaView_description=Dans la vue sur le sch\u00E9ma de l'\u00E9diteur de sch\u00E9ma

Cmd_Category_name=Editeur de sch\u00E9ma

Cmd_NewProject_name=Nouveau projet
Cmd_NewProject_description=Cr\u00E9\u00E9 un nouveau projet

Cmd_RenameProject_name=Renommer le projet
Cmd_RenameProject_description=Renomme le projet s\u00E9lectionn\u00E9

Cmd_DeleteProject_name=Supprimer le projet
Cmd_DeleteProject_description=Supprime le(s) projet(s) s\u00E9lectionn\u00E9(s)

Cmd_NewSchema_name=Nouveau sch\u00E9ma
Cmd_NewSchema_description=Cr\u00E9\u00E9 un nouveau sch\u00E9ma

Cmd_NewAttributeType_name=Nouveau type d'attribut
Cmd_NewAttributeType_description=Cr\u00E9\u00E9 un nouveau type d'attribut

Cmd_NewObjectClass_name=Nouvelle classe d'objet
Cmd_NewObjectClass_description=Cr\u00E9\u00E9 une nouvelle classe d'objet

Cmd_OpenElement_name=Ouvrir l'\u00E9l\u00E9ment
Cmd_OpenElement_description=Ouvrir l'\u00E9l\u00E9ment s\u00E9lectionn\u00E9

Cmd_OpenTypeHierarchy_name=Ouvrir la hi\u00E9rarchie de types
Cmd_OpenTypeHierarchy_description=Ouvrir l'\u00E9l\u00E9ment s\u00E9lectionn\u00E9 dans la hi\u00E9rarchie de types

Cmd_DeleteSchemaElement_name=Supprimer l'\u00E9l\u00E9ment de sch\u00E9ma
Cmd_DeleteSchemaElement_description=Supprimer l'\u00E9l\u00E9ment de sch\u00E9ma s\u00E9lectionn\u00E9

Cmd_RenameProject_name=Renommer l'\u00E9l\u00E9ment de sch\u00E9ma
Cmd_RenameProject_description=Renommer l'\u00E9l\u00E9ment de sch\u00E9ma s\u00E9lectionn\u00E9

SchemaConnector_ApacheDS_name=Connecteur de sch\u00E9ma ApacheDS
SchemaConnector_ApacheDS_description=Le connecteur de sch\u00E9ma ApacheDS est compatible avec ApacheDS (version 1.5 ou ult\u00E9rieure)

SchemaConnector_Generic_name=Connecteur de sch\u00E9ma g\u00E9n\u00E9rique
SchemaConnector_Generic_description=Le connecteur de sch\u00E9ma g\u00E9n\u00E9rique est compatible avec la plupart des serveurs d'annuaire (si le sch\u00E9ma est accessible via la valeur de DN de l'attribut 'subschemaSubentry' de la Root DSE)
