Import Upstream version 1.52.0

This commit is contained in:
Yue-Lan 2023-10-24 10:02:30 +08:00
parent 4f6ea7126b
commit d4d0391245
37 changed files with 8051 additions and 3465 deletions

View File

@ -4,8 +4,13 @@ fedora:
entrypoint: ["/bin/sh", "-c"]
tags:
- x86_64
- ipv6
script:
# The httpd process fails with "(98)Address already in use: AH00072:
# make_sock: could not bind to address 127.0.0.1:8088" error. It used to
# work on runners with the "ipv6" tag, but there is no such currently.
# It is not clear to me why it fails, the port looks to be unused.
# Let's disable the Dav test cases temporarily to unblock the pipeline.
- sed -i "/class Dav/i @unittest.skip('Disabled over .gitlab-ci.yml')" test/gvfs-test
- meson
-Dinstalled_tests=true
-Ddevel_utils=true

38
NEWS
View File

@ -1,3 +1,41 @@
Major changes in 1.52.0
=======================
* Translation updates (GNOME Translation Project contributors)
Major changes in 1.51.91
========================
* sftp/ftp: Ensure that is-symlink is always set to avoid warnings (Sébastien Noel)
* Translation updates (GNOME Translation Project contributors)
Major changes in 1.51.90
========================
* Fix various memory leaks (wang xiaomeng)
* udisks2: Disconnect signal handlers to fix crashes when unmounting (Ondrej Holy)
* fuse: Include missing locale.h header (Ondrej Holy)
* Some other fixes and improvements (Ondrej Holy)
* Translation updates (GNOME Translation Project contributors)
Major changes in 1.51.1
=======================
* trash: Run blocking methods on a thread to avoid hangs (Ondrej Holy)
* smbbrowse: Fix empty device listing after unrelated mount failure (Ondrej Holy)
* udisks: Fix missing unmount notifications (Ondrej Holy)
* trash: Fix nfs4 and cifs monitoring (re2zero)
* smb: Allow renaming a file to the same name with a different case (Corey Berla)
* mtp: Add support for incremental enumeration (re2zero)
* mtp: Emit delete event on device disconnection (António Fernandes)
* trash: Fix wrongly reported item-count (rong wang)
* Some other fixes and improvements (Matt Turner, Sebastien Bacher, Simon McVittie, wangrong, Ondrej Holy)
* Translation updates (GNOME Translation Project contributors)
Major changes in 1.50.4
=======================
* dav: Prevent usage of NULL for nonexistent source file (Ondrej Holy)
* client: Fix copy/move operation from/to Flatpak sandbox (Ondrej Holy)
* http: Report original sizes regardless of compression usage (Lucas Chollet)
* Fix string comparison on various places (Sergio Costas Rodriguez)
* Translation updates (GNOME Translation Project contributors)
Major changes in 1.50.3
=======================
* dav: Prevent usage of NULL when user is not specified (Ondrej Holy)

View File

@ -2680,6 +2680,7 @@ file_transfer (GFile *source,
gboolean dest_is_daemon;
gboolean native_transfer;
gboolean send_progress;
gboolean flatpak_sandbox;
GVfsDBusMount *proxy;
gchar *path1, *path2;
GDBusConnection *connection;
@ -2695,13 +2696,14 @@ file_transfer (GFile *source,
source_is_daemon = G_IS_DAEMON_FILE (source);
dest_is_daemon = G_IS_DAEMON_FILE (destination);
send_progress = progress_callback != NULL;
flatpak_sandbox = g_file_test ("/.flatpak-info", G_FILE_TEST_EXISTS);
serial = 0;
if (source_is_daemon && dest_is_daemon)
native_transfer = TRUE;
else if (dest_is_daemon && !source_is_daemon)
else if (dest_is_daemon && !source_is_daemon && !flatpak_sandbox)
local_path = g_file_get_path (source);
else if (source_is_daemon && !dest_is_daemon)
else if (source_is_daemon && !dest_is_daemon && !flatpak_sandbox)
local_path = g_file_get_path (destination);
else
{
@ -2711,15 +2713,6 @@ file_transfer (GFile *source,
return FALSE;
}
if (!native_transfer && local_path == NULL)
{
/* This will cause the fallback code to be involved */
g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_NOT_SUPPORTED,
_("Operation not supported, files on different mounts"));
return FALSE;
}
if (send_progress)
obj_path = g_strdup_printf ("/org/gtk/vfs/callback/%p", &obj_path);
else

View File

@ -308,7 +308,7 @@ g_daemon_vfs_init (GDaemonVfs *vfs)
vfs->wrapped_vfs = g_vfs_get_local ();
/* Use the old .gvfs location as fallback, not .cache/gvfs */
if (g_get_user_runtime_dir() == g_get_user_cache_dir ())
if (g_strcmp0 (g_get_user_runtime_dir(), g_get_user_cache_dir ()) == 0)
file = g_build_filename (g_get_home_dir(), ".gvfs", NULL);
else
file = g_build_filename (g_get_user_runtime_dir(), "gvfs", NULL);

View File

@ -32,6 +32,7 @@
#include <string.h>
#include <errno.h>
#include <signal.h>
#include <locale.h>
#include <glib.h>
#include <glib/gi18n.h>
@ -2559,6 +2560,8 @@ main (gint argc, gchar *argv [])
struct fuse_cmdline_opts opts;
struct fuse_args args = FUSE_ARGS_INIT (argc, argv);
setlocale (LC_ALL, "");
if (fuse_opt_parse (&args, NULL, NULL, NULL) == -1)
return 1;

View File

@ -640,7 +640,7 @@ _g_find_file_insensitive_async (GFile *parent,
G_FILE_QUERY_INFO_NONE, G_PRIORITY_DEFAULT,
cancellable,
find_file_insensitive_exists_callback, task);
g_object_unref (direct_file);
}

View File

@ -3888,7 +3888,7 @@ push_handle_free (PushHandle *handle)
}
g_object_unref (handle->backend);
g_object_unref (handle->job);
g_object_unref (handle->msg);
g_clear_object (&handle->msg);
g_uri_unref (handle->uri);
g_slice_free (PushHandle, handle);

View File

