###############################################################################
# Copyright (c) 2007, 2019 IBM Corporation and others.
#
# This program and the accompanying materials
# are made available under the terms of the Eclipse Public License 2.0
# which accompanies this distribution, and is available at
# https://www.eclipse.org/legal/epl-2.0/
#
# SPDX-License-Identifier: EPL-2.0
#
# Contributors:
#     IBM Corporation - initial API and implementation
#     Rapicorp, Inc - prompt to install debian package
#     SAP SE - bug 465602
###############################################################################

BackupStore_backupCopy_closed_store=Can not perform backup on closed backup store.
BackupStore_0_of_1_items_restored={0} items out of {1} items restored.
BackupStore_can_not_close_tcp_port=Could not close tcp socket for port: {0}
BackupStore_can_not_copy_directory=Can not copy a directory: {0}
BackupStore_can_not_create_dummy=Can not create dummy file: {0}
BackupStore_can_not_delete_after_copy_0=File that was copied to backup could not be deleted: {0}
BackupStore_can_not_delete_tmp_file=Can not delete temporary file - it is safe to delete it manually: {0}
BackupStore_can_not_remove=Can not remove : {0}
BackupStore_can_not_remove_bu_directory=Could not remove temporary backup directory (it is safe to manually delete it and its contents): {0}
BackupStore_can_not_remove_bu_file=Could not remove temporary backup file (it is safe to manually delete it): {0}
BackupStore_directory_file_mismatch=File already backed up as a directory: {0}
BackupStore_directory_not_empty=Directory is not empty: {0}
BackupStore_errors_while_restoring_see_log=Errors while restoring - see earlier logged errors
BackupStore_externally_modified_0_of_1_restored=Backup store modified externally\! {0} items out of {1} items restored. Remaining items can not be found.
BackupStore_file_directory_mismatch=File already backed up as a file - and is now required as a directory: {0}
BackupStore_file_not_found=File does not exist: {0}.
BackupStore_manual_restore_needed=Manual restore of backup needed for: {0}
BackupStore_missing_backup_directory=Missing backup directory - can not restore: {0}
BackupStore_not_a_directory=File is not a directory: {0}
BackupStore_restore_closed_store=Can not perform restore on closed backup store
BlockMacUpdate_0=Installation impossible
BlockMacUpdate_1=The installation/update you are trying to perform can not be completed because of structural changes to Eclipse. The installation/update will stop and will leave your existing Eclipse installation intact. You need to retrieve a new version of Eclipse from http://download.eclipse.org/.

action_0_status=The action {0} was performed.
action_0_failed_on_file_1_reason_2=The action {0} on file {1} failed. Reason: {2}
action_0_failed_file_1_doesNotExist=The action {0} failed - file {1} does not exist
artifact_not_available=The artifact for {0} is not available.
unzipping=Extracting {0}
param_not_set=The \"{0}\" parameter was not set in the \"{1}\" action.
chmod_param_cant_be_set_together=The parameters targetFile and absoluteFiles can't be set at the same time.
artifact_repo_not_found=The artifact repository manager could not be found.
could_not_obtain_download_cache=Could not obtain the download cache location.
download_cache_not_writeable=Agent download cache not writeable: {0}.
copy_failed=I/O Error while copying {0} - see details.
failed_backup_restore=Restore of backup failed - see log for details. Backup directory name: {0}.
backup_file_failed=Backup of file {0} failed.

Cannot_Check_Package=Failed to check the status of native package: {0} version {1} on {2}. 
Cannot_Find_status=Could not find script to check the status of the package on 
Error_list_children_0=Error while retrieving children of directory: {0}
Incorrect_Command=Incorrect use of the command. One of the parameter is missing.
link_failed=Could not create link {0}.
mkdir_failed=Could not create directory {0}.
NativePackageExtractionApplication_FolderNotFound=The folder to analyze could not be found: 
NativePackageExtractionApplication_MissingParameters=Missing arguments, please specify {0} and {1}.
NativePackageExtractionApplication_MissingValue=The value is missing for argument {0}.  
NativePackageExtractionApplication_PersistencePb=error while persisting results in 
NativeTouchpoint_PromptForNative_RequiredBy=(Required by {0})
NativeTouchpoint_PromptForNative_YouCanDownloadFrom=You can download those from the following locations:\n
PromptForNative_InstallText=\n You can install those by executing the following command: \n\t
PromptForNative_IntroText=The software you installed requires the following OS packages to be installed: \n
PromptForNative_DialogTitle=Install Native Software Packages
rmdir_failed=Could not remove directory {0}.
Util_Invalid_Zip_File_Format=Invalid zip file format
Util_Error_Unzipping=Error unzipping {0}: {1}
