Comparar commits
8 Commits
| Autor | SHA1 | Data | |
|---|---|---|---|
| e4f4e96567 | |||
| abe136f0b7 | |||
| e1804c3393 | |||
| 8fcc014a51 | |||
| 60a0671a45 | |||
| 600cae7423 | |||
| feb8d342f5 | |||
| e900632c5e |
+1
-15
@@ -1,9 +1,6 @@
|
||||
|
||||
cmake_minimum_required(VERSION 2.6)
|
||||
cmake_policy(VERSION 2.8.0)
|
||||
if(POLICY CMP0020)
|
||||
cmake_policy(SET CMP0020 NEW)
|
||||
endif()
|
||||
|
||||
project(client)
|
||||
|
||||
@@ -60,7 +57,7 @@ endif()
|
||||
|
||||
include(GNUInstallDirs)
|
||||
include(DefineInstallationPaths)
|
||||
include(GenerateExportHeader)
|
||||
|
||||
|
||||
include(GetGitRevisionDescription)
|
||||
|
||||
@@ -139,13 +136,6 @@ if(OWNCLOUD_RESTORE_RENAME)
|
||||
add_definitions(-DOWNCLOUD_RESTORE_RENAME=1)
|
||||
endif()
|
||||
|
||||
# Disable shibboleth.
|
||||
# So the client can be built without QtWebKit
|
||||
option(NO_SHIBBOLETH "Build without Shibboleth support. Allow to build the client without QtWebKit" OFF)
|
||||
if(NO_SHIBBOLETH)
|
||||
message("Compiling without shibboleth")
|
||||
add_definitions(-DNO_SHIBBOLETH=1)
|
||||
endif()
|
||||
|
||||
if(APPLE)
|
||||
set( SOCKETAPI_TEAM_IDENTIFIER_PREFIX "" CACHE STRING "SocketApi prefix (including a following dot) that must match the codesign key's TeamIdentifier/Organizational Unit" )
|
||||
@@ -169,9 +159,6 @@ find_package(SQLite3 3.8.0 REQUIRED)
|
||||
# On some OS, we want to use our own, not the system sqlite
|
||||
if (USE_OUR_OWN_SQLITE3)
|
||||
include_directories(BEFORE ${SQLITE3_INCLUDE_DIR})
|
||||
if (WIN32)
|
||||
add_definitions(-DSQLITE_API=__declspec\(dllimport\))
|
||||
endif()
|
||||
endif()
|
||||
|
||||
find_package(ZLIB)
|
||||
@@ -186,7 +173,6 @@ add_definitions(-DUNICODE)
|
||||
add_definitions(-D_UNICODE)
|
||||
if( WIN32 )
|
||||
add_definitions( -D__USE_MINGW_ANSI_STDIO=1 )
|
||||
add_definitions( -DNOMINMAX )
|
||||
endif( WIN32 )
|
||||
|
||||
# Handle Translations, pick all client_* files from trans directory.
|
||||
|
||||
@@ -1,15 +1,6 @@
|
||||
ChangeLog
|
||||
=========
|
||||
|
||||
version 2.2.4 (release 2016-09-27)
|
||||
* Dolphin Plugin: Use the Application name for the socket path (#5172)
|
||||
* SyncEngine: Fix renaming of folder when file are changed (#5195)
|
||||
* Selective Sync: Fix HTTP request loop and show error in view (#5154)
|
||||
* ConnectionValidator: properly handle error in status.php request (#5188)
|
||||
* Discovery: Set thread priority to low (#5017)
|
||||
* ExcludeFiles: Fix when the folder casing is not the same in the settings and in the FS
|
||||
* ShareLink: Ensure the password line edit is enabled (#5117)
|
||||
|
||||
version 2.2.3 (release 2016-08-08)
|
||||
* SyncEngine: Fix detection of backup (#5104)
|
||||
* Fix bug with overriding URL in config (#5016)
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
StrCpy $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING "Mostrar notas de lançamento"
|
||||
StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "Encontrados ${APPLICATION_EXECUTABLE} processo(s) em execução que precisa(m) de ser interrompido(s).$\nDeseja que o instalador o(s) termine por si?"
|
||||
StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "A terminar os processos de ${APPLICATION_EXECUTABLE}."
|
||||
StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "Não foi encontrado o processo para terminar!"
|
||||
StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "Não foi encontrado nenhum processo para terminar!"
|
||||
StrCpy $PageReinstall_NEW_Field_1 "Está instalada no sistema uma versão antiga de ${APPLICATION_NAME}. É recomendado que desinstale a versão atual antes de instalar a mais recente. Selecione a operação que deseja executar e clique em $\"Seguinte$\" para continuar."
|
||||
StrCpy $PageReinstall_NEW_Field_2 "Desinstalar antes de instalar"
|
||||
StrCpy $PageReinstall_NEW_Field_3 "Não desinstale"
|
||||
|
||||
@@ -22,18 +22,12 @@ if( Qt5Core_FOUND )
|
||||
find_package(Qt5Test REQUIRED)
|
||||
endif()
|
||||
if(NOT TOKEN_AUTH_ONLY)
|
||||
find_package(Qt5WebKitWidgets REQUIRED)
|
||||
find_package(Qt5WebKit REQUIRED)
|
||||
find_package(Qt5Widgets REQUIRED)
|
||||
if(APPLE)
|
||||
find_package(Qt5MacExtras REQUIRED)
|
||||
endif(APPLE)
|
||||
|
||||
if(NOT NO_SHIBBOLETH)
|
||||
find_package(Qt5WebKitWidgets)
|
||||
find_package(Qt5WebKit)
|
||||
if(NOT Qt5WebKitWidgets_FOUND)
|
||||
message(FATAL_ERROR "Qt5WebKit required for Shibboleth. Use -DNO_SHIBBOLETH=1 to disable it.")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
else( Qt5Core_FOUND )
|
||||
|
||||
@@ -2,23 +2,21 @@
|
||||
# Redistribution and use is allowed according to the terms of the BSD license.
|
||||
# For details see the accompanying COPYING* file.
|
||||
|
||||
if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -pedantic -Wno-long-long")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -pedantic -Wno-long-long")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
|
||||
|
||||
if (CMAKE_CXX_COMPILER_ID MATCHES "GNU")
|
||||
execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion
|
||||
OUTPUT_VARIABLE GCC_VERSION)
|
||||
if(GCC_VERSION VERSION_GREATER 4.8 OR GCC_VERSION VERSION_EQUAL 4.8)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wpedantic")
|
||||
else(GCC_VERSION VERSION_GREATER 4.8 OR GCC_VERSION VERSION_EQUAL 4.8)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic")
|
||||
endif(GCC_VERSION VERSION_GREATER 4.8 OR GCC_VERSION VERSION_EQUAL 4.8)
|
||||
else()
|
||||
if(CMAKE_COMPILER_IS_GNUCXX)
|
||||
execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion
|
||||
OUTPUT_VARIABLE GCC_VERSION)
|
||||
if(GCC_VERSION VERSION_GREATER 4.8 OR GCC_VERSION VERSION_EQUAL 4.8)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wpedantic")
|
||||
else(GCC_VERSION VERSION_GREATER 4.8 OR GCC_VERSION VERSION_EQUAL 4.8)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic")
|
||||
endif()
|
||||
endif(GCC_VERSION VERSION_GREATER 4.8 OR GCC_VERSION VERSION_EQUAL 4.8)
|
||||
else()
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic")
|
||||
endif(CMAKE_COMPILER_IS_GNUCXX)
|
||||
|
||||
if(DEFINED MIRALL_FATAL_WARNINGS)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror")
|
||||
endif(DEFINED MIRALL_FATAL_WARNINGS)
|
||||
endif()
|
||||
if(DEFINED MIRALL_FATAL_WARNINGS)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror")
|
||||
endif(DEFINED MIRALL_FATAL_WARNINGS)
|
||||
|
||||
@@ -81,13 +81,6 @@ set(csync_HDRS
|
||||
# Statically include sqlite
|
||||
if (USE_OUR_OWN_SQLITE3)
|
||||
list(APPEND csync_SRCS ${SQLITE3_SOURCE})
|
||||
if (WIN32)
|
||||
# We want to export sqlite symbols from the ocsync DLL without
|
||||
# having to patch both sqlite3.h and the amalgation sqlite3.c,
|
||||
# so do the import/export magic manually through the build system.
|
||||
remove_definitions(-DSQLITE_API=__declspec\(dllimport\))
|
||||
add_definitions(-DSQLITE_API=__declspec\(dllexport\))
|
||||
endif()
|
||||
endif()
|
||||
|
||||
include_directories(
|
||||
@@ -98,12 +91,6 @@ include_directories(
|
||||
add_library(${CSYNC_LIBRARY} SHARED ${csync_SRCS})
|
||||
#add_library(${CSYNC_LIBRARY}_static STATIC ${csync_SRCS})
|
||||
|
||||
generate_export_header( ${CSYNC_LIBRARY}
|
||||
BASE_NAME ${CSYNC_LIBRARY}
|
||||
EXPORT_MACRO_NAME OCSYNC_EXPORT
|
||||
EXPORT_FILE_NAME ocsynclib.h
|
||||
)
|
||||
|
||||
target_link_libraries(${CSYNC_LIBRARY} ${CSYNC_LINK_LIBRARIES})
|
||||
#target_link_libraries(${CSYNC_LIBRARY}_static ${CSYNC_LINK_LIBRARIES})
|
||||
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <time.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/types.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
@@ -521,6 +522,7 @@ static void _csync_clean_ctx(CSYNC *ctx)
|
||||
c_rbtree_free(ctx->local.tree);
|
||||
c_rbtree_free(ctx->remote.tree);
|
||||
|
||||
SAFE_FREE(ctx->statedb.file);
|
||||
SAFE_FREE(ctx->remote.root_perms);
|
||||
}
|
||||
|
||||
|
||||
+32
-32
@@ -33,10 +33,10 @@
|
||||
#define _CSYNC_H
|
||||
|
||||
#include "std/c_private.h"
|
||||
#include "ocsynclib.h"
|
||||
#include <sys/stat.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/types.h>
|
||||
#include <config_csync.h>
|
||||
|
||||
@@ -229,14 +229,14 @@ struct csync_vio_file_stat_s {
|
||||
char *original_name; // only set if locale conversion fails
|
||||
};
|
||||
|
||||
csync_vio_file_stat_t OCSYNC_EXPORT *csync_vio_file_stat_new(void);
|
||||
csync_vio_file_stat_t OCSYNC_EXPORT *csync_vio_file_stat_copy(csync_vio_file_stat_t *file_stat);
|
||||
csync_vio_file_stat_t *csync_vio_file_stat_new(void);
|
||||
csync_vio_file_stat_t *csync_vio_file_stat_copy(csync_vio_file_stat_t *file_stat);
|
||||
|
||||
void OCSYNC_EXPORT csync_vio_file_stat_destroy(csync_vio_file_stat_t *fstat);
|
||||
void csync_vio_file_stat_destroy(csync_vio_file_stat_t *fstat);
|
||||
|
||||
void OCSYNC_EXPORT csync_vio_file_stat_set_file_id( csync_vio_file_stat_t* dst, const char* src );
|
||||
void csync_vio_file_stat_set_file_id( csync_vio_file_stat_t* dst, const char* src );
|
||||
|
||||
void OCSYNC_EXPORT csync_vio_set_file_id(char* dst, const char *src );
|
||||
void csync_vio_set_file_id(char* dst, const char *src );
|
||||
|
||||
|
||||
/**
|
||||
@@ -317,7 +317,7 @@ typedef const char* (*csync_checksum_hook) (
|
||||
*
|
||||
* @param csync The context variable to allocate.
|
||||
*/
|
||||
void OCSYNC_EXPORT csync_create(CSYNC **csync, const char *local, const char *remote);
|
||||
void csync_create(CSYNC **csync, const char *local, const char *remote);
|
||||
|
||||
/**
|
||||
* @brief Initialize the file synchronizer.
|
||||
@@ -326,7 +326,7 @@ void OCSYNC_EXPORT csync_create(CSYNC **csync, const char *local, const char *re
|
||||
*
|
||||
* @param ctx The context to initialize.
|
||||
*/
|
||||
void OCSYNC_EXPORT csync_init(CSYNC *ctx);
|
||||
void csync_init(CSYNC *ctx);
|
||||
|
||||
/**
|
||||
* @brief Update detection
|
||||
@@ -335,7 +335,7 @@ void OCSYNC_EXPORT csync_init(CSYNC *ctx);
|
||||
*
|
||||
* @return 0 on success, less than 0 if an error occurred.
|
||||
*/
|
||||
int OCSYNC_EXPORT csync_update(CSYNC *ctx);
|
||||
int csync_update(CSYNC *ctx);
|
||||
|
||||
/**
|
||||
* @brief Reconciliation
|
||||
@@ -344,7 +344,7 @@ int OCSYNC_EXPORT csync_update(CSYNC *ctx);
|
||||
*
|
||||
* @return 0 on success, less than 0 if an error occurred.
|
||||
*/
|
||||
int OCSYNC_EXPORT csync_reconcile(CSYNC *ctx);
|
||||
int csync_reconcile(CSYNC *ctx);
|
||||
|
||||
/**
|
||||
* @brief Re-initializes the csync context
|
||||
@@ -353,7 +353,7 @@ int OCSYNC_EXPORT csync_reconcile(CSYNC *ctx);
|
||||
*
|
||||
* @return 0 on success, less than 0 if an error occurred.
|
||||
*/
|
||||
int OCSYNC_EXPORT csync_commit(CSYNC *ctx);
|
||||
int csync_commit(CSYNC *ctx);
|
||||
|
||||
/**
|
||||
* @brief Destroy the csync context
|
||||
@@ -364,7 +364,7 @@ int OCSYNC_EXPORT csync_commit(CSYNC *ctx);
|
||||
*
|
||||
* @return 0 on success, less than 0 if an error occurred.
|
||||
*/
|
||||
int OCSYNC_EXPORT csync_destroy(CSYNC *ctx);
|
||||
int csync_destroy(CSYNC *ctx);
|
||||
|
||||
/**
|
||||
* @brief Get the userdata saved in the context.
|
||||
@@ -386,7 +386,7 @@ void *csync_get_userdata(CSYNC *ctx);
|
||||
*
|
||||
* @return 0 on success, less than 0 if an error occurred.
|
||||
*/
|
||||
int OCSYNC_EXPORT csync_set_userdata(CSYNC *ctx, void *userdata);
|
||||
int csync_set_userdata(CSYNC *ctx, void *userdata);
|
||||
|
||||
/**
|
||||
* @brief Get the authentication callback set.
|
||||
@@ -396,7 +396,7 @@ int OCSYNC_EXPORT csync_set_userdata(CSYNC *ctx, void *userdata);
|
||||
* @return The authentication callback set or NULL if an error
|
||||
* occurred.
|
||||
*/
|
||||
csync_auth_callback OCSYNC_EXPORT csync_get_auth_callback(CSYNC *ctx);
|
||||
csync_auth_callback csync_get_auth_callback(CSYNC *ctx);
|
||||
|
||||
/**
|
||||
* @brief Set the authentication callback.
|
||||
@@ -407,7 +407,7 @@ csync_auth_callback OCSYNC_EXPORT csync_get_auth_callback(CSYNC *ctx);
|
||||
*
|
||||
* @return 0 on success, less than 0 if an error occurred.
|
||||
*/
|
||||
int OCSYNC_EXPORT csync_set_auth_callback(CSYNC *ctx, csync_auth_callback cb);
|
||||
int csync_set_auth_callback(CSYNC *ctx, csync_auth_callback cb);
|
||||
|
||||
/**
|
||||
* @brief Set the log level.
|
||||
@@ -416,14 +416,14 @@ int OCSYNC_EXPORT csync_set_auth_callback(CSYNC *ctx, csync_auth_callback cb);
|
||||
*
|
||||
* @return 0 on success, < 0 if an error occurred.
|
||||
*/
|
||||
int OCSYNC_EXPORT csync_set_log_level(int level);
|
||||
int csync_set_log_level(int level);
|
||||
|
||||
/**
|
||||
* @brief Get the log verbosity
|
||||
*
|
||||
* @return The log verbosity, -1 on error.
|
||||
*/
|
||||
int OCSYNC_EXPORT csync_get_log_level(void);
|
||||
int csync_get_log_level(void);
|
||||
|
||||
/**
|
||||
* @brief Get the logging callback set.
|
||||
@@ -431,7 +431,7 @@ int OCSYNC_EXPORT csync_get_log_level(void);
|
||||
* @return The logging callback set or NULL if an error
|
||||
* occurred.
|
||||
*/
|
||||
csync_log_callback OCSYNC_EXPORT csync_get_log_callback(void);
|
||||
csync_log_callback csync_get_log_callback(void);
|
||||
|
||||
/**
|
||||
* @brief Set the logging callback.
|
||||
@@ -440,14 +440,14 @@ csync_log_callback OCSYNC_EXPORT csync_get_log_callback(void);
|
||||
*
|
||||
* @return 0 on success, less than 0 if an error occurred.
|
||||
*/
|
||||
int OCSYNC_EXPORT csync_set_log_callback(csync_log_callback cb);
|
||||
int csync_set_log_callback(csync_log_callback cb);
|
||||
|
||||
/**
|
||||
* @brief get the userdata set for the logging callback.
|
||||
*
|
||||
* @return The userdata or NULL.
|
||||
*/
|
||||
void OCSYNC_EXPORT *csync_get_log_userdata(void);
|
||||
void *csync_get_log_userdata(void);
|
||||
|
||||
/**
|
||||
* @brief Set the userdata passed to the logging callback.
|
||||
@@ -456,13 +456,13 @@ void OCSYNC_EXPORT *csync_get_log_userdata(void);
|
||||
*
|
||||
* @return 0 on success, less than 0 if an error occurred.
|
||||
*/
|
||||
int OCSYNC_EXPORT csync_set_log_userdata(void *data);
|
||||
int csync_set_log_userdata(void *data);
|
||||
|
||||
/* Used for special modes or debugging */
|
||||
CSYNC_STATUS OCSYNC_EXPORT csync_get_status(CSYNC *ctx);
|
||||
CSYNC_STATUS csync_get_status(CSYNC *ctx);
|
||||
|
||||
/* Used for special modes or debugging */
|
||||
int OCSYNC_EXPORT csync_set_status(CSYNC *ctx, int status);
|
||||
int csync_set_status(CSYNC *ctx, int status);
|
||||
|
||||
typedef int csync_treewalk_visit_func(TREE_WALK_FILE* ,void*);
|
||||
|
||||
@@ -475,7 +475,7 @@ typedef int csync_treewalk_visit_func(TREE_WALK_FILE* ,void*);
|
||||
*
|
||||
* @return 0 on success, less than 0 if an error occurred.
|
||||
*/
|
||||
int OCSYNC_EXPORT csync_walk_local_tree(CSYNC *ctx, csync_treewalk_visit_func *visitor, int filter);
|
||||
int csync_walk_local_tree(CSYNC *ctx, csync_treewalk_visit_func *visitor, int filter);
|
||||
|
||||
/**
|
||||
* @brief Walk the remote file tree and call a visitor function for each file.
|
||||
@@ -486,7 +486,7 @@ int OCSYNC_EXPORT csync_walk_local_tree(CSYNC *ctx, csync_treewalk_visit_func *v
|
||||
*
|
||||
* @return 0 on success, less than 0 if an error occurred.
|
||||
*/
|
||||
int OCSYNC_EXPORT csync_walk_remote_tree(CSYNC *ctx, csync_treewalk_visit_func *visitor, int filter);
|
||||
int csync_walk_remote_tree(CSYNC *ctx, csync_treewalk_visit_func *visitor, int filter);
|
||||
|
||||
/**
|
||||
* @brief Get the csync status string.
|
||||
@@ -495,7 +495,7 @@ int OCSYNC_EXPORT csync_walk_remote_tree(CSYNC *ctx, csync_treewalk_visit_func *
|
||||
*
|
||||
* @return A const pointer to a string with more precise status info.
|
||||
*/
|
||||
const char OCSYNC_EXPORT *csync_get_status_string(CSYNC *ctx);
|
||||
const char *csync_get_status_string(CSYNC *ctx);
|
||||
|
||||
#ifdef WITH_ICONV
|
||||
/**
|
||||
@@ -505,7 +505,7 @@ const char OCSYNC_EXPORT *csync_get_status_string(CSYNC *ctx);
|
||||
*
|
||||
* @return 0 on success, or an iconv error number.
|
||||
*/
|
||||
int OCSYNC_EXPORT csync_set_iconv_codec(const char *from);
|
||||
int csync_set_iconv_codec(const char *from);
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -513,24 +513,24 @@ int OCSYNC_EXPORT csync_set_iconv_codec(const char *from);
|
||||
*
|
||||
* @param ctx The csync context.
|
||||
*/
|
||||
void OCSYNC_EXPORT csync_request_abort(CSYNC *ctx);
|
||||
void csync_request_abort(CSYNC *ctx);
|
||||
|
||||
/**
|
||||
* @brief Clears the abort flag. Can be called from another thread.
|
||||
*
|
||||
* @param ctx The csync context.
|
||||
*/
|
||||
void OCSYNC_EXPORT csync_resume(CSYNC *ctx);
|
||||
void csync_resume(CSYNC *ctx);
|
||||
|
||||
/**
|
||||
* @brief Checks for the abort flag, to be used from the modules.
|
||||
*
|
||||
* @param ctx The csync context.
|
||||
*/
|
||||
int OCSYNC_EXPORT csync_abort_requested(CSYNC *ctx);
|
||||
int csync_abort_requested(CSYNC *ctx);
|
||||
|
||||
char OCSYNC_EXPORT *csync_normalize_etag(const char *);
|
||||
time_t OCSYNC_EXPORT oc_httpdate_parse( const char *date );
|
||||
char *csync_normalize_etag(const char *);
|
||||
time_t oc_httpdate_parse( const char *date );
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <fcntl.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include "c_lib.h"
|
||||
#include "c_private.h"
|
||||
@@ -36,12 +37,6 @@
|
||||
#include "csync_exclude.h"
|
||||
#include "csync_misc.h"
|
||||
|
||||
#ifdef _WIN32
|
||||
#include <io.h>
|
||||
#else
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
|
||||
#define CSYNC_LOG_CATEGORY_NAME "csync.exclude"
|
||||
#include "csync_log.h"
|
||||
|
||||
|
||||
@@ -21,8 +21,6 @@
|
||||
#ifndef _CSYNC_EXCLUDE_H
|
||||
#define _CSYNC_EXCLUDE_H
|
||||
|
||||
#include "ocsynclib.h"
|
||||
|
||||
enum csync_exclude_type_e {
|
||||
CSYNC_NOT_EXCLUDED = 0,
|
||||
CSYNC_FILE_SILENTLY_EXCLUDED,
|
||||
@@ -37,7 +35,7 @@ enum csync_exclude_type_e {
|
||||
typedef enum csync_exclude_type_e CSYNC_EXCLUDE_TYPE;
|
||||
|
||||
#ifdef WITH_UNIT_TESTING
|
||||
int OCSYNC_EXPORT _csync_exclude_add(c_strlist_t **inList, const char *string);
|
||||
int _csync_exclude_add(c_strlist_t **inList, const char *string);
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -48,7 +46,7 @@ int OCSYNC_EXPORT _csync_exclude_add(c_strlist_t **inList, const char *string);
|
||||
*
|
||||
* @return 0 on success, -1 if an error occurred with errno set.
|
||||
*/
|
||||
int OCSYNC_EXPORT csync_exclude_load(const char *fname, c_strlist_t **list);
|
||||
int csync_exclude_load(const char *fname, c_strlist_t **list);
|
||||
|
||||
/**
|
||||
* @brief Check if the given path should be excluded in a traversal situation.
|
||||
@@ -74,7 +72,7 @@ CSYNC_EXCLUDE_TYPE csync_excluded_traversal(c_strlist_t *excludes, const char *p
|
||||
* @param filetype
|
||||
* @return
|
||||
*/
|
||||
CSYNC_EXCLUDE_TYPE OCSYNC_EXPORT csync_excluded_no_ctx(c_strlist_t *excludes, const char *path, int filetype);
|
||||
CSYNC_EXCLUDE_TYPE csync_excluded_no_ctx(c_strlist_t *excludes, const char *path, int filetype);
|
||||
#endif /* _CSYNC_EXCLUDE_H */
|
||||
|
||||
/**
|
||||
|
||||
+42
-1
@@ -23,6 +23,12 @@
|
||||
#include <stdio.h>
|
||||
#include <stdarg.h>
|
||||
#include <string.h>
|
||||
#ifndef _WIN32
|
||||
#include <sys/time.h>
|
||||
#else
|
||||
#include <sys/utime.h>
|
||||
#endif
|
||||
#include <time.h>
|
||||
|
||||
#include "csync_private.h"
|
||||
#include "csync_log.h"
|
||||
@@ -31,11 +37,46 @@ CSYNC_THREAD int csync_log_level;
|
||||
CSYNC_THREAD csync_log_callback csync_log_cb;
|
||||
CSYNC_THREAD void *csync_log_userdata;
|
||||
|
||||
static int current_timestring(int hires, char *buf, size_t len)
|
||||
{
|
||||
char tbuf[64];
|
||||
struct timeval tv;
|
||||
struct tm *tm;
|
||||
time_t t;
|
||||
|
||||
gettimeofday(&tv, NULL);
|
||||
t = (time_t) tv.tv_sec;
|
||||
|
||||
tm = localtime(&t);
|
||||
if (tm == NULL) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (hires) {
|
||||
strftime(tbuf, sizeof(tbuf) - 1, "%Y/%m/%d %H:%M:%S", tm);
|
||||
snprintf(buf, len, "%s.%06ld", tbuf, (long) tv.tv_usec);
|
||||
} else {
|
||||
strftime(tbuf, sizeof(tbuf) - 1, "%Y/%m/%d %H:%M:%S", tm);
|
||||
snprintf(buf, len, "%s", tbuf);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void csync_log_stderr(int verbosity,
|
||||
const char *function,
|
||||
const char *buffer)
|
||||
{
|
||||
fprintf(stderr, "[%d] %s", verbosity, function);
|
||||
char date[64] = {0};
|
||||
int rc;
|
||||
|
||||
rc = current_timestring(1, date, sizeof(date));
|
||||
if (rc == 0) {
|
||||
fprintf(stderr, "[%s, %d] %s:", date+5, verbosity, function);
|
||||
} else {
|
||||
fprintf(stderr, "[%d] %s", verbosity, function);
|
||||
}
|
||||
|
||||
fprintf(stderr, " %s\n", buffer);
|
||||
}
|
||||
static void csync_log_function(int verbosity,
|
||||
|
||||
@@ -39,6 +39,7 @@
|
||||
# include <shlobj.h>
|
||||
#else /* _WIN32 */
|
||||
# include <pwd.h>
|
||||
# include <unistd.h>
|
||||
#endif /* _WIN32 */
|
||||
|
||||
#include "c_lib.h"
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
#define FNM_CASEFOLD (1 << 4) /* Compare without regard to case. */
|
||||
#endif
|
||||
|
||||
int csync_fnmatch(const char *pattern, const char *name, int flags);
|
||||
int csync_fnmatch(__const char *__pattern, __const char *__name, int __flags);
|
||||
|
||||
/**
|
||||
* @brief csync_errno_to_status - errno to csync status code
|
||||
|
||||
@@ -224,6 +224,9 @@ struct _csync_treewalk_context_s
|
||||
};
|
||||
typedef struct _csync_treewalk_context_s _csync_treewalk_context;
|
||||
|
||||
|
||||
time_t oc_httpdate_parse( const char *date );
|
||||
|
||||
void set_errno_from_http_errcode( int err );
|
||||
|
||||
/**
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
*
|
||||
* @todo Add an argument to set the algorithm to use.
|
||||
*/
|
||||
int OCSYNC_EXPORT csync_reconcile_updates(CSYNC *ctx);
|
||||
int csync_reconcile_updates(CSYNC *ctx);
|
||||
|
||||
/**
|
||||
* }@
|
||||
|
||||
@@ -27,11 +27,11 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
/* Return the final destination path of a given patch in case of renames */
|
||||
char OCSYNC_EXPORT *csync_rename_adjust_path(CSYNC *ctx, const char *path);
|
||||
char *csync_rename_adjust_path(CSYNC *ctx, const char *path);
|
||||
/* Return the source of a given path in case of renames */
|
||||
char OCSYNC_EXPORT *csync_rename_adjust_path_source(CSYNC *ctx, const char *path);
|
||||
void OCSYNC_EXPORT csync_rename_destroy(CSYNC *ctx);
|
||||
void OCSYNC_EXPORT csync_rename_record(CSYNC *ctx, const char *from, const char *to);
|
||||
char *csync_rename_adjust_path_source(CSYNC *ctx, const char *path);
|
||||
void csync_rename_destroy(CSYNC *ctx);
|
||||
void csync_rename_record(CSYNC *ctx, const char *from, const char *to);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -27,6 +27,7 @@
|
||||
|
||||
#include <sqlite3.h>
|
||||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <fcntl.h>
|
||||
@@ -52,7 +53,7 @@
|
||||
|
||||
#define sqlite_open(A, B) sqlite3_open_v2(A,B, SQLITE_OPEN_READONLY+SQLITE_OPEN_NOMUTEX, NULL)
|
||||
|
||||
#define SQLTM_TIME 150
|
||||
#define SQLTM_TIME 150000
|
||||
#define SQLTM_COUNT 10
|
||||
|
||||
#define SQLITE_BUSY_HANDLED(F) if(1) { \
|
||||
@@ -60,7 +61,7 @@
|
||||
do { rc = F ; \
|
||||
if( (rc == SQLITE_BUSY) || (rc == SQLITE_LOCKED) ) { \
|
||||
n++; \
|
||||
csync_sleep(SQLTM_TIME); \
|
||||
usleep(SQLTM_TIME); \
|
||||
} \
|
||||
}while( (n < SQLTM_COUNT) && ((rc == SQLITE_BUSY) || (rc == SQLITE_LOCKED))); \
|
||||
}
|
||||
@@ -518,7 +519,8 @@ c_strlist_t *csync_statedb_query(sqlite3 *db,
|
||||
/* compile SQL program into a virtual machine, reattempteing if busy */
|
||||
do {
|
||||
if (busy_count) {
|
||||
csync_sleep(100);
|
||||
/* sleep 100 msec */
|
||||
usleep(100000);
|
||||
CSYNC_LOG(CSYNC_LOG_PRIORITY_DEBUG, "sqlite3_prepare: BUSY counter: %zu", busy_count);
|
||||
}
|
||||
err = sqlite3_prepare(db, statement, -1, &stmt, &tail);
|
||||
@@ -545,7 +547,8 @@ c_strlist_t *csync_statedb_query(sqlite3 *db,
|
||||
CSYNC_LOG(CSYNC_LOG_PRIORITY_ERROR, "Busy counter has reached its maximum. Aborting this sql statement");
|
||||
break;
|
||||
}
|
||||
csync_sleep(100);
|
||||
/* sleep 100 msec */
|
||||
usleep(100000);
|
||||
CSYNC_LOG(CSYNC_LOG_PRIORITY_TRACE, "sqlite3_step: BUSY counter: %zu", busy_count);
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -31,11 +31,6 @@
|
||||
#include "csync_time.h"
|
||||
#include "vio/csync_vio.h"
|
||||
|
||||
#ifndef _WIN32
|
||||
#include <unistd.h>
|
||||
#include <sys/time.h>
|
||||
#endif
|
||||
|
||||
#define CSYNC_LOG_CATEGORY_NAME "csync.time"
|
||||
#include "csync_log.h"
|
||||
|
||||
@@ -50,13 +45,7 @@
|
||||
|
||||
int csync_gettime(struct timespec *tp)
|
||||
{
|
||||
#if defined(_WIN32)
|
||||
__int64 wintime;
|
||||
GetSystemTimeAsFileTime((FILETIME*)&wintime);
|
||||
wintime -= 116444736000000000ll; //1jan1601 to 1jan1970
|
||||
tp->tv_sec = wintime / 10000000ll; //seconds
|
||||
tp->tv_nsec = wintime % 10000000ll * 100; //nano-seconds
|
||||
#elif defined(HAVE_CLOCK_GETTIME)
|
||||
#ifdef HAVE_CLOCK_GETTIME
|
||||
return clock_gettime(CSYNC_CLOCK, tp);
|
||||
#else
|
||||
struct timeval tv;
|
||||
@@ -73,11 +62,4 @@ int csync_gettime(struct timespec *tp)
|
||||
|
||||
#undef CSYNC_CLOCK
|
||||
|
||||
void csync_sleep(unsigned int msecs)
|
||||
{
|
||||
#if defined(_WIN32)
|
||||
Sleep(msecs);
|
||||
#else
|
||||
usleep(msecs * 1000);
|
||||
#endif
|
||||
}
|
||||
/* vim: set ts=8 sw=2 et cindent: */
|
||||
|
||||
@@ -26,6 +26,5 @@
|
||||
#include "csync_private.h"
|
||||
|
||||
int csync_gettime(struct timespec *tp);
|
||||
void csync_sleep(unsigned int msecs);
|
||||
|
||||
#endif /* _CSYNC_TIME_H */
|
||||
|
||||
@@ -26,9 +26,9 @@
|
||||
|
||||
#include "csync_private.h"
|
||||
|
||||
const char OCSYNC_EXPORT *csync_instruction_str(enum csync_instructions_e instr);
|
||||
const char *csync_instruction_str(enum csync_instructions_e instr);
|
||||
|
||||
void OCSYNC_EXPORT csync_memstat_check(void);
|
||||
void csync_memstat_check(void);
|
||||
|
||||
bool OCSYNC_EXPORT csync_file_locked_or_open( const char *dir, const char *fname);
|
||||
bool csync_file_locked_or_open( const char *dir, const char *fname);
|
||||
#endif /* _CSYNC_UTIL_H */
|
||||
|
||||
@@ -26,12 +26,6 @@ set(cstdlib_SRCS
|
||||
c_time.c
|
||||
)
|
||||
|
||||
if(NOT HAVE_ASPRINTF AND NOT HAVE___MINGW_ASPRINTF)
|
||||
list(APPEND cstdlib_SRCS
|
||||
asprintf.c
|
||||
)
|
||||
endif()
|
||||
|
||||
include_directories(
|
||||
${CSTDLIB_PUBLIC_INCLUDE_DIRS}
|
||||
${CSTDLIB_PRIVATE_INCLUDE_DIRS}
|
||||
|
||||
@@ -1,90 +0,0 @@
|
||||
/*
|
||||
https://raw.githubusercontent.com/littlstar/asprintf.c/20ce5207a4ecb24017b5a17e6cd7d006e3047146/asprintf.c
|
||||
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2014 Little Star Media, Inc.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
*/
|
||||
|
||||
/**
|
||||
* `asprintf.c' - asprintf
|
||||
*
|
||||
* copyright (c) 2014 joseph werle <joseph.werle@gmail.com>
|
||||
*/
|
||||
|
||||
#ifndef HAVE_ASPRINTF
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <stdarg.h>
|
||||
|
||||
#include "asprintf.h"
|
||||
|
||||
int
|
||||
asprintf (char **str, const char *fmt, ...) {
|
||||
int size = 0;
|
||||
va_list args;
|
||||
|
||||
// init variadic argumens
|
||||
va_start(args, fmt);
|
||||
|
||||
// format and get size
|
||||
size = vasprintf(str, fmt, args);
|
||||
|
||||
// toss args
|
||||
va_end(args);
|
||||
|
||||
return size;
|
||||
}
|
||||
|
||||
int
|
||||
vasprintf (char **str, const char *fmt, va_list args) {
|
||||
int size = 0;
|
||||
va_list tmpa;
|
||||
|
||||
// copy
|
||||
va_copy(tmpa, args);
|
||||
|
||||
// apply variadic arguments to
|
||||
// sprintf with format to get size
|
||||
size = vsnprintf(NULL, size, fmt, tmpa);
|
||||
|
||||
// toss args
|
||||
va_end(tmpa);
|
||||
|
||||
// return -1 to be compliant if
|
||||
// size is less than 0
|
||||
if (size < 0) { return -1; }
|
||||
|
||||
// alloc with size plus 1 for `\0'
|
||||
*str = (char *) malloc(size + 1);
|
||||
|
||||
// return -1 to be compliant
|
||||
// if pointer is `NULL'
|
||||
if (NULL == *str) { return -1; }
|
||||
|
||||
// format string with original
|
||||
// variadic arguments and set new size
|
||||
size = vsprintf(*str, fmt, args);
|
||||
return size;
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -1,60 +0,0 @@
|
||||
/*
|
||||
https://raw.githubusercontent.com/littlstar/asprintf.c/20ce5207a4ecb24017b5a17e6cd7d006e3047146/asprintf.h
|
||||
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2014 Little Star Media, Inc.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
*/
|
||||
|
||||
/**
|
||||
* `asprintf.h' - asprintf.c
|
||||
*
|
||||
* copyright (c) 2014 joseph werle <joseph.werle@gmail.com>
|
||||
*/
|
||||
|
||||
#ifndef HAVE_ASPRINTF
|
||||
#ifndef ASPRINTF_H
|
||||
#define ASPRINTF_H 1
|
||||
|
||||
#include <stdarg.h>
|
||||
|
||||
/**
|
||||
* Sets `char **' pointer to be a buffer
|
||||
* large enough to hold the formatted string
|
||||
* accepting a `va_list' args of variadic
|
||||
* arguments.
|
||||
*/
|
||||
|
||||
int
|
||||
vasprintf (char **, const char *, va_list);
|
||||
|
||||
/**
|
||||
* Sets `char **' pointer to be a buffer
|
||||
* large enough to hold the formatted
|
||||
* string accepting `n' arguments of
|
||||
* variadic arguments.
|
||||
*/
|
||||
|
||||
int
|
||||
asprintf (char **, const char *, ...);
|
||||
|
||||
#endif
|
||||
#endif
|
||||
@@ -31,17 +31,14 @@
|
||||
#include <sys/stat.h>
|
||||
|
||||
#ifdef _WIN32
|
||||
#include <windows.h>
|
||||
#include <windef.h>
|
||||
#include <winbase.h>
|
||||
#include <wchar.h>
|
||||
#else
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
|
||||
#include <errno.h>
|
||||
|
||||
#ifdef __MINGW32__
|
||||
#ifdef _WIN32
|
||||
#define EDQUOT 0
|
||||
#define ENODATA 0
|
||||
#ifndef S_IRGRP
|
||||
@@ -68,8 +65,6 @@
|
||||
#define nlink_t int
|
||||
#define getuid() 0
|
||||
#define geteuid() 0
|
||||
#elif defined(_WIN32)
|
||||
#define mode_t int
|
||||
#else
|
||||
#include <fcntl.h>
|
||||
#endif
|
||||
@@ -94,12 +89,8 @@ typedef struct stat csync_stat_t;
|
||||
#define ENODATA EBADF
|
||||
#endif
|
||||
|
||||
#if !defined(HAVE_ASPRINTF)
|
||||
#if defined(HAVE___MINGW_ASPRINTF)
|
||||
#if !defined(HAVE_ASPRINTF) && defined(HAVE___MINGW_ASPRINTF)
|
||||
#define asprintf __mingw_asprintf
|
||||
#else
|
||||
#include "asprintf.h"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef HAVE_STRERROR_R
|
||||
|
||||
@@ -25,10 +25,6 @@
|
||||
#include "c_path.h"
|
||||
#include "c_time.h"
|
||||
|
||||
#ifndef _WIN32
|
||||
#include <sys/time.h>
|
||||
#endif
|
||||
|
||||
struct timespec c_tspecdiff(struct timespec time1, struct timespec time0) {
|
||||
struct timespec ret;
|
||||
int xsec = 0;
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
#define _C_TIME_H
|
||||
|
||||
#include <time.h>
|
||||
#include <sys/time.h>
|
||||
|
||||
/**
|
||||
* @brief Calculate time difference
|
||||
|
||||
@@ -21,10 +21,12 @@
|
||||
#ifndef _CSYNC_VIO_LOCAL_H
|
||||
#define _CSYNC_VIO_LOCAL_H
|
||||
|
||||
csync_vio_handle_t OCSYNC_EXPORT *csync_vio_local_opendir(const char *name);
|
||||
int OCSYNC_EXPORT csync_vio_local_closedir(csync_vio_handle_t *dhandle);
|
||||
csync_vio_file_stat_t OCSYNC_EXPORT *csync_vio_local_readdir(csync_vio_handle_t *dhandle);
|
||||
#include <sys/time.h>
|
||||
|
||||
int OCSYNC_EXPORT csync_vio_local_stat(const char *uri, csync_vio_file_stat_t *buf);
|
||||
csync_vio_handle_t *csync_vio_local_opendir(const char *name);
|
||||
int csync_vio_local_closedir(csync_vio_handle_t *dhandle);
|
||||
csync_vio_file_stat_t *csync_vio_local_readdir(csync_vio_handle_t *dhandle);
|
||||
|
||||
int csync_vio_local_stat(const char *uri, csync_vio_file_stat_t *buf);
|
||||
|
||||
#endif /* _CSYNC_VIO_LOCAL_H */
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <fcntl.h>
|
||||
#include <dirent.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include "windows.h"
|
||||
|
||||
@@ -20,7 +20,6 @@
|
||||
#include "config_csync.h"
|
||||
#include <string.h>
|
||||
#include <time.h>
|
||||
#include <sys/time.h>
|
||||
|
||||
#include "torture.h"
|
||||
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
*/
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include "torture.h"
|
||||
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include "torture.h"
|
||||
|
||||
|
||||
@@ -56,8 +56,6 @@ assertLocalAndRemoteDir( '', 0);
|
||||
printInfo( "Testing with a .sys.admin#recall#" );
|
||||
system("echo 'dir/file2.dat' > ". $tmpdir . ".sys.admin\#recall\#");
|
||||
system("echo 'dir/file3.dat' >> ". $tmpdir . ".sys.admin\#recall\#");
|
||||
system("echo 'nonexistant' >> ". $tmpdir . ".sys.admin\#recall\#");
|
||||
system("echo '/tmp/t_recall/file4.dat' >> ". $tmpdir . ".sys.admin\#recall\#");
|
||||
glob_put( "$tmpdir/.sys.admin\#recall\#", "" );
|
||||
|
||||
csync();
|
||||
@@ -70,10 +68,6 @@ assert( -e glob(localDir().'dir/file3_.sys.admin#recall#-*.dat' ) );
|
||||
assert( -e glob(localDir().'dir/file2.dat' ) );
|
||||
assert( -e glob(localDir().'dir/file3.dat' ) );
|
||||
|
||||
assert( !-e glob(localDir().'nonexistant*' ) );
|
||||
assert( !-e glob('/tmp/t_recall/file4_.sys.admin#recall#-*.dat' ) );
|
||||
assert( -e glob('/tmp/t_recall/file4.dat' ) );
|
||||
|
||||
#Remove the recall file
|
||||
unlink(localDir() . ".sys.admin#recall#");
|
||||
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include "torture.h"
|
||||
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
#include <fcntl.h>
|
||||
#include <string.h>
|
||||
#include <errno.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include "torture.h"
|
||||
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
#include <fcntl.h>
|
||||
#include <string.h>
|
||||
#include <errno.h>
|
||||
#include <unistd.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include "torture.h"
|
||||
|
||||
@@ -292,69 +292,6 @@ X-GNOME-Autostart-Delay=3
|
||||
# Translations
|
||||
|
||||
|
||||
# Translations
|
||||
|
||||
|
||||
# Translations
|
||||
|
||||
|
||||
# Translations
|
||||
|
||||
|
||||
# Translations
|
||||
|
||||
|
||||
# Translations
|
||||
|
||||
|
||||
# Translations
|
||||
|
||||
|
||||
# Translations
|
||||
|
||||
|
||||
# Translations
|
||||
|
||||
|
||||
# Translations
|
||||
|
||||
|
||||
# Translations
|
||||
|
||||
|
||||
# Translations
|
||||
|
||||
|
||||
# Translations
|
||||
|
||||
|
||||
# Translations
|
||||
|
||||
|
||||
# Translations
|
||||
|
||||
|
||||
# Translations
|
||||
|
||||
|
||||
# Translations
|
||||
|
||||
|
||||
# Translations
|
||||
|
||||
|
||||
# Translations
|
||||
|
||||
|
||||
# Translations
|
||||
|
||||
|
||||
# Translations
|
||||
|
||||
|
||||
# Translations
|
||||
|
||||
|
||||
# Translations
|
||||
Comment[oc]=@APPLICATION_NAME@ sincronizacion del client
|
||||
GenericName[oc]=Dorsièr de Sincronizacion
|
||||
|
||||
@@ -21,7 +21,6 @@
|
||||
#include <qcoreevent.h>
|
||||
#include <QFile>
|
||||
#include "ownclouddolphinpluginhelper.h"
|
||||
#include "config.h"
|
||||
|
||||
OwncloudDolphinPluginHelper* OwncloudDolphinPluginHelper::instance()
|
||||
{
|
||||
@@ -68,10 +67,7 @@ void OwncloudDolphinPluginHelper::tryConnect()
|
||||
return;
|
||||
}
|
||||
QString runtimeDir = QFile::decodeName(qgetenv("XDG_RUNTIME_DIR"));
|
||||
runtimeDir.append( QChar('/'));
|
||||
runtimeDir.append( QLatin1String(APPLICATION_SHORTNAME) );
|
||||
|
||||
const QString socketPath = runtimeDir + QLatin1String("/socket");
|
||||
QString socketPath = runtimeDir + QLatin1String("/ownCloud/socket");
|
||||
_socket.connectToServer(socketPath);
|
||||
}
|
||||
|
||||
|
||||
@@ -19,8 +19,8 @@ if( UNIX AND NOT APPLE )
|
||||
ERROR_VARIABLE errors OUTPUT_VARIABLE out)
|
||||
|
||||
|
||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/syncstate.py DESTINATION ${DATADIR}/nautilus-python/extensions RENAME syncstate-${APPLICATION_SHORTNAME}.py)
|
||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/syncstate_nemo.py DESTINATION ${DATADIR}/nemo-python/extensions RENAME syncstate-${APPLICATION_SHORTNAME}.py)
|
||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/syncstate.py DESTINATION ${DATADIR}/nautilus-python/extensions)
|
||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/syncstate_nemo.py DESTINATION ${DATADIR}/nemo-python/extensions RENAME syncstate.py)
|
||||
|
||||
|
||||
|
||||
|
||||
+1
-29
@@ -29,7 +29,6 @@
|
||||
#include "syncengine.h"
|
||||
#include "syncjournaldb.h"
|
||||
#include "config.h"
|
||||
#include "connectionvalidator.h"
|
||||
|
||||
#include "cmd.h"
|
||||
|
||||
@@ -42,14 +41,10 @@
|
||||
#include <windows.h>
|
||||
#else
|
||||
#include <termios.h>
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
|
||||
using namespace OCC;
|
||||
|
||||
|
||||
static void nullMessageHandler(QtMsgType, const char *) {}
|
||||
|
||||
struct CmdOptions {
|
||||
QString source_dir;
|
||||
QString target_url;
|
||||
@@ -73,8 +68,6 @@ struct CmdOptions {
|
||||
// So we have to use a global variable
|
||||
CmdOptions *opts = 0;
|
||||
|
||||
const qint64 timeoutToUseMsec = qMax(1000, ConnectionValidator::DefaultCallingIntervalMsec - 5*1000);
|
||||
|
||||
class EchoDisabler
|
||||
{
|
||||
public:
|
||||
@@ -302,11 +295,6 @@ int main(int argc, char **argv) {
|
||||
|
||||
parseOptions( app.arguments(), &options );
|
||||
|
||||
csync_set_log_level(options.silent ? 1 : 11);
|
||||
if (options.silent) {
|
||||
qInstallMsgHandler(nullMessageHandler);
|
||||
}
|
||||
|
||||
AccountPtr account = Account::create();
|
||||
|
||||
if( !account ) {
|
||||
@@ -400,29 +388,13 @@ int main(int argc, char **argv) {
|
||||
account->setCredentials(cred);
|
||||
account->setSslErrorHandler(sslErrorHandler);
|
||||
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)
|
||||
//obtain capabilities using event loop
|
||||
QEventLoop loop;
|
||||
|
||||
JsonApiJob *job = new JsonApiJob(account, QLatin1String("ocs/v1.php/cloud/capabilities"));
|
||||
job->setTimeout(timeoutToUseMsec);
|
||||
QObject::connect(job, &JsonApiJob::jsonReceived, [&](const QVariantMap &json) {
|
||||
auto caps = json.value("ocs").toMap().value("data").toMap().value("capabilities");
|
||||
qDebug() << "Server capabilities" << caps;
|
||||
account->setCapabilities(caps.toMap());
|
||||
loop.quit();
|
||||
});
|
||||
job->start();
|
||||
|
||||
loop.exec();
|
||||
#endif
|
||||
|
||||
// much lower age than the default since this utility is usually made to be run right after a change in the tests
|
||||
SyncEngine::minimumFileAgeForUpload = 0;
|
||||
|
||||
int restartCount = 0;
|
||||
restart_sync:
|
||||
|
||||
csync_set_log_level(options.silent ? 1 : 11);
|
||||
|
||||
opts = &options;
|
||||
|
||||
|
||||
@@ -68,11 +68,12 @@ set(client_SRCS
|
||||
activitylistmodel.cpp
|
||||
activitywidget.cpp
|
||||
activityitemdelegate.cpp
|
||||
activityfetcher.cpp
|
||||
selectivesyncdialog.cpp
|
||||
settingsdialog.cpp
|
||||
share.cpp
|
||||
sharedialog.cpp
|
||||
sharelinkwidget.cpp
|
||||
sharemanager.cpp
|
||||
shareusergroupwidget.cpp
|
||||
sharee.cpp
|
||||
socketapi.cpp
|
||||
@@ -94,26 +95,22 @@ set(client_SRCS
|
||||
servernotificationhandler.cpp
|
||||
creds/credentialsfactory.cpp
|
||||
creds/httpcredentialsgui.cpp
|
||||
creds/shibbolethcredentials.cpp
|
||||
creds/shibboleth/shibbolethwebview.cpp
|
||||
creds/shibboleth/shibbolethuserjob.cpp
|
||||
wizard/postfixlineedit.cpp
|
||||
wizard/abstractcredswizardpage.cpp
|
||||
wizard/owncloudadvancedsetuppage.cpp
|
||||
wizard/owncloudconnectionmethoddialog.cpp
|
||||
wizard/owncloudhttpcredspage.cpp
|
||||
wizard/owncloudsetuppage.cpp
|
||||
wizard/owncloudshibbolethcredspage.cpp
|
||||
wizard/owncloudwizardcommon.cpp
|
||||
wizard/owncloudwizard.cpp
|
||||
wizard/owncloudwizardresultpage.cpp
|
||||
../3rdparty/qjson/json.cpp
|
||||
)
|
||||
|
||||
IF(NOT NO_SHIBBOLETH)
|
||||
list(APPEND client_SRCS
|
||||
creds/shibbolethcredentials.cpp
|
||||
creds/shibboleth/shibbolethwebview.cpp
|
||||
creds/shibboleth/shibbolethuserjob.cpp
|
||||
wizard/owncloudshibbolethcredspage.cpp
|
||||
)
|
||||
endif()
|
||||
|
||||
set(updater_SRCS
|
||||
updater/ocupdater.cpp
|
||||
@@ -236,9 +233,6 @@ set(ownCloud ${ownCloud_old})
|
||||
if (WITH_DBUS)
|
||||
set(ADDITIONAL_APP_MODULES DBus)
|
||||
endif(WITH_DBUS)
|
||||
if (NOT NO_SHIBBOLETH)
|
||||
list(APPEND ADDITIONAL_APP_MODULES WebKitWidgets)
|
||||
endif()
|
||||
|
||||
if(NOT BUILD_OWNCLOUD_OSX_BUNDLE)
|
||||
|
||||
@@ -257,14 +251,14 @@ if(NOT BUILD_OWNCLOUD_OSX_BUNDLE)
|
||||
|
||||
# add_executable( ${APPLICATION_EXECUTABLE} main.cpp ${final_src})
|
||||
add_executable( ${APPLICATION_EXECUTABLE} WIN32 main.cpp ${final_src})
|
||||
qt5_use_modules(${APPLICATION_EXECUTABLE} Widgets Network Xml Sql ${ADDITIONAL_APP_MODULES})
|
||||
qt5_use_modules(${APPLICATION_EXECUTABLE} Widgets Network Xml WebKitWidgets Sql ${ADDITIONAL_APP_MODULES})
|
||||
else()
|
||||
# set(CMAKE_INSTALL_PREFIX ".") # Examples use /Applications. hurmpf.
|
||||
set(MACOSX_BUNDLE_ICON_FILE "ownCloud.icns")
|
||||
|
||||
# we must add MACOSX_BUNDLE only if building a bundle
|
||||
add_executable( ${APPLICATION_EXECUTABLE} WIN32 MACOSX_BUNDLE main.cpp ${final_src})
|
||||
qt5_use_modules(${APPLICATION_EXECUTABLE} Widgets Network Xml Sql ${ADDITIONAL_APP_MODULES})
|
||||
qt5_use_modules(${APPLICATION_EXECUTABLE} Widgets Network Xml WebKitWidgets Sql ${ADDITIONAL_APP_MODULES})
|
||||
|
||||
set (QM_DIR ${OWNCLOUD_OSX_BUNDLE}/Contents/Resources/Translations)
|
||||
install(FILES ${client_I18N} DESTINATION ${QM_DIR})
|
||||
|
||||
@@ -117,10 +117,6 @@ AccountSettings::AccountSettings(AccountState *accountState, QWidget *parent) :
|
||||
|
||||
connect(ui->selectiveSyncApply, SIGNAL(clicked()), _model, SLOT(slotApplySelectiveSync()));
|
||||
connect(ui->selectiveSyncCancel, SIGNAL(clicked()), _model, SLOT(resetFolders()));
|
||||
connect(ui->bigFolderApply, SIGNAL(clicked(bool)), _model, SLOT(slotApplySelectiveSync()));
|
||||
connect(ui->bigFolderSyncAll, SIGNAL(clicked(bool)), _model, SLOT(slotSyncAllPendingBigFolders()));
|
||||
connect(ui->bigFolderSyncNone, SIGNAL(clicked(bool)), _model, SLOT(slotSyncNoPendingBigFolders()));
|
||||
|
||||
connect(FolderMan::instance(), SIGNAL(folderListChanged(Folder::Map)), _model, SLOT(resetFolders()));
|
||||
connect(this, SIGNAL(folderChanged()), _model, SLOT(resetFolders()));
|
||||
|
||||
@@ -639,13 +635,12 @@ void AccountSettings::refreshSelectiveSyncStatus()
|
||||
}
|
||||
|
||||
if (msg.isEmpty()) {
|
||||
ui->selectiveSyncButtons->setVisible(true);
|
||||
ui->bigFolderUi->setVisible(false);
|
||||
ui->selectiveSyncNotification->setVisible(false);
|
||||
ui->selectiveSyncNotification->setText(QString());
|
||||
} else {
|
||||
ui->selectiveSyncNotification->setVisible(true);
|
||||
QString wholeMsg = tr("There are new folders that were not synchronized because they are too big: ") + msg;
|
||||
ui->selectiveSyncNotification->setText(wholeMsg);
|
||||
ui->selectiveSyncButtons->setVisible(false);
|
||||
ui->bigFolderUi->setVisible(true);
|
||||
shouldBeVisible = true;
|
||||
}
|
||||
|
||||
|
||||
@@ -154,105 +154,44 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QWidget" name="bigFolderUi" native="true">
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QLabel" name="selectiveSyncNotification">
|
||||
<property name="styleSheet">
|
||||
<string notr="true">color: red</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<item>
|
||||
<widget class="QPushButton" name="bigFolderSyncAll">
|
||||
<property name="text">
|
||||
<string>Synchronize all</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="bigFolderSyncNone">
|
||||
<property name="text">
|
||||
<string>Synchronize none</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="bigFolderApply">
|
||||
<property name="text">
|
||||
<string>Apply manual changes</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
<widget class="QLabel" name="selectiveSyncNotification">
|
||||
<property name="styleSheet">
|
||||
<string notr="true">color: red</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QWidget" name="selectiveSyncButtons" native="true">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QPushButton" name="selectiveSyncCancel">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Maximum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Cancel</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="selectiveSyncApply">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Maximum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Apply</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
<widget class="QPushButton" name="selectiveSyncCancel">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Maximum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Cancel</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="selectiveSyncApply">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Maximum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Apply</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
|
||||
@@ -15,10 +15,45 @@
|
||||
|
||||
#include "activitydata.h"
|
||||
|
||||
|
||||
namespace OCC
|
||||
{
|
||||
|
||||
ActivityFile::ActivityFile()
|
||||
:_type(Unknown)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
ActivityFile::ActivityFile( const QString& file )
|
||||
:_relFileName(file),
|
||||
_type(File)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void ActivityFile::setType( FileType type )
|
||||
{
|
||||
_type = type;
|
||||
}
|
||||
|
||||
QString ActivityFile::relativePath() const
|
||||
{
|
||||
return _relFileName;
|
||||
}
|
||||
|
||||
QString ActivityFile::fullPath( const QString _accountName ) const
|
||||
{
|
||||
QString fullPath(_relFileName);
|
||||
// FIXME: get the account and prepend the base path.
|
||||
|
||||
if( _type == Directory && !fullPath.endsWith('/')) {
|
||||
fullPath.append('/');
|
||||
}
|
||||
return fullPath;
|
||||
}
|
||||
|
||||
/* ==================================================================== */
|
||||
|
||||
bool operator<( const Activity& rhs, const Activity& lhs ) {
|
||||
return rhs._dateTime.toMSecsSinceEpoch() > lhs._dateTime.toMSecsSinceEpoch();
|
||||
}
|
||||
@@ -31,5 +66,39 @@ Activity::Identifier Activity::ident() const {
|
||||
return Identifier( _id, _accName );
|
||||
}
|
||||
|
||||
void Activity::addFile( const QString& file )
|
||||
{
|
||||
ActivityFile f(file);
|
||||
_files.append(f);
|
||||
}
|
||||
|
||||
void Activity::addDirectory( const QString& dir )
|
||||
{
|
||||
ActivityFile f(dir);
|
||||
f.setType(ActivityFile::Directory);
|
||||
_files.append(f);
|
||||
}
|
||||
|
||||
QVector<ActivityFile> Activity::files()
|
||||
{
|
||||
return _files;
|
||||
}
|
||||
|
||||
|
||||
/* ==================================================================== */
|
||||
|
||||
ActivityList::ActivityList()
|
||||
{
|
||||
}
|
||||
|
||||
void ActivityList::setAccountState(AccountState *ast)
|
||||
{
|
||||
_ast = ast;
|
||||
}
|
||||
|
||||
AccountState* ActivityList::accountState()
|
||||
{
|
||||
return _ast;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
|
||||
#include <QtCore>
|
||||
|
||||
#include "accountstate.h"
|
||||
|
||||
namespace OCC {
|
||||
/**
|
||||
* @brief The ActivityLink class describes actions of an activity
|
||||
@@ -33,6 +35,32 @@ public:
|
||||
};
|
||||
|
||||
/* ==================================================================== */
|
||||
|
||||
/**
|
||||
* @brief ActivityFile Structure
|
||||
* @ingroup gui
|
||||
*
|
||||
* contains information about a file of an activity.
|
||||
* Can handle the thumbnail and stuff later.
|
||||
*/
|
||||
class ActivityFile
|
||||
{
|
||||
public:
|
||||
enum FileType {Unknown, File, Directory};
|
||||
explicit ActivityFile();
|
||||
explicit ActivityFile( const QString& file );
|
||||
|
||||
void setType( FileType type );
|
||||
QString relativePath() const;
|
||||
QString fullPath( const QString _accountName ) const;
|
||||
|
||||
private:
|
||||
QString _relFileName;
|
||||
FileType _type;
|
||||
};
|
||||
|
||||
/* ==================================================================== */
|
||||
|
||||
/**
|
||||
* @brief Activity Structure
|
||||
* @ingroup gui
|
||||
@@ -50,6 +78,11 @@ public:
|
||||
NotificationType
|
||||
};
|
||||
|
||||
void addFile( const QString& file );
|
||||
void addDirectory( const QString& dir );
|
||||
|
||||
QVector<ActivityFile> files();
|
||||
|
||||
Type _type;
|
||||
qlonglong _id;
|
||||
QString _subject;
|
||||
@@ -68,6 +101,10 @@ public:
|
||||
|
||||
|
||||
Identifier ident() const;
|
||||
|
||||
private:
|
||||
|
||||
QVector<ActivityFile> _files;
|
||||
};
|
||||
|
||||
bool operator==( const Activity& rhs, const Activity& lhs );
|
||||
@@ -81,8 +118,22 @@ bool operator<( const Activity& rhs, const Activity& lhs );
|
||||
* A QList based list of Activities
|
||||
*/
|
||||
|
||||
typedef QList<Activity> ActivityList;
|
||||
/**
|
||||
* @brief The ActivityList
|
||||
* @ingroup gui
|
||||
*
|
||||
* A QList based list of Activities
|
||||
*/
|
||||
class ActivityList:public QList<Activity>
|
||||
{
|
||||
public:
|
||||
ActivityList();
|
||||
void setAccountState(AccountState *ast);
|
||||
AccountState* accountState();
|
||||
|
||||
private:
|
||||
AccountState *_ast;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,245 @@
|
||||
/*
|
||||
* Copyright (C) by Klaas Freitag <freitag@owncloud.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; version 2 of the License.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* for more details.
|
||||
*/
|
||||
|
||||
#include "activityfetcher.h"
|
||||
#include "activitydata.h"
|
||||
#include "account.h"
|
||||
#include "accountstate.h"
|
||||
#include "json.h"
|
||||
#include "networkjobs.h"
|
||||
|
||||
namespace OCC {
|
||||
|
||||
ActivityFetcher::ActivityFetcher(QObject *parent) : QObject(parent)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void ActivityFetcher::slotFetch(AccountState* s)
|
||||
{
|
||||
if( !(s && s->isConnected() )) {
|
||||
return;
|
||||
}
|
||||
JsonApiJob *job = new JsonApiJob(s->account(), QLatin1String("ocs/v1.php/cloud/activity"), this);
|
||||
QObject::connect(job, SIGNAL(jsonReceived(QVariantMap, int)),
|
||||
this, SLOT(slotActivitiesReceived(QVariantMap, int)));
|
||||
job->setProperty("AccountStatePtr", QVariant::fromValue<AccountState*>(s));
|
||||
|
||||
QList< QPair<QString,QString> > params;
|
||||
params.append(qMakePair(QString::fromLatin1("page"), QString::fromLatin1("0")));
|
||||
params.append(qMakePair(QString::fromLatin1("pagesize"), QString::fromLatin1("100")));
|
||||
job->addQueryParams(params);
|
||||
|
||||
qDebug() << "Start fetching activities for " << s->account()->displayName();
|
||||
job->start();
|
||||
|
||||
}
|
||||
|
||||
void ActivityFetcher::slotActivitiesReceived(const QVariantMap& json, int statusCode)
|
||||
{
|
||||
auto activities = json.value("ocs").toMap().value("data").toList();
|
||||
qDebug() << "*** activities" << activities;
|
||||
|
||||
ActivityList list;
|
||||
AccountState* ai = qvariant_cast<AccountState*>(sender()->property("AccountStatePtr"));
|
||||
list.setAccountState( ai );
|
||||
|
||||
foreach( auto activ, activities ) {
|
||||
auto json = activ.toMap();
|
||||
|
||||
Activity a;
|
||||
a._accName = ai->account()->displayName();
|
||||
a._id = json.value("id").toLongLong();
|
||||
a._subject = json.value("subject").toString();
|
||||
a._message = json.value("message").toString();
|
||||
const QString f = json.value("file").toString();
|
||||
a.addFile(f);
|
||||
a._link = json.value("link").toUrl();
|
||||
a._dateTime = json.value("date").toDateTime();
|
||||
list.append(a);
|
||||
}
|
||||
// activity app is not enabled, signalling.
|
||||
if( statusCode == 999 ) {
|
||||
emit accountWithoutActivityApp(ai);
|
||||
}
|
||||
|
||||
emit newActivityList(list);
|
||||
}
|
||||
|
||||
/* ==================================================================== */
|
||||
|
||||
ActivityFetcherV2::ActivityFetcherV2()
|
||||
: ActivityFetcher()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
ActivityList ActivityFetcherV2::fetchFromDb( const QString& accountId )
|
||||
{
|
||||
// TODO fetch from database
|
||||
ActivityList dbActivities;
|
||||
|
||||
return dbActivities;
|
||||
}
|
||||
|
||||
int ActivityFetcherV2::lastSeenId()
|
||||
{
|
||||
int lastId = 0;
|
||||
|
||||
return lastId;
|
||||
}
|
||||
|
||||
void ActivityFetcherV2::slotFetch(AccountState* s)
|
||||
{
|
||||
if( !(s && s->isConnected() )) {
|
||||
return;
|
||||
}
|
||||
|
||||
JsonApiJob *job = new JsonApiJob(s->account(), QLatin1String("ocs/v2.php/apps/activity/api/v2/activity"), this);
|
||||
QObject::connect(job, SIGNAL(jsonReceived(QVariantMap, int)),
|
||||
this, SLOT(slotActivitiesReceived(QVariantMap, int)));
|
||||
job->setProperty("AccountStatePtr", QVariant::fromValue<AccountState*>(s));
|
||||
|
||||
QList< QPair<QString,QString> > params;
|
||||
|
||||
int lastId = lastSeenId();
|
||||
if( lastId > 0 ) {
|
||||
params.append(qMakePair(QString::fromLatin1("since"), QString::number(lastId)));
|
||||
job->addQueryParams(params);
|
||||
}
|
||||
qDebug() << "Start fetching V2 activities for " << s->account()->displayName();
|
||||
job->start();
|
||||
}
|
||||
|
||||
#define QL1(X) QLatin1String(X)
|
||||
|
||||
bool ActivityFetcherV2::parseActionString( Activity *activity, const QString& subject, const QVariantList& params)
|
||||
{
|
||||
// the action contains a string describing what happened
|
||||
bool re = true;
|
||||
|
||||
if( subject == QL1("shared_user_self") ) {
|
||||
|
||||
} else if( subject == QL1("reshared_user_by") ) {
|
||||
|
||||
} else if( subject == QL1("shared_group_self") ) {
|
||||
|
||||
} else if( subject == QL1("reshared_group_by") ) {
|
||||
|
||||
} else if( subject == QL1("reshared_link_by") ) {
|
||||
|
||||
} else if( subject == QL1("shared_user_self") ) {
|
||||
|
||||
} else if( subject == QL1("created_self") ) {
|
||||
|
||||
} else if( subject == QL1("created_by") ) {
|
||||
|
||||
} else if( subject == QL1("created_public") ) {
|
||||
|
||||
} else if( subject == QL1("changed_self") ) {
|
||||
|
||||
} else if( subject == QL1("changed_by") ) {
|
||||
|
||||
} else if( subject == QL1("deleted_self") ) {
|
||||
|
||||
} else if( subject == QL1("deleted_by") ) {
|
||||
|
||||
} else if( subject == QL1("restored_self") ) {
|
||||
|
||||
} else if( subject == QL1("restored_by") ) {
|
||||
|
||||
} else {
|
||||
// unknown action.
|
||||
re = false;
|
||||
}
|
||||
|
||||
// parse the params
|
||||
foreach( QVariant v, params ) {
|
||||
QVariantMap vm = v.toMap();
|
||||
|
||||
if( vm.contains("type") ) {
|
||||
const QString type = vm.value("type").toString();
|
||||
const QString val = vm.value("value").toString();
|
||||
|
||||
if( type == QL1("collection") ) {
|
||||
QVariantList items = vm.value("value").toList();
|
||||
|
||||
foreach( QVariant vFile, items ) {
|
||||
QVariantMap vMap = vFile.toMap();
|
||||
const QString fileType = vMap.value("type").toString();
|
||||
const QString relFileName = vMap.value("value").toString();
|
||||
|
||||
if( fileType != QL1("file")) {
|
||||
activity->addDirectory(relFileName);
|
||||
} else {
|
||||
activity->addFile(relFileName);
|
||||
}
|
||||
}
|
||||
} else if( type == QL1("file")) {
|
||||
const QString relFileName = val;
|
||||
activity->addFile(relFileName);
|
||||
} else if( type == QL1("dir")) {
|
||||
const QString relFileName = val;
|
||||
activity->addDirectory(relFileName);
|
||||
// needs verification!
|
||||
} else if( type == QL1("username")) {
|
||||
const QString user = val;
|
||||
} else if( type == QL1("typeicon")) {
|
||||
const QString icon = val;
|
||||
} else {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
return re;
|
||||
}
|
||||
|
||||
void ActivityFetcherV2::slotActivitiesReceived(const QVariantMap& json, int statusCode)
|
||||
{
|
||||
auto activities = json.value("ocs").toMap().value("data").toList();
|
||||
qDebug() << "*** activities" << activities;
|
||||
|
||||
AccountState* ai = qvariant_cast<AccountState*>(sender()->property("AccountStatePtr"));
|
||||
ActivityList list;
|
||||
|
||||
if( ai ) {
|
||||
list = fetchFromDb(ai->account()->id());
|
||||
list.setAccountState( ai );
|
||||
|
||||
foreach( auto activ, activities ) {
|
||||
auto json = activ.toMap();
|
||||
|
||||
Activity a;
|
||||
a._accName = ai->account()->displayName();
|
||||
a._id = json.value("activity_id").toLongLong();
|
||||
QString subject = json.value("subject").toString();
|
||||
QVariantList subjectParams = json.value("subjectparams").toList();
|
||||
bool knownAction = parseActionString( &a, subject, subjectParams );
|
||||
|
||||
a._subject = json.value("subject").toString();
|
||||
|
||||
a._message = json.value("message_prepared").toString();
|
||||
// a._file = json.value("file").toString();
|
||||
// a._link = json.value("link").toUrl();
|
||||
a._dateTime = json.value("datetime").toDateTime();
|
||||
list.append(a);
|
||||
}
|
||||
// activity app is not enabled, signalling.
|
||||
if( statusCode == 999 ) {
|
||||
emit accountWithoutActivityApp(ai);
|
||||
}
|
||||
}
|
||||
emit newActivityList(list);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,79 @@
|
||||
/*
|
||||
* Copyright (C) by Klaas Freitag <freitag@owncloud.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; version 2 of the License.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* for more details.
|
||||
*/
|
||||
|
||||
#ifndef ACTIVITYFETCHER_H
|
||||
#define ACTIVITYFETCHER_H
|
||||
|
||||
#include <QtCore>
|
||||
|
||||
#include "activitydata.h"
|
||||
#include "accountstate.h"
|
||||
|
||||
/**
|
||||
* @brief The ActivityFetcher class
|
||||
*
|
||||
* Used to fetch the list of server acitivities from the server. Accesses
|
||||
* the old ocs based API.
|
||||
*/
|
||||
|
||||
namespace OCC {
|
||||
|
||||
class ActivityFetcher : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit ActivityFetcher(QObject *parent = 0);
|
||||
|
||||
public slots:
|
||||
virtual void slotFetch(AccountState* s);
|
||||
|
||||
private slots:
|
||||
virtual void slotActivitiesReceived(const QVariantMap& json, int statusCode);
|
||||
|
||||
signals:
|
||||
void newActivityList( ActivityList list );
|
||||
void accountWithoutActivityApp(AccountState*);
|
||||
|
||||
};
|
||||
|
||||
/* ==================================================================== */
|
||||
|
||||
/**
|
||||
* @brief The ActivityFetcherV2 class
|
||||
*
|
||||
* To be used with the next version of the activity API. By now, it is
|
||||
* completely unused.
|
||||
*/
|
||||
|
||||
class ActivityFetcherV2 : public ActivityFetcher
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit ActivityFetcherV2();
|
||||
|
||||
public slots:
|
||||
virtual void slotFetch(AccountState* s);
|
||||
|
||||
private slots:
|
||||
virtual void slotActivitiesReceived(const QVariantMap& json, int statusCode);
|
||||
|
||||
private:
|
||||
bool parseActionString( Activity *activity, const QString& subject, const QVariantList& params);
|
||||
ActivityList fetchFromDb(const QString &accountId );
|
||||
int lastSeenId();
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif // ACTIVITYFETCHER_H
|
||||
+132
-75
@@ -26,10 +26,35 @@
|
||||
#include "activitydata.h"
|
||||
#include "activitylistmodel.h"
|
||||
|
||||
#define FETCH_ACTIVITIES_AMOUNT 1000
|
||||
|
||||
namespace OCC {
|
||||
|
||||
/* ==================================================================== */
|
||||
ActivitySortProxyModel::ActivitySortProxyModel(QObject *parent)
|
||||
:QSortFilterProxyModel(parent)
|
||||
{
|
||||
setFilterRole(ActivityItemDelegate::ActionTextRole);
|
||||
}
|
||||
|
||||
bool ActivitySortProxyModel::lessThan(const QModelIndex &left, const QModelIndex &right) const
|
||||
{
|
||||
QVariant leftData = sourceModel()->data(left);
|
||||
QVariant rightData = sourceModel()->data(right);
|
||||
|
||||
if (leftData.type() == QVariant::DateTime) {
|
||||
return leftData.toDateTime() < rightData.toDateTime();
|
||||
} else {
|
||||
qDebug() << "OOOOO " << endl;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/* ==================================================================== */
|
||||
|
||||
ActivityListModel::ActivityListModel(QWidget *parent)
|
||||
:QAbstractListModel(parent)
|
||||
:QAbstractListModel(parent),
|
||||
_fetchEntriesAmount(FETCH_ACTIVITIES_AMOUNT)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -40,7 +65,8 @@ QVariant ActivityListModel::data(const QModelIndex &index, int role) const
|
||||
if (!index.isValid())
|
||||
return QVariant();
|
||||
|
||||
a = _finalList.at(index.row());
|
||||
a = findItem(index.row());
|
||||
|
||||
AccountStatePtr ast = AccountManager::instance()->account(a._accName);
|
||||
QStringList list;
|
||||
|
||||
@@ -89,47 +115,48 @@ QVariant ActivityListModel::data(const QModelIndex &index, int role) const
|
||||
|
||||
int ActivityListModel::rowCount(const QModelIndex&) const
|
||||
{
|
||||
return _finalList.count();
|
||||
}
|
||||
int cnt = 0;
|
||||
|
||||
// current strategy: Fetch 100 items per Account
|
||||
// ATTENTION: This method is const and thus it is not possible to modify
|
||||
// the _activityLists hash or so. Doesn't make it easier...
|
||||
bool ActivityListModel::canFetchMore(const QModelIndex& ) const
|
||||
{
|
||||
if( _activityLists.count() == 0 ) return true;
|
||||
|
||||
for(auto i = _activityLists.begin() ; i != _activityLists.end(); ++i) {
|
||||
AccountState *ast = i.key();
|
||||
if( ast && ast->isConnected() ) {
|
||||
ActivityList activities = i.value();
|
||||
if( activities.count() == 0 &&
|
||||
! _currentlyFetching.contains(ast) ) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
foreach( ActivityList al, _activityLists) {
|
||||
cnt += al.count();
|
||||
}
|
||||
|
||||
return false;
|
||||
return cnt;
|
||||
}
|
||||
|
||||
void ActivityListModel::startFetchJob(AccountState* s)
|
||||
void ActivityListModel::startFetchJob(AccountState* ast)
|
||||
{
|
||||
if( !s->isConnected() ) {
|
||||
if( !ast->isConnected() || _currentlyFetching.contains(ast)) {
|
||||
return;
|
||||
}
|
||||
JsonApiJob *job = new JsonApiJob(s->account(), QLatin1String("ocs/v1.php/cloud/activity"), this);
|
||||
|
||||
int activityListIndx = activityListIndxForAccountState(ast);
|
||||
ActivityList activityList = _activityLists.at(activityListIndx);
|
||||
|
||||
// remove entries that might exist in this list.
|
||||
int startItem = 0;
|
||||
for( int i = 0; i < activityListIndx; i++ ) {
|
||||
ActivityList al = _activityLists.at(i);
|
||||
startItem += al.count();
|
||||
}
|
||||
|
||||
beginRemoveRows(QModelIndex(), startItem, activityList.count() );
|
||||
activityList.clear();
|
||||
endRemoveRows();
|
||||
|
||||
_activityLists[activityListIndx] = activityList;
|
||||
|
||||
// start a new fetch job.
|
||||
JsonApiJob *job = new JsonApiJob(ast->account(), QLatin1String("ocs/v1.php/cloud/activity"), this);
|
||||
QObject::connect(job, SIGNAL(jsonReceived(QVariantMap, int)),
|
||||
this, SLOT(slotActivitiesReceived(QVariantMap, int)));
|
||||
job->setProperty("AccountStatePtr", QVariant::fromValue<AccountState*>(s));
|
||||
|
||||
job->setProperty("AccountStatePtr", QVariant::fromValue<AccountState*>(ast));
|
||||
QList< QPair<QString,QString> > params;
|
||||
params.append(qMakePair(QString::fromLatin1("page"), QString::fromLatin1("0")));
|
||||
params.append(qMakePair(QString::fromLatin1("pagesize"), QString::fromLatin1("100")));
|
||||
params.append(qMakePair(QString::fromLatin1("start"), QLatin1String("0")));
|
||||
params.append(qMakePair(QString::fromLatin1("count"), QString::number(_fetchEntriesAmount)));
|
||||
job->addQueryParams(params);
|
||||
|
||||
_currentlyFetching.insert(s);
|
||||
qDebug() << Q_FUNC_INFO << "Start fetching activities for " << s->account()->displayName();
|
||||
_currentlyFetching.insert(ast);
|
||||
qDebug() << Q_FUNC_INFO << "Start fetching activities for " << ast->account()->displayName();
|
||||
job->start();
|
||||
}
|
||||
|
||||
@@ -137,12 +164,14 @@ void ActivityListModel::slotActivitiesReceived(const QVariantMap& json, int stat
|
||||
{
|
||||
auto activities = json.value("ocs").toMap().value("data").toList();
|
||||
|
||||
ActivityList list;
|
||||
AccountState* ast = qvariant_cast<AccountState*>(sender()->property("AccountStatePtr"));
|
||||
|
||||
_currentlyFetching.remove(ast);
|
||||
|
||||
foreach( auto activ, activities ) {
|
||||
auto json = activ.toMap();
|
||||
// Read the new entries into a temporary list
|
||||
ActivityList list;
|
||||
foreach( auto activity, activities ) {
|
||||
auto json = activity.toMap();
|
||||
|
||||
Activity a;
|
||||
a._type = Activity::ActivityType;
|
||||
@@ -156,73 +185,101 @@ void ActivityListModel::slotActivitiesReceived(const QVariantMap& json, int stat
|
||||
list.append(a);
|
||||
}
|
||||
|
||||
_activityLists[ast] = list;
|
||||
|
||||
emit activityJobStatusCode(ast, statusCode);
|
||||
|
||||
combineActivityLists();
|
||||
addNewActivities(ast, list);
|
||||
}
|
||||
|
||||
|
||||
void ActivityListModel::combineActivityLists()
|
||||
void ActivityListModel::addNewActivities(AccountState* ast, const ActivityList& newItemsList)
|
||||
{
|
||||
ActivityList resultList;
|
||||
int startItem = 0; // the start number of items to delete in the virtual overall list
|
||||
int activityListIndx = activityListIndxForAccountState(ast);
|
||||
Q_ASSERT(activityListIndx != -1);
|
||||
|
||||
foreach( ActivityList list, _activityLists.values() ) {
|
||||
resultList.append(list);
|
||||
ActivityList accountList = _activityLists.at(activityListIndx);
|
||||
|
||||
for( int i = 0; i < activityListIndx; i++ ) {
|
||||
ActivityList li = _activityLists.at(i);
|
||||
startItem += li.count();
|
||||
}
|
||||
|
||||
std::sort( resultList.begin(), resultList.end() );
|
||||
|
||||
beginResetModel();
|
||||
_finalList.clear();
|
||||
endResetModel();
|
||||
|
||||
beginInsertRows(QModelIndex(), 0, resultList.count());
|
||||
_finalList = resultList;
|
||||
// insert the new list
|
||||
beginInsertRows(QModelIndex(), startItem, newItemsList.count() );
|
||||
accountList.append(newItemsList);
|
||||
endInsertRows();
|
||||
|
||||
_activityLists[activityListIndx] = accountList;
|
||||
}
|
||||
|
||||
void ActivityListModel::fetchMore(const QModelIndex &)
|
||||
int ActivityListModel::activityListIndxForAccountState(AccountState *ast)
|
||||
{
|
||||
QList<AccountStatePtr> accounts = AccountManager::instance()->accounts();
|
||||
int i;
|
||||
|
||||
foreach (const AccountStatePtr& asp, accounts) {
|
||||
|
||||
if( !_activityLists.contains(asp.data()) && asp->isConnected() ) {
|
||||
_activityLists[asp.data()] = ActivityList();
|
||||
startFetchJob(asp.data());
|
||||
}
|
||||
for( i = 0; i < _activityLists.count(); i++ ) {
|
||||
ActivityList li = _activityLists.at(i);
|
||||
if( li.accountState() == ast )
|
||||
return i;
|
||||
}
|
||||
// if the AccountState was not found yet, add it to the list
|
||||
if( i == _activityLists.count() ) {
|
||||
ActivityList li;
|
||||
li.setAccountState(ast);
|
||||
_activityLists.append(li);
|
||||
}
|
||||
return i;
|
||||
}
|
||||
|
||||
void ActivityListModel::slotRefreshActivity(AccountState *ast)
|
||||
{
|
||||
if(ast && _activityLists.contains(ast)) {
|
||||
_activityLists.remove(ast);
|
||||
if(ast ) {
|
||||
qDebug() << "**** Refreshing Activity list for" << ast->account()->displayName();
|
||||
startFetchJob(ast);
|
||||
}
|
||||
startFetchJob(ast);
|
||||
}
|
||||
|
||||
void ActivityListModel::slotRemoveAccount(AccountState *ast )
|
||||
{
|
||||
if( _activityLists.contains(ast) ) {
|
||||
int i = 0;
|
||||
const QString accountToRemove = ast->account()->displayName();
|
||||
int removeIndx = activityListIndxForAccountState(ast);
|
||||
|
||||
QMutableListIterator<Activity> it(_finalList);
|
||||
|
||||
while (it.hasNext()) {
|
||||
Activity activity = it.next();
|
||||
if( activity._accName == accountToRemove ) {
|
||||
beginRemoveRows(QModelIndex(), i, i+1);
|
||||
it.remove();
|
||||
endRemoveRows();
|
||||
}
|
||||
}
|
||||
_activityLists.remove(ast);
|
||||
_currentlyFetching.remove(ast);
|
||||
int startRow = 0;
|
||||
for( int i = 0; i < removeIndx; i++) {
|
||||
ActivityList al = _activityLists.at(i);
|
||||
startRow += al.count();
|
||||
}
|
||||
|
||||
beginRemoveRows(QModelIndex(), startRow, startRow+_activityLists.at(removeIndx).count());
|
||||
_activityLists.removeAt(removeIndx);
|
||||
endRemoveRows();
|
||||
_currentlyFetching.remove(ast);
|
||||
}
|
||||
|
||||
// combine all activities into one big result list
|
||||
ActivityList ActivityListModel::activityList()
|
||||
{
|
||||
ActivityList all;
|
||||
int i;
|
||||
|
||||
for( i = 0; i < _activityLists.count(); i++) {
|
||||
ActivityList al = _activityLists.at(i);
|
||||
all.append(al);
|
||||
}
|
||||
return all;
|
||||
}
|
||||
|
||||
Activity ActivityListModel::findItem(int indx) const
|
||||
{
|
||||
Activity a;
|
||||
|
||||
foreach( ActivityList al, _activityLists ) {
|
||||
if( indx < al.count() ) {
|
||||
a = al.at(indx);
|
||||
break;
|
||||
}
|
||||
indx -= al.count();
|
||||
}
|
||||
|
||||
return a;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -17,10 +17,21 @@
|
||||
#include <QtCore>
|
||||
|
||||
#include "activitydata.h"
|
||||
#include "accountstate.h"
|
||||
|
||||
namespace OCC {
|
||||
|
||||
class AccountState;
|
||||
class ActivitySortProxyModel : public QSortFilterProxyModel
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
ActivitySortProxyModel(QObject *parent = 0);
|
||||
|
||||
protected:
|
||||
bool lessThan(const QModelIndex &left, const QModelIndex &right) const Q_DECL_OVERRIDE;
|
||||
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief The ActivityListModel
|
||||
@@ -38,10 +49,8 @@ public:
|
||||
QVariant data(const QModelIndex &index, int role) const Q_DECL_OVERRIDE;
|
||||
int rowCount(const QModelIndex& parent = QModelIndex()) const Q_DECL_OVERRIDE;
|
||||
|
||||
bool canFetchMore(const QModelIndex& ) const Q_DECL_OVERRIDE;
|
||||
void fetchMore(const QModelIndex&) Q_DECL_OVERRIDE;
|
||||
|
||||
ActivityList activityList() { return _finalList; }
|
||||
ActivityList activityList();
|
||||
Activity findItem(int indx) const;
|
||||
|
||||
public slots:
|
||||
void slotRefreshActivity(AccountState* ast);
|
||||
@@ -54,14 +63,16 @@ signals:
|
||||
void activityJobStatusCode(AccountState* ast, int statusCode);
|
||||
|
||||
private:
|
||||
void startFetchJob(AccountState* s);
|
||||
void addNewActivities(AccountState* ast, const ActivityList& newItemsList);
|
||||
void startFetchJob(AccountState *ast);
|
||||
void combineActivityLists();
|
||||
int activityListIndxForAccountState(AccountState *ast );
|
||||
|
||||
QMap<AccountState*, ActivityList> _activityLists;
|
||||
QList<ActivityList> _activityLists;
|
||||
ActivityList _finalList;
|
||||
QSet<AccountState*> _currentlyFetching;
|
||||
int _fetchEntriesAmount;
|
||||
};
|
||||
|
||||
|
||||
}
|
||||
#endif // ACTIVITYLISTMODEL_H
|
||||
|
||||
@@ -63,15 +63,19 @@ ActivityWidget::ActivityWidget(QWidget *parent) :
|
||||
_ui->_activityList->setMinimumWidth(400);
|
||||
#endif
|
||||
|
||||
_model = new ActivityListModel(this);
|
||||
_model = new ActivitySortProxyModel(this);
|
||||
ActivityListModel *rawModel = new ActivityListModel;
|
||||
_model->setSourceModel(rawModel);
|
||||
|
||||
ActivityItemDelegate *delegate = new ActivityItemDelegate;
|
||||
delegate->setParent(this);
|
||||
_ui->_activityList->setItemDelegate(delegate);
|
||||
_ui->_activityList->setAlternatingRowColors(true);
|
||||
_ui->_activityList->setModel(_model);
|
||||
|
||||
_ui->_notifyLabel->hide();
|
||||
_ui->_notifyScroll->hide();
|
||||
_ui->_filterEdit->setClearButtonEnabled(true);
|
||||
connect(_ui->_filterEdit, SIGNAL(textChanged(QString)),
|
||||
SLOT(slotFilterTextChanged(QString)));
|
||||
|
||||
// Create a widget container for the notifications. The ui file defines
|
||||
// a scroll area that get a widget with a layout as children
|
||||
@@ -79,12 +83,10 @@ ActivityWidget::ActivityWidget(QWidget *parent) :
|
||||
_notificationsLayout = new QVBoxLayout;
|
||||
w->setLayout(_notificationsLayout);
|
||||
_notificationsLayout->setAlignment(Qt::AlignTop);
|
||||
_ui->_notifyScroll->setAlignment(Qt::AlignTop);
|
||||
_ui->_notifyScroll->setWidget(w);
|
||||
|
||||
showLabels();
|
||||
|
||||
connect(_model, SIGNAL(activityJobStatusCode(AccountState*,int)),
|
||||
connect(rawModel, SIGNAL(activityJobStatusCode(AccountState*,int)),
|
||||
this, SLOT(slotAccountActivityStatus(AccountState*,int)));
|
||||
|
||||
_copyBtn = _ui->_dialogButtonBox->addButton(tr("Copy"), QDialogButtonBox::ActionRole);
|
||||
@@ -105,11 +107,17 @@ ActivityWidget::~ActivityWidget()
|
||||
delete _ui;
|
||||
}
|
||||
|
||||
void ActivityWidget::slotFilterTextChanged(const QString& exp)
|
||||
{
|
||||
_model->setFilterRegExp(QRegExp(exp, Qt::CaseInsensitive, QRegExp::RegExp));
|
||||
}
|
||||
|
||||
void ActivityWidget::slotRefreshActivities(AccountState *ptr)
|
||||
{
|
||||
_model->slotRefreshActivity(ptr);
|
||||
qobject_cast<ActivityListModel*>(_model->sourceModel())->slotRefreshActivity(ptr);
|
||||
}
|
||||
|
||||
|
||||
void ActivityWidget::slotRefreshNotifications(AccountState *ptr)
|
||||
{
|
||||
// start a server notification handler if no notification requests
|
||||
@@ -119,7 +127,7 @@ void ActivityWidget::slotRefreshNotifications(AccountState *ptr)
|
||||
connect(snh, SIGNAL(newNotificationList(ActivityList)), this,
|
||||
SLOT(slotBuildNotificationDisplay(ActivityList)));
|
||||
|
||||
snh->slotFetchNotifications(ptr);
|
||||
snh->fetchNotifications(ptr);
|
||||
} else {
|
||||
qDebug() << Q_FUNC_INFO << "========> notification request counter not zero.";
|
||||
}
|
||||
@@ -127,24 +135,20 @@ void ActivityWidget::slotRefreshNotifications(AccountState *ptr)
|
||||
|
||||
void ActivityWidget::slotRemoveAccount( AccountState *ptr )
|
||||
{
|
||||
_model->slotRemoveAccount(ptr);
|
||||
qobject_cast<ActivityListModel*>(_model->sourceModel())->slotRemoveAccount(ptr);
|
||||
}
|
||||
|
||||
void ActivityWidget::showLabels()
|
||||
{
|
||||
QString t = tr("Server Activities");
|
||||
_ui->_headerLabel->setTextFormat(Qt::RichText);
|
||||
_ui->_headerLabel->setText(t);
|
||||
QString t;
|
||||
|
||||
_ui->_notifyLabel->setText(tr("Action Required: Notifications"));
|
||||
|
||||
t.clear();
|
||||
QSetIterator<QString> i(_accountsWithoutActivities);
|
||||
while (i.hasNext() ) {
|
||||
t.append( tr("<br/>Account %1 does not have activities enabled.").arg(i.next()));
|
||||
}
|
||||
_ui->_bottomLabel->setTextFormat(Qt::RichText);
|
||||
_ui->_bottomLabel->setText(t);
|
||||
_ui->_bottomLabel->setVisible(!t.isEmpty());
|
||||
}
|
||||
|
||||
void ActivityWidget::slotAccountActivityStatus(AccountState *ast, int statusCode)
|
||||
@@ -174,7 +178,7 @@ QString ActivityWidget::timeString(QDateTime dt, QLocale::FormatType format) con
|
||||
|
||||
void ActivityWidget::storeActivityList( QTextStream& ts )
|
||||
{
|
||||
ActivityList activities = _model->activityList();
|
||||
ActivityList activities = qobject_cast<ActivityListModel*>(_model->sourceModel())->activityList();
|
||||
|
||||
foreach( Activity activity, activities ) {
|
||||
ts << right
|
||||
@@ -218,11 +222,9 @@ void ActivityWidget::checkActivityTabVisibility()
|
||||
_accountsWithoutActivities.count() != accountCount;
|
||||
bool hasNotifications = !_widgetForNotifId.isEmpty();
|
||||
|
||||
_ui->_headerLabel->setVisible( hasAccountsWithActivity );
|
||||
_ui->_filterLabel->setVisible( hasAccountsWithActivity );
|
||||
_ui->_activityList->setVisible( hasAccountsWithActivity );
|
||||
|
||||
_ui->_notifyLabel->setVisible( hasNotifications );
|
||||
_ui->_notifyScroll->setVisible( hasNotifications );
|
||||
_ui->_filterEdit->setVisible(hasAccountsWithActivity);
|
||||
|
||||
emit hideActivityTab(!hasAccountsWithActivity && !hasNotifications);
|
||||
}
|
||||
@@ -269,10 +271,6 @@ void ActivityWidget::slotBuildNotificationDisplay(const ActivityList& list)
|
||||
this, SLOT(slotRequestCleanupAndBlacklist(Activity)));
|
||||
|
||||
_notificationsLayout->addWidget(widget);
|
||||
// _ui->_notifyScroll->setMinimumHeight( widget->height());
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(5, 2, 0)
|
||||
_ui->_notifyScroll->setSizeAdjustPolicy(QAbstractScrollArea::AdjustToContentsOnFirstShow);
|
||||
#endif
|
||||
_widgetForNotifId[activity.ident()] = widget;
|
||||
newNotificationShown = true;
|
||||
}
|
||||
@@ -500,12 +498,6 @@ void ActivityWidget::slotCheckToCleanWidgets()
|
||||
if( _widgetsToRemove.isEmpty() ) {
|
||||
_removeTimer.stop();
|
||||
}
|
||||
|
||||
// check to see if the whole notification pane should be hidden
|
||||
if( _widgetForNotifId.isEmpty() ) {
|
||||
_ui->_notifyLabel->setHidden(true);
|
||||
_ui->_notifyScroll->setHidden(true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -42,6 +42,7 @@ namespace Ui {
|
||||
class ActivityWidget;
|
||||
}
|
||||
class Application;
|
||||
class ActivitySortProxyModel;
|
||||
|
||||
/**
|
||||
* @brief The ActivityWidget class
|
||||
@@ -84,6 +85,7 @@ signals:
|
||||
void newNotification();
|
||||
|
||||
private slots:
|
||||
void slotFilterTextChanged(const QString& exp);
|
||||
void slotBuildNotificationDisplay(const ActivityList& list);
|
||||
void slotSendNotificationRequest(const QString &accountName, const QString& link, const QByteArray &verb);
|
||||
void slotNotifyNetworkError( QNetworkReply* );
|
||||
@@ -111,7 +113,7 @@ private:
|
||||
// no query for notifications is started.
|
||||
int _notificationRequestsRunning;
|
||||
|
||||
ActivityListModel *_model;
|
||||
ActivitySortProxyModel *_model;
|
||||
QVBoxLayout *_notificationsLayout;
|
||||
|
||||
};
|
||||
|
||||
+39
-67
@@ -6,8 +6,8 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>693</width>
|
||||
<height>556</height>
|
||||
<width>690</width>
|
||||
<height>513</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
@@ -15,81 +15,53 @@
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="_notifyLabel">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>TextLabel</string>
|
||||
</property>
|
||||
</widget>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="_filterLabel">
|
||||
<property name="text">
|
||||
<string>&Filter</string>
|
||||
</property>
|
||||
<property name="buddy">
|
||||
<cstring>_filterEdit</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="_filterEdit">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>180</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QScrollArea" name="_notifyScroll">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="widgetResizable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
|
||||
</property>
|
||||
<widget class="QWidget" name="_scrollAreaWidgetContents">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>677</width>
|
||||
<height>70</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QListView" name="_activityList"/>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="_headerLabel">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<widget class="QLabel" name="_bottomLabel">
|
||||
<property name="text">
|
||||
<string>TextLabel</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QListView" name="_activityList">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<widget class="QLabel" name="_bottomLabel">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>TextLabel</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0">
|
||||
<widget class="QDialogButtonBox" name="_dialogButtonBox"/>
|
||||
</item>
|
||||
</layout>
|
||||
|
||||
@@ -16,9 +16,7 @@
|
||||
#include "creds/credentialsfactory.h"
|
||||
#include "creds/httpcredentialsgui.h"
|
||||
#include "creds/dummycredentials.h"
|
||||
#ifndef NO_SHIBBOLETH
|
||||
#include "creds/shibbolethcredentials.h"
|
||||
#endif
|
||||
|
||||
namespace OCC
|
||||
{
|
||||
@@ -33,10 +31,8 @@ AbstractCredentials* create(const QString& type)
|
||||
return new HttpCredentialsGui;
|
||||
} else if (type == "dummy") {
|
||||
return new DummyCredentials;
|
||||
#ifndef NO_SHIBBOLETH
|
||||
} else if (type == "shibboleth") {
|
||||
return new ShibbolethCredentials;
|
||||
#endif
|
||||
} else {
|
||||
qWarning("Unknown credentials type: %s", qPrintable(type));
|
||||
return new DummyCredentials;
|
||||
|
||||
@@ -123,13 +123,6 @@ Folder::~Folder()
|
||||
void Folder::checkLocalPath()
|
||||
{
|
||||
const QFileInfo fi(_definition.localPath);
|
||||
_canonicalLocalPath = fi.canonicalFilePath();
|
||||
if (_canonicalLocalPath.isEmpty()) {
|
||||
qDebug() << "Broken symlink:" << _definition.localPath;
|
||||
_canonicalLocalPath = _definition.localPath;
|
||||
} else if( !_canonicalLocalPath.endsWith('/') ) {
|
||||
_canonicalLocalPath.append('/');
|
||||
}
|
||||
|
||||
if( fi.isDir() && fi.isReadable() ) {
|
||||
qDebug() << "Checked local path ok";
|
||||
@@ -168,7 +161,11 @@ QString Folder::alias() const
|
||||
|
||||
QString Folder::path() const
|
||||
{
|
||||
return _canonicalLocalPath;
|
||||
QString p(_definition.localPath);
|
||||
if( ! p.endsWith('/') ) {
|
||||
p.append('/');
|
||||
}
|
||||
return p;
|
||||
}
|
||||
|
||||
QString Folder::shortGuiLocalPath() const
|
||||
@@ -201,7 +198,7 @@ void Folder::setIgnoreHiddenFiles(bool ignore)
|
||||
|
||||
QString Folder::cleanPath()
|
||||
{
|
||||
QString cleanedPath = QDir::cleanPath(_canonicalLocalPath);
|
||||
QString cleanedPath = QDir::cleanPath(_definition.localPath);
|
||||
|
||||
if(cleanedPath.length() == 3 && cleanedPath.endsWith(":/"))
|
||||
cleanedPath.remove(2,1);
|
||||
|
||||
@@ -288,7 +288,6 @@ private:
|
||||
|
||||
AccountStatePtr _accountState;
|
||||
FolderDefinition _definition;
|
||||
QString _canonicalLocalPath; // As returned with QFileInfo:canonicalFilePath. Always ends with "/"
|
||||
|
||||
SyncResult _syncResult;
|
||||
QScopedPointer<SyncEngine> _engine;
|
||||
|
||||
@@ -1046,77 +1046,6 @@ void FolderStatusModel::resetFolders()
|
||||
setAccountState(_accountState);
|
||||
}
|
||||
|
||||
void FolderStatusModel::slotSyncAllPendingBigFolders()
|
||||
{
|
||||
for (int i = 0; i < _folders.count(); ++i) {
|
||||
if (!_folders[i]._fetched) {
|
||||
_folders[i]._folder->journalDb()->setSelectiveSyncList(SyncJournalDb::SelectiveSyncUndecidedList, QStringList());
|
||||
continue;
|
||||
}
|
||||
auto folder = _folders.at(i)._folder;
|
||||
|
||||
bool ok;
|
||||
auto undecidedList = folder->journalDb()->getSelectiveSyncList(SyncJournalDb::SelectiveSyncUndecidedList, &ok);
|
||||
if( !ok ) {
|
||||
qDebug() << Q_FUNC_INFO << "Could not read selective sync list from db.";
|
||||
return;
|
||||
}
|
||||
|
||||
// If this folder had no undecided entries, skip it.
|
||||
if (undecidedList.isEmpty()) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// Remove all undecided folders from the blacklist
|
||||
auto blackList = folder->journalDb()->getSelectiveSyncList(SyncJournalDb::SelectiveSyncBlackList, &ok);
|
||||
if( !ok ) {
|
||||
qDebug() << Q_FUNC_INFO << "Could not read selective sync list from db.";
|
||||
return;
|
||||
}
|
||||
foreach (const auto& undecidedFolder, undecidedList) {
|
||||
blackList.removeAll(undecidedFolder);
|
||||
}
|
||||
folder->journalDb()->setSelectiveSyncList(SyncJournalDb::SelectiveSyncBlackList, blackList);
|
||||
|
||||
// Add all undecided folders to the white list
|
||||
auto whiteList = folder->journalDb()->getSelectiveSyncList(SyncJournalDb::SelectiveSyncWhiteList, &ok);
|
||||
if( !ok ) {
|
||||
qDebug() << Q_FUNC_INFO << "Could not read selective sync list from db.";
|
||||
return;
|
||||
}
|
||||
whiteList += undecidedList;
|
||||
folder->journalDb()->setSelectiveSyncList(SyncJournalDb::SelectiveSyncWhiteList, whiteList);
|
||||
|
||||
// Clear the undecided list
|
||||
folder->journalDb()->setSelectiveSyncList(SyncJournalDb::SelectiveSyncUndecidedList, QStringList());
|
||||
|
||||
// Trigger a sync
|
||||
if (folder->isBusy()) {
|
||||
folder->slotTerminateSync();
|
||||
}
|
||||
// The part that changed should not be read from the DB on next sync because there might be new folders
|
||||
// (the ones that are no longer in the blacklist)
|
||||
foreach (const auto &it, undecidedList) {
|
||||
folder->journalDb()->avoidReadFromDbOnNextSync(it);
|
||||
}
|
||||
FolderMan::instance()->slotScheduleSync(folder);
|
||||
}
|
||||
|
||||
resetFolders();
|
||||
}
|
||||
|
||||
void FolderStatusModel::slotSyncNoPendingBigFolders()
|
||||
{
|
||||
for (int i = 0; i < _folders.count(); ++i) {
|
||||
auto folder = _folders.at(i)._folder;
|
||||
|
||||
// clear the undecided list
|
||||
folder->journalDb()->setSelectiveSyncList(SyncJournalDb::SelectiveSyncUndecidedList, QStringList());
|
||||
}
|
||||
|
||||
resetFolders();
|
||||
}
|
||||
|
||||
void FolderStatusModel::slotNewBigFolder()
|
||||
{
|
||||
auto f = qobject_cast<Folder *>(sender());
|
||||
@@ -1147,14 +1076,11 @@ void FolderStatusModel::slotShowFetchProgress()
|
||||
auto idx = it.key();
|
||||
auto* info = infoForIndex(idx);
|
||||
if (info && info->_fetching) {
|
||||
bool add = !info->hasLabel();
|
||||
if (add) {
|
||||
if (!info->hasLabel()) {
|
||||
beginInsertRows(idx, 0, 0);
|
||||
}
|
||||
info->_fetchingLabel = true;
|
||||
if (add) {
|
||||
endInsertRows();
|
||||
}
|
||||
info->_fetchingLabel = true;
|
||||
}
|
||||
it.remove();
|
||||
}
|
||||
|
||||
@@ -107,8 +107,6 @@ public slots:
|
||||
void slotUpdateFolderState(Folder *);
|
||||
void slotApplySelectiveSync();
|
||||
void resetFolders();
|
||||
void slotSyncAllPendingBigFolders();
|
||||
void slotSyncNoPendingBigFolders();
|
||||
void slotSetProgress(const ProgressInfo &progress);
|
||||
|
||||
private slots:
|
||||
|
||||
@@ -15,7 +15,6 @@
|
||||
#include "filesystem.h"
|
||||
|
||||
#include <QTimer>
|
||||
#include <QDebug>
|
||||
|
||||
using namespace OCC;
|
||||
|
||||
@@ -31,7 +30,6 @@ LockWatcher::LockWatcher(QObject* parent)
|
||||
|
||||
void LockWatcher::addFile(const QString& path)
|
||||
{
|
||||
qDebug() << "Watching for lock of" << path << "being released";
|
||||
_watchedPaths.insert(path);
|
||||
}
|
||||
|
||||
@@ -41,7 +39,6 @@ void LockWatcher::checkFiles()
|
||||
|
||||
foreach (const QString& path, _watchedPaths) {
|
||||
if (!FileSystem::isFileLocked(path)) {
|
||||
qDebug() << "Lock of" << path << "was released";
|
||||
emit fileUnlocked(path);
|
||||
unlocked.insert(path);
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
#define OCSSHAREJOB_H
|
||||
|
||||
#include "ocsjob.h"
|
||||
#include "sharemanager.h"
|
||||
#include "share.h"
|
||||
#include <QVector>
|
||||
#include <QList>
|
||||
#include <QPair>
|
||||
|
||||
+56
-164
@@ -56,7 +56,6 @@ ownCloudGui::ownCloudGui(Application *parent) :
|
||||
_settingsDialog(new SettingsDialog(this)),
|
||||
#endif
|
||||
_logBrowser(0),
|
||||
_contextMenuVisibleOsx(false),
|
||||
_recentActionsMenu(0),
|
||||
_qdbusmenuWorkaround(false),
|
||||
_folderOpenActionMapper(new QSignalMapper(this)),
|
||||
@@ -93,9 +92,9 @@ ownCloudGui::ownCloudGui(Application *parent) :
|
||||
this,SLOT(slotSyncStateChange(Folder*)));
|
||||
|
||||
connect( AccountManager::instance(), SIGNAL(accountAdded(AccountState*)),
|
||||
SLOT(updateContextMenuNeeded()));
|
||||
SLOT(setupContextMenuIfVisible()));
|
||||
connect( AccountManager::instance(), SIGNAL(accountRemoved(AccountState*)),
|
||||
SLOT(updateContextMenuNeeded()));
|
||||
SLOT(setupContextMenuIfVisible()));
|
||||
|
||||
connect( Logger::instance(), SIGNAL(guiLog(QString,QString)),
|
||||
SLOT(slotShowTrayMessage(QString,QString)));
|
||||
@@ -194,7 +193,7 @@ void ownCloudGui::slotTrayClicked( QSystemTrayIcon::ActivationReason reason )
|
||||
void ownCloudGui::slotSyncStateChange( Folder* folder )
|
||||
{
|
||||
slotComputeOverallSyncStatus();
|
||||
updateContextMenuNeeded();
|
||||
setupContextMenuIfVisible();
|
||||
|
||||
if( !folder ) {
|
||||
return; // Valid, just a general GUI redraw was needed.
|
||||
@@ -216,7 +215,7 @@ void ownCloudGui::slotSyncStateChange( Folder* folder )
|
||||
void ownCloudGui::slotFoldersChanged()
|
||||
{
|
||||
slotComputeOverallSyncStatus();
|
||||
updateContextMenuNeeded();
|
||||
setupContextMenuIfVisible();
|
||||
}
|
||||
|
||||
void ownCloudGui::slotOpenPath(const QString &path)
|
||||
@@ -226,7 +225,7 @@ void ownCloudGui::slotOpenPath(const QString &path)
|
||||
|
||||
void ownCloudGui::slotAccountStateChanged()
|
||||
{
|
||||
updateContextMenuNeeded();
|
||||
setupContextMenuIfVisible();
|
||||
slotComputeOverallSyncStatus();
|
||||
}
|
||||
|
||||
@@ -400,154 +399,26 @@ void ownCloudGui::addAccountContextMenu(AccountStatePtr accountState, QMenu *men
|
||||
|
||||
}
|
||||
|
||||
void ownCloudGui::slotContextMenuAboutToShow()
|
||||
{
|
||||
// For some reason on OS X _contextMenu->isVisible returns always false
|
||||
qDebug() << "";
|
||||
_contextMenuVisibleOsx = true;
|
||||
}
|
||||
|
||||
void ownCloudGui::slotContextMenuAboutToHide()
|
||||
{
|
||||
// For some reason on OS X _contextMenu->isVisible returns always false
|
||||
qDebug() << "";
|
||||
_contextMenuVisibleOsx = false;
|
||||
}
|
||||
|
||||
bool ownCloudGui::contextMenuVisible() const
|
||||
{
|
||||
#ifdef Q_OS_MAC
|
||||
return _contextMenuVisibleOsx;
|
||||
#else
|
||||
return _contextMenu->isVisible();
|
||||
#endif
|
||||
}
|
||||
|
||||
static bool minimalTrayMenu()
|
||||
{
|
||||
static QByteArray var = qgetenv("OWNCLOUD_MINIMAL_TRAY_MENU");
|
||||
return !var.isEmpty();
|
||||
}
|
||||
|
||||
static bool updateWhileVisible()
|
||||
{
|
||||
static QByteArray var = qgetenv("OWNCLOUD_TRAY_UPDATE_WHILE_VISIBLE");
|
||||
if (var == "1") {
|
||||
return true;
|
||||
} else if (var == "0") {
|
||||
return false;
|
||||
} else {
|
||||
// triggers bug on OS X: https://bugreports.qt.io/browse/QTBUG-54845
|
||||
// or flickering on Xubuntu
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
static QByteArray forceQDBusTrayWorkaround()
|
||||
{
|
||||
static QByteArray var = qgetenv("OWNCLOUD_FORCE_QDBUS_TRAY_WORKAROUND");
|
||||
return var;
|
||||
}
|
||||
|
||||
void ownCloudGui::setupContextMenu()
|
||||
{
|
||||
if (_contextMenu) {
|
||||
return;
|
||||
}
|
||||
|
||||
_contextMenu.reset(new QMenu());
|
||||
_contextMenu->setTitle(Theme::instance()->appNameGUI() );
|
||||
|
||||
_recentActionsMenu = new QMenu(tr("Recent Changes"), _contextMenu.data());
|
||||
|
||||
// this must be called only once after creating the context menu, or
|
||||
// it will trigger a bug in Ubuntu's SNI bridge patch (11.10, 12.04).
|
||||
_tray->setContextMenu(_contextMenu.data());
|
||||
|
||||
// The tray menu is surprisingly problematic. Being able to switch to
|
||||
// a minimal version of it is a useful workaround and testing tool.
|
||||
if (minimalTrayMenu()) {
|
||||
_contextMenu->addAction(_actionQuit);
|
||||
if (!_contextMenu) {
|
||||
_contextMenu.reset(new QMenu());
|
||||
_recentActionsMenu = new QMenu(tr("Recent Changes"), _contextMenu.data());
|
||||
_tray->setContextMenu(_contextMenu.data());
|
||||
_contextMenu->addAction(_actionQuit);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
// Enables workarounds for bugs introduced in Qt 5.5.0
|
||||
// In particular QTBUG-47863 #3672 (tray menu fails to update and
|
||||
// becomes unresponsive) and QTBUG-48068 #3722 (click signal is
|
||||
// emitted several times)
|
||||
// The Qt version check intentionally uses 5.0.0 (where platformMenu()
|
||||
// was introduced) instead of 5.5.0 to avoid issues where the Qt
|
||||
// version used to build is different from the one used at runtime.
|
||||
// If we build with 5.6.1 or newer, we can skip this because the
|
||||
// bugs should be fixed there.
|
||||
#ifdef Q_OS_LINUX
|
||||
#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) && (QT_VERSION < QT_VERSION_CHECK(5, 6, 0))
|
||||
if (qVersion() == QByteArray("5.5.0")) {
|
||||
QObject* platformMenu = reinterpret_cast<QObject*>(_tray->contextMenu()->platformMenu());
|
||||
if (platformMenu
|
||||
&& platformMenu->metaObject()->className() == QLatin1String("QDBusPlatformMenu")) {
|
||||
_qdbusmenuWorkaround = true;
|
||||
qDebug() << "Enabled QDBusPlatformMenu workaround";
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
if (forceQDBusTrayWorkaround() == "1") {
|
||||
_qdbusmenuWorkaround = true;
|
||||
} else if (forceQDBusTrayWorkaround() == "0") {
|
||||
_qdbusmenuWorkaround = false;
|
||||
}
|
||||
|
||||
// When the qdbusmenuWorkaround is necessary, we can't do on-demand updates
|
||||
// because the workaround is to hide and show the tray icon.
|
||||
if (_qdbusmenuWorkaround) {
|
||||
connect(&_workaroundBatchTrayUpdate, SIGNAL(timeout()), SLOT(updateContextMenu()));
|
||||
_workaroundBatchTrayUpdate.setInterval(30 * 1000);
|
||||
_workaroundBatchTrayUpdate.setSingleShot(true);
|
||||
} else {
|
||||
// Update the context menu whenever we're about to show it
|
||||
// to the user.
|
||||
#ifdef Q_OS_MAC
|
||||
// https://bugreports.qt.io/browse/QTBUG-54633
|
||||
connect(_contextMenu.data(), SIGNAL(aboutToShow()), SLOT(slotContextMenuAboutToShow()));
|
||||
connect(_contextMenu.data(), SIGNAL(aboutToHide()), SLOT(slotContextMenuAboutToHide()));
|
||||
#else
|
||||
connect(_contextMenu.data(), SIGNAL(aboutToShow()), SLOT(updateContextMenu()));
|
||||
#endif
|
||||
}
|
||||
|
||||
// Populate the context menu now.
|
||||
updateContextMenu();
|
||||
}
|
||||
|
||||
void ownCloudGui::updateContextMenu()
|
||||
{
|
||||
if (minimalTrayMenu()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (_qdbusmenuWorkaround) {
|
||||
// To make tray menu updates work with these bugs (see setupContextMenu)
|
||||
// we need to hide and show the tray icon. We don't want to do that
|
||||
// while it's visible!
|
||||
if (contextMenuVisible()) {
|
||||
if (!_workaroundBatchTrayUpdate.isActive()) {
|
||||
_workaroundBatchTrayUpdate.start();
|
||||
}
|
||||
return;
|
||||
}
|
||||
_tray->hide();
|
||||
}
|
||||
|
||||
_contextMenu->clear();
|
||||
slotRebuildRecentMenus();
|
||||
|
||||
// We must call deleteLater because we might be called from the press in one of the actions.
|
||||
foreach (auto menu, _accountMenus) { menu->deleteLater(); }
|
||||
_accountMenus.clear();
|
||||
|
||||
|
||||
auto accountList = AccountManager::instance()->accounts();
|
||||
|
||||
bool isConfigured = (!accountList.isEmpty());
|
||||
@@ -574,6 +445,47 @@ void ownCloudGui::updateContextMenu()
|
||||
}
|
||||
}
|
||||
|
||||
if ( _contextMenu ) {
|
||||
if (_qdbusmenuWorkaround) {
|
||||
_tray->hide();
|
||||
}
|
||||
_contextMenu->clear();
|
||||
} else {
|
||||
_contextMenu.reset(new QMenu());
|
||||
|
||||
// Update the context menu whenever we're about to show it
|
||||
// to the user.
|
||||
connect(_contextMenu.data(), SIGNAL(aboutToShow()), SLOT(setupContextMenu()));
|
||||
|
||||
_recentActionsMenu = new QMenu(tr("Recent Changes"), _contextMenu.data());
|
||||
// this must be called only once after creating the context menu, or
|
||||
// it will trigger a bug in Ubuntu's SNI bridge patch (11.10, 12.04).
|
||||
_tray->setContextMenu(_contextMenu.data());
|
||||
|
||||
// Enables workarounds for bugs introduced in Qt 5.5.0
|
||||
// In particular QTBUG-47863 #3672 (tray menu fails to update and
|
||||
// becomes unresponsive) and QTBUG-48068 #3722 (click signal is
|
||||
// emitted several times)
|
||||
// The Qt version check intentionally uses 5.0.0 (where platformMenu()
|
||||
// was introduced) instead of 5.5.0 to avoid issues where the Qt
|
||||
// version used to build is different from the one used at runtime.
|
||||
#ifdef Q_OS_LINUX
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)
|
||||
QObject* platformMenu = reinterpret_cast<QObject*>(_tray->contextMenu()->platformMenu());
|
||||
if (platformMenu
|
||||
&& platformMenu->metaObject()->className() == QLatin1String("QDBusPlatformMenu")) {
|
||||
_qdbusmenuWorkaround = true;
|
||||
qDebug() << "Enabled QDBusPlatformMenu workaround";
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
_contextMenu->setTitle(Theme::instance()->appNameGUI() );
|
||||
slotRebuildRecentMenus();
|
||||
|
||||
// We must call deleteLater because we might be called from the press in one of the actions.
|
||||
foreach (auto menu, _accountMenus) { menu->deleteLater(); }
|
||||
_accountMenus.clear();
|
||||
if (accountList.count() > 1) {
|
||||
foreach (AccountStatePtr account, accountList) {
|
||||
QMenu* accountMenu = new QMenu(account->account()->displayName(), _contextMenu.data());
|
||||
@@ -646,30 +558,10 @@ void ownCloudGui::updateContextMenu()
|
||||
}
|
||||
}
|
||||
|
||||
void ownCloudGui::updateContextMenuNeeded()
|
||||
void ownCloudGui::setupContextMenuIfVisible()
|
||||
{
|
||||
// For the workaround case updating while visible is impossible. Instead
|
||||
// occasionally update the menu when it's invisible.
|
||||
if (_qdbusmenuWorkaround) {
|
||||
if (!_workaroundBatchTrayUpdate.isActive()) {
|
||||
_workaroundBatchTrayUpdate.start();
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
#ifdef Q_OS_MAC
|
||||
// https://bugreports.qt.io/browse/QTBUG-54845
|
||||
// We cannot update on demand or while visible -> update when invisible.
|
||||
if (!contextMenuVisible()) {
|
||||
updateContextMenu();
|
||||
}
|
||||
#else
|
||||
if (updateWhileVisible() && contextMenuVisible())
|
||||
updateContextMenu();
|
||||
#endif
|
||||
|
||||
// If no update was done here, we might update it on-demand due to
|
||||
// the aboutToShow() signal.
|
||||
if (_contextMenu && _contextMenu->isVisible())
|
||||
setupContextMenu();
|
||||
}
|
||||
|
||||
void ownCloudGui::slotShowTrayMessage(const QString &title, const QString &msg)
|
||||
@@ -832,7 +724,7 @@ void ownCloudGui::slotUpdateProgress(const QString &folder, const ProgressInfo&
|
||||
|
||||
// Update the "Recent" menu if the context menu is being shown,
|
||||
// otherwise it'll be updated later, when the context menu is opened.
|
||||
if (updateWhileVisible() && contextMenuVisible()) {
|
||||
if (_contextMenu && _contextMenu->isVisible()) {
|
||||
slotRebuildRecentMenus();
|
||||
}
|
||||
}
|
||||
|
||||
+1
-14
@@ -24,7 +24,6 @@
|
||||
#include <QMenu>
|
||||
#include <QSignalMapper>
|
||||
#include <QSize>
|
||||
#include <QTimer>
|
||||
|
||||
namespace OCC {
|
||||
|
||||
@@ -53,18 +52,12 @@ public:
|
||||
static QSize settingsDialogSize() { return QSize(800, 500); }
|
||||
void setupOverlayIcons();
|
||||
|
||||
/// Whether the tray menu is visible
|
||||
bool contextMenuVisible() const;
|
||||
|
||||
signals:
|
||||
void setupProxy();
|
||||
|
||||
public slots:
|
||||
void setupContextMenu();
|
||||
void updateContextMenu();
|
||||
void updateContextMenuNeeded();
|
||||
void slotContextMenuAboutToShow();
|
||||
void slotContextMenuAboutToHide();
|
||||
void setupContextMenuIfVisible();
|
||||
void slotComputeOverallSyncStatus();
|
||||
void slotShowTrayMessage(const QString &title, const QString &msg);
|
||||
void slotShowOptionalTrayMessage(const QString &title, const QString &msg);
|
||||
@@ -109,15 +102,9 @@ private:
|
||||
QPointer<LogBrowser>_logBrowser;
|
||||
// tray's menu
|
||||
QScopedPointer<QMenu> _contextMenu;
|
||||
|
||||
// Manually tracking whether the context menu is visible, but only works
|
||||
// on OSX because aboutToHide is not reliable everywhere.
|
||||
bool _contextMenuVisibleOsx;
|
||||
|
||||
QMenu *_recentActionsMenu;
|
||||
QVector<QMenu*> _accountMenus;
|
||||
bool _qdbusmenuWorkaround;
|
||||
QTimer _workaroundBatchTrayUpdate;
|
||||
QMap<QString, QPointer<ShareDialog> > _shareDialogs;
|
||||
|
||||
QAction *_actionLogin;
|
||||
|
||||
@@ -30,7 +30,6 @@
|
||||
#include "networkjobs.h"
|
||||
#include "sslerrordialog.h"
|
||||
#include "accountmanager.h"
|
||||
#include "clientproxy.h"
|
||||
|
||||
#include "creds/credentialsfactory.h"
|
||||
#include "creds/abstractcredentials.h"
|
||||
@@ -129,38 +128,7 @@ void OwncloudSetupWizard::slotDetermineAuthType(const QString &urlString)
|
||||
account->setUrl(url);
|
||||
// Reset the proxy which might had been determined previously in ConnectionValidator::checkServerAndAuth()
|
||||
// when there was a previous account.
|
||||
account->networkAccessManager()->setProxy(QNetworkProxy(QNetworkProxy::NoProxy));
|
||||
|
||||
// Lookup system proxy in a thread https://github.com/owncloud/client/issues/2993
|
||||
if (ClientProxy::isUsingSystemDefault()) {
|
||||
qDebug() << "Trying to look up system proxy";
|
||||
ClientProxy::lookupSystemProxyAsync(account->url(),
|
||||
this, SLOT(slotSystemProxyLookupDone(QNetworkProxy)));
|
||||
} else {
|
||||
// We want to reset the QNAM proxy so that the global proxy settings are used (via ClientProxy settings)
|
||||
account->networkAccessManager()->setProxy(QNetworkProxy(QNetworkProxy::DefaultProxy));
|
||||
// use a queued invocation so we're as asynchronous as with the other code path
|
||||
QMetaObject::invokeMethod(this, "slotContinueDetermineAuth", Qt::QueuedConnection);
|
||||
}
|
||||
}
|
||||
|
||||
void OwncloudSetupWizard::slotSystemProxyLookupDone(const QNetworkProxy &proxy)
|
||||
{
|
||||
if (proxy.type() != QNetworkProxy::NoProxy) {
|
||||
qDebug() << "Setting QNAM proxy to be system proxy" << printQNetworkProxy(proxy);
|
||||
} else {
|
||||
qDebug() << "No system proxy set by OS";
|
||||
}
|
||||
AccountPtr account = _ocWizard->account();
|
||||
account->networkAccessManager()->setProxy(proxy);
|
||||
|
||||
slotContinueDetermineAuth();
|
||||
}
|
||||
|
||||
void OwncloudSetupWizard::slotContinueDetermineAuth()
|
||||
{
|
||||
AccountPtr account = _ocWizard->account();
|
||||
|
||||
account->networkAccessManager()->setProxy(QNetworkProxy(QNetworkProxy::DefaultProxy));
|
||||
// Set fake credentials before we check what credential it actually is.
|
||||
account->setCredentials(CredentialsFactory::create("dummy"));
|
||||
CheckServerJob *job = new CheckServerJob(_ocWizard->account(), this);
|
||||
@@ -168,7 +136,7 @@ void OwncloudSetupWizard::slotContinueDetermineAuth()
|
||||
connect(job, SIGNAL(instanceFound(QUrl,QVariantMap)), SLOT(slotOwnCloudFoundAuth(QUrl,QVariantMap)));
|
||||
connect(job, SIGNAL(instanceNotFound(QNetworkReply*)), SLOT(slotNoOwnCloudFoundAuth(QNetworkReply*)));
|
||||
connect(job, SIGNAL(timeout(const QUrl&)), SLOT(slotNoOwnCloudFoundAuthTimeout(const QUrl&)));
|
||||
job->setTimeout((account->url().scheme() == "https") ? 30*1000 : 10*1000);
|
||||
job->setTimeout(10*1000);
|
||||
job->start();
|
||||
}
|
||||
|
||||
@@ -571,15 +539,12 @@ bool DetermineAuthTypeJob::finished()
|
||||
setupConnections(reply());
|
||||
return false; // don't discard
|
||||
} else {
|
||||
#ifndef NO_SHIBBOLETH
|
||||
QRegExp shibbolethyWords("SAML|wayf");
|
||||
|
||||
shibbolethyWords.setCaseSensitivity(Qt::CaseInsensitive);
|
||||
if (redirection.toString().contains(shibbolethyWords)) {
|
||||
emit authType(WizardCommon::Shibboleth);
|
||||
} else
|
||||
#endif
|
||||
{
|
||||
} else {
|
||||
// TODO: Send an error.
|
||||
// eh?
|
||||
emit authType(WizardCommon::HttpCreds);
|
||||
|
||||
@@ -66,8 +66,6 @@ signals:
|
||||
|
||||
private slots:
|
||||
void slotDetermineAuthType(const QString&);
|
||||
void slotSystemProxyLookupDone(const QNetworkProxy &proxy);
|
||||
void slotContinueDetermineAuth();
|
||||
void slotOwnCloudFoundAuth(const QUrl&, const QVariantMap&);
|
||||
void slotNoOwnCloudFoundAuth(QNetworkReply *reply);
|
||||
void slotNoOwnCloudFoundAuthTimeout(const QUrl&url);
|
||||
|
||||
@@ -26,14 +26,14 @@ ServerNotificationHandler::ServerNotificationHandler(QObject *parent)
|
||||
|
||||
}
|
||||
|
||||
void ServerNotificationHandler::slotFetchNotifications(AccountState *ptr)
|
||||
bool ServerNotificationHandler::fetchNotifications(AccountState *ptr)
|
||||
{
|
||||
// check connectivity and credentials
|
||||
if( !( ptr && ptr->isConnected() && ptr->account() &&
|
||||
ptr->account()->credentials() &&
|
||||
ptr->account()->credentials()->ready() ) ) {
|
||||
deleteLater();
|
||||
return;
|
||||
return false;
|
||||
}
|
||||
// check if the account has notifications enabled. If the capabilities are
|
||||
// not yet valid, its assumed that notifications are available.
|
||||
@@ -41,7 +41,7 @@ void ServerNotificationHandler::slotFetchNotifications(AccountState *ptr)
|
||||
if( ! ptr->account()->capabilities().notificationsAvailable() ) {
|
||||
qDebug() << Q_FUNC_INFO << "Account" << ptr->account()->displayName() << "does not have notifications enabled.";
|
||||
deleteLater();
|
||||
return;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -52,6 +52,7 @@ void ServerNotificationHandler::slotFetchNotifications(AccountState *ptr)
|
||||
_notificationJob->setProperty("AccountStatePtr", QVariant::fromValue<AccountState*>(ptr));
|
||||
|
||||
_notificationJob->start();
|
||||
return true;
|
||||
}
|
||||
|
||||
void ServerNotificationHandler::slotNotificationsReceived(const QVariantMap& json, int statusCode)
|
||||
|
||||
@@ -26,12 +26,12 @@ class ServerNotificationHandler : public QObject
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit ServerNotificationHandler(QObject *parent = 0);
|
||||
bool fetchNotifications(AccountState *ptr);
|
||||
|
||||
signals:
|
||||
void newNotificationList(ActivityList);
|
||||
|
||||
public slots:
|
||||
void slotFetchNotifications(AccountState *ptr);
|
||||
|
||||
private slots:
|
||||
void slotNotificationsReceived(const QVariantMap& json, int statusCode);
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
* for more details.
|
||||
*/
|
||||
|
||||
#include "sharemanager.h"
|
||||
#include "share.h"
|
||||
#include "ocssharejob.h"
|
||||
#include "account.h"
|
||||
|
||||
@@ -30,9 +30,9 @@ Q_DECLARE_METATYPE(CreateShare)
|
||||
|
||||
namespace OCC {
|
||||
|
||||
Share::Share(AccountPtr account,
|
||||
const QString& id,
|
||||
const QString& path,
|
||||
Share::Share(AccountPtr account,
|
||||
const QString& id,
|
||||
const QString& path,
|
||||
const ShareType shareType,
|
||||
const Permissions permissions,
|
||||
const QSharedPointer<Sharee> shareWith)
|
||||
@@ -100,7 +100,7 @@ void Share::slotDeleted()
|
||||
|
||||
void Share::slotOcsError(int statusCode, const QString &message)
|
||||
{
|
||||
emit serverError(statusCode, message);
|
||||
emit serverError(statusCode, message);
|
||||
}
|
||||
|
||||
QUrl LinkShare::getLink() const
|
||||
@@ -229,7 +229,7 @@ void ShareManager::slotLinkShareCreated(const QVariantMap &reply)
|
||||
if (code == 403) {
|
||||
emit linkShareRequiresPassword(message);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
//Parse share
|
||||
auto data = reply.value("ocs").toMap().value("data").toMap();
|
||||
@@ -329,7 +329,7 @@ void ShareManager::slotSharesFetched(const QVariantMap &reply)
|
||||
newShare = parseShare(data);
|
||||
}
|
||||
|
||||
shares.append(QSharedPointer<Share>(newShare));
|
||||
shares.append(QSharedPointer<Share>(newShare));
|
||||
}
|
||||
|
||||
qDebug() << Q_FUNC_INFO << "Sending " << shares.count() << "shares";
|
||||
@@ -371,7 +371,7 @@ QSharedPointer<Share> ShareManager::parseShare(const QVariantMap &data)
|
||||
QSharedPointer<Sharee> sharee(new Sharee(data.value("share_with").toString(),
|
||||
data.value("share_with_displayname").toString(),
|
||||
(Sharee::Type)data.value("share_type").toInt()));
|
||||
|
||||
|
||||
return QSharedPointer<Share>(new Share(_account,
|
||||
data.value("id").toString(),
|
||||
data.value("path").toString(),
|
||||
@@ -11,8 +11,8 @@
|
||||
* for more details.
|
||||
*/
|
||||
|
||||
#ifndef SHAREMANAGER_H
|
||||
#define SHAREMANAGER_H
|
||||
#ifndef SHARE_H
|
||||
#define SHARE_H
|
||||
|
||||
#include "accountfwd.h"
|
||||
#include "sharee.h"
|
||||
@@ -127,7 +127,7 @@ private slots:
|
||||
class LinkShare : public Share {
|
||||
Q_OBJECT
|
||||
public:
|
||||
|
||||
|
||||
explicit LinkShare(AccountPtr account,
|
||||
const QString& id,
|
||||
const QString& path,
|
||||
@@ -154,7 +154,7 @@ public:
|
||||
* In case of a server error the serverError signal is emitted.
|
||||
*/
|
||||
void setPublicUpload(bool publicUpload);
|
||||
|
||||
|
||||
/*
|
||||
* Set the password
|
||||
*
|
||||
@@ -276,6 +276,7 @@ private:
|
||||
AccountPtr _account;
|
||||
};
|
||||
|
||||
|
||||
}
|
||||
|
||||
#endif // SHAREMANAGER_H
|
||||
#endif // SHARE_H
|
||||
@@ -46,7 +46,6 @@ ShareDialog::ShareDialog(QPointer<AccountState> accountState,
|
||||
_userGroupWidget(NULL),
|
||||
_progressIndicator(NULL)
|
||||
{
|
||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
||||
setAttribute(Qt::WA_DeleteOnClose);
|
||||
setObjectName("SharingDialog"); // required as group for saveGeometry call
|
||||
|
||||
|
||||
@@ -17,14 +17,13 @@
|
||||
#include "account.h"
|
||||
#include "capabilities.h"
|
||||
|
||||
#include "sharemanager.h"
|
||||
#include "share.h"
|
||||
|
||||
#include "QProgressIndicator.h"
|
||||
#include <QBuffer>
|
||||
#include <QClipboard>
|
||||
#include <QFileInfo>
|
||||
#include <QDesktopServices>
|
||||
#include <QMessageBox>
|
||||
|
||||
namespace OCC {
|
||||
|
||||
@@ -491,20 +490,13 @@ void ShareLinkWidget::slotPushButtonMailLinkPressed()
|
||||
{
|
||||
QString fileName = _sharePath.mid(_sharePath.lastIndexOf('/') + 1);
|
||||
|
||||
if (!QDesktopServices::openUrl(QUrl(QString(
|
||||
"mailto: "
|
||||
"?subject=I shared %1 with you"
|
||||
"&body=%2").arg(
|
||||
fileName,
|
||||
_shareUrl),
|
||||
QUrl::TolerantMode))) {
|
||||
QMessageBox::warning(
|
||||
this,
|
||||
tr("Could not open email client"),
|
||||
tr("There was an error when launching the email client to "
|
||||
"create a new message. Maybe no default email client is "
|
||||
"configured?"));
|
||||
}
|
||||
QDesktopServices::openUrl(QUrl(QString(
|
||||
"mailto: "
|
||||
"?subject=I shared %1 with you"
|
||||
"&body=%2").arg(
|
||||
fileName,
|
||||
_shareUrl),
|
||||
QUrl::TolerantMode));
|
||||
}
|
||||
|
||||
void ShareLinkWidget::slotCheckBoxEditingClicked()
|
||||
|
||||
@@ -24,8 +24,8 @@
|
||||
#include "capabilities.h"
|
||||
|
||||
#include "thumbnailjob.h"
|
||||
#include "share.h"
|
||||
#include "sharee.h"
|
||||
#include "sharemanager.h"
|
||||
|
||||
#include "QProgressIndicator.h"
|
||||
#include <QBuffer>
|
||||
|
||||
@@ -20,9 +20,7 @@
|
||||
#include "wizard/owncloudwizard.h"
|
||||
#include "wizard/owncloudsetuppage.h"
|
||||
#include "wizard/owncloudhttpcredspage.h"
|
||||
#ifndef NO_SHIBBOLETH
|
||||
#include "wizard/owncloudshibbolethcredspage.h"
|
||||
#endif
|
||||
#include "wizard/owncloudadvancedsetuppage.h"
|
||||
#include "wizard/owncloudwizardresultpage.h"
|
||||
|
||||
@@ -41,9 +39,7 @@ OwncloudWizard::OwncloudWizard(QWidget *parent)
|
||||
_account(0),
|
||||
_setupPage(new OwncloudSetupPage(this)),
|
||||
_httpCredsPage(new OwncloudHttpCredsPage(this)),
|
||||
#ifndef NO_SHIBBOLETH
|
||||
_shibbolethCredsPage(new OwncloudShibbolethCredsPage),
|
||||
#endif
|
||||
_advancedSetupPage(new OwncloudAdvancedSetupPage),
|
||||
_resultPage(new OwncloudWizardResultPage),
|
||||
_credentialsPage(0),
|
||||
@@ -52,9 +48,7 @@ OwncloudWizard::OwncloudWizard(QWidget *parent)
|
||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
||||
setPage(WizardCommon::Page_ServerSetup, _setupPage);
|
||||
setPage(WizardCommon::Page_HttpCreds, _httpCredsPage);
|
||||
#ifndef NO_SHIBBOLETH
|
||||
setPage(WizardCommon::Page_ShibbolethCreds, _shibbolethCredsPage);
|
||||
#endif
|
||||
setPage(WizardCommon::Page_AdvancedSetup, _advancedSetupPage);
|
||||
setPage(WizardCommon::Page_Result, _resultPage);
|
||||
|
||||
@@ -67,9 +61,7 @@ OwncloudWizard::OwncloudWizard(QWidget *parent)
|
||||
connect( this, SIGNAL(currentIdChanged(int)), SLOT(slotCurrentPageChanged(int)));
|
||||
connect( _setupPage, SIGNAL(determineAuthType(QString)), SIGNAL(determineAuthType(QString)));
|
||||
connect( _httpCredsPage, SIGNAL(connectToOCUrl(QString)), SIGNAL(connectToOCUrl(QString)));
|
||||
#ifndef NO_SHIBBOLETH
|
||||
connect( _shibbolethCredsPage, SIGNAL(connectToOCUrl(QString)), SIGNAL(connectToOCUrl(QString)));
|
||||
#endif
|
||||
connect( _advancedSetupPage, SIGNAL(createLocalAndRemoteFolders(QString, QString)),
|
||||
SIGNAL(createLocalAndRemoteFolders(QString, QString)));
|
||||
connect(this, SIGNAL(customButtonClicked(int)), this, SIGNAL(skipFolderConfiguration()));
|
||||
@@ -136,11 +128,9 @@ void OwncloudWizard::successfulStep()
|
||||
_httpCredsPage->setConnected();
|
||||
break;
|
||||
|
||||
#ifndef NO_SHIBBOLETH
|
||||
case WizardCommon::Page_ShibbolethCreds:
|
||||
_shibbolethCredsPage->setConnected();
|
||||
break;
|
||||
#endif
|
||||
|
||||
case WizardCommon::Page_AdvancedSetup:
|
||||
_advancedSetupPage->directoriesCreated();
|
||||
@@ -158,12 +148,9 @@ void OwncloudWizard::successfulStep()
|
||||
void OwncloudWizard::setAuthType(WizardCommon::AuthType type)
|
||||
{
|
||||
_setupPage->setAuthType(type);
|
||||
#ifndef NO_SHIBBOLETH
|
||||
if (type == WizardCommon::Shibboleth) {
|
||||
_credentialsPage = _shibbolethCredsPage;
|
||||
} else
|
||||
#endif
|
||||
{
|
||||
} else {
|
||||
_credentialsPage = _httpCredsPage;
|
||||
}
|
||||
next();
|
||||
|
||||
@@ -25,9 +25,7 @@ namespace OCC {
|
||||
|
||||
class OwncloudSetupPage;
|
||||
class OwncloudHttpCredsPage;
|
||||
#ifndef NO_SHIBBOLETH
|
||||
class OwncloudShibbolethCredsPage;
|
||||
#endif
|
||||
class OwncloudAdvancedSetupPage;
|
||||
class OwncloudWizardResultPage;
|
||||
class AbstractCredentials;
|
||||
@@ -90,9 +88,7 @@ private:
|
||||
AccountPtr _account;
|
||||
OwncloudSetupPage* _setupPage;
|
||||
OwncloudHttpCredsPage* _httpCredsPage;
|
||||
#ifndef NO_SHIBBOLETH
|
||||
OwncloudShibbolethCredsPage* _shibbolethCredsPage;
|
||||
#endif
|
||||
OwncloudAdvancedSetupPage* _advancedSetupPage;
|
||||
OwncloudWizardResultPage* _resultPage;
|
||||
AbstractCredentialsWizardPage* _credentialsPage;
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
project(libsync)
|
||||
set(CMAKE_AUTOMOC TRUE)
|
||||
include(GenerateExportHeader)
|
||||
|
||||
configure_file( version.h.in "${CMAKE_CURRENT_BINARY_DIR}/version.h" )
|
||||
|
||||
|
||||
@@ -129,6 +129,7 @@ SystemProxyRunnable::SystemProxyRunnable(const QUrl &url) : QObject(), QRunnable
|
||||
|
||||
void SystemProxyRunnable::run()
|
||||
{
|
||||
qDebug() << Q_FUNC_INFO << "Starting system proxy lookup";
|
||||
qRegisterMetaType<QNetworkProxy>("QNetworkProxy");
|
||||
QList<QNetworkProxy> proxies = QNetworkProxyFactory::systemProxyForQuery(QNetworkProxyQuery(_url));
|
||||
|
||||
|
||||
@@ -57,7 +57,7 @@ private:
|
||||
QUrl _url;
|
||||
};
|
||||
|
||||
OWNCLOUDSYNC_EXPORT QString printQNetworkProxy(const QNetworkProxy &proxy);
|
||||
QString printQNetworkProxy(const QNetworkProxy &proxy);
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -106,7 +106,7 @@ void ConnectionValidator::slotCheckServerAndAuth()
|
||||
checkJob->setTimeout(timeoutToUseMsec);
|
||||
checkJob->setIgnoreCredentialFailure(true);
|
||||
connect(checkJob, SIGNAL(instanceFound(QUrl,QVariantMap)), SLOT(slotStatusFound(QUrl,QVariantMap)));
|
||||
connect(checkJob, SIGNAL(instanceNotFound(QNetworkReply*)), SLOT(slotNoStatusFound(QNetworkReply*)));
|
||||
connect(checkJob, SIGNAL(networkError(QNetworkReply*)), SLOT(slotNoStatusFound(QNetworkReply*)));
|
||||
connect(checkJob, SIGNAL(timeout(QUrl)), SLOT(slotJobTimeout(QUrl)));
|
||||
checkJob->start();
|
||||
}
|
||||
|
||||
@@ -12,7 +12,6 @@
|
||||
*/
|
||||
|
||||
#include "excludedfiles.h"
|
||||
#include "utility.h"
|
||||
|
||||
#include <QFileInfo>
|
||||
|
||||
@@ -71,27 +70,18 @@ bool ExcludedFiles::isExcluded(
|
||||
const QString& basePath,
|
||||
bool excludeHidden) const
|
||||
{
|
||||
if (!filePath.startsWith(basePath, Utility::fsCasePreserving() ? Qt::CaseInsensitive : Qt::CaseSensitive)) {
|
||||
if (!filePath.startsWith(basePath)) {
|
||||
// Mark paths we're not responsible for as excluded...
|
||||
return true;
|
||||
}
|
||||
|
||||
QFileInfo fi(filePath);
|
||||
if( excludeHidden ) {
|
||||
QString path = filePath;
|
||||
// Check all path subcomponents, but to *not* check the base path:
|
||||
// We do want to be able to sync with a hidden folder as the target.
|
||||
while (path.size() > basePath.size()) {
|
||||
QFileInfo fi(path);
|
||||
if( fi.isHidden() || fi.fileName().startsWith(QLatin1Char('.')) ) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// Get the parent path
|
||||
path = fi.absolutePath();
|
||||
if( fi.isHidden() || fi.fileName().startsWith(QLatin1Char('.')) ) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
QFileInfo fi(filePath);
|
||||
csync_ftw_type_e type = CSYNC_FTW_TYPE_FILE;
|
||||
if (fi.isDir()) {
|
||||
type = CSYNC_FTW_TYPE_DIR;
|
||||
|
||||
@@ -29,11 +29,10 @@
|
||||
#endif
|
||||
|
||||
#ifdef Q_OS_WIN
|
||||
#include <windows.h>
|
||||
#include <windef.h>
|
||||
#include <winbase.h>
|
||||
#include <fcntl.h>
|
||||
#include <io.h>
|
||||
|
||||
#endif
|
||||
|
||||
// We use some internals of csync:
|
||||
|
||||
@@ -668,12 +668,6 @@ void PropagateDirectory::finalize()
|
||||
bool ok = true;
|
||||
if (!_item->isEmpty() && _hasError == SyncFileItem::NoStatus) {
|
||||
if( !_item->_renameTarget.isEmpty() ) {
|
||||
if(_item->_instruction == CSYNC_INSTRUCTION_RENAME
|
||||
&& _item->_originalFile != _item->_renameTarget) {
|
||||
// Remove the stale entries from the database.
|
||||
_propagator->_journal->deleteFileRecord(_item->_originalFile, true);
|
||||
}
|
||||
|
||||
_item->_file = _item->_renameTarget;
|
||||
}
|
||||
|
||||
@@ -692,14 +686,14 @@ void PropagateDirectory::finalize()
|
||||
SyncJournalFileRecord record(*_item, _propagator->_localDir + _item->_file);
|
||||
ok = _propagator->_journal->setFileRecordMetadata(record);
|
||||
if (!ok) {
|
||||
_hasError = _item->_status = SyncFileItem::FatalError;
|
||||
_item->_status = SyncFileItem::FatalError;
|
||||
_item->_errorString = tr("Error writing metadata to the database");
|
||||
qWarning() << "Error writing to the database for file" << _item->_file;
|
||||
}
|
||||
}
|
||||
}
|
||||
_state = Finished;
|
||||
emit finished(_hasError == SyncFileItem::NoStatus ? SyncFileItem::Success : _hasError);
|
||||
emit finished(_item->_status);
|
||||
}
|
||||
|
||||
qint64 PropagateDirectory::committedDiskSpace() const
|
||||
|
||||
@@ -49,8 +49,8 @@ QString ownCloudTheme::about() const
|
||||
"Olivier Goffart, Markus Götz and others.</small></p>"
|
||||
"<p>Copyright ownCloud GmbH</p>"
|
||||
"<p>Licensed under the GNU General Public License (GPL) Version 2.0<br/>"
|
||||
"ownCloud and the ownCloud Logo are registered trademarks of ownCloud GmbH "
|
||||
"in the United States, other countries, or both.</p>"
|
||||
"ownCloud and the ownCloud Logo are registered trademarks of ownCloud, "
|
||||
"Inc. in the United States, other countries, or both.</p>"
|
||||
)
|
||||
.arg(MIRALL_VERSION_STRING)
|
||||
.arg("https://" MIRALL_STRINGIFY(APPLICATION_DOMAIN))
|
||||
|
||||
@@ -31,10 +31,6 @@
|
||||
#include <QDebug>
|
||||
#include <cmath>
|
||||
|
||||
#ifdef Q_OS_UNIX
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
|
||||
namespace OCC {
|
||||
|
||||
// Always coming in with forward slashes.
|
||||
@@ -620,47 +616,30 @@ static QString makeRecallFileName(const QString &fn)
|
||||
return recallFileName;
|
||||
}
|
||||
|
||||
void handleRecallFile(const QString& filePath, const QString& folderPath, SyncJournalDb& journal)
|
||||
static void handleRecallFile(const QString &fn)
|
||||
{
|
||||
qDebug() << "handleRecallFile: " << filePath;
|
||||
qDebug() << "handleRecallFile: " << fn;
|
||||
|
||||
FileSystem::setFileHidden(filePath, true);
|
||||
FileSystem::setFileHidden(fn, true);
|
||||
|
||||
QFile file(filePath);
|
||||
QFile file(fn);
|
||||
if (!file.open(QIODevice::ReadOnly)) {
|
||||
qWarning() << "Could not open recall file" << file.errorString();
|
||||
return;
|
||||
}
|
||||
QFileInfo existingFile(filePath);
|
||||
QDir baseDir = existingFile.dir();
|
||||
QFileInfo existingFile(fn);
|
||||
QDir thisDir = existingFile.dir();
|
||||
|
||||
while (!file.atEnd()) {
|
||||
QByteArray line = file.readLine();
|
||||
line.chop(1); // remove trailing \n
|
||||
QString fpath = thisDir.filePath(line);
|
||||
QString rpath = makeRecallFileName(fpath);
|
||||
|
||||
QString recalledFile = QDir::cleanPath(baseDir.filePath(line));
|
||||
if (!recalledFile.startsWith(folderPath) || !recalledFile.startsWith(baseDir.path())) {
|
||||
qDebug() << "Ignoring recall of " << recalledFile;
|
||||
continue;
|
||||
}
|
||||
|
||||
// Path of the recalled file in the local folder
|
||||
QString localRecalledFile = recalledFile.mid(folderPath.size());
|
||||
|
||||
SyncJournalFileRecord record = journal.getFileRecord(localRecalledFile);
|
||||
if (!record.isValid()) {
|
||||
qDebug() << "No db entry for recall of" << localRecalledFile;
|
||||
continue;
|
||||
}
|
||||
|
||||
qDebug() << "Recalling" << localRecalledFile << "Checksum:" << record._contentChecksumType << record._contentChecksum;
|
||||
|
||||
QString targetPath = makeRecallFileName(recalledFile);
|
||||
|
||||
qDebug() << "Copy recall file: " << recalledFile << " -> " << targetPath;
|
||||
qDebug() << "Copy recall file: " << fpath << " -> " << rpath;
|
||||
// Remove the target first, QFile::copy will not overwrite it.
|
||||
FileSystem::remove(targetPath);
|
||||
QFile::copy(recalledFile, targetPath);
|
||||
FileSystem::remove(rpath);
|
||||
QFile::copy(fpath, rpath);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -817,10 +796,8 @@ void PropagateDownloadFile::downloadFinished()
|
||||
done(isConflict ? SyncFileItem::Conflict : SyncFileItem::Success);
|
||||
|
||||
// handle the special recall file
|
||||
if(!_item->_remotePerm.contains("S")
|
||||
&& (_item->_file == QLatin1String(".sys.admin#recall#")
|
||||
|| _item->_file.endsWith("/.sys.admin#recall#"))) {
|
||||
handleRecallFile(fn, _propagator->_localDir, *_propagator->_journal);
|
||||
if(_item->_file == QLatin1String(".sys.admin#recall#") || _item->_file.endsWith("/.sys.admin#recall#")) {
|
||||
handleRecallFile(fn);
|
||||
}
|
||||
|
||||
qint64 duration = _stopwatch.elapsed();
|
||||
|
||||
@@ -868,7 +868,6 @@ void SyncEngine::slotDiscoveryJobFinished(int discoveryResult)
|
||||
bool walkOk = true;
|
||||
_seenFiles.clear();
|
||||
_temporarilyUnavailablePaths.clear();
|
||||
_renamedFolders.clear();
|
||||
|
||||
if( csync_walk_local_tree(_csync_ctx, &treewalkLocal, 0) < 0 ) {
|
||||
qDebug() << "Error in local treewalk.";
|
||||
|
||||
@@ -14,17 +14,14 @@
|
||||
|
||||
#include <QDir>
|
||||
#include <QNetworkReply>
|
||||
#include <QMap>
|
||||
#include <QtTest>
|
||||
|
||||
static const QUrl sRootUrl("owncloud://somehost/owncloud/remote.php/webdav/");
|
||||
|
||||
inline QString generateEtag() {
|
||||
namespace {
|
||||
QString generateEtag() {
|
||||
return QString::number(QDateTime::currentDateTime().toMSecsSinceEpoch(), 16);
|
||||
}
|
||||
inline QByteArray generateFileId() {
|
||||
return QByteArray::number(qrand(), 16);
|
||||
}
|
||||
|
||||
class PathComponents : public QStringList {
|
||||
public:
|
||||
@@ -38,6 +35,7 @@ public:
|
||||
QString pathRoot() const { return first(); }
|
||||
QString fileName() const { return last(); }
|
||||
};
|
||||
}
|
||||
|
||||
class FileModifier
|
||||
{
|
||||
@@ -48,7 +46,6 @@ public:
|
||||
virtual void setContents(const QString &relativePath, char contentChar) = 0;
|
||||
virtual void appendByte(const QString &relativePath) = 0;
|
||||
virtual void mkdir(const QString &relativePath) = 0;
|
||||
virtual void rename(const QString &relativePath, const QString &relativeDestinationDirectory) = 0;
|
||||
};
|
||||
|
||||
class DiskFileModifier : public FileModifier
|
||||
@@ -90,9 +87,6 @@ public:
|
||||
void mkdir(const QString &relativePath) override {
|
||||
_rootDir.mkpath(relativePath);
|
||||
}
|
||||
void rename(const QString &, const QString &) override {
|
||||
Q_ASSERT(!"not implemented");
|
||||
}
|
||||
};
|
||||
|
||||
class FileInfo : public FileModifier
|
||||
@@ -133,7 +127,6 @@ public:
|
||||
for (const auto &source : children) {
|
||||
auto &dest = this->children[source.name] = source;
|
||||
dest.parentPath = p;
|
||||
dest.fixupParentPathRecursively();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -165,21 +158,6 @@ public:
|
||||
createDir(relativePath);
|
||||
}
|
||||
|
||||
void rename(const QString &oldPath, const QString &newPath) override {
|
||||
const PathComponents newPathComponents{newPath};
|
||||
FileInfo *dir = findInvalidatingEtags(newPathComponents.parentDirComponents());
|
||||
Q_ASSERT(dir);
|
||||
Q_ASSERT(dir->isDir);
|
||||
const PathComponents pathComponents{oldPath};
|
||||
FileInfo *parent = findInvalidatingEtags(pathComponents.parentDirComponents());
|
||||
Q_ASSERT(parent);
|
||||
FileInfo fi = parent->children.take(pathComponents.fileName());
|
||||
fi.parentPath = dir->path();
|
||||
fi.name = newPathComponents.fileName();
|
||||
fi.fixupParentPathRecursively();
|
||||
dir->children.insert(newPathComponents.fileName(), std::move(fi));
|
||||
}
|
||||
|
||||
FileInfo *find(const PathComponents &pathComponents, const bool invalidateEtags = false) {
|
||||
if (pathComponents.isEmpty()) {
|
||||
if (invalidateEtags)
|
||||
@@ -241,7 +219,6 @@ public:
|
||||
bool isShared = false;
|
||||
QDateTime lastModified = QDateTime::currentDateTime().addDays(-7);
|
||||
QString etag = generateEtag();
|
||||
QByteArray fileId = generateFileId();
|
||||
qint64 size = 0;
|
||||
char contentChar = 'W';
|
||||
|
||||
@@ -253,19 +230,6 @@ private:
|
||||
FileInfo *findInvalidatingEtags(const PathComponents &pathComponents) {
|
||||
return find(pathComponents, true);
|
||||
}
|
||||
|
||||
void fixupParentPathRecursively() {
|
||||
auto p = path();
|
||||
for (auto it = children.begin(); it != children.end(); ++it) {
|
||||
Q_ASSERT(it.key() == it->name);
|
||||
it->parentPath = p;
|
||||
it->fixupParentPathRecursively();
|
||||
}
|
||||
}
|
||||
|
||||
friend inline QDebug operator<<(QDebug dbg, const FileInfo& fi) {
|
||||
return dbg << "{ " << fi.path() << ": " << fi.children;
|
||||
}
|
||||
};
|
||||
|
||||
class FakePropfindReply : public QNetworkReply
|
||||
@@ -311,7 +275,6 @@ public:
|
||||
xml.writeTextElement(davUri, QStringLiteral("getcontentlength"), QString::number(fileInfo.size));
|
||||
xml.writeTextElement(davUri, QStringLiteral("getetag"), fileInfo.etag);
|
||||
xml.writeTextElement(ocUri, QStringLiteral("permissions"), fileInfo.isShared ? QStringLiteral("SRDNVCKW") : QStringLiteral("RDNVCKW"));
|
||||
xml.writeTextElement(ocUri, QStringLiteral("id"), fileInfo.fileId);
|
||||
xml.writeEndElement(); // prop
|
||||
xml.writeTextElement(davUri, QStringLiteral("status"), "HTTP/1.1 200 OK");
|
||||
xml.writeEndElement(); // propstat
|
||||
@@ -321,7 +284,6 @@ public:
|
||||
Q_ASSERT(request.url().path().startsWith(sRootUrl.path()));
|
||||
QString fileName = request.url().path().mid(sRootUrl.path().length());
|
||||
const FileInfo *fileInfo = remoteRootFileInfo.find(fileName);
|
||||
Q_ASSERT(fileInfo);
|
||||
|
||||
writeFileResponse(*fileInfo);
|
||||
foreach(const FileInfo &childFileInfo, fileInfo->children)
|
||||
@@ -420,7 +382,7 @@ public:
|
||||
}
|
||||
|
||||
Q_INVOKABLE void respond() {
|
||||
setRawHeader("OC-FileId", fileInfo->fileId);
|
||||
// FIXME: setRawHeader("OC-FileId", fileInfo->???);
|
||||
setAttribute(QNetworkRequest::HttpStatusCodeAttribute, 201);
|
||||
emit metaDataChanged();
|
||||
emit finished();
|
||||
@@ -483,7 +445,6 @@ public:
|
||||
setAttribute(QNetworkRequest::HttpStatusCodeAttribute, 200);
|
||||
setRawHeader("OC-ETag", fileInfo->etag.toLatin1());
|
||||
setRawHeader("ETag", fileInfo->etag.toLatin1());
|
||||
setRawHeader("OC-FileId", fileInfo->fileId);
|
||||
emit metaDataChanged();
|
||||
if (bytesAvailable())
|
||||
emit readyRead();
|
||||
|
||||
@@ -119,33 +119,6 @@ private slots:
|
||||
QVERIFY(itemDidCompleteSuccessfully(completeSpy, "a3.eml"));
|
||||
QCOMPARE(fakeFolder.currentLocalState(), fakeFolder.currentRemoteState());
|
||||
}
|
||||
|
||||
void testRemoteChangeInMovedFolder() {
|
||||
// issue #5192
|
||||
FakeFolder fakeFolder{FileInfo{ QString(), {
|
||||
FileInfo { QStringLiteral("folder"), {
|
||||
FileInfo{ QStringLiteral("folderA"), { { QStringLiteral("file.txt"), 400 } } },
|
||||
QStringLiteral("folderB")
|
||||
}
|
||||
}}}};
|
||||
|
||||
QCOMPARE(fakeFolder.currentLocalState(), fakeFolder.currentRemoteState());
|
||||
|
||||
// Edit a file in a moved directory.
|
||||
fakeFolder.remoteModifier().setContents("folder/folderA/file.txt", 'a');
|
||||
fakeFolder.remoteModifier().rename("folder/folderA", "folder/folderB/folderA");
|
||||
fakeFolder.syncOnce();
|
||||
QCOMPARE(fakeFolder.currentLocalState(), fakeFolder.currentRemoteState());
|
||||
auto oldState = fakeFolder.currentLocalState();
|
||||
QVERIFY(oldState.find(PathComponents("folder/folderB/folderA/file.txt")));
|
||||
QVERIFY(!oldState.find(PathComponents("folder/folderA/file.txt")));
|
||||
|
||||
// This sync should not remove the file
|
||||
fakeFolder.syncOnce();
|
||||
QCOMPARE(fakeFolder.currentLocalState(), fakeFolder.currentRemoteState());
|
||||
QCOMPARE(fakeFolder.currentLocalState(), oldState);
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
QTEST_GUILESS_MAIN(TestSyncEngine)
|
||||
|
||||
+47
-47
@@ -522,7 +522,7 @@
|
||||
<context>
|
||||
<name>OCC::CleanupPollsJob</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="779"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="772"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Error en escriure les metadades a la base de dades</translation>
|
||||
</message>
|
||||
@@ -892,7 +892,7 @@ Continuing the sync as normal will cause all your files to be overwritten by an
|
||||
<translation>Error en carregar la llista de carpetes del servidor.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="205"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="204"/>
|
||||
<source>Signed out</source>
|
||||
<translation>S'ha desconnectat</translation>
|
||||
</message>
|
||||
@@ -902,96 +902,96 @@ Continuing the sync as normal will cause all your files to be overwritten by an
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="170"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="169"/>
|
||||
<source>Fetching folder list from server...</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="841"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="832"/>
|
||||
<source>Checking for changes in '%1'</source>
|
||||
<translation>S'està comprovant els canvis a '%1'</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="876"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="867"/>
|
||||
<source>, '%1'</source>
|
||||
<extracomment>Build a list of file names</extracomment>
|
||||
<translation>, '%1'</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="879"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="870"/>
|
||||
<source>'%1'</source>
|
||||
<extracomment>Argument is a file name</extracomment>
|
||||
<translation>'%1'</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="904"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="895"/>
|
||||
<source>Syncing %1</source>
|
||||
<extracomment>Example text: "Syncing 'foo.txt', 'bar.txt'"</extracomment>
|
||||
<translation>S'està sincronitzant %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="906"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="916"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="897"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="907"/>
|
||||
<source>, </source>
|
||||
<translation>, </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="910"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="901"/>
|
||||
<source>download %1/s</source>
|
||||
<extracomment>Example text: "download 24Kb/s" (%1 is replaced by 24Kb (translated))</extracomment>
|
||||
<translation>descarrega %1/s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="912"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="903"/>
|
||||
<source>u2193 %1/s</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="919"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="910"/>
|
||||
<source>upload %1/s</source>
|
||||
<extracomment>Example text: "upload 24Kb/s" (%1 is replaced by 24Kb (translated))</extracomment>
|
||||
<translation>pujada %1/s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="921"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="912"/>
|
||||
<source>u2191 %1/s</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="926"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="917"/>
|
||||
<source>%1 %2 (%3 of %4)</source>
|
||||
<extracomment>Example text: "uploading foobar.png (2MB of 2MB)"</extracomment>
|
||||
<translation>%1 %2 (%3 de %4)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="930"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="921"/>
|
||||
<source>%1 %2</source>
|
||||
<extracomment>Example text: "uploading foobar.png"</extracomment>
|
||||
<translation>%1 %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="947"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="938"/>
|
||||
<source>%5 left, %1 of %2, file %3 of %4</source>
|
||||
<extracomment>Example text: "5 minutes left, 12 MB of 345 MB, file 6 of 7"</extracomment>
|
||||
<translation>%5 pendent, %1 de %2, fitxer %3 de %4</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="953"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="944"/>
|
||||
<source>file %1 of %2</source>
|
||||
<translation>fitxer %1 de %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="993"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="984"/>
|
||||
<source>Waiting...</source>
|
||||
<translation>S'està esperant...</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="995"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="986"/>
|
||||
<source>Waiting for %n other folder(s)...</source>
|
||||
<translation><numerusform>S'està esperant %n altra carpeta...</numerusform><numerusform>S'està esperant %n altres carpetes</numerusform></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="1001"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="992"/>
|
||||
<source>Preparing to sync...</source>
|
||||
<translation>S'està preparant per sincronitzar...</translation>
|
||||
</message>
|
||||
@@ -1916,7 +1916,7 @@ No és aconsellada usar-la.</translation>
|
||||
<context>
|
||||
<name>OCC::PropagateDirectory</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="718"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="712"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Error en escriure les metadades a la base de dades</translation>
|
||||
</message>
|
||||
@@ -1954,17 +1954,17 @@ No és aconsellada usar-la.</translation>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="711"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="693"/>
|
||||
<source>File %1 cannot be saved because of a local file name clash!</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="759"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="741"/>
|
||||
<source>File has changed since discovery</source>
|
||||
<translation>El fitxer ha canviat des de que es va descobrir</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="809"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="791"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Error en escriure les metadades a la base de dades</translation>
|
||||
</message>
|
||||
@@ -2450,18 +2450,18 @@ No és aconsellada usar-la.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="366"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="413"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="412"/>
|
||||
<source>Public sh&aring requires a password</source>
|
||||
<translation>La comp&artició pública requereix una contrasenya</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="435"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="434"/>
|
||||
<source>Please Set Password</source>
|
||||
<translation>Establiu la contrasenya</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="500"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="501"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="498"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="499"/>
|
||||
<source>&Share link</source>
|
||||
<translation>Com&parteix l'enllaç</translation>
|
||||
</message>
|
||||
@@ -2871,12 +2871,12 @@ No és aconsellada usar-la.</translation>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1139"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1134"/>
|
||||
<source>Not allowed because you don't have permission to add parent folder</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1146"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1141"/>
|
||||
<source>Not allowed because you don't have permission to add files in that folder</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
@@ -2981,64 +2981,64 @@ No és aconsellada usar-la.</translation>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="791"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="787"/>
|
||||
<source>Unable to read from the sync journal.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="837"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="833"/>
|
||||
<source>Cannot open the sync journal</source>
|
||||
<translation>No es pot obrir el diari de sincronització</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="894"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="889"/>
|
||||
<source>File name contains at least one invalid character</source>
|
||||
<translation>El nom del fitxer conté al menys un caràcter invàlid</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1098"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1105"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1093"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1100"/>
|
||||
<source>Ignored because of the "choose what to sync" blacklist</source>
|
||||
<translation>S'ignora degut al filtre a «Trieu què sincronitzar»</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1124"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1119"/>
|
||||
<source>Not allowed because you don't have permission to add subfolders to that folder</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1166"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1161"/>
|
||||
<source>Not allowed to upload this file because it is read-only on the server, restoring</source>
|
||||
<translation>No es permet pujar aquest fitxer perquè només és de lectura en el servidor, es restaura</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1183"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1203"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1178"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1198"/>
|
||||
<source>Not allowed to remove, restoring</source>
|
||||
<translation>No es permet l'eliminació, es restaura</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1216"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1211"/>
|
||||
<source>Local files and share folder removed.</source>
|
||||
<translation>Fitxers locals i carpeta compartida esborrats.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1272"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1267"/>
|
||||
<source>Move not allowed, item restored</source>
|
||||
<translation>No es permet moure'l, l'element es restaura</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1283"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1278"/>
|
||||
<source>Move not allowed because %1 is read-only</source>
|
||||
<translation>No es permet moure perquè %1 només és de lectura</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1284"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1279"/>
|
||||
<source>the destination</source>
|
||||
<translation>el destí</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1284"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1279"/>
|
||||
<source>the source</source>
|
||||
<translation>l'origen</translation>
|
||||
</message>
|
||||
@@ -3068,7 +3068,7 @@ No és aconsellada usar-la.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/theme.cpp" line="289"/>
|
||||
<source><p>Copyright ownCloud GmbH</p></source>
|
||||
<source><p>Copyright ownCloud, Incorporated</p></source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
@@ -3293,8 +3293,8 @@ No és aconsellada usar-la.</translation>
|
||||
<name>OCC::ownCloudTheme</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudtheme.cpp" line="47"/>
|
||||
<source><p>Version %2. For more information visit <a href="%3">%4</a></p><p><small>By Klaas Freitag, Daniel Molkentin, Jan-Christoph Borchardt, Olivier Goffart, Markus Götz and others.</small></p><p>Copyright ownCloud GmbH</p><p>Licensed under the GNU General Public License (GPL) Version 2.0<br/>ownCloud and the ownCloud Logo are registered trademarks of ownCloud, Inc. in the United States, other countries, or both.</p></source>
|
||||
<translation type="unfinished"/>
|
||||
<source><p>Version %2. For more information visit <a href="%3">%4</a></p><p><small>By Klaas Freitag, Daniel Molkentin, Jan-Christoph Borchardt, Olivier Goffart, Markus Götz and others.</small></p><p>Copyright ownCloud, Inc.</p><p>Licensed under the GNU General Public License (GPL) Version 2.0<br/>ownCloud and the ownCloud Logo are registered trademarks of ownCloud, Inc. in the United States, other countries, or both.</p></source>
|
||||
<translation><p>Versió %2. Per més informació visiteu <a href="%3">%4</a></p><p><small>Per Klaas Freitag, Daniel Molkentin, Jan-Christoph Borchardt, Olivier Goffart, Markus Götz i altres.</small></p><p>Copyright ownCloud, Inc.</p><p>amb llicència GNU General Public License (GPL) versió 2.0<br/>ownCloud i el logo d'ownCloud són marques registrades d'ownCloud, Inc. als Estats Units, altres països, o ambdós.</p></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
||||
+48
-48
@@ -522,7 +522,7 @@
|
||||
<context>
|
||||
<name>OCC::CleanupPollsJob</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="779"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="772"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Chyba zápisu metadat do databáze</translation>
|
||||
</message>
|
||||
@@ -894,7 +894,7 @@ Pokračováním v synchronizaci způsobí přepsání všech vašich souborů st
|
||||
<translation>Chyba při načítání seznamu adresářů ze serveru.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="205"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="204"/>
|
||||
<source>Signed out</source>
|
||||
<translation>Odhlášeno</translation>
|
||||
</message>
|
||||
@@ -904,96 +904,96 @@ Pokračováním v synchronizaci způsobí přepsání všech vašich souborů st
|
||||
<translation>Přidání adresáře je vypnuto, protože již synchronizujete všechny své soubory. Pokud chcete synchronizovat pouze některé adresáře, odstraňte aktuálně nastavený kořenový adresář.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="170"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="169"/>
|
||||
<source>Fetching folder list from server...</source>
|
||||
<translation>Načítání seznamu adresářů ze serveru...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="841"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="832"/>
|
||||
<source>Checking for changes in '%1'</source>
|
||||
<translation>Kontrola změn v '%1'</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="876"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="867"/>
|
||||
<source>, '%1'</source>
|
||||
<extracomment>Build a list of file names</extracomment>
|
||||
<translation>, '%1'</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="879"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="870"/>
|
||||
<source>'%1'</source>
|
||||
<extracomment>Argument is a file name</extracomment>
|
||||
<translation>'%1'</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="904"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="895"/>
|
||||
<source>Syncing %1</source>
|
||||
<extracomment>Example text: "Syncing 'foo.txt', 'bar.txt'"</extracomment>
|
||||
<translation>Synchronizuji %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="906"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="916"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="897"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="907"/>
|
||||
<source>, </source>
|
||||
<translation>, </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="910"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="901"/>
|
||||
<source>download %1/s</source>
|
||||
<extracomment>Example text: "download 24Kb/s" (%1 is replaced by 24Kb (translated))</extracomment>
|
||||
<translation>stahování %1/s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="912"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="903"/>
|
||||
<source>u2193 %1/s</source>
|
||||
<translation>u2193 %1/s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="919"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="910"/>
|
||||
<source>upload %1/s</source>
|
||||
<extracomment>Example text: "upload 24Kb/s" (%1 is replaced by 24Kb (translated))</extracomment>
|
||||
<translation>nahrávání %1/s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="921"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="912"/>
|
||||
<source>u2191 %1/s</source>
|
||||
<translation>u2191 %1/s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="926"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="917"/>
|
||||
<source>%1 %2 (%3 of %4)</source>
|
||||
<extracomment>Example text: "uploading foobar.png (2MB of 2MB)"</extracomment>
|
||||
<translation>%1 %2 (%3 ze %4)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="930"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="921"/>
|
||||
<source>%1 %2</source>
|
||||
<extracomment>Example text: "uploading foobar.png"</extracomment>
|
||||
<translation>%1 %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="947"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="938"/>
|
||||
<source>%5 left, %1 of %2, file %3 of %4</source>
|
||||
<extracomment>Example text: "5 minutes left, 12 MB of 345 MB, file 6 of 7"</extracomment>
|
||||
<translation>%5 zbývá, %1 ze %2, soubor %3 z %4</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="953"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="944"/>
|
||||
<source>file %1 of %2</source>
|
||||
<translation>soubor %1 z %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="993"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="984"/>
|
||||
<source>Waiting...</source>
|
||||
<translation>Chvíli strpení...</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="995"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="986"/>
|
||||
<source>Waiting for %n other folder(s)...</source>
|
||||
<translation><numerusform>Čeká se na %n další adresář...</numerusform><numerusform>Čeká se na %n další adresáře...</numerusform><numerusform>Čeká se na %n dalších adresářů...</numerusform></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="1001"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="992"/>
|
||||
<source>Preparing to sync...</source>
|
||||
<translation>Synchronizace se připravuje...</translation>
|
||||
</message>
|
||||
@@ -1918,7 +1918,7 @@ Nedoporučuje se jí používat.</translation>
|
||||
<context>
|
||||
<name>OCC::PropagateDirectory</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="718"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="712"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Chyba zápisu metadat do databáze</translation>
|
||||
</message>
|
||||
@@ -1956,17 +1956,17 @@ Nedoporučuje se jí používat.</translation>
|
||||
<translation>Stažený soubor je prázdný, přestože server oznámil, že měl být %1.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="711"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="693"/>
|
||||
<source>File %1 cannot be saved because of a local file name clash!</source>
|
||||
<translation>Soubor %1 nemohl být uložen z důvodu kolize názvu se souborem v místním systému!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="759"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="741"/>
|
||||
<source>File has changed since discovery</source>
|
||||
<translation>Soubor se mezitím změnil</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="809"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="791"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Chyba zápisu metadat do databáze</translation>
|
||||
</message>
|
||||
@@ -2452,18 +2452,18 @@ Nedoporučuje se jí používat.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="366"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="413"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="412"/>
|
||||
<source>Public sh&aring requires a password</source>
|
||||
<translation>Veřejné s&dílení vyžaduje heslo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="435"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="434"/>
|
||||
<source>Please Set Password</source>
|
||||
<translation>Nastavte prosím heslo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="500"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="501"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="498"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="499"/>
|
||||
<source>&Share link</source>
|
||||
<translation>&Sdílet odkaz</translation>
|
||||
</message>
|
||||
@@ -2873,12 +2873,12 @@ Nedoporučuje se jí používat.</translation>
|
||||
<translation>Je dostupných pouze %1, pro spuštění je potřeba alespoň %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1139"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1134"/>
|
||||
<source>Not allowed because you don't have permission to add parent folder</source>
|
||||
<translation>Není povoleno, protože nemáte oprávnění vytvořit nadřazený adresář</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1146"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1141"/>
|
||||
<source>Not allowed because you don't have permission to add files in that folder</source>
|
||||
<translation>Není povoleno, protože nemáte oprávnění přidávat soubory do tohoto adresáře</translation>
|
||||
</message>
|
||||
@@ -2983,64 +2983,64 @@ Nedoporučuje se jí používat.</translation>
|
||||
<translation>Nelze načíst blacklist z místní databáze</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="791"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="787"/>
|
||||
<source>Unable to read from the sync journal.</source>
|
||||
<translation>Nelze číst ze žurnálu synchronizace.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="837"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="833"/>
|
||||
<source>Cannot open the sync journal</source>
|
||||
<translation>Nelze otevřít synchronizační žurnál</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="894"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="889"/>
|
||||
<source>File name contains at least one invalid character</source>
|
||||
<translation>Jméno souboru obsahuje aelspoň jeden neplatný znak</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1098"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1105"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1093"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1100"/>
|
||||
<source>Ignored because of the "choose what to sync" blacklist</source>
|
||||
<translation>Ignorováno podle nastavení "vybrat co synchronizovat"</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1124"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1119"/>
|
||||
<source>Not allowed because you don't have permission to add subfolders to that folder</source>
|
||||
<translation>Není povoleno, protože nemáte oprávnění přidávat podadresáře do tohoto adresáře</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1166"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1161"/>
|
||||
<source>Not allowed to upload this file because it is read-only on the server, restoring</source>
|
||||
<translation>Není povoleno nahrát tento soubor, protože je na serveru uložen pouze pro čtení, obnovuji</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1183"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1203"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1178"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1198"/>
|
||||
<source>Not allowed to remove, restoring</source>
|
||||
<translation>Odstranění není povoleno, obnovuji</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1216"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1211"/>
|
||||
<source>Local files and share folder removed.</source>
|
||||
<translation>Místní soubory a sdílený adresář byly odstraněny.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1272"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1267"/>
|
||||
<source>Move not allowed, item restored</source>
|
||||
<translation>Přesun není povolen, položka obnovena</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1283"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1278"/>
|
||||
<source>Move not allowed because %1 is read-only</source>
|
||||
<translation>Přesun není povolen, protože %1 je pouze pro čtení</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1284"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1279"/>
|
||||
<source>the destination</source>
|
||||
<translation>cílové umístění</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1284"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1279"/>
|
||||
<source>the source</source>
|
||||
<translation>zdroj</translation>
|
||||
</message>
|
||||
@@ -3070,8 +3070,8 @@ Nedoporučuje se jí používat.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/theme.cpp" line="289"/>
|
||||
<source><p>Copyright ownCloud GmbH</p></source>
|
||||
<translation><p>Copyright ownCloud GmbH</p></translation>
|
||||
<source><p>Copyright ownCloud, Incorporated</p></source>
|
||||
<translation><p>Copyright ownCloud, Incorporated</p></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/theme.cpp" line="290"/>
|
||||
@@ -3295,8 +3295,8 @@ Nedoporučuje se jí používat.</translation>
|
||||
<name>OCC::ownCloudTheme</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudtheme.cpp" line="47"/>
|
||||
<source><p>Version %2. For more information visit <a href="%3">%4</a></p><p><small>By Klaas Freitag, Daniel Molkentin, Jan-Christoph Borchardt, Olivier Goffart, Markus Götz and others.</small></p><p>Copyright ownCloud GmbH</p><p>Licensed under the GNU General Public License (GPL) Version 2.0<br/>ownCloud and the ownCloud Logo are registered trademarks of ownCloud, Inc. in the United States, other countries, or both.</p></source>
|
||||
<translation><p>Verze %2. Pro další informace navštivte <a href="%3">%4</a></p><p><small>Klaas Freitag, Daniel Molkentin, Jan-Christoph Borchardt, Olivier Goffart, Markus Götz a další.</small></p><p>Copyright ownCloud GmbH</p><p>Licencováno pod GNU General Public License (GPL) Version 2.0<br/>ownCloud a ownCloud logo jsou registrované obchodní známky ownCloud, Inc. ve Spojených státech, ostatních zemích nebo obojí</p></translation>
|
||||
<source><p>Version %2. For more information visit <a href="%3">%4</a></p><p><small>By Klaas Freitag, Daniel Molkentin, Jan-Christoph Borchardt, Olivier Goffart, Markus Götz and others.</small></p><p>Copyright ownCloud, Inc.</p><p>Licensed under the GNU General Public License (GPL) Version 2.0<br/>ownCloud and the ownCloud Logo are registered trademarks of ownCloud, Inc. in the United States, other countries, or both.</p></source>
|
||||
<translation><p>Verze %2. Pro další informace navštivte <a href="%3">%4</a></p><p><small>Klaas Freitag, Daniel Molkentin, Jan-Christoph Borchardt, Olivier Goffart, Markus Götz a další.</small></p><p>Copyright ownCloud, Inc.</p><p>Licencováno pod GNU General Public License (GPL) Version 2.0<br/>ownCloud a ownCloud logo jsou registrované obchodní známky ownCloud, Inc. ve Spojených státech, ostatních zemích nebo obojí</p></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
||||
+48
-48
@@ -522,7 +522,7 @@
|
||||
<context>
|
||||
<name>OCC::CleanupPollsJob</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="779"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="772"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Fehler beim Schreiben der Metadaten in die Datenbank</translation>
|
||||
</message>
|
||||
@@ -893,7 +893,7 @@ Wenn diese Synchronisation fortgesetzt wird, werden Dateien eventuell von älter
|
||||
<translation>Fehler beim Empfang der Ordnerliste vom Server.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="205"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="204"/>
|
||||
<source>Signed out</source>
|
||||
<translation>Abgemeldet</translation>
|
||||
</message>
|
||||
@@ -903,96 +903,96 @@ Wenn diese Synchronisation fortgesetzt wird, werden Dateien eventuell von älter
|
||||
<translation>Sie können keinen weiteren Ordner hinzufügen, da Sie bereits alle Dateien synchronisieren. Falls sie mehrere Ordner synchronisieren wollen, entferen Sie zunächst den konfigurierten Wurzel-Ordner.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="170"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="169"/>
|
||||
<source>Fetching folder list from server...</source>
|
||||
<translation>Empfange Orderliste vom Server...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="841"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="832"/>
|
||||
<source>Checking for changes in '%1'</source>
|
||||
<translation>Nach Änderungen suchen in '%1'</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="876"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="867"/>
|
||||
<source>, '%1'</source>
|
||||
<extracomment>Build a list of file names</extracomment>
|
||||
<translation>, '%1'</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="879"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="870"/>
|
||||
<source>'%1'</source>
|
||||
<extracomment>Argument is a file name</extracomment>
|
||||
<translation>'%1'</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="904"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="895"/>
|
||||
<source>Syncing %1</source>
|
||||
<extracomment>Example text: "Syncing 'foo.txt', 'bar.txt'"</extracomment>
|
||||
<translation>Synchronisiere %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="906"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="916"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="897"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="907"/>
|
||||
<source>, </source>
|
||||
<translation>, </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="910"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="901"/>
|
||||
<source>download %1/s</source>
|
||||
<extracomment>Example text: "download 24Kb/s" (%1 is replaced by 24Kb (translated))</extracomment>
|
||||
<translation>Download %1/s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="912"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="903"/>
|
||||
<source>u2193 %1/s</source>
|
||||
<translation>u2193 %1/s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="919"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="910"/>
|
||||
<source>upload %1/s</source>
|
||||
<extracomment>Example text: "upload 24Kb/s" (%1 is replaced by 24Kb (translated))</extracomment>
|
||||
<translation>Upload %1/s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="921"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="912"/>
|
||||
<source>u2191 %1/s</source>
|
||||
<translation>u2191 %1/s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="926"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="917"/>
|
||||
<source>%1 %2 (%3 of %4)</source>
|
||||
<extracomment>Example text: "uploading foobar.png (2MB of 2MB)"</extracomment>
|
||||
<translation>%1 %2 (%3 von %4)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="930"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="921"/>
|
||||
<source>%1 %2</source>
|
||||
<extracomment>Example text: "uploading foobar.png"</extracomment>
|
||||
<translation>%1 %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="947"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="938"/>
|
||||
<source>%5 left, %1 of %2, file %3 of %4</source>
|
||||
<extracomment>Example text: "5 minutes left, 12 MB of 345 MB, file 6 of 7"</extracomment>
|
||||
<translation>%5 übrig, %1 von %2, Datei %3 von %4</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="953"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="944"/>
|
||||
<source>file %1 of %2</source>
|
||||
<translation>Datei %1 von %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="993"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="984"/>
|
||||
<source>Waiting...</source>
|
||||
<translation>Warte...</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="995"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="986"/>
|
||||
<source>Waiting for %n other folder(s)...</source>
|
||||
<translation><numerusform>Warte auf einen anderen Ordner</numerusform><numerusform>Warte auf %n andere Ordner</numerusform></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="1001"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="992"/>
|
||||
<source>Preparing to sync...</source>
|
||||
<translation>Bereite Synchronisation vor...</translation>
|
||||
</message>
|
||||
@@ -1916,7 +1916,7 @@ Es ist nicht ratsam, diese zu benutzen.</translation>
|
||||
<context>
|
||||
<name>OCC::PropagateDirectory</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="718"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="712"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Fehler beim Schreiben der Metadaten in die Datenbank</translation>
|
||||
</message>
|
||||
@@ -1954,17 +1954,17 @@ Es ist nicht ratsam, diese zu benutzen.</translation>
|
||||
<translation>Die heruntergeladene Datei ist leer, obwohl der Server %1 als Größe übermittelt hat.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="711"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="693"/>
|
||||
<source>File %1 cannot be saved because of a local file name clash!</source>
|
||||
<translation>Die Datei %1 kann aufgrund eines Konfliktes mit dem lokalen Dateinamen nicht gespeichert geladen werden!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="759"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="741"/>
|
||||
<source>File has changed since discovery</source>
|
||||
<translation>Datei ist seit der Entdeckung geändert worden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="809"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="791"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Fehler beim Schreiben der Metadaten in die Datenbank</translation>
|
||||
</message>
|
||||
@@ -2450,18 +2450,18 @@ Es ist nicht ratsam, diese zu benutzen.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="366"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="413"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="412"/>
|
||||
<source>Public sh&aring requires a password</source>
|
||||
<translation>Öffentliches Teilen erfordert ein P&asswort</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="435"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="434"/>
|
||||
<source>Please Set Password</source>
|
||||
<translation>Bitte wählen Sie ein Passwort:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="500"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="501"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="498"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="499"/>
|
||||
<source>&Share link</source>
|
||||
<translation>&Link teilen</translation>
|
||||
</message>
|
||||
@@ -2871,12 +2871,12 @@ Es ist nicht ratsam, diese zu benutzen.</translation>
|
||||
<translation>Nur %1 sind verfügbar. Zum Beginnen werden mindestens %2 benötigt.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1139"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1134"/>
|
||||
<source>Not allowed because you don't have permission to add parent folder</source>
|
||||
<translation>Nicht erlaubt, da Sie keine Rechte zur Erstellung von Unterordnern haben</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1146"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1141"/>
|
||||
<source>Not allowed because you don't have permission to add files in that folder</source>
|
||||
<translation>Nicht erlaubt, da Sie keine Rechte zum Hinzufügen von Dateien in diesen Ordner haben</translation>
|
||||
</message>
|
||||
@@ -2981,64 +2981,64 @@ Es ist nicht ratsam, diese zu benutzen.</translation>
|
||||
<translation>Fehler beim Einlesen der Blacklist aus der lokalen Datenbank</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="791"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="787"/>
|
||||
<source>Unable to read from the sync journal.</source>
|
||||
<translation>Fehler beim Einlesen des Synchronisierungsprotokolls.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="837"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="833"/>
|
||||
<source>Cannot open the sync journal</source>
|
||||
<translation>Synchronisationsbericht kann nicht geöffnet werden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="894"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="889"/>
|
||||
<source>File name contains at least one invalid character</source>
|
||||
<translation>Der Dateiname enthält mindestens ein ungültiges Zeichen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1098"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1105"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1093"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1100"/>
|
||||
<source>Ignored because of the "choose what to sync" blacklist</source>
|
||||
<translation>Aufgrund der »Zu synchronisierende Elemente auswählen«-Sperrliste ignoriert</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1124"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1119"/>
|
||||
<source>Not allowed because you don't have permission to add subfolders to that folder</source>
|
||||
<translation>Nicht erlaubt, da Sie keine Rechte zur Erstellung von Unterordnern haben</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1166"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1161"/>
|
||||
<source>Not allowed to upload this file because it is read-only on the server, restoring</source>
|
||||
<translation>Das Hochladen dieser Datei ist nicht erlaubt, da die Datei auf dem Server schreibgeschützt ist, Wiederherstellung</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1183"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1203"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1178"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1198"/>
|
||||
<source>Not allowed to remove, restoring</source>
|
||||
<translation>Löschen nicht erlaubt, Wiederherstellung</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1216"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1211"/>
|
||||
<source>Local files and share folder removed.</source>
|
||||
<translation>Lokale Dateien und Freigabeordner wurden entfernt.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1272"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1267"/>
|
||||
<source>Move not allowed, item restored</source>
|
||||
<translation>Verschieben nicht erlaubt, Element wiederhergestellt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1283"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1278"/>
|
||||
<source>Move not allowed because %1 is read-only</source>
|
||||
<translation>Verschieben nicht erlaubt, da %1 schreibgeschützt ist</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1284"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1279"/>
|
||||
<source>the destination</source>
|
||||
<translation>Das Ziel</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1284"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1279"/>
|
||||
<source>the source</source>
|
||||
<translation>Die Quelle</translation>
|
||||
</message>
|
||||
@@ -3068,8 +3068,8 @@ Es ist nicht ratsam, diese zu benutzen.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/theme.cpp" line="289"/>
|
||||
<source><p>Copyright ownCloud GmbH</p></source>
|
||||
<translation><p>Copyright ownCloud GmbH</p></translation>
|
||||
<source><p>Copyright ownCloud, Incorporated</p></source>
|
||||
<translation><p>Copyright ownCloud, Incorporated</p></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/theme.cpp" line="290"/>
|
||||
@@ -3293,8 +3293,8 @@ Es ist nicht ratsam, diese zu benutzen.</translation>
|
||||
<name>OCC::ownCloudTheme</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudtheme.cpp" line="47"/>
|
||||
<source><p>Version %2. For more information visit <a href="%3">%4</a></p><p><small>By Klaas Freitag, Daniel Molkentin, Jan-Christoph Borchardt, Olivier Goffart, Markus Götz and others.</small></p><p>Copyright ownCloud GmbH</p><p>Licensed under the GNU General Public License (GPL) Version 2.0<br/>ownCloud and the ownCloud Logo are registered trademarks of ownCloud, Inc. in the United States, other countries, or both.</p></source>
|
||||
<translation><p>Version %2. Weitere Informationen unter <a href="%3">%4</a></p><p><small>Von Klaas Freitag, Daniel Molkentin, Jan-Christoph Borchardt, Olivier Goffart, Markus Götz und anderen.</small></p><p>Copyright ownCloud GmbH</p><p>Lizensiert unter den Bedingungen der GNU General Public License (GPL) Version 2.0<br/>ownCloud und das ownCloud Logo sind eingetragene Warenzeichen der ownCloud Inc. in den USA, anderen Ländern, oder beidem.</p></translation>
|
||||
<source><p>Version %2. For more information visit <a href="%3">%4</a></p><p><small>By Klaas Freitag, Daniel Molkentin, Jan-Christoph Borchardt, Olivier Goffart, Markus Götz and others.</small></p><p>Copyright ownCloud, Inc.</p><p>Licensed under the GNU General Public License (GPL) Version 2.0<br/>ownCloud and the ownCloud Logo are registered trademarks of ownCloud, Inc. in the United States, other countries, or both.</p></source>
|
||||
<translation><p>Version %2. Weitere Informationen unter <a href="%3">%4</a></p><p><small>Von Klaas Freitag, Daniel Molkentin, Jan-Christoph Borchardt, Olivier Goffart, Markus Götz und anderen.</small></p><p>Copyright ownCloud, Inc.</p><p>Lizensiert unter den Bedingungen der GNU General Public License (GPL) Version 2.0<br/>ownCloud und das ownCloud Logo sind eingetragene Warenzeichen der ownCloud Inc. in den USA, anderen Ländern, oder beidem.</p></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
||||
+81
-81
@@ -522,9 +522,9 @@
|
||||
<context>
|
||||
<name>OCC::CleanupPollsJob</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="779"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="772"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Σφάλμα εγγραφής μεταδεδομένων στην βάση δεδομένων</translation>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@@ -724,7 +724,7 @@ Continuing the sync as normal will cause all your files to be overwritten by an
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="1006"/>
|
||||
<source>Backup detected</source>
|
||||
<translation>Ανιχνεύθηκε αντίγραφο ασφαλείας</translation>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="1008"/>
|
||||
@@ -860,7 +860,7 @@ Continuing the sync as normal will cause all your files to be overwritten by an
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusdelegate.cpp" line="241"/>
|
||||
<source>Synchronizing with local folder</source>
|
||||
<translation>Συγχρονισμός με τοπικό φάκελο</translation>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusdelegate.cpp" line="285"/>
|
||||
@@ -892,7 +892,7 @@ Continuing the sync as normal will cause all your files to be overwritten by an
|
||||
<translation>Σφάλμα κατά τη φόρτωση της λίστας φακέλων από το διακομιστή.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="205"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="204"/>
|
||||
<source>Signed out</source>
|
||||
<translation>Αποσύνδεση</translation>
|
||||
</message>
|
||||
@@ -902,96 +902,96 @@ Continuing the sync as normal will cause all your files to be overwritten by an
|
||||
<translation>Η επιλογή προσθήκης φακέλου δεν είναι διαθέσιμη καθώς συγχρονίζονται ήδη όλα τα αρχεία. Για να επιλέξετε συγχρονισμό φακέλων, αφαιρέστε τον αρχικό φάκελο που έχει ρυθμιστεί.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="170"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="169"/>
|
||||
<source>Fetching folder list from server...</source>
|
||||
<translation>Λήψη λίστας φακέλων από το διακομιστή...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="841"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="832"/>
|
||||
<source>Checking for changes in '%1'</source>
|
||||
<translation>Έλεγχος αλλαγών στο '%1'.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="876"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="867"/>
|
||||
<source>, '%1'</source>
|
||||
<extracomment>Build a list of file names</extracomment>
|
||||
<translation>, '%1'</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="879"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="870"/>
|
||||
<source>'%1'</source>
|
||||
<extracomment>Argument is a file name</extracomment>
|
||||
<translation>'%1'</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="904"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="895"/>
|
||||
<source>Syncing %1</source>
|
||||
<extracomment>Example text: "Syncing 'foo.txt', 'bar.txt'"</extracomment>
|
||||
<translation>Συγχρονισμός %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="906"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="916"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="897"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="907"/>
|
||||
<source>, </source>
|
||||
<translation>, </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="910"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="901"/>
|
||||
<source>download %1/s</source>
|
||||
<extracomment>Example text: "download 24Kb/s" (%1 is replaced by 24Kb (translated))</extracomment>
|
||||
<translation>λήψη %1/s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="912"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="903"/>
|
||||
<source>u2193 %1/s</source>
|
||||
<translation>u2193 %1/s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="919"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="910"/>
|
||||
<source>upload %1/s</source>
|
||||
<extracomment>Example text: "upload 24Kb/s" (%1 is replaced by 24Kb (translated))</extracomment>
|
||||
<translation>μεταφόρτωση %1/s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="921"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="912"/>
|
||||
<source>u2191 %1/s</source>
|
||||
<translation>u2191 %1/s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="926"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="917"/>
|
||||
<source>%1 %2 (%3 of %4)</source>
|
||||
<extracomment>Example text: "uploading foobar.png (2MB of 2MB)"</extracomment>
|
||||
<translation>%1 %2 (%3 από %4)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="930"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="921"/>
|
||||
<source>%1 %2</source>
|
||||
<extracomment>Example text: "uploading foobar.png"</extracomment>
|
||||
<translation>%1 %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="947"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="938"/>
|
||||
<source>%5 left, %1 of %2, file %3 of %4</source>
|
||||
<extracomment>Example text: "5 minutes left, 12 MB of 345 MB, file 6 of 7"</extracomment>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="953"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="944"/>
|
||||
<source>file %1 of %2</source>
|
||||
<translation>αρχείο %1 από %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="993"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="984"/>
|
||||
<source>Waiting...</source>
|
||||
<translation>Αναμονή...</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="995"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="986"/>
|
||||
<source>Waiting for %n other folder(s)...</source>
|
||||
<translation><numerusform>Αναμονή για %n άλλο φάκελο...</numerusform><numerusform>Αναμονή για %n άλλους φακέλους...</numerusform></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="1001"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="992"/>
|
||||
<source>Preparing to sync...</source>
|
||||
<translation>Προετοιμασία για συγχρονισμό...</translation>
|
||||
</message>
|
||||
@@ -1526,7 +1526,7 @@ Items where deletion is allowed will be deleted if they prevent a directory from
|
||||
<message>
|
||||
<location filename="../src/gui/notificationwidget.cpp" line="99"/>
|
||||
<source>Closing in a few seconds...</source>
|
||||
<translation>Κλείσιμο σε λίγα δευτερόλεπτα...</translation>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/notificationwidget.cpp" line="133"/>
|
||||
@@ -1916,9 +1916,9 @@ It is not advisable to use it.</source>
|
||||
<context>
|
||||
<name>OCC::PropagateDirectory</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="718"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="712"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Σφάλμα εγγραφής μεταδεδομένων στην βάση δεδομένων</translation>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@@ -1954,19 +1954,19 @@ It is not advisable to use it.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="711"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="693"/>
|
||||
<source>File %1 cannot be saved because of a local file name clash!</source>
|
||||
<translation>Το αρχείο %1 δεν είναι δυνατό να αποθηκευτεί λόγω διένεξης με το όνομα ενός τοπικού ονόματος αρχείου!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="759"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="741"/>
|
||||
<source>File has changed since discovery</source>
|
||||
<translation>Το αρχείο έχει αλλάξει από όταν ανακαλύφθηκε</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="809"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="791"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Σφάλμα εγγραφής μεταδεδομένων στην βάση δεδομένων</translation>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@@ -1992,7 +1992,7 @@ It is not advisable to use it.</source>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatorjobs.cpp" line="155"/>
|
||||
<source>could not delete file %1, error: %2</source>
|
||||
<translation>αδυναμία διαγραφής αρχείου %1, σφάλμα: %2</translation>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatorjobs.cpp" line="163"/>
|
||||
@@ -2007,7 +2007,7 @@ It is not advisable to use it.</source>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatorjobs.cpp" line="181"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Σφάλμα εγγραφής μεταδεδομένων στην βάση δεδομένων</translation>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@@ -2038,7 +2038,7 @@ It is not advisable to use it.</source>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatorjobs.cpp" line="245"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Σφάλμα εγγραφής μεταδεδομένων στην βάση δεδομένων</translation>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@@ -2064,7 +2064,7 @@ It is not advisable to use it.</source>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="148"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Σφάλμα εγγραφής μεταδεδομένων στην βάση δεδομένων</translation>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@@ -2092,7 +2092,7 @@ It is not advisable to use it.</source>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="175"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Σφάλμα εγγραφής μεταδεδομένων στην βάση δεδομένων</translation>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@@ -2141,7 +2141,7 @@ It is not advisable to use it.</source>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateupload.cpp" line="800"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Σφάλμα εγγραφής μεταδεδομένων στην βάση δεδομένων</translation>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@@ -2184,7 +2184,7 @@ It is not advisable to use it.</source>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="78"/>
|
||||
<source>Local sync protocol</source>
|
||||
<translation>Πρωτόκολλο τοπικού συγχρονισμού</translation>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="80"/>
|
||||
@@ -2279,7 +2279,7 @@ It is not advisable to use it.</source>
|
||||
<message>
|
||||
<location filename="../src/gui/selectivesyncdialog.cpp" line="247"/>
|
||||
<source>An error occurred while loading the list of sub folders.</source>
|
||||
<translation>Παρουσιάστηκε σφάλμα κατά την φόρτωση της λίστας των υπο-φακέλων</translation>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@@ -2378,7 +2378,7 @@ It is not advisable to use it.</source>
|
||||
<message>
|
||||
<location filename="../src/gui/sharedialog.cpp" line="101"/>
|
||||
<source>The server does not allow sharing</source>
|
||||
<translation>Ο διακομιστής δεν επιτρέπει τον διαμοιρασμό</translation>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharedialog.cpp" line="113"/>
|
||||
@@ -2450,18 +2450,18 @@ It is not advisable to use it.</source>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="366"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="413"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="412"/>
|
||||
<source>Public sh&aring requires a password</source>
|
||||
<translation>Ο δημόσιος &διαμοιρασμός απαιτεί κωδικό πρόσβασης</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="435"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="434"/>
|
||||
<source>Please Set Password</source>
|
||||
<translation>Παρακαλούμε ορίστε Κωδικό</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="500"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="501"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="498"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="499"/>
|
||||
<source>&Share link</source>
|
||||
<translation>Δ&ιαμοιρασμός συνδέσμου</translation>
|
||||
</message>
|
||||
@@ -2481,7 +2481,7 @@ It is not advisable to use it.</source>
|
||||
<message>
|
||||
<location filename="../src/gui/shareusergroupwidget.cpp" line="224"/>
|
||||
<source>No results for '%1'</source>
|
||||
<translation>Κανένα αποτέλεσμα για '%1'</translation>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@@ -2862,7 +2862,7 @@ It is not advisable to use it.</source>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="440"/>
|
||||
<source>File/Folder is ignored because it's hidden.</source>
|
||||
<translation>Το Αρχείο/ο Φάκελος αγνοήθηκε επειδή είναι κρυφό.</translation>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="701"/>
|
||||
@@ -2871,12 +2871,12 @@ It is not advisable to use it.</source>
|
||||
<translation>Μόνο %1 είναι διαθέσιμα, απαιτούνται τουλάχιστον %2 για την εκκίνηση</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1139"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1134"/>
|
||||
<source>Not allowed because you don't have permission to add parent folder</source>
|
||||
<translation>Δεν επιτρέπεται επειδή δεν έχετε δικαιώματα να προσθέσετε γονικό κατάλογο</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1146"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1141"/>
|
||||
<source>Not allowed because you don't have permission to add files in that folder</source>
|
||||
<translation>Δεν επιτρέπεται επειδή δεν έχετε δικαιώματα να προσθέσετε αρχεία σε αυτόν τον φάκελο</translation>
|
||||
</message>
|
||||
@@ -2928,7 +2928,7 @@ It is not advisable to use it.</source>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="188"/>
|
||||
<source>Access is forbidden</source>
|
||||
<translation>Δεν επιτρέπεται η πρόσβαση</translation>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="199"/>
|
||||
@@ -2978,67 +2978,67 @@ It is not advisable to use it.</source>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="754"/>
|
||||
<source>Unable to read the blacklist from the local database</source>
|
||||
<translation>Αδυναμία ανάγνωσης της μαύρης λίστας από την τοπική βάση δεδομένων</translation>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="791"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="787"/>
|
||||
<source>Unable to read from the sync journal.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="837"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="833"/>
|
||||
<source>Cannot open the sync journal</source>
|
||||
<translation>Αδυναμία ανοίγματος του αρχείου συγχρονισμού</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="894"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="889"/>
|
||||
<source>File name contains at least one invalid character</source>
|
||||
<translation>Το όνομα αρχείου περιέχει έναν τουλάχιστον μη έγκυρο χαρακτήρα</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1098"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1105"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1093"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1100"/>
|
||||
<source>Ignored because of the "choose what to sync" blacklist</source>
|
||||
<translation>Αγνοήθηκε εξαιτίας της μαύρης λίστας "διάλεξε τι να συγχρονιστεί"</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1124"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1119"/>
|
||||
<source>Not allowed because you don't have permission to add subfolders to that folder</source>
|
||||
<translation>Δεν επιτρέπεται επειδή δεν έχετε δικαιώματα να προσθέσετε υποφακέλους σε αυτό τον φάκελο</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1166"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1161"/>
|
||||
<source>Not allowed to upload this file because it is read-only on the server, restoring</source>
|
||||
<translation>Δεν επιτρέπεται να μεταφορτώσετε αυτό το αρχείο επειδή είναι μόνο για ανάγνωση στο διακομιστή, αποκατάσταση σε εξέλιξη</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1183"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1203"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1178"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1198"/>
|
||||
<source>Not allowed to remove, restoring</source>
|
||||
<translation>Δεν επιτρέπεται η αφαίρεση, αποκατάσταση σε εξέλιξη</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1216"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1211"/>
|
||||
<source>Local files and share folder removed.</source>
|
||||
<translation>Οι τοπικοί φάκελοι και ο φάκελος κοινής χρήσης αφαιρέθηκαν.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1272"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1267"/>
|
||||
<source>Move not allowed, item restored</source>
|
||||
<translation>Η μετακίνηση δεν επιτρέπεται, το αντικείμενο αποκαταστάθηκε</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1283"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1278"/>
|
||||
<source>Move not allowed because %1 is read-only</source>
|
||||
<translation>Η μετακίνηση δεν επιτρέπεται επειδή το %1 είναι μόνο για ανάγνωση</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1284"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1279"/>
|
||||
<source>the destination</source>
|
||||
<translation>ο προορισμός</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1284"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1279"/>
|
||||
<source>the source</source>
|
||||
<translation>η προέλευση</translation>
|
||||
</message>
|
||||
@@ -3048,7 +3048,7 @@ It is not advisable to use it.</source>
|
||||
<message>
|
||||
<location filename="../src/gui/synclogdialog.ui" line="14"/>
|
||||
<source>Synchronisation Log</source>
|
||||
<translation>Ιστορικό συγχρονισμού</translation>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@@ -3068,8 +3068,8 @@ It is not advisable to use it.</source>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/theme.cpp" line="289"/>
|
||||
<source><p>Copyright ownCloud GmbH</p></source>
|
||||
<translation type="unfinished"/>
|
||||
<source><p>Copyright ownCloud, Incorporated</p></source>
|
||||
<translation><p>Πνευματικά δικαιώματα ownCloud, Ανώνυμη Εταιρία</p></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/theme.cpp" line="290"/>
|
||||
@@ -3195,7 +3195,7 @@ It is not advisable to use it.</source>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudgui.cpp" line="236"/>
|
||||
<source>Unsupported Server Version</source>
|
||||
<translation>Μη υποστηριζόμενη έκδοση διακομιστή</translation>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudgui.cpp" line="237"/>
|
||||
@@ -3215,37 +3215,37 @@ It is not advisable to use it.</source>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudgui.cpp" line="296"/>
|
||||
<source>Account synchronization is disabled</source>
|
||||
<translation>Ο λογαριασμός συγχρονισμού έχει απενεργοποιηθεί</translation>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudgui.cpp" line="379"/>
|
||||
<source>Unpause all folders</source>
|
||||
<translation>Αναίρεση παύσης όλων των φακέλων</translation>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudgui.cpp" line="384"/>
|
||||
<source>Pause all folders</source>
|
||||
<translation>Παύση όλων των φακέλων</translation>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudgui.cpp" line="515"/>
|
||||
<source>Unpause all synchronization</source>
|
||||
<translation>Αναίρεση παύσης όλων των συγχρονισμών</translation>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudgui.cpp" line="517"/>
|
||||
<source>Unpause synchronization</source>
|
||||
<translation>Αναίρεση παύσης συγχρονσμού</translation>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudgui.cpp" line="525"/>
|
||||
<source>Pause all synchronization</source>
|
||||
<translation>Παύση όλων των συγχρονισμών</translation>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudgui.cpp" line="527"/>
|
||||
<source>Pause synchronization</source>
|
||||
<translation>Παύση συγχρονισμού</translation>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudgui.cpp" line="534"/>
|
||||
@@ -3293,8 +3293,8 @@ It is not advisable to use it.</source>
|
||||
<name>OCC::ownCloudTheme</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudtheme.cpp" line="47"/>
|
||||
<source><p>Version %2. For more information visit <a href="%3">%4</a></p><p><small>By Klaas Freitag, Daniel Molkentin, Jan-Christoph Borchardt, Olivier Goffart, Markus Götz and others.</small></p><p>Copyright ownCloud GmbH</p><p>Licensed under the GNU General Public License (GPL) Version 2.0<br/>ownCloud and the ownCloud Logo are registered trademarks of ownCloud, Inc. in the United States, other countries, or both.</p></source>
|
||||
<translation type="unfinished"/>
|
||||
<source><p>Version %2. For more information visit <a href="%3">%4</a></p><p><small>By Klaas Freitag, Daniel Molkentin, Jan-Christoph Borchardt, Olivier Goffart, Markus Götz and others.</small></p><p>Copyright ownCloud, Inc.</p><p>Licensed under the GNU General Public License (GPL) Version 2.0<br/>ownCloud and the ownCloud Logo are registered trademarks of ownCloud, Inc. in the United States, other countries, or both.</p></source>
|
||||
<translation><p>Έκδοση %2. Για περισσότερες πληροφορίες επισκεφθείτε <a href="%3">%4</a></p><p><small>Των Klaas Freitag, Daniel Molkentin, Jan-Christoph Borchardt, Olivier Goffart, Markus Götz και άλλων.</small></p><p>Πνευματικά δικαιώματα ownCloud, Inc.</p><p>Αδειοδότηση υπό την GNU General Public License (GPL) Έκδοση 2.0<br/>το ownCloud και το λογότυπο ownCloud είναι σήματα κατατεθέντα της ownCloud, Inc. στις Η.Π.Α., σε άλλες χώρες ή και στα δύο</p></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@@ -3507,7 +3507,7 @@ It is not advisable to use it.</source>
|
||||
<message>
|
||||
<location filename="../src/gui/application.cpp" line="599"/>
|
||||
<source>QT_LAYOUT_DIRECTION</source>
|
||||
<translation>QT_LAYOUT_DIRECTION</translation>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@@ -3515,7 +3515,7 @@ It is not advisable to use it.</source>
|
||||
<message>
|
||||
<location filename="../src/libsync/utility.cpp" line="473"/>
|
||||
<source>in the future</source>
|
||||
<translation>στο μέλλον</translation>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../src/libsync/utility.cpp" line="469"/>
|
||||
@@ -3530,12 +3530,12 @@ It is not advisable to use it.</source>
|
||||
<message>
|
||||
<location filename="../src/libsync/utility.cpp" line="482"/>
|
||||
<source>now</source>
|
||||
<translation>τώρα</translation>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/utility.cpp" line="484"/>
|
||||
<source>Less than a minute ago</source>
|
||||
<translation>Λιγότερο από ένα λεπτό πριν</translation>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../src/libsync/utility.cpp" line="487"/>
|
||||
@@ -3573,7 +3573,7 @@ It is not advisable to use it.</source>
|
||||
<message numerus="yes">
|
||||
<location filename="../src/libsync/utility.cpp" line="319"/>
|
||||
<source>%n year(s)</source>
|
||||
<translation><numerusform>%n χρόνος</numerusform><numerusform>%n χρόνια</numerusform></translation>
|
||||
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../src/libsync/utility.cpp" line="320"/>
|
||||
|
||||
+46
-46
@@ -530,7 +530,7 @@
|
||||
<context>
|
||||
<name>OCC::CleanupPollsJob</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="779"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="772"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -918,7 +918,7 @@ Continuing the sync as normal will cause all your files to be overwritten by an
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="205"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="204"/>
|
||||
<source>Signed out</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -928,91 +928,91 @@ Continuing the sync as normal will cause all your files to be overwritten by an
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="170"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="169"/>
|
||||
<source>Fetching folder list from server...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="841"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="832"/>
|
||||
<source>Checking for changes in '%1'</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="876"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="867"/>
|
||||
<source>, '%1'</source>
|
||||
<extracomment>Build a list of file names</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="879"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="870"/>
|
||||
<source>'%1'</source>
|
||||
<extracomment>Argument is a file name</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="904"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="895"/>
|
||||
<source>Syncing %1</source>
|
||||
<extracomment>Example text: "Syncing 'foo.txt', 'bar.txt'"</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="906"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="916"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="897"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="907"/>
|
||||
<source>, </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="910"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="901"/>
|
||||
<source>download %1/s</source>
|
||||
<extracomment>Example text: "download 24Kb/s" (%1 is replaced by 24Kb (translated))</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="912"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="903"/>
|
||||
<source>u2193 %1/s</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="919"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="910"/>
|
||||
<source>upload %1/s</source>
|
||||
<extracomment>Example text: "upload 24Kb/s" (%1 is replaced by 24Kb (translated))</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="921"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="912"/>
|
||||
<source>u2191 %1/s</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="926"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="917"/>
|
||||
<source>%1 %2 (%3 of %4)</source>
|
||||
<extracomment>Example text: "uploading foobar.png (2MB of 2MB)"</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="930"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="921"/>
|
||||
<source>%1 %2</source>
|
||||
<extracomment>Example text: "uploading foobar.png"</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="947"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="938"/>
|
||||
<source>%5 left, %1 of %2, file %3 of %4</source>
|
||||
<extracomment>Example text: "5 minutes left, 12 MB of 345 MB, file 6 of 7"</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="953"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="944"/>
|
||||
<source>file %1 of %2</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="993"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="984"/>
|
||||
<source>Waiting...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="995"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="986"/>
|
||||
<source>Waiting for %n other folder(s)...</source>
|
||||
<translation type="unfinished">
|
||||
<numerusform></numerusform>
|
||||
@@ -1020,7 +1020,7 @@ Continuing the sync as normal will cause all your files to be overwritten by an
|
||||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="1001"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="992"/>
|
||||
<source>Preparing to sync...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -1937,7 +1937,7 @@ It is not advisable to use it.</source>
|
||||
<context>
|
||||
<name>OCC::PropagateDirectory</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="718"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="712"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -1975,17 +1975,17 @@ It is not advisable to use it.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="711"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="693"/>
|
||||
<source>File %1 cannot be saved because of a local file name clash!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="759"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="741"/>
|
||||
<source>File has changed since discovery</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="809"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="791"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -2471,18 +2471,18 @@ It is not advisable to use it.</source>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="366"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="413"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="412"/>
|
||||
<source>Public sh&aring requires a password</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="435"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="434"/>
|
||||
<source>Please Set Password</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="500"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="501"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="498"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="499"/>
|
||||
<source>&Share link</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -2890,12 +2890,12 @@ It is not advisable to use it.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1139"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1134"/>
|
||||
<source>Not allowed because you don't have permission to add parent folder</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1146"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1141"/>
|
||||
<source>Not allowed because you don't have permission to add files in that folder</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -3000,64 +3000,64 @@ It is not advisable to use it.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="791"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="787"/>
|
||||
<source>Unable to read from the sync journal.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="837"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="833"/>
|
||||
<source>Cannot open the sync journal</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="894"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="889"/>
|
||||
<source>File name contains at least one invalid character</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1098"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1105"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1093"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1100"/>
|
||||
<source>Ignored because of the "choose what to sync" blacklist</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1124"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1119"/>
|
||||
<source>Not allowed because you don't have permission to add subfolders to that folder</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1166"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1161"/>
|
||||
<source>Not allowed to upload this file because it is read-only on the server, restoring</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1183"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1203"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1178"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1198"/>
|
||||
<source>Not allowed to remove, restoring</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1216"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1211"/>
|
||||
<source>Local files and share folder removed.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1272"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1267"/>
|
||||
<source>Move not allowed, item restored</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1283"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1278"/>
|
||||
<source>Move not allowed because %1 is read-only</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1284"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1279"/>
|
||||
<source>the destination</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1284"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1279"/>
|
||||
<source>the source</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -3087,7 +3087,7 @@ It is not advisable to use it.</source>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/theme.cpp" line="289"/>
|
||||
<source><p>Copyright ownCloud GmbH</p></source>
|
||||
<source><p>Copyright ownCloud, Incorporated</p></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
@@ -3312,7 +3312,7 @@ It is not advisable to use it.</source>
|
||||
<name>OCC::ownCloudTheme</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudtheme.cpp" line="47"/>
|
||||
<source><p>Version %2. For more information visit <a href="%3">%4</a></p><p><small>By Klaas Freitag, Daniel Molkentin, Jan-Christoph Borchardt, Olivier Goffart, Markus Götz and others.</small></p><p>Copyright ownCloud GmbH</p><p>Licensed under the GNU General Public License (GPL) Version 2.0<br/>ownCloud and the ownCloud Logo are registered trademarks of ownCloud, Inc. in the United States, other countries, or both.</p></source>
|
||||
<source><p>Version %2. For more information visit <a href="%3">%4</a></p><p><small>By Klaas Freitag, Daniel Molkentin, Jan-Christoph Borchardt, Olivier Goffart, Markus Götz and others.</small></p><p>Copyright ownCloud, Inc.</p><p>Licensed under the GNU General Public License (GPL) Version 2.0<br/>ownCloud and the ownCloud Logo are registered trademarks of ownCloud, Inc. in the United States, other countries, or both.</p></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
|
||||
+48
-48
@@ -522,7 +522,7 @@
|
||||
<context>
|
||||
<name>OCC::CleanupPollsJob</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="779"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="772"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Error al escribir los metadatos en la base de datos</translation>
|
||||
</message>
|
||||
@@ -894,7 +894,7 @@ Continuar con la sincronización hará que todos los archivos sean sobreescritos
|
||||
<translation>Error mientras se cargaba la lista de carpetas desde el servidor.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="205"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="204"/>
|
||||
<source>Signed out</source>
|
||||
<translation>Cerrar sesión</translation>
|
||||
</message>
|
||||
@@ -904,96 +904,96 @@ Continuar con la sincronización hará que todos los archivos sean sobreescritos
|
||||
<translation>Añadir carpetas está deshabilitado debido a que ya están sincronizándose todos sus archivos. Si desea sincronizar múltiples carpeta, elimine la carpeta raíz actualmente configurada.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="170"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="169"/>
|
||||
<source>Fetching folder list from server...</source>
|
||||
<translation>Obtención de lista de carpetas del servidor...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="841"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="832"/>
|
||||
<source>Checking for changes in '%1'</source>
|
||||
<translation>Buscando cambios en '%1'</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="876"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="867"/>
|
||||
<source>, '%1'</source>
|
||||
<extracomment>Build a list of file names</extracomment>
|
||||
<translation>, '%1'</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="879"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="870"/>
|
||||
<source>'%1'</source>
|
||||
<extracomment>Argument is a file name</extracomment>
|
||||
<translation>'%1'</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="904"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="895"/>
|
||||
<source>Syncing %1</source>
|
||||
<extracomment>Example text: "Syncing 'foo.txt', 'bar.txt'"</extracomment>
|
||||
<translation>Sincronizando %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="906"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="916"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="897"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="907"/>
|
||||
<source>, </source>
|
||||
<translation>, </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="910"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="901"/>
|
||||
<source>download %1/s</source>
|
||||
<extracomment>Example text: "download 24Kb/s" (%1 is replaced by 24Kb (translated))</extracomment>
|
||||
<translation>descargando: %1/s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="912"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="903"/>
|
||||
<source>u2193 %1/s</source>
|
||||
<translation>u2193 %1/s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="919"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="910"/>
|
||||
<source>upload %1/s</source>
|
||||
<extracomment>Example text: "upload 24Kb/s" (%1 is replaced by 24Kb (translated))</extracomment>
|
||||
<translation>cargar %1/s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="921"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="912"/>
|
||||
<source>u2191 %1/s</source>
|
||||
<translation>u2191 %1/s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="926"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="917"/>
|
||||
<source>%1 %2 (%3 of %4)</source>
|
||||
<extracomment>Example text: "uploading foobar.png (2MB of 2MB)"</extracomment>
|
||||
<translation>%1 %2 (%3 de %4)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="930"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="921"/>
|
||||
<source>%1 %2</source>
|
||||
<extracomment>Example text: "uploading foobar.png"</extracomment>
|
||||
<translation>%1 %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="947"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="938"/>
|
||||
<source>%5 left, %1 of %2, file %3 of %4</source>
|
||||
<extracomment>Example text: "5 minutes left, 12 MB of 345 MB, file 6 of 7"</extracomment>
|
||||
<translation>%5 restantes, %1 de %2, archivo %3 de %4</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="953"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="944"/>
|
||||
<source>file %1 of %2</source>
|
||||
<translation>archivo %1 de %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="993"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="984"/>
|
||||
<source>Waiting...</source>
|
||||
<translation>Esperando...</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="995"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="986"/>
|
||||
<source>Waiting for %n other folder(s)...</source>
|
||||
<translation><numerusform>Esperando por %n carpeta...</numerusform><numerusform>Esperando por %n otras carpetas...</numerusform></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="1001"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="992"/>
|
||||
<source>Preparing to sync...</source>
|
||||
<translation>Preparando para sincronizar...</translation>
|
||||
</message>
|
||||
@@ -1917,7 +1917,7 @@ No se recomienda usarla.</translation>
|
||||
<context>
|
||||
<name>OCC::PropagateDirectory</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="718"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="712"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Error al escribir los metadatos en la base de datos</translation>
|
||||
</message>
|
||||
@@ -1955,17 +1955,17 @@ No se recomienda usarla.</translation>
|
||||
<translation>El archivo descargado está vacio aunque el servidor dice que deberia haber sido %1.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="711"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="693"/>
|
||||
<source>File %1 cannot be saved because of a local file name clash!</source>
|
||||
<translation>¡El fichero %1 no puede guardarse debido a un conflicto con el nombre de otro fichero local!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="759"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="741"/>
|
||||
<source>File has changed since discovery</source>
|
||||
<translation>El archivo ha cambiado desde que fue descubierto</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="809"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="791"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Error al escribir los metadatos en la base de datos</translation>
|
||||
</message>
|
||||
@@ -2451,18 +2451,18 @@ No se recomienda usarla.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="366"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="413"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="412"/>
|
||||
<source>Public sh&aring requires a password</source>
|
||||
<translation>Compartir public&amente requiere contraseña</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="435"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="434"/>
|
||||
<source>Please Set Password</source>
|
||||
<translation>Por favor establece una contraseña</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="500"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="501"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="498"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="499"/>
|
||||
<source>&Share link</source>
|
||||
<translation>&Compartir enlace</translation>
|
||||
</message>
|
||||
@@ -2872,12 +2872,12 @@ No se recomienda usarla.</translation>
|
||||
<translation>Solo %1 disponible, se necesita por lo menos %2 para comenzar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1139"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1134"/>
|
||||
<source>Not allowed because you don't have permission to add parent folder</source>
|
||||
<translation>No permitido porque no tienes permiso para añadir un directorio padre</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1146"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1141"/>
|
||||
<source>Not allowed because you don't have permission to add files in that folder</source>
|
||||
<translation>No permitido porque no tienes permiso para añadir archivos a ese directorio</translation>
|
||||
</message>
|
||||
@@ -2982,64 +2982,64 @@ No se recomienda usarla.</translation>
|
||||
<translation>No se pudo leer la lista de bloqueo de la base de datos local</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="791"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="787"/>
|
||||
<source>Unable to read from the sync journal.</source>
|
||||
<translation>No se ha podido leer desde el registro de sincronización</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="837"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="833"/>
|
||||
<source>Cannot open the sync journal</source>
|
||||
<translation>No es posible abrir el diario de sincronización</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="894"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="889"/>
|
||||
<source>File name contains at least one invalid character</source>
|
||||
<translation>Nombre de archivo contiene al menos un caracter no válido</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1098"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1105"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1093"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1100"/>
|
||||
<source>Ignored because of the "choose what to sync" blacklist</source>
|
||||
<translation>Ignorado porque se encuentra en la lista negra de "elija qué va a sincronizar"</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1124"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1119"/>
|
||||
<source>Not allowed because you don't have permission to add subfolders to that folder</source>
|
||||
<translation>No permitido porque no tienes permiso para añadir subdirectorios a ese directorio</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1166"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1161"/>
|
||||
<source>Not allowed to upload this file because it is read-only on the server, restoring</source>
|
||||
<translation>No está permitido subir este archivo porque es de solo lectura en el servidor, restaurando.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1183"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1203"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1178"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1198"/>
|
||||
<source>Not allowed to remove, restoring</source>
|
||||
<translation>No está permitido borrar, restaurando.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1216"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1211"/>
|
||||
<source>Local files and share folder removed.</source>
|
||||
<translation>Se han eliminado los archivos locales y la carpeta compartida.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1272"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1267"/>
|
||||
<source>Move not allowed, item restored</source>
|
||||
<translation>No está permitido mover, elemento restaurado.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1283"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1278"/>
|
||||
<source>Move not allowed because %1 is read-only</source>
|
||||
<translation>No está permitido mover, porque %1 es de sólo lectura.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1284"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1279"/>
|
||||
<source>the destination</source>
|
||||
<translation>destino</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1284"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1279"/>
|
||||
<source>the source</source>
|
||||
<translation>origen</translation>
|
||||
</message>
|
||||
@@ -3069,8 +3069,8 @@ No se recomienda usarla.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/theme.cpp" line="289"/>
|
||||
<source><p>Copyright ownCloud GmbH</p></source>
|
||||
<translation><p>Copyright ownCloud GmbH</p></translation>
|
||||
<source><p>Copyright ownCloud, Incorporated</p></source>
|
||||
<translation><p>Copyright ownCloud, incorporado</p></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/theme.cpp" line="290"/>
|
||||
@@ -3294,8 +3294,8 @@ No se recomienda usarla.</translation>
|
||||
<name>OCC::ownCloudTheme</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudtheme.cpp" line="47"/>
|
||||
<source><p>Version %2. For more information visit <a href="%3">%4</a></p><p><small>By Klaas Freitag, Daniel Molkentin, Jan-Christoph Borchardt, Olivier Goffart, Markus Götz and others.</small></p><p>Copyright ownCloud GmbH</p><p>Licensed under the GNU General Public License (GPL) Version 2.0<br/>ownCloud and the ownCloud Logo are registered trademarks of ownCloud, Inc. in the United States, other countries, or both.</p></source>
|
||||
<translation><p>Version %2. Para más información visita <a href="%3">%4</a></p><p><small>By Klaas Freitag, Daniel Molkentin, Jan-Christoph Borchardt, Olivier Goffart, Markus Götz and others.</small></p><p>Copyright ownCloud GmbH</p><p>Licensed under the GNU General Public License (GPL) Version 2.0<br/>ownCloud and the ownCloud Logo are registered trademarks of ownCloud, Inc. in the United States, other countries, or both.</p></translation>
|
||||
<source><p>Version %2. For more information visit <a href="%3">%4</a></p><p><small>By Klaas Freitag, Daniel Molkentin, Jan-Christoph Borchardt, Olivier Goffart, Markus Götz and others.</small></p><p>Copyright ownCloud, Inc.</p><p>Licensed under the GNU General Public License (GPL) Version 2.0<br/>ownCloud and the ownCloud Logo are registered trademarks of ownCloud, Inc. in the United States, other countries, or both.</p></source>
|
||||
<translation><p>Versión %2. Para más información, visite <a href="%3">%4</a></p><p><small>Creado por Klaas Freitag, Daniel Molkentin, Jan-Christoph Borchardt, Olivier Goffart, Markus Götz y otros.</small></p><p>Copyright ownCloud, Inc.</p><p>Está bajo la Licencia General Pública (GPL, en inglés) GNU Versión 2.0<br/>ownCloud y el logo de ownCloud son marcas registradas de ownCloud, Inc. en los Estados Unidos, otros países, o ambos.</p></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
||||
@@ -522,7 +522,7 @@
|
||||
<context>
|
||||
<name>OCC::CleanupPollsJob</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="779"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="772"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
@@ -889,7 +889,7 @@ Continuing the sync as normal will cause all your files to be overwritten by an
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="205"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="204"/>
|
||||
<source>Signed out</source>
|
||||
<translation>Desautentificado</translation>
|
||||
</message>
|
||||
@@ -899,96 +899,96 @@ Continuing the sync as normal will cause all your files to be overwritten by an
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="170"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="169"/>
|
||||
<source>Fetching folder list from server...</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="841"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="832"/>
|
||||
<source>Checking for changes in '%1'</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="876"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="867"/>
|
||||
<source>, '%1'</source>
|
||||
<extracomment>Build a list of file names</extracomment>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="879"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="870"/>
|
||||
<source>'%1'</source>
|
||||
<extracomment>Argument is a file name</extracomment>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="904"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="895"/>
|
||||
<source>Syncing %1</source>
|
||||
<extracomment>Example text: "Syncing 'foo.txt', 'bar.txt'"</extracomment>
|
||||
<translation>Sincronizando %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="906"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="916"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="897"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="907"/>
|
||||
<source>, </source>
|
||||
<translation>, </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="910"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="901"/>
|
||||
<source>download %1/s</source>
|
||||
<extracomment>Example text: "download 24Kb/s" (%1 is replaced by 24Kb (translated))</extracomment>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="912"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="903"/>
|
||||
<source>u2193 %1/s</source>
|
||||
<translation>u2193 %1/s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="919"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="910"/>
|
||||
<source>upload %1/s</source>
|
||||
<extracomment>Example text: "upload 24Kb/s" (%1 is replaced by 24Kb (translated))</extracomment>
|
||||
<translation>Cargado %1/s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="921"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="912"/>
|
||||
<source>u2191 %1/s</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="926"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="917"/>
|
||||
<source>%1 %2 (%3 of %4)</source>
|
||||
<extracomment>Example text: "uploading foobar.png (2MB of 2MB)"</extracomment>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="930"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="921"/>
|
||||
<source>%1 %2</source>
|
||||
<extracomment>Example text: "uploading foobar.png"</extracomment>
|
||||
<translation>%1 %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="947"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="938"/>
|
||||
<source>%5 left, %1 of %2, file %3 of %4</source>
|
||||
<extracomment>Example text: "5 minutes left, 12 MB of 345 MB, file 6 of 7"</extracomment>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="953"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="944"/>
|
||||
<source>file %1 of %2</source>
|
||||
<translation>Archivo %1 de %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="993"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="984"/>
|
||||
<source>Waiting...</source>
|
||||
<translation>Esperando...</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="995"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="986"/>
|
||||
<source>Waiting for %n other folder(s)...</source>
|
||||
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="1001"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="992"/>
|
||||
<source>Preparing to sync...</source>
|
||||
<translation>Preparando para sincronizar...</translation>
|
||||
</message>
|
||||
@@ -1905,7 +1905,7 @@ It is not advisable to use it.</source>
|
||||
<context>
|
||||
<name>OCC::PropagateDirectory</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="718"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="712"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
@@ -1943,17 +1943,17 @@ It is not advisable to use it.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="711"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="693"/>
|
||||
<source>File %1 cannot be saved because of a local file name clash!</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="759"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="741"/>
|
||||
<source>File has changed since discovery</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="809"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="791"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
@@ -2439,18 +2439,18 @@ It is not advisable to use it.</source>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="366"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="413"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="412"/>
|
||||
<source>Public sh&aring requires a password</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="435"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="434"/>
|
||||
<source>Please Set Password</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="500"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="501"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="498"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="499"/>
|
||||
<source>&Share link</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
@@ -2858,12 +2858,12 @@ It is not advisable to use it.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1139"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1134"/>
|
||||
<source>Not allowed because you don't have permission to add parent folder</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1146"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1141"/>
|
||||
<source>Not allowed because you don't have permission to add files in that folder</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
@@ -2968,64 +2968,64 @@ It is not advisable to use it.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="791"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="787"/>
|
||||
<source>Unable to read from the sync journal.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="837"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="833"/>
|
||||
<source>Cannot open the sync journal</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="894"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="889"/>
|
||||
<source>File name contains at least one invalid character</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1098"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1105"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1093"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1100"/>
|
||||
<source>Ignored because of the "choose what to sync" blacklist</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1124"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1119"/>
|
||||
<source>Not allowed because you don't have permission to add subfolders to that folder</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1166"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1161"/>
|
||||
<source>Not allowed to upload this file because it is read-only on the server, restoring</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1183"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1203"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1178"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1198"/>
|
||||
<source>Not allowed to remove, restoring</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1216"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1211"/>
|
||||
<source>Local files and share folder removed.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1272"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1267"/>
|
||||
<source>Move not allowed, item restored</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1283"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1278"/>
|
||||
<source>Move not allowed because %1 is read-only</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1284"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1279"/>
|
||||
<source>the destination</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1284"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1279"/>
|
||||
<source>the source</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
@@ -3055,7 +3055,7 @@ It is not advisable to use it.</source>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/theme.cpp" line="289"/>
|
||||
<source><p>Copyright ownCloud GmbH</p></source>
|
||||
<source><p>Copyright ownCloud, Incorporated</p></source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
@@ -3280,7 +3280,7 @@ It is not advisable to use it.</source>
|
||||
<name>OCC::ownCloudTheme</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudtheme.cpp" line="47"/>
|
||||
<source><p>Version %2. For more information visit <a href="%3">%4</a></p><p><small>By Klaas Freitag, Daniel Molkentin, Jan-Christoph Borchardt, Olivier Goffart, Markus Götz and others.</small></p><p>Copyright ownCloud GmbH</p><p>Licensed under the GNU General Public License (GPL) Version 2.0<br/>ownCloud and the ownCloud Logo are registered trademarks of ownCloud, Inc. in the United States, other countries, or both.</p></source>
|
||||
<source><p>Version %2. For more information visit <a href="%3">%4</a></p><p><small>By Klaas Freitag, Daniel Molkentin, Jan-Christoph Borchardt, Olivier Goffart, Markus Götz and others.</small></p><p>Copyright ownCloud, Inc.</p><p>Licensed under the GNU General Public License (GPL) Version 2.0<br/>ownCloud and the ownCloud Logo are registered trademarks of ownCloud, Inc. in the United States, other countries, or both.</p></source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
|
||||
+46
-46
@@ -522,7 +522,7 @@
|
||||
<context>
|
||||
<name>OCC::CleanupPollsJob</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="779"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="772"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
@@ -889,7 +889,7 @@ Continuing the sync as normal will cause all your files to be overwritten by an
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="205"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="204"/>
|
||||
<source>Signed out</source>
|
||||
<translation>Välja logitud</translation>
|
||||
</message>
|
||||
@@ -899,96 +899,96 @@ Continuing the sync as normal will cause all your files to be overwritten by an
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="170"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="169"/>
|
||||
<source>Fetching folder list from server...</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="841"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="832"/>
|
||||
<source>Checking for changes in '%1'</source>
|
||||
<translation>Kontrollitakse muudatusi kaustas '%1'</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="876"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="867"/>
|
||||
<source>, '%1'</source>
|
||||
<extracomment>Build a list of file names</extracomment>
|
||||
<translation>, '%1'</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="879"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="870"/>
|
||||
<source>'%1'</source>
|
||||
<extracomment>Argument is a file name</extracomment>
|
||||
<translation>'%1'</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="904"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="895"/>
|
||||
<source>Syncing %1</source>
|
||||
<extracomment>Example text: "Syncing 'foo.txt', 'bar.txt'"</extracomment>
|
||||
<translation>Sünkroniseerimine %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="906"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="916"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="897"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="907"/>
|
||||
<source>, </source>
|
||||
<translation>, </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="910"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="901"/>
|
||||
<source>download %1/s</source>
|
||||
<extracomment>Example text: "download 24Kb/s" (%1 is replaced by 24Kb (translated))</extracomment>
|
||||
<translation>allalaadimine %1/s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="912"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="903"/>
|
||||
<source>u2193 %1/s</source>
|
||||
<translation>u2193 %1/s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="919"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="910"/>
|
||||
<source>upload %1/s</source>
|
||||
<extracomment>Example text: "upload 24Kb/s" (%1 is replaced by 24Kb (translated))</extracomment>
|
||||
<translation>üleslaadimine %1/s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="921"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="912"/>
|
||||
<source>u2191 %1/s</source>
|
||||
<translation>u2191 %1/s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="926"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="917"/>
|
||||
<source>%1 %2 (%3 of %4)</source>
|
||||
<extracomment>Example text: "uploading foobar.png (2MB of 2MB)"</extracomment>
|
||||
<translation>%1 %2 (%3 / %4)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="930"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="921"/>
|
||||
<source>%1 %2</source>
|
||||
<extracomment>Example text: "uploading foobar.png"</extracomment>
|
||||
<translation>%1 %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="947"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="938"/>
|
||||
<source>%5 left, %1 of %2, file %3 of %4</source>
|
||||
<extracomment>Example text: "5 minutes left, 12 MB of 345 MB, file 6 of 7"</extracomment>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="953"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="944"/>
|
||||
<source>file %1 of %2</source>
|
||||
<translation>fail %1 / %2-st</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="993"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="984"/>
|
||||
<source>Waiting...</source>
|
||||
<translation>Ootamine...</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="995"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="986"/>
|
||||
<source>Waiting for %n other folder(s)...</source>
|
||||
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="1001"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="992"/>
|
||||
<source>Preparing to sync...</source>
|
||||
<translation>Sünkroniseerimiseks valmistumine...</translation>
|
||||
</message>
|
||||
@@ -1906,7 +1906,7 @@ Selle kasutamine pole soovitatav.</translation>
|
||||
<context>
|
||||
<name>OCC::PropagateDirectory</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="718"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="712"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
@@ -1944,17 +1944,17 @@ Selle kasutamine pole soovitatav.</translation>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="711"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="693"/>
|
||||
<source>File %1 cannot be saved because of a local file name clash!</source>
|
||||
<translation>Faili %1 ei saa salvestada kuna on nime konflikt kohaliku failiga!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="759"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="741"/>
|
||||
<source>File has changed since discovery</source>
|
||||
<translation>Faili on pärast avastamist muudetud</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="809"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="791"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
@@ -2440,18 +2440,18 @@ Selle kasutamine pole soovitatav.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="366"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="413"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="412"/>
|
||||
<source>Public sh&aring requires a password</source>
|
||||
<translation>Avalik j&agamine nõuab parooli</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="435"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="434"/>
|
||||
<source>Please Set Password</source>
|
||||
<translation>Palun määra parool</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="500"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="501"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="498"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="499"/>
|
||||
<source>&Share link</source>
|
||||
<translation>&Jaga linki</translation>
|
||||
</message>
|
||||
@@ -2861,12 +2861,12 @@ Selle kasutamine pole soovitatav.</translation>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1139"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1134"/>
|
||||
<source>Not allowed because you don't have permission to add parent folder</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1146"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1141"/>
|
||||
<source>Not allowed because you don't have permission to add files in that folder</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
@@ -2971,64 +2971,64 @@ Selle kasutamine pole soovitatav.</translation>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="791"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="787"/>
|
||||
<source>Unable to read from the sync journal.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="837"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="833"/>
|
||||
<source>Cannot open the sync journal</source>
|
||||
<translation>Ei suuda avada sünkroniseeringu zurnaali</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="894"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="889"/>
|
||||
<source>File name contains at least one invalid character</source>
|
||||
<translation>Faili nimesonvähemalt üks keelatud märk</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1098"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1105"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1093"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1100"/>
|
||||
<source>Ignored because of the "choose what to sync" blacklist</source>
|
||||
<translation>"Vali, mida sünkroniseerida" musta nimekirja tõttu vahele jäetud</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1124"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1119"/>
|
||||
<source>Not allowed because you don't have permission to add subfolders to that folder</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1166"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1161"/>
|
||||
<source>Not allowed to upload this file because it is read-only on the server, restoring</source>
|
||||
<translation>Pole lubatud üles laadida, kuna tegemist on ainult-loetava serveriga, taastan</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1183"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1203"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1178"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1198"/>
|
||||
<source>Not allowed to remove, restoring</source>
|
||||
<translation>Eemaldamine pole lubatud, taastan</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1216"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1211"/>
|
||||
<source>Local files and share folder removed.</source>
|
||||
<translation>Kohalikud failid ja jagatud kaustad eemaldatud.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1272"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1267"/>
|
||||
<source>Move not allowed, item restored</source>
|
||||
<translation>Liigutamine pole lubatud, üksus taastatud</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1283"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1278"/>
|
||||
<source>Move not allowed because %1 is read-only</source>
|
||||
<translation>Liigutamien pole võimalik kuna %1 on ainult lugemiseks</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1284"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1279"/>
|
||||
<source>the destination</source>
|
||||
<translation>sihtkoht</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1284"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1279"/>
|
||||
<source>the source</source>
|
||||
<translation>allikas</translation>
|
||||
</message>
|
||||
@@ -3058,7 +3058,7 @@ Selle kasutamine pole soovitatav.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/theme.cpp" line="289"/>
|
||||
<source><p>Copyright ownCloud GmbH</p></source>
|
||||
<source><p>Copyright ownCloud, Incorporated</p></source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
@@ -3283,7 +3283,7 @@ Selle kasutamine pole soovitatav.</translation>
|
||||
<name>OCC::ownCloudTheme</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudtheme.cpp" line="47"/>
|
||||
<source><p>Version %2. For more information visit <a href="%3">%4</a></p><p><small>By Klaas Freitag, Daniel Molkentin, Jan-Christoph Borchardt, Olivier Goffart, Markus Götz and others.</small></p><p>Copyright ownCloud GmbH</p><p>Licensed under the GNU General Public License (GPL) Version 2.0<br/>ownCloud and the ownCloud Logo are registered trademarks of ownCloud, Inc. in the United States, other countries, or both.</p></source>
|
||||
<source><p>Version %2. For more information visit <a href="%3">%4</a></p><p><small>By Klaas Freitag, Daniel Molkentin, Jan-Christoph Borchardt, Olivier Goffart, Markus Götz and others.</small></p><p>Copyright ownCloud, Inc.</p><p>Licensed under the GNU General Public License (GPL) Version 2.0<br/>ownCloud and the ownCloud Logo are registered trademarks of ownCloud, Inc. in the United States, other countries, or both.</p></source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
|
||||
+47
-47
@@ -522,7 +522,7 @@
|
||||
<context>
|
||||
<name>OCC::CleanupPollsJob</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="779"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="772"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
@@ -889,7 +889,7 @@ Continuing the sync as normal will cause all your files to be overwritten by an
|
||||
<translation>Errorea zerbitzaritik karpeten zerrenda eskuratzean.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="205"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="204"/>
|
||||
<source>Signed out</source>
|
||||
<translation>Saioa bukatuta</translation>
|
||||
</message>
|
||||
@@ -899,96 +899,96 @@ Continuing the sync as normal will cause all your files to be overwritten by an
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="170"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="169"/>
|
||||
<source>Fetching folder list from server...</source>
|
||||
<translation>Zerbitzaritik karpeta zerrenda eskuratzen...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="841"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="832"/>
|
||||
<source>Checking for changes in '%1'</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="876"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="867"/>
|
||||
<source>, '%1'</source>
|
||||
<extracomment>Build a list of file names</extracomment>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="879"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="870"/>
|
||||
<source>'%1'</source>
|
||||
<extracomment>Argument is a file name</extracomment>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="904"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="895"/>
|
||||
<source>Syncing %1</source>
|
||||
<extracomment>Example text: "Syncing 'foo.txt', 'bar.txt'"</extracomment>
|
||||
<translation>%1 Sinkronizatzen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="906"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="916"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="897"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="907"/>
|
||||
<source>, </source>
|
||||
<translation>, </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="910"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="901"/>
|
||||
<source>download %1/s</source>
|
||||
<extracomment>Example text: "download 24Kb/s" (%1 is replaced by 24Kb (translated))</extracomment>
|
||||
<translation>Deskargatu %1/s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="912"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="903"/>
|
||||
<source>u2193 %1/s</source>
|
||||
<translation>u2193 %1/s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="919"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="910"/>
|
||||
<source>upload %1/s</source>
|
||||
<extracomment>Example text: "upload 24Kb/s" (%1 is replaced by 24Kb (translated))</extracomment>
|
||||
<translation>igo %1/s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="921"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="912"/>
|
||||
<source>u2191 %1/s</source>
|
||||
<translation>u2191 %1/s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="926"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="917"/>
|
||||
<source>%1 %2 (%3 of %4)</source>
|
||||
<extracomment>Example text: "uploading foobar.png (2MB of 2MB)"</extracomment>
|
||||
<translation>%1 %2 (%4 - %3tik)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="930"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="921"/>
|
||||
<source>%1 %2</source>
|
||||
<extracomment>Example text: "uploading foobar.png"</extracomment>
|
||||
<translation>%1 %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="947"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="938"/>
|
||||
<source>%5 left, %1 of %2, file %3 of %4</source>
|
||||
<extracomment>Example text: "5 minutes left, 12 MB of 345 MB, file 6 of 7"</extracomment>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="953"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="944"/>
|
||||
<source>file %1 of %2</source>
|
||||
<translation>%1. fitxategia %2tik</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="993"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="984"/>
|
||||
<source>Waiting...</source>
|
||||
<translation>Itxoiten...</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="995"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="986"/>
|
||||
<source>Waiting for %n other folder(s)...</source>
|
||||
<translation><numerusform>Itxoiten beste karpeta %n...</numerusform><numerusform>Itxoiten beste %n karpeta...</numerusform></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="1001"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="992"/>
|
||||
<source>Preparing to sync...</source>
|
||||
<translation>Sinkronizatzeko prestatzen...</translation>
|
||||
</message>
|
||||
@@ -1912,7 +1912,7 @@ Ez da gomendagarria erabltzea.</translation>
|
||||
<context>
|
||||
<name>OCC::PropagateDirectory</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="718"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="712"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
@@ -1950,17 +1950,17 @@ Ez da gomendagarria erabltzea.</translation>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="711"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="693"/>
|
||||
<source>File %1 cannot be saved because of a local file name clash!</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="759"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="741"/>
|
||||
<source>File has changed since discovery</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="809"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="791"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
@@ -2446,18 +2446,18 @@ Ez da gomendagarria erabltzea.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="366"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="413"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="412"/>
|
||||
<source>Public sh&aring requires a password</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="435"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="434"/>
|
||||
<source>Please Set Password</source>
|
||||
<translation>Mesedez Ezarri Pasahitza</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="500"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="501"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="498"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="499"/>
|
||||
<source>&Share link</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
@@ -2865,12 +2865,12 @@ Ez da gomendagarria erabltzea.</translation>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1139"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1134"/>
|
||||
<source>Not allowed because you don't have permission to add parent folder</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1146"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1141"/>
|
||||
<source>Not allowed because you don't have permission to add files in that folder</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
@@ -2975,64 +2975,64 @@ Ez da gomendagarria erabltzea.</translation>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="791"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="787"/>
|
||||
<source>Unable to read from the sync journal.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="837"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="833"/>
|
||||
<source>Cannot open the sync journal</source>
|
||||
<translation>Ezin da sinkronizazio egunerokoa ireki</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="894"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="889"/>
|
||||
<source>File name contains at least one invalid character</source>
|
||||
<translation>Fitxategi izenak behintzat baliogabeko karaktere bat du</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1098"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1105"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1093"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1100"/>
|
||||
<source>Ignored because of the "choose what to sync" blacklist</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1124"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1119"/>
|
||||
<source>Not allowed because you don't have permission to add subfolders to that folder</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1166"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1161"/>
|
||||
<source>Not allowed to upload this file because it is read-only on the server, restoring</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1183"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1203"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1178"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1198"/>
|
||||
<source>Not allowed to remove, restoring</source>
|
||||
<translation>Ezabatzeko baimenik gabe, berrezartzen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1216"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1211"/>
|
||||
<source>Local files and share folder removed.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1272"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1267"/>
|
||||
<source>Move not allowed, item restored</source>
|
||||
<translation>Mugitzea ez dago baimenduta, elementua berrezarri da</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1283"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1278"/>
|
||||
<source>Move not allowed because %1 is read-only</source>
|
||||
<translation>Mugitzea ez dago baimenduta %1 irakurtzeko bakarrik delako</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1284"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1279"/>
|
||||
<source>the destination</source>
|
||||
<translation>helburua</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1284"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1279"/>
|
||||
<source>the source</source>
|
||||
<translation>jatorria</translation>
|
||||
</message>
|
||||
@@ -3062,7 +3062,7 @@ Ez da gomendagarria erabltzea.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/theme.cpp" line="289"/>
|
||||
<source><p>Copyright ownCloud GmbH</p></source>
|
||||
<source><p>Copyright ownCloud, Incorporated</p></source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
@@ -3287,8 +3287,8 @@ Ez da gomendagarria erabltzea.</translation>
|
||||
<name>OCC::ownCloudTheme</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudtheme.cpp" line="47"/>
|
||||
<source><p>Version %2. For more information visit <a href="%3">%4</a></p><p><small>By Klaas Freitag, Daniel Molkentin, Jan-Christoph Borchardt, Olivier Goffart, Markus Götz and others.</small></p><p>Copyright ownCloud GmbH</p><p>Licensed under the GNU General Public License (GPL) Version 2.0<br/>ownCloud and the ownCloud Logo are registered trademarks of ownCloud, Inc. in the United States, other countries, or both.</p></source>
|
||||
<translation type="unfinished"/>
|
||||
<source><p>Version %2. For more information visit <a href="%3">%4</a></p><p><small>By Klaas Freitag, Daniel Molkentin, Jan-Christoph Borchardt, Olivier Goffart, Markus Götz and others.</small></p><p>Copyright ownCloud, Inc.</p><p>Licensed under the GNU General Public License (GPL) Version 2.0<br/>ownCloud and the ownCloud Logo are registered trademarks of ownCloud, Inc. in the United States, other countries, or both.</p></source>
|
||||
<translation><p>%2 Bertsioa. Informazio gehiago eskuratzeko ikusi <a href="%3">%4</a></p><p><small>Egileak: Klaas Freitag, Daniel Molkentin, Jan-Christoph Borchardt, Olivier Goffart, Markus Götz eta bestea batzuk.</small></p><p>Copyright ownCloud, Inc.</p><p>GNU General Public License (GPL) 2.0 bertsioaren lizentziapean banatuta.<br/>ownCloud eta ownCloud-en Logoa ownCloud, Inc. enpresaren marka erregistratuak dira Estatu Batuetan, beste herrialdeetan edo bietan.</p></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
||||
+46
-46
@@ -522,7 +522,7 @@
|
||||
<context>
|
||||
<name>OCC::CleanupPollsJob</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="779"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="772"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
@@ -889,7 +889,7 @@ Continuing the sync as normal will cause all your files to be overwritten by an
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="205"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="204"/>
|
||||
<source>Signed out</source>
|
||||
<translation>خارج شد</translation>
|
||||
</message>
|
||||
@@ -899,96 +899,96 @@ Continuing the sync as normal will cause all your files to be overwritten by an
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="170"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="169"/>
|
||||
<source>Fetching folder list from server...</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="841"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="832"/>
|
||||
<source>Checking for changes in '%1'</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="876"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="867"/>
|
||||
<source>, '%1'</source>
|
||||
<extracomment>Build a list of file names</extracomment>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="879"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="870"/>
|
||||
<source>'%1'</source>
|
||||
<extracomment>Argument is a file name</extracomment>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="904"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="895"/>
|
||||
<source>Syncing %1</source>
|
||||
<extracomment>Example text: "Syncing 'foo.txt', 'bar.txt'"</extracomment>
|
||||
<translation>همگامسازی %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="906"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="916"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="897"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="907"/>
|
||||
<source>, </source>
|
||||
<translation>رشته های ترجمه نشده</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="910"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="901"/>
|
||||
<source>download %1/s</source>
|
||||
<extracomment>Example text: "download 24Kb/s" (%1 is replaced by 24Kb (translated))</extracomment>
|
||||
<translation>دانلود %1/s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="912"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="903"/>
|
||||
<source>u2193 %1/s</source>
|
||||
<translation>u2193 %1/s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="919"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="910"/>
|
||||
<source>upload %1/s</source>
|
||||
<extracomment>Example text: "upload 24Kb/s" (%1 is replaced by 24Kb (translated))</extracomment>
|
||||
<translation>آپلود %1/s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="921"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="912"/>
|
||||
<source>u2191 %1/s</source>
|
||||
<translation>u2191 %1/s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="926"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="917"/>
|
||||
<source>%1 %2 (%3 of %4)</source>
|
||||
<extracomment>Example text: "uploading foobar.png (2MB of 2MB)"</extracomment>
|
||||
<translation>%1 %2 (%3 از %4)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="930"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="921"/>
|
||||
<source>%1 %2</source>
|
||||
<extracomment>Example text: "uploading foobar.png"</extracomment>
|
||||
<translation>%1 %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="947"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="938"/>
|
||||
<source>%5 left, %1 of %2, file %3 of %4</source>
|
||||
<extracomment>Example text: "5 minutes left, 12 MB of 345 MB, file 6 of 7"</extracomment>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="953"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="944"/>
|
||||
<source>file %1 of %2</source>
|
||||
<translation>فایل %1 از %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="993"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="984"/>
|
||||
<source>Waiting...</source>
|
||||
<translation>درحال انتظار...</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="995"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="986"/>
|
||||
<source>Waiting for %n other folder(s)...</source>
|
||||
<translation><numerusform>در انتظار برای %n پوشهی دیگر ...</numerusform></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="1001"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="992"/>
|
||||
<source>Preparing to sync...</source>
|
||||
<translation>آمادهسازی همگامسازی ...</translation>
|
||||
</message>
|
||||
@@ -1905,7 +1905,7 @@ It is not advisable to use it.</source>
|
||||
<context>
|
||||
<name>OCC::PropagateDirectory</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="718"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="712"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
@@ -1943,17 +1943,17 @@ It is not advisable to use it.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="711"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="693"/>
|
||||
<source>File %1 cannot be saved because of a local file name clash!</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="759"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="741"/>
|
||||
<source>File has changed since discovery</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="809"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="791"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
@@ -2439,18 +2439,18 @@ It is not advisable to use it.</source>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="366"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="413"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="412"/>
|
||||
<source>Public sh&aring requires a password</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="435"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="434"/>
|
||||
<source>Please Set Password</source>
|
||||
<translation>لطفا رمزعبور را تعیین کنید</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="500"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="501"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="498"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="499"/>
|
||||
<source>&Share link</source>
|
||||
<translation>&اشتراکگذاری لینک</translation>
|
||||
</message>
|
||||
@@ -2858,12 +2858,12 @@ It is not advisable to use it.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1139"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1134"/>
|
||||
<source>Not allowed because you don't have permission to add parent folder</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1146"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1141"/>
|
||||
<source>Not allowed because you don't have permission to add files in that folder</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
@@ -2968,64 +2968,64 @@ It is not advisable to use it.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="791"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="787"/>
|
||||
<source>Unable to read from the sync journal.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="837"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="833"/>
|
||||
<source>Cannot open the sync journal</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="894"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="889"/>
|
||||
<source>File name contains at least one invalid character</source>
|
||||
<translation>نام فایل دارای حداقل یک کاراکتر نامعتبر است</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1098"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1105"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1093"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1100"/>
|
||||
<source>Ignored because of the "choose what to sync" blacklist</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1124"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1119"/>
|
||||
<source>Not allowed because you don't have permission to add subfolders to that folder</source>
|
||||
<translation>با توجه به عدم اجازهی شما به ایجاد زیرپوشه به پوشه مجاز نیست</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1166"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1161"/>
|
||||
<source>Not allowed to upload this file because it is read-only on the server, restoring</source>
|
||||
<translation>آپلود این فایل با توجه به فقط-خواندنی بودن آن در سرور مجاز نیست، در حال بازگرداندن</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1183"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1203"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1178"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1198"/>
|
||||
<source>Not allowed to remove, restoring</source>
|
||||
<translation>حذف مجاز نیست، در حال بازگردادن</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1216"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1211"/>
|
||||
<source>Local files and share folder removed.</source>
|
||||
<translation>فایلهای محلی و پوشهی اشتراک حذف شد.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1272"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1267"/>
|
||||
<source>Move not allowed, item restored</source>
|
||||
<translation>انتقال مجاز نیست، مورد بازگردانده شد</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1283"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1278"/>
|
||||
<source>Move not allowed because %1 is read-only</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1284"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1279"/>
|
||||
<source>the destination</source>
|
||||
<translation>مقصد</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1284"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1279"/>
|
||||
<source>the source</source>
|
||||
<translation>مبدا</translation>
|
||||
</message>
|
||||
@@ -3055,7 +3055,7 @@ It is not advisable to use it.</source>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/theme.cpp" line="289"/>
|
||||
<source><p>Copyright ownCloud GmbH</p></source>
|
||||
<source><p>Copyright ownCloud, Incorporated</p></source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
@@ -3280,7 +3280,7 @@ It is not advisable to use it.</source>
|
||||
<name>OCC::ownCloudTheme</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudtheme.cpp" line="47"/>
|
||||
<source><p>Version %2. For more information visit <a href="%3">%4</a></p><p><small>By Klaas Freitag, Daniel Molkentin, Jan-Christoph Borchardt, Olivier Goffart, Markus Götz and others.</small></p><p>Copyright ownCloud GmbH</p><p>Licensed under the GNU General Public License (GPL) Version 2.0<br/>ownCloud and the ownCloud Logo are registered trademarks of ownCloud, Inc. in the United States, other countries, or both.</p></source>
|
||||
<source><p>Version %2. For more information visit <a href="%3">%4</a></p><p><small>By Klaas Freitag, Daniel Molkentin, Jan-Christoph Borchardt, Olivier Goffart, Markus Götz and others.</small></p><p>Copyright ownCloud, Inc.</p><p>Licensed under the GNU General Public License (GPL) Version 2.0<br/>ownCloud and the ownCloud Logo are registered trademarks of ownCloud, Inc. in the United States, other countries, or both.</p></source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
|
||||
+48
-48
@@ -522,7 +522,7 @@
|
||||
<context>
|
||||
<name>OCC::CleanupPollsJob</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="779"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="772"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Virhe kirjoittaessa metadataa tietokantaan</translation>
|
||||
</message>
|
||||
@@ -890,7 +890,7 @@ Continuing the sync as normal will cause all your files to be overwritten by an
|
||||
<translation>Virhe ladatessa kansiolistausta palvelimelta.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="205"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="204"/>
|
||||
<source>Signed out</source>
|
||||
<translation>Kirjauduttu ulos</translation>
|
||||
</message>
|
||||
@@ -900,96 +900,96 @@ Continuing the sync as normal will cause all your files to be overwritten by an
|
||||
<translation>Kansion lisääminen on poistettu käytöstä, koska synkronoit jo kaikki tiedostot. Jos haluat synkronoida useita kansioita, poista nykyisen juurikansion synkronointiyhteys.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="170"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="169"/>
|
||||
<source>Fetching folder list from server...</source>
|
||||
<translation>Haetaan kansioluetteloa palvelimelta...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="841"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="832"/>
|
||||
<source>Checking for changes in '%1'</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="876"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="867"/>
|
||||
<source>, '%1'</source>
|
||||
<extracomment>Build a list of file names</extracomment>
|
||||
<translation>, '%1'</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="879"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="870"/>
|
||||
<source>'%1'</source>
|
||||
<extracomment>Argument is a file name</extracomment>
|
||||
<translation>'%1'</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="904"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="895"/>
|
||||
<source>Syncing %1</source>
|
||||
<extracomment>Example text: "Syncing 'foo.txt', 'bar.txt'"</extracomment>
|
||||
<translation>Synkronoidaan %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="906"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="916"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="897"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="907"/>
|
||||
<source>, </source>
|
||||
<translation>, </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="910"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="901"/>
|
||||
<source>download %1/s</source>
|
||||
<extracomment>Example text: "download 24Kb/s" (%1 is replaced by 24Kb (translated))</extracomment>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="912"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="903"/>
|
||||
<source>u2193 %1/s</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="919"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="910"/>
|
||||
<source>upload %1/s</source>
|
||||
<extracomment>Example text: "upload 24Kb/s" (%1 is replaced by 24Kb (translated))</extracomment>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="921"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="912"/>
|
||||
<source>u2191 %1/s</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="926"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="917"/>
|
||||
<source>%1 %2 (%3 of %4)</source>
|
||||
<extracomment>Example text: "uploading foobar.png (2MB of 2MB)"</extracomment>
|
||||
<translation>%1 %2 (%3/%4)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="930"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="921"/>
|
||||
<source>%1 %2</source>
|
||||
<extracomment>Example text: "uploading foobar.png"</extracomment>
|
||||
<translation>%1 %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="947"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="938"/>
|
||||
<source>%5 left, %1 of %2, file %3 of %4</source>
|
||||
<extracomment>Example text: "5 minutes left, 12 MB of 345 MB, file 6 of 7"</extracomment>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="953"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="944"/>
|
||||
<source>file %1 of %2</source>
|
||||
<translation>tiedosto %1/%2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="993"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="984"/>
|
||||
<source>Waiting...</source>
|
||||
<translation>Odotetaan...</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="995"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="986"/>
|
||||
<source>Waiting for %n other folder(s)...</source>
|
||||
<translation><numerusform>Odotetaan %n muuta kansiota...</numerusform><numerusform>Odotetaan %n muuta kansiota...</numerusform></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="1001"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="992"/>
|
||||
<source>Preparing to sync...</source>
|
||||
<translation>Valmistaudutaan synkronointiin...</translation>
|
||||
</message>
|
||||
@@ -1913,7 +1913,7 @@ Osoitteen käyttäminen ei ole suositeltavaa.</translation>
|
||||
<context>
|
||||
<name>OCC::PropagateDirectory</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="718"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="712"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Virhe kirjoittaessa metadataa tietokantaan</translation>
|
||||
</message>
|
||||
@@ -1951,17 +1951,17 @@ Osoitteen käyttäminen ei ole suositeltavaa.</translation>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="711"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="693"/>
|
||||
<source>File %1 cannot be saved because of a local file name clash!</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="759"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="741"/>
|
||||
<source>File has changed since discovery</source>
|
||||
<translation>Tiedosto on muuttunut löytymisen jälkeen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="809"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="791"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Virhe kirjoittaessa metadataa tietokantaan</translation>
|
||||
</message>
|
||||
@@ -2447,18 +2447,18 @@ Osoitteen käyttäminen ei ole suositeltavaa.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="366"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="413"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="412"/>
|
||||
<source>Public sh&aring requires a password</source>
|
||||
<translation>&Julkinen jakaminen vaatii salasanan</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="435"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="434"/>
|
||||
<source>Please Set Password</source>
|
||||
<translation>Aseta salasana</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="500"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="501"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="498"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="499"/>
|
||||
<source>&Share link</source>
|
||||
<translation>&Jaa linkki</translation>
|
||||
</message>
|
||||
@@ -2868,12 +2868,12 @@ Osoitteen käyttäminen ei ole suositeltavaa.</translation>
|
||||
<translation>Vain %1 on käytettävissä, käynnistymiseen tarvitaan %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1139"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1134"/>
|
||||
<source>Not allowed because you don't have permission to add parent folder</source>
|
||||
<translation>Ei sallittu, koska käyttöoikeutesi eivät riitä ylätason kansion lisäämiseen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1146"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1141"/>
|
||||
<source>Not allowed because you don't have permission to add files in that folder</source>
|
||||
<translation>Ei sallittu, koska käyttöoikeutesi eivät riitä tiedostojen lisäämiseen kyseiseen kansioon</translation>
|
||||
</message>
|
||||
@@ -2978,64 +2978,64 @@ Osoitteen käyttäminen ei ole suositeltavaa.</translation>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="791"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="787"/>
|
||||
<source>Unable to read from the sync journal.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="837"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="833"/>
|
||||
<source>Cannot open the sync journal</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="894"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="889"/>
|
||||
<source>File name contains at least one invalid character</source>
|
||||
<translation>Tiedoston nimi sisältää ainakin yhden virheellisen merkin</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1098"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1105"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1093"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1100"/>
|
||||
<source>Ignored because of the "choose what to sync" blacklist</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1124"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1119"/>
|
||||
<source>Not allowed because you don't have permission to add subfolders to that folder</source>
|
||||
<translation>Ei sallittu, koska oikeutesi eivät riitä alikansioiden lisäämiseen kyseiseen kansioon</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1166"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1161"/>
|
||||
<source>Not allowed to upload this file because it is read-only on the server, restoring</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1183"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1203"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1178"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1198"/>
|
||||
<source>Not allowed to remove, restoring</source>
|
||||
<translation>Poistaminen ei ole sallittua, palautetaan</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1216"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1211"/>
|
||||
<source>Local files and share folder removed.</source>
|
||||
<translation>Paikalliset tiedostot ja jakokansio poistettu.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1272"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1267"/>
|
||||
<source>Move not allowed, item restored</source>
|
||||
<translation>Siirtäminen ei ole sallittua, kohde palautettu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1283"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1278"/>
|
||||
<source>Move not allowed because %1 is read-only</source>
|
||||
<translation>Siirto ei ole sallittu, koska %1 on "vain luku"-tilassa</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1284"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1279"/>
|
||||
<source>the destination</source>
|
||||
<translation>kohde</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1284"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1279"/>
|
||||
<source>the source</source>
|
||||
<translation>lähde</translation>
|
||||
</message>
|
||||
@@ -3065,8 +3065,8 @@ Osoitteen käyttäminen ei ole suositeltavaa.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/theme.cpp" line="289"/>
|
||||
<source><p>Copyright ownCloud GmbH</p></source>
|
||||
<translation type="unfinished"/>
|
||||
<source><p>Copyright ownCloud, Incorporated</p></source>
|
||||
<translation><p>Tekijänoikeus ownCloud, Incorporated</p></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/theme.cpp" line="290"/>
|
||||
@@ -3290,8 +3290,8 @@ Osoitteen käyttäminen ei ole suositeltavaa.</translation>
|
||||
<name>OCC::ownCloudTheme</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudtheme.cpp" line="47"/>
|
||||
<source><p>Version %2. For more information visit <a href="%3">%4</a></p><p><small>By Klaas Freitag, Daniel Molkentin, Jan-Christoph Borchardt, Olivier Goffart, Markus Götz and others.</small></p><p>Copyright ownCloud GmbH</p><p>Licensed under the GNU General Public License (GPL) Version 2.0<br/>ownCloud and the ownCloud Logo are registered trademarks of ownCloud, Inc. in the United States, other countries, or both.</p></source>
|
||||
<translation type="unfinished"/>
|
||||
<source><p>Version %2. For more information visit <a href="%3">%4</a></p><p><small>By Klaas Freitag, Daniel Molkentin, Jan-Christoph Borchardt, Olivier Goffart, Markus Götz and others.</small></p><p>Copyright ownCloud, Inc.</p><p>Licensed under the GNU General Public License (GPL) Version 2.0<br/>ownCloud and the ownCloud Logo are registered trademarks of ownCloud, Inc. in the United States, other countries, or both.</p></source>
|
||||
<translation><p>Versio %2. Lisätietoja osoitteessa <a href="%3">%4</a></p><p><small>Tehnyt Klaas Freitag, Daniel Molkentin, Jan-Christoph Borchardt, Olivier Goffart, Markus Götz ja muut.</small></p><p>Tekijänoikeus ownCloud, Inc.</p><p>Lisensoitu GNU General Public License (GPL), versio 2.0 -lisenssillä<br/>ownCloud ja ownCloudin logo ovat ownCloud, Incin rekisteröimiä tavaramerkkejä Yhdysvalloissa ja muissa maissa.</p></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
||||
+48
-48
@@ -522,7 +522,7 @@
|
||||
<context>
|
||||
<name>OCC::CleanupPollsJob</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="779"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="772"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Erreur à l'écriture des métadonnées dans la base de données</translation>
|
||||
</message>
|
||||
@@ -894,7 +894,7 @@ Continuer la synchronisation comme d'habitude fera en sorte que tous les fi
|
||||
<translation>Une erreur est survenue lors du chargement de la liste des dossiers depuis le serveur.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="205"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="204"/>
|
||||
<source>Signed out</source>
|
||||
<translation>Session fermée</translation>
|
||||
</message>
|
||||
@@ -904,96 +904,96 @@ Continuer la synchronisation comme d'habitude fera en sorte que tous les fi
|
||||
<translation>L'ajout de dossier est désactivé car vous synchronisez déjà tous vos fichiers. Si vous voulez synchroniser plusieurs dossiers, supprimez d'abord le dossier racine configuré actuellement.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="170"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="169"/>
|
||||
<source>Fetching folder list from server...</source>
|
||||
<translation>Récupération de la liste des dossiers depuis le serveur...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="841"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="832"/>
|
||||
<source>Checking for changes in '%1'</source>
|
||||
<translation>Recherche de modifications dans '%1'</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="876"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="867"/>
|
||||
<source>, '%1'</source>
|
||||
<extracomment>Build a list of file names</extracomment>
|
||||
<translation>, '%1'</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="879"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="870"/>
|
||||
<source>'%1'</source>
|
||||
<extracomment>Argument is a file name</extracomment>
|
||||
<translation>'%1'</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="904"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="895"/>
|
||||
<source>Syncing %1</source>
|
||||
<extracomment>Example text: "Syncing 'foo.txt', 'bar.txt'"</extracomment>
|
||||
<translation>Synchronisation de %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="906"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="916"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="897"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="907"/>
|
||||
<source>, </source>
|
||||
<translation>, </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="910"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="901"/>
|
||||
<source>download %1/s</source>
|
||||
<extracomment>Example text: "download 24Kb/s" (%1 is replaced by 24Kb (translated))</extracomment>
|
||||
<translation>réception %1/s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="912"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="903"/>
|
||||
<source>u2193 %1/s</source>
|
||||
<translation>u2193 %1/s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="919"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="910"/>
|
||||
<source>upload %1/s</source>
|
||||
<extracomment>Example text: "upload 24Kb/s" (%1 is replaced by 24Kb (translated))</extracomment>
|
||||
<translation>envoi %1/s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="921"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="912"/>
|
||||
<source>u2191 %1/s</source>
|
||||
<translation>u2191 %1/s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="926"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="917"/>
|
||||
<source>%1 %2 (%3 of %4)</source>
|
||||
<extracomment>Example text: "uploading foobar.png (2MB of 2MB)"</extracomment>
|
||||
<translation>%1 %2 (%3 de %4)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="930"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="921"/>
|
||||
<source>%1 %2</source>
|
||||
<extracomment>Example text: "uploading foobar.png"</extracomment>
|
||||
<translation>%1 %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="947"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="938"/>
|
||||
<source>%5 left, %1 of %2, file %3 of %4</source>
|
||||
<extracomment>Example text: "5 minutes left, 12 MB of 345 MB, file 6 of 7"</extracomment>
|
||||
<translation>%5 restant, %1 sur %2, fichier %3 sur %4</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="953"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="944"/>
|
||||
<source>file %1 of %2</source>
|
||||
<translation>fichier %1 de %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="993"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="984"/>
|
||||
<source>Waiting...</source>
|
||||
<translation>En attente ...</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="995"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="986"/>
|
||||
<source>Waiting for %n other folder(s)...</source>
|
||||
<translation><numerusform>En attente de %n autre(s) dossier(s)</numerusform><numerusform>En attente de %n autre(s) dossier(s)</numerusform></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="1001"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="992"/>
|
||||
<source>Preparing to sync...</source>
|
||||
<translation>Préparation à la synchronisation</translation>
|
||||
</message>
|
||||
@@ -1918,7 +1918,7 @@ Il est déconseillé de l'utiliser.</translation>
|
||||
<context>
|
||||
<name>OCC::PropagateDirectory</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="718"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="712"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Erreur à l'écriture des métadonnées dans la base de données</translation>
|
||||
</message>
|
||||
@@ -1956,17 +1956,17 @@ Il est déconseillé de l'utiliser.</translation>
|
||||
<translation>Le fichier téléchargé est vide malgré que le serveur a annoncé qu'il aurait dû être %1.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="711"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="693"/>
|
||||
<source>File %1 cannot be saved because of a local file name clash!</source>
|
||||
<translation>Le fichier %1 n'a pas pu être sauvegardé en raison d'un conflit sur le nom du fichier local !</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="759"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="741"/>
|
||||
<source>File has changed since discovery</source>
|
||||
<translation>Le fichier a changé depuis sa découverte</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="809"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="791"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Erreur à l'écriture des métadonnées dans la base de données</translation>
|
||||
</message>
|
||||
@@ -2452,18 +2452,18 @@ Il est déconseillé de l'utiliser.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="366"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="413"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="412"/>
|
||||
<source>Public sh&aring requires a password</source>
|
||||
<translation>Le p&artage public nécessite un mot de passe</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="435"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="434"/>
|
||||
<source>Please Set Password</source>
|
||||
<translation>Veuillez choisir un mot de passe</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="500"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="501"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="498"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="499"/>
|
||||
<source>&Share link</source>
|
||||
<translation>Partager par &lien public</translation>
|
||||
</message>
|
||||
@@ -2873,12 +2873,12 @@ Il est déconseillé de l'utiliser.</translation>
|
||||
<translation>Seulement %1 disponibles, il faut au moins %2 pour démarrer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1139"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1134"/>
|
||||
<source>Not allowed because you don't have permission to add parent folder</source>
|
||||
<translation>Non autorisé car vous n'avez pas la permission d'ajouter un dossier parent</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1146"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1141"/>
|
||||
<source>Not allowed because you don't have permission to add files in that folder</source>
|
||||
<translation>Non autorisé car vous n'avez pas la permission d'ajouter des fichiers dans ce dossier</translation>
|
||||
</message>
|
||||
@@ -2983,64 +2983,64 @@ Il est déconseillé de l'utiliser.</translation>
|
||||
<translation>Impossible de lire la liste noire de la base de données locale</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="791"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="787"/>
|
||||
<source>Unable to read from the sync journal.</source>
|
||||
<translation>Impossible de lire le journal de synchronisation.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="837"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="833"/>
|
||||
<source>Cannot open the sync journal</source>
|
||||
<translation>Impossible d'ouvrir le journal de synchronisation</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="894"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="889"/>
|
||||
<source>File name contains at least one invalid character</source>
|
||||
<translation>Le nom de fichier contient au moins un caractère non valable</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1098"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1105"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1093"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1100"/>
|
||||
<source>Ignored because of the "choose what to sync" blacklist</source>
|
||||
<translation>Ignoré à cause de la liste noire "Choisir le contenu à synchroniser".</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1124"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1119"/>
|
||||
<source>Not allowed because you don't have permission to add subfolders to that folder</source>
|
||||
<translation>Non autorisé car vous n'avez pas la permission d'ajouter des sous-dossiers dans ce dossier</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1166"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1161"/>
|
||||
<source>Not allowed to upload this file because it is read-only on the server, restoring</source>
|
||||
<translation>Non autorisé à envoyer ce fichier car il est en lecture seule sur le serveur. Restauration</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1183"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1203"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1178"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1198"/>
|
||||
<source>Not allowed to remove, restoring</source>
|
||||
<translation>Non autorisé à supprimer. Restauration</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1216"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1211"/>
|
||||
<source>Local files and share folder removed.</source>
|
||||
<translation>Fichiers locaux et répertoire de partage supprimés.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1272"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1267"/>
|
||||
<source>Move not allowed, item restored</source>
|
||||
<translation>Déplacement non autorisé, élément restauré</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1283"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1278"/>
|
||||
<source>Move not allowed because %1 is read-only</source>
|
||||
<translation>Déplacement non autorisé car %1 est en mode lecture seule</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1284"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1279"/>
|
||||
<source>the destination</source>
|
||||
<translation>la destination</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1284"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1279"/>
|
||||
<source>the source</source>
|
||||
<translation>la source</translation>
|
||||
</message>
|
||||
@@ -3070,8 +3070,8 @@ Il est déconseillé de l'utiliser.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/theme.cpp" line="289"/>
|
||||
<source><p>Copyright ownCloud GmbH</p></source>
|
||||
<translation type="unfinished"/>
|
||||
<source><p>Copyright ownCloud, Incorporated</p></source>
|
||||
<translation><p>Copyright ownCloud, Incorporated</p></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/theme.cpp" line="290"/>
|
||||
@@ -3295,8 +3295,8 @@ Il est déconseillé de l'utiliser.</translation>
|
||||
<name>OCC::ownCloudTheme</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudtheme.cpp" line="47"/>
|
||||
<source><p>Version %2. For more information visit <a href="%3">%4</a></p><p><small>By Klaas Freitag, Daniel Molkentin, Jan-Christoph Borchardt, Olivier Goffart, Markus Götz and others.</small></p><p>Copyright ownCloud GmbH</p><p>Licensed under the GNU General Public License (GPL) Version 2.0<br/>ownCloud and the ownCloud Logo are registered trademarks of ownCloud, Inc. in the United States, other countries, or both.</p></source>
|
||||
<translation type="unfinished"/>
|
||||
<source><p>Version %2. For more information visit <a href="%3">%4</a></p><p><small>By Klaas Freitag, Daniel Molkentin, Jan-Christoph Borchardt, Olivier Goffart, Markus Götz and others.</small></p><p>Copyright ownCloud, Inc.</p><p>Licensed under the GNU General Public License (GPL) Version 2.0<br/>ownCloud and the ownCloud Logo are registered trademarks of ownCloud, Inc. in the United States, other countries, or both.</p></source>
|
||||
<translation><p>Version %2. Pour plus d'informations, consultez <a href="%3">%4</a></p><p><small>By Klaas Freitag, Daniel Molkentin, Jan-Christoph Borchardt, Olivier Goffart, Markus Götz and others.</small></p><p>Copyright ownCloud, Inc.</p><p>Licensed under the GNU General Public License (GPL) Version 2.0<br/>ownCloud and the ownCloud Logo are registered trademarks of ownCloud, Inc. in the United States, other countries, or both.</p></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
||||
+48
-48
@@ -522,7 +522,7 @@
|
||||
<context>
|
||||
<name>OCC::CleanupPollsJob</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="779"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="772"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
@@ -890,7 +890,7 @@ Continuing the sync as normal will cause all your files to be overwritten by an
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="205"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="204"/>
|
||||
<source>Signed out</source>
|
||||
<translation>Desconectado</translation>
|
||||
</message>
|
||||
@@ -900,96 +900,96 @@ Continuing the sync as normal will cause all your files to be overwritten by an
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="170"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="169"/>
|
||||
<source>Fetching folder list from server...</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="841"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="832"/>
|
||||
<source>Checking for changes in '%1'</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="876"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="867"/>
|
||||
<source>, '%1'</source>
|
||||
<extracomment>Build a list of file names</extracomment>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="879"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="870"/>
|
||||
<source>'%1'</source>
|
||||
<extracomment>Argument is a file name</extracomment>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="904"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="895"/>
|
||||
<source>Syncing %1</source>
|
||||
<extracomment>Example text: "Syncing 'foo.txt', 'bar.txt'"</extracomment>
|
||||
<translation>Sincronizando %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="906"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="916"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="897"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="907"/>
|
||||
<source>, </source>
|
||||
<translation>, </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="910"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="901"/>
|
||||
<source>download %1/s</source>
|
||||
<extracomment>Example text: "download 24Kb/s" (%1 is replaced by 24Kb (translated))</extracomment>
|
||||
<translation>descargar %1/s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="912"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="903"/>
|
||||
<source>u2193 %1/s</source>
|
||||
<translation>u2193 %1/s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="919"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="910"/>
|
||||
<source>upload %1/s</source>
|
||||
<extracomment>Example text: "upload 24Kb/s" (%1 is replaced by 24Kb (translated))</extracomment>
|
||||
<translation>enviar %1/s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="921"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="912"/>
|
||||
<source>u2191 %1/s</source>
|
||||
<translation>u2191 %1/s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="926"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="917"/>
|
||||
<source>%1 %2 (%3 of %4)</source>
|
||||
<extracomment>Example text: "uploading foobar.png (2MB of 2MB)"</extracomment>
|
||||
<translation>%1 %2 (%3 de %4)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="930"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="921"/>
|
||||
<source>%1 %2</source>
|
||||
<extracomment>Example text: "uploading foobar.png"</extracomment>
|
||||
<translation>%1 %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="947"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="938"/>
|
||||
<source>%5 left, %1 of %2, file %3 of %4</source>
|
||||
<extracomment>Example text: "5 minutes left, 12 MB of 345 MB, file 6 of 7"</extracomment>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="953"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="944"/>
|
||||
<source>file %1 of %2</source>
|
||||
<translation>ficheiro %1 de %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="993"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="984"/>
|
||||
<source>Waiting...</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="995"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="986"/>
|
||||
<source>Waiting for %n other folder(s)...</source>
|
||||
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="1001"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="992"/>
|
||||
<source>Preparing to sync...</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
@@ -1912,7 +1912,7 @@ Recomendámoslle que non o use.</translation>
|
||||
<context>
|
||||
<name>OCC::PropagateDirectory</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="718"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="712"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
@@ -1950,17 +1950,17 @@ Recomendámoslle que non o use.</translation>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="711"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="693"/>
|
||||
<source>File %1 cannot be saved because of a local file name clash!</source>
|
||||
<translation>Non foi posíbel gardar o ficheiro %1 por mor dunha colisión co nome dun ficheiro local!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="759"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="741"/>
|
||||
<source>File has changed since discovery</source>
|
||||
<translation>O ficheiro cambiou após seren atopado</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="809"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="791"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
@@ -2446,18 +2446,18 @@ Recomendámoslle que non o use.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="366"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="413"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="412"/>
|
||||
<source>Public sh&aring requires a password</source>
|
||||
<translation>A comp&artición pública precisa de contrasinal </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="435"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="434"/>
|
||||
<source>Please Set Password</source>
|
||||
<translation>Estabeleza o contrasinal</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="500"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="501"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="498"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="499"/>
|
||||
<source>&Share link</source>
|
||||
<translation>&Ligazón para compartir</translation>
|
||||
</message>
|
||||
@@ -2867,12 +2867,12 @@ Recomendámoslle que non o use.</translation>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1139"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1134"/>
|
||||
<source>Not allowed because you don't have permission to add parent folder</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1146"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1141"/>
|
||||
<source>Not allowed because you don't have permission to add files in that folder</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
@@ -2977,64 +2977,64 @@ Recomendámoslle que non o use.</translation>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="791"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="787"/>
|
||||
<source>Unable to read from the sync journal.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="837"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="833"/>
|
||||
<source>Cannot open the sync journal</source>
|
||||
<translation>Non foi posíbel abrir o rexistro de sincronización</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="894"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="889"/>
|
||||
<source>File name contains at least one invalid character</source>
|
||||
<translation>O nome de ficheiro contén algún carácter incorrecto</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1098"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1105"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1093"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1100"/>
|
||||
<source>Ignored because of the "choose what to sync" blacklist</source>
|
||||
<translation>Ignorado por mor da lista negra de «escolla que sincronizar»</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1124"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1119"/>
|
||||
<source>Not allowed because you don't have permission to add subfolders to that folder</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1166"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1161"/>
|
||||
<source>Not allowed to upload this file because it is read-only on the server, restoring</source>
|
||||
<translation>Non está permitido o envío xa que o ficheiro é só de lectura no servidor, restaurando</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1183"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1203"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1178"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1198"/>
|
||||
<source>Not allowed to remove, restoring</source>
|
||||
<translation>Non está permitido retiralo, restaurando</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1216"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1211"/>
|
||||
<source>Local files and share folder removed.</source>
|
||||
<translation>Retirados os ficheiros locais e o cartafol compartido.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1272"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1267"/>
|
||||
<source>Move not allowed, item restored</source>
|
||||
<translation>Nos está permitido movelo, elemento restaurado</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1283"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1278"/>
|
||||
<source>Move not allowed because %1 is read-only</source>
|
||||
<translation>Bon está permitido movelo xa que %1 é só de lectura</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1284"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1279"/>
|
||||
<source>the destination</source>
|
||||
<translation>o destino</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1284"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1279"/>
|
||||
<source>the source</source>
|
||||
<translation>a orixe</translation>
|
||||
</message>
|
||||
@@ -3064,8 +3064,8 @@ Recomendámoslle que non o use.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/theme.cpp" line="289"/>
|
||||
<source><p>Copyright ownCloud GmbH</p></source>
|
||||
<translation type="unfinished"/>
|
||||
<source><p>Copyright ownCloud, Incorporated</p></source>
|
||||
<translation><p>Copyright ownCloud, Incorporated</p></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/theme.cpp" line="290"/>
|
||||
@@ -3289,8 +3289,8 @@ Recomendámoslle que non o use.</translation>
|
||||
<name>OCC::ownCloudTheme</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudtheme.cpp" line="47"/>
|
||||
<source><p>Version %2. For more information visit <a href="%3">%4</a></p><p><small>By Klaas Freitag, Daniel Molkentin, Jan-Christoph Borchardt, Olivier Goffart, Markus Götz and others.</small></p><p>Copyright ownCloud GmbH</p><p>Licensed under the GNU General Public License (GPL) Version 2.0<br/>ownCloud and the ownCloud Logo are registered trademarks of ownCloud, Inc. in the United States, other countries, or both.</p></source>
|
||||
<translation type="unfinished"/>
|
||||
<source><p>Version %2. For more information visit <a href="%3">%4</a></p><p><small>By Klaas Freitag, Daniel Molkentin, Jan-Christoph Borchardt, Olivier Goffart, Markus Götz and others.</small></p><p>Copyright ownCloud, Inc.</p><p>Licensed under the GNU General Public License (GPL) Version 2.0<br/>ownCloud and the ownCloud Logo are registered trademarks of ownCloud, Inc. in the United States, other countries, or both.</p></source>
|
||||
<translation><p>Versión %2. Para obter máis información visite <a href="%3">%4</a></p><p><small>Por Klaas Freitag, Daniel Molkentin, Jan-Christoph Borchardt, Olivier Goffart, Markus Götz e outros.</small></p><p>Copyright ownCloud, Inc.</p><p>Licenciado baixo a Licenza Publica Xeral (GPL) GNU Version 2.0<br/>ownCloud e o logotipo ownCloud son marcas rexistradas da ownCloud, Inc. nos EE.UU de Norte América, noutros países ou en ambos.</p></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
||||
+48
-48
@@ -522,7 +522,7 @@
|
||||
<context>
|
||||
<name>OCC::CleanupPollsJob</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="779"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="772"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
@@ -889,7 +889,7 @@ Continuing the sync as normal will cause all your files to be overwritten by an
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="205"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="204"/>
|
||||
<source>Signed out</source>
|
||||
<translation>Kijelentkezve</translation>
|
||||
</message>
|
||||
@@ -899,96 +899,96 @@ Continuing the sync as normal will cause all your files to be overwritten by an
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="170"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="169"/>
|
||||
<source>Fetching folder list from server...</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="841"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="832"/>
|
||||
<source>Checking for changes in '%1'</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="876"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="867"/>
|
||||
<source>, '%1'</source>
|
||||
<extracomment>Build a list of file names</extracomment>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="879"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="870"/>
|
||||
<source>'%1'</source>
|
||||
<extracomment>Argument is a file name</extracomment>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="904"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="895"/>
|
||||
<source>Syncing %1</source>
|
||||
<extracomment>Example text: "Syncing 'foo.txt', 'bar.txt'"</extracomment>
|
||||
<translation>%1 szinkronizálása</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="906"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="916"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="897"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="907"/>
|
||||
<source>, </source>
|
||||
<translation>, </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="910"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="901"/>
|
||||
<source>download %1/s</source>
|
||||
<extracomment>Example text: "download 24Kb/s" (%1 is replaced by 24Kb (translated))</extracomment>
|
||||
<translation>letöltés: %1/s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="912"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="903"/>
|
||||
<source>u2193 %1/s</source>
|
||||
<translation>u2193 %1/s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="919"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="910"/>
|
||||
<source>upload %1/s</source>
|
||||
<extracomment>Example text: "upload 24Kb/s" (%1 is replaced by 24Kb (translated))</extracomment>
|
||||
<translation>feltöltés: %1/s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="921"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="912"/>
|
||||
<source>u2191 %1/s</source>
|
||||
<translation>u2191 %1/s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="926"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="917"/>
|
||||
<source>%1 %2 (%3 of %4)</source>
|
||||
<extracomment>Example text: "uploading foobar.png (2MB of 2MB)"</extracomment>
|
||||
<translation>%1 %2 (%3 / %4)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="930"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="921"/>
|
||||
<source>%1 %2</source>
|
||||
<extracomment>Example text: "uploading foobar.png"</extracomment>
|
||||
<translation>%1 %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="947"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="938"/>
|
||||
<source>%5 left, %1 of %2, file %3 of %4</source>
|
||||
<extracomment>Example text: "5 minutes left, 12 MB of 345 MB, file 6 of 7"</extracomment>
|
||||
<translation>%5 maradt, %1 / %2, %3 / %4 fájl</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="953"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="944"/>
|
||||
<source>file %1 of %2</source>
|
||||
<translation>%1 / %2 fájl</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="993"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="984"/>
|
||||
<source>Waiting...</source>
|
||||
<translation>Várakozás...</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="995"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="986"/>
|
||||
<source>Waiting for %n other folder(s)...</source>
|
||||
<translation><numerusform>Várakozás %n további könyvtárra...</numerusform><numerusform>Várakozás %n további könyvtárra...</numerusform></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="1001"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="992"/>
|
||||
<source>Preparing to sync...</source>
|
||||
<translation>Felkészülés szinkronizálásra...</translation>
|
||||
</message>
|
||||
@@ -1909,7 +1909,7 @@ It is not advisable to use it.</source>
|
||||
<context>
|
||||
<name>OCC::PropagateDirectory</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="718"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="712"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
@@ -1947,17 +1947,17 @@ It is not advisable to use it.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="711"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="693"/>
|
||||
<source>File %1 cannot be saved because of a local file name clash!</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="759"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="741"/>
|
||||
<source>File has changed since discovery</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="809"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="791"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
@@ -2443,18 +2443,18 @@ It is not advisable to use it.</source>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="366"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="413"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="412"/>
|
||||
<source>Public sh&aring requires a password</source>
|
||||
<translation>Nyilvános me&gosztáshoz szükség van jelszóra</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="435"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="434"/>
|
||||
<source>Please Set Password</source>
|
||||
<translation>Kérjük, állíts be egy jelszót</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="500"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="501"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="498"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="499"/>
|
||||
<source>&Share link</source>
|
||||
<translation>Hivatkozás &megosztása</translation>
|
||||
</message>
|
||||
@@ -2863,12 +2863,12 @@ It is not advisable to use it.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1139"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1134"/>
|
||||
<source>Not allowed because you don't have permission to add parent folder</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1146"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1141"/>
|
||||
<source>Not allowed because you don't have permission to add files in that folder</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
@@ -2973,64 +2973,64 @@ It is not advisable to use it.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="791"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="787"/>
|
||||
<source>Unable to read from the sync journal.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="837"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="833"/>
|
||||
<source>Cannot open the sync journal</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="894"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="889"/>
|
||||
<source>File name contains at least one invalid character</source>
|
||||
<translation>A fájlnév legalább egy érvénytelen karaktert tartalmaz!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1098"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1105"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1093"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1100"/>
|
||||
<source>Ignored because of the "choose what to sync" blacklist</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1124"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1119"/>
|
||||
<source>Not allowed because you don't have permission to add subfolders to that folder</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1166"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1161"/>
|
||||
<source>Not allowed to upload this file because it is read-only on the server, restoring</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1183"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1203"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1178"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1198"/>
|
||||
<source>Not allowed to remove, restoring</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1216"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1211"/>
|
||||
<source>Local files and share folder removed.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1272"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1267"/>
|
||||
<source>Move not allowed, item restored</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1283"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1278"/>
|
||||
<source>Move not allowed because %1 is read-only</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1284"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1279"/>
|
||||
<source>the destination</source>
|
||||
<translation>a cél</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1284"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1279"/>
|
||||
<source>the source</source>
|
||||
<translation>a forrás</translation>
|
||||
</message>
|
||||
@@ -3060,8 +3060,8 @@ It is not advisable to use it.</source>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/theme.cpp" line="289"/>
|
||||
<source><p>Copyright ownCloud GmbH</p></source>
|
||||
<translation type="unfinished"/>
|
||||
<source><p>Copyright ownCloud, Incorporated</p></source>
|
||||
<translation><p>Szerzői jog: ownCloud, Incorporated</p></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/theme.cpp" line="290"/>
|
||||
@@ -3285,8 +3285,8 @@ It is not advisable to use it.</source>
|
||||
<name>OCC::ownCloudTheme</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudtheme.cpp" line="47"/>
|
||||
<source><p>Version %2. For more information visit <a href="%3">%4</a></p><p><small>By Klaas Freitag, Daniel Molkentin, Jan-Christoph Borchardt, Olivier Goffart, Markus Götz and others.</small></p><p>Copyright ownCloud GmbH</p><p>Licensed under the GNU General Public License (GPL) Version 2.0<br/>ownCloud and the ownCloud Logo are registered trademarks of ownCloud, Inc. in the United States, other countries, or both.</p></source>
|
||||
<translation type="unfinished"/>
|
||||
<source><p>Version %2. For more information visit <a href="%3">%4</a></p><p><small>By Klaas Freitag, Daniel Molkentin, Jan-Christoph Borchardt, Olivier Goffart, Markus Götz and others.</small></p><p>Copyright ownCloud, Inc.</p><p>Licensed under the GNU General Public License (GPL) Version 2.0<br/>ownCloud and the ownCloud Logo are registered trademarks of ownCloud, Inc. in the United States, other countries, or both.</p></source>
|
||||
<translation><p>Verzió: %2. Bővebb információért látogass el ide: <a href="%3">%4</a></p><p><small>Készítők: Klaas Freitag, Daniel Molkentin, Jan-Christoph Borchardt, Olivier Goffart, Markus Götz és még mások.</small></p><p>Minden jog fenntartva. ownCloud, Inc.</p><p>A GNU General Public License (GPL) 2.0-ás verziója alatt licencelve<br/>A ownCloud és a ownCloud logó a ownCloud, Inc. bejegyzett védjegye az Egyesült Államokban és más országokban.</p></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
||||
+48
-48
@@ -522,7 +522,7 @@
|
||||
<context>
|
||||
<name>OCC::CleanupPollsJob</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="779"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="772"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Errore durante la scrittura dei metadati nel database</translation>
|
||||
</message>
|
||||
@@ -894,7 +894,7 @@ Se continui normalmente la sincronizzazione provocherai la sovrascrittura di tut
|
||||
<translation>Errore durante il caricamento dell'elenco delle cartelle dal server.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="205"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="204"/>
|
||||
<source>Signed out</source>
|
||||
<translation>Disconnesso</translation>
|
||||
</message>
|
||||
@@ -904,96 +904,96 @@ Se continui normalmente la sincronizzazione provocherai la sovrascrittura di tut
|
||||
<translation>L'aggiunta di una cartella è disabilitata perché stai già sincronizzando tutti i tuoi file. Se desideri sincronizzare più cartelle, rimuovi la cartella radice attualmente configurata.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="170"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="169"/>
|
||||
<source>Fetching folder list from server...</source>
|
||||
<translation>Recupero dell'elenco delle cartelle dal server...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="841"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="832"/>
|
||||
<source>Checking for changes in '%1'</source>
|
||||
<translation>Controllo delle modifiche in '%1'</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="876"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="867"/>
|
||||
<source>, '%1'</source>
|
||||
<extracomment>Build a list of file names</extracomment>
|
||||
<translation>, '%1'</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="879"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="870"/>
|
||||
<source>'%1'</source>
|
||||
<extracomment>Argument is a file name</extracomment>
|
||||
<translation>'%1'</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="904"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="895"/>
|
||||
<source>Syncing %1</source>
|
||||
<extracomment>Example text: "Syncing 'foo.txt', 'bar.txt'"</extracomment>
|
||||
<translation>Sincronizzazione di %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="906"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="916"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="897"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="907"/>
|
||||
<source>, </source>
|
||||
<translation>, </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="910"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="901"/>
|
||||
<source>download %1/s</source>
|
||||
<extracomment>Example text: "download 24Kb/s" (%1 is replaced by 24Kb (translated))</extracomment>
|
||||
<translation>ricezione %1/s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="912"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="903"/>
|
||||
<source>u2193 %1/s</source>
|
||||
<translation>u2193 %1/s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="919"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="910"/>
|
||||
<source>upload %1/s</source>
|
||||
<extracomment>Example text: "upload 24Kb/s" (%1 is replaced by 24Kb (translated))</extracomment>
|
||||
<translation>invio %1/s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="921"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="912"/>
|
||||
<source>u2191 %1/s</source>
|
||||
<translation>u2191 %1/s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="926"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="917"/>
|
||||
<source>%1 %2 (%3 of %4)</source>
|
||||
<extracomment>Example text: "uploading foobar.png (2MB of 2MB)"</extracomment>
|
||||
<translation>%1 %2 (%3 di %4)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="930"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="921"/>
|
||||
<source>%1 %2</source>
|
||||
<extracomment>Example text: "uploading foobar.png"</extracomment>
|
||||
<translation>%1 %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="947"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="938"/>
|
||||
<source>%5 left, %1 of %2, file %3 of %4</source>
|
||||
<extracomment>Example text: "5 minutes left, 12 MB of 345 MB, file 6 of 7"</extracomment>
|
||||
<translation>%5 rimanenti, %1 di %2, file %3 di %4</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="953"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="944"/>
|
||||
<source>file %1 of %2</source>
|
||||
<translation>file %1 di %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="993"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="984"/>
|
||||
<source>Waiting...</source>
|
||||
<translation>Attendere...</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="995"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="986"/>
|
||||
<source>Waiting for %n other folder(s)...</source>
|
||||
<translation><numerusform>In attesa di %n altra cartella...</numerusform><numerusform>In attesa di %n altre cartelle...</numerusform></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="1001"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="992"/>
|
||||
<source>Preparing to sync...</source>
|
||||
<translation>Preparazione della sincronizzazione...</translation>
|
||||
</message>
|
||||
@@ -1917,7 +1917,7 @@ Non è consigliabile utilizzarlo.</translation>
|
||||
<context>
|
||||
<name>OCC::PropagateDirectory</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="718"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="712"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Errore durante la scrittura dei metadati nel database</translation>
|
||||
</message>
|
||||
@@ -1955,17 +1955,17 @@ Non è consigliabile utilizzarlo.</translation>
|
||||
<translation>Il file scaricato è vuoto nonostante il server indicasse una dimensione di %1.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="711"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="693"/>
|
||||
<source>File %1 cannot be saved because of a local file name clash!</source>
|
||||
<translation>Il file %1 non può essere salvato a causa di un conflitto con un file locale.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="759"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="741"/>
|
||||
<source>File has changed since discovery</source>
|
||||
<translation>Il file è stato modificato dal suo rilevamento</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="809"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="791"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Errore durante la scrittura dei metadati nel database</translation>
|
||||
</message>
|
||||
@@ -2451,18 +2451,18 @@ Non è consigliabile utilizzarlo.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="366"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="413"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="412"/>
|
||||
<source>Public sh&aring requires a password</source>
|
||||
<translation>La condivisione pubblic&a richiede una password</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="435"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="434"/>
|
||||
<source>Please Set Password</source>
|
||||
<translation>imposta la password</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="500"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="501"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="498"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="499"/>
|
||||
<source>&Share link</source>
|
||||
<translation>Condividi colle&gamento</translation>
|
||||
</message>
|
||||
@@ -2872,12 +2872,12 @@ Non è consigliabile utilizzarlo.</translation>
|
||||
<translation>Sono disponibili solo %1, servono almeno %2 per iniziare</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1139"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1134"/>
|
||||
<source>Not allowed because you don't have permission to add parent folder</source>
|
||||
<translation>Non consentito poiché non disponi dei permessi per aggiungere la cartella superiore</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1146"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1141"/>
|
||||
<source>Not allowed because you don't have permission to add files in that folder</source>
|
||||
<translation>Non consentito poiché non disponi dei permessi per aggiungere file in quella cartella</translation>
|
||||
</message>
|
||||
@@ -2982,64 +2982,64 @@ Non è consigliabile utilizzarlo.</translation>
|
||||
<translation>Impossibile leggere la lista nera dal database locale</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="791"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="787"/>
|
||||
<source>Unable to read from the sync journal.</source>
|
||||
<translation>Impossibile leggere dal registro di sincronizzazione.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="837"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="833"/>
|
||||
<source>Cannot open the sync journal</source>
|
||||
<translation>Impossibile aprire il registro di sincronizzazione</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="894"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="889"/>
|
||||
<source>File name contains at least one invalid character</source>
|
||||
<translation>Il nome del file contiene almeno un carattere non valido</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1098"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1105"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1093"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1100"/>
|
||||
<source>Ignored because of the "choose what to sync" blacklist</source>
|
||||
<translation>Ignorato in base alla lista nera per la scelta di cosa sincronizzare</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1124"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1119"/>
|
||||
<source>Not allowed because you don't have permission to add subfolders to that folder</source>
|
||||
<translation>Non consentito poiché non disponi dei permessi per aggiungere sottocartelle in quella cartella</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1166"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1161"/>
|
||||
<source>Not allowed to upload this file because it is read-only on the server, restoring</source>
|
||||
<translation>Il caricamento di questo file non è consentito poiché è in sola lettura sul server, ripristino</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1183"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1203"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1178"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1198"/>
|
||||
<source>Not allowed to remove, restoring</source>
|
||||
<translation>Rimozione non consentita, ripristino</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1216"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1211"/>
|
||||
<source>Local files and share folder removed.</source>
|
||||
<translation>I file locali e la cartella condivisa sono stati rimossi.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1272"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1267"/>
|
||||
<source>Move not allowed, item restored</source>
|
||||
<translation>Spostamento non consentito, elemento ripristinato</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1283"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1278"/>
|
||||
<source>Move not allowed because %1 is read-only</source>
|
||||
<translation>Spostamento non consentito poiché %1 è in sola lettura</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1284"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1279"/>
|
||||
<source>the destination</source>
|
||||
<translation>la destinazione</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1284"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1279"/>
|
||||
<source>the source</source>
|
||||
<translation>l'origine</translation>
|
||||
</message>
|
||||
@@ -3069,8 +3069,8 @@ Non è consigliabile utilizzarlo.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/theme.cpp" line="289"/>
|
||||
<source><p>Copyright ownCloud GmbH</p></source>
|
||||
<translation><p>Copyright ownCloud GmbH</p></translation>
|
||||
<source><p>Copyright ownCloud, Incorporated</p></source>
|
||||
<translation><p>Copyright ownCloud, Incorporated</p></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/theme.cpp" line="290"/>
|
||||
@@ -3294,8 +3294,8 @@ Non è consigliabile utilizzarlo.</translation>
|
||||
<name>OCC::ownCloudTheme</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudtheme.cpp" line="47"/>
|
||||
<source><p>Version %2. For more information visit <a href="%3">%4</a></p><p><small>By Klaas Freitag, Daniel Molkentin, Jan-Christoph Borchardt, Olivier Goffart, Markus Götz and others.</small></p><p>Copyright ownCloud GmbH</p><p>Licensed under the GNU General Public License (GPL) Version 2.0<br/>ownCloud and the ownCloud Logo are registered trademarks of ownCloud, Inc. in the United States, other countries, or both.</p></source>
|
||||
<translation><p>Versione %2. Per ulteriori informazioni, visita <a href="%3">%4</a></p><p><small>Di Klaas Freitag, Daniel Molkentin, Jan-Christoph Borchardt, Olivier Goffart, Markus Götz e altri.</small></p><p>Copyright ownCloud GmbH</p><p>Sotto licenza GNU General Public License (GPL) versione 2.0<br/>ownCloud e il logo di ownCloud sono marchi registrati di ownCloud, Inc. negli Stati Uniti, in altri paesi o entrambi.</p></translation>
|
||||
<source><p>Version %2. For more information visit <a href="%3">%4</a></p><p><small>By Klaas Freitag, Daniel Molkentin, Jan-Christoph Borchardt, Olivier Goffart, Markus Götz and others.</small></p><p>Copyright ownCloud, Inc.</p><p>Licensed under the GNU General Public License (GPL) Version 2.0<br/>ownCloud and the ownCloud Logo are registered trademarks of ownCloud, Inc. in the United States, other countries, or both.</p></source>
|
||||
<translation><p>Versione %2. Per ulteriori informazioni, visita <a href="%3">%4</a></p><p><small>Di Klaas Freitag, Daniel Molkentin, Jan-Christoph Borchardt, Olivier Goffart, Markus Götz e altri.</small></p><p>Copyright ownCloud, Inc.</p><p>Sotto licenza GNU General Public License (GPL) versione 2.0<br/>ownCloud e il logo di ownCloud sono marchi registrati di ownCloud, Inc. negli Stati Uniti, in altri paesi o entrambi</p></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
||||
+53
-53
@@ -522,7 +522,7 @@
|
||||
<context>
|
||||
<name>OCC::CleanupPollsJob</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="779"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="772"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>メタデータのデータベースへの書き込みに失敗</translation>
|
||||
</message>
|
||||
@@ -834,12 +834,12 @@ Continuing the sync as normal will cause all your files to be overwritten by an
|
||||
<message>
|
||||
<location filename="../src/gui/folderman.cpp" line="1214"/>
|
||||
<source>The local folder %1 already contains a folder used in a folder sync connection. Please pick another one!</source>
|
||||
<translation>ローカルフォルダー %1 にはすでに同期フォルダーとして利用されてるフォルダーを含んでいます。他のフォルダーを選択してください。</translation>
|
||||
<translation>ローカルフォルダー %1 にはすでに同期フォルダーとして利用されてるフォルダを含んでいます。他のフォルダーを選択してください。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderman.cpp" line="1221"/>
|
||||
<source>The local folder %1 is a symbolic link. The link target already contains a folder used in a folder sync connection. Please pick another one!</source>
|
||||
<translation>ローカルフォルダー %1 はシンボリックリンクです。リンク先のフォルダーにはすでに同期フォルダーとして利用されているフォルダーを含みます。他のフォルダーを選択してください。</translation>
|
||||
<translation>ローカルフォルダー %1 はシンボリックリンクです。リンク先のフォルダにはすでに同期フォルダーとして利用されているフォルダーを含みます。他のフォルダーを選択してください。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderman.cpp" line="1228"/>
|
||||
@@ -894,7 +894,7 @@ Continuing the sync as normal will cause all your files to be overwritten by an
|
||||
<translation>サーバーからフォルダーのリスト取得時にエラー</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="205"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="204"/>
|
||||
<source>Signed out</source>
|
||||
<translation>サインアウト</translation>
|
||||
</message>
|
||||
@@ -904,96 +904,96 @@ Continuing the sync as normal will cause all your files to be overwritten by an
|
||||
<translation>すでに同期対象のフォルダーのため、追加したフォルダーを無効にしました。複数のフォルダーを同期したい場合は、現在設定されているルートフォルダーの同期設定を削除してください。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="170"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="169"/>
|
||||
<source>Fetching folder list from server...</source>
|
||||
<translation>サーバーからフォルダーリストを取得中...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="841"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="832"/>
|
||||
<source>Checking for changes in '%1'</source>
|
||||
<translation>'%1' の更新を確認しています</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="876"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="867"/>
|
||||
<source>, '%1'</source>
|
||||
<extracomment>Build a list of file names</extracomment>
|
||||
<translation>, '%1'</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="879"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="870"/>
|
||||
<source>'%1'</source>
|
||||
<extracomment>Argument is a file name</extracomment>
|
||||
<translation>'%1'</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="904"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="895"/>
|
||||
<source>Syncing %1</source>
|
||||
<extracomment>Example text: "Syncing 'foo.txt', 'bar.txt'"</extracomment>
|
||||
<translation>同期中 %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="906"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="916"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="897"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="907"/>
|
||||
<source>, </source>
|
||||
<translation>, </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="910"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="901"/>
|
||||
<source>download %1/s</source>
|
||||
<extracomment>Example text: "download 24Kb/s" (%1 is replaced by 24Kb (translated))</extracomment>
|
||||
<translation>ダウンロード %1/s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="912"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="903"/>
|
||||
<source>u2193 %1/s</source>
|
||||
<translation>u2193 %1/s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="919"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="910"/>
|
||||
<source>upload %1/s</source>
|
||||
<extracomment>Example text: "upload 24Kb/s" (%1 is replaced by 24Kb (translated))</extracomment>
|
||||
<translation>アップロード %1/s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="921"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="912"/>
|
||||
<source>u2191 %1/s</source>
|
||||
<translation>u2191 %1/s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="926"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="917"/>
|
||||
<source>%1 %2 (%3 of %4)</source>
|
||||
<extracomment>Example text: "uploading foobar.png (2MB of 2MB)"</extracomment>
|
||||
<translation>%1 %2 (%4 中 %3 完了)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="930"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="921"/>
|
||||
<source>%1 %2</source>
|
||||
<extracomment>Example text: "uploading foobar.png"</extracomment>
|
||||
<translation>%1 %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="947"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="938"/>
|
||||
<source>%5 left, %1 of %2, file %3 of %4</source>
|
||||
<extracomment>Example text: "5 minutes left, 12 MB of 345 MB, file 6 of 7"</extracomment>
|
||||
<translation>残り %5、%2中 %1完了 、%4中 %3 ファイル完了</translation>
|
||||
<translation>残り %5分、%2中 %1完了 、%4中 %3 ファイル完了</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="953"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="944"/>
|
||||
<source>file %1 of %2</source>
|
||||
<translation>%1 / %2 ファイル</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="993"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="984"/>
|
||||
<source>Waiting...</source>
|
||||
<translation>待機中...</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="995"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="986"/>
|
||||
<source>Waiting for %n other folder(s)...</source>
|
||||
<translation><numerusform>%n 他のフォルダーの完了待ち...</numerusform></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="1001"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="992"/>
|
||||
<source>Preparing to sync...</source>
|
||||
<translation>同期の準備中...</translation>
|
||||
</message>
|
||||
@@ -1916,7 +1916,7 @@ It is not advisable to use it.</source>
|
||||
<context>
|
||||
<name>OCC::PropagateDirectory</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="718"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="712"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>メタデータのデータベースへの書き込みに失敗</translation>
|
||||
</message>
|
||||
@@ -1954,17 +1954,17 @@ It is not advisable to use it.</source>
|
||||
<translation>サーバーが通知しているファイルは %1 であるべきですが、ダウンロードファイルは空でした。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="711"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="693"/>
|
||||
<source>File %1 cannot be saved because of a local file name clash!</source>
|
||||
<translation>%1 はローカルファイル名が衝突しているため保存できません!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="759"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="741"/>
|
||||
<source>File has changed since discovery</source>
|
||||
<translation>ファイルは発見以降に変更されました</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="809"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="791"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>メタデータのデータベースへの書き込みに失敗</translation>
|
||||
</message>
|
||||
@@ -2217,7 +2217,7 @@ It is not advisable to use it.</source>
|
||||
<message>
|
||||
<location filename="../src/gui/proxyauthdialog.ui" line="43"/>
|
||||
<source>The proxy server needs a username and password.</source>
|
||||
<translation>プロキシサーバーにはユーザー名とパスワードが必要です。</translation>
|
||||
<translation>プロキシサーバーにユーザー名とパスワードが必要です。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/proxyauthdialog.ui" line="50"/>
|
||||
@@ -2450,18 +2450,18 @@ It is not advisable to use it.</source>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="366"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="413"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="412"/>
|
||||
<source>Public sh&aring requires a password</source>
|
||||
<translation>共有するにはパスワードが必要(&A)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="435"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="434"/>
|
||||
<source>Please Set Password</source>
|
||||
<translation>パスワードを入力してください</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="500"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="501"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="498"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="499"/>
|
||||
<source>&Share link</source>
|
||||
<translation>リンク共有(&S)</translation>
|
||||
</message>
|
||||
@@ -2550,7 +2550,7 @@ It is not advisable to use it.</source>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/shibboleth/shibbolethwebview.cpp" line="91"/>
|
||||
<source>SSL Chipher Debug View</source>
|
||||
<translation>SSL暗号デバッグ表示</translation>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/shibboleth/shibbolethwebview.cpp" line="99"/>
|
||||
@@ -2871,12 +2871,12 @@ It is not advisable to use it.</source>
|
||||
<translation>%1 しか空き容量がありません、開始するためには少なくとも %2 は必要です。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1139"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1134"/>
|
||||
<source>Not allowed because you don't have permission to add parent folder</source>
|
||||
<translation>親フォルダーを追加する権限がありません</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1146"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1141"/>
|
||||
<source>Not allowed because you don't have permission to add files in that folder</source>
|
||||
<translation>そのフォルダーにファイルを追加する権限がありません</translation>
|
||||
</message>
|
||||
@@ -2981,64 +2981,64 @@ It is not advisable to use it.</source>
|
||||
<translation>ローカルデータベースからブラックリストを読み込みできません</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="791"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="787"/>
|
||||
<source>Unable to read from the sync journal.</source>
|
||||
<translation>同期ジャーナルから読み込みできません</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="837"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="833"/>
|
||||
<source>Cannot open the sync journal</source>
|
||||
<translation>同期ジャーナルを開くことができません</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="894"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="889"/>
|
||||
<source>File name contains at least one invalid character</source>
|
||||
<translation>ファイル名に1文字以上の無効な文字が含まれています</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1098"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1105"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1093"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1100"/>
|
||||
<source>Ignored because of the "choose what to sync" blacklist</source>
|
||||
<translation>"同期対象先" ブラックリストにより無視されました。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1124"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1119"/>
|
||||
<source>Not allowed because you don't have permission to add subfolders to that folder</source>
|
||||
<translation>そのフォルダーにサブフォルダーを追加する権限がありません</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1166"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1161"/>
|
||||
<source>Not allowed to upload this file because it is read-only on the server, restoring</source>
|
||||
<translation>サーバーでは読み取り専用となっているため、このファイルをアップロードすることはできません、復元しています</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1183"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1203"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1178"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1198"/>
|
||||
<source>Not allowed to remove, restoring</source>
|
||||
<translation>削除できないので復元しています</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1216"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1211"/>
|
||||
<source>Local files and share folder removed.</source>
|
||||
<translation>ローカルファイルと共有フォルダーを削除しました。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1272"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1267"/>
|
||||
<source>Move not allowed, item restored</source>
|
||||
<translation>移動できないので項目を復元しました</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1283"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1278"/>
|
||||
<source>Move not allowed because %1 is read-only</source>
|
||||
<translation>%1 は読み取り専用のため移動できません</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1284"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1279"/>
|
||||
<source>the destination</source>
|
||||
<translation>移動先</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1284"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1279"/>
|
||||
<source>the source</source>
|
||||
<translation>移動元</translation>
|
||||
</message>
|
||||
@@ -3068,8 +3068,8 @@ It is not advisable to use it.</source>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/theme.cpp" line="289"/>
|
||||
<source><p>Copyright ownCloud GmbH</p></source>
|
||||
<translation type="unfinished"/>
|
||||
<source><p>Copyright ownCloud, Incorporated</p></source>
|
||||
<translation><p>Copyright ownCloud, Incorporated</p></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/theme.cpp" line="290"/>
|
||||
@@ -3293,8 +3293,8 @@ It is not advisable to use it.</source>
|
||||
<name>OCC::ownCloudTheme</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudtheme.cpp" line="47"/>
|
||||
<source><p>Version %2. For more information visit <a href="%3">%4</a></p><p><small>By Klaas Freitag, Daniel Molkentin, Jan-Christoph Borchardt, Olivier Goffart, Markus Götz and others.</small></p><p>Copyright ownCloud GmbH</p><p>Licensed under the GNU General Public License (GPL) Version 2.0<br/>ownCloud and the ownCloud Logo are registered trademarks of ownCloud, Inc. in the United States, other countries, or both.</p></source>
|
||||
<translation type="unfinished"/>
|
||||
<source><p>Version %2. For more information visit <a href="%3">%4</a></p><p><small>By Klaas Freitag, Daniel Molkentin, Jan-Christoph Borchardt, Olivier Goffart, Markus Götz and others.</small></p><p>Copyright ownCloud, Inc.</p><p>Licensed under the GNU General Public License (GPL) Version 2.0<br/>ownCloud and the ownCloud Logo are registered trademarks of ownCloud, Inc. in the United States, other countries, or both.</p></source>
|
||||
<translation><p>バージョン %2 詳細については、<a href="%3">%4</a>をご覧ください。By Klaas Freitag, Daniel Molkentin, Jan-Christoph Borchardt, Olivier Goffart, Markus Götz and others.<br/>Based on Mirall by Duncan Mac-Vicar P.</small></p><p>著作権 ownCloud, Inc.<p><p>%4 が配布し、 GNU General Public License (GPL) バージョン2.0 の下でライセンスされています。<br>ownCloud 及び ownCloud のロゴはアメリカ合衆国またはその他の国、あるいはその両方における<br> ownCloud, Inc.の登録商標です。</p></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
||||
@@ -522,7 +522,7 @@
|
||||
<context>
|
||||
<name>OCC::CleanupPollsJob</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="779"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="772"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Feil ved skriving av metadata til databasen</translation>
|
||||
</message>
|
||||
@@ -894,7 +894,7 @@ Hvis synkroniseringen fortsetter som normalt, vil alle filene dine bli overskrev
|
||||
<translation>Feil ved innlasting av listen av mapper fra serveren.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="205"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="204"/>
|
||||
<source>Signed out</source>
|
||||
<translation>Logget ut</translation>
|
||||
</message>
|
||||
@@ -904,96 +904,96 @@ Hvis synkroniseringen fortsetter som normalt, vil alle filene dine bli overskrev
|
||||
<translation>Du kan ikke legge til en mappe fordi du allerede synkroniserer alle filene dine. Hvis du ønsker å synkronisere individuelle mapper, må du fjerne synkroniseringen av rotmappen som er konfigurert.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="170"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="169"/>
|
||||
<source>Fetching folder list from server...</source>
|
||||
<translation>Henter mappeliste fra server..</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="841"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="832"/>
|
||||
<source>Checking for changes in '%1'</source>
|
||||
<translation>Ser etter endringer i '%1'</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="876"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="867"/>
|
||||
<source>, '%1'</source>
|
||||
<extracomment>Build a list of file names</extracomment>
|
||||
<translation>, '%1'</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="879"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="870"/>
|
||||
<source>'%1'</source>
|
||||
<extracomment>Argument is a file name</extracomment>
|
||||
<translation>'%1'</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="904"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="895"/>
|
||||
<source>Syncing %1</source>
|
||||
<extracomment>Example text: "Syncing 'foo.txt', 'bar.txt'"</extracomment>
|
||||
<translation>Synkroniserer %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="906"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="916"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="897"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="907"/>
|
||||
<source>, </source>
|
||||
<translation>, </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="910"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="901"/>
|
||||
<source>download %1/s</source>
|
||||
<extracomment>Example text: "download 24Kb/s" (%1 is replaced by 24Kb (translated))</extracomment>
|
||||
<translation>nedlasting %1/s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="912"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="903"/>
|
||||
<source>u2193 %1/s</source>
|
||||
<translation>u2193 %1/s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="919"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="910"/>
|
||||
<source>upload %1/s</source>
|
||||
<extracomment>Example text: "upload 24Kb/s" (%1 is replaced by 24Kb (translated))</extracomment>
|
||||
<translation>opplasting %1/s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="921"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="912"/>
|
||||
<source>u2191 %1/s</source>
|
||||
<translation>u2191 %1/s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="926"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="917"/>
|
||||
<source>%1 %2 (%3 of %4)</source>
|
||||
<extracomment>Example text: "uploading foobar.png (2MB of 2MB)"</extracomment>
|
||||
<translation>%1 %2 (%3 av %4)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="930"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="921"/>
|
||||
<source>%1 %2</source>
|
||||
<extracomment>Example text: "uploading foobar.png"</extracomment>
|
||||
<translation>%1 %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="947"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="938"/>
|
||||
<source>%5 left, %1 of %2, file %3 of %4</source>
|
||||
<extracomment>Example text: "5 minutes left, 12 MB of 345 MB, file 6 of 7"</extracomment>
|
||||
<translation>%5 igjen, %1 av %2, fil %3 of %4</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="953"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="944"/>
|
||||
<source>file %1 of %2</source>
|
||||
<translation>fil %1 av %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="993"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="984"/>
|
||||
<source>Waiting...</source>
|
||||
<translation>Venter..</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="995"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="986"/>
|
||||
<source>Waiting for %n other folder(s)...</source>
|
||||
<translation><numerusform>Venter på %n annen mappe...</numerusform><numerusform>Venter på %n andre mappe(r)...</numerusform></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="1001"/>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="992"/>
|
||||
<source>Preparing to sync...</source>
|
||||
<translation>Forbereder synkronisering...</translation>
|
||||
</message>
|
||||
@@ -1918,7 +1918,7 @@ Det er ikke tilrådelig å bruke den.</translation>
|
||||
<context>
|
||||
<name>OCC::PropagateDirectory</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="718"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="712"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Feil ved skriving av metadata til databasen</translation>
|
||||
</message>
|
||||
@@ -1956,17 +1956,17 @@ Det er ikke tilrådelig å bruke den.</translation>
|
||||
<translation>Nedlastet fil er tom, selv om serveren annonserte at den skulle være %1.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="711"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="693"/>
|
||||
<source>File %1 cannot be saved because of a local file name clash!</source>
|
||||
<translation>Fil %1 kan ikke lagres på grunn av lokal konflikt med filnavn.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="759"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="741"/>
|
||||
<source>File has changed since discovery</source>
|
||||
<translation>Filen er endret siden den ble oppdaget</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="809"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="791"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Feil ved skriving av metadata til databasen</translation>
|
||||
</message>
|
||||
@@ -2452,18 +2452,18 @@ Det er ikke tilrådelig å bruke den.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="366"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="413"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="412"/>
|
||||
<source>Public sh&aring requires a password</source>
|
||||
<translation>Offentlig d&eling krever et passord</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="435"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="434"/>
|
||||
<source>Please Set Password</source>
|
||||
<translation>Sett passord</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="500"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="501"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="498"/>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="499"/>
|
||||
<source>&Share link</source>
|
||||
<translation>&Del lenke</translation>
|
||||
</message>
|
||||
@@ -2873,12 +2873,12 @@ Det er ikke tilrådelig å bruke den.</translation>
|
||||
<translation>Bare %1 er tilgjengelig, trenger minst %2 for å begynne</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1139"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1134"/>
|
||||
<source>Not allowed because you don't have permission to add parent folder</source>
|
||||
<translation>Ikke tillatt fordi du ikke har lov til å legge til foreldremappe</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1146"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1141"/>
|
||||
<source>Not allowed because you don't have permission to add files in that folder</source>
|
||||
<translation>Ikke tillatt fordi du ikke har lov til å opprette filer i den mappen</translation>
|
||||
</message>
|
||||
@@ -2983,64 +2983,64 @@ Det er ikke tilrådelig å bruke den.</translation>
|
||||
<translation>Kan ikke lese svartelisten fra den lokale databasen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="791"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="787"/>
|
||||
<source>Unable to read from the sync journal.</source>
|
||||
<translation>Kan ikke lese fra synkroniseringsjournalen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="837"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="833"/>
|
||||
<source>Cannot open the sync journal</source>
|
||||
<translation>Kan ikke åpne synkroniseringsjournalen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="894"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="889"/>
|
||||
<source>File name contains at least one invalid character</source>
|
||||
<translation>Filnavnet inneholder minst ett ulovlig tegn</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1098"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1105"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1093"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1100"/>
|
||||
<source>Ignored because of the "choose what to sync" blacklist</source>
|
||||
<translation>Ignorert på grunn av svartelisten "velg hva som skal synkroniseres"</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1124"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1119"/>
|
||||
<source>Not allowed because you don't have permission to add subfolders to that folder</source>
|
||||
<translation>Ikke tillatt fordi du ikke har lov til å lage undermapper i den mappen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1166"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1161"/>
|
||||
<source>Not allowed to upload this file because it is read-only on the server, restoring</source>
|
||||
<translation>Ikke tillatt å laste opp denne filenfordi den er skrivebeskyttet på serveren, gjenoppretter</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1183"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1203"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1178"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1198"/>
|
||||
<source>Not allowed to remove, restoring</source>
|
||||
<translation>Ikke tillatt å fjerne, gjenoppretter</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1216"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1211"/>
|
||||
<source>Local files and share folder removed.</source>
|
||||
<translation>Lokale filer og delingsmappe fjernet.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1272"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1267"/>
|
||||
<source>Move not allowed, item restored</source>
|
||||
<translation>Flytting ikke tillatt, element gjenopprettet</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1283"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1278"/>
|
||||
<source>Move not allowed because %1 is read-only</source>
|
||||
<translation>Flytting ikke tillatt fordi %1 er skrivebeskyttet</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1284"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1279"/>
|
||||
<source>the destination</source>
|
||||
<translation>målet</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1284"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1279"/>
|
||||
<source>the source</source>
|
||||
<translation>kilden</translation>
|
||||
</message>
|
||||
@@ -3070,8 +3070,8 @@ Det er ikke tilrådelig å bruke den.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/theme.cpp" line="289"/>
|
||||
<source><p>Copyright ownCloud GmbH</p></source>
|
||||
<translation type="unfinished"/>
|
||||
<source><p>Copyright ownCloud, Incorporated</p></source>
|
||||
<translation><p>Copyright ownCloud, Incorporated</p></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/theme.cpp" line="290"/>
|
||||
@@ -3295,8 +3295,8 @@ Det er ikke tilrådelig å bruke den.</translation>
|
||||
<name>OCC::ownCloudTheme</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudtheme.cpp" line="47"/>
|
||||
<source><p>Version %2. For more information visit <a href="%3">%4</a></p><p><small>By Klaas Freitag, Daniel Molkentin, Jan-Christoph Borchardt, Olivier Goffart, Markus Götz and others.</small></p><p>Copyright ownCloud GmbH</p><p>Licensed under the GNU General Public License (GPL) Version 2.0<br/>ownCloud and the ownCloud Logo are registered trademarks of ownCloud, Inc. in the United States, other countries, or both.</p></source>
|
||||
<translation type="unfinished"/>
|
||||
<source><p>Version %2. For more information visit <a href="%3">%4</a></p><p><small>By Klaas Freitag, Daniel Molkentin, Jan-Christoph Borchardt, Olivier Goffart, Markus Götz and others.</small></p><p>Copyright ownCloud, Inc.</p><p>Licensed under the GNU General Public License (GPL) Version 2.0<br/>ownCloud and the ownCloud Logo are registered trademarks of ownCloud, Inc. in the United States, other countries, or both.</p></source>
|
||||
<translation><p>Versjon %2. For mer informasjon gå til <a href="%3">%4</a></p><p><small>Av Klaas Freitag, Daniel Molkentin, Jan-Christoph Borchardt, Olivier Goffart, Markus Götz med flere.</small></p><p>Copyright ownCloud, Inc.</p><p>Lisensiert under GNU General Public License (GPL) Version 2.0<br/>ownCloud og ownCloud-logo er registrerte varemerker for ownCloud, Inc. i USA, andre land, eller begge deler.</p></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
||||
Alguns arquivos não foram exibidos porque demasiados arquivos foram alterados neste diff Mostrar Mais
Referência em uma Nova Issue
Bloquear um usuário