#   Licensed to the Apache Software Foundation (ASF) under one or more
#   contributor license agreements.  See the NOTICE file distributed with
#   this work for additional information regarding copyright ownership.
#   The ASF licenses this file to You under the Apache License, Version 2.0
#   (the "License"); you may not use this file except in compliance with
#   the License.  You may obtain a copy of the License at
#
#       http://www.apache.org/licenses/LICENSE-2.0
#
#   Unless required by applicable law or agreed to in writing, software
#   distributed under the License is distributed on an "AS IS" BASIS,
#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#   See the License for the specific language governing permissions and
#   limitations under the License.

# $Id$

# Factory
vfs/create-manager.error=Could not create a file system manager of class "{0}".

# AbstractFileObject
vfs.provider/delete-not-supported.error=This file type does not support delete.
vfs.provider/rename-not-supported.error=This file type does not support rename.
vfs.provider/write-append-not-supported.error=The file type does not support append mode.
vfs.provider/random-access-not-supported.error=The file type does not support random access.
vfs.provider/random-access-read-not-supported.error=The file type does not support read in random access mode.
vfs.provider/random-access-write-not-supported.error=The file type does not support write in random access mode.
vfs.provider/create-folder-not-supported.error=This file type does not support folder creation.
vfs.provider/get-last-modified-not-supported.error=This file type does not support retriving last modified time.
vfs.provider/set-last-modified-not-supported.error=This file type does not support setting last modified time.
vfs.provider/set-attribute-not-supported.error=This file type does not support setting attributes.
vfs.provider/remove-attribute-not-supported.error=This file type does not support removing attributes.
vfs.provider/get-attribute-not-supported.error=This file type does not support getting attributes.
vfs.provider/write-not-supported.error=This file type cannot be written to.
vfs.provider/get-type.error=Could not determine the type of file "{0}".
vfs.provider/list-children-not-folder.error=Could not list the contents of "{0}" because it is not a folder.
vfs.provider/list-children.error=Could not list the contents of folder "{0}".
vfs.provider/delete-read-only.error=Could not delete "{0}" because it is read-only.
vfs.provider/rename-read-only.error=Could not rename "{0}" because it is read-only.
vfs.provider/rename-parent-read-only.error=Could not rename "{0}" because "{1}" is read-only.
vfs.provider/rename-dest-exists.error=Destination "{0}" already existent.
vfs.provider/delete.error=Could not delete "{0}".
vfs.provider/rename.error=Could not rename "{0}" to "{1}".
vfs.provider/create-folder-mismatched-type.error=Could not create folder "{0}" because it already exists and is a file.
vfs.provider/create-folder-read-only.error=Could not create folder "{0}" because its parent folder is read-only.
vfs.provider/create-folder.error=Could not create folder "{0}".
vfs.provider/create-file.error=Could not create file "{0}".
vfs.provider/write-read-only.error=Could not write to "{0}" because it is read-only.
vfs.provider/write-not-file.error=Could not write to "{0}" because it is not a file.
vfs.provider/write.error=Could not write to "{0}".
vfs.provider/copy-file.error=Could not copy "{0}" to "{1}".
vfs.provider/rename-filename.error=You can only rename within the same folder. Invalid Filename: "{0}".
vfs.provider/copy-read-only.error=Could not copy {0} "{1}" to "{2}" because the destination file is read-only.
vfs.provider/copy-missing-file.error=Could not copy "{0}" because it does not exist.
vfs.provider/find-files.error=Could not find files in "{0}".
vfs.provider/check-is-executable.error=Could not determine if file "{0}" is executable.
vfs.provider/check-is-hidden.error=Could not determine if file "{0}" is hidden.
vfs.provider/check-is-writeable.error=Could not determine if file "{0}" is writeable.
vfs.provider/check-is-readable.error=Could not determine if file "{0}" is readable.
vfs.provider/set-executable.error=Could not set the executable flag of file "{0}".
vfs.provider/set-writeable.error=Could not set the writeable flag of file "{0}".
vfs.provider/set-readable.error=Could not set the readable flag of file "{0}".
vfs.provider/get-url.error=Could not create URL for "{0}".
vfs.provider/resync.error=Could not resync "{0}".
vfs.provider/close.error=Could not close "{0}".
vfs.provider/read.error=Could not read file "{0}".
vfs.provider/random-access.error=Could not read/write file "{0}".
vfs.provider/read-not-readable.error=File "{0}" is not readable.
vfs.provider/read-not-file.error=Could not read from "{0}" because it is not a file.
vfs.provider/closed.error=File closed.

