# ==============================================================================
#*+------------------------------------------------------------------------+
#*| Copyright (c) 2000, 2005   IBM Corporation 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:                                                          |
#*|    IBM Corporation - initial API and implementation                    |
#*+------------------------------------------------------------------------+
# ==============================================================================


## Errors ##

FileDocumentProvider_createElementInfo=FileDocumentProvider.createElementInfo
FileDocumentProvider_error_out_of_sync=The file has been changed on the file system
FileDocumentProvider_task_saving=Saving
FileDocumentProvider_resetDocument=FileDocumentProvider.resetDocument
FileDocumentProvider_resourceChanged=FileDocumentProvider.resourceChanged
FileDocumentProvider_handleElementContentChanged=FileDocumentProvider.handleElementContentChanged

StorageDocumentProvider_createElementInfo=StorageDocumentProvider.createElementInfo
StorageDocumentProvider_updateCache=StorageDocumentProvider.updateCache
StorageDocumentProvider_isReadOnly=StorageDocumentProvider.isReadOnly
StorageDocumentProvider_isModifiable=StorageDocumentProvider.isModifiable

#--- Exceptions ---
WizardPage_DIAGRAM_CREATION_FAIL_EXC_=Unable to create diagram file

#--- Errors ---
WizardPage_Message_FileExists_ERROR_=The same name already exists.

#---- File creation
FileCreator_TaskTitle = Creating
EditorWizardPage_DialogInternalErrorTitle=Creation Problems
EditorWizardPage_InvalidFilename = ''{0}'' is not a valid file name. 

#---- File Save As
FileSaveAs_DialogTitle =Problem During Save As...
FileSaveAs_DialogMessageText =Save could not be completed. Target file is already open in another editor.

