###############################################################################
# Copyright (c) 2008, 2012 Obeo.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html
#
# Contributors:
#     Obeo - initial API and implementation
###############################################################################

# Start of user code for titles customization

# End of user code

# default values ...
GenEditionContextPropertiesEditionPart_ReferenceGroupLabel=Reference
GenEditionContextPropertiesEditionPart_ParametersGroupLabel=Parameters
GenEditionContextPropertiesEditionPart_ActivationGroupLabel=Activation
GenEditionContextPropertiesEditionPart_ImplementationGroupLabel=Implementation
EEFGenModelReferencePropertiesEditionPart_ReferenceGroupLabel=Reference
EEFGenModelPropertiesEditionPart_ParametersGroupLabel=Parameters
EEFGenModelPropertiesEditionPart_LegalGroupLabel=Legal
GenViewsRepositoryPropertiesEditionPart_ReferenceGroupLabel=Reference
GenViewsRepositoryPropertiesEditionPart_ParametersGroupLabel=Parameters
GenViewsRepositoryPropertiesEditionPart_ActivationGroupLabel=Activation
GenViewsRepositoryPropertiesEditionPart_ImplementationGroupLabel=Implementation
GenEditionContext_ReadOnly=Cette propri\u00E9t\u00E9 est en lecture seule
GenEditionContext_Part_Title=Base
EEFGenModelReference_ReadOnly=Cette propri\u00E9t\u00E9 est en lecture seule
EEFGenModelReference_Part_Title=Base
EEFGenModel_ReadOnly=Cette propri\u00E9t\u00E9 est en lecture seule
EEFGenModel_Part_Title=Base
GenViewsRepository_ReadOnly=Cette propri\u00E9t\u00E9 est en lecture seule
GenViewsRepository_Part_Title=Base
GenEditionContextPropertiesEditionPart_PropertiesEditionContextLabel=Properties Edition Context : 
GenEditionContextPropertiesEditionPart_BasePackageLabel=Base package : 
GenEditionContextPropertiesEditionPart_DescriptorsContributorIDLabel=Descriptors contributorID : 
GenEditionContextPropertiesEditionPart_GenericPropertiesViewsDescriptorsLabel=Generic properties views descriptors
GenEditionContextPropertiesEditionPart_GMFSpecificPropertiesViewsLabel=GMF specific properties views
GenEditionContextPropertiesEditionPart_JUnitTestCasesLabel=JUnit test cases
GenEditionContextPropertiesEditionPart_LeafComponentsSuperClassLabel=LeafComponentsSuperClass : 
GenEditionContextPropertiesEditionPart_PropertiesEditingProvidersSuperClassLabel=PropertiesEditingProvidersSuperClass : 
EEFGenModelReferencePropertiesEditionPart_ReferencedEEFGenModelLabel=Referenced EEFGenModel : 
EEFGenModelPropertiesEditionPart_GenerationDirectoryLabel=Generation directory : 
EEFGenModelPropertiesEditionPart_TestsGenerationDirectoryLabel=Tests generation directory : 
EEFGenModelPropertiesEditionPart_UseJMergeToManageUserCodeLabel=Use JMerge to manage user code
EEFGenModelPropertiesEditionPart_AuthorLabel=Author : 
EEFGenModelPropertiesEditionPart_LicenseLabel=License : 
GenViewsRepositoryPropertiesEditionPart_ViewsRepositoryLabel=Views repository : 
GenViewsRepositoryPropertiesEditionPart_BasePackageLabel=Base package : 
GenViewsRepositoryPropertiesEditionPart_HelpStrategyLabel=Help strategy : 
GenViewsRepositoryPropertiesEditionPart_SWTViewsLabel=SWT views
GenViewsRepositoryPropertiesEditionPart_FormsViewsLabel=Forms views
GenViewsRepositoryPropertiesEditionPart_PartsSuperClassLabel=PartsSuperClass : 
GenViewsRepositoryPropertiesEditionPart_FormsSuperClassLabel=FormsSuperClass : 
PropertiesEditionPart_PropertiesGroupLabel=Propri\u00E9t\u00E9s
PropertiesEditionPart_EditTableViewerLabel=Editer
PropertiesEditionPart_DocumentationLabel=Documentation
PropertiesEditionPart_RequiredFeatureMessage=La propri\u00E9t\u00E9 {0} de l\u0027objet doit \u00EAtre renseign\u00E9e
PropertiesEditionPart_RemoveTableViewerLabel=Supprimer
PropertiesEditionPart_RemoveListViewerLabel=Supprimer
PropertiesEditionPart_IntegerValueMessage=La propri\u00E9t\u00E9 {0} doit \u00EAtre un entier
PropertiesEditionPart_FloatValueMessage=La propri\u00E9t\u00E9 {0} doit \u00EAtre un flottant
PropertiesEditionPart_ShortValueMessage=La propri\u00E9t\u00E9 {0} doit \u00EAtre un short
PropertiesEditionPart_DoubleValueMessage=La propri\u00E9t\u00E9 {0} doit \u00EAtre un double
PropertiesEditionPart_ByteValueMessage=La propri\u00E9t\u00E9 {0} doit \u00EAtre un byte
PropertiesEditionPart_LongValueMessage=La propri\u00E9t\u00E9 {0} doit \u00EAtre un long
PropertiesEditionPart_BigIntegerValueMessage=La propri\u00E9t\u00E9 {0} doit \u00EAtre un BigInteger
PropertiesEditionPart_BigDecimalValueMessage=La propri\u00E9t\u00E9 {0} doit \u00EAtre un BigDecimal
PropertiesEditionPart_AddTableViewerLabel=Ajouter
PropertiesEditionPart_AddListViewerLabel=Ajouter