# DefaultFileContent
vfs.provider/get-size-not-file.error=Could not determine the size of "{0}" because it is not a file.
vfs.provider/get-size-write.error=Could not determine the size of file "{0}" because it is being written to.
vfs.provider/get-size.error=Could not determine the size of file "{0}".
vfs.provider/read-in-use.error=Could not read file "{0}" because it is currently being written to.
vfs.provider/write-in-use.error=Could not write to "{0}" because it is currently in use.
vfs.provider/random-in-use.error=Could not read/write file "{0}" because it is currently in use.
vfs.provider/get-last-modified-writing.error=Could not determine the last modified timestamp of "{0}" because it is being written to.
vfs.provider/get-last-modified-no-exist.error=Could not determine the last modified timestamp of "{0}" because it does not exist.
vfs.provider/get-last-modified.error=Could not determine the last modified timestamp of "{0}".
vfs.provider/set-last-modified-writing.error=Could not set the last modified timestamp of "{0}" because it is being written to.
vfs.provider/set-last-modified-no-exist.error=Could not set the last modified timestamp of "{0}" because it does not exist.
vfs.provider/set-last-modified.error=Could not set the last modified timestamp of "{0}".
vfs.provider/get-certificates-no-exist.error=Could not retrieve the certificates of "{0}" because it does not exist.
vfs.provider/get-certificates-writing.error=Could not retrieve the certificates of "{0}" because it is being written to.
vfs.provider/get-certificates.error=Could not retrieve the certificates of "{0}".
vfs.provider/close-instr.error=Could not close the input stream for file "{0}".
vfs.provider/close-outstr.error=Could not close the output stream for file "{0}".
vfs.provider/close-rac.error=Could not close the random access content for file "{0}".
vfs.provider/exists-attribute-no-exist.error=Could not check if attribute "{0}" of "{1}" exists because attributes are not supported.
vfs.provider/get-attributes-no-exist.error=Could not get attributes for file "{0}" because it does not exist.
vfs.provider/get-attributes.error=Could not get attributes "{0}".
vfs.provider/set-attribute-no-exist.error=Could not set attribute "{0}" of "{1}" because it does not exist.
vfs.provider/set-attribute.error=Could not set attribute "{0}" of "{1}".
vfs.provider/remove-attribute-no-exist.error=Could not check if attribute "{0}" of "{1}" exists because attributes are not supported.
vfs.provider/remove-attribute.error=Could not remove attribute "{0}" of "{1}".

# AbstractFileSystemProvider
vfs.provider/invalid-absolute-uri.error=Invalid absolute URI "{0}".
vfs.provider/not-layered-fs.error=File system for URL scheme "{0}" is not a layered file system.
vfs.provider/no-config-builder.error=File provider for URL scheme "{0}" does not provide a configuration builder.
vfs.provider/config-key-invalid.error=The configuration builder for scheme "{0}" has no option "{1}".
vfs.provider/config-value-invalid.error=The delegating configuration builder cant convert value "{2}" for key "{1}" scheme "{0}".
vfs.provider/config-too-many-values.error=Too many values for configuration builder for scheme "{0}" key "{1}".
vfs.provider/config-unexpected-primitive.error=Unexpected primitive "{0}".
vfs.provider/config-unexpected-value-class.error=Cant convert a "{0}" value for scheme "{1}" key "{2}".

# AbstractFileSystem
vfs.provider/files-cache-missing.error=No files-cache implementation set.
vfs.provider/mismatched-fs-for-name.error=Incorrect file system URI "{2}" in name "{0}", was expecting "{1}".
vfs.provider/junctions-not-supported.error=Junctions not supported for file system "{0}".
vfs.provider/notify-listener.warn=Could not notify listener of change to "{0}".
vfs.provider/replicate-missing-file.error=Could not replicate "{0}" as it does not exist.
vfs.provider/replicate-file.error=Could not replicate "{0}".
vfs.provider/resolve-file.error=Could not resolve file "{0}".

