#############################################################################
# Copyright (c) 2013, 2017 CEA LIST and others.
#
# 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:
#   CEA LIST - Initial API and implementation
#   Eike Stepper (CEA) - bug 466520
#############################################################################
AbstractModelImportMapping_0=No mapping specified for {0}
AbstractModelImportMapping_1=Resource already exists at mapping "{0}" for {1}
AbstractModelTransferMapping_0=Multiple models map to the same path: {0}
AbstractModelTransferMapping_1=No checkout specified.
AbstractModelTransferMapping_2=Checkout "{0}" is not open.
CDOAwareModelSetServiceFactory_0=Failed to unload CDO-aware ModelSet.
CDOControlModeParticipant_commandLabel=CDO aspects
CDOUndoContext_0=Affects objects({0})
CommitException_0=Commit failed.
ModelExporter_0=Exporting models
ModelExporter_1=Failed to save exported model in the workspace.
ModelExportMapping_0=No mapping specified for {0}
ModelExportMapping_1=No such project for mapping "{0}" for {1}
ModelExportMapping_2=Cannot create parent folder because a file already exists at "{0}" for {1}
ModelExportMapping_3=A resource already exists at "{0}" for {1}
ModelImporter_10=Failed to save workspace dependent of imported model.
ModelImporter_4=Importing models
ModelImporter_5=Failed to commit import transaction.
ModelImporter_6=Failed to save affected models in the workspace.
ModelImporter_9=Saving workspace models...
ModelTransferConfiguration_0=Calculating model dependents ...
ModelTransferConfiguration_1=Not all models that reference {0} are selected for {1}.
ModelTransferConfiguration_2=Not all models that are referenced by {0} are selected for {1}.
ModelTransferConfiguration_3=Parent unit {2} of controlled unit {0} must be selected for {1}.
ModelTransferConfiguration_4=All controlled sub-units of {0} must be selected for {1}.
ModelTransferConfiguration_6=import
ModelTransferConfiguration_7=export
ModelTransferNode_0=Calculating model dependencies ...
