###############################################################################
# Copyright (c) 2000, 2007 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
###############################################################################
### Equinox AppContainer plugin messages

### application
application_invalidExtension = Invalid (empty) application extension \"{0}\".
application_noIdFound = No application id has been found.
application_notFound=Application \"{0}\" could not be found in the registry. The applications available are: {1}.
application_returned=The application \"{0}\" returned with code: {1}.
application_errorStartDefault=An error occurred while starting the application
application_error_stopping=An error occurred while stopping the application: {0}
application_error_state_stopped=This instance of the application has been stopped:  {0}
application_error_starting=An error occurred while starting the application: {0}
application_instance_stopped=The application instance has been stopped before it could be started: {0}
### product
provider_invalid_general = Errors while processing the product providers.
provider_invalid = Problem creating the provider registered by {0}.
product_notFound = Product {0} could not be found.

### scheduled
scheduled_app_removed=Application has been unregistered
scheduled_app_launch_error=Failed to launch the scheduled application: {0}

### persistence
persistence_error_saving=An error occurred while saving: {0}

### singleton
singleton_running=A singleton application instance is already running: {0}
apps_running=One or more applications are already running
max_running=The application instance maximum has been reached: {0}
main_running=An application instance is already running on the main thread: {0} 