# AbstractFileProvider
vfs.provider/filename-parser-missing.error=No filename-parser implementation set.

# AbstractFileName
vfs.provider/filename-type.error=A filename can only be of type FileType.FOLDER or FileType.FILE

# Operations
vfs.operation/wrong-type.error=Can't lookup operation, wrong type: "{0}"
vfs.operation/not-found.error=Operation not found, type: "{0}"
vfs.operation/cant-register.error=Can't register operation, wrong type: "{0}"
vfs.operation/operation-not-supported.error=Operation "{0}" not supported.
vfs.operation/operation-provider-already-added.error=Operation provider already added to scheme "{0}"

# RandomAccess
vfs.provider/random-access-invalid-position.error=Invalid position: "{0}"
vfs.provider/random-access-open-failed.error=Could not access file "{0}" because it does not exist.

# UriParser
vfs.provider/missing-double-slashes.error=Expecting // to follow the scheme in URI "{0}".
vfs.provider/missing-hostname.error=Hostname missing from URI "{0}".
vfs.provider/missing-port.error=Port number is missing from URI "{0}".
vfs.provider/missing-hostname-path-sep.error=Expecting / to follow the hostname in URI "{0}".
vfs.provider/invalid-descendent-name.error=Invalid descendent file name "{0}".
vfs.provider/invalid-escape-sequence.error=Invalid URI escape sequence "{0}".
vfs.provider/invalid-relative-path.error=Invalid relative file name.

# DefaultFileSystemManager
vfs.impl/unknown-scheme.error=Unknown scheme "{0}" in URI "{1}".
vfs.impl/find-rel-file.error=Could not find file with URI "{0}" because it is a relative path, and no base URI was provided.
vfs.impl/multiple-providers-for-scheme.error=Multiple providers registered for URL scheme "{0}".
vfs.impl/configuration-already-set.error=FilesCache implementation already set.
vfs.impl/configuration-already-in-use.error=The configuration is already attached to an filesystemmanager. You cant change it anymore.
vfs.impl/unknown-provider.error=No file provider is registered with URI scheme "{0}" to handle file "{1}".
vfs.impl/no-provider-for-file.error=Could not find a file provider that can handle file "{0}".
vfs.impl/no-local-file-provider.error=Could not find a file provider which can handle local files.
vfs.impl/no-replicator.error=No file replicator configured.
vfs.impl/no-temp-file-store.error=No temporary file store configured.
vfs.impl/replicate-file.error=Could not replicate "{0}".
vfs.impl/delete-temp.warn=Could not clean up temporary file "{0}".
vfs.impl/init-replicator.error=Could not initialise file replicator.
vfs.impl/already-inited.error=Manager already inited, cant change the configuration now.
vfs.impl/invalid-decorator.error="{0}" is not a valid decorator. It has to extend "DecoratedFileObject" and must provide a single argument constructor which takes a "FileObject"
vfs.impl/temp-dir.info=Using "{0}" as temporary files store.

# StandardFileSystemManager
vfs.impl/find-config-file.error=Could not find VFS configuration resource "{0}".
vfs.impl/load-config.error=Could not load VFS configuration from "{0}".
vfs.impl/create-provider.error=Could not create file provider of class "{0}".
vfs.impl/create-files-cache.error=Could not create files-cache implementation of class "{0}".
vfs.impl/create-client-factory.error=Could not create client factory of class "{0}".
vfs.impl/skipping-provider.debug=Skipping provider "{0}" because required class "{1}" is not available.
vfs.impl/skipping-provider-scheme.debug=Skipping provider "{0}" because required scheme "{1}" is not available.

# FileTypeMap
vfs.impl/multiple-schemes.error=This file requires multiple schemes. Use getSchemes() instead.

