###############################################################################
# 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_closed_store=Can not perform operation on closed backup store.
BackupStore_0_of_1_items_restored={0} items out of {1} items restored.
BackupStore_can_not_copy_directory=Can not copy a directory: {0}
BackupStore_can_not_create_placeholder=Can not create placeholder 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=Restore failed: {0}. Manual restore of backup needed for: {1}
BackupStore_missing_backup_directory=Missing backup directory - can not restore: {0}
BackupStore_not_a_directory=File is not a directory: {0}
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 https://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}