@ -706,6 +706,10 @@ try_query_info (GVfsBackend *backend,
uri = http_backend_get_mount_base (backend);
msg = soup_message_new_from_uri (SOUP_METHOD_HEAD, uri);
/* Disable encoding in order to retrieve the size of the full file. */
soup_message_headers_replace (soup_message_get_request_headers (msg),
"Accept-Encoding", "identity");
g_vfs_job_set_backend_data (G_VFS_JOB (job), msg, NULL);
soup_session_send_async (op_backend->session, msg, G_PRIORITY_DEFAULT,
@ -724,6 +728,25 @@ try_query_info_on_read (GVfsBackend *backend,
{
SoupMessage *msg = g_vfs_http_input_stream_get_message (G_INPUT_STREAM (handle));
const gchar *encoding;
/* In case encoding is set, Content-Length will report the compressed size,
* but we want to report the complete size of the file to the user. This
* will cause try_query_info() to be invoked, hence reporting the size
* without compression enabled.
*/
encoding = soup_message_headers_get_one (soup_message_get_response_headers (msg),
"Content-Encoding");
if (encoding != NULL &&
g_file_attribute_matcher_matches (attribute_matcher, G_FILE_ATTRIBUTE_STANDARD_SIZE))
{
g_vfs_job_failed_literal (G_VFS_JOB (job), G_IO_ERROR,
G_IO_ERROR_NOT_SUPPORTED,
_("Operation not supported"));
g_object_unref (msg);
return TRUE;
}
file_info_from_message (msg, info, attribute_matcher);
g_object_unref (msg);

View File

@ -638,6 +638,11 @@ on_uevent (GUdevClient *client, gchar *action, GUdevDevice *device, gpointer use
(char *)path);
}
/* Finally, emit delete event to tell the clients the device root file is gone. */
g_hash_table_foreach (op_backend->monitors,
emit_delete_event,
(char *)"/");
op_backend->force_unmounted = TRUE;
g_atomic_int_set (&op_backend->unmount_started, TRUE);
g_vfs_backend_force_unmount ((GVfsBackend*)op_backend);
@ -1374,6 +1379,7 @@ do_enumerate (GVfsBackend *backend,
if (ret != 0) {
LIBMTP_Dump_Errorstack (device);
LIBMTP_Clear_Errorstack (device);
g_vfs_job_succeeded (G_VFS_JOB (job));
goto success;
}
for (storage = device->storage; storage != 0; storage = storage->next) {
@ -1390,6 +1396,7 @@ do_enumerate (GVfsBackend *backend,
g_free (storage_name);
}
g_vfs_job_succeeded (G_VFS_JOB (job));
} else {
CacheEntry *entry = get_cache_entry (G_VFS_BACKEND_MTP (backend),
filename);
@ -1407,13 +1414,54 @@ do_enumerate (GVfsBackend *backend,
remove_cache_entry (G_VFS_BACKEND_MTP (backend), remove_prefix);
g_free (remove_prefix);
LIBMTP_file_t *files;
LIBMTP_Clear_Errorstack (device);
#if HAVE_LIBMTP_1_1_21
uint32_t *handlers = NULL;
int count = LIBMTP_Get_Children (device, entry->storage, entry->id, &handlers);
if (count < 0) {
fail_job (G_VFS_JOB (job), device);
goto exit;
}
g_vfs_job_succeeded (G_VFS_JOB (job));
for (int i = 0; i < count; i++) {
LIBMTP_file_t *file;
// Get metadata for one file, if it fails, try next file
file = LIBMTP_Get_Filemetadata (device, handlers[i]);
if (file == NULL) {
continue;
}
info = g_file_info_new ();
get_file_info (backend, device, info, file);
g_vfs_job_enumerate_add_info (job, info);
g_object_unref (info);
add_cache_entry (G_VFS_BACKEND_MTP (backend),
g_build_filename (filename, file->filename, NULL),
file->storage_id,
file->item_id);
LIBMTP_destroy_file_t (file);
}
if (handlers) {
g_free (handlers);
}
#else
LIBMTP_file_t *files;
files = LIBMTP_Get_Files_And_Folders (device, entry->storage, entry->id);
if (files == NULL && LIBMTP_Get_Errorstack (device) != NULL) {
fail_job (G_VFS_JOB (job), device);
goto exit;
}
g_vfs_job_succeeded (G_VFS_JOB (job));
while (files != NULL) {
LIBMTP_file_t *file = files;
files = files->next;
@ -1430,11 +1478,11 @@ do_enumerate (GVfsBackend *backend,
LIBMTP_destroy_file_t (file);
}
#endif
}
success:
g_vfs_job_enumerate_done (job);
g_vfs_job_succeeded (G_VFS_JOB (job));
exit:
g_strfreev (elements);

View File

@ -902,13 +902,6 @@ g_vfs_backend_network_init (GVfsBackendNetwork *network_backend)
network_backend->smb_settings = g_settings_new ("org.gnome.system.smb");
current_workgroup = g_settings_get_string (network_backend->smb_settings, "workgroup");
if (current_workgroup == NULL ||
current_workgroup[0] == 0)
/* it's okay if current_workgroup is null here,
* it's checked before the NetworkFile is added anyway. */
network_backend->current_workgroup = NULL;
else
network_backend->current_workgroup = current_workgroup;
g_signal_connect (network_backend->smb_settings,

View File

@ -2470,6 +2470,7 @@ parse_attributes (GVfsBackendSftp *backend,
gboolean has_uid, free_mimetype;
char *mimetype;
gboolean uncertain_content_type;
gboolean is_symlink;
flags = g_data_input_stream_read_uint32 (reply, NULL, NULL);
@ -2510,6 +2511,7 @@ parse_attributes (GVfsBackendSftp *backend,
mimetype = NULL;
uncertain_content_type = FALSE;
is_symlink = FALSE;
if (S_ISREG (mode))
type = G_FILE_TYPE_REGULAR;
else if (S_ISDIR (mode))
@ -2540,7 +2542,7 @@ parse_attributes (GVfsBackendSftp *backend,
else if (S_ISLNK (mode))
{
type = G_FILE_TYPE_SYMBOLIC_LINK;
g_file_info_set_is_symlink (info, TRUE);
is_symlink = TRUE;
mimetype = "inode/symlink";
}
@ -2559,6 +2561,7 @@ parse_attributes (GVfsBackendSftp *backend,
if (!uncertain_content_type)
g_file_info_set_content_type (info, mimetype);
g_file_info_set_attribute_string (info, G_FILE_ATTRIBUTE_STANDARD_FAST_CONTENT_TYPE, mimetype);
g_file_info_set_is_symlink (info, is_symlink);
if (g_file_attribute_matcher_matches (matcher,
G_FILE_ATTRIBUTE_STANDARD_ICON)

View File

@ -1892,6 +1892,9 @@ do_set_display_name (GVfsBackend *backend,
{
GVfsBackendSmb *op_backend = G_VFS_BACKEND_SMB (backend);
char *from_uri, *to_uri;
g_autofree char *basename = NULL;
g_autofree char *old_name_case = NULL;
g_autofree char *new_name_case = NULL;
char *dirname, *new_path;
int res, errsv;
struct stat st;
@ -1899,6 +1902,7 @@ do_set_display_name (GVfsBackend *backend,
smbc_stat_fn smbc_stat;
dirname = g_path_get_dirname (filename);
basename = g_path_get_basename (filename);
/* TODO: display name is in utf8, atm we assume libsmb uris
are in utf8, but this might not be true if the user changed
@ -1910,7 +1914,13 @@ do_set_display_name (GVfsBackend *backend,
from_uri = create_smb_uri (op_backend->server, op_backend->port, op_backend->share, filename);
to_uri = create_smb_uri (op_backend->server, op_backend->port, op_backend->share, new_path);
/* If we are simply changing the case of an existing file, we don't need to
* worry about overwriting another file.
*/
old_name_case = g_utf8_casefold (basename, -1);
new_name_case = g_utf8_casefold (display_name, -1);
if (g_strcmp0 (old_name_case, new_name_case) != 0)
{
/* We can't rely on libsmbclient reporting EEXIST, let's always stat first.
* https://bugzilla.gnome.org/show_bug.cgi?id=616645
*/
@ -1923,6 +1933,7 @@ do_set_display_name (GVfsBackend *backend,
_("Cant rename file, filename already exists"));
goto out;
}
}
smbc_rename = smbc_getFunctionRename (op_backend->smb_context);
res = smbc_rename (op_backend->smb_context, from_uri,

View File

@ -93,8 +93,6 @@ struct _GVfsBackendSmbBrowse
GList *entries;
};
static GHashTable *server_cache = NULL;
static GMountTracker *mount_tracker = NULL;
typedef struct {
@ -169,42 +167,6 @@ browse_entry_free (BrowseEntry *entry)
g_free (entry);
}
static gboolean
cached_server_equal (gconstpointer _a,
gconstpointer _b)
{
const CachedServer *a = _a;
const CachedServer *b = _b;
return
strcmp (a->server_name, b->server_name) == 0 &&
strcmp (a->share_name, b->share_name) == 0 &&
strcmp (a->domain, b->domain) == 0 &&
strcmp (a->username, b->username) == 0;
}
static guint
cached_server_hash (gconstpointer key)
{
const CachedServer *server = key;
return
g_str_hash (server->server_name) ^
g_str_hash (server->share_name) ^
g_str_hash (server->domain) ^
g_str_hash (server->username);
}
static void
cached_server_free (CachedServer *server)
{
g_free (server->server_name);
g_free (server->share_name);
g_free (server->domain);
g_free (server->username);
g_free (server);
}
static void
g_vfs_backend_smb_browse_finalize (GObject *object)
{
@ -426,131 +388,6 @@ auth_callback (SMBCCTX *context,
backend->last_user, backend->last_domain);
}
/* Add a server to the cache system
*
* @param c pointer to smb context
* @param srv pointer to server to add
* @param server server name
* @param share share name
* @param workgroup workgroup used to connect
* @param username username used to connect
* @return 0 on success. 1 on failure.
*
*/
static int
add_cached_server (SMBCCTX *context, SMBCSRV *new,
const char *server_name, const char *share_name,
const char *domain, const char *username)
{
CachedServer *cached_server;
cached_server = g_new (CachedServer, 1);
cached_server->server_name = g_strdup (server_name);
cached_server->share_name = g_strdup (share_name);
cached_server->domain = g_strdup (domain);
cached_server->username = g_strdup (username);
g_debug ("adding cached server '%s'\\'%s', user '%s';'%s' with data %p\n",
server_name ? server_name : "NULL",
share_name ? share_name : "(no share)",
domain ? domain : "(no domain)",
username ? username : "NULL",
new);
if (server_cache == NULL)
server_cache = g_hash_table_new_full (cached_server_hash, cached_server_equal,
(GDestroyNotify)cached_server_free, NULL);
g_hash_table_insert (server_cache, cached_server, new);
return 0;
}
static gboolean
remove_cb (gpointer key,
gpointer value,
gpointer user_data)
{
return value == user_data;
}
/* Remove cached server
*
* @param c pointer to smb context
* @param srv pointer to server to remove
* @return 0 when found and removed. 1 on failure.
*
*/
static int
remove_cached_server (SMBCCTX * context, SMBCSRV * server)
{
guint num;
if (server_cache)
{
g_debug ("removing cached servers with data %p\n", server);
num = g_hash_table_foreach_remove (server_cache, remove_cb, server);
if (num != 0)
return 0;
}
return 1;
}
/* Look up a server in the cache system
*
* @param c pointer to smb context
* @param server server name to match
* @param share share name to match
* @param workgroup workgroup to match
* @param username username to match
* @return pointer to SMBCSRV on success. NULL on failure.
*
*/
static SMBCSRV *
get_cached_server (SMBCCTX * context,
const char *server_name, const char *share_name,
const char *domain, const char *username)
{
const CachedServer key = {
(char *)server_name,
(char *)share_name,
(char *)domain,
(char *)username
};
SMBCSRV *ret = NULL;
g_debug ("looking up cached server '%s'\\'%s', user '%s';'%s'\n",
server_name ? server_name : "NULL",
share_name ? share_name : "(no share)",
domain ? domain : "(no domain)",
username ? username : "NULL");
if (server_cache)
ret = g_hash_table_lookup (server_cache, &key);
g_debug (" returning %p\n", ret);
return ret;
}
/* Try to remove all servers from the cache system and disconnect
*
* @param c pointer to smb context
*
* @return 0 when found and removed. 1 on failure.
*
*/
static int
purge_cached (SMBCCTX * context)
{
g_debug ("purging server cache\n");
if (server_cache)
g_hash_table_remove_all (server_cache);
return 0;
}
static gboolean
update_cache (GVfsBackendSmbBrowse *backend, SMBCFILE *supplied_dir)
{
@ -820,11 +657,6 @@ do_mount (GVfsBackend *backend,
smbc_setDebug (smb_context, debug_val);
smbc_setFunctionAuthDataWithContext (smb_context, auth_callback);
smbc_setFunctionAddCachedServer (smb_context, add_cached_server);
smbc_setFunctionGetCachedServer (smb_context, get_cached_server);
smbc_setFunctionRemoveCachedServer (smb_context, remove_cached_server);
smbc_setFunctionPurgeCachedServers (smb_context, purge_cached);
if (op_backend->default_workgroup != NULL)
smbc_setWorkgroup (smb_context, op_backend->default_workgroup);
@ -989,10 +821,6 @@ do_mount (GVfsBackend *backend,
if (res)
break;
}
else {
/* Purge the cache, we need to have clean playground for next auth try */
purge_cached (smb_context);
}
/* The first round is Kerberos-only. Only if this fails do we enable
* NTLMSSP fallback (turning off anonymous fallback, which we've

View File

@ -36,6 +36,10 @@ struct OPAQUE_TYPE__GVfsBackendTrash
GVfsMonitor *file_monitor;
GVfsMonitor *dir_monitor;
GMainContext *worker_context;
GMainLoop *worker_loop;
GThread *worker_thread;
TrashWatcher *watcher;
TrashRoot *root;
@ -44,6 +48,100 @@ struct OPAQUE_TYPE__GVfsBackendTrash
G_DEFINE_TYPE (GVfsBackendTrash, g_vfs_backend_trash, G_VFS_TYPE_BACKEND);
typedef struct
{
GSourceFunc source_func;
gpointer user_data;
GMutex mutex;
GCond cond;
gboolean completed;
} ContextInvokeData;
static gboolean
source_func_wrapper (gpointer user_data)
{
ContextInvokeData *data = user_data;
g_mutex_lock (&data->mutex);
while (data->source_func (data->user_data));
data->completed = TRUE;
g_cond_signal (&data->cond);
g_mutex_unlock (&data->mutex);
return G_SOURCE_REMOVE;
}
static void
trash_backend_worker_thread_queue_and_wait (GVfsBackendTrash *backend,
GSourceFunc source_func)
{
ContextInvokeData data;
data.source_func = source_func;
data.user_data = backend;
g_mutex_init (&data.mutex);
g_cond_init (&data.cond);
data.completed = FALSE;
g_mutex_lock (&data.mutex);
g_main_context_invoke (backend->worker_context,
source_func_wrapper,
&data);
while (!data.completed)
{
g_cond_wait (&data.cond, &data.mutex);
}
g_mutex_unlock (&data.mutex);
g_mutex_clear (&data.mutex);
g_cond_clear (&data.cond);
}
static void
trash_backend_worker_thread_queue (GVfsBackendTrash *backend,
GSourceFunc source_func)
{
g_main_context_invoke (backend->worker_context, source_func, backend);
}
static gboolean
watch_func (gpointer user_data)
{
GVfsBackendTrash *backend = G_VFS_BACKEND_TRASH (user_data);
trash_watcher_watch (backend->watcher);
return G_SOURCE_REMOVE;
}
static gboolean
rescan_func (gpointer user_data)
{
GVfsBackendTrash *backend = G_VFS_BACKEND_TRASH (user_data);
trash_watcher_rescan (backend->watcher);
return G_SOURCE_REMOVE;
}
static gboolean
ready_func (gpointer user_data)
{
return G_SOURCE_REMOVE;
}
static gboolean
is_root (const char *filename)
{
return (filename[0] == '/' && filename[1] == '\0');
}
static GVfsMonitor *
trash_backend_get_file_monitor (GVfsBackendTrash *backend,
gboolean create)
@ -57,7 +155,7 @@ trash_backend_get_file_monitor (GVfsBackendTrash *backend,
* no possibility here for creating more than one new monitor.
*/
if (backend->dir_monitor == NULL)
trash_watcher_watch (backend->watcher);
trash_backend_worker_thread_queue (backend, watch_func);
backend->file_monitor = g_vfs_monitor_new (G_VFS_BACKEND (backend));
}
@ -78,7 +176,7 @@ trash_backend_get_dir_monitor (GVfsBackendTrash *backend,
* no possibility here for creating more than one new monitor.
*/
if (backend->file_monitor == NULL)
trash_watcher_watch (backend->watcher);
trash_backend_worker_thread_queue (backend, watch_func);
backend->dir_monitor = g_vfs_monitor_new (G_VFS_BACKEND (backend));
}
@ -158,7 +256,6 @@ trash_backend_item_count_changed (gpointer user_data)
}
}
static GFile *
trash_backend_get_file (GVfsBackendTrash *backend,
const char *filename,
@ -171,6 +268,8 @@ trash_backend_get_file (GVfsBackendTrash *backend,
TrashItem *item;
GFile *file;
trash_backend_worker_thread_queue_and_wait (backend, rescan_func);
file = NULL;
filename++;
@ -221,7 +320,7 @@ trash_backend_get_file (GVfsBackendTrash *backend,
}
/* ======================= method implementations ======================= */
static gboolean
static void
trash_backend_open_for_read (GVfsBackend *vfs_backend,
GVfsJobOpenForRead *job,
const char *filename)
@ -229,7 +328,7 @@ trash_backend_open_for_read (GVfsBackend *vfs_backend,
GVfsBackendTrash *backend = G_VFS_BACKEND_TRASH (vfs_backend);
GError *error = NULL;
if (filename[1] == '\0')
if (is_root (filename))
g_set_error_literal (&error, G_IO_ERROR, G_IO_ERROR_IS_DIRECTORY,
_("Cant open directory"));
@ -237,9 +336,6 @@ trash_backend_open_for_read (GVfsBackend *vfs_backend,
{
GFile *real;
if (!backend->file_monitor && !backend->dir_monitor)
trash_watcher_rescan (backend->watcher);
real = trash_backend_get_file (backend, filename, NULL, NULL, &error);
if (real)
@ -255,18 +351,16 @@ trash_backend_open_for_read (GVfsBackend *vfs_backend,
g_vfs_job_open_for_read_set_can_seek (job, TRUE);
g_vfs_job_succeeded (G_VFS_JOB (job));
return TRUE;
return;
}
}
}
g_vfs_job_failed_from_error (G_VFS_JOB (job), error);
g_error_free (error);
return TRUE;
}
static gboolean
static void
trash_backend_read (GVfsBackend *backend,
GVfsJobRead *job,
GVfsBackendHandle handle,
@ -284,16 +378,14 @@ trash_backend_read (GVfsBackend *backend,
g_vfs_job_read_set_size (job, bytes);
g_vfs_job_succeeded (G_VFS_JOB (job));
return TRUE;
return;
}
g_vfs_job_failed_from_error (G_VFS_JOB (job), error);
g_error_free (error);
return TRUE;
}
static gboolean
static void
trash_backend_seek_on_read (GVfsBackend *backend,
GVfsJobSeekRead *job,
GVfsBackendHandle handle,
@ -307,13 +399,11 @@ trash_backend_seek_on_read (GVfsBackend *backend,
g_vfs_job_seek_read_set_offset (job, g_seekable_tell (handle));
g_vfs_job_succeeded (G_VFS_JOB (job));
return TRUE;
return;
}
g_vfs_job_failed_from_error (G_VFS_JOB (job), error);
g_error_free (error);
return TRUE;
}
static void
@ -343,7 +433,7 @@ trash_backend_query_info_on_read (GVfsBackend *backend,
}
}
static gboolean
static void
trash_backend_close_read (GVfsBackend *backend,
GVfsJobCloseRead *job,
GVfsBackendHandle handle)
@ -355,15 +445,13 @@ trash_backend_close_read (GVfsBackend *backend,
g_vfs_job_succeeded (G_VFS_JOB (job));
g_object_unref (handle);
return TRUE;
return;
}
g_object_unref (handle);
g_vfs_job_failed_from_error (G_VFS_JOB (job), error);
g_error_free (error);
return TRUE;
}
static gboolean
@ -388,7 +476,7 @@ trash_backend_schedule_thaw (GVfsBackendTrash *backend)
backend);
}
static gboolean
static void
trash_backend_delete (GVfsBackend *vfs_backend,
GVfsJobDelete *job,
const char *filename)
@ -397,7 +485,7 @@ trash_backend_delete (GVfsBackend *vfs_backend,
GError *error = NULL;
g_debug ("before job: %d\n", G_OBJECT(job)->ref_count);
if (filename[1] == '\0')
if (is_root (filename))
g_set_error_literal (&error, G_IO_ERROR, G_IO_ERROR_PERMISSION_DENIED,
_("The trash folder may not be deleted"));
else
@ -406,9 +494,6 @@ trash_backend_delete (GVfsBackend *vfs_backend,
TrashItem *item;
GFile *real;
if (!backend->file_monitor && !backend->dir_monitor)
trash_watcher_rescan (backend->watcher);
real = trash_backend_get_file (backend, filename,
&item, &is_toplevel, &error);
@ -429,7 +514,7 @@ trash_backend_delete (GVfsBackend *vfs_backend,
g_vfs_job_succeeded (G_VFS_JOB (job));
trash_item_unref (item);
return TRUE;
return;
}
}
@ -439,11 +524,9 @@ trash_backend_delete (GVfsBackend *vfs_backend,
g_vfs_job_failed_from_error (G_VFS_JOB (job), error);
g_error_free (error);
return TRUE;
}
static gboolean
static void
trash_backend_pull (GVfsBackend *vfs_backend,
GVfsJobPull *job,
const gchar *source,
@ -456,7 +539,7 @@ trash_backend_pull (GVfsBackend *vfs_backend,
GVfsBackendTrash *backend = G_VFS_BACKEND_TRASH (vfs_backend);
GError *error = NULL;
if (source[1] == '\0')
if (is_root (source))
g_set_error_literal (&error, G_IO_ERROR, G_IO_ERROR_NOT_SUPPORTED,
_("The trash folder may not be deleted"));
else
@ -465,9 +548,6 @@ trash_backend_pull (GVfsBackend *vfs_backend,
TrashItem *item;
GFile *real;
if (!backend->file_monitor && !backend->dir_monitor)
trash_watcher_rescan (backend->watcher);
real = trash_backend_get_file (backend, source, &item,
&is_toplevel, &error);
@ -499,7 +579,7 @@ trash_backend_pull (GVfsBackend *vfs_backend,
trash_item_unref (item);
g_object_unref (real);
return TRUE;
return;
}
}
@ -511,8 +591,6 @@ trash_backend_pull (GVfsBackend *vfs_backend,
g_vfs_job_failed_from_error (G_VFS_JOB (job), error);
g_error_free (error);
return TRUE;
}
static void
@ -591,6 +669,8 @@ trash_backend_enumerate_root (GVfsBackendTrash *backend,
g_vfs_job_succeeded (G_VFS_JOB (job));
trash_backend_worker_thread_queue_and_wait (backend, rescan_func);
items = trash_root_get_items (backend->root);
for (node = items; node; node = node->next)
@ -670,7 +750,7 @@ trash_backend_enumerate_non_root (GVfsBackendTrash *backend,
g_error_free (error);
}
static gboolean
static void
trash_backend_enumerate (GVfsBackend *vfs_backend,
GVfsJobEnumerate *job,
const char *filename,
@ -681,18 +761,39 @@ trash_backend_enumerate (GVfsBackend *vfs_backend,
g_assert (filename[0] == '/');
trash_watcher_rescan (backend->watcher);
if (filename[1])
if (!is_root (filename))
trash_backend_enumerate_non_root (backend, job, filename,
attribute_matcher, flags);
else
trash_backend_enumerate_root (backend, job, attribute_matcher, flags);
return TRUE;
}
static gboolean
static gpointer
thread_func (gpointer user_data)
{
GVfsBackendTrash *backend = G_VFS_BACKEND_TRASH (user_data);
g_main_context_push_thread_default (backend->worker_context);
backend->worker_loop = g_main_loop_new (backend->worker_context, FALSE);
backend->root = trash_root_new (trash_backend_item_created,
trash_backend_item_deleted,
trash_backend_item_count_changed,
backend);
backend->watcher = trash_watcher_new (backend->root);
g_main_loop_run (backend->worker_loop);
trash_watcher_free (backend->watcher);
trash_root_free (backend->root);
g_main_context_pop_thread_default (backend->worker_context);
g_main_loop_unref (backend->worker_loop);
return NULL;
}
static void
trash_backend_mount (GVfsBackend *vfs_backend,
GVfsJobMount *job,
GMountSpec *mount_spec,
@ -703,18 +804,17 @@ trash_backend_mount (GVfsBackend *vfs_backend,
backend->file_monitor = NULL;
backend->dir_monitor = NULL;
backend->root = trash_root_new (trash_backend_item_created,
trash_backend_item_deleted,
trash_backend_item_count_changed,
backend->worker_context = g_main_context_new ();
backend->worker_thread = g_thread_new ("Trash Worker Thread",
thread_func,
backend);
backend->watcher = trash_watcher_new (backend->root);
trash_backend_worker_thread_queue_and_wait (backend, ready_func);
g_vfs_job_succeeded (G_VFS_JOB (job));
return TRUE;
}
static gboolean
static void
trash_backend_query_info (GVfsBackend *vfs_backend,
GVfsJobQueryInfo *job,
const char *filename,
@ -726,10 +826,7 @@ trash_backend_query_info (GVfsBackend *vfs_backend,
g_assert (filename[0] == '/');
if (!backend->file_monitor && !backend->dir_monitor)
trash_watcher_rescan (backend->watcher);
if (filename[1])
if (!is_root (filename))
{
GError *error = NULL;
gboolean is_toplevel;
@ -758,7 +855,7 @@ trash_backend_query_info (GVfsBackend *vfs_backend,
trash_item_unref (item);
g_object_unref (real_info);
return TRUE;
return;
}
trash_item_unref (item);
@ -772,6 +869,8 @@ trash_backend_query_info (GVfsBackend *vfs_backend,
GIcon *icon;
int n_items;
trash_backend_worker_thread_queue_and_wait (backend, rescan_func);
n_items = trash_root_get_n_items (backend->root);
g_file_info_set_file_type (info, G_FILE_TYPE_DIRECTORY);
@ -792,8 +891,6 @@ trash_backend_query_info (GVfsBackend *vfs_backend,
g_vfs_job_succeeded (G_VFS_JOB (job));
}
return TRUE;
}
static gboolean
@ -832,11 +929,16 @@ trash_backend_create_dir_monitor (GVfsBackend *vfs_backend,
GVfsBackendTrash *backend = G_VFS_BACKEND_TRASH (vfs_backend);
GVfsMonitor *monitor;
if (filename[1])
monitor = g_vfs_monitor_new (vfs_backend);
else
monitor = trash_backend_get_dir_monitor (backend, TRUE);
if (!is_root (filename))
{
g_vfs_job_failed (G_VFS_JOB (job),
G_IO_ERROR,
G_IO_ERROR_NOT_SUPPORTED,
_("Operation not supported"));
return TRUE;
}
monitor = trash_backend_get_dir_monitor (backend, TRUE);
g_vfs_job_create_monitor_set_monitor (job, monitor);
g_vfs_job_succeeded (G_VFS_JOB (job));
g_object_unref (monitor);
@ -853,11 +955,16 @@ trash_backend_create_file_monitor (GVfsBackend *vfs_backend,
GVfsBackendTrash *backend = G_VFS_BACKEND_TRASH (vfs_backend);
GVfsMonitor *monitor;
if (filename[1])
monitor = g_vfs_monitor_new (vfs_backend);
else
monitor = trash_backend_get_file_monitor (backend, TRUE);
if (!is_root (filename))
{
g_vfs_job_failed (G_VFS_JOB (job),
G_IO_ERROR,
G_IO_ERROR_NOT_SUPPORTED,
_("Operation not supported"));
return TRUE;
}
monitor = trash_backend_get_file_monitor (backend, TRUE);
g_vfs_job_create_monitor_set_monitor (job, monitor);
g_vfs_job_succeeded (G_VFS_JOB (job));
g_object_unref (monitor);
@ -880,9 +987,6 @@ trash_backend_finalize (GObject *object)
if (backend->dir_monitor)
g_object_unref (backend->dir_monitor);
backend->dir_monitor = NULL;
trash_watcher_free (backend->watcher);
trash_root_free (backend->root);
}
static void
@ -910,17 +1014,17 @@ g_vfs_backend_trash_class_init (GVfsBackendTrashClass *class)
gobject_class->finalize = trash_backend_finalize;
backend_class->try_mount = trash_backend_mount;
backend_class->try_open_for_read = trash_backend_open_for_read;
backend_class->try_read = trash_backend_read;
backend_class->try_seek_on_read = trash_backend_seek_on_read;
backend_class->mount = trash_backend_mount;
backend_class->open_for_read = trash_backend_open_for_read;
backend_class->read = trash_backend_read;
backend_class->seek_on_read = trash_backend_seek_on_read;
backend_class->query_info_on_read = trash_backend_query_info_on_read;
backend_class->try_close_read = trash_backend_close_read;
backend_class->try_query_info = trash_backend_query_info;
backend_class->close_read = trash_backend_close_read;
backend_class->query_info = trash_backend_query_info;
backend_class->try_query_fs_info = trash_backend_query_fs_info;
backend_class->try_enumerate = trash_backend_enumerate;
backend_class->try_delete = trash_backend_delete;
backend_class->try_pull = trash_backend_pull;
backend_class->enumerate = trash_backend_enumerate;
backend_class->delete = trash_backend_delete;
backend_class->pull = trash_backend_pull;
backend_class->try_create_dir_monitor = trash_backend_create_dir_monitor;
backend_class->try_create_file_monitor = trash_backend_create_file_monitor;
}

View File

@ -145,6 +145,9 @@ g_vfs_daemon_finalize (GObject *object)
daemon = G_VFS_DAEMON (object);
if (daemon->thread_pool != NULL)
g_thread_pool_free (daemon->thread_pool, TRUE, FALSE);
/* There may be some jobs outstanding if we've been force unmounted. */
if (daemon->jobs)
g_warning ("daemon->jobs != NULL when finalizing daemon!");

View File

@ -435,6 +435,7 @@ create_root_file_info (GVfsBackendFtp *ftp)
g_file_info_set_content_type (info, "inode/directory");
g_file_info_set_attribute_string (info, G_FILE_ATTRIBUTE_STANDARD_FAST_CONTENT_TYPE, "inode/directory");
g_file_info_set_is_symlink (info, FALSE);
icon = g_themed_icon_new ("folder-remote");
g_file_info_set_icon (info, icon);
@ -670,6 +671,8 @@ g_vfs_ftp_dir_cache_funcs_process (GInputStream * stream,
g_file_info_set_is_symlink (info, TRUE);
g_free (link);
}
else
g_file_info_set_is_symlink (info, FALSE);
g_file_info_set_size (info, g_ascii_strtoull (result.fe_size, NULL, 10));

View File

@ -79,7 +79,7 @@ on_name_acquired (GDBusConnection *connection,
char *argv2[6];
/* Use the old .gvfs location as fallback, not .cache/gvfs */
if (g_get_user_runtime_dir() == g_get_user_cache_dir ())
if (g_strcmp0 (g_get_user_runtime_dir(), g_get_user_cache_dir ()) == 0)
fuse_path = g_build_filename (g_get_home_dir(), ".gvfs", NULL);
else
fuse_path = g_build_filename (g_get_user_runtime_dir (), "gvfs", NULL);

View File

@ -739,7 +739,7 @@ handle_register_mount (GVfsDBusMountTracker *object,
if (arg_user_visible)
{
/* Use the old .gvfs location as fallback, not .cache/gvfs */
if (g_get_user_runtime_dir() == g_get_user_cache_dir ())
if (g_strcmp0 (g_get_user_runtime_dir(), g_get_user_cache_dir ()) == 0)
mount->fuse_mountpoint = g_build_filename (g_get_home_dir(), ".gvfs", mount->stable_name, NULL);
else
mount->fuse_mountpoint = g_build_filename (g_get_user_runtime_dir(), "gvfs", mount->stable_name, NULL);

View File

@ -163,10 +163,27 @@ trash_dir_changed (GFileMonitor *monitor,
TrashDir *dir = user_data;
if (event_type == G_FILE_MONITOR_EVENT_CREATED)
{
dir->items = g_slist_insert_sorted (dir->items,
g_object_ref (file),
(GCompareFunc) compare_basename);
trash_root_add_item (dir->root, file, dir->topdir, dir->is_homedir);
}
else if (event_type == G_FILE_MONITOR_EVENT_DELETED)
{
GSList *node;
node = g_slist_find_custom (dir->items,
file,
(GCompareFunc) compare_basename);
if (node)
{
g_object_unref (node->data);
dir->items = g_slist_delete_link (dir->items, node);
}
trash_root_remove_item (dir->root, file, dir->is_homedir);
}
else if (event_type == G_FILE_MONITOR_EVENT_PRE_UNMOUNT ||
event_type == G_FILE_MONITOR_EVENT_UNMOUNTED ||
@ -356,8 +373,6 @@ trash_dir_rescan (TrashDir *dir)
trash_dir_empty (dir);
}
static trash_dir_ui_hook ui_hook;
TrashDir *
trash_dir_new (TrashRoot *root,
gboolean watching,
@ -394,20 +409,11 @@ trash_dir_new (TrashRoot *root,
else
dir->watch = NULL;
if (ui_hook)
ui_hook (dir, dir->directory);
g_free (rel);
return dir;
}
void
trash_dir_set_ui_hook (trash_dir_ui_hook _ui_hook)
{
ui_hook = _ui_hook;
}
void
trash_dir_free (TrashDir *dir)
{

View File

@ -15,9 +15,6 @@
typedef struct OPAQUE_TYPE__TrashDir TrashDir;
typedef void (*trash_dir_ui_hook) (TrashDir *dir,
GFile *directory);
TrashDir *trash_dir_new (TrashRoot *root,
gboolean watching,
gboolean is_homedir,
@ -31,6 +28,4 @@ void trash_dir_watch (TrashDir *dir);
void trash_dir_unwatch (TrashDir *dir);
void trash_dir_rescan (TrashDir *dir);
void trash_dir_set_ui_hook (trash_dir_ui_hook ui_hook);
#endif /* _trashdir_h_ */

View File

@ -29,7 +29,6 @@ struct OPAQUE_TYPE__TrashRoot
gpointer user_data;
GHashTable *item_table;
gboolean is_homedir;
int old_size;
};

View File

@ -84,7 +84,9 @@ decide_watch_type (GUnixMountEntry *mount,
fs_type = g_unix_mount_get_fs_type (mount);
if (strcmp (fs_type, "nfs") == 0)
if (g_strcmp0 (fs_type, "nfs") == 0 ||
g_strcmp0 (fs_type, "nfs4") == 0 ||
g_strcmp0 (fs_type, "cifs") == 0)
return TRASH_WATCHER_WATCH;
else
return TRASH_WATCHER_TRUSTED;

View File

@ -1,9 +1,10 @@
project(
'gvfs', 'c',
version: '1.50.3',
version: '1.52.0',
license: 'LGPL2+',
default_options: 'buildtype=debugoptimized',
meson_version: '>= 0.56.0',
meson_version: '>= 0.57.0',
default_options: ['warning_level=1']
)
gvfs_name = meson.project_name()
@ -440,7 +441,7 @@ if enable_mtp
assert(enable_gudev, 'libmtp requested but gudev is required')
libmtp_dep = dependency('libmtp', version: '>= 1.1.12')
foreach version: ['1.1.15']
foreach version: ['1.1.15', '1.1.21']
config_h.set10('HAVE_LIBMTP_' + version.underscorify(), libmtp_dep.version().version_compare('>= ' + version))
endforeach
endif
@ -481,10 +482,9 @@ configure_file(
configuration: config_h,
)
meson.add_install_script(
'meson_post_install.py',
gio_schemasdir,
gio_giomoduledir,
gnome.post_install(
glib_compile_schemas: true,
gio_querymodules: gio_giomoduledir,
)
summary({

View File

@ -1,12 +0,0 @@
#!/usr/bin/env python3
import os
import subprocess
import sys
if not os.environ.get('DESTDIR'):
print('Compiling gsettings schemas...')
subprocess.call(['glib-compile-schemas', sys.argv[1]])
print('GIO module cache creation...')
subprocess.call(['gio-querymodules', sys.argv[2]])

View File

@ -331,6 +331,7 @@ gudev_coldplug_cameras (GGPhoto2VolumeMonitor *monitor)
if (g_udev_device_has_property (d, "ID_GPHOTO2"))
gudev_add_camera (monitor, d, FALSE);
}
g_list_free_full (usb_devices, g_object_unref);
}
static GObject *

View File

@ -568,11 +568,9 @@ unmount_operation_is_stop (GMountOperation *op)
}
static void
umount_completed (GObject *object,
GParamSpec *pspec,
gpointer user_data)
umount_completed (gpointer user_data)
{
GTask *task = G_TASK (object);
GTask *task = G_TASK (user_data);
UnmountData *data = g_task_get_task_data (task);
if (data->mount_operation &&
@ -813,7 +811,15 @@ lock_cb (GObject *source_object,
&error))
g_task_return_error (task, error);
else
{
/* Call the unmount_completed function explicitly here as it is too
* late to emit show-unmount-progress signal from the notify::completed
* callback.
*/
umount_completed (task);
g_task_return_boolean (task, TRUE);
}
g_object_unref (task);
}
@ -859,6 +865,12 @@ unmount_cb (GObject *source_object,
return;
}
/* Call the unmount_completed function explicitly here as it is too
* late to emit show-unmount-progress signal from the notify::completed
* callback.
*/
umount_completed (task);
g_task_return_boolean (task, TRUE);
g_object_unref (task);
}
@ -893,6 +905,13 @@ umount_command_cb (GObject *source_object,
if (WIFEXITED (exit_status) && WEXITSTATUS (exit_status) == 0)
{
gvfs_udisks2_volume_monitor_update (mount->monitor);
/* Call the unmount_completed function explicitly here as it is too
* late to emit show-unmount-progress signal from the notify::completed
* callback.
*/
umount_completed (task);
g_task_return_boolean (task, TRUE);
g_object_unref (task);
goto out;
@ -928,7 +947,7 @@ unmount_do (GTask *task,
{
gvfs_udisks2_unmount_notify_start (data->mount_operation,
G_MOUNT (g_task_get_source_object (task)), NULL);
g_signal_connect (task, "notify::completed", G_CALLBACK (umount_completed), NULL);
g_signal_connect_swapped (task, "notify::completed", G_CALLBACK (umount_completed), task);
}
/* Use the umount(8) command if there is no block device / filesystem */

View File

@ -709,6 +709,7 @@ unmount_notify_data_free (gpointer user_data)
UnmountNotifyData *data = user_data;
unmount_notify_stop_timer (data);
g_signal_handlers_disconnect_by_data (data->op, data);
g_clear_object (&data->mount);
g_clear_object (&data->drive);
@ -765,7 +766,7 @@ gvfs_udisks2_unmount_notify_stop (GMountOperation *op,
gboolean unmount_failed)
{
gchar *message, *name;
UnmountNotifyData *data = g_object_get_data (G_OBJECT (op), "x-udisks2-notify-data");
UnmountNotifyData *data = g_object_steal_data (G_OBJECT (op), "x-udisks2-notify-data");
if (data == NULL)
return;
@ -773,7 +774,10 @@ gvfs_udisks2_unmount_notify_stop (GMountOperation *op,
unmount_notify_stop_timer (data);
if (unmount_failed)
{
unmount_notify_data_free (data);
return;
}
name = unmount_notify_get_name (data);
if (data->mount)
@ -784,6 +788,7 @@ gvfs_udisks2_unmount_notify_stop (GMountOperation *op,
g_signal_emit_by_name (data->op, "show-unmount-progress",
message, 0, 0);
unmount_notify_data_free (data);
g_free (message);
g_free (name);
}

View File

@ -442,6 +442,9 @@ get_udisks_client_sync (GError **error)
if (g_once_init_enter (&initialized))
{
_client = udisks_client_new_sync (NULL, &_error);
if (_error != NULL)
g_warning ("Failed to connect to UDisks: %s", _error->message);
g_once_init_leave (&initialized, 1);
}

4230
po/ab.po

File diff suppressed because it is too large Load Diff

1173
po/be.po

File diff suppressed because it is too large Load Diff

View File

@ -2026,7 +2026,7 @@ msgstr "%s: %s"
#: daemon/main.c:189 metadata/meta-daemon.c:488
#, c-format
msgid "Try “%s --help” for more information."
msgstr "За повече информация използвайте: „%s --help“."
msgstr "За повече информация изпълнете „%s --help“."
#: daemon/mount.c:783
#, c-format

723
po/ka.po

File diff suppressed because it is too large Load Diff

228
po/oc.po
View File

@ -9,8 +9,8 @@ msgid ""
msgstr ""
"Project-Id-Version: po_gvfs-oc\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gvfs/issues\n"
"POT-Creation-Date: 2021-05-13 14:35+0000\n"
"PO-Revision-Date: 2021-12-02 15:46+0100\n"
"POT-Creation-Date: 2023-01-25 20:37+0000\n"
"PO-Revision-Date: 2023-09-07 18:55+0200\n"
"Last-Translator: Quentin PAGÈS\n"
"Language-Team: Tot En Òc\n"
"Language: oc\n"
@ -18,7 +18,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Poedit 3.0\n"
"X-Generator: Poedit 3.3.2\n"
"X-Launchpad-Export-Date: 2015-05-20 16:56+0000\n"
"X-Project-Style: gnome\n"
@ -97,7 +97,7 @@ msgstr "Fin de flux"
#: client/gdaemonfileinputstream.c:1418 client/gdaemonfileoutputstream.c:553
#: client/gdaemonfileoutputstream.c:731 client/gdaemonfileoutputstream.c:926
#: client/gdaemonfileoutputstream.c:1092 client/gdaemonfileoutputstream.c:1274
#: daemon/gvfsbackendsftp.c:5531 daemon/gvfsbackendsmb.c:1122
#: daemon/gvfsbackendsftp.c:5531 daemon/gvfsbackendsmb.c:1108
#: daemon/gvfsbackendtest.c:92 daemon/gvfsbackendtest.c:125
#: daemon/gvfsbackendtest.c:188 daemon/gvfschannel.c:347
#: daemon/gvfsftptask.c:224
@ -127,7 +127,7 @@ msgstr ""
#: daemon/gvfsafpvolume.c:2402 daemon/gvfsbackendadmin.c:150
#: daemon/gvfsbackendafc.c:166 daemon/gvfsbackendgoogle.c:256
#: daemon/gvfsbackendsftp.c:346 daemon/gvfsbackendsftp.c:1125
#: daemon/gvfsbackendsftp.c:2215 daemon/gvfsftptask.c:437
#: daemon/gvfsbackendsftp.c:2215 daemon/gvfsftptask.c:438 daemon/mount.c:437
#, c-format
msgid "Permission denied"
msgstr "Autorizacion refusada"
@ -250,7 +250,7 @@ msgid "Got EOS"
msgstr "EOS (fin de flux) obtengut"
#: daemon/gvfsafpconnection.c:1060 daemon/gvfsafpconnection.c:1102
#: daemon/gvfsftptask.c:397
#: daemon/gvfsftptask.c:398
msgid "Host closed connection"
msgstr "L'òste a tampat la connexion"
@ -407,16 +407,16 @@ msgstr "Impossible de cargar %s sus %s"
#: daemon/gvfsbackendmtp.c:2240 daemon/gvfsbackendmtp.c:2307
#: daemon/gvfsbackendmtp.c:2669 daemon/gvfsbackendmtp.c:2948
#: daemon/gvfsbackendmtp.c:3091 daemon/gvfsbackendnetwork.c:697
#: daemon/gvfsbackendsmbbrowse.c:1119 daemon/gvfsbackendsmbbrowse.c:1186
#: daemon/gvfsbackendsmbbrowse.c:1368 daemon/gvfsbackendsmbbrowse.c:1441
#: daemon/gvfsbackendsmbbrowse.c:1125 daemon/gvfsbackendsmbbrowse.c:1192
#: daemon/gvfsbackendsmbbrowse.c:1374 daemon/gvfsbackendsmbbrowse.c:1447
#, c-format
msgid "File doesnt exist"
msgstr "Lo fichièr existís pas"
#: daemon/gvfsafpvolume.c:402 daemon/gvfsafpvolume.c:2410
#: daemon/gvfsbackendafp.c:289 daemon/gvfsbackendafp.c:492
#: daemon/gvfsbackendafp.c:1341 daemon/gvfsbackenddav.c:2410
#: daemon/gvfsbackenddav.c:3073 daemon/gvfsbackenddav.c:3353
#: daemon/gvfsbackendafp.c:1341 daemon/gvfsbackenddav.c:2799
#: daemon/gvfsbackenddav.c:3754 daemon/gvfsbackenddav.c:4001
#: daemon/gvfsbackendftp.c:832 daemon/gvfsbackendnfs.c:2480
#: daemon/gvfsbackendsftp.c:2725 daemon/gvfsbackendsftp.c:3500
#: daemon/gvfsbackendsftp.c:3948 daemon/gvfsbackendsftp.c:5020
@ -433,7 +433,7 @@ msgid "Target file is open"
msgstr "Lo fichièr cibla es dobèrt"
#: daemon/gvfsafpvolume.c:663 daemon/gvfsbackendafc.c:154
#: daemon/gvfsbackendburn.c:421 daemon/gvfsbackenddav.c:2800
#: daemon/gvfsbackendburn.c:421 daemon/gvfsbackenddav.c:3307
#: daemon/gvfsbackendgoogle.c:2497 daemon/gvfsbackendsftp.c:2209
msgid "Directory not empty"
msgstr "Lo repertòri es pas void"
@ -462,10 +462,10 @@ msgstr "Pas pro de plaça sul volum"
#: daemon/gvfsafpvolume.c:811 daemon/gvfsafpvolume.c:1355
#: daemon/gvfsafpvolume.c:1507 daemon/gvfsbackendafp.c:296
#: daemon/gvfsbackendafp.c:499 daemon/gvfsbackenddav.c:2465
#: daemon/gvfsbackenddav.c:2761 daemon/gvfsbackenddav.c:2869
#: daemon/gvfsbackenddav.c:3006 daemon/gvfsbackenddav.c:3082
#: daemon/gvfsbackenddav.c:3120 daemon/gvfsbackenddav.c:3344
#: daemon/gvfsbackendafp.c:499 daemon/gvfsbackenddav.c:2870
#: daemon/gvfsbackenddav.c:3224 daemon/gvfsbackenddav.c:3380
#: daemon/gvfsbackenddav.c:3486 daemon/gvfsbackenddav.c:3720
#: daemon/gvfsbackenddav.c:3764 daemon/gvfsbackenddav.c:3991
#: daemon/gvfsbackendftp.c:811 daemon/gvfsbackendftp.c:999
#: daemon/gvfsbackendftp.c:1509 daemon/gvfsbackendftp.c:1576
#: daemon/gvfsbackendgoogle.c:1703 daemon/gvfsbackendgoogle.c:1780
@ -473,7 +473,7 @@ msgstr "Pas pro de plaça sul volum"
#: daemon/gvfsbackendgoogle.c:2757 daemon/gvfsbackendgoogle.c:3204
#: daemon/gvfsbackendgoogle.c:3869 daemon/gvfsbackendmtp.c:1650
#: daemon/gvfsbackendmtp.c:1693 daemon/gvfsbackendnfs.c:2490
#: daemon/gvfsbackendsftp.c:5029 daemon/gvfsbackendsmb.c:2111
#: daemon/gvfsbackendsftp.c:5029 daemon/gvfsbackendsmb.c:2097
msgid "Target file already exists"
msgstr "Lo fichièr cibla existís ja"
@ -586,8 +586,8 @@ msgstr "Lo fichièr es pas dobèrt per un accès en lectura"
#: daemon/gvfsbackendadmin.c:104 daemon/gvfsbackendadmin.c:871
#: daemon/gvfsbackendafc.c:2361 daemon/gvfsbackendafp.c:1781
#: daemon/gvfsbackendburn.c:829 daemon/gvfsbackendburn.c:951
#: daemon/gvfsbackendcomputer.c:812 daemon/gvfsbackenddav.c:3427
#: daemon/gvfsbackenddav.c:3459 daemon/gvfsbackenddav.c:3487
#: daemon/gvfsbackendcomputer.c:812 daemon/gvfsbackenddav.c:4083
#: daemon/gvfsbackenddav.c:4115 daemon/gvfsbackenddav.c:4143
#: daemon/gvfsbackendftp.c:1209 daemon/gvfsbackendftp.c:1257
#: daemon/gvfsbackendftp.c:1278 daemon/gvfsbackendftp.c:1624
#: daemon/gvfsbackendgoogle.c:1590 daemon/gvfsbackendgoogle.c:1623
@ -617,7 +617,7 @@ msgstr "Lo fichièr es pas dobèrt per un accès en lectura"
#: daemon/gvfsbackendsftp.c:6259 daemon/gvfsbackendsftp.c:6285
#: daemon/gvfsbackendsftp.c:6293 daemon/gvfsbackendsftp.c:6780
#: daemon/gvfsbackendsftp.c:6842 daemon/gvfsbackendsftp.c:6850
#: daemon/gvfsbackendsmb.c:1714 daemon/gvfsftptask.c:429
#: daemon/gvfsbackendsmb.c:1700 daemon/gvfsftptask.c:430
#: daemon/gvfsjobcloseread.c:113 daemon/gvfsjobclosewrite.c:121
#: daemon/gvfsjobcopy.c:121 daemon/gvfsjobcreatemonitor.c:143
#: daemon/gvfsjobcreatemonitor.c:154 daemon/gvfsjobcreatemonitor.c:177
@ -641,9 +641,9 @@ msgid "Operation not supported"
msgstr "Operacion pas presa en carga"
#: daemon/gvfsbackendadmin.c:999 daemon/gvfsbackendarchive.c:639
#: daemon/gvfsbackendarchive.c:668 daemon/gvfsbackenddav.c:1903
#: daemon/gvfsbackendgoogle.c:2943 daemon/gvfsbackendhttp.c:256
#: daemon/gvfsbackendsmb.c:596
#: daemon/gvfsbackendarchive.c:668 daemon/gvfsbackenddav.c:2356
#: daemon/gvfsbackendgoogle.c:2943 daemon/gvfsbackendhttp.c:303
#: daemon/gvfsbackendsmb.c:582
msgid "Invalid mount spec"
msgstr "Especificacion de montatge invalida"
@ -722,7 +722,7 @@ msgstr "Error libimobiledevice pas gerida (%d)"
msgid "Try again"
msgstr "Tornar ensajar"
#: daemon/gvfsbackendafc.c:394 daemon/gvfsbackend.c:1025
#: daemon/gvfsbackendafc.c:394 daemon/gvfsbackend.c:1024
#: monitor/udisks2/gvfsudisks2mount.c:750
msgid "Cancel"
msgstr "Anullar"
@ -802,27 +802,27 @@ msgstr ""
#: daemon/gvfsbackendcomputer.c:657 daemon/gvfsbackendgoogle.c:3577
#: daemon/gvfsbackendgphoto2.c:1548 daemon/gvfsbackendmtp.c:2329
#: daemon/gvfsbackendnfs.c:356 daemon/gvfsbackendrecent.c:126
#: daemon/gvfsbackendsmb.c:686 daemon/gvfsbackendtrash.c:234
#: daemon/gvfsbackendsmb.c:672 daemon/gvfsbackendtrash.c:234
msgid "Cant open directory"
msgstr "Impossible de dobrir lo repertòri"
#: daemon/gvfsbackendafc.c:1273 daemon/gvfsbackendafc.c:2528
#: daemon/gvfsbackendafp.c:1270 daemon/gvfsbackendafp.c:1359
#: daemon/gvfsbackenddav.c:2905 daemon/gvfsbackendftp.c:1461
#: daemon/gvfsbackenddav.c:3661 daemon/gvfsbackendftp.c:1461
#: daemon/gvfsbackendsftp.c:3722 daemon/gvfsbackendsftp.c:4009
msgid "Backups not supported"
msgstr "Los salvamments son pas preses en carga pel moment"
#: daemon/gvfsbackendafc.c:1435 daemon/gvfsbackendsmb.c:739
#: daemon/gvfsbackendsmb.c:1218
#: daemon/gvfsbackendafc.c:1435 daemon/gvfsbackendsmb.c:725
#: daemon/gvfsbackendsmb.c:1204
msgid "Unsupported seek type"
msgstr "Tipe « seek » pas pres en carga"
#: daemon/gvfsbackendafpbrowse.c:208 daemon/gvfsbackendcomputer.c:958
#: daemon/gvfsbackendcomputer.c:1053 daemon/gvfsbackendcomputer.c:1159
#: daemon/gvfsbackendcomputer.c:1249 daemon/gvfsbackendcomputer.c:1322
#: daemon/gvfsbackendcomputer.c:1391 daemon/gvfsbackendsmbbrowse.c:1114
#: daemon/gvfsbackendsmbbrowse.c:1160
#: daemon/gvfsbackendcomputer.c:1391 daemon/gvfsbackendsmbbrowse.c:1120
#: daemon/gvfsbackendsmbbrowse.c:1166
msgid "Not a mountable file"
msgstr "Es pas un fichièr que pòt èsser montat"
@ -839,8 +839,8 @@ msgstr "Es pas un fichièr que pòt èsser montat"
#. Translators: This is "<sharename> on <servername>" and is used as name for an SMB share
#: daemon/gvfsbackendafpbrowse.c:446 daemon/gvfsbackendafp.c:2105
#: daemon/gvfsbackendftp.c:681 daemon/gvfsbackendnfs.c:290
#: daemon/gvfsbackendsftp.c:2070 daemon/gvfsbackendsmb.c:455
#: daemon/gvfsbackendsmb.c:1390
#: daemon/gvfsbackendsftp.c:2070 daemon/gvfsbackendsmb.c:442
#: daemon/gvfsbackendsmb.c:1376
#, c-format
msgid "%s on %s"
msgstr "%s sus %s"
@ -862,7 +862,7 @@ msgid "Apple Filing Protocol Service"
msgstr "Servici de protocòl de partiment de fichièrs d'Apple"
#: daemon/gvfsbackendafp.c:286 daemon/gvfsbackendburn.c:877
#: daemon/gvfsbackenddav.c:3068 daemon/gvfsbackendftp.c:1568
#: daemon/gvfsbackenddav.c:3749 daemon/gvfsbackendftp.c:1568
#: daemon/gvfsbackendgoogle.c:1752 daemon/gvfsbackendgoogle.c:2095
#: daemon/gvfsbackendgoogle.c:3141
#, fuzzy
@ -871,7 +871,7 @@ msgid "Cant copy directory over directory"
msgstr "Impossible d'espotir un repertòri amb un autre repertòri"
#: daemon/gvfsbackendafp.c:305 daemon/gvfsbackendburn.c:893
#: daemon/gvfsbackenddav.c:3097 daemon/gvfsbackendftp.c:1591
#: daemon/gvfsbackenddav.c:3784 daemon/gvfsbackendftp.c:1591
#: daemon/gvfsbackendgoogle.c:1814 daemon/gvfsbackendgoogle.c:3168
#: daemon/gvfsbackendgoogle.c:3216 daemon/gvfsbackendmtp.c:1641
#: daemon/gvfsbackendmtp.c:1656
@ -880,9 +880,9 @@ msgstr "Impossible d'espotir un repertòri amb un autre repertòri"
msgid "Cant recursively copy directory"
msgstr "Impossible de copiar recursivament un repertòri"
#: daemon/gvfsbackendafp.c:489 daemon/gvfsbackenddav.c:2945
#: daemon/gvfsbackendafp.c:489 daemon/gvfsbackenddav.c:3562
#: daemon/gvfsbackendgoogle.c:2209 daemon/gvfsbackendnfs.c:2474
#: daemon/gvfsbackendsftp.c:5015 daemon/gvfsbackendsmb.c:2100
#: daemon/gvfsbackendsftp.c:5015 daemon/gvfsbackendsmb.c:2086
#, fuzzy
#| msgid "Can't move directory over directory"
msgid "Cant move directory over directory"
@ -893,9 +893,9 @@ msgstr "Impossible de desplaçar un repertòri sus un repertòri de meteis nom"
msgid "Unable to create temporary file (%s)"
msgstr "Impossible de crear lo fichièr temporari (%s)"
#: daemon/gvfsbackendafp.c:1348 daemon/gvfsbackenddav.c:2546
#: daemon/gvfsbackendafp.c:1348 daemon/gvfsbackenddav.c:2977
#: daemon/gvfsbackendnfs.c:1177 daemon/gvfsbackendsftp.c:3963
#: daemon/gvfsbackendsmb.c:1091
#: daemon/gvfsbackendsmb.c:1077
msgid "The file was externally modified"
msgstr "Lo fichièr es estat modificat d'un biais extèrne"
@ -958,10 +958,8 @@ msgstr "Aqueste fichièr o aqueste repertòri existís pas"
#: daemon/gvfsbackendburn.c:455 daemon/gvfsbackendburn.c:905
#: daemon/gvfsbackendgoogle.c:1760 daemon/gvfsbackendgoogle.c:2103
#: daemon/gvfsbackendgoogle.c:3149
#, fuzzy
#| msgid "Can't copy file over directory"
msgid "Cant copy file over directory"
msgstr "Impossible d'espotir un repertòri amb un fichièr"
msgstr "Impossible de copiar un fichièr par dessús un repertòri"
#. Translators: this is the display name of the backend
#: daemon/gvfsbackendburn.c:652
@ -975,21 +973,21 @@ msgstr "Creator de CD/DVD"
msgid "File exists"
msgstr "Lo fichièr existís"
#: daemon/gvfsbackendburn.c:886 daemon/gvfsbackenddav.c:2983
#: daemon/gvfsbackendburn.c:886 daemon/gvfsbackenddav.c:3601
#: daemon/gvfsbackendsftp.c:2211 daemon/gvfsbackendsftp.c:5195
msgid "Target file exists"
msgstr "Lo fichièr cibla existís"
#: daemon/gvfsbackend.c:890 daemon/gvfsjobunmount.c:197
#: daemon/gvfsbackend.c:889 daemon/gvfsjobunmount.c:197
#: daemon/gvfsjobunmount.c:264
msgid "File system is busy"
msgstr "Lo sistèma de fichièrs es ocupat"
#: daemon/gvfsbackend.c:1024 monitor/udisks2/gvfsudisks2mount.c:748
#: daemon/gvfsbackend.c:1023 monitor/udisks2/gvfsudisks2mount.c:748
msgid "Unmount Anyway"
msgstr "Desmontar çaquelà"
#: daemon/gvfsbackend.c:1027 monitor/udisks2/gvfsudisks2mount.c:751
#: daemon/gvfsbackend.c:1026 monitor/udisks2/gvfsudisks2mount.c:751
msgid ""
"Volume is busy\n"
"One or more applications are keeping the volume busy."
@ -1116,48 +1114,50 @@ msgstr "Impossible d'interrogar lo fichièr"
#. Translators: This is the name of the WebDAV share constructed as
#. "WebDAV as <username> on <hostname>:<port>"; the ":<port>" part is
#. the second %s and only shown if it is not the default http(s) port.
#: daemon/gvfsbackenddav.c:503
#: daemon/gvfsbackenddav.c:412
#, c-format
msgid "%s on %s%s"
msgstr "%s sus %s%s"
#: daemon/gvfsbackenddav.c:708 daemon/gvfsbackenddav.c:2078
#: daemon/gvfsbackendhttp.c:202
#: daemon/gvfsbackenddav.c:766 daemon/gvfsbackenddav.c:1536
#: daemon/gvfsbackenddav.c:2147 daemon/gvfsbackenddav.c:2311
#: daemon/gvfsbackendhttp.c:268 daemon/gvfshttpinputstream.c:273
#, c-format
msgid "HTTP Error: %s"
msgstr "Error HTTP : %s"
#: daemon/gvfsbackenddav.c:725
#: daemon/gvfsbackenddav.c:781
msgid "Could not parse response"
msgstr "Impossible d'analisar la responsa"
#: daemon/gvfsbackenddav.c:734
#: daemon/gvfsbackenddav.c:790
msgid "Empty response"
msgstr "Responsa voida"
#: daemon/gvfsbackenddav.c:742
#: daemon/gvfsbackenddav.c:798
msgid "Unexpected reply from server"
msgstr "Responsa inesperada del servidor"
#: daemon/gvfsbackenddav.c:1444 daemon/gvfsbackenddav.c:2205
#: daemon/gvfsbackenddav.c:2300 daemon/gvfsbackenddav.c:2402
#: daemon/gvfsbackenddav.c:1554 daemon/gvfsbackenddav.c:2512
#: daemon/gvfsbackenddav.c:2607 daemon/gvfsbackenddav.c:2791
#, c-format
msgid "Response invalid"
msgstr "Responsa invalida"
#: daemon/gvfsbackenddav.c:1588
#: daemon/gvfsbackenddav.c:1775
msgid "WebDAV share"
msgstr "Partiment WebDAV"
#. Translators: %s is the name of the WebDAV share
#. Translators: %s is a server name
#: daemon/gvfsbackenddav.c:1591 daemon/gvfsbackendsmbbrowse.c:373
#: daemon/gvfsbackenddav.c:1778 daemon/gvfsbackendsmbbrowse.c:373
#, c-format
msgid ""
"Authentication Required\n"
"Enter password for “%s”:"
msgstr ""
#: daemon/gvfsbackenddav.c:1594
#: daemon/gvfsbackenddav.c:1781
msgid ""
"Authentication Required\n"
"Enter proxy password:"
@ -1165,37 +1165,33 @@ msgstr ""
"Autentificacion requerida\n"
"Picatz lo senhal del servidor mandatari:"
#: daemon/gvfsbackenddav.c:2064
msgid "Not a WebDAV enabled share"
msgstr "Aqueste partiment pren pas en carga WebDAV"
#: daemon/gvfsbackenddav.c:2086
#: daemon/gvfsbackenddav.c:2155
#, fuzzy
#| msgid "Could not find enclosing mount"
msgid "Could not find an enclosing directory"
msgstr "Impossible de trobar lo punt de montatge òste"
#: daemon/gvfsbackenddav.c:2159 daemon/gvfsbackenddav.c:2255
#: daemon/gvfsbackenddav.c:2328 daemon/gvfsbackenddav.c:2436
#: daemon/gvfsbackenddav.c:2299
msgid "Not a WebDAV enabled share"
msgstr "Aqueste partiment pren pas en carga WebDAV"
#: daemon/gvfsbackenddav.c:2538 daemon/gvfsbackenddav.c:2651
#: daemon/gvfsbackenddav.c:2738 daemon/gvfsbackenddav.c:2825
msgid "Could not create request"
msgstr "Impossible de crear la requèsta"
#: daemon/gvfsbackenddav.c:2577 daemon/gvfsbackendftp.c:1102
#: daemon/gvfsbackenddav.c:3011 daemon/gvfsbackendftp.c:1102
#: daemon/gvfsbackendgoogle.c:3944 daemon/gvfsbackendnfs.c:941
#: daemon/gvfsbackendnfs.c:964 daemon/gvfsbackendnfs.c:990
#: daemon/gvfsbackendnfs.c:1390 daemon/gvfsbackendsmb.c:1127
#: daemon/gvfsbackendsmb.c:2128
#: daemon/gvfsbackendnfs.c:1390 daemon/gvfsbackendsmb.c:1113
#: daemon/gvfsbackendsmb.c:2114
msgid "Backup file creation failed"
msgstr "La creacion del fichièr de salvament a fracassat"
#: daemon/gvfsbackenddav.c:2950
#: daemon/gvfsbackenddav.c:3567
msgid "Cant move over directory"
msgstr "Impossible d'espotir lo repertòri"
#: daemon/gvfsbackenddav.c:3219
msgid "File length changed during transfer"
msgstr ""
#: daemon/gvfsbackenddnssd.c:521 daemon/gvfsbackendnetwork.c:462
msgid "Local Network"
msgstr "Ret locala"
@ -1215,8 +1211,8 @@ msgid "Network"
msgstr "Ret"
#: daemon/gvfsbackendftp.c:560 daemon/gvfsbackendsftp.c:1191
#: daemon/gvfsbackendsftp.c:1295 daemon/gvfsbackendsmbbrowse.c:1014
#: daemon/gvfsbackendsmb.c:551
#: daemon/gvfsbackendsftp.c:1295 daemon/gvfsbackendsmbbrowse.c:1020
#: daemon/gvfsbackendsmb.c:537
msgid "Password dialog cancelled"
msgstr "La demanda de picada del senhal es estada anullada"
@ -1225,10 +1221,8 @@ msgid "Insufficient permissions"
msgstr "Autorizacions insufisentas"
#: daemon/gvfsbackendgoogle.c:2217
#, fuzzy
#| msgid "Can't move over directory"
msgid "Cant move file over directory"
msgstr "Impossible d'espotir lo repertòri"
msgstr "Impossible de desplaçar un fichièr per dessús un repertòri"
#: daemon/gvfsbackendgoogle.c:2259
msgid "Error moving file/folder"
@ -1252,7 +1246,7 @@ msgstr "Error al moment de l'obtencion de las donadas del fichièr"
#: daemon/gvfsbackendgoogle.c:3158 daemon/gvfsbackendgoogle.c:3984
#: daemon/gvfsbackendnfs.c:1162
msgid "Target file is not a regular file"
msgstr ""
msgstr "Lo fichièr cibla es pas un fichièr estandard"
#: daemon/gvfsbackendgoogle.c:3584 daemon/gvfsbackendsftp.c:2390
#: daemon/gvfsbackendsftp.c:2792 daemon/gvfsbackendsftp.c:2855
@ -1392,7 +1386,7 @@ msgid "Error seeking in stream on camera %s"
msgstr "Error de desplaçament dins lo flux sus l'aparelh de fòto %s"
#: daemon/gvfsbackendgphoto2.c:1863 daemon/gvfsbackendsftp.c:3380
#: daemon/gvfsbackendsmbbrowse.c:1437
#: daemon/gvfsbackendsmbbrowse.c:1443
msgid "Not a directory"
msgstr "Es pas un repertòri"
@ -1476,7 +1470,7 @@ msgid ""
msgstr ""
"Pas pres en carga (la font es un fichièr, mas la destinacion es un repertòri)"
#: daemon/gvfsbackendhttp.c:198
#: daemon/gvfsbackendhttp.c:263
#, c-format
msgid "HTTP Client Error: %s"
msgstr "Error del client HTTP : %s"
@ -1553,7 +1547,7 @@ msgstr "Impossible de crear un repertòri a aqueste emplaçament"
#: daemon/gvfsbackendmtp.c:2245 daemon/gvfsbackendmtp.c:2312
#: daemon/gvfsbackendmtp.c:2674 daemon/gvfsbackendmtp.c:2740
#: daemon/gvfsbackendmtp.c:2953 daemon/gvfsbackendmtp.c:3096
#: daemon/gvfsbackendsmbbrowse.c:1182
#: daemon/gvfsbackendsmbbrowse.c:1188
msgid "Not a regular file"
msgstr "Es pas un fichièr estandard"
@ -1587,7 +1581,7 @@ msgstr "Vista generala de la ret"
#: daemon/gvfsbackendnfs.c:242
msgid "Mount point does not exist"
msgstr ""
msgstr "Lo punt de montatge existís pas"
#: daemon/gvfsbackendnfs.c:266
msgid ""
@ -1774,7 +1768,7 @@ msgstr "Impossible de trobar una comanda SSH presa en carga"
msgid "Unknown reason"
msgstr "Rason desconeguda"
#: daemon/gvfsbackendsftp.c:2649 daemon/gvfsbackendsmb.c:1397
#: daemon/gvfsbackendsftp.c:2649 daemon/gvfsbackendsmb.c:1383
#: daemon/gvfsdaemonutils.c:140
msgid " (invalid encoding)"
msgstr " (encodatge invalid)"
@ -1798,13 +1792,13 @@ msgstr "Error de creacion del fichièr de salvament : %s"
msgid "Value out of range, sftp only supports 32bit timestamps"
msgstr ""
#: daemon/gvfsbackendsftp.c:5500 daemon/gvfsbackendsmb.c:1739
#: daemon/gvfsbackendsftp.c:5500 daemon/gvfsbackendsmb.c:1725
msgid "Invalid attribute type (uint64 expected)"
msgstr "Tipe d'atribut invalid (uint64 esperat)"
#: daemon/gvfsbackendsmbbrowse.c:808 daemon/gvfsbackendsmbbrowse.c:847
#: daemon/gvfsbackendsmb.c:414 daemon/gvfsbackendsmb.c:441
#: daemon/gvfsbackendsmb.c:632
#: daemon/gvfsbackendsmb.c:401 daemon/gvfsbackendsmb.c:428
#: daemon/gvfsbackendsmb.c:618
#, c-format
msgid "Internal Error (%s)"
msgstr "Error intèrna (%s)"
@ -1817,17 +1811,17 @@ msgid "Windows shares on %s"
msgstr "Partiments Windows sus %s"
#. translators: We tried to mount a windows (samba) share, but failed
#: daemon/gvfsbackendsmbbrowse.c:1019
#: daemon/gvfsbackendsmbbrowse.c:1025
#, c-format
msgid "Failed to retrieve share list from server: %s"
msgstr "L'obtencion de la lista dels partiments del servidor a fracassat : %s"
#: daemon/gvfsbackendsmbbrowse.c:1541
#: daemon/gvfsbackendsmbbrowse.c:1547
msgid "Windows Network File System Service"
msgstr "Servici de sistèma de fichièrs ret Windows"
#. Translators: First %s is a share name, second is a server name
#: daemon/gvfsbackendsmb.c:270
#: daemon/gvfsbackendsmb.c:257
#, c-format
msgid ""
"Authentication Required\n"
@ -1835,7 +1829,7 @@ msgid ""
msgstr ""
#. Translators: First %s is a share name, second is a server name
#: daemon/gvfsbackendsmb.c:276
#: daemon/gvfsbackendsmb.c:263
#, c-format
msgid ""
"Authentication Required\n"
@ -1843,42 +1837,42 @@ msgid ""
msgstr ""
#. translators: We tried to mount a windows (samba) share, but failed
#: daemon/gvfsbackendsmb.c:556
#: daemon/gvfsbackendsmb.c:542
#, c-format
msgid "Failed to mount Windows share: %s"
msgstr "Impossible de montar lo partiment Windows : %s"
#: daemon/gvfsbackendsmb.c:1326
#: daemon/gvfsbackendsmb.c:1312
#, c-format
msgid "Backup file creation failed: %s"
msgstr "La creacion del fichièr de salvament a fracassat : %s"
#: daemon/gvfsbackendsmb.c:1937
#: daemon/gvfsbackendsmb.c:1923
msgid "Cant rename file, filename already exists"
msgstr "Impossible de renomenar lo fichièr, lo nom de fichièr existís ja"
#: daemon/gvfsbackendsmb.c:1988
#: daemon/gvfsbackendsmb.c:1974
#, c-format
msgid "Error deleting file: %s"
msgstr "Error al moment de la supression del fichièr : %s"
#: daemon/gvfsbackendsmb.c:2075
#: daemon/gvfsbackendsmb.c:2061
#, c-format
msgid "Error moving file: %s"
msgstr "Error al moment del desplaçament del fichièr : %s"
#: daemon/gvfsbackendsmb.c:2148
#: daemon/gvfsbackendsmb.c:2134
#, c-format
msgid "Error removing target file: %s"
msgstr "Error al moment de la supression del fichièr cibla : %s"
#: daemon/gvfsbackendsmb.c:2172
#: daemon/gvfsbackendsmb.c:2158
#, fuzzy
#| msgid "Can't recursively move directory"
msgid "Cant recursively move directory"
msgstr "Impossible de desplaçar un repertòri d'un biais recursiu"
#: daemon/gvfsbackendsmb.c:2221
#: daemon/gvfsbackendsmb.c:2207
msgid "Windows Shares File System Service"
msgstr "Servici de sistèma de fichièrs de partiment Windows"
@ -1902,7 +1896,7 @@ msgstr "Canal blocat"
#: daemon/gvfsdaemonutils.c:251
msgid "The signing certificate authority is not known."
msgstr ""
msgstr "L'autoritat de signatura de certificat es desconeguda."
#: daemon/gvfsdaemonutils.c:253
msgid "The certificate does not match the identity of the site."
@ -1953,7 +1947,7 @@ msgid "Unexpected end of stream"
msgstr "Fin de flux inesperat"
#: daemon/gvfsftpconnection.c:227 daemon/gvfsftpconnection.c:240
#: daemon/gvfsftptask.c:449 daemon/gvfsftptask.c:877
#: daemon/gvfsftptask.c:450 daemon/gvfsftptask.c:878
msgid "Invalid reply"
msgstr "Responsa invalida"
@ -1973,49 +1967,49 @@ msgstr "Fracàs de la creacion d'una connexion FTP activa."
msgid "Filename contains invalid characters."
msgstr "Lo nom de fichièr conten de caractèrs invalids."
#: daemon/gvfsftptask.c:290
#: daemon/gvfsftptask.c:291
msgid "The FTP server is busy. Try again later"
msgstr "Lo servidor FTP es ocupat. Ensajatz tornamai pus tard"
#: daemon/gvfsftptask.c:296
#: daemon/gvfsftptask.c:297
msgid "Backend currently unmounting"
msgstr ""
#: daemon/gvfsftptask.c:393
#: daemon/gvfsftptask.c:394
msgid "Accounts are unsupported"
msgstr "Los comptes son pas preses en carga"
#: daemon/gvfsftptask.c:401
#: daemon/gvfsftptask.c:402
msgid "Cannot open data connection. Maybe your firewall prevents this?"
msgstr ""
"Impossible de dobrir una connexion de donadas. Benlèu que vòstre parafuòc "
"empacha aquesta accion ?"
#: daemon/gvfsftptask.c:405
#: daemon/gvfsftptask.c:406
msgid "Data connection closed"
msgstr "Connexion de donadas tampada"
#: daemon/gvfsftptask.c:412 daemon/gvfsftptask.c:416
#: daemon/gvfsftptask.c:413 daemon/gvfsftptask.c:417
msgid "Operation failed"
msgstr "L'operacion a fracassat"
#: daemon/gvfsftptask.c:421
#: daemon/gvfsftptask.c:422
msgid "No space left on server"
msgstr "Pas mai d'espaci disponible sul servidor"
#: daemon/gvfsftptask.c:433
#: daemon/gvfsftptask.c:434
msgid "Unsupported network protocol"
msgstr "Protocòl ret pas pres en carga"
#: daemon/gvfsftptask.c:441
#: daemon/gvfsftptask.c:442
msgid "Page type unknown"
msgstr "Tipe de pagina desconegut"
#: daemon/gvfsftptask.c:445
#: daemon/gvfsftptask.c:446
msgid "Invalid filename"
msgstr "Nom de fichièr invalid"
#: daemon/gvfshttpinputstream.c:292
#: daemon/gvfshttpinputstream.c:289
msgid "Error seeking in stream"
msgstr "Error de desplaçament dins lo flux"
@ -2085,24 +2079,24 @@ msgstr "%s : %s"
msgid "Try “%s --help” for more information."
msgstr "Ensajatz « %s --help » per obténer mai d'entresenhas."
#: daemon/mount.c:759
#: daemon/mount.c:783
#, c-format
msgid "Automount failed: %s"
msgstr "Lo montatge automatic a fracassat : %s"
#: daemon/mount.c:803 daemon/mount.c:879
#: daemon/mount.c:827 daemon/mount.c:903
msgid "The specified location is not mounted"
msgstr "L'emplaçament indicat es pas montat"
#: daemon/mount.c:808
#: daemon/mount.c:832
msgid "The specified location is not supported"
msgstr "L'emplaçament indicat es pas pres en carga"
#: daemon/mount.c:991
#: daemon/mount.c:1015
msgid "Location is already mounted"
msgstr "L'emplaçament es ja montat"
#: daemon/mount.c:1000
#: daemon/mount.c:1024
msgid "Location is not mountable"
msgstr "L'emplaçament es pas « montable »"
@ -2149,17 +2143,17 @@ msgstr "Demòni de metadonadas GVFS"
msgid "Metadata daemon for GVFS"
msgstr "Demòni de metadonadas per GVFS"
#: monitor/goa/goavolume.c:298 monitor/goa/goavolume.c:337
#: monitor/goa/goavolume.c:296 monitor/goa/goavolume.c:335
#, c-format
msgid "Failed to get org.gnome.OnlineAccounts.Files for %s"
msgstr "Impossible d'obténer org.gnome.OnlineAccounts.Files per %s"
#: monitor/goa/goavolume.c:368
#: monitor/goa/goavolume.c:366
#, c-format
msgid "Invalid credentials for %s"
msgstr "Informacions d'autentificacion pas validas per %s"
#: monitor/goa/goavolume.c:401
#: monitor/goa/goavolume.c:399
#, c-format
msgid "Unsupported authentication method for %s"
msgstr "Metòde d'autentificacion pas pres en carga per %s"

4026
po/pa.po

File diff suppressed because it is too large Load Diff

372
po/tr.po
View File

@ -1,35 +1,35 @@
# Turkish translation of gvfs.
# Copyright (C) 2008-2022 gvfs's COPYRIGHT HOLDER
# Copyright (C) 2008-2023 gvfs's COPYRIGHT HOLDER
# This file is distributed under the same license as the gvfs package.
#
# Baris Cicek <baris@teamforce.name.tr>, 2008, 2009.
# Necdet Yücel <necdetyucel@gmail.com>, 2015.
# Muhammet Kara <muhammetk@gmail.com>, 2011, 2014, 2015, 2016.
# Çağatay Yiğit Şahin <cyigitsahin@outlook.com>, 2016.
# Sabri Ünal <libreajans@gmail.com>, 2019.
# Sabri Ünal <libreajans@gmail.com>, 2019, 2023.
# Emin Tufan Çetin <etcetin@gmail.com>, 2017, 2018, 2020, 2021.
#
msgid ""
msgstr ""
"Project-Id-Version: gvfs\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gvfs/issues\n"
"POT-Creation-Date: 2022-07-15 08:07+0000\n"
"PO-Revision-Date: 2021-02-15 16:55+0300\n"
"Last-Translator: Emin Tufan Çetin <etcetin@gmail.com>\n"
"Language-Team: Türkçe <gnome-turk@gnome.org>\n"
"POT-Creation-Date: 2023-07-18 09:04+0000\n"
"PO-Revision-Date: 2023-07-02 15:42+0300\n"
"Last-Translator: Sabri Ünal <libreajans@gmail.com>\n"
"Language-Team: Türkçe <takim@gnome.org.tr>\n"
"Language: tr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Poedit 2.4.2\n"
"X-Generator: Poedit 3.2.2\n"
"X-POOTLE-MTIME: 1434405906.000000\n"
#: client/gdaemonfile.c:435 client/gdaemonfile.c:2718
#: client/gdaemonfile.c:435
msgid "Operation not supported, files on different mounts"
msgstr "Dosyalar başka bağlarda olduğundan işlem desteklenmiyor"
#: client/gdaemonfile.c:1028 client/gdaemonfile.c:3066
#: client/gdaemonfile.c:1028 client/gdaemonfile.c:3059
#: client/gvfsiconloadable.c:351 daemon/gvfsjobopenforread.c:183
#: daemon/gvfsjobopenforwrite.c:333
msgid "Couldnt get stream file descriptor"
@ -47,7 +47,7 @@ msgstr "%s işlevinden geçersiz geri dönüş değeri"
#. translators: this is an error message when there is no user visible "mount" object
#. corresponding to a particular path/uri
#: client/gdaemonfile.c:2188 client/gdaemonfile.c:3329
#: client/gdaemonfile.c:2188 client/gdaemonfile.c:3322
msgid "Could not find enclosing mount"
msgstr "Kapsanılan bağlantı bulunamadı"
@ -73,7 +73,7 @@ msgstr "üst veri vekili alınamıyor"
#: client/gdaemonfile.c:2567 client/gdaemonvfs.c:1299
msgid "values must be string or list of strings"
msgstr "değerler dizgi veya dizgiler listesi olmalıdır"
msgstr "değerler dizge veya dizge listesi olmalıdır"
#: client/gdaemonfileinputstream.c:544 client/gdaemonfileinputstream.c:552
#: client/gdaemonfileinputstream.c:1686 client/gdaemonfileinputstream.c:1695
@ -85,7 +85,7 @@ msgstr "Akış iletişim kuralında hata oluştu: %s"
#: client/gdaemonfileinputstream.c:552 client/gdaemonfileinputstream.c:1695
#: client/gdaemonfileoutputstream.c:503 client/gdaemonfileoutputstream.c:1442
#: daemon/gvfsbackendmtp.c:2453 daemon/gvfsbackendmtp.c:2844
#: daemon/gvfsbackendmtp.c:2501 daemon/gvfsbackendmtp.c:2892
msgid "End of stream"
msgstr "Akış sonu"
@ -123,7 +123,7 @@ msgstr "Bağlanma bilgileri alınırken hata oluştu: %s"
#: daemon/gvfsafpvolume.c:2402 daemon/gvfsbackendadmin.c:150
#: daemon/gvfsbackendafc.c:166 daemon/gvfsbackendgoogle.c:256
#: daemon/gvfsbackendsftp.c:346 daemon/gvfsbackendsftp.c:1125
#: daemon/gvfsbackendsftp.c:2215 daemon/gvfsftptask.c:437 daemon/mount.c:437
#: daemon/gvfsbackendsftp.c:2215 daemon/gvfsftptask.c:438 daemon/mount.c:437
#, c-format
msgid "Permission denied"
msgstr "İzin verilmedi"
@ -224,7 +224,7 @@ msgstr "%s için bağlama noktası zaten çalışıyor"
#: daemon/daemon-main.c:337
msgid "error starting mount daemon"
msgstr "bağlama hizmeti başlatılırken hata"
msgstr "bağlama art alan hizmeti başlatılırken hata"
#: daemon/gvfsafpconnection.c:787
msgid "The connection is not opened"
@ -239,7 +239,7 @@ msgid "Got EOS"
msgstr "EOS Al"
#: daemon/gvfsafpconnection.c:1060 daemon/gvfsafpconnection.c:1102
#: daemon/gvfsftptask.c:397
#: daemon/gvfsftptask.c:398
msgid "Host closed connection"
msgstr "Makine bağlantıyı kapattı"
@ -337,7 +337,7 @@ msgstr ""
#. Translators: %s is the hostname
#. Translators: %s is a server name
#: daemon/gvfsafpserver.c:1066 daemon/gvfsbackendftp.c:533
#: daemon/gvfsbackendsftp.c:1174 daemon/gvfsbackendsmbbrowse.c:379
#: daemon/gvfsbackendsftp.c:1174 daemon/gvfsbackendsmbbrowse.c:341
#, c-format
msgid ""
"Authentication Required\n"
@ -390,21 +390,21 @@ msgstr "%s üzerine %s yüklenemedi"
#: daemon/gvfsbackendarchive.c:845 daemon/gvfsbackendarchive.c:874
#: daemon/gvfsbackendcdda.c:908 daemon/gvfsbackendcomputer.c:639
#: daemon/gvfsbackenddnssd.c:425 daemon/gvfsbackendftp.c:795
#: daemon/gvfsbackendftp.c:1189 daemon/gvfsbackendmtp.c:1754
#: daemon/gvfsbackendmtp.c:1770 daemon/gvfsbackendmtp.c:2177
#: daemon/gvfsbackendmtp.c:2240 daemon/gvfsbackendmtp.c:2307
#: daemon/gvfsbackendmtp.c:2669 daemon/gvfsbackendmtp.c:2948
#: daemon/gvfsbackendmtp.c:3091 daemon/gvfsbackendnetwork.c:697
#: daemon/gvfsbackendsmbbrowse.c:1125 daemon/gvfsbackendsmbbrowse.c:1192
#: daemon/gvfsbackendsmbbrowse.c:1374 daemon/gvfsbackendsmbbrowse.c:1447
#: daemon/gvfsbackendftp.c:1189 daemon/gvfsbackendmtp.c:1802
#: daemon/gvfsbackendmtp.c:1818 daemon/gvfsbackendmtp.c:2225
#: daemon/gvfsbackendmtp.c:2288 daemon/gvfsbackendmtp.c:2355
#: daemon/gvfsbackendmtp.c:2717 daemon/gvfsbackendmtp.c:2996
#: daemon/gvfsbackendmtp.c:3139 daemon/gvfsbackendnetwork.c:697
#: daemon/gvfsbackendsmbbrowse.c:953 daemon/gvfsbackendsmbbrowse.c:1020
#: daemon/gvfsbackendsmbbrowse.c:1202 daemon/gvfsbackendsmbbrowse.c:1275
#, c-format
msgid "File doesnt exist"
msgstr "Dosya yok"
#: daemon/gvfsafpvolume.c:402 daemon/gvfsafpvolume.c:2410
#: daemon/gvfsbackendafp.c:289 daemon/gvfsbackendafp.c:492
#: daemon/gvfsbackendafp.c:1341 daemon/gvfsbackenddav.c:2797
#: daemon/gvfsbackenddav.c:3752 daemon/gvfsbackenddav.c:3999
#: daemon/gvfsbackendafp.c:1341 daemon/gvfsbackenddav.c:2799
#: daemon/gvfsbackenddav.c:3754 daemon/gvfsbackenddav.c:4001
#: daemon/gvfsbackendftp.c:832 daemon/gvfsbackendnfs.c:2480
#: daemon/gvfsbackendsftp.c:2725 daemon/gvfsbackendsftp.c:3500
#: daemon/gvfsbackendsftp.c:3948 daemon/gvfsbackendsftp.c:5020
@ -421,7 +421,7 @@ msgid "Target file is open"
msgstr "Hedef dosya açık"
#: daemon/gvfsafpvolume.c:663 daemon/gvfsbackendafc.c:154
#: daemon/gvfsbackendburn.c:421 daemon/gvfsbackenddav.c:3305
#: daemon/gvfsbackendburn.c:421 daemon/gvfsbackenddav.c:3307
#: daemon/gvfsbackendgoogle.c:2497 daemon/gvfsbackendsftp.c:2209
msgid "Directory not empty"
msgstr "Dizin boş değil"
@ -450,18 +450,18 @@ msgstr "Birimde yeterli boş alan yok"
#: daemon/gvfsafpvolume.c:811 daemon/gvfsafpvolume.c:1355
#: daemon/gvfsafpvolume.c:1507 daemon/gvfsbackendafp.c:296
#: daemon/gvfsbackendafp.c:499 daemon/gvfsbackenddav.c:2868
#: daemon/gvfsbackenddav.c:3222 daemon/gvfsbackenddav.c:3378
#: daemon/gvfsbackenddav.c:3484 daemon/gvfsbackenddav.c:3718
#: daemon/gvfsbackenddav.c:3762 daemon/gvfsbackenddav.c:3989
#: daemon/gvfsbackendafp.c:499 daemon/gvfsbackenddav.c:2870
#: daemon/gvfsbackenddav.c:3224 daemon/gvfsbackenddav.c:3380
#: daemon/gvfsbackenddav.c:3486 daemon/gvfsbackenddav.c:3720
#: daemon/gvfsbackenddav.c:3764 daemon/gvfsbackenddav.c:3991
#: daemon/gvfsbackendftp.c:811 daemon/gvfsbackendftp.c:999
#: daemon/gvfsbackendftp.c:1509 daemon/gvfsbackendftp.c:1576
#: daemon/gvfsbackendgoogle.c:1703 daemon/gvfsbackendgoogle.c:1780
#: daemon/gvfsbackendgoogle.c:2157 daemon/gvfsbackendgoogle.c:2237
#: daemon/gvfsbackendgoogle.c:2757 daemon/gvfsbackendgoogle.c:3204
#: daemon/gvfsbackendgoogle.c:3869 daemon/gvfsbackendmtp.c:1650
#: daemon/gvfsbackendmtp.c:1693 daemon/gvfsbackendnfs.c:2490
#: daemon/gvfsbackendsftp.c:5029 daemon/gvfsbackendsmb.c:2097
#: daemon/gvfsbackendgoogle.c:3869 daemon/gvfsbackendmtp.c:1698
#: daemon/gvfsbackendmtp.c:1741 daemon/gvfsbackendnfs.c:2490
#: daemon/gvfsbackendsftp.c:5029 daemon/gvfsbackendsmb.c:2108
msgid "Target file already exists"
msgstr "Hedef dosya zaten var"
@ -535,10 +535,10 @@ msgstr "Kaynak dosya bir dizindir"
msgid "Range lock conflict exists"
msgstr "Aralık kilidi çakışması var"
#: daemon/gvfsafpvolume.c:2193 daemon/gvfsbackendmtp.c:1473
#: daemon/gvfsbackendmtp.c:1498 daemon/gvfsbackendmtp.c:1701
#: daemon/gvfsbackendmtp.c:2077 daemon/gvfsbackendmtp.c:2594
#: daemon/gvfsbackendmtp.c:2989 daemon/gvfsbackendmtp.c:3125
#: daemon/gvfsafpvolume.c:2193 daemon/gvfsbackendmtp.c:1521
#: daemon/gvfsbackendmtp.c:1546 daemon/gvfsbackendmtp.c:1749
#: daemon/gvfsbackendmtp.c:2125 daemon/gvfsbackendmtp.c:2642
#: daemon/gvfsbackendmtp.c:3037 daemon/gvfsbackendmtp.c:3173
msgid "Directory doesnt exist"
msgstr "Dizin yok"
@ -565,8 +565,8 @@ msgstr "Dosya, okuma erişimi için açık değil"
#: daemon/gvfsbackendadmin.c:104 daemon/gvfsbackendadmin.c:871
#: daemon/gvfsbackendafc.c:2361 daemon/gvfsbackendafp.c:1781
#: daemon/gvfsbackendburn.c:829 daemon/gvfsbackendburn.c:951
#: daemon/gvfsbackendcomputer.c:812 daemon/gvfsbackenddav.c:4081
#: daemon/gvfsbackenddav.c:4113 daemon/gvfsbackenddav.c:4141
#: daemon/gvfsbackendcomputer.c:812 daemon/gvfsbackenddav.c:4083
#: daemon/gvfsbackenddav.c:4115 daemon/gvfsbackenddav.c:4143
#: daemon/gvfsbackendftp.c:1209 daemon/gvfsbackendftp.c:1257
#: daemon/gvfsbackendftp.c:1278 daemon/gvfsbackendftp.c:1624
#: daemon/gvfsbackendgoogle.c:1590 daemon/gvfsbackendgoogle.c:1623
@ -585,42 +585,44 @@ msgstr "Dosya, okuma erişimi için açık değil"
#: daemon/gvfsbackendgphoto2.c:2451 daemon/gvfsbackendgphoto2.c:2548
#: daemon/gvfsbackendgphoto2.c:2641 daemon/gvfsbackendgphoto2.c:3250
#: daemon/gvfsbackendgphoto2.c:3258 daemon/gvfsbackendgphoto2.c:3268
#: daemon/gvfsbackendmtp.c:1746 daemon/gvfsbackendmtp.c:2047
#: daemon/gvfsbackendmtp.c:2296 daemon/gvfsbackendmtp.c:2487
#: daemon/gvfsbackendmtp.c:2570 daemon/gvfsbackendmtp.c:2658
#: daemon/gvfsbackendmtp.c:2726 daemon/gvfsbackendmtp.c:2921
#: daemon/gvfsbackendmtp.c:3064 daemon/gvfsbackendnfs.c:2372
#: daemon/gvfsbackendnfs.c:2422 daemon/gvfsbackendnfs.c:2548
#: daemon/gvfsbackendsftp.c:2213 daemon/gvfsbackendsftp.c:5417
#: daemon/gvfsbackendsftp.c:5515 daemon/gvfsbackendsftp.c:6227
#: daemon/gvfsbackendsftp.c:6259 daemon/gvfsbackendsftp.c:6285
#: daemon/gvfsbackendsftp.c:6293 daemon/gvfsbackendsftp.c:6780
#: daemon/gvfsbackendsftp.c:6842 daemon/gvfsbackendsftp.c:6850
#: daemon/gvfsbackendsmb.c:1700 daemon/gvfsftptask.c:429
#: daemon/gvfsjobcloseread.c:113 daemon/gvfsjobclosewrite.c:121
#: daemon/gvfsjobcopy.c:121 daemon/gvfsjobcreatemonitor.c:143
#: daemon/gvfsjobcreatemonitor.c:154 daemon/gvfsjobcreatemonitor.c:177
#: daemon/gvfsjobcreatemonitor.c:195 daemon/gvfsjobdelete.c:108
#: daemon/gvfsjobenumerate.c:272 daemon/gvfsjobmakedirectory.c:108
#: daemon/gvfsjobmount.c:112 daemon/gvfsjobmountmountable.c:138
#: daemon/gvfsjobmove.c:121 daemon/gvfsjobopenforread.c:120
#: daemon/gvfsjobopenforwrite.c:184 daemon/gvfsjobopenforwrite.c:198
#: daemon/gvfsjobopenforwrite.c:212 daemon/gvfsjobopeniconforread.c:104
#: daemon/gvfsjobpollmountable.c:107 daemon/gvfsjobpull.c:125
#: daemon/gvfsjobpush.c:125 daemon/gvfsjobqueryattributes.c:145
#: daemon/gvfsjobqueryfsinfo.c:116 daemon/gvfsjobqueryinfo.c:124
#: daemon/gvfsjobqueryinforead.c:125 daemon/gvfsjobqueryinfowrite.c:125
#: daemon/gvfsjobread.c:123 daemon/gvfsjobseekread.c:121
#: daemon/gvfsjobseekwrite.c:121 daemon/gvfsjobsetattribute.c:130
#: daemon/gvfsjobsetdisplayname.c:111 daemon/gvfsjobstartmountable.c:113
#: daemon/gvfsjobstopmountable.c:115 daemon/gvfsjobtrash.c:107
#: daemon/gvfsjobtruncate.c:113 daemon/gvfsjobunmountmountable.c:157
#: daemon/gvfsjobunmountmountable.c:172 daemon/gvfsjobwrite.c:123
#: daemon/gvfsbackendhttp.c:745 daemon/gvfsbackendmtp.c:1794
#: daemon/gvfsbackendmtp.c:2095 daemon/gvfsbackendmtp.c:2344
#: daemon/gvfsbackendmtp.c:2535 daemon/gvfsbackendmtp.c:2618
#: daemon/gvfsbackendmtp.c:2706 daemon/gvfsbackendmtp.c:2774
#: daemon/gvfsbackendmtp.c:2969 daemon/gvfsbackendmtp.c:3112
#: daemon/gvfsbackendnfs.c:2372 daemon/gvfsbackendnfs.c:2422
#: daemon/gvfsbackendnfs.c:2548 daemon/gvfsbackendsftp.c:2213
#: daemon/gvfsbackendsftp.c:5417 daemon/gvfsbackendsftp.c:5515
#: daemon/gvfsbackendsftp.c:6227 daemon/gvfsbackendsftp.c:6259
#: daemon/gvfsbackendsftp.c:6285 daemon/gvfsbackendsftp.c:6293
#: daemon/gvfsbackendsftp.c:6780 daemon/gvfsbackendsftp.c:6842
#: daemon/gvfsbackendsftp.c:6850 daemon/gvfsbackendsmb.c:1700
#: daemon/gvfsbackendtrash.c:937 daemon/gvfsbackendtrash.c:963
#: daemon/gvfsftptask.c:430 daemon/gvfsjobcloseread.c:113
#: daemon/gvfsjobclosewrite.c:121 daemon/gvfsjobcopy.c:121
#: daemon/gvfsjobcreatemonitor.c:143 daemon/gvfsjobcreatemonitor.c:154
#: daemon/gvfsjobcreatemonitor.c:177 daemon/gvfsjobcreatemonitor.c:195
#: daemon/gvfsjobdelete.c:108 daemon/gvfsjobenumerate.c:272
#: daemon/gvfsjobmakedirectory.c:108 daemon/gvfsjobmount.c:112
#: daemon/gvfsjobmountmountable.c:138 daemon/gvfsjobmove.c:121
#: daemon/gvfsjobopenforread.c:120 daemon/gvfsjobopenforwrite.c:184
#: daemon/gvfsjobopenforwrite.c:198 daemon/gvfsjobopenforwrite.c:212
#: daemon/gvfsjobopeniconforread.c:104 daemon/gvfsjobpollmountable.c:107
#: daemon/gvfsjobpull.c:125 daemon/gvfsjobpush.c:125
#: daemon/gvfsjobqueryattributes.c:145 daemon/gvfsjobqueryfsinfo.c:116
#: daemon/gvfsjobqueryinfo.c:124 daemon/gvfsjobqueryinforead.c:125
#: daemon/gvfsjobqueryinfowrite.c:125 daemon/gvfsjobread.c:123
#: daemon/gvfsjobseekread.c:121 daemon/gvfsjobseekwrite.c:121
#: daemon/gvfsjobsetattribute.c:130 daemon/gvfsjobsetdisplayname.c:111
#: daemon/gvfsjobstartmountable.c:113 daemon/gvfsjobstopmountable.c:115
#: daemon/gvfsjobtrash.c:107 daemon/gvfsjobtruncate.c:113
#: daemon/gvfsjobunmountmountable.c:157 daemon/gvfsjobunmountmountable.c:172
#: daemon/gvfsjobwrite.c:123
msgid "Operation not supported"
msgstr "İşlem desteklenmiyor"
#: daemon/gvfsbackendadmin.c:999 daemon/gvfsbackendarchive.c:639
#: daemon/gvfsbackendarchive.c:668 daemon/gvfsbackenddav.c:2354
#: daemon/gvfsbackendarchive.c:668 daemon/gvfsbackenddav.c:2356
#: daemon/gvfsbackendgoogle.c:2943 daemon/gvfsbackendhttp.c:303
#: daemon/gvfsbackendsmb.c:582
msgid "Invalid mount spec"
@ -649,11 +651,11 @@ msgstr "İşlenmemiş Apple Dosya Denetim hatası (%d)"
#: daemon/gvfsbackendafc.c:190
msgid "Listing applications installed on device failed"
msgstr "Aygıt üzerinde kurulu uygulamaların listelenmesi başarısız oldu"
msgstr "Aygıt üzerinde kurulu uygulamaların listelenemedi"
#: daemon/gvfsbackendafc.c:206
msgid "Accessing application icons on device failed"
msgstr "Aygıttaki uygulama simgelerine erişim başarısız oldu"
msgstr "Aygıttaki uygulama simgelerine erişemedi"
#: daemon/gvfsbackendafc.c:228
msgid "Lockdown Error: Invalid Argument"
@ -701,8 +703,8 @@ msgstr "İşlenmemiş libimobiledevice hatası (%d)"
msgid "Try again"
msgstr "Yeniden dene"
#: daemon/gvfsbackendafc.c:394 daemon/gvfsbackend.c:1025
#: monitor/udisks2/gvfsudisks2mount.c:750
#: daemon/gvfsbackendafc.c:394 daemon/gvfsbackend.c:1024
#: monitor/udisks2/gvfsudisks2mount.c:748
msgid "Cancel"
msgstr "İptal"
@ -776,15 +778,15 @@ msgstr ""
#: daemon/gvfsbackendafc.c:1053 daemon/gvfsbackendarchive.c:746
#: daemon/gvfsbackendcomputer.c:657 daemon/gvfsbackendgoogle.c:3577
#: daemon/gvfsbackendgphoto2.c:1548 daemon/gvfsbackendmtp.c:2329
#: daemon/gvfsbackendgphoto2.c:1548 daemon/gvfsbackendmtp.c:2377
#: daemon/gvfsbackendnfs.c:356 daemon/gvfsbackendrecent.c:126
#: daemon/gvfsbackendsmb.c:672 daemon/gvfsbackendtrash.c:234
#: daemon/gvfsbackendsmb.c:672 daemon/gvfsbackendtrash.c:333
msgid "Cant open directory"
msgstr "Dizin açılamıyor"
#: daemon/gvfsbackendafc.c:1273 daemon/gvfsbackendafc.c:2528
#: daemon/gvfsbackendafp.c:1270 daemon/gvfsbackendafp.c:1359
#: daemon/gvfsbackenddav.c:3659 daemon/gvfsbackendftp.c:1461
#: daemon/gvfsbackenddav.c:3661 daemon/gvfsbackendftp.c:1461
#: daemon/gvfsbackendsftp.c:3722 daemon/gvfsbackendsftp.c:4009
msgid "Backups not supported"
msgstr "Yedekler desteklenmiyor"
@ -797,8 +799,8 @@ msgstr "Atlama türü desteklenmiyor"
#: daemon/gvfsbackendafpbrowse.c:208 daemon/gvfsbackendcomputer.c:958
#: daemon/gvfsbackendcomputer.c:1053 daemon/gvfsbackendcomputer.c:1159
#: daemon/gvfsbackendcomputer.c:1249 daemon/gvfsbackendcomputer.c:1322
#: daemon/gvfsbackendcomputer.c:1391 daemon/gvfsbackendsmbbrowse.c:1120
#: daemon/gvfsbackendsmbbrowse.c:1166
#: daemon/gvfsbackendcomputer.c:1391 daemon/gvfsbackendsmbbrowse.c:948
#: daemon/gvfsbackendsmbbrowse.c:994
msgid "Not a mountable file"
msgstr "Bağlanılabilir bir dosya değil"
@ -838,23 +840,23 @@ msgid "Apple Filing Protocol Service"
msgstr "Apple Dosyalama Kuralı Hizmeti"
#: daemon/gvfsbackendafp.c:286 daemon/gvfsbackendburn.c:877
#: daemon/gvfsbackenddav.c:3747 daemon/gvfsbackendftp.c:1568
#: daemon/gvfsbackenddav.c:3749 daemon/gvfsbackendftp.c:1568
#: daemon/gvfsbackendgoogle.c:1752 daemon/gvfsbackendgoogle.c:2095
#: daemon/gvfsbackendgoogle.c:3141
msgid "Cant copy directory over directory"
msgstr "Dizin üstüne dizin kopyalanamıyor"
#: daemon/gvfsbackendafp.c:305 daemon/gvfsbackendburn.c:893
#: daemon/gvfsbackenddav.c:3782 daemon/gvfsbackendftp.c:1591
#: daemon/gvfsbackenddav.c:3784 daemon/gvfsbackendftp.c:1591
#: daemon/gvfsbackendgoogle.c:1814 daemon/gvfsbackendgoogle.c:3168
#: daemon/gvfsbackendgoogle.c:3216 daemon/gvfsbackendmtp.c:1641
#: daemon/gvfsbackendmtp.c:1656
#: daemon/gvfsbackendgoogle.c:3216 daemon/gvfsbackendmtp.c:1689
#: daemon/gvfsbackendmtp.c:1704
msgid "Cant recursively copy directory"
msgstr "Dizin özyinelemeli kopyalanamıyor"
#: daemon/gvfsbackendafp.c:489 daemon/gvfsbackenddav.c:3560
#: daemon/gvfsbackendafp.c:489 daemon/gvfsbackenddav.c:3562
#: daemon/gvfsbackendgoogle.c:2209 daemon/gvfsbackendnfs.c:2474
#: daemon/gvfsbackendsftp.c:5015 daemon/gvfsbackendsmb.c:2086
#: daemon/gvfsbackendsftp.c:5015 daemon/gvfsbackendsmb.c:2097
msgid "Cant move directory over directory"
msgstr "Dizin üstüne dizin taşınamıyor"
@ -863,7 +865,7 @@ msgstr "Dizin üstüne dizin taşınamıyor"
msgid "Unable to create temporary file (%s)"
msgstr "Geçici dosya oluşturulamadı (%s)"
#: daemon/gvfsbackendafp.c:1348 daemon/gvfsbackenddav.c:2975
#: daemon/gvfsbackendafp.c:1348 daemon/gvfsbackenddav.c:2977
#: daemon/gvfsbackendnfs.c:1177 daemon/gvfsbackendsftp.c:3963
#: daemon/gvfsbackendsmb.c:1077
msgid "The file was externally modified"
@ -920,7 +922,7 @@ msgstr "Geçiçi dizin oluşturulamadı"
#: daemon/gvfsbackendgphoto2.c:2588 daemon/gvfsbackendrecent.c:110
#: daemon/gvfsbackendrecent.c:293 daemon/gvfsbackendsftp.c:2217
#: daemon/gvfsbackendsftp.c:3377 daemon/gvfsbackendsftp.c:3390
#: daemon/gvfsbackendsftp.c:3410 daemon/gvfsbackendtrash.c:218
#: daemon/gvfsbackendsftp.c:3410 daemon/gvfsbackendtrash.c:317
#, c-format
msgid "No such file or directory"
msgstr "Böyle dosya ya da dizin yok"
@ -943,21 +945,21 @@ msgstr "CD/DVD Oluşturucu"
msgid "File exists"
msgstr "Dosya var"
#: daemon/gvfsbackendburn.c:886 daemon/gvfsbackenddav.c:3599
#: daemon/gvfsbackendburn.c:886 daemon/gvfsbackenddav.c:3601
#: daemon/gvfsbackendsftp.c:2211 daemon/gvfsbackendsftp.c:5195
msgid "Target file exists"
msgstr "Hedef dosya var"
#: daemon/gvfsbackend.c:890 daemon/gvfsjobunmount.c:197
#: daemon/gvfsbackend.c:889 daemon/gvfsjobunmount.c:197
#: daemon/gvfsjobunmount.c:264
msgid "File system is busy"
msgstr "Dosya sistemi meşgul"
#: daemon/gvfsbackend.c:1024 monitor/udisks2/gvfsudisks2mount.c:748
#: daemon/gvfsbackend.c:1023 monitor/udisks2/gvfsudisks2mount.c:746
msgid "Unmount Anyway"
msgstr "Gene de Bağı Kes"
msgstr "Yine de Bağı Kes"
#: daemon/gvfsbackend.c:1027 monitor/udisks2/gvfsudisks2mount.c:751
#: daemon/gvfsbackend.c:1026 monitor/udisks2/gvfsudisks2mount.c:749
msgid ""
"Volume is busy\n"
"One or more applications are keeping the volume busy."
@ -966,7 +968,7 @@ msgstr ""
"Bir ya da daha çok uygulama birimi meşgul tutuyor."
#: daemon/gvfsbackendcdda.c:290 daemon/gvfsbackendgphoto2.c:1289
#: daemon/gvfsbackendmtp.c:912
#: daemon/gvfsbackendmtp.c:917
msgid "Cannot create gudev client"
msgstr "gudev istemcisi oluşturulamıyor"
@ -1087,7 +1089,7 @@ msgid "%s on %s%s"
msgstr "%s üzerinde %s%s"
#: daemon/gvfsbackenddav.c:766 daemon/gvfsbackenddav.c:1536
#: daemon/gvfsbackenddav.c:2145 daemon/gvfsbackenddav.c:2309
#: daemon/gvfsbackenddav.c:2147 daemon/gvfsbackenddav.c:2311
#: daemon/gvfsbackendhttp.c:268 daemon/gvfshttpinputstream.c:273
#, c-format
msgid "HTTP Error: %s"
@ -1105,8 +1107,8 @@ msgstr "Boş cevap"
msgid "Unexpected reply from server"
msgstr "Sunucudan beklenilmeyen yanıt"
#: daemon/gvfsbackenddav.c:1554 daemon/gvfsbackenddav.c:2510
#: daemon/gvfsbackenddav.c:2605 daemon/gvfsbackenddav.c:2789
#: daemon/gvfsbackenddav.c:1554 daemon/gvfsbackenddav.c:2512
#: daemon/gvfsbackenddav.c:2607 daemon/gvfsbackenddav.c:2791
#, c-format
msgid "Response invalid"
msgstr "Geçersiz cevap"
@ -1117,7 +1119,7 @@ msgstr "WebDAV paylaşımı"
#. Translators: %s is the name of the WebDAV share
#. Translators: %s is a server name
#: daemon/gvfsbackenddav.c:1778 daemon/gvfsbackendsmbbrowse.c:373
#: daemon/gvfsbackenddav.c:1778 daemon/gvfsbackendsmbbrowse.c:335
#, c-format
msgid ""
"Authentication Required\n"
@ -1134,28 +1136,28 @@ msgstr ""
"Kimlik Doğrulaması Gerekli\n"
"Vekil parolasını gir:"
#: daemon/gvfsbackenddav.c:2153
#: daemon/gvfsbackenddav.c:2155
msgid "Could not find an enclosing directory"
msgstr "Kapsayan dizin bulunamadı"
#: daemon/gvfsbackenddav.c:2297
#: daemon/gvfsbackenddav.c:2299
msgid "Not a WebDAV enabled share"
msgstr "Paylaşımı etkinleştirilmiş bir WebDAV yok"
#: daemon/gvfsbackenddav.c:2536 daemon/gvfsbackenddav.c:2649
#: daemon/gvfsbackenddav.c:2736 daemon/gvfsbackenddav.c:2823
#: daemon/gvfsbackenddav.c:2538 daemon/gvfsbackenddav.c:2651
#: daemon/gvfsbackenddav.c:2738 daemon/gvfsbackenddav.c:2825
msgid "Could not create request"
msgstr "İstek oluşturulamadı"
#: daemon/gvfsbackenddav.c:3009 daemon/gvfsbackendftp.c:1102
#: daemon/gvfsbackenddav.c:3011 daemon/gvfsbackendftp.c:1102
#: daemon/gvfsbackendgoogle.c:3944 daemon/gvfsbackendnfs.c:941
#: daemon/gvfsbackendnfs.c:964 daemon/gvfsbackendnfs.c:990
#: daemon/gvfsbackendnfs.c:1390 daemon/gvfsbackendsmb.c:1113
#: daemon/gvfsbackendsmb.c:2114
#: daemon/gvfsbackendsmb.c:2125
msgid "Backup file creation failed"
msgstr "Yedek dosyası oluşturma başarısız oldu"
msgstr "Yedek dosyası oluşturulamadı"
#: daemon/gvfsbackenddav.c:3565
#: daemon/gvfsbackenddav.c:3567
msgid "Cant move over directory"
msgstr "Dizin üstüne taşınamaz"
@ -1173,12 +1175,12 @@ msgid "Dns-SD"
msgstr "Dns-SD"
#: daemon/gvfsbackenddnssd.c:795 daemon/gvfsbackendnetwork.c:784
#: daemon/gvfsbackendnetwork.c:933 daemon/gvfsbackendnetwork.c:934
#: daemon/gvfsbackendnetwork.c:926 daemon/gvfsbackendnetwork.c:927
msgid "Network"
msgstr "Ağ"
#: daemon/gvfsbackendftp.c:560 daemon/gvfsbackendsftp.c:1191
#: daemon/gvfsbackendsftp.c:1295 daemon/gvfsbackendsmbbrowse.c:1020
#: daemon/gvfsbackendsftp.c:1295 daemon/gvfsbackendsmbbrowse.c:848
#: daemon/gvfsbackendsmb.c:537
msgid "Password dialog cancelled"
msgstr "Parola penceresi iptal edildi"
@ -1287,7 +1289,7 @@ msgstr "%s: %d: Desteklenmiyor"
msgid "Digital Camera (%s)"
msgstr "Dijital Fotoğraf Makinesi (%s)"
#: daemon/gvfsbackendgphoto2.c:1256 daemon/gvfsbackendmtp.c:883
#: daemon/gvfsbackendgphoto2.c:1256 daemon/gvfsbackendmtp.c:888
msgid "Couldnt find matching udev device."
msgstr "Eşleşen udev aygıtı bulunamadı."
@ -1338,7 +1340,7 @@ msgstr "Dosya nesnesi oluşturulurken hata"
msgid "Error getting file"
msgstr "Dosya alınırken hata"
#: daemon/gvfsbackendgphoto2.c:1647 daemon/gvfsbackendmtp.c:2417
#: daemon/gvfsbackendgphoto2.c:1647 daemon/gvfsbackendmtp.c:2465
#, c-format
msgid "Malformed icon identifier “%s”"
msgstr "Bozuk simge belirteci “%s”"
@ -1349,17 +1351,17 @@ msgid "Error seeking in stream on camera %s"
msgstr "Fotograf makinesi %s üzerinde akış içine atlanırken hata"
#: daemon/gvfsbackendgphoto2.c:1863 daemon/gvfsbackendsftp.c:3380
#: daemon/gvfsbackendsmbbrowse.c:1443
#: daemon/gvfsbackendsmbbrowse.c:1271
msgid "Not a directory"
msgstr "Bir dizin değil"
#: daemon/gvfsbackendgphoto2.c:1896
msgid "Failed to get folder list"
msgstr "Klasör listesi alma başarısız oldu"
msgstr "Klasör listesi alınamadı"
#: daemon/gvfsbackendgphoto2.c:1961
msgid "Failed to get file list"
msgstr "Dosya listesi alınırken başarısız olundu"
msgstr "Dosya listesi alınamadı"
#: daemon/gvfsbackendgphoto2.c:2250
msgid "Error creating directory"
@ -1456,66 +1458,66 @@ msgstr "Bilinmeyen hata."
msgid "libmtp error: %s"
msgstr "libmtp hatası: %s"
#: daemon/gvfsbackendmtp.c:904
#: daemon/gvfsbackendmtp.c:909
msgid "No device specified"
msgstr "Hiçbir aygıt belirtilmedi"
#: daemon/gvfsbackendmtp.c:1050
#: daemon/gvfsbackendmtp.c:1055
msgid "No MTP devices found"
msgstr "Hiç MTP aygıtı bulunamadı"
#: daemon/gvfsbackendmtp.c:1055
#: daemon/gvfsbackendmtp.c:1060
msgid "Unable to connect to MTP device"
msgstr "MTP aygıtına bağlanılamadı"
#: daemon/gvfsbackendmtp.c:1060
#: daemon/gvfsbackendmtp.c:1065
msgid "Unable to allocate memory while detecting MTP devices"
msgstr "MTP aygıtları algılanırken bellek ayrılamadı"
#: daemon/gvfsbackendmtp.c:1066
#: daemon/gvfsbackendmtp.c:1071
msgid "Generic libmtp error"
msgstr "Genel libmtp hatası"
#: daemon/gvfsbackendmtp.c:1079
#: daemon/gvfsbackendmtp.c:1084
#, c-format
msgid "Unable to open MTP device “%03u,%03u”"
msgstr "“%03u,%03u” MTP aygıtıılamıyor"
#: daemon/gvfsbackendmtp.c:1096
#: daemon/gvfsbackendmtp.c:1101
msgid "Device not found"
msgstr "Aygıt bulunamadı"
#: daemon/gvfsbackendmtp.c:1401 daemon/gvfsbackendmtp.c:1509
#: daemon/gvfsbackendmtp.c:1561
#: daemon/gvfsbackendmtp.c:1408 daemon/gvfsbackendmtp.c:1557
#: daemon/gvfsbackendmtp.c:1609
msgid "File not found"
msgstr "Dosya bulunamadı"
#: daemon/gvfsbackendmtp.c:1631
#: daemon/gvfsbackendmtp.c:1679
msgid "Target is a directory"
msgstr "Hedef bir dizin"
#: daemon/gvfsbackendmtp.c:1636
#: daemon/gvfsbackendmtp.c:1684
msgid "Cant merge directories"
msgstr "Dizinler birleştirilemez"
#: daemon/gvfsbackendmtp.c:1682
#: daemon/gvfsbackendmtp.c:1730
msgid "Cannot make directory in this location"
msgstr "Bu konumda bir dizin oluşturulamıyor"
#: daemon/gvfsbackendmtp.c:1759 daemon/gvfsbackendmtp.c:2182
#: daemon/gvfsbackendmtp.c:2245 daemon/gvfsbackendmtp.c:2312
#: daemon/gvfsbackendmtp.c:2674 daemon/gvfsbackendmtp.c:2740
#: daemon/gvfsbackendmtp.c:2953 daemon/gvfsbackendmtp.c:3096
#: daemon/gvfsbackendsmbbrowse.c:1188
#: daemon/gvfsbackendmtp.c:1807 daemon/gvfsbackendmtp.c:2230
#: daemon/gvfsbackendmtp.c:2293 daemon/gvfsbackendmtp.c:2360
#: daemon/gvfsbackendmtp.c:2722 daemon/gvfsbackendmtp.c:2788
#: daemon/gvfsbackendmtp.c:3001 daemon/gvfsbackendmtp.c:3144
#: daemon/gvfsbackendsmbbrowse.c:1016
msgid "Not a regular file"
msgstr "Düzenli bir dosya değil"
#: daemon/gvfsbackendmtp.c:2054 daemon/gvfsbackendmtp.c:2586
#: daemon/gvfsbackendmtp.c:2937 daemon/gvfsbackendmtp.c:3080
#: daemon/gvfsbackendmtp.c:2102 daemon/gvfsbackendmtp.c:2634
#: daemon/gvfsbackendmtp.c:2985 daemon/gvfsbackendmtp.c:3128
msgid "Cannot write to this location"
msgstr "Bu konuma yazılamıyor"
#: daemon/gvfsbackendmtp.c:2399
#: daemon/gvfsbackendmtp.c:2447
#, c-format
msgid "No thumbnail for entity “%s”"
msgstr "“%s” girdisi için küçük resim yok"
@ -1528,13 +1530,13 @@ msgstr "Dosya Paylaşımı"
msgid "Remote Login"
msgstr "Uzaktan Bağlantı"
#: daemon/gvfsbackendnetwork.c:333 daemon/gvfsbackendsmbbrowse.c:906
#: daemon/gvfsbackendnetwork.c:333 daemon/gvfsbackendsmbbrowse.c:738
msgid "Windows Network"
msgstr "Windows Ağı"
#. Translators: this is the friendly name of the 'network://' backend that
#. * shows computers in your local network.
#: daemon/gvfsbackendnetwork.c:1020
#: daemon/gvfsbackendnetwork.c:1013
msgid "Network Location Monitor"
msgstr "Ağ Konum İzleyici"
@ -1572,7 +1574,7 @@ msgstr "Son kullanılan"
#: daemon/gvfsbackendsftp.c:337 daemon/gvfsbackendsftp.c:720
msgid "Connection failed"
msgstr "Bağlantı başarısız oldu"
msgstr "Bağlanamadı"
#: daemon/gvfsbackendsftp.c:353
msgid "Hostname not known"
@ -1588,7 +1590,7 @@ msgstr "Bağlantı sunucu tarafından reddedildi"
#: daemon/gvfsbackendsftp.c:375
msgid "Host key verification failed"
msgstr "Makine anahtarının onaylanması başarısız oldu"
msgstr "Makine anahtarı doğrulanamadı"
#: daemon/gvfsbackendsftp.c:382
msgid "Too many authentication failures"
@ -1609,7 +1611,7 @@ msgstr "Giriş yapılırken zaman aşımına uğradı"
#: daemon/gvfsbackendsftp.c:934
msgid "Log In Anyway"
msgstr "Gene de Giriş Yap"
msgstr "Yine de Giriş Yap"
#: daemon/gvfsbackendsftp.c:934
msgid "Cancel Login"
@ -1670,7 +1672,7 @@ msgid ""
"The identity sent by the remote computer is “%s”. If you want to be "
"absolutely sure it is safe to continue, contact the system administrator."
msgstr ""
"Kimlik Doğrulaması Başarısız\n"
"Kimlik Doğrulamanamadı\n"
"“%s” kimliği doğrulanamadı; bu, bilgisayarda ilk kez oturum açtığınızda "
"gerçekleşir.\n"
"\n"
@ -1686,7 +1688,7 @@ msgid ""
"If you want to be absolutely sure it is safe to continue, contact the system "
"administrator."
msgstr ""
"Kimlik Doğrulaması Başarısız\n"
"Kimlik Doğrulanamadı\n"
"“%s” için ana makine anahtarı ile “%s” IP adresinin anahtarı birbirinden "
"farklı.\n"
"Eğer sürdürmenin güvenilirliğinden tümüyle emin olmalıysanız, sistem "
@ -1742,7 +1744,7 @@ msgstr "Değer aralık dışında, sftp yalnızca 32bit zaman damgalarını dest
msgid "Invalid attribute type (uint64 expected)"
msgstr "Geçersiz öznitelik türü (uint64 bekleniyor)"
#: daemon/gvfsbackendsmbbrowse.c:808 daemon/gvfsbackendsmbbrowse.c:847
#: daemon/gvfsbackendsmbbrowse.c:645 daemon/gvfsbackendsmbbrowse.c:679
#: daemon/gvfsbackendsmb.c:401 daemon/gvfsbackendsmb.c:428
#: daemon/gvfsbackendsmb.c:618
#, c-format
@ -1751,18 +1753,18 @@ msgstr "İç Hata (%s)"
#. translators: Name for the location that lists the smb shares
#. availible on a server (%s is the name of the server)
#: daemon/gvfsbackendsmbbrowse.c:915
#: daemon/gvfsbackendsmbbrowse.c:747
#, c-format
msgid "Windows shares on %s"
msgstr "%s üzerindeki Windows paylaşımları"
#. translators: We tried to mount a windows (samba) share, but failed
#: daemon/gvfsbackendsmbbrowse.c:1025
#: daemon/gvfsbackendsmbbrowse.c:853
#, c-format
msgid "Failed to retrieve share list from server: %s"
msgstr "%s sunucusundan paylaşım listesi alınamadı"
#: daemon/gvfsbackendsmbbrowse.c:1547
#: daemon/gvfsbackendsmbbrowse.c:1375
msgid "Windows Network File System Service"
msgstr "Windows Ağ Dosya Sistemi Hizmeti"
@ -1795,46 +1797,46 @@ msgstr "%s Windows paylaşımı bağlanamadı"
#: daemon/gvfsbackendsmb.c:1312
#, c-format
msgid "Backup file creation failed: %s"
msgstr "Yedek dosyası oluşturma başarısız: %s"
msgstr "Yedek dosyası oluşturulamadı: %s"
#: daemon/gvfsbackendsmb.c:1923
#: daemon/gvfsbackendsmb.c:1933
msgid "Cant rename file, filename already exists"
msgstr "Dosya yeniden adlandırılamıyor, dosya adı zaten var"
#: daemon/gvfsbackendsmb.c:1974
#: daemon/gvfsbackendsmb.c:1985
#, c-format
msgid "Error deleting file: %s"
msgstr "Dosya silinirken hata: %s"
#: daemon/gvfsbackendsmb.c:2061
#: daemon/gvfsbackendsmb.c:2072
#, c-format
msgid "Error moving file: %s"
msgstr "Dosya taşınırken hata: %s"
#: daemon/gvfsbackendsmb.c:2134
#: daemon/gvfsbackendsmb.c:2145
#, c-format
msgid "Error removing target file: %s"
msgstr "Hedef dosya silinirken hata: %s"
#: daemon/gvfsbackendsmb.c:2158
#: daemon/gvfsbackendsmb.c:2169
msgid "Cant recursively move directory"
msgstr "Dizin özyinelemeli taşınamıyor"
#: daemon/gvfsbackendsmb.c:2207
#: daemon/gvfsbackendsmb.c:2218
msgid "Windows Shares File System Service"
msgstr "Windows Paylaşımlar Dosya Sistemi Hizmeti"
#: daemon/gvfsbackendtrash.c:402 daemon/gvfsbackendtrash.c:461
#: daemon/gvfsbackendtrash.c:490 daemon/gvfsbackendtrash.c:544
msgid "The trash folder may not be deleted"
msgstr "Çöp klasörü silinmemeli"
#: daemon/gvfsbackendtrash.c:422 daemon/gvfsbackendtrash.c:478
#: daemon/gvfsbackendtrash.c:507 daemon/gvfsbackendtrash.c:558
msgid "Items in the trash may not be modified"
msgstr "Çöp içerisindeki ögeler değiştirilmemeli"
#. Translators: this is the display name of the backend
#. translators: This is the name of the backend
#: daemon/gvfsbackendtrash.c:780 daemon/gvfsbackendtrash.c:895
#: daemon/gvfsbackendtrash.c:879 daemon/gvfsbackendtrash.c:999
msgid "Trash"
msgstr "Çöp"
@ -1889,7 +1891,7 @@ msgid ""
"\n"
"Are you really sure you would like to continue?"
msgstr ""
"Kimlik Doğrulaması Başarısız\n"
"Kimlik Doğrulanamadı\n"
"%s\n"
"\n"
"%s\n"
@ -1901,7 +1903,7 @@ msgid "Unexpected end of stream"
msgstr "Beklenilmeyen akış sonu"
#: daemon/gvfsftpconnection.c:227 daemon/gvfsftpconnection.c:240
#: daemon/gvfsftptask.c:449 daemon/gvfsftptask.c:877
#: daemon/gvfsftptask.c:450 daemon/gvfsftptask.c:878
msgid "Invalid reply"
msgstr "Geçersiz cevap"
@ -1910,55 +1912,55 @@ msgid ""
"Failed to create active FTP connection. Maybe your router does not support "
"this?"
msgstr ""
"Etkin FTP bağlantısı oluşturulamıyor. Belki yönlendiriciniz bunu "
"Etkin FTP bağlantısı oluşturulamadı. Belki yönlendiriciniz bunu "
"desteklemiyordur?"
#: daemon/gvfsftpconnection.c:485
msgid "Failed to create active FTP connection."
msgstr "Etkin FTP bağlantısı oluşturulamadı."
msgstr "Aktif FTP bağlantısı oluşturulamadı."
#: daemon/gvfsftpfile.c:170
msgid "Filename contains invalid characters."
msgstr "Dosya adı geçersiz karakterler içeriyor."
#: daemon/gvfsftptask.c:290
#: daemon/gvfsftptask.c:291
msgid "The FTP server is busy. Try again later"
msgstr "FTP sunucusu meşgul. Daha sonra yeniden deneyin"
#: daemon/gvfsftptask.c:296
#: daemon/gvfsftptask.c:297
msgid "Backend currently unmounting"
msgstr "Art alan uygulaması halen ayırıyor"
#: daemon/gvfsftptask.c:393
#: daemon/gvfsftptask.c:394
msgid "Accounts are unsupported"
msgstr "Hesaplar desteklenmiyor"
#: daemon/gvfsftptask.c:401
#: daemon/gvfsftptask.c:402
msgid "Cannot open data connection. Maybe your firewall prevents this?"
msgstr ""
"Veri bağlantısıılamıyor. Güvenlik duvarınız bunu engelliyor olabilir mi?"
#: daemon/gvfsftptask.c:405
#: daemon/gvfsftptask.c:406
msgid "Data connection closed"
msgstr "Veri bağlantısı kapatıldı"
#: daemon/gvfsftptask.c:412 daemon/gvfsftptask.c:416
#: daemon/gvfsftptask.c:413 daemon/gvfsftptask.c:417
msgid "Operation failed"
msgstr "İşlem başarısız oldu"
#: daemon/gvfsftptask.c:421
#: daemon/gvfsftptask.c:422
msgid "No space left on server"
msgstr "Sunucuda yer kalmadı"
#: daemon/gvfsftptask.c:433
#: daemon/gvfsftptask.c:434
msgid "Unsupported network protocol"
msgstr "Desteklenmeyen ağ iletişim kuralı"
#: daemon/gvfsftptask.c:441
#: daemon/gvfsftptask.c:442
msgid "Page type unknown"
msgstr "Sayfa türü bilinmiyor"
#: daemon/gvfsftptask.c:445
#: daemon/gvfsftptask.c:446
msgid "Invalid filename"
msgstr "Geçersiz dosya adı"
@ -1998,7 +2000,7 @@ msgstr ""
#: daemon/main.c:148 metadata/meta-daemon.c:459
msgid "Replace old daemon."
msgstr "Eski hizmetin yerine kondu."
msgstr "Eski art alan hizmetini değiştir."
#: daemon/main.c:149
msgid "Dont start fuse."
@ -2014,11 +2016,11 @@ msgstr "Programın sürümünü göster."
#: daemon/main.c:167
msgid "GVFS Daemon"
msgstr "GVFS Hizmeti"
msgstr "GVFS Art Alan Hizmeti"
#: daemon/main.c:170
msgid "Main daemon for GVFS"
msgstr "GVFS için ana hizmet"
msgstr "GVFS için ana art alan hizmeti"
#. Translators: the first %s is the application name,
#. the second %s is the error message
@ -2035,7 +2037,7 @@ msgstr "Daha çok bilgi için “%s --help” deneyin."
#: daemon/mount.c:783
#, c-format
msgid "Automount failed: %s"
msgstr "Kendiliğinden bağlama başarısız oldu: %s"
msgstr "Kendiliğinden bağlanamadı: %s"
#: daemon/mount.c:827 daemon/mount.c:903
msgid "The specified location is not mounted"
@ -2060,11 +2062,12 @@ msgstr "Dosya işlemleri gerçekleştir"
#: daemon/org.gtk.vfs.file-operations.policy.in.in:14
msgid "Authentication is required to run gvfsd-admin daemon"
msgstr "Dosya işlemleri gerçekleştirmek için kimlik denetimi gerekiyor"
msgstr ""
"gvfsd-admin art alan hizmetini çalıştırmak için kimlik doğrulaması gerekiyor"
#: daemon/org.gtk.vfs.file-operations.policy.in.in:26
msgid "Authentication is required to perform file operations"
msgstr "Dosya işlemleri gerçekleştirmek için yetkilendirme gerekiyor"
msgstr "Dosya işlemleri gerçekleştirmek için kimlik doğrulaması gerekiyor"
#: metadata/meta-daemon.c:249 metadata/meta-daemon.c:326
#: metadata/meta-daemon.c:363
@ -2090,16 +2093,16 @@ msgstr "Üst veri anahtarları taşınamıyor"
#: metadata/meta-daemon.c:470
msgid "GVFS Metadata Daemon"
msgstr "GVFS Üst Veri Hizmeti"
msgstr "GVFS Üst Veri Art Alan Hizmeti"
#: metadata/meta-daemon.c:473
msgid "Metadata daemon for GVFS"
msgstr "GVFS için üst veri hizmeti"
msgstr "GVFS için üst veri art alan hizmeti"
#: monitor/goa/goavolume.c:296 monitor/goa/goavolume.c:335
#, c-format
msgid "Failed to get org.gnome.OnlineAccounts.Files for %s"
msgstr "%s için org.gnome.OnlineAccounts.Files getirilemedi"
msgstr "%s için org.gnome.OnlineAccounts.Files alınamadı"
#: monitor/goa/goavolume.c:366
#, c-format
@ -2109,7 +2112,7 @@ msgstr "%s için geçersiz kullanıcı bilgisi"
#: monitor/goa/goavolume.c:399
#, c-format
msgid "Unsupported authentication method for %s"
msgstr "%s için desteklenmeyen kimlik denetimi yöntemi"
msgstr "%s için desteklenmeyen kimlik doğrulama yöntemi"
#: monitor/proxy/gvfsproxyvolumemonitordaemon.c:1037
msgid "The given mount was not found"
@ -2151,21 +2154,20 @@ msgstr "Adsız Sürücü"
#: monitor/udisks2/gvfsudisks2drive.c:624
#, c-format
msgid "Failed to eject medium; one or more volumes on the medium are busy."
msgstr ""
"Ortamı çıkartma başarısız; ortam üzerindeki bir ya da daha çok birim meşgul."
msgstr "Ortam çıkartılamadı; ortam üzerindeki bir ya da daha çok birim meşgul."
#: monitor/udisks2/gvfsudisks2mount.c:634
#: monitor/udisks2/gvfsudisks2mount.c:632
msgid "One or more programs are preventing the unmount operation."
msgstr "Bir ya da daha çok program ayırma işlemini engellemektedir."
#. Note that the GUI (Shell, Files) currently use the term
#. * "Eject" for both GDrive.stop() and GDrive.eject().
#.
#: monitor/udisks2/gvfsudisks2mount.c:744
#: monitor/udisks2/gvfsudisks2mount.c:742
msgid "Eject Anyway"
msgstr "Yine de Çıkart"
#: monitor/udisks2/gvfsudisks2mount.c:1128
#: monitor/udisks2/gvfsudisks2mount.c:1147
#: monitor/udisks2/gvfsudisks2volume.c:1769
msgid "Operation not supported by backend"
msgstr "Arkayüz tarafından işlem desteklenmiyor"
@ -2193,7 +2195,7 @@ msgstr ""
"%s üzerine veri yazılıyor\n"
"Aygıt çıkartılmamalıdır."
#: monitor/udisks2/gvfsudisks2utils.c:780
#: monitor/udisks2/gvfsudisks2utils.c:784
#, c-format
msgid ""
"%s unmounted\n"
@ -2202,7 +2204,7 @@ msgstr ""
"%s ayrıldı\n"
"Dosya sistemi bağlantısı kesildi."
#: monitor/udisks2/gvfsudisks2utils.c:782
#: monitor/udisks2/gvfsudisks2utils.c:786
#, c-format
msgid ""
"%s can be safely unplugged\n"

View File

@ -1351,8 +1351,10 @@ pkill --signal HUP udevd || pkill --signal HUP systemd-udevd
if self.mock_polkit:
# for some reason, terminating the shell doesn't terminate the
# polkitd running in it, so kill that separately
self.root_command('kill `pidof -x /home/test_polkitd.py`')
# polkitd running in it, so kill that separately.
# The apparently redundant [] is to stop pkill from
# killing itself or its sudo parent.
self.root_command('pkill -e -f "/home/test_polkitd[.]py"')
self.mock_polkit.terminate()
self.mock_polkit.wait()
self.mock_polkit = None

View File

@ -22,6 +22,7 @@ import argparse
import unittest
import signal
import time
import pwd
import dbus
import dbus.service
@ -193,4 +194,10 @@ def main():
_run(args.allowed_actions.split(','), args.bus_address, args.replace)
if __name__ == '__main__':
# use the right user to start the service
try:
uid = pwd.getpwnam('polkitd').pw_uid
os.setuid(uid)
except KeyError:
pass
main()