# VFSClassLoader
vfs.impl/pkg-sealing-unsealed=Trying to seal package "{0}" that exists as unsealed.
vfs.impl/pkg-sealed-other-url=Package "{0}" exists and is sealed with other URL.

# VirtualFileSystem
vfs.impl/nested-junction.error=Attempting to create a nested junction at "{0}".  Nested junctions are not supported.
vfs.impl/create-junction.error=Could not create a junction at "{0}".

# SoftRefFilesCache
vfs.impl/SoftRefReleaseThread-interrupt.info=SoftRefFilesCache - Release Thread interrupted.
vfs.impl/SoftRefReleaseThread-already-running.warn=SoftRefFilesCache - Release Thread already running.

# Local Provider
vfs.provider.local/get-type.error=Could not determine the type of "{0}".
vfs.provider.local/delete-file.error=Could not delete "{0}".
vfs.provider.local/rename-file.error=Could not rename file "{0}" to "{1}".
vfs.provider.local/create-folder.error=Could not create directory "{0}".
vfs.provider.local/not-absolute-file-name.error=URI "{0}" is not an absolute file name.
vfs.provider.local/missing-share-name.error=Share name missing from UNC file name "{0}".

# Temp Provider
vfs.provider.temp/get-type.error=Could not determine the type of "{0}".
vfs.provider.temp/delete-file.error=Could not delete "{0}".
vfs.provider.temp/rename-file.error=Could not rename file "{0}" to "{1}".
vfs.provider.temp/create-folder.error=Could not create directory "{0}".
vfs.provider.temp/not-absolute-file-name.error=URI "{0}" is not an absolute file name.
vfs.provider.temp/missing-share-name.error=Share name missing from UNC file name "{0}".

# SMB Provider
vfs.provider.smb/missing-share-name.error=The share name is missing from URI "{0}".
vfs.provider.smb/get-type.error=Could not detemine the type of "{0}".

# Zip Provider
vfs.provider.zip/open-zip-file.error=Could not open Zip file "{0}".
vfs.provider.zip/close-zip-file.error=Could not close Zip file "{0}".

# Bzip2 Provider
vfs.provider.bzip2/not-a-bzip2-file.error=File "{0}" is not bzip2 compressed.

# JarFileSystem
vfs.provider.jar/open-jar-file.error=Could not open Jar file "{0}".

# JarURLConnectionImpl
vfs.provider.jar/jar-file-no-access.error=JarURLConnections in VFS does not give access to the JarFile.
vfs.provider.jar/jar-entry-no-access.error=JarURLConnections in VFS does not give access to the JarEntry.

# FTP Provider
vfs.provider.ftp.wrapper/change-work-directory-back.error=Could not change back to work directory "{0}".
vfs.provider.ftp/change-work-directory.error=Could not change to work directory "{0}".
vfs.provider.ftp/close-connection.error=Could not close connection to FTP server.
vfs.provider.ftp/connect-rejected.error=Connection to FTP server on "{0}" rejected.
vfs.provider.ftp/connect.error=Could not connect to FTP server on "{0}".
vfs.provider.ftp/create-folder.error=Could not create FTP directory "{0}".
vfs.provider.ftp/delete-file.error=Could not delete FTP file "{0}".
vfs.provider.ftp/finish-get.error=Could not get FTP file "{0}".
vfs.provider.ftp/finish-put.error=Could not put FTP file "{0}".
vfs.provider.ftp/get-type.error=Could not determine the file type of "{0}".
vfs.provider.ftp/input-error.debug=Cant open input connection for file "{0}". Reason: "{1}".
vfs.provider.ftp/invalid-directory-entry.debug=Invalid directory entry at line "{0}" (directory "{1}").
vfs.provider.ftp/login.error=Could not login to FTP server on "{0}" as user "{1}".
vfs.provider.ftp/output-error.debug=Cant open output connection for file "{0}". Reason: "{1}".
vfs.provider.ftp/rename-file.error=Could not rename FTP file "{0}" to "{1}".
vfs.provider.ftp/set-file-type.error=Could not set the file type to "{0}".

# FTPS Provider
vfs.provider.ftps/data-channel.level=Failed to setup secure data channel level "{0}".

