###############################################################################
# Copyright (c) 2005, 2009 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
#	   Cloudsmith - ongoing development
###############################################################################
destination_commandline=<destination>
Deprecated_application=This application is deprecated. Please use the org.eclipse.equinox.p2.director application.
Help_Only_verify_dont_install=Only verify that the actions can be performed. Don't actually install or remove anything.
Operation_complete=Operation completed in {0} ms.
Operation_failed=Installation failed.
Cant_change_roaming=Problem while updating the profile {0}.

Missing_profileid = Must specify a profile id if a destination is specified.
Missing_director=Director could not be loaded.
Missing_Engine=Engine could not be loaded.
Missing_bundle=The ''{0}'' bundle is missing.
Missing_planner=Planner could not be loaded.
Missing_IU=The installable unit {0} has not been found.
Missing_Required_Argument=Missing required argument -{0}.
Help_A_list_of_properties_in_the_form_key_value_pairs=A list of properties in the form key=value pairs. Effective only when a new profile is created.
Help_A_list_of_URLs_denoting_artifact_repositories=A list of URL's denoting artifact repositories.
Help_A_list_of_URLs_denoting_colocated_repositories=A list of URL's denoting co-located meta-data and artifact repositories.
Help_A_list_of_URLs_denoting_metadata_repositories=A list of URL's denoting meta-data repositories.
Ambigous_Command=Cannot execute both {0} and {1} in one invocation.
Application_NoManager=The repository manager is not available.
Application_NoRepositories=Unable to load repositories.
Help_Defines_flavor_to_use_for_created_profile=Defines what flavor to use for a newly created profile.
Help_Defines_what_profile_to_use_for_the_actions=Defines what profile to use for the actions.
Help_Indicates_that_the_product_can_be_moved=Indicates that the product resulting from the installation can be moved. Effective only when a new profile is created.
Installing=Installing {0} {1}.
Help_Installs_the_listed_IUs=Installs the listed IU's. Each entry in the list is in the form <id> [ '/' <version> ].
Uninstalling=Uninstalling {0} {1}.
Help_Uninstalls_the_listed_IUs=Uninstalls the listed IU's. Each entry in the list is in the form <id> [ '/' <version> ].
Help_Use_a_shared_location_for_the_install=Use a shared location for the install. The <path> defaults to ${user.home}/.p2
Ignored_repo=The repository {1} will not be considered.
Help_lb_lt_path_gt_rb=[ <path> ]
Help_List_all_IUs_found_in_repos=Lists all IU's found in the given repositories. IUs can optionally be listed.  Each entry in the list is in the form <id> [ '/' <version> ].
Help_Revert_to_previous_state=Revert the installation to a previous state [ the number representing the previous state of the profile  as found in p2/org.eclipse.equinox.p2.engine/<profileId>/ ].
Help_lt_comma_separated_list_gt=<comma separated list>
Help_lb_lt_comma_separated_list_gt_rb=[ <comma separated list> ]
Help_lt_name_gt=<name>
Help_lt_path_gt=<path>
option_0_requires_an_argument=Option {0} requires an argument.
Help_Prints_this_command_line_help=Prints this command line help information.
Help_The_ARCH_when_profile_is_created=The architecture to use when the profile is created.
Help_The_folder_in_which_the_targetd_product_is_located=The folder in which the targeted product is located.
Help_The_location_where_the_plugins_and_features_will_be_stored=The location where the plug-ins and features will be stored. Effective only when a new profile is created.
Help_The_NL_when_profile_is_created=The language to use when the profile is created.
Help_The_OS_when_profile_is_created=The OS to use when the profile is created.
Help_The_WS_when_profile_is_created=The windowing system to use when the profile is created.
unable_to_parse_0_to_uri_1=Unable to parse {0} into an URI: {1}.
unknown_option_0=Unknown option {0}. Use -help for a list of known options.
Help_Missing_argument=The argument specifying what to install or uninstall is missing.
Missing_profile = The profile to revert to could not be found.
problem_CallingDirector=A problem occured while invoking the director.
problem_repoMustBeURI = The repository location ({0}) must be a URI.
unableToWriteLogFile=Unable to write to the log file {0}.