# SFTP Provider
vfs.provider.sftp/change-work-directory-back.error=Could not change back to work directory "{0}".
vfs.provider.sftp/change-work-directory.error=Could not change to work directory "{0}".
vfs.provider.sftp/config-sshdir.error=SSH-Folder "{0}" non existent or not a folder.
vfs.provider.sftp/connect.error=Could not connect to SFTP server at "{0}".
vfs.provider.sftp/create-folder.error=Folder creation failed with unknown error.
vfs.provider.sftp/delete.error=Delete failed with unknown error.
vfs.provider.sftp/filename-encoding.error=Could not change to file name encoding "{0}"
vfs.provider.sftp/get-file.error=Read file contents failed with unknown error.
vfs.provider.sftp/known-hosts.error=Error during processing known-hosts file "{0}".
vfs.provider.sftp/list-children.error=List folder contents failed with unknown error.
vfs.provider.sftp/load-private-key.error=Could not load private key from "{0}".
vfs.provider.sftp/put-file.error=Write file contents failed with unknown error.
vfs.provider.sftp/StrictHostKeyChecking-arg.error=Illegal argument "{0}" hostKeyChecking can only be "ask", "yes" or "no"
vfs.provider.sftp/unknown-modtime.error=Last modification time not fetched.
vfs.provider.sftp/unknown-permissions.error=File permissions not fetched.
vfs.provider.sftp/unknown-size.error=File size not fetched.

# URL Provider
vfs.provider.url/badly-formed-uri.error=Badly formed URI "{0}".

# Http Provider
vfs.provider.http/get.error=GET method failed for "{0}" with HTTP status {1}.
vfs.provider.http/head.error=HEAD method failed for "{0}" with HTTP status {1}.
vfs.provider.http/last-modified.error=No Last-Modified header in HTTP response.
vfs.provider.http/get-range.error=GET method failed for "{0}" range "{1}" with HTTP status {2}.
vfs.provider.http/connect.error=Could not connect to HTTP server on "{0}".

# WebDAV Provider
vfs.provider.webdav/write-file.error=Write to file failed with message: "{0}".
vfs.provider.webdav/list-children.error=List child resources failed with message: "{0}".
vfs.provider.webdav/create-collection.error=Create collection failed with message: "{0}".
vfs.provider.webdav/delete-file.error=Delete file failed with message: "{0}".
vfs.provider.webdav/create-client.error=Could not create client for server "{0}".
vfs.provider.webdav/rename-file.error=Rename file failed with message: "{0}".
vfs.provider.webdav/get-attributes.error=Could not get attributes for: "{0}".
vfs.provider.webdav/set-attributes.error=Could not set property "{1}" for: "{0}".
vfs.provider.webdav/get-property.error=Could not get property for: "{0}", name="{1}", type="{2}", nameSet="{3}", addEncoding="{4}".

# Tar
vfs.provider.tar/open-tar-file.error=Could not open Tar file "{0}".
vfs.provider.tar/close-tar-file.error=Could not close Tar file "{0}".

# Ant tasks
vfs.tasks/sync.no-destination.error=No destination file or directory specified.
vfs.tasks/sync.too-many-destinations.error=Cannot specify both a destination file and a destination directory.
vfs.tasks/sync.no-source-files.warn=No source files specified.
vfs.tasks/sync.no-source-file.error=No source file specified.
vfs.tasks/sync.too-many-source-files.error=Too many source files specified.
vfs.tasks/sync.source-not-file.error=Source file "{0}" is not a file, or does not exist.
vfs.tasks/sync.src-file-no-exist.warn=Source file "{0}" does not exist.
vfs.tasks/sync.duplicate-source-files.warn=Multiple source files for destination file "{0}".
vfs.tasks/delete.no-source-files.error=No files to delete specified.
vfs.tasks/mkdir.create-folder.info=Creating directory "{0}".

# Selectors
vfs.selectors/filefilter.missing.error=Configure a fileFilter or override accept().

# Utils
vfs.util/find-abstract-file-object.error=Object "{0}" did not extend from AbstractFileObject.
vfs.util/missing-capability.error=The Filesystem does not provide the required capability "{0}".
