зеркало из https://github.com/nextcloud/desktop.git
Merge branch 'master' into clientSideEncryptionV3
This commit is contained in:
Коммит
5420741edb
|
@ -201,7 +201,7 @@ if(BUILD_CLIENT)
|
|||
|
||||
endif()
|
||||
|
||||
find_package(ZLIB)
|
||||
find_package(ZLIB REQUIRED)
|
||||
endif()
|
||||
|
||||
if (NOT DEFINED APPLICATION_ICON_NAME)
|
||||
|
@ -215,6 +215,9 @@ add_definitions(-D_UNICODE)
|
|||
if( WIN32 )
|
||||
add_definitions( -D__USE_MINGW_ANSI_STDIO=1 )
|
||||
add_definitions( -DNOMINMAX )
|
||||
# Get APIs from from Vista onwards.
|
||||
add_definitions( -D_WIN32_WINNT=0x0600)
|
||||
add_definitions( -DWINVER=0x0600)
|
||||
endif( WIN32 )
|
||||
|
||||
include(QtVersionAbstraction)
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
set( MIRALL_VERSION_MAJOR 2 )
|
||||
set( MIRALL_VERSION_MINOR 4 )
|
||||
set( MIRALL_VERSION_MINOR 5 )
|
||||
set( MIRALL_VERSION_PATCH 0 )
|
||||
set( MIRALL_VERSION_YEAR 2017 )
|
||||
set( MIRALL_SOVERSION 0 )
|
||||
|
|
|
@ -3,7 +3,7 @@ StrCpy $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING "Vis versjonsmerknader"
|
|||
StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "Fant ${APPLICATION_EXECUTABLE}-prosess(er) som må stoppes.$\nVil du at installasjonsprogrammet skal stoppe dem for deg?"
|
||||
StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "Terminerer ${APPLICATION_EXECUTABLE}-prosesser."
|
||||
StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "Fant ikke prosess som skulle termineres!"
|
||||
StrCpy $PageReinstall_NEW_Field_1 "En eldre versjon av ${APPLICATION_NAME} er installert på systemet ditt. Det anbefales at du avnistallerer den versjonen før installering av ny versjon. Velg hva du vil gjøre og klikk Neste for å fortsette."
|
||||
StrCpy $PageReinstall_NEW_Field_1 "En eldre versjon av ${APPLICATION_NAME} er installert på systemet ditt. Det anbefales at du avinstallerer den versjonen før installering av ny versjon. Velg hva du vil gjøre og klikk Neste for å fortsette."
|
||||
StrCpy $PageReinstall_NEW_Field_2 "Avinstaller før installering"
|
||||
StrCpy $PageReinstall_NEW_Field_3 "Ikke avinstaller"
|
||||
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE "Allerede installert"
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
# Auto-generated - do not modify
|
||||
StrCpy $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING "Mostrar las notas de la versión"
|
||||
StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "El/los proceso/s ${APPLICATION_EXECUTABLE} debe/n ser detenidos.$\n¿Quiere que el instalador lo haga por usted?"
|
||||
StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "Deteniendo el/los proceso/s ${APPLICATION_EXECUTABLE}."
|
||||
StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "El/los proceso(s) ${APPLICATION_EXECUTABLE} debe(n) ser detenido(s).$\n¿Quiere que el instalador lo haga por usted?"
|
||||
StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "Deteniendo el/los proceso(s) ${APPLICATION_EXECUTABLE}."
|
||||
StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "¡Proceso a finalizar no encontrado!"
|
||||
StrCpy $PageReinstall_NEW_Field_1 "Una versión anterior de ${APPLICATION_NAME} se encuentra instalada en el sistema. Se recomienda de instalar la versión actual antes de instalar la nueva. Seleccione la operacion deseada y haga click en Siguiente para continuar."
|
||||
StrCpy $PageReinstall_NEW_Field_1 "Una versión anterior de ${APPLICATION_NAME} se encuentra instalada en el sistema. Se recomienda desinstalar la versión actual antes de instalar la nueva. Seleccione la operacion deseada y haga click en Siguiente para continuar."
|
||||
StrCpy $PageReinstall_NEW_Field_2 "Desinstalar antes de instalar"
|
||||
StrCpy $PageReinstall_NEW_Field_3 "No desinstalar"
|
||||
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE "Ya está instalado"
|
||||
|
@ -17,13 +17,13 @@ StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Elija la opcion de mantenim
|
|||
StrCpy $SEC_APPLICATION_DETAILS "Instalando ${APPLICATION_NAME} esenciales."
|
||||
StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Integración para Windows Explorer"
|
||||
StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Instalando la integración para Windows Explorer"
|
||||
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Acceso directo al programa Menú de Inicio"
|
||||
StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Acceso directo al programa en Menú de Inicio"
|
||||
StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Añadiendo accesos directos para ${APPLICATION_NAME} en el Menú de Inicio."
|
||||
StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Acceso directo de Escritorio"
|
||||
StrCpy $OPTION_SECTION_SC_DESKTOP_DetailPrint "Creando accesos directos de escritorio"
|
||||
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_SECTION "Atajo de accceso rápido"
|
||||
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_SECTION "Atajo de acceso rápido"
|
||||
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint "Creando un Acceso Directo al Lanzador Rápido"
|
||||
StrCpy $OPTION_SECTION_SC_APPLICATION_Desc "${APPLICATION_NAME} esencial."
|
||||
StrCpy $OPTION_SECTION_SC_APPLICATION_Desc "${APPLICATION_NAME} esenciales."
|
||||
StrCpy $OPTION_SECTION_SC_START_MENU_Desc "Acceso Directo de ${APPLICATION_NAME}"
|
||||
StrCpy $OPTION_SECTION_SC_DESKTOP_Desc "Acceso Directo de Escritorio para ${APPLICATION_NAME}"
|
||||
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_Desc "Lanzador Rápido de Accesos Director para ${APPLICATION_NAME}."
|
||||
|
|
|
@ -603,6 +603,35 @@ Section Uninstall
|
|||
Abort $UNINSTALL_ABORT
|
||||
owncloud_installed:
|
||||
|
||||
; Delete Navigation Pane entries added for Windows 10.
|
||||
; On 64bit Windows, the client will be writing to the 64bit registry.
|
||||
${If} ${RunningX64}
|
||||
SetRegView 64
|
||||
${EndIf}
|
||||
StrCpy $0 0
|
||||
loop:
|
||||
; Look at every registered explorer namespace for HKCU and check if it was added by our application
|
||||
; (we write to a custom "ApplicationName" value there).
|
||||
EnumRegKey $1 HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace" $0
|
||||
StrCmp $1 "" done
|
||||
|
||||
ReadRegStr $R0 HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\$1" "ApplicationName"
|
||||
StrCmp $R0 "${APPLICATION_NAME}" deleteClsid
|
||||
; Increment the index when not deleting the enumerated key.
|
||||
IntOp $0 $0 + 1
|
||||
goto loop
|
||||
|
||||
deleteClsid:
|
||||
DetailPrint "Removing Navigation Pane CLSID $1"
|
||||
; Should match FolderMan::updateCloudStorageRegistry
|
||||
DeleteRegKey HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\$1"
|
||||
DeleteRegKey HKCU "Software\Classes\CLSID\$1"
|
||||
DeleteRegValue HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel" $1
|
||||
goto loop
|
||||
done:
|
||||
; Go back to the 32bit registry.
|
||||
SetRegView lastused
|
||||
|
||||
;Delete registry keys.
|
||||
DeleteRegValue HKLM "Software\${APPLICATION_VENDOR}\${APPLICATION_NAME}" "VersionBuild"
|
||||
DeleteRegValue HKLM "Software\${APPLICATION_VENDOR}\${APPLICATION_NAME}" "VersionMajor"
|
||||
|
|
|
@ -27,6 +27,8 @@ Some interesting values that can be set on the configuration file are:
|
|||
+---------------------------------+---------------+--------------------------------------------------------------------------------------------------------+
|
||||
| ``forceSyncInterval`` | ``7200000`` | The duration of no activity after which a synchronization run shall be triggered automatically. |
|
||||
+---------------------------------+---------------+--------------------------------------------------------------------------------------------------------+
|
||||
| ``fullLocalDiscoveryInterval`` | ``3600000`` | The interval after which the next synchronization will perform a full local discovery. |
|
||||
+---------------------------------+---------------+--------------------------------------------------------------------------------------------------------+
|
||||
| ``notificationRefreshInterval`` | ``300000`` | Specifies the default interval of checking for new server notifications in milliseconds. |
|
||||
+---------------------------------+---------------+--------------------------------------------------------------------------------------------------------+
|
||||
|
||||
|
|
14
doc/faq.rst
14
doc/faq.rst
|
@ -11,13 +11,15 @@ continually changes all files, unless you remove
|
|||
from the windows registry.
|
||||
See http://petersteier.wordpress.com/2011/10/22/windows-indexer-changes-modification-dates-of-eml-files/ for more information.
|
||||
|
||||
Syncing breaks when attempting to sync deeper than 50 sub-directories, but the sync client does not report an error (RC=0)
|
||||
--------------------------------------------------------------------------------------------------------------------------
|
||||
Syncing stops when attempting to sync deeper than 100 sub-directories.
|
||||
----------------------------------------------------------------------
|
||||
|
||||
The sync client has been intentionally limited to sync no deeper than
|
||||
fifty sub-directories, to help prevent memory problems.
|
||||
Unfortunately, it, *currently*, does not report an error when this occurs.
|
||||
However, a UI notification is planned for a future release of ownCloud.
|
||||
The sync client has been intentionally limited to sync no deeper than 100
|
||||
sub-directories. The hard limit exists to guard against bugs with cycles
|
||||
like symbolic link loops.
|
||||
When a deeply nested directory is excluded from synchronization it will be
|
||||
listed with other ignored files and directories in the "Not synced" tab of
|
||||
the "Activity" pane.
|
||||
|
||||
I want to move my local sync folder
|
||||
-----------------------------------
|
||||
|
|
|
@ -219,6 +219,39 @@ X-GNOME-Autostart-Delay=3
|
|||
# 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
|
||||
|
|
|
@ -39,6 +39,7 @@
|
|||
|
||||
#include "theme.h"
|
||||
#include "netrcparser.h"
|
||||
#include "libsync/logger.h"
|
||||
|
||||
#include "config.h"
|
||||
|
||||
|
@ -189,7 +190,7 @@ void help()
|
|||
std::cout << " --downlimit [n] Limit the download speed of files to n KB/s" << std::endl;
|
||||
std::cout << " -h Sync hidden files,do not ignore them" << std::endl;
|
||||
std::cout << " --version, -v Display version and exit" << std::endl;
|
||||
std::cout << " --debug More verbose logging" << std::endl;
|
||||
std::cout << " --logdebug More verbose logging" << std::endl;
|
||||
std::cout << "" << std::endl;
|
||||
exit(0);
|
||||
}
|
||||
|
@ -267,6 +268,9 @@ void parseOptions(const QStringList &app_args, CmdOptions *options)
|
|||
options->uplimit = it.next().toInt() * 1000;
|
||||
} else if (option == "--downlimit" && !it.peekNext().startsWith("-")) {
|
||||
options->downlimit = it.next().toInt() * 1000;
|
||||
} else if (option == "--logdebug") {
|
||||
Logger::instance()->setLogFile("-");
|
||||
Logger::instance()->setLogDebug(true);
|
||||
} else {
|
||||
help();
|
||||
}
|
||||
|
@ -330,6 +334,8 @@ int main(int argc, char **argv)
|
|||
csync_set_log_level(options.silent ? 1 : 11);
|
||||
if (options.silent) {
|
||||
qInstallMsgHandler(nullMessageHandler);
|
||||
} else {
|
||||
qSetMessagePattern("%{time MM-dd hh:mm:ss:zzz} [ %{type} %{category} ]%{if-debug}\t[ %{function} ]%{endif}:\t%{message}");
|
||||
}
|
||||
|
||||
AccountPtr account = Account::create();
|
||||
|
|
|
@ -120,7 +120,7 @@ QByteArray parseChecksumHeaderType(const QByteArray &header)
|
|||
|
||||
bool uploadChecksumEnabled()
|
||||
{
|
||||
static bool enabled = qgetenv("OWNCLOUD_DISABLE_CHECKSUM_UPLOAD").isEmpty();
|
||||
static bool enabled = qEnvironmentVariableIsEmpty("OWNCLOUD_DISABLE_CHECKSUM_UPLOAD");
|
||||
return enabled;
|
||||
}
|
||||
|
||||
|
@ -133,6 +133,12 @@ QByteArray contentChecksumType()
|
|||
return type;
|
||||
}
|
||||
|
||||
static bool checksumComputationEnabled()
|
||||
{
|
||||
static bool enabled = qgetenv("OWNCLOUD_DISABLE_CHECKSUM_COMPUTATIONS").isEmpty();
|
||||
return enabled;
|
||||
}
|
||||
|
||||
ComputeChecksum::ComputeChecksum(QObject *parent)
|
||||
: QObject(parent)
|
||||
{
|
||||
|
@ -150,6 +156,8 @@ QByteArray ComputeChecksum::checksumType() const
|
|||
|
||||
void ComputeChecksum::start(const QString &filePath)
|
||||
{
|
||||
qCInfo(lcChecksums) << "Computing" << checksumType() << "checksum of" << filePath << "in a thread";
|
||||
|
||||
// Calculate the checksum in a different thread first.
|
||||
connect(&_watcher, &QFutureWatcherBase::finished,
|
||||
this, &ComputeChecksum::slotCalculationDone,
|
||||
|
@ -159,6 +167,11 @@ void ComputeChecksum::start(const QString &filePath)
|
|||
|
||||
QByteArray ComputeChecksum::computeNow(const QString &filePath, const QByteArray &checksumType)
|
||||
{
|
||||
if (!checksumComputationEnabled()) {
|
||||
qCWarning(lcChecksums) << "Checksum computation disabled by environment variable";
|
||||
return QByteArray();
|
||||
}
|
||||
|
||||
if (checksumType == checkSumMD5C) {
|
||||
return FileSystem::calcMd5(filePath);
|
||||
} else if (checksumType == checkSumSHA1C) {
|
||||
|
@ -237,6 +250,7 @@ QByteArray CSyncChecksumHook::hook(const QByteArray &path, const QByteArray &oth
|
|||
if (type.isEmpty())
|
||||
return NULL;
|
||||
|
||||
qCInfo(lcChecksums) << "Computing" << type << "checksum of" << path << "in the csync hook";
|
||||
QByteArray checksum = ComputeChecksum::computeNow(QString::fromUtf8(path), type);
|
||||
if (checksum.isNull()) {
|
||||
qCWarning(lcChecksums) << "Failed to compute checksum" << type << "for" << path;
|
||||
|
|
|
@ -361,21 +361,14 @@ QString FileSystem::fileSystemForPath(const QString &path)
|
|||
static QByteArray readToCrypto( const QString& filename, QCryptographicHash::Algorithm algo )
|
||||
{
|
||||
QFile file(filename);
|
||||
const qint64 bufSize = qMin(BUFSIZE, file.size() + 1);
|
||||
QByteArray buf(bufSize, Qt::Uninitialized);
|
||||
QByteArray arr;
|
||||
QCryptographicHash crypto( algo );
|
||||
|
||||
if (file.open(QIODevice::ReadOnly)) {
|
||||
qint64 size;
|
||||
while (!file.atEnd()) {
|
||||
size = file.read(buf.data(), bufSize);
|
||||
if (size > 0) {
|
||||
crypto.addData(buf.data(), size);
|
||||
}
|
||||
}
|
||||
if (crypto.addData(&file)) {
|
||||
arr = crypto.result().toHex();
|
||||
}
|
||||
}
|
||||
return arr;
|
||||
}
|
||||
|
||||
|
|
|
@ -547,13 +547,28 @@ bool SyncJournalDb::checkConnect()
|
|||
return sqlFail("prepare _getFileRecordQueryByFileId", *_getFileRecordQueryByFileId);
|
||||
}
|
||||
|
||||
// This query is used to skip discovery and fill the tree from the
|
||||
// database instead
|
||||
_getFilesBelowPathQuery.reset(new SqlQuery(_db));
|
||||
if (_getFilesBelowPathQuery->prepare(
|
||||
GET_FILE_RECORD_QUERY
|
||||
" WHERE path > (?1||'/') AND path < (?1||'0') ORDER BY path||'/' ASC")) {
|
||||
" WHERE path > (?1||'/') AND path < (?1||'0')"
|
||||
// We want to ensure that the contents of a directory are sorted
|
||||
// directly behind the directory itself. Without this ORDER BY
|
||||
// an ordering like foo, foo-2, foo/file would be returned.
|
||||
// With the trailing /, we get foo-2, foo, foo/file. This property
|
||||
// is used in fill_tree_from_db().
|
||||
" ORDER BY path||'/' ASC")) {
|
||||
return sqlFail("prepare _getFilesBelowPathQuery", *_getFilesBelowPathQuery);
|
||||
}
|
||||
|
||||
_getAllFilesQuery.reset(new SqlQuery(_db));
|
||||
if (_getAllFilesQuery->prepare(
|
||||
GET_FILE_RECORD_QUERY
|
||||
" ORDER BY path||'/' ASC")) {
|
||||
return sqlFail("prepare _getAllFilesQuery", *_getAllFilesQuery);
|
||||
}
|
||||
|
||||
_setFileRecordQuery.reset(new SqlQuery(_db));
|
||||
if (_setFileRecordQuery->prepare("INSERT OR REPLACE INTO metadata "
|
||||
"(phash, pathlen, path, inode, uid, gid, mode, modtime, type, md5, fileid, remotePerm, filesize, ignoredChildrenRemote, contentChecksum, contentChecksumTypeId) "
|
||||
|
@ -704,6 +719,7 @@ void SyncJournalDb::close()
|
|||
_getFileRecordQueryByInode.reset(0);
|
||||
_getFileRecordQueryByFileId.reset(0);
|
||||
_getFilesBelowPathQuery.reset(0);
|
||||
_getAllFilesQuery.reset(0);
|
||||
_setFileRecordQuery.reset(0);
|
||||
_setFileRecordChecksumQuery.reset(0);
|
||||
_setFileRecordLocalMetadataQuery.reset(0);
|
||||
|
@ -1094,15 +1110,10 @@ bool SyncJournalDb::getFileRecordByInode(quint64 inode, SyncJournalFileRecord *r
|
|||
return true;
|
||||
}
|
||||
|
||||
bool SyncJournalDb::getFileRecordByFileId(const QByteArray &fileId, SyncJournalFileRecord *rec)
|
||||
bool SyncJournalDb::getFileRecordsByFileId(const QByteArray &fileId, const std::function<void(const SyncJournalFileRecord &)> &rowCallback)
|
||||
{
|
||||
QMutexLocker locker(&_mutex);
|
||||
|
||||
// Reset the output var in case the caller is reusing it.
|
||||
Q_ASSERT(rec);
|
||||
rec->_path.clear();
|
||||
Q_ASSERT(!rec->isValid());
|
||||
|
||||
if (fileId.isEmpty() || _metadataTableIsEmpty)
|
||||
return true; // no error, yet nothing found (rec->isValid() == false)
|
||||
|
||||
|
@ -1116,8 +1127,10 @@ bool SyncJournalDb::getFileRecordByFileId(const QByteArray &fileId, SyncJournalF
|
|||
return false;
|
||||
}
|
||||
|
||||
if (_getFileRecordQueryByFileId->next()) {
|
||||
fillFileRecordFromGetQuery(*rec, *_getFileRecordQueryByFileId);
|
||||
while (_getFileRecordQueryByFileId->next()) {
|
||||
SyncJournalFileRecord rec;
|
||||
fillFileRecordFromGetQuery(rec, *_getFileRecordQueryByFileId);
|
||||
rowCallback(rec);
|
||||
}
|
||||
|
||||
return true;
|
||||
|
@ -1133,16 +1146,23 @@ bool SyncJournalDb::getFilesBelowPath(const QByteArray &path, const std::functio
|
|||
if (!checkConnect())
|
||||
return false;
|
||||
|
||||
_getFilesBelowPathQuery->reset_and_clear_bindings();
|
||||
_getFilesBelowPathQuery->bindValue(1, path);
|
||||
// Since the path column doesn't store the starting /, the getFilesBelowPathQuery
|
||||
// can't be used for the root path "". It would scan for (path > '/' and path < '0')
|
||||
// and find nothing. So, unfortunately, we have to use a different query for
|
||||
// retrieving the whole tree.
|
||||
auto &query = path.isEmpty() ? _getAllFilesQuery : _getFilesBelowPathQuery;
|
||||
|
||||
if (!_getFilesBelowPathQuery->exec()) {
|
||||
query->reset_and_clear_bindings();
|
||||
if (query == _getFilesBelowPathQuery)
|
||||
query->bindValue(1, path);
|
||||
|
||||
if (!query->exec()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
while (_getFilesBelowPathQuery->next()) {
|
||||
while (query->next()) {
|
||||
SyncJournalFileRecord rec;
|
||||
fillFileRecordFromGetQuery(rec, *_getFilesBelowPathQuery);
|
||||
fillFileRecordFromGetQuery(rec, *query);
|
||||
rowCallback(rec);
|
||||
}
|
||||
|
||||
|
|
|
@ -58,7 +58,7 @@ public:
|
|||
bool getFileRecord(const QString &filename, SyncJournalFileRecord *rec) { return getFileRecord(filename.toUtf8(), rec); }
|
||||
bool getFileRecord(const QByteArray &filename, SyncJournalFileRecord *rec);
|
||||
bool getFileRecordByInode(quint64 inode, SyncJournalFileRecord *rec);
|
||||
bool getFileRecordByFileId(const QByteArray &fileId, SyncJournalFileRecord *rec);
|
||||
bool getFileRecordsByFileId(const QByteArray &fileId, const std::function<void(const SyncJournalFileRecord &)> &rowCallback);
|
||||
bool getFilesBelowPath(const QByteArray &path, const std::function<void(const SyncJournalFileRecord&)> &rowCallback);
|
||||
bool setFileRecord(const SyncJournalFileRecord &record);
|
||||
|
||||
|
@ -244,6 +244,7 @@ private:
|
|||
QScopedPointer<SqlQuery> _getFileRecordQueryByInode;
|
||||
QScopedPointer<SqlQuery> _getFileRecordQueryByFileId;
|
||||
QScopedPointer<SqlQuery> _getFilesBelowPathQuery;
|
||||
QScopedPointer<SqlQuery> _getAllFilesQuery;
|
||||
QScopedPointer<SqlQuery> _setFileRecordQuery;
|
||||
QScopedPointer<SqlQuery> _setFileRecordChecksumQuery;
|
||||
QScopedPointer<SqlQuery> _setFileRecordLocalMetadataQuery;
|
||||
|
|
|
@ -579,7 +579,7 @@ bool Utility::isConflictFile(const char *name)
|
|||
|
||||
bool Utility::shouldUploadConflictFiles()
|
||||
{
|
||||
static bool uploadConflictFiles = qgetenv("OWNCLOUD_UPLOAD_CONFLICT_FILES").toInt() != 0;
|
||||
static bool uploadConflictFiles = qEnvironmentVariableIntValue("OWNCLOUD_UPLOAD_CONFLICT_FILES") != 0;
|
||||
return uploadConflictFiles;
|
||||
}
|
||||
|
||||
|
|
|
@ -28,8 +28,13 @@
|
|||
#include <QLoggingCategory>
|
||||
#include <QMap>
|
||||
#include <QUrl>
|
||||
#include <functional>
|
||||
#include <memory>
|
||||
|
||||
#ifdef Q_OS_WIN
|
||||
#include <windows.h>
|
||||
#endif
|
||||
|
||||
class QSettings;
|
||||
|
||||
namespace OCC {
|
||||
|
@ -187,6 +192,14 @@ namespace Utility {
|
|||
* Experimental! Real feature planned for 2.5.
|
||||
*/
|
||||
OCSYNC_EXPORT bool shouldUploadConflictFiles();
|
||||
|
||||
#ifdef Q_OS_WIN
|
||||
OCSYNC_EXPORT QVariant registryGetKeyValue(HKEY hRootKey, const QString &subKey, const QString &valueName);
|
||||
OCSYNC_EXPORT bool registrySetKeyValue(HKEY hRootKey, const QString &subKey, const QString &valueName, DWORD type, const QVariant &value);
|
||||
OCSYNC_EXPORT bool registryDeleteKeyTree(HKEY hRootKey, const QString &subKey);
|
||||
OCSYNC_EXPORT bool registryDeleteKeyValue(HKEY hRootKey, const QString &subKey, const QString &valueName);
|
||||
OCSYNC_EXPORT bool registryWalkSubKeys(HKEY hRootKey, const QString &subKey, const std::function<void(HKEY, const QString &)> &callback);
|
||||
#endif
|
||||
}
|
||||
/** @} */ // \addtogroup
|
||||
|
||||
|
|
|
@ -16,8 +16,7 @@
|
|||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#define _WIN32_WINNT 0x0600
|
||||
#define WINVER 0x0600
|
||||
#include "asserts.h"
|
||||
#include <shlobj.h>
|
||||
#include <winbase.h>
|
||||
#include <windows.h>
|
||||
|
@ -93,4 +92,168 @@ static inline bool hasDarkSystray_private()
|
|||
return true;
|
||||
}
|
||||
|
||||
QVariant Utility::registryGetKeyValue(HKEY hRootKey, const QString &subKey, const QString &valueName)
|
||||
{
|
||||
QVariant value;
|
||||
|
||||
HKEY hKey;
|
||||
|
||||
REGSAM sam = KEY_READ | KEY_WOW64_64KEY;
|
||||
LONG result = RegOpenKeyEx(hRootKey, reinterpret_cast<LPCWSTR>(subKey.utf16()), 0, sam, &hKey);
|
||||
ASSERT(result == ERROR_SUCCESS || result == ERROR_FILE_NOT_FOUND);
|
||||
if (result != ERROR_SUCCESS)
|
||||
return value;
|
||||
|
||||
DWORD type = 0, sizeInBytes = 0;
|
||||
result = RegQueryValueEx(hKey, reinterpret_cast<LPCWSTR>(valueName.utf16()), 0, &type, nullptr, &sizeInBytes);
|
||||
ASSERT(result == ERROR_SUCCESS || result == ERROR_FILE_NOT_FOUND);
|
||||
if (result == ERROR_SUCCESS) {
|
||||
switch (type) {
|
||||
case REG_DWORD:
|
||||
DWORD dword;
|
||||
Q_ASSERT(sizeInBytes == sizeof(dword));
|
||||
if (RegQueryValueEx(hKey, reinterpret_cast<LPCWSTR>(valueName.utf16()), 0, &type, reinterpret_cast<LPBYTE>(&dword), &sizeInBytes) == ERROR_SUCCESS) {
|
||||
value = int(dword);
|
||||
}
|
||||
break;
|
||||
case REG_EXPAND_SZ:
|
||||
case REG_SZ: {
|
||||
QString string;
|
||||
string.resize(sizeInBytes / sizeof(QChar));
|
||||
result = RegQueryValueEx(hKey, reinterpret_cast<LPCWSTR>(valueName.utf16()), 0, &type, reinterpret_cast<LPBYTE>(string.data()), &sizeInBytes);
|
||||
|
||||
if (result == ERROR_SUCCESS) {
|
||||
int newCharSize = sizeInBytes / sizeof(QChar);
|
||||
// From the doc:
|
||||
// If the data has the REG_SZ, REG_MULTI_SZ or REG_EXPAND_SZ type, the string may not have been stored with
|
||||
// the proper terminating null characters. Therefore, even if the function returns ERROR_SUCCESS,
|
||||
// the application should ensure that the string is properly terminated before using it; otherwise, it may overwrite a buffer.
|
||||
if (string.at(newCharSize - 1) == QChar('\0'))
|
||||
string.resize(newCharSize - 1);
|
||||
value = string;
|
||||
}
|
||||
break;
|
||||
}
|
||||
default:
|
||||
Q_UNREACHABLE();
|
||||
}
|
||||
}
|
||||
ASSERT(result == ERROR_SUCCESS || result == ERROR_FILE_NOT_FOUND);
|
||||
|
||||
RegCloseKey(hKey);
|
||||
return value;
|
||||
}
|
||||
|
||||
bool Utility::registrySetKeyValue(HKEY hRootKey, const QString &subKey, const QString &valueName, DWORD type, const QVariant &value)
|
||||
{
|
||||
HKEY hKey;
|
||||
// KEY_WOW64_64KEY is necessary because CLSIDs are "Redirected and reflected only for CLSIDs that do not specify InprocServer32 or InprocHandler32."
|
||||
// https://msdn.microsoft.com/en-us/library/windows/desktop/aa384253%28v=vs.85%29.aspx#redirected__shared__and_reflected_keys_under_wow64
|
||||
// This shouldn't be an issue in our case since we use shell32.dll as InprocServer32, so we could write those registry keys for both 32 and 64bit.
|
||||
// FIXME: Not doing so at the moment means that explorer will show the cloud provider, but 32bit processes' open dialogs (like the ownCloud client itself) won't show it.
|
||||
REGSAM sam = KEY_WRITE | KEY_WOW64_64KEY;
|
||||
LONG result = RegCreateKeyEx(hRootKey, reinterpret_cast<LPCWSTR>(subKey.utf16()), 0, nullptr, 0, sam, nullptr, &hKey, nullptr);
|
||||
ASSERT(result == ERROR_SUCCESS);
|
||||
if (result != ERROR_SUCCESS)
|
||||
return false;
|
||||
|
||||
result = -1;
|
||||
switch (type) {
|
||||
case REG_DWORD: {
|
||||
DWORD dword = value.toInt();
|
||||
result = RegSetValueEx(hKey, reinterpret_cast<LPCWSTR>(valueName.utf16()), 0, type, reinterpret_cast<const BYTE *>(&dword), sizeof(dword));
|
||||
break;
|
||||
}
|
||||
case REG_EXPAND_SZ:
|
||||
case REG_SZ: {
|
||||
QString string = value.toString();
|
||||
result = RegSetValueEx(hKey, reinterpret_cast<LPCWSTR>(valueName.utf16()), 0, type, reinterpret_cast<const BYTE *>(string.constData()), (string.size() + 1) * sizeof(QChar));
|
||||
break;
|
||||
}
|
||||
default:
|
||||
Q_UNREACHABLE();
|
||||
}
|
||||
ASSERT(result == ERROR_SUCCESS);
|
||||
|
||||
RegCloseKey(hKey);
|
||||
return result == ERROR_SUCCESS;
|
||||
}
|
||||
|
||||
bool Utility::registryDeleteKeyTree(HKEY hRootKey, const QString &subKey)
|
||||
{
|
||||
HKEY hKey;
|
||||
REGSAM sam = DELETE | KEY_ENUMERATE_SUB_KEYS | KEY_QUERY_VALUE | KEY_SET_VALUE | KEY_WOW64_64KEY;
|
||||
LONG result = RegOpenKeyEx(hRootKey, reinterpret_cast<LPCWSTR>(subKey.utf16()), 0, sam, &hKey);
|
||||
ASSERT(result == ERROR_SUCCESS);
|
||||
if (result != ERROR_SUCCESS)
|
||||
return false;
|
||||
|
||||
result = RegDeleteTree(hKey, nullptr);
|
||||
RegCloseKey(hKey);
|
||||
ASSERT(result == ERROR_SUCCESS);
|
||||
|
||||
result |= RegDeleteKeyEx(hRootKey, reinterpret_cast<LPCWSTR>(subKey.utf16()), sam, 0);
|
||||
ASSERT(result == ERROR_SUCCESS);
|
||||
|
||||
return result == ERROR_SUCCESS;
|
||||
}
|
||||
|
||||
bool Utility::registryDeleteKeyValue(HKEY hRootKey, const QString &subKey, const QString &valueName)
|
||||
{
|
||||
HKEY hKey;
|
||||
REGSAM sam = KEY_WRITE | KEY_WOW64_64KEY;
|
||||
LONG result = RegOpenKeyEx(hRootKey, reinterpret_cast<LPCWSTR>(subKey.utf16()), 0, sam, &hKey);
|
||||
ASSERT(result == ERROR_SUCCESS);
|
||||
if (result != ERROR_SUCCESS)
|
||||
return false;
|
||||
|
||||
result = RegDeleteValue(hKey, reinterpret_cast<LPCWSTR>(valueName.utf16()));
|
||||
ASSERT(result == ERROR_SUCCESS);
|
||||
|
||||
RegCloseKey(hKey);
|
||||
return result == ERROR_SUCCESS;
|
||||
}
|
||||
|
||||
bool Utility::registryWalkSubKeys(HKEY hRootKey, const QString &subKey, const std::function<void(HKEY, const QString &)> &callback)
|
||||
{
|
||||
HKEY hKey;
|
||||
REGSAM sam = KEY_READ | KEY_WOW64_64KEY;
|
||||
LONG result = RegOpenKeyEx(hRootKey, reinterpret_cast<LPCWSTR>(subKey.utf16()), 0, sam, &hKey);
|
||||
ASSERT(result == ERROR_SUCCESS);
|
||||
if (result != ERROR_SUCCESS)
|
||||
return false;
|
||||
|
||||
DWORD maxSubKeyNameSize;
|
||||
// Get the largest keyname size once instead of relying each call on ERROR_MORE_DATA.
|
||||
result = RegQueryInfoKey(hKey, nullptr, nullptr, nullptr, nullptr, &maxSubKeyNameSize, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr);
|
||||
ASSERT(result == ERROR_SUCCESS);
|
||||
if (result != ERROR_SUCCESS) {
|
||||
RegCloseKey(hKey);
|
||||
return false;
|
||||
}
|
||||
|
||||
QString subKeyName;
|
||||
subKeyName.reserve(maxSubKeyNameSize + 1);
|
||||
|
||||
DWORD retCode = ERROR_SUCCESS;
|
||||
for (DWORD i = 0; retCode == ERROR_SUCCESS; ++i) {
|
||||
Q_ASSERT(unsigned(subKeyName.capacity()) > maxSubKeyNameSize);
|
||||
// Make the previously reserved capacity official again.
|
||||
subKeyName.resize(subKeyName.capacity());
|
||||
DWORD subKeyNameSize = subKeyName.size();
|
||||
retCode = RegEnumKeyEx(hKey, i, reinterpret_cast<LPWSTR>(subKeyName.data()), &subKeyNameSize, nullptr, nullptr, nullptr, nullptr);
|
||||
|
||||
ASSERT(result == ERROR_SUCCESS || retCode == ERROR_NO_MORE_ITEMS);
|
||||
if (retCode == ERROR_SUCCESS) {
|
||||
// subKeyNameSize excludes the trailing \0
|
||||
subKeyName.resize(subKeyNameSize);
|
||||
// Pass only the sub keyname, not the full path.
|
||||
callback(hKey, subKeyName);
|
||||
}
|
||||
}
|
||||
|
||||
RegCloseKey(hKey);
|
||||
return retCode != ERROR_NO_MORE_ITEMS;
|
||||
}
|
||||
|
||||
} // namespace OCC
|
||||
|
|
|
@ -314,6 +314,9 @@ int csync_s::reinitialize() {
|
|||
local.files.clear();
|
||||
remote.files.clear();
|
||||
|
||||
local_discovery_style = LocalDiscoveryStyle::FilesystemOnly;
|
||||
locally_touched_dirs.clear();
|
||||
|
||||
status = CSYNC_STATUS_INIT;
|
||||
SAFE_FREE(error_string);
|
||||
|
||||
|
|
|
@ -38,6 +38,7 @@
|
|||
#include <stdbool.h>
|
||||
#include <sqlite3.h>
|
||||
#include <map>
|
||||
#include <set>
|
||||
|
||||
#include "common/syncjournaldb.h"
|
||||
#include "config_csync.h"
|
||||
|
@ -70,6 +71,11 @@ enum csync_replica_e {
|
|||
REMOTE_REPLICA
|
||||
};
|
||||
|
||||
enum class LocalDiscoveryStyle {
|
||||
FilesystemOnly, //< read all local data from the filesystem
|
||||
DatabaseAndFilesystem, //< read from the db, except for listed paths
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* This is a structurere similar to QStringRef
|
||||
|
@ -190,6 +196,16 @@ struct OCSYNC_EXPORT csync_s {
|
|||
*/
|
||||
bool read_remote_from_db = false;
|
||||
|
||||
LocalDiscoveryStyle local_discovery_style = LocalDiscoveryStyle::FilesystemOnly;
|
||||
|
||||
/**
|
||||
* List of folder-relative directory paths that should be scanned on the
|
||||
* filesystem if the local_discovery_style suggests it.
|
||||
*
|
||||
* Their parents will be scanned too. The paths don't start with a /.
|
||||
*/
|
||||
std::set<QByteArray> locally_touched_dirs;
|
||||
|
||||
bool ignore_hidden_files = true;
|
||||
|
||||
csync_s(const char *localUri, OCC::SyncJournalDb *statedb);
|
||||
|
|
|
@ -104,14 +104,17 @@ static bool _csync_is_collision_safe_hash(const char *checksum_header)
|
|||
* source and the destination, have been changed, the newer file wins.
|
||||
*/
|
||||
static int _csync_merge_algorithm_visitor(csync_file_stat_t *cur, CSYNC * ctx) {
|
||||
csync_s::FileMap *our_tree = nullptr;
|
||||
csync_s::FileMap *other_tree = nullptr;
|
||||
|
||||
/* we need the opposite tree! */
|
||||
switch (ctx->current) {
|
||||
case LOCAL_REPLICA:
|
||||
our_tree = &ctx->local.files;
|
||||
other_tree = &ctx->remote.files;
|
||||
break;
|
||||
case REMOTE_REPLICA:
|
||||
our_tree = &ctx->remote.files;
|
||||
other_tree = &ctx->local.files;
|
||||
break;
|
||||
default:
|
||||
|
@ -152,40 +155,51 @@ static int _csync_merge_algorithm_visitor(csync_file_stat_t *cur, CSYNC * ctx) {
|
|||
cur->instruction = CSYNC_INSTRUCTION_REMOVE;
|
||||
break;
|
||||
case CSYNC_INSTRUCTION_EVAL_RENAME: {
|
||||
OCC::SyncJournalFileRecord base;
|
||||
if(ctx->current == LOCAL_REPLICA ) {
|
||||
/* use the old name to find the "other" node */
|
||||
ctx->statedb->getFileRecordByInode(cur->inode, &base);
|
||||
qCDebug(lcReconcile, "Finding opposite temp through inode %" PRIu64 ": %s",
|
||||
cur->inode, base.isValid() ? "true":"false");
|
||||
} else {
|
||||
ASSERT( ctx->current == REMOTE_REPLICA );
|
||||
ctx->statedb->getFileRecordByFileId(cur->file_id, &base);
|
||||
qCDebug(lcReconcile, "Finding opposite temp through file ID %s: %s",
|
||||
cur->file_id.constData(), base.isValid() ? "true":"false");
|
||||
}
|
||||
// By default, the EVAL_RENAME decays into a NEW
|
||||
cur->instruction = CSYNC_INSTRUCTION_NEW;
|
||||
|
||||
bool processedRename = false;
|
||||
auto renameCandidateProcessing = [&](const OCC::SyncJournalFileRecord &base) {
|
||||
if (processedRename)
|
||||
return;
|
||||
if (!base.isValid())
|
||||
return;
|
||||
|
||||
if( base.isValid() ) {
|
||||
/* First, check that the file is NOT in our tree (another file with the same name was added) */
|
||||
csync_s::FileMap *our_tree = ctx->current == REMOTE_REPLICA ? &ctx->remote.files : &ctx->local.files;
|
||||
if (our_tree->findFile(base._path)) {
|
||||
qCDebug(lcReconcile, "Origin found in our tree : %s", base._path.constData());
|
||||
} else {
|
||||
/* Find the temporar file in the other tree.
|
||||
/* Find the potential rename source file in the other tree.
|
||||
* If the renamed file could not be found in the opposite tree, that is because it
|
||||
* is not longer existing there, maybe because it was renamed or deleted.
|
||||
* The journal is cleaned up later after propagation.
|
||||
*/
|
||||
other = other_tree->findFile(base._path);
|
||||
qCDebug(lcReconcile, "Temporary opposite (%s) %s",
|
||||
qCDebug(lcReconcile, "Rename origin in other tree (%s) %s",
|
||||
base._path.constData(), other ? "found" : "not found");
|
||||
}
|
||||
|
||||
if(!other) {
|
||||
cur->instruction = CSYNC_INSTRUCTION_NEW;
|
||||
} else if (other->instruction == CSYNC_INSTRUCTION_NONE
|
||||
// Stick with the NEW
|
||||
return;
|
||||
} else if (other->instruction == CSYNC_INSTRUCTION_RENAME) {
|
||||
// Some other EVAL_RENAME already claimed other.
|
||||
// We do nothing: maybe a different candidate for
|
||||
// other is found as well?
|
||||
qCDebug(lcReconcile, "Other has already been renamed to %s",
|
||||
other->rename_path.constData());
|
||||
} else if (cur->type == CSYNC_FTW_TYPE_DIR
|
||||
// The local replica is reconciled first, so the remote tree would
|
||||
// have either NONE or UPDATE_METADATA if the remote file is safe to
|
||||
// move.
|
||||
// In the remote replica, REMOVE is also valid (local has already
|
||||
// been reconciled). NONE can still happen if the whole parent dir
|
||||
// was set to REMOVE by the local reconcile.
|
||||
|| other->instruction == CSYNC_INSTRUCTION_NONE
|
||||
|| other->instruction == CSYNC_INSTRUCTION_UPDATE_METADATA
|
||||
|| cur->type == CSYNC_FTW_TYPE_DIR) {
|
||||
|| other->instruction == CSYNC_INSTRUCTION_REMOVE) {
|
||||
qCDebug(lcReconcile, "Switching %s to RENAME to %s",
|
||||
other->path.constData(), cur->path.constData());
|
||||
other->instruction = CSYNC_INSTRUCTION_RENAME;
|
||||
other->rename_path = cur->path;
|
||||
if( !cur->file_id.isEmpty() ) {
|
||||
|
@ -193,24 +207,44 @@ static int _csync_merge_algorithm_visitor(csync_file_stat_t *cur, CSYNC * ctx) {
|
|||
}
|
||||
other->inode = cur->inode;
|
||||
cur->instruction = CSYNC_INSTRUCTION_NONE;
|
||||
} else if (other->instruction == CSYNC_INSTRUCTION_REMOVE) {
|
||||
other->instruction = CSYNC_INSTRUCTION_RENAME;
|
||||
other->rename_path = cur->path;
|
||||
// We have consumed 'other': exit this loop to not consume another one.
|
||||
processedRename = true;
|
||||
} else if (our_tree->findFile(csync_rename_adjust_path(ctx, other->path)) == cur) {
|
||||
// If we're here, that means that the other side's reconcile will be able
|
||||
// to work against cur: The filename itself didn't change, only a parent
|
||||
// directory was renamed! In that case it's safe to ignore the rename
|
||||
// since the parent directory rename will already deal with it.
|
||||
|
||||
if( !cur->file_id.isEmpty() ) {
|
||||
other->file_id = cur->file_id;
|
||||
}
|
||||
other->inode = cur->inode;
|
||||
// Local: The remote reconcile will be able to deal with this.
|
||||
// Remote: The local replica has already dealt with this.
|
||||
// See the EVAL_RENAME case when other was found directly.
|
||||
qCDebug(lcReconcile, "File in a renamed directory, other side's instruction: %d",
|
||||
other->instruction);
|
||||
cur->instruction = CSYNC_INSTRUCTION_NONE;
|
||||
} else if (other->instruction == CSYNC_INSTRUCTION_NEW) {
|
||||
qCDebug(lcReconcile, "OOOO=> NEW detected in other tree!");
|
||||
cur->instruction = CSYNC_INSTRUCTION_CONFLICT;
|
||||
} else {
|
||||
assert(other->type != CSYNC_FTW_TYPE_DIR);
|
||||
cur->instruction = CSYNC_INSTRUCTION_NONE;
|
||||
other->instruction = CSYNC_INSTRUCTION_SYNC;
|
||||
// This can, for instance, happen when there was a local change in other
|
||||
// and the instruction in the local tree is NEW while cur has EVAL_RENAME
|
||||
// due to a remote move of the same file. In these scenarios we just
|
||||
// want the instruction to stay NEW.
|
||||
qCDebug(lcReconcile, "Other already has instruction %d",
|
||||
other->instruction);
|
||||
}
|
||||
};
|
||||
|
||||
if (ctx->current == LOCAL_REPLICA) {
|
||||
/* use the old name to find the "other" node */
|
||||
OCC::SyncJournalFileRecord base;
|
||||
qCDebug(lcReconcile, "Finding rename origin through inode %" PRIu64 "",
|
||||
cur->inode);
|
||||
ctx->statedb->getFileRecordByInode(cur->inode, &base);
|
||||
renameCandidateProcessing(base);
|
||||
} else {
|
||||
ASSERT(ctx->current == REMOTE_REPLICA);
|
||||
qCDebug(lcReconcile, "Finding rename origin through file ID %s",
|
||||
cur->file_id.constData());
|
||||
ctx->statedb->getFileRecordsByFileId(cur->file_id, renameCandidateProcessing);
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
default:
|
||||
|
@ -314,6 +348,15 @@ static int _csync_merge_algorithm_visitor(csync_file_stat_t *cur, CSYNC * ctx) {
|
|||
default:
|
||||
break;
|
||||
}
|
||||
// Ensure we're not leaving discovery-only instructions
|
||||
// in place. This can happen, for instance, when other's
|
||||
// instruction is EVAL_RENAME because the parent dir was renamed.
|
||||
// NEW is safer than EVAL because it will end up with
|
||||
// propagation unless it's changed by something, and EVAL and
|
||||
// NEW are treated equivalently during reconcile.
|
||||
if (cur->instruction == CSYNC_INSTRUCTION_EVAL)
|
||||
cur->instruction = CSYNC_INSTRUCTION_NEW;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -297,35 +297,55 @@ static int _csync_detect_update(CSYNC *ctx, std::unique_ptr<csync_file_stat_t> f
|
|||
|
||||
} else {
|
||||
/* Remote Replica Rename check */
|
||||
OCC::SyncJournalFileRecord base;
|
||||
if(!ctx->statedb->getFileRecordByFileId(fs->file_id, &base)) {
|
||||
fs->instruction = CSYNC_INSTRUCTION_NEW;
|
||||
|
||||
bool done = false;
|
||||
auto renameCandidateProcessing = [&](const OCC::SyncJournalFileRecord &base) {
|
||||
if (done)
|
||||
return;
|
||||
if (!base.isValid())
|
||||
return;
|
||||
|
||||
// Some things prohibit rename detection entirely.
|
||||
// Since we don't do the same checks again in reconcile, we can't
|
||||
// just skip the candidate, but have to give up completely.
|
||||
if (base._type != fs->type) {
|
||||
qCWarning(lcUpdate, "file types different, not a rename");
|
||||
done = true;
|
||||
return;
|
||||
}
|
||||
if (fs->type != CSYNC_FTW_TYPE_DIR && base._etag != fs->etag) {
|
||||
/* File with different etag, don't do a rename, but download the file again */
|
||||
qCWarning(lcUpdate, "file etag different, not a rename");
|
||||
done = true;
|
||||
return;
|
||||
}
|
||||
|
||||
// Record directory renames
|
||||
if (fs->type == CSYNC_FTW_TYPE_DIR) {
|
||||
// If the same folder was already renamed by a different entry,
|
||||
// skip to the next candidate
|
||||
if (ctx->renames.folder_renamed_to.count(base._path) > 0) {
|
||||
qCWarning(lcUpdate, "folder already has a rename entry, skipping");
|
||||
return;
|
||||
}
|
||||
csync_rename_record(ctx, base._path, fs->path);
|
||||
}
|
||||
|
||||
qCDebug(lcUpdate, "remote rename detected based on fileid %s --> %s", base._path.constData(), fs->path.constData());
|
||||
fs->instruction = CSYNC_INSTRUCTION_EVAL_RENAME;
|
||||
done = true;
|
||||
};
|
||||
|
||||
if (!ctx->statedb->getFileRecordsByFileId(fs->file_id, renameCandidateProcessing)) {
|
||||
ctx->status_code = CSYNC_STATUS_UNSUCCESSFUL;
|
||||
return -1;
|
||||
}
|
||||
if (base.isValid()) { /* tmp existing at all */
|
||||
if (base._type != fs->type) {
|
||||
qCWarning(lcUpdate, "file types different is not!");
|
||||
fs->instruction = CSYNC_INSTRUCTION_NEW;
|
||||
goto out;
|
||||
}
|
||||
qCDebug(lcUpdate, "remote rename detected based on fileid %s --> %s", base._path.constData(), fs->path.constData());
|
||||
fs->instruction = CSYNC_INSTRUCTION_EVAL_RENAME;
|
||||
if (fs->type == CSYNC_FTW_TYPE_DIR) {
|
||||
csync_rename_record(ctx, base._path, fs->path);
|
||||
} else {
|
||||
if( base._etag != fs->etag ) {
|
||||
/* CSYNC_LOG(CSYNC_LOG_PRIORITY_DEBUG, "ETags are different!"); */
|
||||
/* File with different etag, don't do a rename, but download the file again */
|
||||
fs->instruction = CSYNC_INSTRUCTION_NEW;
|
||||
}
|
||||
}
|
||||
goto out;
|
||||
|
||||
} else {
|
||||
/* file not found in statedb */
|
||||
fs->instruction = CSYNC_INSTRUCTION_NEW;
|
||||
|
||||
if (fs->type == CSYNC_FTW_TYPE_DIR && ctx->current == REMOTE_REPLICA && ctx->callbacks.checkSelectiveSyncNewFolderHook) {
|
||||
if (fs->instruction == CSYNC_INSTRUCTION_NEW
|
||||
&& fs->type == CSYNC_FTW_TYPE_DIR
|
||||
&& ctx->current == REMOTE_REPLICA
|
||||
&& ctx->callbacks.checkSelectiveSyncNewFolderHook) {
|
||||
if (ctx->callbacks.checkSelectiveSyncNewFolderHook(ctx->callbacks.update_callback_userdata, fs->path, fs->remotePerm)) {
|
||||
return 1;
|
||||
}
|
||||
|
@ -333,7 +353,6 @@ static int _csync_detect_update(CSYNC *ctx, std::unique_ptr<csync_file_stat_t> f
|
|||
goto out;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
out:
|
||||
|
||||
|
@ -435,9 +454,11 @@ static bool fill_tree_from_db(CSYNC *ctx, const char *uri)
|
|||
{
|
||||
int64_t count = 0;
|
||||
QByteArray skipbase;
|
||||
auto rowCallback = [ctx, &count, &skipbase](const OCC::SyncJournalFileRecord &rec) {
|
||||
auto &files = ctx->current == LOCAL_REPLICA ? ctx->local.files : ctx->remote.files;
|
||||
auto rowCallback = [ctx, &count, &skipbase, &files](const OCC::SyncJournalFileRecord &rec) {
|
||||
if (ctx->current == REMOTE_REPLICA) {
|
||||
/* When selective sync is used, the database may have subtrees with a parent
|
||||
* whose etag (md5) is _invalid_. These are ignored and shall not appear in the
|
||||
* whose etag is _invalid_. These are ignored and shall not appear in the
|
||||
* remote tree.
|
||||
* Sometimes folders that are not ignored by selective sync get marked as
|
||||
* _invalid_, but that is not a problem as the next discovery will retrieve
|
||||
|
@ -458,6 +479,7 @@ static bool fill_tree_from_db(CSYNC *ctx, const char *uri)
|
|||
} else {
|
||||
skipbase.clear();
|
||||
}
|
||||
}
|
||||
|
||||
std::unique_ptr<csync_file_stat_t> st = csync_file_stat_t::fromSyncJournalFileRecord(rec);
|
||||
|
||||
|
@ -477,7 +499,7 @@ static bool fill_tree_from_db(CSYNC *ctx, const char *uri)
|
|||
}
|
||||
|
||||
/* store into result list. */
|
||||
ctx->remote.files[rec._path] = std::move(st);
|
||||
files[rec._path] = std::move(st);
|
||||
++count;
|
||||
};
|
||||
|
||||
|
@ -522,6 +544,26 @@ int csync_ftw(CSYNC *ctx, const char *uri, csync_walker_fn fn,
|
|||
int rc = 0;
|
||||
|
||||
bool do_read_from_db = (ctx->current == REMOTE_REPLICA && ctx->remote.read_from_db);
|
||||
const char *db_uri = uri;
|
||||
|
||||
if (ctx->current == LOCAL_REPLICA
|
||||
&& ctx->local_discovery_style == LocalDiscoveryStyle::DatabaseAndFilesystem) {
|
||||
const char *local_uri = uri + strlen(ctx->local.uri);
|
||||
if (*local_uri == '/')
|
||||
++local_uri;
|
||||
db_uri = local_uri;
|
||||
do_read_from_db = true;
|
||||
|
||||
// Minor bug: local_uri doesn't have a trailing /. Example: Assume it's "d/foo"
|
||||
// and we want to check whether we should read from the db. Assume "d/foo a" is
|
||||
// in locally_touched_dirs. Then this check will say no, don't read from the db!
|
||||
// (because "d/foo" < "d/foo a" < "d/foo/bar")
|
||||
// C++14: Could skip the conversion to QByteArray here.
|
||||
auto it = ctx->locally_touched_dirs.lower_bound(QByteArray(local_uri));
|
||||
if (it != ctx->locally_touched_dirs.end() && it->startsWith(local_uri)) {
|
||||
do_read_from_db = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (!depth) {
|
||||
mark_current_item_ignored(ctx, previous_fs, CSYNC_STATUS_INDIVIDUAL_TOO_DEEP);
|
||||
|
@ -533,7 +575,7 @@ int csync_ftw(CSYNC *ctx, const char *uri, csync_walker_fn fn,
|
|||
// if the etag of this dir is still the same, its content is restored from the
|
||||
// database.
|
||||
if( do_read_from_db ) {
|
||||
if( ! fill_tree_from_db(ctx, uri) ) {
|
||||
if( ! fill_tree_from_db(ctx, db_uri) ) {
|
||||
errno = ENOENT;
|
||||
ctx->status_code = CSYNC_STATUS_OPENDIR_ERROR;
|
||||
goto error;
|
||||
|
|
|
@ -57,6 +57,7 @@ set(client_SRCS
|
|||
ignorelisteditor.cpp
|
||||
lockwatcher.cpp
|
||||
logbrowser.cpp
|
||||
navigationpanehelper.cpp
|
||||
networksettings.cpp
|
||||
ocsjob.cpp
|
||||
ocssharejob.cpp
|
||||
|
|
|
@ -428,6 +428,9 @@ void AccountSettings::slotFolderWizardAccepted()
|
|||
*/
|
||||
definition.ignoreHiddenFiles = folderMan->ignoreHiddenFiles();
|
||||
|
||||
if (folderMan->navigationPaneHelper().showInExplorerNavigationPane())
|
||||
definition.navigationPaneClsid = QUuid::createUuid();
|
||||
|
||||
auto selectiveSyncBlackList = folderWizard->property("selectiveSyncBlackList").toStringList();
|
||||
|
||||
folderMan->setSyncEnabled(true);
|
||||
|
|
|
@ -32,10 +32,11 @@ namespace OCC {
|
|||
|
||||
void HttpCredentialsGui::askFromUser()
|
||||
{
|
||||
// Unfortunately there's a bug that doesn't allow us to send the "is this
|
||||
// OAuth2 or Basic auth?" GET request directly. Scheduling it for the event
|
||||
// loop works though. See #5989.
|
||||
QMetaObject::invokeMethod(this, "askFromUserAsync", Qt::QueuedConnection);
|
||||
// This function can be called from AccountState::slotInvalidCredentials,
|
||||
// which (indirectly, through HttpCredentials::invalidateToken) schedules
|
||||
// a cache wipe of the qnam. We can only execute a network job again once
|
||||
// the cache has been cleared, otherwise we'd interfere with the job.
|
||||
QTimer::singleShot(100, this, &HttpCredentialsGui::askFromUserAsync);
|
||||
}
|
||||
|
||||
void HttpCredentialsGui::askFromUserAsync()
|
||||
|
|
|
@ -60,12 +60,12 @@ public:
|
|||
private slots:
|
||||
void asyncAuthResult(OAuth::Result, const QString &user, const QString &accessToken, const QString &refreshToken);
|
||||
void showDialog();
|
||||
void askFromUserAsync();
|
||||
|
||||
signals:
|
||||
void authorisationLinkChanged();
|
||||
|
||||
private:
|
||||
Q_INVOKABLE void askFromUserAsync();
|
||||
|
||||
QScopedPointer<OAuth, QScopedPointerObjectDeleteLater<OAuth>> _asyncAuth;
|
||||
};
|
||||
|
|
|
@ -43,7 +43,7 @@ public:
|
|||
UserAgentWebPage(QObject *parent)
|
||||
: QWebPage(parent)
|
||||
{
|
||||
if (!qgetenv("OWNCLOUD_SHIBBOLETH_DEBUG").isEmpty()) {
|
||||
if (!qEnvironmentVariableIsEmpty("OWNCLOUD_SHIBBOLETH_DEBUG")) {
|
||||
settings()->setAttribute(QWebSettings::DeveloperExtrasEnabled, true);
|
||||
}
|
||||
}
|
||||
|
@ -83,7 +83,7 @@ ShibbolethWebView::ShibbolethWebView(AccountPtr account, QWidget *parent)
|
|||
setWindowTitle(tr("%1 - Authenticate").arg(Theme::instance()->appNameGUI()));
|
||||
|
||||
// Debug view to display the cipher suite
|
||||
if (!qgetenv("OWNCLOUD_SHIBBOLETH_DEBUG").isEmpty()) {
|
||||
if (!qEnvironmentVariableIsEmpty("OWNCLOUD_SHIBBOLETH_DEBUG")) {
|
||||
// open an additional window to display some cipher debug info
|
||||
QWebPage *debugPage = new UserAgentWebPage(this);
|
||||
debugPage->mainFrame()->load(QUrl("https://cc.dcsec.uni-hannover.de/"));
|
||||
|
|
|
@ -448,12 +448,26 @@ int Folder::slotWipeErrorBlacklist()
|
|||
|
||||
void Folder::slotWatchedPathChanged(const QString &path)
|
||||
{
|
||||
if (!path.startsWith(this->path())) {
|
||||
qCDebug(lcFolder) << "Changed path is not contained in folder, ignoring:" << path;
|
||||
return;
|
||||
}
|
||||
|
||||
auto relativePath = path.midRef(this->path().size());
|
||||
|
||||
// Add to list of locally modified paths
|
||||
//
|
||||
// We do this before checking for our own sync-related changes to make
|
||||
// extra sure to not miss relevant changes.
|
||||
auto relativePathBytes = relativePath.toUtf8();
|
||||
_localDiscoveryPaths.insert(relativePathBytes);
|
||||
qCDebug(lcFolder) << "local discovery: inserted" << relativePath << "due to file watcher";
|
||||
|
||||
// The folder watcher fires a lot of bogus notifications during
|
||||
// a sync operation, both for actual user files and the database
|
||||
// and log. Therefore we check notifications against operations
|
||||
// the sync is doing to filter out our own changes.
|
||||
#ifdef Q_OS_MAC
|
||||
Q_UNUSED(path)
|
||||
// On OSX the folder watcher does not report changes done by our
|
||||
// own process. Therefore nothing needs to be done here!
|
||||
#else
|
||||
|
@ -465,16 +479,13 @@ void Folder::slotWatchedPathChanged(const QString &path)
|
|||
#endif
|
||||
|
||||
// Check that the mtime actually changed.
|
||||
if (path.startsWith(this->path())) {
|
||||
auto relativePath = path.mid(this->path().size());
|
||||
SyncJournalFileRecord record;
|
||||
if (_journal.getFileRecord(relativePath, &record)
|
||||
if (_journal.getFileRecord(relativePathBytes, &record)
|
||||
&& record.isValid()
|
||||
&& !FileSystem::fileChanged(path, record._fileSize, record._modtime)) {
|
||||
qCInfo(lcFolder) << "Ignoring spurious notification for file" << relativePath;
|
||||
return; // probably a spurious notification
|
||||
}
|
||||
}
|
||||
|
||||
emit watchedFileChangedExternally(path);
|
||||
|
||||
|
@ -645,6 +656,36 @@ void Folder::startSync(const QStringList &pathList)
|
|||
setDirtyNetworkLimits();
|
||||
setSyncOptions();
|
||||
|
||||
static qint64 fullLocalDiscoveryInterval = []() {
|
||||
auto interval = ConfigFile().fullLocalDiscoveryInterval();
|
||||
QByteArray env = qgetenv("OWNCLOUD_FULL_LOCAL_DISCOVERY_INTERVAL");
|
||||
if (!env.isEmpty()) {
|
||||
interval = env.toLongLong();
|
||||
}
|
||||
return interval;
|
||||
}();
|
||||
if (_folderWatcher && _folderWatcher->isReliable()
|
||||
&& _timeSinceLastFullLocalDiscovery.isValid()
|
||||
&& (fullLocalDiscoveryInterval < 0
|
||||
|| _timeSinceLastFullLocalDiscovery.elapsed() < fullLocalDiscoveryInterval)) {
|
||||
qCInfo(lcFolder) << "Allowing local discovery to read from the database";
|
||||
_engine->setLocalDiscoveryOptions(LocalDiscoveryStyle::DatabaseAndFilesystem, _localDiscoveryPaths);
|
||||
|
||||
if (lcFolder().isDebugEnabled()) {
|
||||
QByteArrayList paths;
|
||||
for (auto &path : _localDiscoveryPaths)
|
||||
paths.append(path);
|
||||
qCDebug(lcFolder) << "local discovery paths: " << paths;
|
||||
}
|
||||
|
||||
_previousLocalDiscoveryPaths = std::move(_localDiscoveryPaths);
|
||||
} else {
|
||||
qCInfo(lcFolder) << "Forbidding local discovery to read from the database";
|
||||
_engine->setLocalDiscoveryOptions(LocalDiscoveryStyle::FilesystemOnly);
|
||||
_previousLocalDiscoveryPaths.clear();
|
||||
}
|
||||
_localDiscoveryPaths.clear();
|
||||
|
||||
_engine->setIgnoreHiddenFiles(_definition.ignoreHiddenFiles);
|
||||
|
||||
QMetaObject::invokeMethod(_engine.data(), "startSync", Qt::QueuedConnection);
|
||||
|
@ -783,6 +824,24 @@ void Folder::slotSyncFinished(bool success)
|
|||
journalDb()->setSelectiveSyncList(SyncJournalDb::SelectiveSyncWhiteList, QStringList());
|
||||
}
|
||||
|
||||
// bug: This function uses many different criteria for "sync was successful" - investigate!
|
||||
if ((_syncResult.status() == SyncResult::Success
|
||||
|| _syncResult.status() == SyncResult::Problem)
|
||||
&& success) {
|
||||
if (_engine->lastLocalDiscoveryStyle() == LocalDiscoveryStyle::FilesystemOnly) {
|
||||
_timeSinceLastFullLocalDiscovery.start();
|
||||
}
|
||||
qCDebug(lcFolder) << "Sync success, forgetting last sync's local discovery path list";
|
||||
} else {
|
||||
// On overall-failure we can't forget about last sync's local discovery
|
||||
// paths yet, reuse them for the next sync again.
|
||||
// C++17: Could use std::set::merge().
|
||||
_localDiscoveryPaths.insert(
|
||||
_previousLocalDiscoveryPaths.begin(), _previousLocalDiscoveryPaths.end());
|
||||
qCDebug(lcFolder) << "Sync failed, keeping last sync's local discovery path list";
|
||||
}
|
||||
_previousLocalDiscoveryPaths.clear();
|
||||
|
||||
emit syncStateChange();
|
||||
|
||||
// The syncFinished result that is to be triggered here makes the folderman
|
||||
|
@ -841,12 +900,38 @@ void Folder::slotTransmissionProgress(const ProgressInfo &pi)
|
|||
// a item is completed: count the errors and forward to the ProgressDispatcher
|
||||
void Folder::slotItemCompleted(const SyncFileItemPtr &item)
|
||||
{
|
||||
if (item->_instruction == CSYNC_INSTRUCTION_NONE || item->_instruction == CSYNC_INSTRUCTION_UPDATE_METADATA) {
|
||||
// We only care about the updates that deserve to be shown in the UI
|
||||
return;
|
||||
}
|
||||
|
||||
// add new directories or remove gone away dirs to the watcher
|
||||
if (item->isDirectory() && item->_instruction == CSYNC_INSTRUCTION_NEW) {
|
||||
FolderMan::instance()->addMonitorPath(alias(), path() + item->_file);
|
||||
if (_folderWatcher)
|
||||
_folderWatcher->addPath(path() + item->_file);
|
||||
}
|
||||
if (item->isDirectory() && item->_instruction == CSYNC_INSTRUCTION_REMOVE) {
|
||||
FolderMan::instance()->removeMonitorPath(alias(), path() + item->_file);
|
||||
if (_folderWatcher)
|
||||
_folderWatcher->removePath(path() + item->_file);
|
||||
}
|
||||
|
||||
// Success and failure of sync items adjust what the next sync is
|
||||
// supposed to do.
|
||||
//
|
||||
// For successes, we want to wipe the file from the list to ensure we don't
|
||||
// rediscover it even if this overall sync fails.
|
||||
//
|
||||
// For failures, we want to add the file to the list so the next sync
|
||||
// will be able to retry it.
|
||||
if (item->_status == SyncFileItem::Success
|
||||
|| item->_status == SyncFileItem::FileIgnored
|
||||
|| item->_status == SyncFileItem::Restoration
|
||||
|| item->_status == SyncFileItem::Conflict) {
|
||||
if (_previousLocalDiscoveryPaths.erase(item->_file.toUtf8()))
|
||||
qCDebug(lcFolder) << "local discovery: wiped" << item->_file;
|
||||
} else {
|
||||
_localDiscoveryPaths.insert(item->_file.toUtf8());
|
||||
qCDebug(lcFolder) << "local discovery: inserted" << item->_file << "due to sync failure";
|
||||
}
|
||||
|
||||
_syncResult.processCompletedItem(item);
|
||||
|
@ -901,6 +986,11 @@ void Folder::slotScheduleThisFolder()
|
|||
FolderMan::instance()->scheduleFolder(this);
|
||||
}
|
||||
|
||||
void Folder::slotNextSyncFullLocalDiscovery()
|
||||
{
|
||||
_timeSinceLastFullLocalDiscovery.invalidate();
|
||||
}
|
||||
|
||||
void Folder::scheduleThisFolderSoon()
|
||||
{
|
||||
if (!_scheduleSelfTimer.isActive()) {
|
||||
|
@ -913,6 +1003,20 @@ void Folder::setSaveBackwardsCompatible(bool save)
|
|||
_saveBackwardsCompatible = save;
|
||||
}
|
||||
|
||||
void Folder::registerFolderWatcher()
|
||||
{
|
||||
if (_folderWatcher)
|
||||
return;
|
||||
if (!QDir(path()).exists())
|
||||
return;
|
||||
|
||||
_folderWatcher.reset(new FolderWatcher(path(), this));
|
||||
connect(_folderWatcher.data(), &FolderWatcher::pathChanged,
|
||||
this, &Folder::slotWatchedPathChanged);
|
||||
connect(_folderWatcher.data(), &FolderWatcher::lostChanges,
|
||||
this, &Folder::slotNextSyncFullLocalDiscovery);
|
||||
}
|
||||
|
||||
void Folder::slotAboutToRemoveAllFiles(SyncFileItem::Direction dir, bool *cancel)
|
||||
{
|
||||
ConfigFile cfgFile;
|
||||
|
@ -976,6 +1080,12 @@ void FolderDefinition::save(QSettings &settings, const FolderDefinition &folder)
|
|||
settings.setValue(QLatin1String("targetPath"), folder.targetPath);
|
||||
settings.setValue(QLatin1String("paused"), folder.paused);
|
||||
settings.setValue(QLatin1String("ignoreHiddenFiles"), folder.ignoreHiddenFiles);
|
||||
|
||||
// Happens only on Windows when the explorer integration is enabled.
|
||||
if (!folder.navigationPaneClsid.isNull())
|
||||
settings.setValue(QLatin1String("navigationPaneClsid"), folder.navigationPaneClsid);
|
||||
else
|
||||
settings.remove(QLatin1String("navigationPaneClsid"));
|
||||
settings.endGroup();
|
||||
}
|
||||
|
||||
|
@ -989,6 +1099,7 @@ bool FolderDefinition::load(QSettings &settings, const QString &alias,
|
|||
folder->targetPath = settings.value(QLatin1String("targetPath")).toString();
|
||||
folder->paused = settings.value(QLatin1String("paused")).toBool();
|
||||
folder->ignoreHiddenFiles = settings.value(QLatin1String("ignoreHiddenFiles"), QVariant(true)).toBool();
|
||||
folder->navigationPaneClsid = settings.value(QLatin1String("navigationPaneClsid")).toUuid();
|
||||
settings.endGroup();
|
||||
|
||||
// Old settings can contain paths with native separators. In the rest of the
|
||||
|
|
|
@ -27,6 +27,8 @@
|
|||
|
||||
#include <QObject>
|
||||
#include <QStringList>
|
||||
#include <QUuid>
|
||||
#include <set>
|
||||
|
||||
class QThread;
|
||||
class QSettings;
|
||||
|
@ -36,6 +38,7 @@ namespace OCC {
|
|||
class SyncEngine;
|
||||
class AccountState;
|
||||
class SyncRunFileLog;
|
||||
class FolderWatcher;
|
||||
|
||||
/**
|
||||
* @brief The FolderDefinition class
|
||||
|
@ -64,6 +67,8 @@ public:
|
|||
bool ignoreHiddenFiles;
|
||||
/// the folder has client side encryption
|
||||
bool isClientSideEncrypted;
|
||||
/// The CLSID where this folder appears in registry for the Explorer navigation pane entry.
|
||||
QUuid navigationPaneClsid;
|
||||
|
||||
/// Saves the folder definition, creating a new settings group.
|
||||
static void save(QSettings &settings, const FolderDefinition &folder);
|
||||
|
@ -135,6 +140,9 @@ public:
|
|||
*/
|
||||
QString remotePath() const;
|
||||
|
||||
void setNavigationPaneClsid(const QUuid &clsid) { _definition.navigationPaneClsid = clsid; }
|
||||
QUuid navigationPaneClsid() const { return _definition.navigationPaneClsid; }
|
||||
|
||||
/**
|
||||
* remote folder path with server url
|
||||
*/
|
||||
|
@ -229,6 +237,13 @@ public:
|
|||
*/
|
||||
void setSaveBackwardsCompatible(bool save);
|
||||
|
||||
/**
|
||||
* Sets up this folder's folderWatcher if possible.
|
||||
*
|
||||
* May be called several times.
|
||||
*/
|
||||
void registerFolderWatcher();
|
||||
|
||||
signals:
|
||||
void syncStateChange();
|
||||
void syncStarted();
|
||||
|
@ -306,6 +321,9 @@ private slots:
|
|||
*/
|
||||
void slotScheduleThisFolder();
|
||||
|
||||
/** Ensures that the next sync performs a full local discovery. */
|
||||
void slotNextSyncFullLocalDiscovery();
|
||||
|
||||
private:
|
||||
bool setIgnoredFiles();
|
||||
|
||||
|
@ -340,6 +358,7 @@ private:
|
|||
QString _lastEtag;
|
||||
QElapsedTimer _timeSinceLastSyncDone;
|
||||
QElapsedTimer _timeSinceLastSyncStart;
|
||||
QElapsedTimer _timeSinceLastFullLocalDiscovery;
|
||||
qint64 _lastSyncDuration;
|
||||
|
||||
/// The number of syncs that failed in a row.
|
||||
|
@ -367,6 +386,29 @@ private:
|
|||
* path.
|
||||
*/
|
||||
bool _saveBackwardsCompatible;
|
||||
|
||||
/**
|
||||
* Watches this folder's local directory for changes.
|
||||
*
|
||||
* Created by registerFolderWatcher(), triggers slotWatchedPathChanged()
|
||||
*/
|
||||
QScopedPointer<FolderWatcher> _folderWatcher;
|
||||
|
||||
/**
|
||||
* The paths that should be checked by the next local discovery.
|
||||
*
|
||||
* Mostly a collection of files the filewatchers have reported as touched.
|
||||
* Also includes files that have had errors in the last sync run.
|
||||
*/
|
||||
std::set<QByteArray> _localDiscoveryPaths;
|
||||
|
||||
/**
|
||||
* The paths that the current sync run used for local discovery.
|
||||
*
|
||||
* For failing syncs, this list will be merged into _localDiscoveryPaths
|
||||
* again when the sync is done to make sure everything is retried.
|
||||
*/
|
||||
std::set<QByteArray> _previousLocalDiscoveryPaths;
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -49,6 +49,7 @@ FolderMan::FolderMan(QObject *parent)
|
|||
, _currentSyncFolder(0)
|
||||
, _syncEnabled(true)
|
||||
, _lockWatcher(new LockWatcher)
|
||||
, _navigationPaneHelper(this)
|
||||
, _appRestartRequired(false)
|
||||
{
|
||||
ASSERT(!_instance);
|
||||
|
@ -104,9 +105,6 @@ void FolderMan::unloadFolder(Folder *f)
|
|||
|
||||
_socketApi->slotUnregisterPath(f->alias());
|
||||
|
||||
if (_folderWatchers.contains(f->alias())) {
|
||||
_folderWatchers.remove(f->alias());
|
||||
}
|
||||
_folderMap.remove(f->alias());
|
||||
|
||||
disconnect(f, &Folder::syncStarted,
|
||||
|
@ -147,54 +145,18 @@ int FolderMan::unloadAndDeleteAllFolders()
|
|||
return cnt;
|
||||
}
|
||||
|
||||
// add a monitor to the local file system. If there is a change in the
|
||||
// file system, the method slotFolderMonitorFired is triggered through
|
||||
// the SignalMapper
|
||||
void FolderMan::registerFolderMonitor(Folder *folder)
|
||||
void FolderMan::registerFolderWithSocketApi(Folder *folder)
|
||||
{
|
||||
if (!folder)
|
||||
return;
|
||||
if (!QDir(folder->path()).exists())
|
||||
return;
|
||||
|
||||
if (!_folderWatchers.contains(folder->alias())) {
|
||||
FolderWatcher *fw = new FolderWatcher(folder->path(), folder);
|
||||
|
||||
// Connect the pathChanged signal, which comes with the changed path,
|
||||
// to the signal mapper which maps to the folder alias. The changed path
|
||||
// is lost this way, but we do not need it for the current implementation.
|
||||
connect(fw, &FolderWatcher::pathChanged, folder, &Folder::slotWatchedPathChanged);
|
||||
|
||||
_folderWatchers.insert(folder->alias(), fw);
|
||||
}
|
||||
|
||||
// register the folder with the socket API
|
||||
if (folder->canSync())
|
||||
_socketApi->slotRegisterPath(folder->alias());
|
||||
}
|
||||
|
||||
void FolderMan::addMonitorPath(const QString &alias, const QString &path)
|
||||
{
|
||||
if (!alias.isEmpty() && _folderWatchers.contains(alias)) {
|
||||
FolderWatcher *fw = _folderWatchers[alias];
|
||||
|
||||
if (fw) {
|
||||
fw->addPath(path);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void FolderMan::removeMonitorPath(const QString &alias, const QString &path)
|
||||
{
|
||||
if (!alias.isEmpty() && _folderWatchers.contains(alias)) {
|
||||
FolderWatcher *fw = _folderWatchers[alias];
|
||||
|
||||
if (fw) {
|
||||
fw->removePath(path);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int FolderMan::setupFolders()
|
||||
{
|
||||
unloadAndDeleteAllFolders();
|
||||
|
@ -750,7 +712,8 @@ void FolderMan::slotStartScheduledFolderSync()
|
|||
if (folder) {
|
||||
// Safe to call several times, and necessary to try again if
|
||||
// the folder path didn't exist previously.
|
||||
registerFolderMonitor(folder);
|
||||
folder->registerFolderWatcher();
|
||||
registerFolderWithSocketApi(folder);
|
||||
|
||||
_currentSyncFolder = folder;
|
||||
folder->startSync(QStringList());
|
||||
|
@ -932,6 +895,9 @@ Folder *FolderMan::addFolder(AccountState *accountState, const FolderDefinition
|
|||
emit folderSyncStateChange(folder);
|
||||
emit folderListChanged(_folderMap);
|
||||
}
|
||||
|
||||
_navigationPaneHelper.scheduleUpdateCloudStorageRegistry();
|
||||
|
||||
return folder;
|
||||
}
|
||||
|
||||
|
@ -964,7 +930,8 @@ Folder *FolderMan::addFolderInternal(FolderDefinition folderDefinition,
|
|||
connect(folder, &Folder::watchedFileChangedExternally,
|
||||
&folder->syncEngine().syncFileStatusTracker(), &SyncFileStatusTracker::slotPathTouched);
|
||||
|
||||
registerFolderMonitor(folder);
|
||||
folder->registerFolderWatcher();
|
||||
registerFolderWithSocketApi(folder);
|
||||
return folder;
|
||||
}
|
||||
|
||||
|
@ -1040,6 +1007,8 @@ void FolderMan::removeFolder(Folder *f)
|
|||
delete f;
|
||||
}
|
||||
|
||||
_navigationPaneHelper.scheduleUpdateCloudStorageRegistry();
|
||||
|
||||
emit folderListChanged(_folderMap);
|
||||
}
|
||||
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
|
||||
#include "folder.h"
|
||||
#include "folderwatcher.h"
|
||||
#include "navigationpanehelper.h"
|
||||
#include "syncfileitem.h"
|
||||
|
||||
class TestFolderMan;
|
||||
|
@ -109,15 +110,13 @@ public:
|
|||
|
||||
static SyncResult accountStatus(const QList<Folder *> &folders);
|
||||
|
||||
void removeMonitorPath(const QString &alias, const QString &path);
|
||||
void addMonitorPath(const QString &alias, const QString &path);
|
||||
|
||||
// Escaping of the alias which is used in QSettings AND the file
|
||||
// system, thus need to be escaped.
|
||||
static QString escapeAlias(const QString &);
|
||||
static QString unescapeAlias(const QString &);
|
||||
|
||||
SocketApi *socketApi();
|
||||
NavigationPaneHelper &navigationPaneHelper() { return _navigationPaneHelper; }
|
||||
|
||||
/**
|
||||
* Check if @a path is a valid path for a new folder considering the already sync'ed items.
|
||||
|
@ -284,7 +283,9 @@ private:
|
|||
// finds all folder configuration files
|
||||
// and create the folders
|
||||
QString getBackupName(QString fullPathName) const;
|
||||
void registerFolderMonitor(Folder *folder);
|
||||
|
||||
// makes the folder known to the socket api
|
||||
void registerFolderWithSocketApi(Folder *folder);
|
||||
|
||||
// restarts the application (Linux only)
|
||||
void restartApplication();
|
||||
|
@ -298,9 +299,6 @@ private:
|
|||
QPointer<Folder> _lastSyncFolder;
|
||||
bool _syncEnabled;
|
||||
|
||||
/// Watching for file changes in folders
|
||||
QMap<QString, FolderWatcher *> _folderWatchers;
|
||||
|
||||
/// Starts regular etag query jobs
|
||||
QTimer _etagPollTimer;
|
||||
/// The currently running etag query
|
||||
|
@ -319,6 +317,7 @@ private:
|
|||
QTimer _startScheduledSyncTimer;
|
||||
|
||||
QScopedPointer<SocketApi> _socketApi;
|
||||
NavigationPaneHelper _navigationPaneHelper;
|
||||
|
||||
bool _appRestartRequired;
|
||||
|
||||
|
|
|
@ -68,6 +68,11 @@ bool FolderWatcher::pathIsIgnored(const QString &path)
|
|||
return false;
|
||||
}
|
||||
|
||||
bool FolderWatcher::isReliable() const
|
||||
{
|
||||
return _isReliable;
|
||||
}
|
||||
|
||||
void FolderWatcher::changeDetected(const QString &path)
|
||||
{
|
||||
QStringList paths(path);
|
||||
|
|
|
@ -72,13 +72,29 @@ public:
|
|||
/* Check if the path is ignored. */
|
||||
bool pathIsIgnored(const QString &path);
|
||||
|
||||
/**
|
||||
* Returns false if the folder watcher can't be trusted to capture all
|
||||
* notifications.
|
||||
*
|
||||
* For example, this can happen on linux if the inotify user limit from
|
||||
* /proc/sys/fs/inotify/max_user_watches is exceeded.
|
||||
*/
|
||||
bool isReliable() const;
|
||||
|
||||
signals:
|
||||
/** Emitted when one of the watched directories or one
|
||||
* of the contained files is changed. */
|
||||
void pathChanged(const QString &path);
|
||||
|
||||
/** Emitted if an error occurs */
|
||||
void error(const QString &error);
|
||||
/**
|
||||
* Emitted if some notifications were lost.
|
||||
*
|
||||
* Would happen, for example, if the number of pending notifications
|
||||
* exceeded the allocated buffer size on Windows. Note that the folder
|
||||
* watcher could still be able to capture all future notifications -
|
||||
* i.e. isReliable() is orthogonal to losing changes occasionally.
|
||||
*/
|
||||
void lostChanges();
|
||||
|
||||
protected slots:
|
||||
// called from the implementations to indicate a change in path
|
||||
|
@ -93,6 +109,7 @@ private:
|
|||
QTime _timer;
|
||||
QSet<QString> _lastPaths;
|
||||
Folder *_folder;
|
||||
bool _isReliable = true;
|
||||
|
||||
friend class FolderWatcherPrivate;
|
||||
};
|
||||
|
|
|
@ -78,6 +78,12 @@ void FolderWatcherPrivate::inotifyRegisterPath(const QString &path)
|
|||
IN_CLOSE_WRITE | IN_ATTRIB | IN_MOVE | IN_CREATE | IN_DELETE | IN_DELETE_SELF | IN_MOVE_SELF | IN_UNMOUNT | IN_ONLYDIR);
|
||||
if (wd > -1) {
|
||||
_watches.insert(wd, path);
|
||||
} else {
|
||||
// If we're running out of memory or inotify watches, become
|
||||
// unreliable.
|
||||
if (errno == ENOMEM || errno == ENOSPC) {
|
||||
_parent->_isReliable = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -101,6 +101,7 @@ void WatcherThread::watchChanges(size_t fileNotifyBufferSize,
|
|||
DWORD errorCode = GetLastError();
|
||||
if (errorCode == ERROR_NOTIFY_ENUM_DIR) {
|
||||
qCDebug(lcFolderWatcher) << "The buffer for changes overflowed! Triggering a generic change and resizing";
|
||||
emit lostChanges();
|
||||
emit changed(_path);
|
||||
*increaseBufferSize = true;
|
||||
} else {
|
||||
|
@ -199,6 +200,8 @@ FolderWatcherPrivate::FolderWatcherPrivate(FolderWatcher *p, const QString &path
|
|||
_thread = new WatcherThread(path);
|
||||
connect(_thread, SIGNAL(changed(const QString &)),
|
||||
_parent, SLOT(changeDetected(const QString &)));
|
||||
connect(_thread, SIGNAL(lostChanges()),
|
||||
_parent, SIGNAL(lostChanges()));
|
||||
_thread->start();
|
||||
}
|
||||
|
||||
|
|
|
@ -53,6 +53,7 @@ protected:
|
|||
|
||||
signals:
|
||||
void changed(const QString &path);
|
||||
void lostChanges();
|
||||
|
||||
private:
|
||||
QString _path;
|
||||
|
|
|
@ -44,6 +44,7 @@ GeneralSettings::GeneralSettings(QWidget *parent)
|
|||
|
||||
connect(_ui->desktopNotificationsCheckBox, &QAbstractButton::toggled,
|
||||
this, &GeneralSettings::slotToggleOptionalDesktopNotifications);
|
||||
connect(_ui->showInExplorerNavigationPaneCheckBox, &QAbstractButton::toggled, this, &GeneralSettings::slotShowInExplorerNavigationPane);
|
||||
|
||||
_ui->autostartCheckBox->setChecked(Utility::hasLaunchOnStartup(Theme::instance()->appName()));
|
||||
connect(_ui->autostartCheckBox, &QAbstractButton::toggled, this, &GeneralSettings::slotToggleLaunchOnStartup);
|
||||
|
@ -73,6 +74,13 @@ GeneralSettings::GeneralSettings(QWidget *parent)
|
|||
_ui->crashreporterCheckBox->setVisible(false);
|
||||
#endif
|
||||
|
||||
// Hide on non-Windows, or WindowsVersion < 10.
|
||||
// The condition should match the default value of ConfigFile::showInExplorerNavigationPane.
|
||||
#ifdef Q_OS_WIN
|
||||
if (QSysInfo::windowsVersion() < QSysInfo::WV_WINDOWS10)
|
||||
#endif
|
||||
_ui->showInExplorerNavigationPaneCheckBox->setVisible(false);
|
||||
|
||||
/* Set the left contents margin of the layout to zero to make the checkboxes
|
||||
* align properly vertically , fixes bug #3758
|
||||
*/
|
||||
|
@ -107,6 +115,7 @@ void GeneralSettings::loadMiscSettings()
|
|||
ConfigFile cfgFile;
|
||||
_ui->monoIconsCheckBox->setChecked(cfgFile.monoIcons());
|
||||
_ui->desktopNotificationsCheckBox->setChecked(cfgFile.optionalDesktopNotifications());
|
||||
_ui->showInExplorerNavigationPaneCheckBox->setChecked(cfgFile.showInExplorerNavigationPane());
|
||||
_ui->crashreporterCheckBox->setChecked(cfgFile.crashReporter());
|
||||
auto newFolderLimit = cfgFile.newBigFolderSizeLimit();
|
||||
_ui->newFolderLimitCheckBox->setChecked(newFolderLimit.first);
|
||||
|
@ -162,6 +171,14 @@ void GeneralSettings::slotToggleOptionalDesktopNotifications(bool enable)
|
|||
cfgFile.setOptionalDesktopNotifications(enable);
|
||||
}
|
||||
|
||||
void GeneralSettings::slotShowInExplorerNavigationPane(bool checked)
|
||||
{
|
||||
ConfigFile cfgFile;
|
||||
cfgFile.setShowInExplorerNavigationPane(checked);
|
||||
// Now update the registry with the change.
|
||||
FolderMan::instance()->navigationPaneHelper().setShowInExplorerNavigationPane(checked);
|
||||
}
|
||||
|
||||
void GeneralSettings::slotIgnoreFilesEditor()
|
||||
{
|
||||
if (_ignoreEditor.isNull()) {
|
||||
|
|
|
@ -43,6 +43,7 @@ private slots:
|
|||
void saveMiscSettings();
|
||||
void slotToggleLaunchOnStartup(bool);
|
||||
void slotToggleOptionalDesktopNotifications(bool);
|
||||
void slotShowInExplorerNavigationPane(bool);
|
||||
void slotUpdateInfo();
|
||||
void slotIgnoreFilesEditor();
|
||||
void loadMiscSettings();
|
||||
|
|
|
@ -218,6 +218,17 @@
|
|||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_10">
|
||||
<item>
|
||||
<widget class="QCheckBox" name="showInExplorerNavigationPaneCheckBox">
|
||||
<property name="text">
|
||||
<string>Show sync folders in &Explorer's Navigation Pane</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_9">
|
||||
<item>
|
||||
|
|
|
@ -107,6 +107,16 @@ void IssuesWidget::showEvent(QShowEvent *ev)
|
|||
{
|
||||
ConfigFile cfg;
|
||||
cfg.restoreGeometryHeader(_ui->_treeWidget->header());
|
||||
|
||||
// Sorting by section was newly enabled. But if we restore the header
|
||||
// from a state where sorting was disabled, both of these flags will be
|
||||
// false and sorting will be impossible!
|
||||
_ui->_treeWidget->header()->setSectionsClickable(true);
|
||||
_ui->_treeWidget->header()->setSortIndicatorShown(true);
|
||||
|
||||
// Switch back to "first important, then by time" ordering
|
||||
_ui->_treeWidget->sortByColumn(0, Qt::DescendingOrder);
|
||||
|
||||
QWidget::showEvent(ev);
|
||||
}
|
||||
|
||||
|
@ -119,6 +129,8 @@ void IssuesWidget::hideEvent(QHideEvent *ev)
|
|||
|
||||
void IssuesWidget::cleanItems(const QString &folder)
|
||||
{
|
||||
_ui->_treeWidget->setSortingEnabled(false);
|
||||
|
||||
// The issue list is a state, clear it and let the next sync fill it
|
||||
// with ignored files and propagation errors.
|
||||
int itemCnt = _ui->_treeWidget->topLevelItemCount();
|
||||
|
@ -129,6 +141,9 @@ void IssuesWidget::cleanItems(const QString &folder)
|
|||
delete item;
|
||||
}
|
||||
}
|
||||
|
||||
_ui->_treeWidget->setSortingEnabled(true);
|
||||
|
||||
// update the tabtext
|
||||
emit(issueCountUpdated(_ui->_treeWidget->topLevelItemCount()));
|
||||
}
|
||||
|
@ -240,7 +255,7 @@ bool IssuesWidget::shouldBeVisible(QTreeWidgetItem *item, AccountState *filterAc
|
|||
const QString &filterFolderAlias) const
|
||||
{
|
||||
bool visible = true;
|
||||
auto status = item->data(0, Qt::UserRole);
|
||||
auto status = item->data(3, Qt::UserRole);
|
||||
visible &= (_ui->showIgnores->isChecked() || status != SyncFileItem::FileIgnored);
|
||||
visible &= (_ui->showWarnings->isChecked()
|
||||
|| (status != SyncFileItem::SoftError
|
||||
|
@ -368,13 +383,14 @@ void IssuesWidget::addError(const QString &folderAlias, const QString &message,
|
|||
|
||||
QIcon icon = Theme::instance()->syncStateIcon(SyncResult::Error);
|
||||
|
||||
QTreeWidgetItem *twitem = new QTreeWidgetItem(columns);
|
||||
QTreeWidgetItem *twitem = new SortedTreeWidgetItem(columns);
|
||||
twitem->setData(0, Qt::SizeHintRole, QSize(0, ActivityItemDelegate::rowHeight()));
|
||||
twitem->setData(0, Qt::UserRole, timestamp);
|
||||
twitem->setIcon(0, icon);
|
||||
twitem->setToolTip(0, longTimeStr);
|
||||
twitem->setToolTip(3, message);
|
||||
twitem->setData(0, Qt::UserRole, SyncFileItem::NormalError);
|
||||
twitem->setData(2, Qt::UserRole, folderAlias);
|
||||
twitem->setToolTip(3, message);
|
||||
twitem->setData(3, Qt::UserRole, SyncFileItem::NormalError);
|
||||
|
||||
addItem(twitem);
|
||||
addErrorWidget(twitem, message, category);
|
||||
|
|
|
@ -99,6 +99,9 @@
|
|||
<property name="rootIsDecorated">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="sortingEnabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="columnCount">
|
||||
<number>4</number>
|
||||
</property>
|
||||
|
|
|
@ -98,7 +98,7 @@ int main(int argc, char **argv)
|
|||
|
||||
// check a environment variable for core dumps
|
||||
#ifdef Q_OS_UNIX
|
||||
if (!qgetenv("OWNCLOUD_CORE_DUMP").isEmpty()) {
|
||||
if (!qEnvironmentVariableIsEmpty("OWNCLOUD_CORE_DUMP")) {
|
||||
struct rlimit core_limit;
|
||||
core_limit.rlim_cur = RLIM_INFINITY;
|
||||
core_limit.rlim_max = RLIM_INFINITY;
|
||||
|
|
|
@ -0,0 +1,151 @@
|
|||
/*
|
||||
* Copyright (C) by Jocelyn Turcotte <jturcotte@woboq.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; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* 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 "navigationpanehelper.h"
|
||||
#include "accountmanager.h"
|
||||
#include "configfile.h"
|
||||
#include "folderman.h"
|
||||
|
||||
#include <QDir>
|
||||
#include <QCoreApplication>
|
||||
|
||||
namespace OCC {
|
||||
|
||||
Q_LOGGING_CATEGORY(lcNavPane, "gui.folder.navigationpane", QtInfoMsg)
|
||||
|
||||
NavigationPaneHelper::NavigationPaneHelper(FolderMan *folderMan)
|
||||
: _folderMan(folderMan)
|
||||
{
|
||||
ConfigFile cfg;
|
||||
_showInExplorerNavigationPane = cfg.showInExplorerNavigationPane();
|
||||
|
||||
_updateCloudStorageRegistryTimer.setSingleShot(true);
|
||||
connect(&_updateCloudStorageRegistryTimer, &QTimer::timeout, this, &NavigationPaneHelper::updateCloudStorageRegistry);
|
||||
}
|
||||
|
||||
void NavigationPaneHelper::setShowInExplorerNavigationPane(bool show)
|
||||
{
|
||||
if (_showInExplorerNavigationPane == show)
|
||||
return;
|
||||
|
||||
_showInExplorerNavigationPane = show;
|
||||
// Re-generate a new CLSID when enabling, possibly throwing away the old one.
|
||||
// updateCloudStorageRegistry will take care of removing any unknown CLSID our application owns from the registry.
|
||||
foreach (Folder *folder, _folderMan->map())
|
||||
folder->setNavigationPaneClsid(show ? QUuid::createUuid() : QUuid());
|
||||
|
||||
scheduleUpdateCloudStorageRegistry();
|
||||
}
|
||||
|
||||
void NavigationPaneHelper::scheduleUpdateCloudStorageRegistry()
|
||||
{
|
||||
// Schedule the update to happen a bit later to avoid doing the update multiple times in a row.
|
||||
if (!_updateCloudStorageRegistryTimer.isActive())
|
||||
_updateCloudStorageRegistryTimer.start(500);
|
||||
}
|
||||
|
||||
void NavigationPaneHelper::updateCloudStorageRegistry()
|
||||
{
|
||||
// Start by looking at every registered namespace extension for the sidebar, and look for an "ApplicationName" value
|
||||
// that matches ours when we saved.
|
||||
QVector<QUuid> entriesToRemove;
|
||||
#ifdef Q_OS_WIN
|
||||
Utility::registryWalkSubKeys(
|
||||
HKEY_CURRENT_USER,
|
||||
QStringLiteral("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Desktop\\NameSpace"),
|
||||
[&entriesToRemove](HKEY key, const QString &subKey) {
|
||||
QVariant appName = Utility::registryGetKeyValue(key, subKey, QStringLiteral("ApplicationName"));
|
||||
if (appName.toString() == QLatin1String(APPLICATION_NAME)) {
|
||||
QUuid clsid{ subKey };
|
||||
Q_ASSERT(!clsid.isNull());
|
||||
entriesToRemove.append(clsid);
|
||||
}
|
||||
});
|
||||
#endif
|
||||
|
||||
// Then re-save every folder that has a valid navigationPaneClsid to the registry.
|
||||
// We currently don't distinguish between new and existing CLSIDs, if it's there we just
|
||||
// save over it. We at least need to update the tile in case we are suddently using multiple accounts.
|
||||
foreach (Folder *folder, _folderMan->map()) {
|
||||
if (!folder->navigationPaneClsid().isNull()) {
|
||||
// If it already exists, unmark it for removal, this is a valid sync root.
|
||||
entriesToRemove.removeOne(folder->navigationPaneClsid());
|
||||
|
||||
QString clsidStr = folder->navigationPaneClsid().toString();
|
||||
QString clsidPath = QString() % "Software\\Classes\\CLSID\\" % clsidStr;
|
||||
QString namespacePath = QString() % "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Desktop\\NameSpace\\" % clsidStr;
|
||||
|
||||
QString title = folder->shortGuiRemotePathOrAppName();
|
||||
// Write the account name in the sidebar only when using more than one account.
|
||||
if (AccountManager::instance()->accounts().size() > 1)
|
||||
title = title % " - " % folder->accountState()->account()->displayName();
|
||||
QString iconPath = QDir::toNativeSeparators(qApp->applicationFilePath());
|
||||
QString targetFolderPath = QDir::toNativeSeparators(folder->cleanPath());
|
||||
|
||||
qCInfo(lcNavPane) << "Explorer Cloud storage provider: saving path" << targetFolderPath << "to CLSID" << clsidStr;
|
||||
#ifdef Q_OS_WIN
|
||||
// Steps taken from: https://msdn.microsoft.com/en-us/library/windows/desktop/dn889934%28v=vs.85%29.aspx
|
||||
// Step 1: Add your CLSID and name your extension
|
||||
Utility::registrySetKeyValue(HKEY_CURRENT_USER, clsidPath, QString(), REG_SZ, title);
|
||||
// Step 2: Set the image for your icon
|
||||
Utility::registrySetKeyValue(HKEY_CURRENT_USER, clsidPath + QStringLiteral("\\DefaultIcon"), QString(), REG_SZ, iconPath);
|
||||
// Step 3: Add your extension to the Navigation Pane and make it visible
|
||||
Utility::registrySetKeyValue(HKEY_CURRENT_USER, clsidPath, QStringLiteral("System.IsPinnedToNameSpaceTree"), REG_DWORD, 0x1);
|
||||
// Step 4: Set the location for your extension in the Navigation Pane
|
||||
Utility::registrySetKeyValue(HKEY_CURRENT_USER, clsidPath, QStringLiteral("SortOrderIndex"), REG_DWORD, 0x41);
|
||||
// Step 5: Provide the dll that hosts your extension.
|
||||
Utility::registrySetKeyValue(HKEY_CURRENT_USER, clsidPath + QStringLiteral("\\InProcServer32"), QString(), REG_EXPAND_SZ, QStringLiteral("%systemroot%\\system32\\shell32.dll"));
|
||||
// Step 6: Define the instance object
|
||||
// Indicate that your namespace extension should function like other file folder structures in File Explorer.
|
||||
Utility::registrySetKeyValue(HKEY_CURRENT_USER, clsidPath + QStringLiteral("\\Instance"), QStringLiteral("CLSID"), REG_SZ, QStringLiteral("{0E5AAE11-A475-4c5b-AB00-C66DE400274E}"));
|
||||
// Step 7: Provide the file system attributes of the target folder
|
||||
Utility::registrySetKeyValue(HKEY_CURRENT_USER, clsidPath + QStringLiteral("\\Instance\\InitPropertyBag"), QStringLiteral("Attributes"), REG_DWORD, 0x11);
|
||||
// Step 8: Set the path for the sync root
|
||||
Utility::registrySetKeyValue(HKEY_CURRENT_USER, clsidPath + QStringLiteral("\\Instance\\InitPropertyBag"), QStringLiteral("TargetFolderPath"), REG_SZ, targetFolderPath);
|
||||
// Step 9: Set appropriate shell flags
|
||||
Utility::registrySetKeyValue(HKEY_CURRENT_USER, clsidPath + QStringLiteral("\\ShellFolder"), QStringLiteral("FolderValueFlags"), REG_DWORD, 0x28);
|
||||
// Step 10: Set the appropriate flags to control your shell behavior
|
||||
Utility::registrySetKeyValue(HKEY_CURRENT_USER, clsidPath + QStringLiteral("\\ShellFolder"), QStringLiteral("Attributes"), REG_DWORD, 0xF080004D);
|
||||
// Step 11: Register your extension in the namespace root
|
||||
Utility::registrySetKeyValue(HKEY_CURRENT_USER, namespacePath, QString(), REG_SZ, title);
|
||||
// Step 12: Hide your extension from the Desktop
|
||||
Utility::registrySetKeyValue(HKEY_CURRENT_USER, QStringLiteral("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\HideDesktopIcons\\NewStartPanel"), clsidStr, REG_DWORD, 0x1);
|
||||
|
||||
// For us, to later be able to iterate and find our own namespace entries and associated CLSID.
|
||||
// Use the macro instead of the theme to make sure it matches with the uninstaller.
|
||||
Utility::registrySetKeyValue(HKEY_CURRENT_USER, namespacePath, QStringLiteral("ApplicationName"), REG_SZ, QLatin1String(APPLICATION_NAME));
|
||||
#else
|
||||
// This code path should only occur on Windows (the config will be false, and the checkbox invisible on other platforms).
|
||||
// Add runtime checks rather than #ifdefing out the whole code to help catch breakages when developing on other platforms.
|
||||
Q_ASSERT(false);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
// Then remove anything that isn't in our folder list anymore.
|
||||
foreach (auto &clsid, entriesToRemove) {
|
||||
QString clsidStr = clsid.toString();
|
||||
QString clsidPath = QString() % "Software\\Classes\\CLSID\\" % clsidStr;
|
||||
QString namespacePath = QString() % "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Desktop\\NameSpace\\" % clsidStr;
|
||||
|
||||
qCInfo(lcNavPane) << "Explorer Cloud storage provider: now unused, removing own CLSID" << clsidStr;
|
||||
#ifdef Q_OS_WIN
|
||||
Utility::registryDeleteKeyTree(HKEY_CURRENT_USER, clsidPath);
|
||||
Utility::registryDeleteKeyTree(HKEY_CURRENT_USER, namespacePath);
|
||||
Utility::registryDeleteKeyValue(HKEY_CURRENT_USER, QStringLiteral("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\HideDesktopIcons\\NewStartPanel"), clsidStr);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace OCC
|
|
@ -0,0 +1,46 @@
|
|||
/*
|
||||
* Copyright (C) by Jocelyn Turcotte <jturcotte@woboq.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; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* 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 NAVIGATIONPANEHELPER_H
|
||||
#define NAVIGATIONPANEHELPER_H
|
||||
|
||||
#include <QObject>
|
||||
#include <QTimer>
|
||||
|
||||
namespace OCC {
|
||||
|
||||
class FolderMan;
|
||||
|
||||
class NavigationPaneHelper : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
NavigationPaneHelper(FolderMan *folderMan);
|
||||
|
||||
bool showInExplorerNavigationPane() const { return _showInExplorerNavigationPane; }
|
||||
void setShowInExplorerNavigationPane(bool show);
|
||||
|
||||
void scheduleUpdateCloudStorageRegistry();
|
||||
|
||||
private:
|
||||
void updateCloudStorageRegistry();
|
||||
|
||||
FolderMan *_folderMan;
|
||||
bool _showInExplorerNavigationPane;
|
||||
QTimer _updateCloudStorageRegistryTimer;
|
||||
};
|
||||
|
||||
} // namespace OCC
|
||||
#endif // NAVIGATIONPANEHELPER_H
|
|
@ -18,6 +18,7 @@
|
|||
#include <QProcess>
|
||||
#include <QMessageBox>
|
||||
#include <QDesktopServices>
|
||||
#include <QApplication>
|
||||
|
||||
#include "wizard/owncloudwizardcommon.h"
|
||||
#include "wizard/owncloudwizard.h"
|
||||
|
@ -45,7 +46,7 @@ OwncloudSetupWizard::OwncloudSetupWizard(QObject *parent)
|
|||
, _remoteFolder()
|
||||
{
|
||||
connect(_ocWizard, &OwncloudWizard::determineAuthType,
|
||||
this, &OwncloudSetupWizard::slotDetermineAuthType);
|
||||
this, &OwncloudSetupWizard::slotCheckServer);
|
||||
connect(_ocWizard, &OwncloudWizard::connectToOCUrl,
|
||||
this, &OwncloudSetupWizard::slotConnectToOCUrl);
|
||||
connect(_ocWizard, &OwncloudWizard::createLocalAndRemoteFolders,
|
||||
|
@ -69,6 +70,7 @@ static QPointer<OwncloudSetupWizard> wiz = 0;
|
|||
void OwncloudSetupWizard::runWizard(QObject *obj, const char *amember, QWidget *parent)
|
||||
{
|
||||
if (!wiz.isNull()) {
|
||||
bringWizardToFrontIfVisible();
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -84,6 +86,17 @@ bool OwncloudSetupWizard::bringWizardToFrontIfVisible()
|
|||
return false;
|
||||
}
|
||||
|
||||
if (wiz->_ocWizard->currentId() == WizardCommon::Page_ShibbolethCreds) {
|
||||
// Try to find if there is a browser open and raise that instead (Issue #6105)
|
||||
const auto allWindow = qApp->topLevelWidgets();
|
||||
auto it = std::find_if(allWindow.cbegin(), allWindow.cend(), [](QWidget *w)
|
||||
{ return QLatin1String(w->metaObject()->className()) == QLatin1String("OCC::ShibbolethWebView"); });
|
||||
if (it != allWindow.cend()) {
|
||||
ownCloudGui::raiseDialog(*it);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
ownCloudGui::raiseDialog(wiz->_ocWizard);
|
||||
return true;
|
||||
}
|
||||
|
@ -127,7 +140,7 @@ void OwncloudSetupWizard::startWizard()
|
|||
}
|
||||
|
||||
// also checks if an installation is valid and determines auth type in a second step
|
||||
void OwncloudSetupWizard::slotDetermineAuthType(const QString &urlString)
|
||||
void OwncloudSetupWizard::slotCheckServer(const QString &urlString)
|
||||
{
|
||||
QString fixedUrl = urlString;
|
||||
QUrl url = QUrl::fromUserInput(fixedUrl);
|
||||
|
@ -150,7 +163,7 @@ void OwncloudSetupWizard::slotDetermineAuthType(const QString &urlString)
|
|||
// 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);
|
||||
QMetaObject::invokeMethod(this, "slotFindServer", Qt::QueuedConnection);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -164,20 +177,40 @@ void OwncloudSetupWizard::slotSystemProxyLookupDone(const QNetworkProxy &proxy)
|
|||
AccountPtr account = _ocWizard->account();
|
||||
account->networkAccessManager()->setProxy(proxy);
|
||||
|
||||
slotContinueDetermineAuth();
|
||||
slotFindServer();
|
||||
}
|
||||
|
||||
void OwncloudSetupWizard::slotContinueDetermineAuth()
|
||||
void OwncloudSetupWizard::slotFindServer()
|
||||
{
|
||||
AccountPtr account = _ocWizard->account();
|
||||
|
||||
// Set fake credentials before we check what credential it actually is.
|
||||
account->setCredentials(CredentialsFactory::create("dummy"));
|
||||
|
||||
// Before we check the auth type, resolve any permanent redirect
|
||||
// chain there might be. We cannot do this only on url/status.php
|
||||
// in CheckServerJob, because things like url shorteners don't
|
||||
// redirect subpaths.
|
||||
// Determining the actual server URL can be a multi-stage process
|
||||
// 1. Check url/status.php with CheckServerJob
|
||||
// If that works we're done. In that case we don't check the
|
||||
// url directly for redirects, see #5954.
|
||||
// 2. Check the url for permanent redirects (like url shorteners)
|
||||
// 3. Check redirected-url/status.php with CheckServerJob
|
||||
|
||||
// Step 1: Check url/status.php
|
||||
CheckServerJob *job = new CheckServerJob(account, this);
|
||||
job->setIgnoreCredentialFailure(true);
|
||||
connect(job, &CheckServerJob::instanceFound, this, &OwncloudSetupWizard::slotFoundServer);
|
||||
connect(job, &CheckServerJob::instanceNotFound, this, &OwncloudSetupWizard::slotFindServerBehindRedirect);
|
||||
connect(job, &CheckServerJob::timeout, this, &OwncloudSetupWizard::slotNoServerFoundTimeout);
|
||||
job->setTimeout((account->url().scheme() == "https") ? 30 * 1000 : 10 * 1000);
|
||||
job->start();
|
||||
|
||||
// Step 2 and 3 are in slotFindServerBehindRedirect()
|
||||
}
|
||||
|
||||
void OwncloudSetupWizard::slotFindServerBehindRedirect()
|
||||
{
|
||||
AccountPtr account = _ocWizard->account();
|
||||
|
||||
// Step 2: Resolve any permanent redirect chains on the base url
|
||||
auto redirectCheckJob = account->sendRequest("GET", account->url());
|
||||
|
||||
// Use a significantly reduced timeout for this redirect check:
|
||||
|
@ -197,20 +230,20 @@ void OwncloudSetupWizard::slotContinueDetermineAuth()
|
|||
}
|
||||
});
|
||||
|
||||
// When done, start checking status.php.
|
||||
// Step 3: When done, start checking status.php.
|
||||
connect(redirectCheckJob, &SimpleNetworkJob::finishedSignal, this,
|
||||
[this, account]() {
|
||||
CheckServerJob *job = new CheckServerJob(account, this);
|
||||
job->setIgnoreCredentialFailure(true);
|
||||
connect(job, &CheckServerJob::instanceFound, this, &OwncloudSetupWizard::slotOwnCloudFoundAuth);
|
||||
connect(job, &CheckServerJob::instanceNotFound, this, &OwncloudSetupWizard::slotNoOwnCloudFoundAuth);
|
||||
connect(job, &CheckServerJob::timeout, this, &OwncloudSetupWizard::slotNoOwnCloudFoundAuthTimeout);
|
||||
connect(job, &CheckServerJob::instanceFound, this, &OwncloudSetupWizard::slotFoundServer);
|
||||
connect(job, &CheckServerJob::instanceNotFound, this, &OwncloudSetupWizard::slotNoServerFound);
|
||||
connect(job, &CheckServerJob::timeout, this, &OwncloudSetupWizard::slotNoServerFoundTimeout);
|
||||
job->setTimeout((account->url().scheme() == "https") ? 30 * 1000 : 10 * 1000);
|
||||
job->start();
|
||||
});
|
||||
}
|
||||
|
||||
void OwncloudSetupWizard::slotOwnCloudFoundAuth(const QUrl &url, const QJsonObject &info)
|
||||
void OwncloudSetupWizard::slotFoundServer(const QUrl &url, const QJsonObject &info)
|
||||
{
|
||||
auto serverVersion = CheckServerJob::version(info);
|
||||
|
||||
|
@ -230,14 +263,10 @@ void OwncloudSetupWizard::slotOwnCloudFoundAuth(const QUrl &url, const QJsonObje
|
|||
qCInfo(lcWizard) << " was redirected to" << url.toString();
|
||||
}
|
||||
|
||||
DetermineAuthTypeJob *job = new DetermineAuthTypeJob(_ocWizard->account(), this);
|
||||
job->setIgnoreCredentialFailure(true);
|
||||
connect(job, &DetermineAuthTypeJob::authType,
|
||||
_ocWizard, &OwncloudWizard::setAuthType);
|
||||
job->start();
|
||||
slotDetermineAuthType();
|
||||
}
|
||||
|
||||
void OwncloudSetupWizard::slotNoOwnCloudFoundAuth(QNetworkReply *reply)
|
||||
void OwncloudSetupWizard::slotNoServerFound(QNetworkReply *reply)
|
||||
{
|
||||
auto job = qobject_cast<CheckServerJob *>(sender());
|
||||
int resultCode = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
|
||||
|
@ -279,7 +308,7 @@ void OwncloudSetupWizard::slotNoOwnCloudFoundAuth(QNetworkReply *reply)
|
|||
_ocWizard->account()->resetRejectedCertificates();
|
||||
}
|
||||
|
||||
void OwncloudSetupWizard::slotNoOwnCloudFoundAuthTimeout(const QUrl &url)
|
||||
void OwncloudSetupWizard::slotNoServerFoundTimeout(const QUrl &url)
|
||||
{
|
||||
_ocWizard->displayError(
|
||||
tr("Timeout while trying to connect to %1 at %2.")
|
||||
|
@ -287,6 +316,15 @@ void OwncloudSetupWizard::slotNoOwnCloudFoundAuthTimeout(const QUrl &url)
|
|||
false);
|
||||
}
|
||||
|
||||
void OwncloudSetupWizard::slotDetermineAuthType()
|
||||
{
|
||||
DetermineAuthTypeJob *job = new DetermineAuthTypeJob(_ocWizard->account(), this);
|
||||
job->setIgnoreCredentialFailure(true);
|
||||
connect(job, &DetermineAuthTypeJob::authType,
|
||||
_ocWizard, &OwncloudWizard::setAuthType);
|
||||
job->start();
|
||||
}
|
||||
|
||||
void OwncloudSetupWizard::slotConnectToOCUrl(const QString &url)
|
||||
{
|
||||
qCInfo(lcWizard) << "Connect to url: " << url;
|
||||
|
@ -579,6 +617,8 @@ void OwncloudSetupWizard::slotAssistantFinished(int result)
|
|||
folderDefinition.localPath = localFolder;
|
||||
folderDefinition.targetPath = FolderDefinition::prepareTargetPath(_remoteFolder);
|
||||
folderDefinition.ignoreHiddenFiles = folderMan->ignoreHiddenFiles();
|
||||
if (folderMan->navigationPaneHelper().showInExplorerNavigationPane())
|
||||
folderDefinition.navigationPaneClsid = QUuid::createUuid();
|
||||
|
||||
auto f = folderMan->addFolder(account, folderDefinition);
|
||||
if (f) {
|
||||
|
|
|
@ -49,12 +49,16 @@ signals:
|
|||
void ownCloudWizardDone(int);
|
||||
|
||||
private slots:
|
||||
void slotDetermineAuthType(const QString &);
|
||||
void slotCheckServer(const QString &);
|
||||
void slotSystemProxyLookupDone(const QNetworkProxy &proxy);
|
||||
void slotContinueDetermineAuth();
|
||||
void slotOwnCloudFoundAuth(const QUrl &, const QJsonObject &);
|
||||
void slotNoOwnCloudFoundAuth(QNetworkReply *reply);
|
||||
void slotNoOwnCloudFoundAuthTimeout(const QUrl &url);
|
||||
|
||||
void slotFindServer();
|
||||
void slotFindServerBehindRedirect();
|
||||
void slotFoundServer(const QUrl &, const QJsonObject &);
|
||||
void slotNoServerFound(QNetworkReply *reply);
|
||||
void slotNoServerFoundTimeout(const QUrl &url);
|
||||
|
||||
void slotDetermineAuthType();
|
||||
|
||||
void slotConnectToOCUrl(const QString &);
|
||||
void slotAuthError();
|
||||
|
|
|
@ -32,6 +32,19 @@
|
|||
|
||||
namespace OCC {
|
||||
|
||||
bool SortedTreeWidgetItem::operator<(const QTreeWidgetItem &other) const
|
||||
{
|
||||
int column = treeWidget()->sortColumn();
|
||||
if (column != 0) {
|
||||
return QTreeWidgetItem::operator<(other);
|
||||
}
|
||||
|
||||
// Items with empty "File" column are larger than others,
|
||||
// otherwise sort by time (this uses lexicographic ordering)
|
||||
return std::forward_as_tuple(text(1).isEmpty(), data(0, Qt::UserRole).toDateTime())
|
||||
< std::forward_as_tuple(other.text(1).isEmpty(), other.data(0, Qt::UserRole).toDateTime());
|
||||
}
|
||||
|
||||
ProtocolWidget::ProtocolWidget(QWidget *parent)
|
||||
: QWidget(parent)
|
||||
, _ui(new Ui::ProtocolWidget)
|
||||
|
@ -86,6 +99,16 @@ void ProtocolWidget::showEvent(QShowEvent *ev)
|
|||
{
|
||||
ConfigFile cfg;
|
||||
cfg.restoreGeometryHeader(_ui->_treeWidget->header());
|
||||
|
||||
// Sorting by section was newly enabled. But if we restore the header
|
||||
// from a state where sorting was disabled, both of these flags will be
|
||||
// false and sorting will be impossible!
|
||||
_ui->_treeWidget->header()->setSectionsClickable(true);
|
||||
_ui->_treeWidget->header()->setSortIndicatorShown(true);
|
||||
|
||||
// Switch back to "by time" ordering
|
||||
_ui->_treeWidget->sortByColumn(0, Qt::DescendingOrder);
|
||||
|
||||
QWidget::showEvent(ev);
|
||||
}
|
||||
|
||||
|
@ -158,14 +181,15 @@ QTreeWidgetItem *ProtocolWidget::createCompletedTreewidgetItem(const QString &fo
|
|||
columns << Utility::octetsToString(item._size);
|
||||
}
|
||||
|
||||
QTreeWidgetItem *twitem = new QTreeWidgetItem(columns);
|
||||
QTreeWidgetItem *twitem = new SortedTreeWidgetItem(columns);
|
||||
twitem->setData(0, Qt::SizeHintRole, QSize(0, ActivityItemDelegate::rowHeight()));
|
||||
twitem->setData(0, Qt::UserRole, timestamp);
|
||||
twitem->setIcon(0, icon);
|
||||
twitem->setToolTip(0, longTimeStr);
|
||||
twitem->setToolTip(1, item._file);
|
||||
twitem->setToolTip(3, message);
|
||||
twitem->setData(0, Qt::UserRole, item._status);
|
||||
twitem->setData(2, Qt::UserRole, folder);
|
||||
twitem->setToolTip(3, message);
|
||||
twitem->setData(3, Qt::UserRole, item._status);
|
||||
return twitem;
|
||||
}
|
||||
|
||||
|
|
|
@ -34,6 +34,21 @@ namespace Ui {
|
|||
}
|
||||
class Application;
|
||||
|
||||
/**
|
||||
* A QTreeWidgetItem with special sorting.
|
||||
*
|
||||
* It allows items for global entries to be moved to the top if the
|
||||
* sorting section is the "Time" column.
|
||||
*/
|
||||
class SortedTreeWidgetItem : public QTreeWidgetItem
|
||||
{
|
||||
public:
|
||||
using QTreeWidgetItem::QTreeWidgetItem;
|
||||
|
||||
private:
|
||||
bool operator<(const QTreeWidgetItem &other) const override;
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief The ProtocolWidget class
|
||||
* @ingroup gui
|
||||
|
|
|
@ -35,6 +35,9 @@
|
|||
<property name="uniformRowHeights">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="sortingEnabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="columnCount">
|
||||
<number>4</number>
|
||||
</property>
|
||||
|
|
|
@ -157,7 +157,8 @@ void SettingsDialogMac::accountAdded(AccountState *s)
|
|||
connect(accountSettings, &AccountSettings::openFolderAlias, _gui, &ownCloudGui::slotFolderOpenAction);
|
||||
connect(accountSettings, &AccountSettings::showIssuesList, this, &SettingsDialogMac::showIssuesList);
|
||||
|
||||
connect(s->account().data(), SIGNAL(accountChangedAvatar()), this, SLOT(slotAccountAvatarChanged()));
|
||||
connect(s->account().data(), &Account::accountChangedAvatar, this, &SettingsDialogMac::slotAccountAvatarChanged);
|
||||
connect(s->account().data(), &Account::accountChangedDisplayName, this, &SettingsDialogMac::slotAccountDisplayNameChanged);
|
||||
|
||||
slotRefreshActivity(s);
|
||||
}
|
||||
|
@ -195,4 +196,23 @@ void SettingsDialogMac::slotAccountAvatarChanged()
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
void SettingsDialogMac::slotAccountDisplayNameChanged()
|
||||
{
|
||||
Account *account = static_cast<Account *>(sender());
|
||||
auto list = findChildren<AccountSettings *>(QString());
|
||||
foreach (auto p, list) {
|
||||
if (p->accountsState()->account() == account) {
|
||||
int idx = indexForPanel(p);
|
||||
QString displayName = account->displayName();
|
||||
if (!displayName.isNull()) {
|
||||
displayName = Theme::instance()->multiAccount()
|
||||
? SettingsDialogCommon::shortDisplayNameForSettings(account, 0)
|
||||
: tr("Account");
|
||||
setPreferencesPanelTitle(idx, displayName);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -54,6 +54,7 @@ private slots:
|
|||
void accountAdded(AccountState *);
|
||||
void accountRemoved(AccountState *);
|
||||
void slotAccountAvatarChanged();
|
||||
void slotAccountDisplayNameChanged();
|
||||
|
||||
private:
|
||||
void closeEvent(QCloseEvent *event);
|
||||
|
|
|
@ -15,25 +15,41 @@
|
|||
#include "sharemanager.h"
|
||||
#include "ocssharejob.h"
|
||||
#include "account.h"
|
||||
#include "folderman.h"
|
||||
#include "accountstate.h"
|
||||
|
||||
#include <QUrl>
|
||||
#include <QJsonDocument>
|
||||
#include <QJsonObject>
|
||||
#include <QJsonArray>
|
||||
|
||||
namespace {
|
||||
struct CreateShare
|
||||
{
|
||||
QString path;
|
||||
OCC::Share::ShareType shareType;
|
||||
QString shareWith;
|
||||
OCC::Share::Permissions permissions;
|
||||
};
|
||||
} // anonymous namespace
|
||||
Q_DECLARE_METATYPE(CreateShare)
|
||||
|
||||
namespace OCC {
|
||||
|
||||
/**
|
||||
* When a share is modified, we need to tell the folders so they can adjust overlay icons
|
||||
*/
|
||||
static void updateFolder(const AccountPtr &account, const QString &path)
|
||||
{
|
||||
foreach (Folder *f, FolderMan::instance()->map()) {
|
||||
if (f->accountState()->account() != account)
|
||||
continue;
|
||||
auto folderPath = f->remotePath();
|
||||
if (path.startsWith(folderPath) && (path == folderPath || folderPath.endsWith('/') || path[folderPath.size()] == '/')) {
|
||||
// Workaround the fact that the server does not invalidate the etags of parent directories
|
||||
// when something is shared.
|
||||
auto relative = path.midRef(folderPath.size());
|
||||
if (relative.startsWith('/'))
|
||||
relative = relative.mid(1);
|
||||
f->journalDb()->avoidReadFromDbOnNextSync(relative.toString());
|
||||
|
||||
// Schedule a sync so it can update the remote permission flag and let the socket API
|
||||
// know about the shared icon.
|
||||
f->scheduleThisFolderSoon();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Share::Share(AccountPtr account,
|
||||
const QString &id,
|
||||
const QString &path,
|
||||
|
@ -54,6 +70,11 @@ AccountPtr Share::account() const
|
|||
return _account;
|
||||
}
|
||||
|
||||
QString Share::path() const
|
||||
{
|
||||
return _path;
|
||||
}
|
||||
|
||||
QString Share::getId() const
|
||||
{
|
||||
return _id;
|
||||
|
@ -99,6 +120,8 @@ void Share::deleteShare()
|
|||
void Share::slotDeleted()
|
||||
{
|
||||
emit shareDeleted();
|
||||
|
||||
updateFolder(_account, _path);
|
||||
}
|
||||
|
||||
void Share::slotOcsError(int statusCode, const QString &message)
|
||||
|
@ -258,6 +281,8 @@ void ShareManager::slotLinkShareCreated(const QJsonDocument &reply)
|
|||
QSharedPointer<LinkShare> share(parseLinkShare(data));
|
||||
|
||||
emit linkShareCreated(share);
|
||||
|
||||
updateFolder(_account, share->path());
|
||||
}
|
||||
|
||||
|
||||
|
@ -267,52 +292,35 @@ void ShareManager::createShare(const QString &path,
|
|||
const Share::Permissions permissions)
|
||||
{
|
||||
auto job = new OcsShareJob(_account);
|
||||
|
||||
// Store values that we need for creating this share later.
|
||||
CreateShare continuation;
|
||||
continuation.path = path;
|
||||
continuation.shareType = shareType;
|
||||
continuation.shareWith = shareWith;
|
||||
continuation.permissions = permissions;
|
||||
_jobContinuation[job] = QVariant::fromValue(continuation);
|
||||
|
||||
connect(job, &OcsShareJob::shareJobFinished, this, &ShareManager::slotCreateShare);
|
||||
connect(job, &OcsJob::ocsError, this, &ShareManager::slotOcsError);
|
||||
job->getSharedWithMe();
|
||||
}
|
||||
|
||||
void ShareManager::slotCreateShare(const QJsonDocument &reply)
|
||||
{
|
||||
if (!_jobContinuation.contains(sender()))
|
||||
return;
|
||||
|
||||
CreateShare cont = _jobContinuation[sender()].value<CreateShare>();
|
||||
if (cont.path.isEmpty())
|
||||
return;
|
||||
_jobContinuation.remove(sender());
|
||||
|
||||
connect(job, &OcsShareJob::shareJobFinished, this,
|
||||
[=](const QJsonDocument &reply) {
|
||||
// Find existing share permissions (if this was shared with us)
|
||||
Share::Permissions existingPermissions = SharePermissionDefault;
|
||||
foreach (const QJsonValue &element, reply.object()["ocs"].toObject()["data"].toArray()) {
|
||||
auto map = element.toObject();
|
||||
if (map["file_target"] == cont.path)
|
||||
if (map["file_target"] == path)
|
||||
existingPermissions = Share::Permissions(map["permissions"].toInt());
|
||||
}
|
||||
|
||||
// Limit the permissions we request for a share to the ones the item
|
||||
// was shared with initially.
|
||||
if (cont.permissions == SharePermissionDefault) {
|
||||
cont.permissions = existingPermissions;
|
||||
auto perm = permissions;
|
||||
if (permissions == SharePermissionDefault) {
|
||||
perm = existingPermissions;
|
||||
} else if (existingPermissions != SharePermissionDefault) {
|
||||
cont.permissions &= existingPermissions;
|
||||
perm &= existingPermissions;
|
||||
}
|
||||
|
||||
OcsShareJob *job = new OcsShareJob(_account);
|
||||
connect(job, &OcsShareJob::shareJobFinished, this, &ShareManager::slotShareCreated);
|
||||
connect(job, &OcsJob::ocsError, this, &ShareManager::slotOcsError);
|
||||
job->createShare(cont.path, cont.shareType, cont.shareWith, cont.permissions);
|
||||
job->createShare(path, shareType, shareWith, permissions);
|
||||
});
|
||||
job->getSharedWithMe();
|
||||
}
|
||||
|
||||
|
||||
void ShareManager::slotShareCreated(const QJsonDocument &reply)
|
||||
{
|
||||
//Parse share
|
||||
|
@ -320,6 +328,8 @@ void ShareManager::slotShareCreated(const QJsonDocument &reply)
|
|||
QSharedPointer<Share> share(parseShare(data));
|
||||
|
||||
emit shareCreated(share);
|
||||
|
||||
updateFolder(_account, share->path());
|
||||
}
|
||||
|
||||
void ShareManager::fetchShares(const QString &path)
|
||||
|
|
|
@ -64,6 +64,8 @@ public:
|
|||
*/
|
||||
AccountPtr account() const;
|
||||
|
||||
QString path() const;
|
||||
|
||||
/*
|
||||
* Get the id
|
||||
*/
|
||||
|
@ -293,13 +295,10 @@ private slots:
|
|||
void slotLinkShareCreated(const QJsonDocument &reply);
|
||||
void slotShareCreated(const QJsonDocument &reply);
|
||||
void slotOcsError(int statusCode, const QString &message);
|
||||
void slotCreateShare(const QJsonDocument &reply);
|
||||
|
||||
private:
|
||||
QSharedPointer<LinkShare> parseLinkShare(const QJsonObject &data);
|
||||
QSharedPointer<Share> parseShare(const QJsonObject &data);
|
||||
|
||||
QMap<QObject *, QVariant> _jobContinuation;
|
||||
AccountPtr _account;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -155,4 +155,9 @@ QList<int> Capabilities::httpErrorCodesThatResetFailingChunkedUploads() const
|
|||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
QString Capabilities::invalidFilenameRegex() const
|
||||
{
|
||||
return _capabilities["dav"].toMap()["invalidFilenameRegex"].toString();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -108,6 +108,17 @@ public:
|
|||
*/
|
||||
QList<int> httpErrorCodesThatResetFailingChunkedUploads() const;
|
||||
|
||||
/**
|
||||
* Regex that, if contained in a filename, will result in it not being uploaded.
|
||||
*
|
||||
* For servers older than 8.1.0 it defaults to [\\:?*"<>|]
|
||||
* For servers >= that version, it defaults to the empty regex (the server
|
||||
* will indicate invalid characters through an upload error)
|
||||
*
|
||||
* Note that it just needs to be contained. The regex [ab] is contained in "car".
|
||||
*/
|
||||
QString invalidFilenameRegex() const;
|
||||
|
||||
private:
|
||||
QVariantMap _capabilities;
|
||||
};
|
||||
|
|
|
@ -36,6 +36,7 @@
|
|||
#include <QNetworkProxy>
|
||||
|
||||
#define DEFAULT_REMOTE_POLL_INTERVAL 30000 // default remote poll time in milliseconds
|
||||
#define DEFAULT_FULL_LOCAL_DISCOVERY_INTERVAL (60 * 60 * 1000) // 1 hour
|
||||
#define DEFAULT_MAX_LOG_LINES 20000
|
||||
|
||||
namespace OCC {
|
||||
|
@ -45,11 +46,13 @@ Q_LOGGING_CATEGORY(lcConfigFile, "sync.configfile", QtInfoMsg)
|
|||
//static const char caCertsKeyC[] = "CaCertificates"; only used from account.cpp
|
||||
static const char remotePollIntervalC[] = "remotePollInterval";
|
||||
static const char forceSyncIntervalC[] = "forceSyncInterval";
|
||||
static const char fullLocalDiscoveryIntervalC[] = "fullLocalDiscoveryInterval";
|
||||
static const char notificationRefreshIntervalC[] = "notificationRefreshInterval";
|
||||
static const char monoIconsC[] = "monoIcons";
|
||||
static const char promptDeleteC[] = "promptDeleteAllFiles";
|
||||
static const char crashReporterC[] = "crashReporter";
|
||||
static const char optionalDesktopNoficationsC[] = "optionalDesktopNotifications";
|
||||
static const char showInExplorerNavigationPaneC[] = "showInExplorerNavigationPane";
|
||||
static const char skipUpdateCheckC[] = "skipUpdateCheck";
|
||||
static const char updateCheckIntervalC[] = "updateCheckInterval";
|
||||
static const char geometryC[] = "geometry";
|
||||
|
@ -122,6 +125,26 @@ bool ConfigFile::optionalDesktopNotifications() const
|
|||
return settings.value(QLatin1String(optionalDesktopNoficationsC), true).toBool();
|
||||
}
|
||||
|
||||
bool ConfigFile::showInExplorerNavigationPane() const
|
||||
{
|
||||
const bool defaultValue =
|
||||
#ifdef Q_OS_WIN
|
||||
QSysInfo::windowsVersion() >= QSysInfo::WV_WINDOWS10
|
||||
#else
|
||||
false
|
||||
#endif
|
||||
;
|
||||
QSettings settings(configFile(), QSettings::IniFormat);
|
||||
return settings.value(QLatin1String(showInExplorerNavigationPaneC), defaultValue).toBool();
|
||||
}
|
||||
|
||||
void ConfigFile::setShowInExplorerNavigationPane(bool show)
|
||||
{
|
||||
QSettings settings(configFile(), QSettings::IniFormat);
|
||||
settings.setValue(QLatin1String(showInExplorerNavigationPaneC), show);
|
||||
settings.sync();
|
||||
}
|
||||
|
||||
int ConfigFile::timeout() const
|
||||
{
|
||||
QSettings settings(configFile(), QSettings::IniFormat);
|
||||
|
@ -406,6 +429,13 @@ quint64 ConfigFile::forceSyncInterval(const QString &connection) const
|
|||
return interval;
|
||||
}
|
||||
|
||||
qint64 ConfigFile::fullLocalDiscoveryInterval() const
|
||||
{
|
||||
QSettings settings(configFile(), QSettings::IniFormat);
|
||||
settings.beginGroup(defaultConnection());
|
||||
return settings.value(QLatin1String(fullLocalDiscoveryIntervalC), DEFAULT_FULL_LOCAL_DISCOVERY_INTERVAL).toLongLong();
|
||||
}
|
||||
|
||||
quint64 ConfigFile::notificationRefreshInterval(const QString &connection) const
|
||||
{
|
||||
QString con(connection);
|
||||
|
|
|
@ -72,6 +72,13 @@ public:
|
|||
/* Force sync interval, in milliseconds */
|
||||
quint64 forceSyncInterval(const QString &connection = QString()) const;
|
||||
|
||||
/**
|
||||
* Interval in milliseconds within which full local discovery is required
|
||||
*
|
||||
* Use -1 to disable regular full local discoveries.
|
||||
*/
|
||||
qint64 fullLocalDiscoveryInterval() const;
|
||||
|
||||
bool monoIcons() const;
|
||||
void setMonoIcons(bool);
|
||||
|
||||
|
@ -116,6 +123,9 @@ public:
|
|||
bool optionalDesktopNotifications() const;
|
||||
void setOptionalDesktopNotifications(bool show);
|
||||
|
||||
bool showInExplorerNavigationPane() const;
|
||||
void setShowInExplorerNavigationPane(bool show);
|
||||
|
||||
int timeout() const;
|
||||
quint64 chunkSize() const;
|
||||
quint64 maxChunkSize() const;
|
||||
|
|
|
@ -885,8 +885,14 @@ bool DetermineAuthTypeJob::finished()
|
|||
void DetermineAuthTypeJob::send(const QUrl &url)
|
||||
{
|
||||
QNetworkRequest req;
|
||||
|
||||
// Prevent HttpCredentialsAccessManager from setting an Authorization header.
|
||||
req.setAttribute(HttpCredentials::DontAddCredentialsAttribute, true);
|
||||
// Don't reuse previous auth credentials
|
||||
req.setAttribute(QNetworkRequest::AuthenticationReuseAttribute, QNetworkRequest::Manual);
|
||||
// Don't send cookies, we can't determine the auth type if we're logged in
|
||||
req.setAttribute(QNetworkRequest::CookieLoadControlAttribute, QNetworkRequest::Manual);
|
||||
|
||||
sendRequest("GET", url, req);
|
||||
}
|
||||
|
||||
|
|
|
@ -114,13 +114,13 @@ PropagateItemJob::~PropagateItemJob()
|
|||
|
||||
static qint64 getMinBlacklistTime()
|
||||
{
|
||||
return qMax(qgetenv("OWNCLOUD_BLACKLIST_TIME_MIN").toInt(),
|
||||
return qMax(qEnvironmentVariableIntValue("OWNCLOUD_BLACKLIST_TIME_MIN"),
|
||||
25); // 25 seconds
|
||||
}
|
||||
|
||||
static qint64 getMaxBlacklistTime()
|
||||
{
|
||||
int v = qgetenv("OWNCLOUD_BLACKLIST_TIME_MAX").toInt();
|
||||
int v = qEnvironmentVariableIntValue("OWNCLOUD_BLACKLIST_TIME_MAX");
|
||||
if (v > 0)
|
||||
return v;
|
||||
return 24 * 60 * 60; // 1 day
|
||||
|
@ -742,6 +742,16 @@ PropagatorJob::JobParallelism PropagatorCompositeJob::parallelism()
|
|||
return FullParallelism;
|
||||
}
|
||||
|
||||
void PropagatorCompositeJob::slotSubJobAbortFinished()
|
||||
{
|
||||
// Count that job has been finished
|
||||
_abortsCount--;
|
||||
|
||||
// Emit abort if last job has been aborted
|
||||
if (_abortsCount == 0) {
|
||||
emit abortFinished();
|
||||
}
|
||||
}
|
||||
|
||||
bool PropagatorCompositeJob::scheduleSelfOrChild()
|
||||
{
|
||||
|
@ -900,7 +910,8 @@ void PropagateDirectory::slotFirstJobFinished(SyncFileItem::Status status)
|
|||
|
||||
if (status != SyncFileItem::Success && status != SyncFileItem::Restoration) {
|
||||
if (_state != Finished) {
|
||||
abort();
|
||||
// Synchronously abort
|
||||
abort(AbortType::Synchronous);
|
||||
_state = Finished;
|
||||
emit finished(status);
|
||||
}
|
||||
|
|
|
@ -65,6 +65,11 @@ class PropagatorJob : public QObject
|
|||
public:
|
||||
explicit PropagatorJob(OwncloudPropagator *propagator);
|
||||
|
||||
enum AbortType {
|
||||
Synchronous,
|
||||
Asynchronous
|
||||
};
|
||||
|
||||
enum JobState {
|
||||
NotYetStarted,
|
||||
Running,
|
||||
|
@ -98,7 +103,14 @@ public:
|
|||
virtual qint64 committedDiskSpace() const { return 0; }
|
||||
|
||||
public slots:
|
||||
virtual void abort() {}
|
||||
/*
|
||||
* Asynchronous abort requires emit of abortFinished() signal,
|
||||
* while synchronous is expected to abort immedietaly.
|
||||
*/
|
||||
virtual void abort(PropagatorJob::AbortType abortType) {
|
||||
if (abortType == AbortType::Asynchronous)
|
||||
emit abortFinished();
|
||||
}
|
||||
|
||||
/** Starts this job, or a new subjob
|
||||
* returns true if a job was started.
|
||||
|
@ -110,11 +122,14 @@ signals:
|
|||
*/
|
||||
void finished(SyncFileItem::Status);
|
||||
|
||||
/**
|
||||
* Emitted when the abort is fully finished
|
||||
*/
|
||||
void abortFinished(SyncFileItem::Status status = SyncFileItem::NormalError);
|
||||
protected:
|
||||
OwncloudPropagator *propagator() const;
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* Abstract class to propagate a single item
|
||||
*/
|
||||
|
@ -185,10 +200,11 @@ public:
|
|||
SyncFileItemVector _tasksToDo;
|
||||
QVector<PropagatorJob *> _runningJobs;
|
||||
SyncFileItem::Status _hasError; // NoStatus, or NormalError / SoftError if there was an error
|
||||
quint64 _abortsCount;
|
||||
|
||||
explicit PropagatorCompositeJob(OwncloudPropagator *propagator)
|
||||
: PropagatorJob(propagator)
|
||||
, _hasError(SyncFileItem::NoStatus)
|
||||
, _hasError(SyncFileItem::NoStatus), _abortsCount(0)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -209,15 +225,32 @@ public:
|
|||
|
||||
virtual bool scheduleSelfOrChild() Q_DECL_OVERRIDE;
|
||||
virtual JobParallelism parallelism() Q_DECL_OVERRIDE;
|
||||
virtual void abort() Q_DECL_OVERRIDE
|
||||
|
||||
/*
|
||||
* Abort synchronously or asynchronously - some jobs
|
||||
* require to be finished without immediete abort (abort on job might
|
||||
* cause conflicts/duplicated files - owncloud/client/issues/5949)
|
||||
*/
|
||||
virtual void abort(PropagatorJob::AbortType abortType) Q_DECL_OVERRIDE
|
||||
{
|
||||
foreach (PropagatorJob *j, _runningJobs)
|
||||
j->abort();
|
||||
if (!_runningJobs.empty()) {
|
||||
_abortsCount = _runningJobs.size();
|
||||
foreach (PropagatorJob *j, _runningJobs) {
|
||||
if (abortType == AbortType::Asynchronous) {
|
||||
connect(j, &PropagatorJob::abortFinished,
|
||||
this, &PropagatorCompositeJob::slotSubJobAbortFinished);
|
||||
}
|
||||
j->abort(abortType);
|
||||
}
|
||||
} else if (abortType == AbortType::Asynchronous){
|
||||
emit abortFinished();
|
||||
}
|
||||
}
|
||||
|
||||
qint64 committedDiskSpace() const Q_DECL_OVERRIDE;
|
||||
|
||||
private slots:
|
||||
void slotSubJobAbortFinished();
|
||||
bool possiblyRunNextJob(PropagatorJob *next)
|
||||
{
|
||||
if (next->_state == NotYetStarted) {
|
||||
|
@ -258,11 +291,17 @@ public:
|
|||
|
||||
virtual bool scheduleSelfOrChild() Q_DECL_OVERRIDE;
|
||||
virtual JobParallelism parallelism() Q_DECL_OVERRIDE;
|
||||
virtual void abort() Q_DECL_OVERRIDE
|
||||
virtual void abort(PropagatorJob::AbortType abortType) Q_DECL_OVERRIDE
|
||||
{
|
||||
if (_firstJob)
|
||||
_firstJob->abort();
|
||||
_subJobs.abort();
|
||||
// Force first job to abort synchronously
|
||||
// even if caller allows async abort (asyncAbort)
|
||||
_firstJob->abort(AbortType::Synchronous);
|
||||
|
||||
if (abortType == AbortType::Asynchronous){
|
||||
connect(&_subJobs, &PropagatorCompositeJob::abortFinished, this, &PropagateDirectory::abortFinished);
|
||||
}
|
||||
_subJobs.abort(abortType);
|
||||
}
|
||||
|
||||
void increaseAffectedCount()
|
||||
|
@ -280,6 +319,7 @@ private slots:
|
|||
|
||||
void slotFirstJobFinished(SyncFileItem::Status status);
|
||||
void slotSubJobsFinished(SyncFileItem::Status status);
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
@ -324,6 +364,7 @@ public:
|
|||
, _chunkSize(10 * 1000 * 1000) // 10 MB, overridden in setSyncOptions
|
||||
, _account(account)
|
||||
{
|
||||
qRegisterMetaType<PropagatorJob::AbortType>("PropagatorJob::AbortType");
|
||||
}
|
||||
|
||||
~OwncloudPropagator();
|
||||
|
@ -404,13 +445,23 @@ public:
|
|||
|
||||
void abort()
|
||||
{
|
||||
_abortRequested.fetchAndStoreOrdered(true);
|
||||
bool alreadyAborting = _abortRequested.fetchAndStoreOrdered(true);
|
||||
if (alreadyAborting)
|
||||
return;
|
||||
if (_rootJob) {
|
||||
// We're possibly already in an item's finished stack
|
||||
QMetaObject::invokeMethod(_rootJob.data(), "abort", Qt::QueuedConnection);
|
||||
// Connect to abortFinished which signals that abort has been asynchronously finished
|
||||
connect(_rootJob.data(), &PropagateDirectory::abortFinished, this, &OwncloudPropagator::emitFinished);
|
||||
|
||||
// Use Queued Connection because we're possibly already in an item's finished stack
|
||||
QMetaObject::invokeMethod(_rootJob.data(), "abort", Qt::QueuedConnection,
|
||||
Q_ARG(PropagatorJob::AbortType, PropagatorJob::AbortType::Asynchronous));
|
||||
|
||||
// Give asynchronous abort 5000 msec to finish on its own
|
||||
QTimer::singleShot(5000, this, SLOT(abortTimeout()));
|
||||
} else {
|
||||
// No root job, call emitFinished
|
||||
emitFinished(SyncFileItem::NormalError);
|
||||
}
|
||||
// abort() of all jobs will likely have already resulted in finished being emitted, but just in case.
|
||||
QMetaObject::invokeMethod(this, "emitFinished", Qt::QueuedConnection, Q_ARG(SyncFileItem::Status, SyncFileItem::NormalError));
|
||||
}
|
||||
|
||||
// timeout in seconds
|
||||
|
@ -431,6 +482,13 @@ public:
|
|||
|
||||
private slots:
|
||||
|
||||
void abortTimeout()
|
||||
{
|
||||
// Abort synchronously and finish
|
||||
_rootJob.data()->abort(PropagatorJob::AbortType::Synchronous);
|
||||
emitFinished(SyncFileItem::NormalError);
|
||||
}
|
||||
|
||||
/** Emit the finished signal and make sure it is only emitted once */
|
||||
void emitFinished(SyncFileItem::Status status)
|
||||
{
|
||||
|
|
|
@ -625,6 +625,9 @@ void PropagateDownloadFile::slotGetFinished()
|
|||
connect(validator, &ValidateChecksumHeader::validationFailed,
|
||||
this, &PropagateDownloadFile::slotChecksumFail);
|
||||
auto checksumHeader = job->reply()->rawHeader(checkSumHeaderC);
|
||||
auto contentMd5Header = job->reply()->rawHeader(contentMd5HeaderC);
|
||||
if (checksumHeader.isEmpty() && !contentMd5Header.isEmpty())
|
||||
checksumHeader = "MD5:" + contentMd5Header;
|
||||
validator->start(_tmpFile.fileName(), checksumHeader);
|
||||
}
|
||||
|
||||
|
@ -897,9 +900,13 @@ void PropagateDownloadFile::slotDownloadProgress(qint64 received, qint64)
|
|||
}
|
||||
|
||||
|
||||
void PropagateDownloadFile::abort()
|
||||
void PropagateDownloadFile::abort(PropagatorJob::AbortType abortType)
|
||||
{
|
||||
if (_job && _job->reply())
|
||||
_job->reply()->abort();
|
||||
|
||||
if (abortType == AbortType::Asynchronous) {
|
||||
emit abortFinished();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -185,7 +185,7 @@ private slots:
|
|||
/// Called when it's time to update the db metadata
|
||||
void updateMetadata(bool isConflict);
|
||||
|
||||
void abort() Q_DECL_OVERRIDE;
|
||||
void abort(PropagatorJob::AbortType abortType) Q_DECL_OVERRIDE;
|
||||
void slotDownloadProgress(qint64, qint64);
|
||||
void slotChecksumFail(const QString &errMsg);
|
||||
|
||||
|
|
|
@ -75,10 +75,14 @@ void PropagateRemoteDelete::start()
|
|||
_job->start();
|
||||
}
|
||||
|
||||
void PropagateRemoteDelete::abort()
|
||||
void PropagateRemoteDelete::abort(PropagatorJob::AbortType abortType)
|
||||
{
|
||||
if (_job && _job->reply())
|
||||
_job->reply()->abort();
|
||||
|
||||
if (abortType == AbortType::Asynchronous) {
|
||||
emit abortFinished();
|
||||
}
|
||||
}
|
||||
|
||||
void PropagateRemoteDelete::slotDeleteJobFinished()
|
||||
|
|
|
@ -52,7 +52,7 @@ public:
|
|||
{
|
||||
}
|
||||
void start() Q_DECL_OVERRIDE;
|
||||
void abort() Q_DECL_OVERRIDE;
|
||||
void abort(PropagatorJob::AbortType abortType) Q_DECL_OVERRIDE;
|
||||
|
||||
bool isLikelyFinishedQuickly() Q_DECL_OVERRIDE { return !_item->isDirectory(); }
|
||||
|
||||
|
|
|
@ -60,10 +60,14 @@ void PropagateRemoteMkdir::slotStartMkcolJob()
|
|||
_job->start();
|
||||
}
|
||||
|
||||
void PropagateRemoteMkdir::abort()
|
||||
void PropagateRemoteMkdir::abort(PropagatorJob::AbortType abortType)
|
||||
{
|
||||
if (_job && _job->reply())
|
||||
_job->reply()->abort();
|
||||
|
||||
if (abortType == AbortType::Asynchronous) {
|
||||
emit abortFinished();
|
||||
}
|
||||
}
|
||||
|
||||
void PropagateRemoteMkdir::setDeleteExisting(bool enabled)
|
||||
|
|
|
@ -35,7 +35,7 @@ public:
|
|||
{
|
||||
}
|
||||
void start() Q_DECL_OVERRIDE;
|
||||
void abort() Q_DECL_OVERRIDE;
|
||||
void abort(PropagatorJob::AbortType abortType) Q_DECL_OVERRIDE;
|
||||
|
||||
// Creating a directory should be fast.
|
||||
bool isLikelyFinishedQuickly() Q_DECL_OVERRIDE { return true; }
|
||||
|
|
|
@ -117,10 +117,14 @@ void PropagateRemoteMove::start()
|
|||
_job->start();
|
||||
}
|
||||
|
||||
void PropagateRemoteMove::abort()
|
||||
void PropagateRemoteMove::abort(PropagatorJob::AbortType abortType)
|
||||
{
|
||||
if (_job && _job->reply())
|
||||
_job->reply()->abort();
|
||||
|
||||
if (abortType == AbortType::Asynchronous) {
|
||||
emit abortFinished();
|
||||
}
|
||||
}
|
||||
|
||||
void PropagateRemoteMove::slotMoveJobFinished()
|
||||
|
|
|
@ -56,7 +56,7 @@ public:
|
|||
{
|
||||
}
|
||||
void start() Q_DECL_OVERRIDE;
|
||||
void abort() Q_DECL_OVERRIDE;
|
||||
void abort(PropagatorJob::AbortType abortType) Q_DECL_OVERRIDE;
|
||||
JobParallelism parallelism() Q_DECL_OVERRIDE { return _item->isDirectory() ? WaitForFinished : FullParallelism; }
|
||||
|
||||
/**
|
||||
|
|
|
@ -558,20 +558,24 @@ void PropagateUploadFileCommon::slotJobDestroyed(QObject *job)
|
|||
_jobs.erase(std::remove(_jobs.begin(), _jobs.end(), job), _jobs.end());
|
||||
}
|
||||
|
||||
void PropagateUploadFileCommon::abort()
|
||||
void PropagateUploadFileCommon::abort(PropagatorJob::AbortType abortType)
|
||||
{
|
||||
foreach (auto *job, _jobs) {
|
||||
if (job->reply()) {
|
||||
job->reply()->abort();
|
||||
}
|
||||
}
|
||||
|
||||
if (abortType == AbortType::Asynchronous) {
|
||||
emit abortFinished();
|
||||
}
|
||||
}
|
||||
|
||||
// This function is used whenever there is an error occuring and jobs might be in progress
|
||||
void PropagateUploadFileCommon::abortWithError(SyncFileItem::Status status, const QString &error)
|
||||
{
|
||||
_finished = true;
|
||||
abort();
|
||||
abort(AbortType::Synchronous);
|
||||
done(status, error);
|
||||
}
|
||||
|
||||
|
@ -625,4 +629,33 @@ void PropagateUploadFileCommon::finalize()
|
|||
|
||||
done(SyncFileItem::Success);
|
||||
}
|
||||
|
||||
void PropagateUploadFileCommon::prepareAbort(PropagatorJob::AbortType abortType) {
|
||||
if (!_jobs.empty()) {
|
||||
// Count number of jobs to be aborted asynchronously
|
||||
_abortCount = _jobs.size();
|
||||
|
||||
foreach (AbstractNetworkJob *job, _jobs) {
|
||||
// Check if async abort is requested
|
||||
if (job->reply() && abortType == AbortType::Asynchronous) {
|
||||
// Connect to finished signal of job reply
|
||||
// to asynchonously finish the abort
|
||||
connect(job->reply(), &QNetworkReply::finished, this, &PropagateUploadFileCommon::slotReplyAbortFinished);
|
||||
}
|
||||
}
|
||||
} else if (abortType == AbortType::Asynchronous) {
|
||||
// Empty job list, emit abortFinished immedietaly
|
||||
emit abortFinished();
|
||||
}
|
||||
}
|
||||
|
||||
void PropagateUploadFileCommon::slotReplyAbortFinished()
|
||||
{
|
||||
_abortCount--;
|
||||
|
||||
if (_abortCount == 0) {
|
||||
emit abortFinished();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -129,6 +129,11 @@ public:
|
|||
return true;
|
||||
}
|
||||
|
||||
QIODevice *device()
|
||||
{
|
||||
return _device;
|
||||
}
|
||||
|
||||
QString errorString()
|
||||
{
|
||||
return _errorString.isEmpty() ? AbstractNetworkJob::errorString() : _errorString;
|
||||
|
@ -205,6 +210,7 @@ protected:
|
|||
QVector<AbstractNetworkJob *> _jobs; /// network jobs that are currently in transit
|
||||
bool _finished BITFIELD(1); /// Tells that all the jobs have been finished
|
||||
bool _deleteExisting BITFIELD(1);
|
||||
quint64 _abortCount; /// Keep track of number of aborted items
|
||||
|
||||
// measure the performance of checksum calc and upload
|
||||
#ifdef WITH_TESTING
|
||||
|
@ -218,6 +224,7 @@ public:
|
|||
: PropagateItemJob(propagator, item)
|
||||
, _finished(false)
|
||||
, _deleteExisting(false)
|
||||
, _abortCount(0)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -248,13 +255,20 @@ public:
|
|||
void abortWithError(SyncFileItem::Status status, const QString &error);
|
||||
|
||||
public slots:
|
||||
void abort() Q_DECL_OVERRIDE;
|
||||
void abort(PropagatorJob::AbortType abortType) Q_DECL_OVERRIDE;
|
||||
void slotJobDestroyed(QObject *job);
|
||||
|
||||
private slots:
|
||||
void slotReplyAbortFinished();
|
||||
void slotPollFinished();
|
||||
|
||||
protected:
|
||||
/**
|
||||
* Prepares the abort e.g. connects proper signals and slots
|
||||
* to the subjobs to abort asynchronously
|
||||
*/
|
||||
void prepareAbort(PropagatorJob::AbortType abortType);
|
||||
|
||||
/**
|
||||
* Checks whether the current error is one that should reset the whole
|
||||
* transfer if it happens too often. If so: Bump UploadInfo::errorCount
|
||||
|
@ -287,15 +301,15 @@ private:
|
|||
* In the non-resuming case it is 0.
|
||||
* If we are resuming, this is the first chunk we need to send
|
||||
*/
|
||||
int _startChunk;
|
||||
int _startChunk = 0;
|
||||
/**
|
||||
* This is the next chunk that we need to send. Starting from 0 even if _startChunk != 0
|
||||
* (In other words, _startChunk + _currentChunk is really the number of the chunk we need to send next)
|
||||
* (In other words, _currentChunk is the number of the chunk that we already sent or started sending)
|
||||
*/
|
||||
int _currentChunk;
|
||||
int _chunkCount; /// Total number of chunks for this file
|
||||
int _transferId; /// transfer id (part of the url)
|
||||
int _currentChunk = 0;
|
||||
int _chunkCount = 0; /// Total number of chunks for this file
|
||||
int _transferId = 0; /// transfer id (part of the url)
|
||||
|
||||
quint64 chunkSize() const {
|
||||
// Old chunking does not use dynamic chunking algorithm, and does not adjusts the chunk size respectively,
|
||||
|
@ -303,7 +317,6 @@ private:
|
|||
return propagator()->syncOptions()._initialChunkSize;
|
||||
}
|
||||
|
||||
|
||||
public:
|
||||
PropagateUploadFileV1(OwncloudPropagator *propagator, const SyncFileItemPtr &item)
|
||||
: PropagateUploadFileCommon(propagator, item)
|
||||
|
@ -311,7 +324,8 @@ public:
|
|||
}
|
||||
|
||||
void doStartUpload() Q_DECL_OVERRIDE;
|
||||
|
||||
public slots:
|
||||
void abort(PropagatorJob::AbortType abortType) Q_DECL_OVERRIDE;
|
||||
private slots:
|
||||
void startNextChunk();
|
||||
void slotPutFinished();
|
||||
|
@ -328,11 +342,11 @@ class PropagateUploadFileNG : public PropagateUploadFileCommon
|
|||
{
|
||||
Q_OBJECT
|
||||
private:
|
||||
quint64 _sent; /// amount of data (bytes) that was already sent
|
||||
uint _transferId; /// transfer id (part of the url)
|
||||
int _currentChunk; /// Id of the next chunk that will be sent
|
||||
quint64 _currentChunkSize; /// current chunk size
|
||||
bool _removeJobError; /// If not null, there was an error removing the job
|
||||
quint64 _sent = 0; /// amount of data (bytes) that was already sent
|
||||
uint _transferId = 0; /// transfer id (part of the url)
|
||||
int _currentChunk = 0; /// Id of the next chunk that will be sent
|
||||
quint64 _currentChunkSize = 0; /// current chunk size
|
||||
bool _removeJobError = false; /// If not null, there was an error removing the job
|
||||
|
||||
// Map chunk number with its size from the PROPFIND on resume.
|
||||
// (Only used from slotPropfindIterate/slotPropfindFinished because the LsColJob use signals to report data.)
|
||||
|
@ -352,7 +366,6 @@ private:
|
|||
public:
|
||||
PropagateUploadFileNG(OwncloudPropagator *propagator, const SyncFileItemPtr &item)
|
||||
: PropagateUploadFileCommon(propagator, item)
|
||||
, _currentChunkSize(0)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -361,6 +374,8 @@ public:
|
|||
private:
|
||||
void startNewUpload();
|
||||
void startNextChunk();
|
||||
public slots:
|
||||
void abort(AbortType abortType) Q_DECL_OVERRIDE;
|
||||
private slots:
|
||||
void slotPropfindFinished();
|
||||
void slotPropfindFinishedWithError();
|
||||
|
|
|
@ -365,7 +365,7 @@ void PropagateUploadFileNG::slotPutFinished()
|
|||
// target duration for each chunk upload.
|
||||
double targetDuration = propagator()->syncOptions()._targetChunkUploadDuration;
|
||||
if (targetDuration > 0) {
|
||||
double uploadTime = job->msSinceStart();
|
||||
double uploadTime = job->msSinceStart() + 1; // add one to avoid div-by-zero
|
||||
|
||||
auto predictedGoodSize = static_cast<quint64>(
|
||||
_currentChunkSize / uploadTime * targetDuration);
|
||||
|
@ -491,4 +491,26 @@ void PropagateUploadFileNG::slotUploadProgress(qint64 sent, qint64 total)
|
|||
}
|
||||
propagator()->reportProgress(*_item, _sent + sent - total);
|
||||
}
|
||||
|
||||
void PropagateUploadFileNG::abort(PropagatorJob::AbortType abortType)
|
||||
{
|
||||
// Prepare abort
|
||||
prepareAbort(abortType);
|
||||
|
||||
// Abort all jobs (if there are any left), except final PUT
|
||||
foreach (AbstractNetworkJob *job, _jobs) {
|
||||
if (job->reply()) {
|
||||
if (abortType == AbortType::Asynchronous && qobject_cast<MoveJob *>(job)){
|
||||
// If it is async abort, dont abort
|
||||
// MoveJob since it might result in conflict,
|
||||
// only PUT and MKDIR jobs can be safely aborted.
|
||||
continue;
|
||||
}
|
||||
|
||||
// Abort the job
|
||||
job->reply()->abort();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -350,4 +350,31 @@ void PropagateUploadFileV1::slotUploadProgress(qint64 sent, qint64 total)
|
|||
}
|
||||
propagator()->reportProgress(*_item, amount);
|
||||
}
|
||||
|
||||
void PropagateUploadFileV1::abort(PropagatorJob::AbortType abortType)
|
||||
{
|
||||
// Prepare abort
|
||||
prepareAbort(abortType);
|
||||
|
||||
// Abort all jobs (if there are any left), except final PUT
|
||||
foreach (AbstractNetworkJob *job, _jobs) {
|
||||
if (job->reply()) {
|
||||
// If asynchronous abort allowed,
|
||||
// dont abort final PUT which uploaded its data,
|
||||
// since this might result in conflicts
|
||||
if (PUTFileJob *putJob = qobject_cast<PUTFileJob *>(job)){
|
||||
if (abortType == AbortType::Asynchronous
|
||||
&& _chunkCount > 0
|
||||
&& (((_currentChunk + _startChunk) % _chunkCount) == 0)
|
||||
&& putJob->device()->atEnd()) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
// Abort the job
|
||||
job->reply()->abort();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -25,6 +25,7 @@ namespace OCC {
|
|||
* It's here for being shared between Upload- and Download Job
|
||||
*/
|
||||
static const char checkSumHeaderC[] = "OC-Checksum";
|
||||
static const char contentMd5HeaderC[] = "Content-MD5";
|
||||
|
||||
/**
|
||||
* @brief Declaration of the other propagation jobs
|
||||
|
|
|
@ -571,7 +571,6 @@ int SyncEngine::treewalkFile(csync_file_stat_t *file, csync_file_stat_t *other,
|
|||
dir = SyncFileItem::None;
|
||||
// For directories, metadata-only updates will be done after all their files are propagated.
|
||||
if (!isDirectory) {
|
||||
emit syncItemDiscovered(*item);
|
||||
|
||||
// Update the database now already: New remote fileid or Etag or RemotePerm
|
||||
// Or for files that were detected as "resolved conflict".
|
||||
|
@ -608,6 +607,9 @@ int SyncEngine::treewalkFile(csync_file_stat_t *file, csync_file_stat_t *other,
|
|||
}
|
||||
|
||||
_journal->setFileRecordMetadata(item->toSyncJournalFileRecordWithInode(filePath));
|
||||
|
||||
// This might have changed the shared flag, so we must notify SyncFileStatusTracker for example
|
||||
emit itemCompleted(item);
|
||||
} else {
|
||||
// The local tree is walked first and doesn't have all the info from the server.
|
||||
// Update only outdated data from the disk.
|
||||
|
@ -683,8 +685,6 @@ int SyncEngine::treewalkFile(csync_file_stat_t *file, csync_file_stat_t *other,
|
|||
}
|
||||
|
||||
_syncItemMap.insert(key, item);
|
||||
|
||||
emit syncItemDiscovered(*item);
|
||||
return re;
|
||||
}
|
||||
|
||||
|
@ -813,6 +813,7 @@ void SyncEngine::startSync()
|
|||
}
|
||||
|
||||
_csync_ctx->read_remote_from_db = true;
|
||||
_lastLocalDiscoveryStyle = _csync_ctx->local_discovery_style;
|
||||
|
||||
bool ok;
|
||||
auto selectiveSyncBlackList = _journal->getSelectiveSyncList(SyncJournalDb::SelectiveSyncBlackList, &ok);
|
||||
|
@ -960,11 +961,20 @@ void SyncEngine::slotDiscoveryJobFinished(int discoveryResult)
|
|||
}
|
||||
|
||||
// Check for invalid character in old server version
|
||||
if (_account->serverVersionInt() < Account::makeServerVersion(8, 1, 0)) {
|
||||
// Server version older than 8.1 don't support these character in filename.
|
||||
static const QRegExp invalidCharRx("[\\\\:?*\"<>|]");
|
||||
QString invalidFilenamePattern = _account->capabilities().invalidFilenameRegex();
|
||||
if (invalidFilenamePattern.isNull()
|
||||
&& _account->serverVersionInt() < Account::makeServerVersion(8, 1, 0)) {
|
||||
// Server versions older than 8.1 don't support some characters in filenames.
|
||||
// If the capability is not set, default to a pattern that avoids uploading
|
||||
// files with names that contain these.
|
||||
// It's important to respect the capability also for older servers -- the
|
||||
// version check doesn't make sense for custom servers.
|
||||
invalidFilenamePattern = "[\\\\:?*\"<>|]";
|
||||
}
|
||||
if (!invalidFilenamePattern.isEmpty()) {
|
||||
const QRegExp invalidFilenameRx(invalidFilenamePattern);
|
||||
for (auto it = syncItems.begin(); it != syncItems.end(); ++it) {
|
||||
if ((*it)->_direction == SyncFileItem::Up && (*it)->destination().contains(invalidCharRx)) {
|
||||
if ((*it)->_direction == SyncFileItem::Up && (*it)->destination().contains(invalidFilenameRx)) {
|
||||
(*it)->_errorString = tr("File name contains at least one invalid character");
|
||||
(*it)->_instruction = CSYNC_INSTRUCTION_IGNORE;
|
||||
}
|
||||
|
@ -1022,7 +1032,7 @@ void SyncEngine::slotDiscoveryJobFinished(int discoveryResult)
|
|||
_progressInfo->startEstimateUpdates();
|
||||
|
||||
// post update phase script: allow to tweak stuff by a custom script in debug mode.
|
||||
if (!qgetenv("OWNCLOUD_POST_UPDATE_SCRIPT").isEmpty()) {
|
||||
if (!qEnvironmentVariableIsEmpty("OWNCLOUD_POST_UPDATE_SCRIPT")) {
|
||||
#ifndef NDEBUG
|
||||
QString script = qgetenv("OWNCLOUD_POST_UPDATE_SCRIPT");
|
||||
|
||||
|
@ -1455,7 +1465,7 @@ void SyncEngine::checkForPermission(SyncFileItemVector &syncItems)
|
|||
|
||||
RemotePermissions SyncEngine::getPermissions(const QString &file) const
|
||||
{
|
||||
static bool isTest = qgetenv("OWNCLOUD_TEST_PERMISSIONS").toInt();
|
||||
static bool isTest = qEnvironmentVariableIntValue("OWNCLOUD_TEST_PERMISSIONS");
|
||||
if (isTest) {
|
||||
QRegExp rx("_PERM_([^_]*)_[^/]*$");
|
||||
if (rx.indexIn(file) != -1) {
|
||||
|
@ -1555,6 +1565,12 @@ AccountPtr SyncEngine::account() const
|
|||
return _account;
|
||||
}
|
||||
|
||||
void SyncEngine::setLocalDiscoveryOptions(LocalDiscoveryStyle style, std::set<QByteArray> dirs)
|
||||
{
|
||||
_csync_ctx->local_discovery_style = style;
|
||||
_csync_ctx->locally_touched_dirs = std::move(dirs);
|
||||
}
|
||||
|
||||
void SyncEngine::abort()
|
||||
{
|
||||
if (_propagator)
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
#include <QMap>
|
||||
#include <QStringList>
|
||||
#include <QSharedPointer>
|
||||
#include <set>
|
||||
|
||||
#include <csync.h>
|
||||
|
||||
|
@ -92,6 +93,7 @@ public:
|
|||
AccountPtr account() const;
|
||||
SyncJournalDb *journal() const { return _journal; }
|
||||
QString localPath() const { return _localPath; }
|
||||
|
||||
/**
|
||||
* Minimum age, in milisecond, of a file that can be uploaded.
|
||||
* Files more recent than that are not going to be uploaeded as they are considered
|
||||
|
@ -99,14 +101,28 @@ public:
|
|||
*/
|
||||
static qint64 minimumFileAgeForUpload; // in ms
|
||||
|
||||
/**
|
||||
* Control whether local discovery should read from filesystem or db.
|
||||
*
|
||||
* If style is Partial, the paths is a set of file paths relative to
|
||||
* the synced folder. All the parent directories of these paths will not
|
||||
* be read from the db and scanned on the filesystem.
|
||||
*
|
||||
* Note, the style and paths are only retained for the next sync and
|
||||
* revert afterwards. Use _lastLocalDiscoveryStyle to discover the last
|
||||
* sync's style.
|
||||
*/
|
||||
void setLocalDiscoveryOptions(LocalDiscoveryStyle style, std::set<QByteArray> dirs = {});
|
||||
|
||||
/** Access the last sync run's local discovery style */
|
||||
LocalDiscoveryStyle lastLocalDiscoveryStyle() const { return _lastLocalDiscoveryStyle; }
|
||||
|
||||
signals:
|
||||
void csyncUnavailable();
|
||||
|
||||
// During update, before reconcile
|
||||
void rootEtag(QString);
|
||||
|
||||
// before actual syncing (after update+reconcile) for each item
|
||||
void syncItemDiscovered(const SyncFileItem &);
|
||||
// after the above signals. with the items that actually need propagating
|
||||
void aboutToPropagate(SyncFileItemVector &);
|
||||
|
||||
|
@ -272,6 +288,9 @@ private:
|
|||
|
||||
/** List of unique errors that occurred in a sync run. */
|
||||
QSet<QString> _uniqueErrors;
|
||||
|
||||
/** The kind of local discovery the last sync run used */
|
||||
LocalDiscoveryStyle _lastLocalDiscoveryStyle = LocalDiscoveryStyle::DatabaseAndFilesystem;
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -46,6 +46,7 @@ owncloud_add_test(ExcludedFiles "")
|
|||
owncloud_add_test(FileSystem "")
|
||||
owncloud_add_test(Utility "")
|
||||
owncloud_add_test(SyncEngine "syncenginetestutils.h")
|
||||
owncloud_add_test(SyncMove "syncenginetestutils.h")
|
||||
owncloud_add_test(SyncFileStatusTracker "syncenginetestutils.h")
|
||||
owncloud_add_test(ChunkingNg "syncenginetestutils.h")
|
||||
owncloud_add_test(UploadReset "syncenginetestutils.h")
|
||||
|
@ -65,6 +66,7 @@ list(APPEND FolderMan_SRC ../src/gui/accountstate.cpp )
|
|||
list(APPEND FolderMan_SRC ../src/gui/syncrunfilelog.cpp )
|
||||
list(APPEND FolderMan_SRC ../src/gui/lockwatcher.cpp )
|
||||
list(APPEND FolderMan_SRC ../src/gui/guiutility.cpp )
|
||||
list(APPEND FolderMan_SRC ../src/gui/navigationpanehelper.cpp )
|
||||
list(APPEND FolderMan_SRC ${FolderWatcher_SRC})
|
||||
list(APPEND FolderMan_SRC stub.cpp )
|
||||
owncloud_add_test(FolderMan "${FolderMan_SRC}")
|
||||
|
|
|
@ -161,12 +161,15 @@ public:
|
|||
FileInfo(const QString &name, qint64 size) : name{name}, isDir{false}, size{size} { }
|
||||
FileInfo(const QString &name, qint64 size, char contentChar) : name{name}, isDir{false}, size{size}, contentChar{contentChar} { }
|
||||
FileInfo(const QString &name, const std::initializer_list<FileInfo> &children) : name{name} {
|
||||
QString p = path();
|
||||
for (const auto &source : children) {
|
||||
auto &dest = this->children[source.name] = source;
|
||||
dest.parentPath = p;
|
||||
dest.fixupParentPathRecursively();
|
||||
for (const auto &source : children)
|
||||
addChild(source);
|
||||
}
|
||||
|
||||
void addChild(const FileInfo &info)
|
||||
{
|
||||
auto &dest = this->children[info.name] = info;
|
||||
dest.parentPath = path();
|
||||
dest.fixupParentPathRecursively();
|
||||
}
|
||||
|
||||
void remove(const QString &relativePath) override {
|
||||
|
@ -433,6 +436,8 @@ public:
|
|||
abort();
|
||||
return;
|
||||
}
|
||||
fileInfo->lastModified = OCC::Utility::qDateTimeFromTime_t(request.rawHeader("X-OC-Mtime").toLongLong());
|
||||
remoteRootFileInfo.find(fileName, /*invalidate_etags=*/true);
|
||||
QMetaObject::invokeMethod(this, "respond", Qt::QueuedConnection);
|
||||
}
|
||||
|
||||
|
@ -597,6 +602,9 @@ public:
|
|||
size -= len;
|
||||
return len;
|
||||
}
|
||||
|
||||
// useful to be public for testing
|
||||
using QNetworkReply::setRawHeader;
|
||||
};
|
||||
|
||||
|
||||
|
@ -607,7 +615,9 @@ class FakeChunkMoveReply : public QNetworkReply
|
|||
public:
|
||||
FakeChunkMoveReply(FileInfo &uploadsFileInfo, FileInfo &remoteRootFileInfo,
|
||||
QNetworkAccessManager::Operation op, const QNetworkRequest &request,
|
||||
QObject *parent) : QNetworkReply{parent} {
|
||||
quint64 delayMs, QObject *parent)
|
||||
: QNetworkReply{ parent }
|
||||
{
|
||||
setRequest(request);
|
||||
setUrl(request.url());
|
||||
setOperation(op);
|
||||
|
@ -662,7 +672,10 @@ public:
|
|||
abort();
|
||||
return;
|
||||
}
|
||||
QMetaObject::invokeMethod(this, "respond", Qt::QueuedConnection);
|
||||
fileInfo->lastModified = OCC::Utility::qDateTimeFromTime_t(request.rawHeader("X-OC-Mtime").toLongLong());
|
||||
remoteRootFileInfo.find(fileName, /*invalidate_etags=*/true);
|
||||
|
||||
QTimer::singleShot(delayMs, this, &FakeChunkMoveReply::respond);
|
||||
}
|
||||
|
||||
Q_INVOKABLE void respond() {
|
||||
|
@ -713,6 +726,24 @@ public:
|
|||
int _httpErrorCode;
|
||||
};
|
||||
|
||||
// A reply that never responds
|
||||
class FakeHangingReply : public QNetworkReply
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
FakeHangingReply(QNetworkAccessManager::Operation op, const QNetworkRequest &request, QObject *parent)
|
||||
: QNetworkReply(parent)
|
||||
{
|
||||
setRequest(request);
|
||||
setUrl(request.url());
|
||||
setOperation(op);
|
||||
open(QIODevice::ReadOnly);
|
||||
}
|
||||
|
||||
void abort() override {}
|
||||
qint64 readData(char *, qint64) override { return 0; }
|
||||
};
|
||||
|
||||
class FakeQNAM : public QNetworkAccessManager
|
||||
{
|
||||
public:
|
||||
|
@ -765,7 +796,7 @@ protected:
|
|||
else if (verb == QLatin1String("MOVE") && !isUpload)
|
||||
return new FakeMoveReply{info, op, request, this};
|
||||
else if (verb == QLatin1String("MOVE") && isUpload)
|
||||
return new FakeChunkMoveReply{info, _remoteRootFileInfo, op, request, this};
|
||||
return new FakeChunkMoveReply{ info, _remoteRootFileInfo, op, request, 0, this };
|
||||
else {
|
||||
qDebug() << verb << outgoingData;
|
||||
Q_UNREACHABLE();
|
||||
|
@ -924,6 +955,11 @@ private:
|
|||
} else {
|
||||
QFile f{diskChild.filePath()};
|
||||
f.open(QFile::ReadOnly);
|
||||
auto content = f.read(1);
|
||||
if (content.size() == 0) {
|
||||
qWarning() << "Empty file at:" << diskChild.filePath();
|
||||
continue;
|
||||
}
|
||||
char contentChar = f.read(1).at(0);
|
||||
templateFi.children.insert(diskChild.fileName(), FileInfo{diskChild.fileName(), diskChild.size(), contentChar});
|
||||
}
|
||||
|
|
|
@ -85,6 +85,136 @@ private slots:
|
|||
QCOMPARE(fakeFolder.uploadState().children.first().name, chunkingId);
|
||||
}
|
||||
|
||||
// Check what happens when we abort during the final MOVE and the
|
||||
// the final MOVE takes longer than the abort-delay
|
||||
void testLateAbortHard()
|
||||
{
|
||||
FakeFolder fakeFolder{ FileInfo::A12_B12_C12_S12() };
|
||||
fakeFolder.syncEngine().account()->setCapabilities({ { "dav", QVariantMap{ { "chunking", "1.0" } } }, { "checksums", QVariantMap{ { "supportedTypes", QStringList() << "SHA1" } } } });
|
||||
const int size = 150 * 1000 * 1000;
|
||||
|
||||
// Make the MOVE never reply, but trigger a client-abort and apply the change remotely
|
||||
auto parent = new QObject;
|
||||
QByteArray moveChecksumHeader;
|
||||
int nGET = 0;
|
||||
int responseDelay = 10000; // bigger than abort-wait timeout
|
||||
fakeFolder.setServerOverride([&](QNetworkAccessManager::Operation op, const QNetworkRequest &request) -> QNetworkReply * {
|
||||
if (request.attribute(QNetworkRequest::CustomVerbAttribute) == "MOVE") {
|
||||
QTimer::singleShot(50, parent, [&]() { fakeFolder.syncEngine().abort(); });
|
||||
moveChecksumHeader = request.rawHeader("OC-Checksum");
|
||||
return new FakeChunkMoveReply(fakeFolder.uploadState(), fakeFolder.remoteModifier(), op, request, responseDelay, parent);
|
||||
} else if (op == QNetworkAccessManager::GetOperation) {
|
||||
nGET++;
|
||||
}
|
||||
return nullptr;
|
||||
});
|
||||
|
||||
|
||||
// Test 1: NEW file aborted
|
||||
fakeFolder.localModifier().insert("A/a0", size);
|
||||
QVERIFY(!fakeFolder.syncOnce()); // error: abort!
|
||||
|
||||
// Now the next sync gets a NEW/NEW conflict and since there's no checksum
|
||||
// it just becomes a UPDATE_METADATA
|
||||
auto checkEtagUpdated = [&](SyncFileItemVector &items) {
|
||||
QCOMPARE(items.size(), 1);
|
||||
QCOMPARE(items[0]->_file, QLatin1String("A"));
|
||||
SyncJournalFileRecord record;
|
||||
QVERIFY(fakeFolder.syncJournal().getFileRecord(QByteArray("A/a0"), &record));
|
||||
QCOMPARE(record._etag, fakeFolder.remoteModifier().find("A/a0")->etag.toUtf8());
|
||||
};
|
||||
auto connection = connect(&fakeFolder.syncEngine(), &SyncEngine::aboutToPropagate, checkEtagUpdated);
|
||||
QVERIFY(fakeFolder.syncOnce());
|
||||
disconnect(connection);
|
||||
QCOMPARE(nGET, 0);
|
||||
QCOMPARE(fakeFolder.currentLocalState(), fakeFolder.currentRemoteState());
|
||||
|
||||
|
||||
// Test 2: modified file upload aborted
|
||||
fakeFolder.localModifier().appendByte("A/a0");
|
||||
QVERIFY(!fakeFolder.syncOnce()); // error: abort!
|
||||
|
||||
// An EVAL/EVAL conflict is also UPDATE_METADATA when there's no checksums
|
||||
connection = connect(&fakeFolder.syncEngine(), &SyncEngine::aboutToPropagate, checkEtagUpdated);
|
||||
QVERIFY(fakeFolder.syncOnce());
|
||||
disconnect(connection);
|
||||
QCOMPARE(nGET, 0);
|
||||
QCOMPARE(fakeFolder.currentLocalState(), fakeFolder.currentRemoteState());
|
||||
|
||||
|
||||
// Test 3: modified file upload aborted, with good checksums
|
||||
fakeFolder.localModifier().appendByte("A/a0");
|
||||
QVERIFY(!fakeFolder.syncOnce()); // error: abort!
|
||||
|
||||
// Set the remote checksum -- the test setup doesn't do it automatically
|
||||
QVERIFY(!moveChecksumHeader.isEmpty());
|
||||
fakeFolder.remoteModifier().find("A/a0")->checksums = moveChecksumHeader;
|
||||
|
||||
// This time it's a real conflict, we have a remote checksum!
|
||||
connection = connect(&fakeFolder.syncEngine(), &SyncEngine::aboutToPropagate, [&](SyncFileItemVector &items) {
|
||||
SyncFileItemPtr a0;
|
||||
for (auto &item : items) {
|
||||
if (item->_file == "A/a0")
|
||||
a0 = item;
|
||||
}
|
||||
|
||||
QVERIFY(a0);
|
||||
QCOMPARE(a0->_instruction, CSYNC_INSTRUCTION_CONFLICT);
|
||||
});
|
||||
QVERIFY(fakeFolder.syncOnce());
|
||||
disconnect(connection);
|
||||
QCOMPARE(nGET, 0); // no new download, just a metadata update!
|
||||
QCOMPARE(fakeFolder.currentLocalState(), fakeFolder.currentRemoteState());
|
||||
|
||||
|
||||
// Test 4: New file, that gets deleted locally before the next sync
|
||||
fakeFolder.localModifier().insert("A/a3", size);
|
||||
QVERIFY(!fakeFolder.syncOnce()); // error: abort!
|
||||
fakeFolder.localModifier().remove("A/a3");
|
||||
|
||||
// bug: in this case we must expect a re-download of A/A3
|
||||
QVERIFY(fakeFolder.syncOnce());
|
||||
QCOMPARE(nGET, 1);
|
||||
QVERIFY(fakeFolder.currentLocalState().find("A/a3"));
|
||||
QCOMPARE(fakeFolder.currentLocalState(), fakeFolder.currentRemoteState());
|
||||
}
|
||||
|
||||
// Check what happens when we abort during the final MOVE and the
|
||||
// the final MOVE is short enough for the abort-delay to help
|
||||
void testLateAbortRecoverable()
|
||||
{
|
||||
FakeFolder fakeFolder{ FileInfo::A12_B12_C12_S12() };
|
||||
fakeFolder.syncEngine().account()->setCapabilities({ { "dav", QVariantMap{ { "chunking", "1.0" } } }, { "checksums", QVariantMap{ { "supportedTypes", QStringList() << "SHA1" } } } });
|
||||
const int size = 150 * 1000 * 1000;
|
||||
|
||||
// Make the MOVE never reply, but trigger a client-abort and apply the change remotely
|
||||
auto parent = new QObject;
|
||||
QByteArray moveChecksumHeader;
|
||||
int nGET = 0;
|
||||
int responseDelay = 2000; // smaller than abort-wait timeout
|
||||
fakeFolder.setServerOverride([&](QNetworkAccessManager::Operation op, const QNetworkRequest &request) -> QNetworkReply * {
|
||||
if (request.attribute(QNetworkRequest::CustomVerbAttribute) == "MOVE") {
|
||||
QTimer::singleShot(50, parent, [&]() { fakeFolder.syncEngine().abort(); });
|
||||
moveChecksumHeader = request.rawHeader("OC-Checksum");
|
||||
return new FakeChunkMoveReply(fakeFolder.uploadState(), fakeFolder.remoteModifier(), op, request, responseDelay, parent);
|
||||
} else if (op == QNetworkAccessManager::GetOperation) {
|
||||
nGET++;
|
||||
}
|
||||
return nullptr;
|
||||
});
|
||||
|
||||
|
||||
// Test 1: NEW file aborted
|
||||
fakeFolder.localModifier().insert("A/a0", size);
|
||||
QVERIFY(fakeFolder.syncOnce());
|
||||
QCOMPARE(fakeFolder.currentLocalState(), fakeFolder.currentRemoteState());
|
||||
|
||||
// Test 2: modified file upload aborted
|
||||
fakeFolder.localModifier().appendByte("A/a0");
|
||||
QVERIFY(fakeFolder.syncOnce());
|
||||
QCOMPARE(fakeFolder.currentLocalState(), fakeFolder.currentRemoteState());
|
||||
}
|
||||
|
||||
// We modify the file locally after it has been partially uploaded
|
||||
void testRemoveStale1() {
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@ bool itemDidComplete(const QSignalSpy &spy, const QString &path)
|
|||
for(const QList<QVariant> &args : spy) {
|
||||
auto item = args[0].value<SyncFileItemPtr>();
|
||||
if (item->destination() == path)
|
||||
return true;
|
||||
return item->_instruction != CSYNC_INSTRUCTION_NONE && item->_instruction != CSYNC_INSTRUCTION_UPDATE_METADATA;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
@ -141,98 +141,6 @@ private slots:
|
|||
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("folder/folderB/folderA/file.txt"));
|
||||
QVERIFY(!oldState.find("folder/folderA/file.txt"));
|
||||
|
||||
// This sync should not remove the file
|
||||
fakeFolder.syncOnce();
|
||||
QCOMPARE(fakeFolder.currentLocalState(), fakeFolder.currentRemoteState());
|
||||
QCOMPARE(fakeFolder.currentLocalState(), oldState);
|
||||
|
||||
}
|
||||
|
||||
void testSelectiveSyncModevFolder() {
|
||||
// issue #5224
|
||||
FakeFolder fakeFolder{FileInfo{ QString(), {
|
||||
FileInfo { QStringLiteral("parentFolder"), {
|
||||
FileInfo{ QStringLiteral("subFolderA"), { { QStringLiteral("fileA.txt"), 400 } } },
|
||||
FileInfo{ QStringLiteral("subFolderB"), { { QStringLiteral("fileB.txt"), 400 } } }
|
||||
}
|
||||
}}}};
|
||||
|
||||
QCOMPARE(fakeFolder.currentLocalState(), fakeFolder.currentRemoteState());
|
||||
auto expectedServerState = fakeFolder.currentRemoteState();
|
||||
|
||||
// Remove subFolderA with selectiveSync:
|
||||
fakeFolder.syncEngine().journal()->setSelectiveSyncList(SyncJournalDb::SelectiveSyncBlackList,
|
||||
{"parentFolder/subFolderA/"});
|
||||
fakeFolder.syncEngine().journal()->avoidReadFromDbOnNextSync(QByteArrayLiteral("parentFolder/subFolderA/"));
|
||||
|
||||
fakeFolder.syncOnce();
|
||||
|
||||
{
|
||||
// Nothing changed on the server
|
||||
QCOMPARE(fakeFolder.currentRemoteState(), expectedServerState);
|
||||
// The local state should not have subFolderA
|
||||
auto remoteState = fakeFolder.currentRemoteState();
|
||||
remoteState.remove("parentFolder/subFolderA");
|
||||
QCOMPARE(fakeFolder.currentLocalState(), remoteState);
|
||||
}
|
||||
|
||||
// Rename parentFolder on the server
|
||||
fakeFolder.remoteModifier().rename("parentFolder", "parentFolderRenamed");
|
||||
expectedServerState = fakeFolder.currentRemoteState();
|
||||
fakeFolder.syncOnce();
|
||||
|
||||
{
|
||||
QCOMPARE(fakeFolder.currentRemoteState(), expectedServerState);
|
||||
auto remoteState = fakeFolder.currentRemoteState();
|
||||
// The subFolderA should still be there on the server.
|
||||
QVERIFY(remoteState.find("parentFolderRenamed/subFolderA/fileA.txt"));
|
||||
// But not on the client because of the selective sync
|
||||
remoteState.remove("parentFolderRenamed/subFolderA");
|
||||
QCOMPARE(fakeFolder.currentLocalState(), remoteState);
|
||||
}
|
||||
|
||||
// Rename it again, locally this time.
|
||||
fakeFolder.localModifier().rename("parentFolderRenamed", "parentThirdName");
|
||||
fakeFolder.syncOnce();
|
||||
|
||||
{
|
||||
auto remoteState = fakeFolder.currentRemoteState();
|
||||
// The subFolderA should still be there on the server.
|
||||
QVERIFY(remoteState.find("parentThirdName/subFolderA/fileA.txt"));
|
||||
// But not on the client because of the selective sync
|
||||
remoteState.remove("parentThirdName/subFolderA");
|
||||
QCOMPARE(fakeFolder.currentLocalState(), remoteState);
|
||||
|
||||
expectedServerState = fakeFolder.currentRemoteState();
|
||||
QSignalSpy completeSpy(&fakeFolder.syncEngine(), SIGNAL(itemCompleted(const SyncFileItemPtr &)));
|
||||
fakeFolder.syncOnce(); // This sync should do nothing
|
||||
QCOMPARE(completeSpy.count(), 0);
|
||||
|
||||
QCOMPARE(fakeFolder.currentRemoteState(), expectedServerState);
|
||||
QCOMPARE(fakeFolder.currentLocalState(), remoteState);
|
||||
}
|
||||
}
|
||||
|
||||
void testSelectiveSyncBug() {
|
||||
// issue owncloud/enterprise#1965: files from selective-sync ignored
|
||||
// folders are uploaded anyway is some circumstances.
|
||||
|
@ -536,82 +444,122 @@ private slots:
|
|||
QCOMPARE(n507, 3);
|
||||
}
|
||||
|
||||
void testLocalMove()
|
||||
// Checks whether downloads with bad checksums are accepted
|
||||
void testChecksumValidation()
|
||||
{
|
||||
FakeFolder fakeFolder{ FileInfo::A12_B12_C12_S12() };
|
||||
QObject parent;
|
||||
|
||||
int nPUT = 0;
|
||||
int nDELETE = 0;
|
||||
fakeFolder.setServerOverride([&](QNetworkAccessManager::Operation op, const QNetworkRequest &) {
|
||||
if (op == QNetworkAccessManager::PutOperation)
|
||||
++nPUT;
|
||||
if (op == QNetworkAccessManager::DeleteOperation)
|
||||
++nDELETE;
|
||||
QByteArray checksumValue;
|
||||
QByteArray contentMd5Value;
|
||||
|
||||
fakeFolder.setServerOverride([&](QNetworkAccessManager::Operation op, const QNetworkRequest &request) -> QNetworkReply * {
|
||||
if (op == QNetworkAccessManager::GetOperation) {
|
||||
auto reply = new FakeGetReply(fakeFolder.remoteModifier(), op, request, &parent);
|
||||
if (!checksumValue.isNull())
|
||||
reply->setRawHeader("OC-Checksum", checksumValue);
|
||||
if (!contentMd5Value.isNull())
|
||||
reply->setRawHeader("Content-MD5", contentMd5Value);
|
||||
return reply;
|
||||
}
|
||||
return nullptr;
|
||||
});
|
||||
|
||||
// For directly editing the remote checksum
|
||||
FileInfo &remoteInfo = fakeFolder.remoteModifier();
|
||||
|
||||
// Simple move causing a remote rename
|
||||
fakeFolder.localModifier().rename("A/a1", "A/a1m");
|
||||
// Basic case
|
||||
fakeFolder.remoteModifier().create("A/a3", 16, 'A');
|
||||
QVERIFY(fakeFolder.syncOnce());
|
||||
QCOMPARE(fakeFolder.currentLocalState(), remoteInfo);
|
||||
QCOMPARE(nPUT, 0);
|
||||
QCOMPARE(fakeFolder.currentLocalState(), fakeFolder.currentRemoteState());
|
||||
|
||||
// Move-and-change, causing a upload and delete
|
||||
fakeFolder.localModifier().rename("A/a2", "A/a2m");
|
||||
fakeFolder.localModifier().appendByte("A/a2m");
|
||||
QVERIFY(fakeFolder.syncOnce());
|
||||
QCOMPARE(fakeFolder.currentLocalState(), remoteInfo);
|
||||
QCOMPARE(nPUT, 1);
|
||||
QCOMPARE(nDELETE, 1);
|
||||
// Bad OC-Checksum
|
||||
checksumValue = "SHA1:bad";
|
||||
fakeFolder.remoteModifier().create("A/a4", 16, 'A');
|
||||
QVERIFY(!fakeFolder.syncOnce());
|
||||
|
||||
// Move-and-change, mtime+content only
|
||||
fakeFolder.localModifier().rename("B/b1", "B/b1m");
|
||||
fakeFolder.localModifier().setContents("B/b1m", 'C');
|
||||
// Good OC-Checksum
|
||||
checksumValue = "SHA1:19b1928d58a2030d08023f3d7054516dbc186f20"; // printf 'A%.0s' {1..16} | sha1sum -
|
||||
QVERIFY(fakeFolder.syncOnce());
|
||||
QCOMPARE(fakeFolder.currentLocalState(), remoteInfo);
|
||||
QCOMPARE(nPUT, 2);
|
||||
QCOMPARE(nDELETE, 2);
|
||||
QCOMPARE(fakeFolder.currentLocalState(), fakeFolder.currentRemoteState());
|
||||
checksumValue = QByteArray();
|
||||
|
||||
// Move-and-change, size+content only
|
||||
auto mtime = fakeFolder.remoteModifier().find("B/b2")->lastModified;
|
||||
fakeFolder.localModifier().rename("B/b2", "B/b2m");
|
||||
fakeFolder.localModifier().appendByte("B/b2m");
|
||||
fakeFolder.localModifier().setModTime("B/b2m", mtime);
|
||||
QVERIFY(fakeFolder.syncOnce());
|
||||
QCOMPARE(fakeFolder.currentLocalState(), remoteInfo);
|
||||
QCOMPARE(nPUT, 3);
|
||||
QCOMPARE(nDELETE, 3);
|
||||
// Bad Content-MD5
|
||||
contentMd5Value = "bad";
|
||||
fakeFolder.remoteModifier().create("A/a5", 16, 'A');
|
||||
QVERIFY(!fakeFolder.syncOnce());
|
||||
|
||||
// Move-and-change, content only -- c1 has no checksum, so we fail to detect this!
|
||||
mtime = fakeFolder.remoteModifier().find("C/c1")->lastModified;
|
||||
fakeFolder.localModifier().rename("C/c1", "C/c1m");
|
||||
fakeFolder.localModifier().setContents("C/c1m", 'C');
|
||||
fakeFolder.localModifier().setModTime("C/c1m", mtime);
|
||||
// Good Content-MD5
|
||||
contentMd5Value = "d8a73157ce10cd94a91c2079fc9a92c8"; // printf 'A%.0s' {1..16} | md5sum -
|
||||
QVERIFY(fakeFolder.syncOnce());
|
||||
QCOMPARE(nPUT, 3);
|
||||
QCOMPARE(nDELETE, 3);
|
||||
QVERIFY(!(fakeFolder.currentLocalState() == remoteInfo));
|
||||
QCOMPARE(fakeFolder.currentLocalState(), fakeFolder.currentRemoteState());
|
||||
|
||||
// cleanup, and upload a file that will have a checksum in the db
|
||||
fakeFolder.localModifier().remove("C/c1m");
|
||||
fakeFolder.localModifier().insert("C/c3");
|
||||
QVERIFY(fakeFolder.syncOnce());
|
||||
QCOMPARE(fakeFolder.currentLocalState(), remoteInfo);
|
||||
QCOMPARE(nPUT, 4);
|
||||
QCOMPARE(nDELETE, 4);
|
||||
// OC-Checksum has preference
|
||||
checksumValue = "garbage";
|
||||
// contentMd5Value is still good
|
||||
fakeFolder.remoteModifier().create("A/a6", 16, 'A');
|
||||
QVERIFY(!fakeFolder.syncOnce());
|
||||
}
|
||||
|
||||
// Move-and-change, content only, this time while having a checksum
|
||||
mtime = fakeFolder.remoteModifier().find("C/c3")->lastModified;
|
||||
fakeFolder.localModifier().rename("C/c3", "C/c3m");
|
||||
fakeFolder.localModifier().setContents("C/c3m", 'C');
|
||||
fakeFolder.localModifier().setModTime("C/c3m", mtime);
|
||||
// Tests the behavior of invalid filename detection
|
||||
void testInvalidFilenameRegex()
|
||||
{
|
||||
FakeFolder fakeFolder{ FileInfo::A12_B12_C12_S12() };
|
||||
|
||||
// For current servers, no characters are forbidden
|
||||
fakeFolder.syncEngine().account()->setServerVersion("10.0.0");
|
||||
fakeFolder.localModifier().insert("A/\\:?*\"<>|.txt");
|
||||
QVERIFY(fakeFolder.syncOnce());
|
||||
QCOMPARE(nPUT, 5);
|
||||
QCOMPARE(nDELETE, 5);
|
||||
QCOMPARE(fakeFolder.currentLocalState(), remoteInfo);
|
||||
QCOMPARE(fakeFolder.currentLocalState(), fakeFolder.currentRemoteState());
|
||||
|
||||
// For legacy servers, some characters were forbidden by the client
|
||||
fakeFolder.syncEngine().account()->setServerVersion("8.0.0");
|
||||
fakeFolder.localModifier().insert("B/\\:?*\"<>|.txt");
|
||||
QVERIFY(fakeFolder.syncOnce());
|
||||
QVERIFY(!fakeFolder.currentRemoteState().find("B/\\:?*\"<>|.txt"));
|
||||
|
||||
// We can override that by setting the capability
|
||||
fakeFolder.syncEngine().account()->setCapabilities({ { "dav", QVariantMap{ { "invalidFilenameRegex", "" } } } });
|
||||
QVERIFY(fakeFolder.syncOnce());
|
||||
QCOMPARE(fakeFolder.currentLocalState(), fakeFolder.currentRemoteState());
|
||||
|
||||
// Check that new servers also accept the capability
|
||||
fakeFolder.syncEngine().account()->setServerVersion("10.0.0");
|
||||
fakeFolder.syncEngine().account()->setCapabilities({ { "dav", QVariantMap{ { "invalidFilenameRegex", "my[fgh]ile" } } } });
|
||||
fakeFolder.localModifier().insert("C/myfile.txt");
|
||||
QVERIFY(fakeFolder.syncOnce());
|
||||
QVERIFY(!fakeFolder.currentRemoteState().find("C/myfile.txt"));
|
||||
}
|
||||
|
||||
// Check correct behavior when local discovery is partially drawn from the db
|
||||
void testLocalDiscoveryStyle()
|
||||
{
|
||||
FakeFolder fakeFolder{ FileInfo::A12_B12_C12_S12() };
|
||||
|
||||
// More subdirectories are useful for testing
|
||||
fakeFolder.localModifier().mkdir("A/X");
|
||||
fakeFolder.localModifier().mkdir("A/Y");
|
||||
fakeFolder.localModifier().insert("A/X/x1");
|
||||
fakeFolder.localModifier().insert("A/Y/y1");
|
||||
QVERIFY(fakeFolder.syncOnce());
|
||||
QCOMPARE(fakeFolder.currentLocalState(), fakeFolder.currentRemoteState());
|
||||
|
||||
// Test begins
|
||||
fakeFolder.localModifier().insert("A/a3");
|
||||
fakeFolder.localModifier().insert("A/X/x2");
|
||||
fakeFolder.localModifier().insert("A/Y/y2");
|
||||
fakeFolder.localModifier().insert("B/b3");
|
||||
fakeFolder.remoteModifier().insert("C/c3");
|
||||
|
||||
fakeFolder.syncEngine().setLocalDiscoveryOptions(LocalDiscoveryStyle::DatabaseAndFilesystem, { "A/X" });
|
||||
QVERIFY(fakeFolder.syncOnce());
|
||||
QVERIFY(fakeFolder.currentRemoteState().find("A/a3"));
|
||||
QVERIFY(fakeFolder.currentRemoteState().find("A/X/x2"));
|
||||
QVERIFY(!fakeFolder.currentRemoteState().find("A/Y/y2"));
|
||||
QVERIFY(!fakeFolder.currentRemoteState().find("B/b3"));
|
||||
QVERIFY(fakeFolder.currentLocalState().find("C/c3"));
|
||||
QCOMPARE(fakeFolder.syncEngine().lastLocalDiscoveryStyle(), LocalDiscoveryStyle::DatabaseAndFilesystem);
|
||||
|
||||
QVERIFY(fakeFolder.syncOnce());
|
||||
QCOMPARE(fakeFolder.currentLocalState(), fakeFolder.currentRemoteState());
|
||||
QCOMPARE(fakeFolder.syncEngine().lastLocalDiscoveryStyle(), LocalDiscoveryStyle::FilesystemOnly);
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -436,6 +436,8 @@ private slots:
|
|||
fakeFolder.remoteModifier().appendByte("S/s1");
|
||||
fakeFolder.remoteModifier().insert("B/b3");
|
||||
fakeFolder.remoteModifier().find("B/b3")->extraDavProperties = "<oc:share-types><oc:share-type>0</oc:share-type></oc:share-types>";
|
||||
fakeFolder.remoteModifier().find("A/a1")->isShared = true; // becomes shared
|
||||
fakeFolder.remoteModifier().find("A", true); // change the etags of the parent
|
||||
|
||||
StatusPushSpy statusSpy(fakeFolder.syncEngine());
|
||||
|
||||
|
@ -458,6 +460,7 @@ private slots:
|
|||
QCOMPARE(statusSpy.statusOf("S/s1"), sharedUpToDateStatus);
|
||||
QCOMPARE(statusSpy.statusOf("B/b1").shared(), false);
|
||||
QCOMPARE(statusSpy.statusOf("B/b3"), sharedUpToDateStatus);
|
||||
QCOMPARE(statusSpy.statusOf("A/a1"), sharedUpToDateStatus);
|
||||
|
||||
QCOMPARE(fakeFolder.currentLocalState(), fakeFolder.currentRemoteState());
|
||||
}
|
||||
|
|
|
@ -0,0 +1,569 @@
|
|||
/*
|
||||
* This software is in the public domain, furnished "as is", without technical
|
||||
* support, and with no warranty, express or implied, as to its usefulness for
|
||||
* any purpose.
|
||||
*
|
||||
*/
|
||||
|
||||
#include <QtTest>
|
||||
#include "syncenginetestutils.h"
|
||||
#include <syncengine.h>
|
||||
|
||||
using namespace OCC;
|
||||
|
||||
SyncFileItemPtr findItem(const QSignalSpy &spy, const QString &path)
|
||||
{
|
||||
for (const QList<QVariant> &args : spy) {
|
||||
auto item = args[0].value<SyncFileItemPtr>();
|
||||
if (item->destination() == path)
|
||||
return item;
|
||||
}
|
||||
return SyncFileItemPtr(new SyncFileItem);
|
||||
}
|
||||
|
||||
bool itemSuccessful(const QSignalSpy &spy, const QString &path, const csync_instructions_e instr)
|
||||
{
|
||||
auto item = findItem(spy, path);
|
||||
return item->_status == SyncFileItem::Success && item->_instruction == instr;
|
||||
}
|
||||
|
||||
bool itemConflict(const QSignalSpy &spy, const QString &path)
|
||||
{
|
||||
auto item = findItem(spy, path);
|
||||
return item->_status == SyncFileItem::Conflict && item->_instruction == CSYNC_INSTRUCTION_CONFLICT;
|
||||
}
|
||||
|
||||
bool itemSuccessfulMove(const QSignalSpy &spy, const QString &path)
|
||||
{
|
||||
return itemSuccessful(spy, path, CSYNC_INSTRUCTION_RENAME);
|
||||
}
|
||||
|
||||
QStringList findConflicts(const FileInfo &dir)
|
||||
{
|
||||
QStringList conflicts;
|
||||
for (const auto &item : dir.children) {
|
||||
if (item.name.contains("conflict")) {
|
||||
conflicts.append(item.path());
|
||||
}
|
||||
}
|
||||
return conflicts;
|
||||
}
|
||||
|
||||
bool expectAndWipeConflict(FileModifier &local, FileInfo state, const QString path)
|
||||
{
|
||||
PathComponents pathComponents(path);
|
||||
auto base = state.find(pathComponents.parentDirComponents());
|
||||
if (!base)
|
||||
return false;
|
||||
for (const auto &item : base->children) {
|
||||
if (item.name.startsWith(pathComponents.fileName()) && item.name.contains("_conflict")) {
|
||||
local.remove(item.path());
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
class TestSyncMove : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
private slots:
|
||||
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("folder/folderB/folderA/file.txt"));
|
||||
QVERIFY(!oldState.find("folder/folderA/file.txt"));
|
||||
|
||||
// This sync should not remove the file
|
||||
fakeFolder.syncOnce();
|
||||
QCOMPARE(fakeFolder.currentLocalState(), fakeFolder.currentRemoteState());
|
||||
QCOMPARE(fakeFolder.currentLocalState(), oldState);
|
||||
}
|
||||
|
||||
void testSelectiveSyncMovedFolder()
|
||||
{
|
||||
// issue #5224
|
||||
FakeFolder fakeFolder{ FileInfo{ QString(), { FileInfo{ QStringLiteral("parentFolder"), { FileInfo{ QStringLiteral("subFolderA"), { { QStringLiteral("fileA.txt"), 400 } } }, FileInfo{ QStringLiteral("subFolderB"), { { QStringLiteral("fileB.txt"), 400 } } } } } } } };
|
||||
|
||||
QCOMPARE(fakeFolder.currentLocalState(), fakeFolder.currentRemoteState());
|
||||
auto expectedServerState = fakeFolder.currentRemoteState();
|
||||
|
||||
// Remove subFolderA with selectiveSync:
|
||||
fakeFolder.syncEngine().journal()->setSelectiveSyncList(SyncJournalDb::SelectiveSyncBlackList,
|
||||
{ "parentFolder/subFolderA/" });
|
||||
fakeFolder.syncEngine().journal()->avoidReadFromDbOnNextSync(QByteArrayLiteral("parentFolder/subFolderA/"));
|
||||
|
||||
fakeFolder.syncOnce();
|
||||
|
||||
{
|
||||
// Nothing changed on the server
|
||||
QCOMPARE(fakeFolder.currentRemoteState(), expectedServerState);
|
||||
// The local state should not have subFolderA
|
||||
auto remoteState = fakeFolder.currentRemoteState();
|
||||
remoteState.remove("parentFolder/subFolderA");
|
||||
QCOMPARE(fakeFolder.currentLocalState(), remoteState);
|
||||
}
|
||||
|
||||
// Rename parentFolder on the server
|
||||
fakeFolder.remoteModifier().rename("parentFolder", "parentFolderRenamed");
|
||||
expectedServerState = fakeFolder.currentRemoteState();
|
||||
fakeFolder.syncOnce();
|
||||
|
||||
{
|
||||
QCOMPARE(fakeFolder.currentRemoteState(), expectedServerState);
|
||||
auto remoteState = fakeFolder.currentRemoteState();
|
||||
// The subFolderA should still be there on the server.
|
||||
QVERIFY(remoteState.find("parentFolderRenamed/subFolderA/fileA.txt"));
|
||||
// But not on the client because of the selective sync
|
||||
remoteState.remove("parentFolderRenamed/subFolderA");
|
||||
QCOMPARE(fakeFolder.currentLocalState(), remoteState);
|
||||
}
|
||||
|
||||
// Rename it again, locally this time.
|
||||
fakeFolder.localModifier().rename("parentFolderRenamed", "parentThirdName");
|
||||
fakeFolder.syncOnce();
|
||||
|
||||
{
|
||||
auto remoteState = fakeFolder.currentRemoteState();
|
||||
// The subFolderA should still be there on the server.
|
||||
QVERIFY(remoteState.find("parentThirdName/subFolderA/fileA.txt"));
|
||||
// But not on the client because of the selective sync
|
||||
remoteState.remove("parentThirdName/subFolderA");
|
||||
QCOMPARE(fakeFolder.currentLocalState(), remoteState);
|
||||
|
||||
expectedServerState = fakeFolder.currentRemoteState();
|
||||
QSignalSpy completeSpy(&fakeFolder.syncEngine(), SIGNAL(itemCompleted(const SyncFileItemPtr &)));
|
||||
fakeFolder.syncOnce(); // This sync should do nothing
|
||||
QCOMPARE(completeSpy.count(), 0);
|
||||
|
||||
QCOMPARE(fakeFolder.currentRemoteState(), expectedServerState);
|
||||
QCOMPARE(fakeFolder.currentLocalState(), remoteState);
|
||||
}
|
||||
}
|
||||
|
||||
void testLocalMoveDetection()
|
||||
{
|
||||
FakeFolder fakeFolder{ FileInfo::A12_B12_C12_S12() };
|
||||
|
||||
int nPUT = 0;
|
||||
int nDELETE = 0;
|
||||
fakeFolder.setServerOverride([&](QNetworkAccessManager::Operation op, const QNetworkRequest &) {
|
||||
if (op == QNetworkAccessManager::PutOperation)
|
||||
++nPUT;
|
||||
if (op == QNetworkAccessManager::DeleteOperation)
|
||||
++nDELETE;
|
||||
return nullptr;
|
||||
});
|
||||
|
||||
// For directly editing the remote checksum
|
||||
FileInfo &remoteInfo = fakeFolder.remoteModifier();
|
||||
|
||||
// Simple move causing a remote rename
|
||||
fakeFolder.localModifier().rename("A/a1", "A/a1m");
|
||||
QVERIFY(fakeFolder.syncOnce());
|
||||
QCOMPARE(fakeFolder.currentLocalState(), remoteInfo);
|
||||
QCOMPARE(nPUT, 0);
|
||||
|
||||
// Move-and-change, causing a upload and delete
|
||||
fakeFolder.localModifier().rename("A/a2", "A/a2m");
|
||||
fakeFolder.localModifier().appendByte("A/a2m");
|
||||
QVERIFY(fakeFolder.syncOnce());
|
||||
QCOMPARE(fakeFolder.currentLocalState(), remoteInfo);
|
||||
QCOMPARE(nPUT, 1);
|
||||
QCOMPARE(nDELETE, 1);
|
||||
|
||||
// Move-and-change, mtime+content only
|
||||
fakeFolder.localModifier().rename("B/b1", "B/b1m");
|
||||
fakeFolder.localModifier().setContents("B/b1m", 'C');
|
||||
QVERIFY(fakeFolder.syncOnce());
|
||||
QCOMPARE(fakeFolder.currentLocalState(), remoteInfo);
|
||||
QCOMPARE(nPUT, 2);
|
||||
QCOMPARE(nDELETE, 2);
|
||||
|
||||
// Move-and-change, size+content only
|
||||
auto mtime = fakeFolder.remoteModifier().find("B/b2")->lastModified;
|
||||
fakeFolder.localModifier().rename("B/b2", "B/b2m");
|
||||
fakeFolder.localModifier().appendByte("B/b2m");
|
||||
fakeFolder.localModifier().setModTime("B/b2m", mtime);
|
||||
QVERIFY(fakeFolder.syncOnce());
|
||||
QCOMPARE(fakeFolder.currentLocalState(), remoteInfo);
|
||||
QCOMPARE(nPUT, 3);
|
||||
QCOMPARE(nDELETE, 3);
|
||||
|
||||
// Move-and-change, content only -- c1 has no checksum, so we fail to detect this!
|
||||
// NOTE: This is an expected failure.
|
||||
mtime = fakeFolder.remoteModifier().find("C/c1")->lastModified;
|
||||
fakeFolder.localModifier().rename("C/c1", "C/c1m");
|
||||
fakeFolder.localModifier().setContents("C/c1m", 'C');
|
||||
fakeFolder.localModifier().setModTime("C/c1m", mtime);
|
||||
QVERIFY(fakeFolder.syncOnce());
|
||||
QCOMPARE(nPUT, 3);
|
||||
QCOMPARE(nDELETE, 3);
|
||||
QVERIFY(!(fakeFolder.currentLocalState() == remoteInfo));
|
||||
|
||||
// cleanup, and upload a file that will have a checksum in the db
|
||||
fakeFolder.localModifier().remove("C/c1m");
|
||||
fakeFolder.localModifier().insert("C/c3");
|
||||
QVERIFY(fakeFolder.syncOnce());
|
||||
QCOMPARE(fakeFolder.currentLocalState(), remoteInfo);
|
||||
QCOMPARE(nPUT, 4);
|
||||
QCOMPARE(nDELETE, 4);
|
||||
|
||||
// Move-and-change, content only, this time while having a checksum
|
||||
mtime = fakeFolder.remoteModifier().find("C/c3")->lastModified;
|
||||
fakeFolder.localModifier().rename("C/c3", "C/c3m");
|
||||
fakeFolder.localModifier().setContents("C/c3m", 'C');
|
||||
fakeFolder.localModifier().setModTime("C/c3m", mtime);
|
||||
QVERIFY(fakeFolder.syncOnce());
|
||||
QCOMPARE(nPUT, 5);
|
||||
QCOMPARE(nDELETE, 5);
|
||||
QCOMPARE(fakeFolder.currentLocalState(), remoteInfo);
|
||||
}
|
||||
|
||||
// If the same folder is shared in two different ways with the same
|
||||
// user, the target user will see duplicate file ids. We need to make
|
||||
// sure the move detection and sync still do the right thing in that
|
||||
// case.
|
||||
void testDuplicateFileId()
|
||||
{
|
||||
FakeFolder fakeFolder{ FileInfo::A12_B12_C12_S12() };
|
||||
auto &remote = fakeFolder.remoteModifier();
|
||||
|
||||
remote.mkdir("A/W");
|
||||
remote.insert("A/W/w1");
|
||||
remote.mkdir("A/Q");
|
||||
|
||||
// Duplicate every entry in A under O/A
|
||||
remote.mkdir("O");
|
||||
remote.children["O"].addChild(remote.children["A"]);
|
||||
|
||||
// This already checks that the rename detection doesn't get
|
||||
// horribly confused if we add new files that have the same
|
||||
// fileid as existing ones
|
||||
QVERIFY(fakeFolder.syncOnce());
|
||||
QCOMPARE(fakeFolder.currentLocalState(), fakeFolder.currentRemoteState());
|
||||
|
||||
int nGET = 0;
|
||||
fakeFolder.setServerOverride([&](QNetworkAccessManager::Operation op, const QNetworkRequest &) {
|
||||
if (op == QNetworkAccessManager::GetOperation)
|
||||
++nGET;
|
||||
return nullptr;
|
||||
});
|
||||
|
||||
// Try a remote file move
|
||||
remote.rename("A/a1", "A/W/a1m");
|
||||
remote.rename("O/A/a1", "O/A/W/a1m");
|
||||
QVERIFY(fakeFolder.syncOnce());
|
||||
QCOMPARE(fakeFolder.currentLocalState(), fakeFolder.currentRemoteState());
|
||||
QCOMPARE(nGET, 0);
|
||||
|
||||
// And a remote directory move
|
||||
remote.rename("A/W", "A/Q/W");
|
||||
remote.rename("O/A/W", "O/A/Q/W");
|
||||
QVERIFY(fakeFolder.syncOnce());
|
||||
QCOMPARE(fakeFolder.currentLocalState(), fakeFolder.currentRemoteState());
|
||||
QCOMPARE(nGET, 0);
|
||||
|
||||
// Partial file removal (in practice, A/a2 may be moved to O/a2, but we don't care)
|
||||
remote.rename("O/A/a2", "O/a2");
|
||||
remote.remove("A/a2");
|
||||
QVERIFY(fakeFolder.syncOnce());
|
||||
QCOMPARE(fakeFolder.currentLocalState(), fakeFolder.currentRemoteState());
|
||||
QCOMPARE(nGET, 0);
|
||||
|
||||
// Local change plus remote move at the same time
|
||||
fakeFolder.localModifier().appendByte("O/a2");
|
||||
remote.rename("O/a2", "O/a3");
|
||||
QVERIFY(fakeFolder.syncOnce());
|
||||
QCOMPARE(fakeFolder.currentLocalState(), fakeFolder.currentRemoteState());
|
||||
QCOMPARE(nGET, 1);
|
||||
}
|
||||
|
||||
void testMovePropagation()
|
||||
{
|
||||
FakeFolder fakeFolder{ FileInfo::A12_B12_C12_S12() };
|
||||
auto &local = fakeFolder.localModifier();
|
||||
auto &remote = fakeFolder.remoteModifier();
|
||||
|
||||
int nGET = 0;
|
||||
int nPUT = 0;
|
||||
int nMOVE = 0;
|
||||
int nDELETE = 0;
|
||||
fakeFolder.setServerOverride([&](QNetworkAccessManager::Operation op, const QNetworkRequest &req) {
|
||||
if (op == QNetworkAccessManager::GetOperation)
|
||||
++nGET;
|
||||
if (op == QNetworkAccessManager::PutOperation)
|
||||
++nPUT;
|
||||
if (op == QNetworkAccessManager::DeleteOperation)
|
||||
++nDELETE;
|
||||
if (req.attribute(QNetworkRequest::CustomVerbAttribute) == "MOVE")
|
||||
++nMOVE;
|
||||
return nullptr;
|
||||
});
|
||||
auto resetCounters = [&]() {
|
||||
nGET = nPUT = nMOVE = nDELETE = 0;
|
||||
};
|
||||
|
||||
// Move
|
||||
{
|
||||
resetCounters();
|
||||
local.rename("A/a1", "A/a1m");
|
||||
remote.rename("B/b1", "B/b1m");
|
||||
QSignalSpy completeSpy(&fakeFolder.syncEngine(), SIGNAL(itemCompleted(const SyncFileItemPtr &)));
|
||||
QVERIFY(fakeFolder.syncOnce());
|
||||
QCOMPARE(fakeFolder.currentLocalState(), fakeFolder.currentRemoteState());
|
||||
QCOMPARE(nGET, 0);
|
||||
QCOMPARE(nPUT, 0);
|
||||
QCOMPARE(nMOVE, 1);
|
||||
QCOMPARE(nDELETE, 0);
|
||||
QVERIFY(itemSuccessfulMove(completeSpy, "A/a1m"));
|
||||
QVERIFY(itemSuccessfulMove(completeSpy, "B/b1m"));
|
||||
}
|
||||
|
||||
// Touch+Move on same side
|
||||
resetCounters();
|
||||
local.rename("A/a2", "A/a2m");
|
||||
local.setContents("A/a2m", 'A');
|
||||
remote.rename("B/b2", "B/b2m");
|
||||
remote.setContents("B/b2m", 'A');
|
||||
QVERIFY(fakeFolder.syncOnce());
|
||||
QCOMPARE(fakeFolder.currentLocalState(), fakeFolder.currentRemoteState());
|
||||
QCOMPARE(nGET, 1);
|
||||
QCOMPARE(nPUT, 1);
|
||||
QCOMPARE(nMOVE, 0);
|
||||
QCOMPARE(nDELETE, 1);
|
||||
QCOMPARE(remote.find("A/a2m")->contentChar, 'A');
|
||||
QCOMPARE(remote.find("B/b2m")->contentChar, 'A');
|
||||
|
||||
// Touch+Move on opposite sides
|
||||
resetCounters();
|
||||
local.rename("A/a1m", "A/a1m2");
|
||||
remote.setContents("A/a1m", 'B');
|
||||
remote.rename("B/b1m", "B/b1m2");
|
||||
local.setContents("B/b1m", 'B');
|
||||
QVERIFY(fakeFolder.syncOnce());
|
||||
QCOMPARE(fakeFolder.currentLocalState(), fakeFolder.currentRemoteState());
|
||||
QCOMPARE(nGET, 2);
|
||||
QCOMPARE(nPUT, 2);
|
||||
QCOMPARE(nMOVE, 0);
|
||||
QCOMPARE(nDELETE, 0);
|
||||
// All these files existing afterwards is debatable. Should we propagate
|
||||
// the rename in one direction and grab the new contents in the other?
|
||||
// Currently there's no propagation job that would do that, and this does
|
||||
// at least not lose data.
|
||||
QCOMPARE(remote.find("A/a1m")->contentChar, 'B');
|
||||
QCOMPARE(remote.find("B/b1m")->contentChar, 'B');
|
||||
QCOMPARE(remote.find("A/a1m2")->contentChar, 'W');
|
||||
QCOMPARE(remote.find("B/b1m2")->contentChar, 'W');
|
||||
|
||||
// Touch+create on one side, move on the other
|
||||
{
|
||||
resetCounters();
|
||||
local.appendByte("A/a1m");
|
||||
local.insert("A/a1mt");
|
||||
remote.rename("A/a1m", "A/a1mt");
|
||||
remote.appendByte("B/b1m");
|
||||
remote.insert("B/b1mt");
|
||||
local.rename("B/b1m", "B/b1mt");
|
||||
QSignalSpy completeSpy(&fakeFolder.syncEngine(), SIGNAL(itemCompleted(const SyncFileItemPtr &)));
|
||||
QVERIFY(fakeFolder.syncOnce());
|
||||
QVERIFY(expectAndWipeConflict(local, fakeFolder.currentLocalState(), "A/a1mt"));
|
||||
QVERIFY(expectAndWipeConflict(local, fakeFolder.currentLocalState(), "B/b1mt"));
|
||||
QCOMPARE(fakeFolder.currentLocalState(), fakeFolder.currentRemoteState());
|
||||
QCOMPARE(nGET, 3);
|
||||
QCOMPARE(nPUT, 1);
|
||||
QCOMPARE(nMOVE, 0);
|
||||
QCOMPARE(nDELETE, 0);
|
||||
QVERIFY(itemSuccessful(completeSpy, "A/a1m", CSYNC_INSTRUCTION_NEW));
|
||||
QVERIFY(itemSuccessful(completeSpy, "B/b1m", CSYNC_INSTRUCTION_NEW));
|
||||
QVERIFY(itemConflict(completeSpy, "A/a1mt"));
|
||||
QVERIFY(itemConflict(completeSpy, "B/b1mt"));
|
||||
}
|
||||
|
||||
// Create new on one side, move to new on the other
|
||||
{
|
||||
resetCounters();
|
||||
local.insert("A/a1N", 13);
|
||||
remote.rename("A/a1mt", "A/a1N");
|
||||
remote.insert("B/b1N", 13);
|
||||
local.rename("B/b1mt", "B/b1N");
|
||||
QSignalSpy completeSpy(&fakeFolder.syncEngine(), SIGNAL(itemCompleted(const SyncFileItemPtr &)));
|
||||
QVERIFY(fakeFolder.syncOnce());
|
||||
QVERIFY(expectAndWipeConflict(local, fakeFolder.currentLocalState(), "A/a1N"));
|
||||
QVERIFY(expectAndWipeConflict(local, fakeFolder.currentLocalState(), "B/b1N"));
|
||||
QCOMPARE(fakeFolder.currentLocalState(), fakeFolder.currentRemoteState());
|
||||
QCOMPARE(nGET, 2);
|
||||
QCOMPARE(nPUT, 0);
|
||||
QCOMPARE(nMOVE, 0);
|
||||
QCOMPARE(nDELETE, 1);
|
||||
QVERIFY(itemSuccessful(completeSpy, "A/a1mt", CSYNC_INSTRUCTION_REMOVE));
|
||||
QVERIFY(itemSuccessful(completeSpy, "B/b1mt", CSYNC_INSTRUCTION_REMOVE));
|
||||
QVERIFY(itemConflict(completeSpy, "A/a1N"));
|
||||
QVERIFY(itemConflict(completeSpy, "B/b1N"));
|
||||
}
|
||||
|
||||
// Local move, remote move
|
||||
resetCounters();
|
||||
local.rename("C/c1", "C/c1mL");
|
||||
remote.rename("C/c1", "C/c1mR");
|
||||
QVERIFY(fakeFolder.syncOnce());
|
||||
// end up with both files
|
||||
QCOMPARE(fakeFolder.currentLocalState(), fakeFolder.currentRemoteState());
|
||||
QCOMPARE(nGET, 1);
|
||||
QCOMPARE(nPUT, 1);
|
||||
QCOMPARE(nMOVE, 0);
|
||||
QCOMPARE(nDELETE, 0);
|
||||
|
||||
// Rename/rename conflict on a folder
|
||||
resetCounters();
|
||||
remote.rename("C", "CMR");
|
||||
local.rename("C", "CML");
|
||||
QVERIFY(fakeFolder.syncOnce());
|
||||
// End up with both folders
|
||||
QCOMPARE(fakeFolder.currentLocalState(), fakeFolder.currentRemoteState());
|
||||
QCOMPARE(nGET, 3); // 3 files in C
|
||||
QCOMPARE(nPUT, 3);
|
||||
QCOMPARE(nMOVE, 0);
|
||||
QCOMPARE(nDELETE, 0);
|
||||
|
||||
// Folder move
|
||||
{
|
||||
resetCounters();
|
||||
local.rename("A", "AM");
|
||||
remote.rename("B", "BM");
|
||||
QSignalSpy completeSpy(&fakeFolder.syncEngine(), SIGNAL(itemCompleted(const SyncFileItemPtr &)));
|
||||
QVERIFY(fakeFolder.syncOnce());
|
||||
QCOMPARE(fakeFolder.currentLocalState(), fakeFolder.currentRemoteState());
|
||||
QCOMPARE(nGET, 0);
|
||||
QCOMPARE(nPUT, 0);
|
||||
QCOMPARE(nMOVE, 1);
|
||||
QCOMPARE(nDELETE, 0);
|
||||
QVERIFY(itemSuccessfulMove(completeSpy, "AM"));
|
||||
QVERIFY(itemSuccessfulMove(completeSpy, "BM"));
|
||||
}
|
||||
|
||||
// Folder move with contents touched on the same side
|
||||
{
|
||||
resetCounters();
|
||||
local.setContents("AM/a2m", 'C');
|
||||
local.rename("AM", "A2");
|
||||
remote.setContents("BM/b2m", 'C');
|
||||
remote.rename("BM", "B2");
|
||||
QSignalSpy completeSpy(&fakeFolder.syncEngine(), SIGNAL(itemCompleted(const SyncFileItemPtr &)));
|
||||
QVERIFY(fakeFolder.syncOnce());
|
||||
QCOMPARE(fakeFolder.currentLocalState(), fakeFolder.currentRemoteState());
|
||||
QCOMPARE(nGET, 1);
|
||||
QCOMPARE(nPUT, 1);
|
||||
QCOMPARE(nMOVE, 1);
|
||||
QCOMPARE(nDELETE, 0);
|
||||
QCOMPARE(remote.find("A2/a2m")->contentChar, 'C');
|
||||
QCOMPARE(remote.find("B2/b2m")->contentChar, 'C');
|
||||
QVERIFY(itemSuccessfulMove(completeSpy, "A2"));
|
||||
QVERIFY(itemSuccessfulMove(completeSpy, "B2"));
|
||||
}
|
||||
|
||||
// Folder rename with contents touched on the other tree
|
||||
resetCounters();
|
||||
remote.setContents("A2/a2m", 'D');
|
||||
// setContents alone may not produce updated mtime if the test is fast
|
||||
// and since we don't use checksums here, that matters.
|
||||
remote.appendByte("A2/a2m");
|
||||
local.rename("A2", "A3");
|
||||
local.setContents("B2/b2m", 'D');
|
||||
local.appendByte("B2/b2m");
|
||||
remote.rename("B2", "B3");
|
||||
QVERIFY(fakeFolder.syncOnce());
|
||||
QCOMPARE(fakeFolder.currentLocalState(), fakeFolder.currentRemoteState());
|
||||
QCOMPARE(nGET, 1);
|
||||
QCOMPARE(nPUT, 1);
|
||||
QCOMPARE(nMOVE, 1);
|
||||
QCOMPARE(nDELETE, 0);
|
||||
QCOMPARE(remote.find("A3/a2m")->contentChar, 'D');
|
||||
QCOMPARE(remote.find("B3/b2m")->contentChar, 'D');
|
||||
|
||||
// Folder rename with contents touched on both ends
|
||||
resetCounters();
|
||||
remote.setContents("A3/a2m", 'R');
|
||||
remote.appendByte("A3/a2m");
|
||||
local.setContents("A3/a2m", 'L');
|
||||
local.appendByte("A3/a2m");
|
||||
local.appendByte("A3/a2m");
|
||||
local.rename("A3", "A4");
|
||||
remote.setContents("B3/b2m", 'R');
|
||||
remote.appendByte("B3/b2m");
|
||||
local.setContents("B3/b2m", 'L');
|
||||
local.appendByte("B3/b2m");
|
||||
local.appendByte("B3/b2m");
|
||||
remote.rename("B3", "B4");
|
||||
QVERIFY(fakeFolder.syncOnce());
|
||||
auto currentLocal = fakeFolder.currentLocalState();
|
||||
auto conflicts = findConflicts(currentLocal.children["A4"]);
|
||||
QCOMPARE(conflicts.size(), 1);
|
||||
for (auto c : conflicts) {
|
||||
QCOMPARE(currentLocal.find(c)->contentChar, 'L');
|
||||
local.remove(c);
|
||||
}
|
||||
conflicts = findConflicts(currentLocal.children["B4"]);
|
||||
QCOMPARE(conflicts.size(), 1);
|
||||
for (auto c : conflicts) {
|
||||
QCOMPARE(currentLocal.find(c)->contentChar, 'L');
|
||||
local.remove(c);
|
||||
}
|
||||
QCOMPARE(fakeFolder.currentLocalState(), fakeFolder.currentRemoteState());
|
||||
QCOMPARE(nGET, 2);
|
||||
QCOMPARE(nPUT, 0);
|
||||
QCOMPARE(nMOVE, 1);
|
||||
QCOMPARE(nDELETE, 0);
|
||||
QCOMPARE(remote.find("A4/a2m")->contentChar, 'R');
|
||||
QCOMPARE(remote.find("B4/b2m")->contentChar, 'R');
|
||||
|
||||
// Rename a folder and rename the contents at the same time
|
||||
resetCounters();
|
||||
local.rename("A4/a2m", "A4/a2m2");
|
||||
local.rename("A4", "A5");
|
||||
remote.rename("B4/b2m", "B4/b2m2");
|
||||
remote.rename("B4", "B5");
|
||||
QVERIFY(fakeFolder.syncOnce());
|
||||
QCOMPARE(fakeFolder.currentLocalState(), fakeFolder.currentRemoteState());
|
||||
QCOMPARE(nGET, 0);
|
||||
QCOMPARE(nPUT, 0);
|
||||
QCOMPARE(nMOVE, 2);
|
||||
QCOMPARE(nDELETE, 0);
|
||||
}
|
||||
|
||||
// Check interaction of moves with file type changes
|
||||
void testMoveAndTypeChange()
|
||||
{
|
||||
FakeFolder fakeFolder{ FileInfo::A12_B12_C12_S12() };
|
||||
auto &local = fakeFolder.localModifier();
|
||||
auto &remote = fakeFolder.remoteModifier();
|
||||
|
||||
// Touch on one side, rename and mkdir on the other
|
||||
{
|
||||
local.appendByte("A/a1");
|
||||
remote.rename("A/a1", "A/a1mq");
|
||||
remote.mkdir("A/a1");
|
||||
remote.appendByte("B/b1");
|
||||
local.rename("B/b1", "B/b1mq");
|
||||
local.mkdir("B/b1");
|
||||
QSignalSpy completeSpy(&fakeFolder.syncEngine(), SIGNAL(itemCompleted(const SyncFileItemPtr &)));
|
||||
QVERIFY(fakeFolder.syncOnce());
|
||||
// BUG: This doesn't behave right
|
||||
//QCOMPARE(fakeFolder.currentLocalState(), fakeFolder.currentRemoteState());
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
QTEST_GUILESS_MAIN(TestSyncMove)
|
||||
#include "testsyncmove.moc"
|
|
@ -596,7 +596,7 @@
|
|||
<context>
|
||||
<name>OCC::CleanupPollsJob</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="990"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="1001"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Error en escriure les metadades a la base de dades</translation>
|
||||
</message>
|
||||
|
@ -746,26 +746,26 @@ Consulteu el registre per obtenir més informació.</numerusform></translation>
|
|||
<translation>No s'ha pogut llegir el fitxer d'exclusió del sistema</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="883"/>
|
||||
<location filename="../src/gui/folder.cpp" line="888"/>
|
||||
<source>A new folder larger than %1 MB has been added: %2.
|
||||
</source>
|
||||
<translation>S'ha afegit una carpeta de més de %1 MB: %2.
|
||||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="886"/>
|
||||
<location filename="../src/gui/folder.cpp" line="891"/>
|
||||
<source>A folder from an external storage has been added.
|
||||
</source>
|
||||
<translation>S'ha afegit una carpeta d'una font d'emmagatzematge extern.
|
||||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="887"/>
|
||||
<location filename="../src/gui/folder.cpp" line="892"/>
|
||||
<source>Please go in the settings to select it if you wish to download it.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="922"/>
|
||||
<location filename="../src/gui/folder.cpp" line="927"/>
|
||||
<source>All files in the sync folder '%1' folder were deleted on the server.
|
||||
These deletes will be synchronized to your local sync folder, making such files unavailable unless you have a right to restore.
|
||||
If you decide to keep the files, they will be re-synced with the server if you have rights to do so.
|
||||
|
@ -773,46 +773,46 @@ If you decide to delete the files, they will be unavailable to you, unless you a
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="927"/>
|
||||
<location filename="../src/gui/folder.cpp" line="932"/>
|
||||
<source>All the files in your local sync folder '%1' were deleted. These deletes will be synchronized with your server, making such files unavailable unless restored.
|
||||
Are you sure you want to sync those actions with the server?
|
||||
If this was an accident and you decide to keep your files, they will be re-synced from the server.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="931"/>
|
||||
<location filename="../src/gui/folder.cpp" line="936"/>
|
||||
<source>Remove All Files?</source>
|
||||
<translation>Esborra tots els fitxers?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="934"/>
|
||||
<location filename="../src/gui/folder.cpp" line="939"/>
|
||||
<source>Remove all files</source>
|
||||
<translation>Esborra tots els fitxers</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="935"/>
|
||||
<location filename="../src/gui/folder.cpp" line="940"/>
|
||||
<source>Keep files</source>
|
||||
<translation>Mantén els fitxers</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="952"/>
|
||||
<location filename="../src/gui/folder.cpp" line="957"/>
|
||||
<source>This sync would reset the files to an earlier time in the sync folder '%1'.
|
||||
This might be because a backup was restored on the server.
|
||||
Continuing the sync as normal will cause all your files to be overwritten by an older file in an earlier state. Do you want to keep your local most recent files as conflict files?</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="957"/>
|
||||
<location filename="../src/gui/folder.cpp" line="962"/>
|
||||
<source>Backup detected</source>
|
||||
<translation>Copia de seguretat detectada</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="960"/>
|
||||
<location filename="../src/gui/folder.cpp" line="965"/>
|
||||
<source>Normal Synchronisation</source>
|
||||
<translation>Sincronització normal</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="961"/>
|
||||
<location filename="../src/gui/folder.cpp" line="966"/>
|
||||
<source>Keep Local Files as Conflict</source>
|
||||
<translation>Manté els fitxers locals com a conflicte</translation>
|
||||
</message>
|
||||
|
@ -1286,22 +1286,22 @@ Continuing the sync as normal will cause all your files to be overwritten by an
|
|||
<context>
|
||||
<name>OCC::HttpCredentialsGui</name>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="97"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="98"/>
|
||||
<source>Please enter %1 password:<br><br>User: %2<br>Account: %3<br></source>
|
||||
<translation>Introduïu la contrassenya de %1:<br><br>Usuari: %2<br>Compte: %3<br></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="111"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="112"/>
|
||||
<source>Reading from keychain failed with error: '%1'</source>
|
||||
<translation>La lectura de la cadena de claus ha fallat amb l'error: '%1'</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="117"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="118"/>
|
||||
<source>Enter Password</source>
|
||||
<translation>Escriviu contrasenya</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="154"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="155"/>
|
||||
<source><a href="%1">Click here</a> to request an app password from the web interface.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
|
@ -1423,12 +1423,12 @@ Els elements que poden ser eliminats s'eliminaran si impedeixen que una car
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/issueswidget.ui" line="145"/>
|
||||
<location filename="../src/gui/issueswidget.ui" line="148"/>
|
||||
<source>Copy the issues list to the clipboard.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/issueswidget.ui" line="148"/>
|
||||
<location filename="../src/gui/issueswidget.ui" line="151"/>
|
||||
<source>Copy</source>
|
||||
<translation>Copiar</translation>
|
||||
</message>
|
||||
|
@ -1914,144 +1914,144 @@ No és aconsellada usar-la.</translation>
|
|||
<context>
|
||||
<name>OCC::OwncloudSetupWizard</name>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="217"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="250"/>
|
||||
<source><font color="green">Successfully connected to %1: %2 version %3 (%4)</font><br/><br/></source>
|
||||
<translation><font color="green">S'ha connectat correctament amb %1: %2 versió %3 (%4)</font><br/><br/></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="251"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="280"/>
|
||||
<source>Failed to connect to %1 at %2:<br/>%3</source>
|
||||
<translation>Ha fallat la connexió amb %1 a %2:<br/>%3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="285"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="314"/>
|
||||
<source>Timeout while trying to connect to %1 at %2.</source>
|
||||
<translation>S'ha esgotat el temps d'espera mentres es conectava a %1 a les %2.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="296"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="334"/>
|
||||
<source>Trying to connect to %1 at %2...</source>
|
||||
<translation>Intentant connectar amb %1 a %2...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="347"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="385"/>
|
||||
<source>The authenticated request to the server was redirected to '%1'. The URL is bad, the server is misconfigured.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="369"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="407"/>
|
||||
<source>There was an invalid response to an authenticated webdav request</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="360"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="398"/>
|
||||
<source>Access forbidden by server. To verify that you have proper access, <a href="%1">click here</a> to access the service with your browser.</source>
|
||||
<translation>El servidor ha prohibit l'accés. Per verificar que teniu permisos, <a href="%1">cliqueu aquí</a> per accedir al servei amb el vostre navegador.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="249"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="278"/>
|
||||
<source>Invalid URL</source>
|
||||
<translation>URL incorrecte</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="414"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="452"/>
|
||||
<source>Local sync folder %1 already exists, setting it up for sync.<br/><br/></source>
|
||||
<translation>La carpeta local %1 ja existeix, s'està configurant per sincronitzar.<br/><br/></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="417"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="455"/>
|
||||
<source>Creating local sync folder %1...</source>
|
||||
<translation>S'està creant la carpeta de sincronització local %1...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="421"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="459"/>
|
||||
<source>ok</source>
|
||||
<translation>correcte</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="423"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="461"/>
|
||||
<source>failed.</source>
|
||||
<translation>ha fallat.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="425"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="463"/>
|
||||
<source>Could not create local folder %1</source>
|
||||
<translation>No s'ha pogut crear la carpeta local %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="451"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="489"/>
|
||||
<source>No remote folder specified!</source>
|
||||
<translation>No heu especificat cap carpeta remota!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="457"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="495"/>
|
||||
<source>Error: %1</source>
|
||||
<translation>Error: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="470"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="508"/>
|
||||
<source>creating folder on ownCloud: %1</source>
|
||||
<translation>creant la carpeta a ownCloud: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="486"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="524"/>
|
||||
<source>Remote folder %1 created successfully.</source>
|
||||
<translation>La carpeta remota %1 s'ha creat correctament.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="488"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="526"/>
|
||||
<source>The remote folder %1 already exists. Connecting it for syncing.</source>
|
||||
<translation>La carpeta remota %1 ja existeix. S'hi està connectant per sincronitzar-les.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="490"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="492"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="528"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="530"/>
|
||||
<source>The folder creation resulted in HTTP error code %1</source>
|
||||
<translation>La creació de la carpeta ha resultat en el codi d'error HTTP %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="494"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="532"/>
|
||||
<source>The remote folder creation failed because the provided credentials are wrong!<br/>Please go back and check your credentials.</p></source>
|
||||
<translation>Ha fallat la creació de la carpeta perquè les credencials proporcionades són incorrectes!<br/>Aneu enrera i comproveu les credencials.</p></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="498"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="536"/>
|
||||
<source><p><font color="red">Remote folder creation failed probably because the provided credentials are wrong.</font><br/>Please go back and check your credentials.</p></source>
|
||||
<translation><p><font color="red">La creació de la carpeta remota ha fallat, probablement perquè les credencials facilitades són incorrectes.</font><br/>Comproveu les vostres credencials.</p></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="503"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="504"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="541"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="542"/>
|
||||
<source>Remote folder %1 creation failed with error <tt>%2</tt>.</source>
|
||||
<translation>La creació de la carpeta remota %1 ha fallat amb l'error <tt>%2</tt>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="521"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="559"/>
|
||||
<source>A sync connection from %1 to remote directory %2 was set up.</source>
|
||||
<translation>S'ha establert una connexió de sincronització des de %1 a la carpeta remota %2.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="526"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="564"/>
|
||||
<source>Successfully connected to %1!</source>
|
||||
<translation>Connectat amb èxit a %1!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="533"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="571"/>
|
||||
<source>Connection to %1 could not be established. Please check again.</source>
|
||||
<translation>No s'ha pogut establir la connexió amb %1. Comproveu-ho de nou.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="547"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="585"/>
|
||||
<source>Folder rename failed</source>
|
||||
<translation>Ha fallat en canviar el nom de la carpeta</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="548"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="586"/>
|
||||
<source>Can't remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup.</source>
|
||||
<translation>No es pot esborrar i restaurar la carpeta perquè una carpeta o un fitxer de dins està obert en un altre programa. Tanqueu la carpeta o el fitxer i intenteu-ho de nou o cancel·leu la configuració.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="593"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="631"/>
|
||||
<source><font color="green"><b>Local sync folder %1 successfully created!</b></font></source>
|
||||
<translation><font color="green"><b>la carpeta de sincronització %1 s'ha creat correctament!</b></font></translation>
|
||||
</message>
|
||||
|
@ -2098,7 +2098,7 @@ No és aconsellada usar-la.</translation>
|
|||
<context>
|
||||
<name>OCC::PropagateDirectory</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="942"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="953"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Error en escriure les metadades a la base de dades</translation>
|
||||
</message>
|
||||
|
@ -2136,17 +2136,17 @@ No és aconsellada usar-la.</translation>
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="772"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="775"/>
|
||||
<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="820"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="823"/>
|
||||
<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="871"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="874"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Error en escriure les metadades a la base de dades</translation>
|
||||
</message>
|
||||
|
@ -2222,12 +2222,12 @@ No és aconsellada usar-la.</translation>
|
|||
<context>
|
||||
<name>OCC::PropagateRemoteDelete</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="96"/>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="100"/>
|
||||
<source>The file has been removed from a read only share. It was restored.</source>
|
||||
<translation>El fitxer s'ha eliminat d'una compartició només de lectura. S'ha restaurat.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="117"/>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="121"/>
|
||||
<source>Wrong HTTP code returned by server. Expected 204, but received "%1 %2".</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
|
@ -2235,12 +2235,12 @@ No és aconsellada usar-la.</translation>
|
|||
<context>
|
||||
<name>OCC::PropagateRemoteMkdir</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="95"/>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="99"/>
|
||||
<source>Wrong HTTP code returned by server. Expected 201, but received "%1 %2".</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="147"/>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="151"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Error en escriure les metadades a la base de dades</translation>
|
||||
</message>
|
||||
|
@ -2258,18 +2258,18 @@ No és aconsellada usar-la.</translation>
|
|||
<translation>Aquesta carpeta no es pot reanomenar. Reanomeneu-la de nou Shared.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="137"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="141"/>
|
||||
<source>The file was renamed but is part of a read only share. The original file was restored.</source>
|
||||
<translation>El fitxer s'ha reanomenat però és part d'una compartició només de lectura. El fixter original s'ha restaurat.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="154"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="158"/>
|
||||
<source>Wrong HTTP code returned by server. Expected 201, but received "%1 %2".</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="186"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="192"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="190"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="196"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Error en escriure les metadades a la base de dades</translation>
|
||||
</message>
|
||||
|
@ -2303,7 +2303,7 @@ No és aconsellada usar-la.</translation>
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateupload.cpp" line="618"/>
|
||||
<location filename="../src/libsync/propagateupload.cpp" line="622"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Error en escriure les metadades a la base de dades</translation>
|
||||
</message>
|
||||
|
@ -2377,42 +2377,42 @@ No és aconsellada usar-la.</translation>
|
|||
<translation>TextLabel</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="48"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="61"/>
|
||||
<source>Time</source>
|
||||
<translation>Hora</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="49"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="62"/>
|
||||
<source>File</source>
|
||||
<translation>Fitxer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="50"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="63"/>
|
||||
<source>Folder</source>
|
||||
<translation>Carpeta</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="51"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="64"/>
|
||||
<source>Action</source>
|
||||
<translation>Acció</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="52"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="65"/>
|
||||
<source>Size</source>
|
||||
<translation>Mida</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="72"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="85"/>
|
||||
<source>Local sync protocol</source>
|
||||
<translation>Protocol de sincronització local</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="74"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="87"/>
|
||||
<source>Copy</source>
|
||||
<translation>Copia</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="75"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="88"/>
|
||||
<source>Copy the activity list to the clipboard.</source>
|
||||
<translation>Copia la llista d'activitats al porta-retalls.</translation>
|
||||
</message>
|
||||
|
@ -2544,6 +2544,7 @@ No és aconsellada usar-la.</translation>
|
|||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/settingsdialogmac.cpp" line="152"/>
|
||||
<location filename="../src/gui/settingsdialogmac.cpp" line="211"/>
|
||||
<source>Account</source>
|
||||
<translation>Compte</translation>
|
||||
</message>
|
||||
|
@ -3200,22 +3201,22 @@ No és aconsellada usar-la.</translation>
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1278"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1287"/>
|
||||
<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="1285"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1294"/>
|
||||
<source>Not allowed because you don't have permission to add files in that folder</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1588"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1597"/>
|
||||
<source>Disk space is low: Downloads that would reduce free space below %1 were skipped.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1595"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1604"/>
|
||||
<source>There is insufficient space available on the server for some uploads.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
|
@ -3340,54 +3341,54 @@ No és aconsellada usar-la.</translation>
|
|||
<translation>No es pot obrir el diari de sincronització</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="968"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="977"/>
|
||||
<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="1204"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1244"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1213"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1253"/>
|
||||
<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="1263"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1272"/>
|
||||
<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="1310"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1319"/>
|
||||
<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="1326"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1345"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1335"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1354"/>
|
||||
<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="1359"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1368"/>
|
||||
<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="1413"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1422"/>
|
||||
<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="1424"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1433"/>
|
||||
<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="1424"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1433"/>
|
||||
<source>the destination</source>
|
||||
<translation>el destí</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1424"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1433"/>
|
||||
<source>the source</source>
|
||||
<translation>l'origen</translation>
|
||||
</message>
|
||||
|
@ -3429,17 +3430,17 @@ No és aconsellada usar-la.</translation>
|
|||
<context>
|
||||
<name>OCC::ValidateChecksumHeader</name>
|
||||
<message>
|
||||
<location filename="../src/common/checksums.cpp" line="205"/>
|
||||
<location filename="../src/common/checksums.cpp" line="218"/>
|
||||
<source>The checksum header is malformed.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/common/checksums.cpp" line="220"/>
|
||||
<location filename="../src/common/checksums.cpp" line="233"/>
|
||||
<source>The checksum header contained an unknown checksum type '%1'</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/common/checksums.cpp" line="224"/>
|
||||
<location filename="../src/common/checksums.cpp" line="237"/>
|
||||
<source>The downloaded file does not match the checksum, it will be resumed.</source>
|
||||
<translation>El fitxer descarregat no concorda amb la suma de verificació. Es reintentarà.</translation>
|
||||
</message>
|
||||
|
|
|
@ -596,7 +596,7 @@
|
|||
<context>
|
||||
<name>OCC::CleanupPollsJob</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="990"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="1001"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Chyba zápisu metadat do databáze</translation>
|
||||
</message>
|
||||
|
@ -744,25 +744,25 @@
|
|||
<translation>Nezdařilo se přečtení systémového exclude souboru</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="883"/>
|
||||
<location filename="../src/gui/folder.cpp" line="888"/>
|
||||
<source>A new folder larger than %1 MB has been added: %2.
|
||||
</source>
|
||||
<translation>Nová složka větší než %1 MB byla přidána: %2.
|
||||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="886"/>
|
||||
<location filename="../src/gui/folder.cpp" line="891"/>
|
||||
<source>A folder from an external storage has been added.
|
||||
</source>
|
||||
<translation>Byla přidána složka z externího úložiště.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="887"/>
|
||||
<location filename="../src/gui/folder.cpp" line="892"/>
|
||||
<source>Please go in the settings to select it if you wish to download it.</source>
|
||||
<translation>Pokud to chcete stáhnout, běžte do nastavení a vyberte to.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="922"/>
|
||||
<location filename="../src/gui/folder.cpp" line="927"/>
|
||||
<source>All files in the sync folder '%1' folder were deleted on the server.
|
||||
These deletes will be synchronized to your local sync folder, making such files unavailable unless you have a right to restore.
|
||||
If you decide to keep the files, they will be re-synced with the server if you have rights to do so.
|
||||
|
@ -772,7 +772,7 @@ Tyto soubory budou smazány i ve vaší místní synchronizované složce a nebu
|
|||
Rozhodnete-li se soubory smazat, budou vám nedostupné, nejste-li jejich vlastníkem.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="927"/>
|
||||
<location filename="../src/gui/folder.cpp" line="932"/>
|
||||
<source>All the files in your local sync folder '%1' were deleted. These deletes will be synchronized with your server, making such files unavailable unless restored.
|
||||
Are you sure you want to sync those actions with the server?
|
||||
If this was an accident and you decide to keep your files, they will be re-synced from the server.</source>
|
||||
|
@ -781,22 +781,22 @@ Jste si jisti, že chcete tyto akce synchronizovat se serverem?
|
|||
Pokud to byl omyl a chcete si soubory ponechat, budou opět synchronizovány ze serveru.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="931"/>
|
||||
<location filename="../src/gui/folder.cpp" line="936"/>
|
||||
<source>Remove All Files?</source>
|
||||
<translation>Odstranit všechny soubory?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="934"/>
|
||||
<location filename="../src/gui/folder.cpp" line="939"/>
|
||||
<source>Remove all files</source>
|
||||
<translation>Odstranit všechny soubory</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="935"/>
|
||||
<location filename="../src/gui/folder.cpp" line="940"/>
|
||||
<source>Keep files</source>
|
||||
<translation>Ponechat soubory</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="952"/>
|
||||
<location filename="../src/gui/folder.cpp" line="957"/>
|
||||
<source>This sync would reset the files to an earlier time in the sync folder '%1'.
|
||||
This might be because a backup was restored on the server.
|
||||
Continuing the sync as normal will cause all your files to be overwritten by an older file in an earlier state. Do you want to keep your local most recent files as conflict files?</source>
|
||||
|
@ -805,17 +805,17 @@ Toto může být způsobeno obnovením zálohy na straně serveru.
|
|||
Pokračováním v synchronizaci způsobí přepsání všech vašich souborů staršími soubory z dřívějšího stavu. Přejete si ponechat své místní nejaktuálnější soubory jako konfliktní soubory?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="957"/>
|
||||
<location filename="../src/gui/folder.cpp" line="962"/>
|
||||
<source>Backup detected</source>
|
||||
<translation>Záloha nalezena</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="960"/>
|
||||
<location filename="../src/gui/folder.cpp" line="965"/>
|
||||
<source>Normal Synchronisation</source>
|
||||
<translation>Normální synchronizace</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="961"/>
|
||||
<location filename="../src/gui/folder.cpp" line="966"/>
|
||||
<source>Keep Local Files as Conflict</source>
|
||||
<translation>Ponechat místní soubory jako konflikt</translation>
|
||||
</message>
|
||||
|
@ -1289,22 +1289,22 @@ Pokračováním v synchronizaci způsobí přepsání všech vašich souborů st
|
|||
<context>
|
||||
<name>OCC::HttpCredentialsGui</name>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="97"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="98"/>
|
||||
<source>Please enter %1 password:<br><br>User: %2<br>Account: %3<br></source>
|
||||
<translation>Vložte prosím %1 heslo:<br><br>Uživatel: %2<br>Účet: %3<br></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="111"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="112"/>
|
||||
<source>Reading from keychain failed with error: '%1'</source>
|
||||
<translation>Čtení z klíčenky selhalo s chybou: '%1'</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="117"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="118"/>
|
||||
<source>Enter Password</source>
|
||||
<translation>Zadejte heslo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="154"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="155"/>
|
||||
<source><a href="%1">Click here</a> to request an app password from the web interface.</source>
|
||||
<translation><a href="%1">Klikněte sem</a> pro vyžádání hesla aplikace z webového rozhraní.</translation>
|
||||
</message>
|
||||
|
@ -1426,12 +1426,12 @@ Položky u kterých je povoleno smazání budou vymazány, pokud by bránily ods
|
|||
<translation>Ukázat ignorované soubory</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/issueswidget.ui" line="145"/>
|
||||
<location filename="../src/gui/issueswidget.ui" line="148"/>
|
||||
<source>Copy the issues list to the clipboard.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/issueswidget.ui" line="148"/>
|
||||
<location filename="../src/gui/issueswidget.ui" line="151"/>
|
||||
<source>Copy</source>
|
||||
<translation>Kopie</translation>
|
||||
</message>
|
||||
|
@ -1917,144 +1917,144 @@ Nedoporučuje se jí používat.</translation>
|
|||
<context>
|
||||
<name>OCC::OwncloudSetupWizard</name>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="217"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="250"/>
|
||||
<source><font color="green">Successfully connected to %1: %2 version %3 (%4)</font><br/><br/></source>
|
||||
<translation><font color="green">Úspěšně připojeno k %1: %2 verze %3 (%4)</font><br/><br/></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="251"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="280"/>
|
||||
<source>Failed to connect to %1 at %2:<br/>%3</source>
|
||||
<translation>Selhalo spojení s %1 v %2:<br/>%3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="285"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="314"/>
|
||||
<source>Timeout while trying to connect to %1 at %2.</source>
|
||||
<translation>Vypršení časového limitu při pokusu o připojení k %1 na %2.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="296"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="334"/>
|
||||
<source>Trying to connect to %1 at %2...</source>
|
||||
<translation>Pokouším se připojit k %1 na %2...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="347"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="385"/>
|
||||
<source>The authenticated request to the server was redirected to '%1'. The URL is bad, the server is misconfigured.</source>
|
||||
<translation>Ověřený požadavek na server byl přesměrován na '%1'. URL je špatně, server není správně nakonfigurován.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="369"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="407"/>
|
||||
<source>There was an invalid response to an authenticated webdav request</source>
|
||||
<translation>Byla obdržena nesprávná odpověď na ověřený webdav požadavek</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="360"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="398"/>
|
||||
<source>Access forbidden by server. To verify that you have proper access, <a href="%1">click here</a> to access the service with your browser.</source>
|
||||
<translation>Přístup zamítnut serverem. Pro ověření správných přístupových práv <a href="%1">klikněte sem</a> a otevřete službu ve svém prohlížeči.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="249"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="278"/>
|
||||
<source>Invalid URL</source>
|
||||
<translation>Neplatná URL</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="414"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="452"/>
|
||||
<source>Local sync folder %1 already exists, setting it up for sync.<br/><br/></source>
|
||||
<translation>Místní synchronizovaný adresář %1 již existuje, nastavuji jej pro synchronizaci.<br/><br/></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="417"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="455"/>
|
||||
<source>Creating local sync folder %1...</source>
|
||||
<translation>Vytvářím místní adresář pro synchronizaci %1...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="421"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="459"/>
|
||||
<source>ok</source>
|
||||
<translation>OK</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="423"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="461"/>
|
||||
<source>failed.</source>
|
||||
<translation>selhalo.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="425"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="463"/>
|
||||
<source>Could not create local folder %1</source>
|
||||
<translation>Nelze vytvořit místní adresář %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="451"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="489"/>
|
||||
<source>No remote folder specified!</source>
|
||||
<translation>Není nastaven žádný vzdálený adresář!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="457"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="495"/>
|
||||
<source>Error: %1</source>
|
||||
<translation>Chyba: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="470"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="508"/>
|
||||
<source>creating folder on ownCloud: %1</source>
|
||||
<translation>vytvářím adresář na ownCloudu: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="486"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="524"/>
|
||||
<source>Remote folder %1 created successfully.</source>
|
||||
<translation>Vzdálený adresář %1 byl úspěšně vytvořen.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="488"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="526"/>
|
||||
<source>The remote folder %1 already exists. Connecting it for syncing.</source>
|
||||
<translation>Vzdálený adresář %1 již existuje. Spojuji jej pro synchronizaci.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="490"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="492"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="528"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="530"/>
|
||||
<source>The folder creation resulted in HTTP error code %1</source>
|
||||
<translation>Vytvoření adresáře selhalo s HTTP chybou %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="494"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="532"/>
|
||||
<source>The remote folder creation failed because the provided credentials are wrong!<br/>Please go back and check your credentials.</p></source>
|
||||
<translation>Vytvoření vzdáleného adresáře selhalo, pravděpodobně z důvodu neplatných přihlašovacích údajů.<br/>Vraťte se prosím zpět a zkontrolujte je.</p></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="498"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="536"/>
|
||||
<source><p><font color="red">Remote folder creation failed probably because the provided credentials are wrong.</font><br/>Please go back and check your credentials.</p></source>
|
||||
<translation><p><font color="red">Vytvoření vzdáleného adresáře selhalo, pravděpodobně z důvodu neplatných přihlašovacích údajů.</font><br/>Vraťte se prosím zpět a zkontrolujte je.</p></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="503"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="504"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="541"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="542"/>
|
||||
<source>Remote folder %1 creation failed with error <tt>%2</tt>.</source>
|
||||
<translation>Vytváření vzdáleného adresáře %1 selhalo s chybou <tt>%2</tt>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="521"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="559"/>
|
||||
<source>A sync connection from %1 to remote directory %2 was set up.</source>
|
||||
<translation>Bylo nastaveno synchronizované spojení z %1 do vzdáleného adresáře %2.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="526"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="564"/>
|
||||
<source>Successfully connected to %1!</source>
|
||||
<translation>Úspěšně spojeno s %1.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="533"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="571"/>
|
||||
<source>Connection to %1 could not be established. Please check again.</source>
|
||||
<translation>Spojení s %1 nelze navázat. Prosím zkuste to znovu.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="547"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="585"/>
|
||||
<source>Folder rename failed</source>
|
||||
<translation>Přejmenování adresáře selhalo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="548"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="586"/>
|
||||
<source>Can't remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup.</source>
|
||||
<translation>Nelze odstranit a zazálohovat adresář, protože adresář nebo soubor v něm je otevřen v jiném programu. Prosím zavřete adresář nebo soubor a zkuste znovu nebo zrušte akci.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="593"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="631"/>
|
||||
<source><font color="green"><b>Local sync folder %1 successfully created!</b></font></source>
|
||||
<translation><font color="green"><b>Místní synchronizovaný adresář %1 byl úspěšně vytvořen!</b></font></translation>
|
||||
</message>
|
||||
|
@ -2101,7 +2101,7 @@ Nedoporučuje se jí používat.</translation>
|
|||
<context>
|
||||
<name>OCC::PropagateDirectory</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="942"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="953"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Chyba zápisu metadat do databáze</translation>
|
||||
</message>
|
||||
|
@ -2139,17 +2139,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="772"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="775"/>
|
||||
<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="820"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="823"/>
|
||||
<source>File has changed since discovery</source>
|
||||
<translation>Soubor se mezitím změnil</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="871"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="874"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Chyba zápisu metadat do databáze</translation>
|
||||
</message>
|
||||
|
@ -2225,12 +2225,12 @@ Nedoporučuje se jí používat.</translation>
|
|||
<context>
|
||||
<name>OCC::PropagateRemoteDelete</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="96"/>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="100"/>
|
||||
<source>The file has been removed from a read only share. It was restored.</source>
|
||||
<translation>Soubor byl odebrán ze sdílení pouze pro čtení. Soubor byl obnoven.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="117"/>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="121"/>
|
||||
<source>Wrong HTTP code returned by server. Expected 204, but received "%1 %2".</source>
|
||||
<translation>Server vrátil neplatný HTTP kód. Očekáván 204, ale obdržen "%1 %2".</translation>
|
||||
</message>
|
||||
|
@ -2238,12 +2238,12 @@ Nedoporučuje se jí používat.</translation>
|
|||
<context>
|
||||
<name>OCC::PropagateRemoteMkdir</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="95"/>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="99"/>
|
||||
<source>Wrong HTTP code returned by server. Expected 201, but received "%1 %2".</source>
|
||||
<translation>Server vrátil neplatný HTTP kód. Očekáván 201, ale obdržen "%1 %2".</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="147"/>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="151"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Chyba zápisu metadat do databáze</translation>
|
||||
</message>
|
||||
|
@ -2261,18 +2261,18 @@ Nedoporučuje se jí používat.</translation>
|
|||
<translation>Tento adresář nemůže být přejmenován. Přejmenujte jej prosím zpět na Shared.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="137"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="141"/>
|
||||
<source>The file was renamed but is part of a read only share. The original file was restored.</source>
|
||||
<translation>Soubor byl přejmenován, ale je součástí sdílení pouze pro čtení. Původní soubor byl obnoven.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="154"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="158"/>
|
||||
<source>Wrong HTTP code returned by server. Expected 201, but received "%1 %2".</source>
|
||||
<translation>Server vrátil neplatný HTTP kód. Očekáván 201, ale obdržen "%1 %2".</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="186"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="192"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="190"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="196"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Chyba zápisu metadat do databáze</translation>
|
||||
</message>
|
||||
|
@ -2306,7 +2306,7 @@ Nedoporučuje se jí používat.</translation>
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateupload.cpp" line="618"/>
|
||||
<location filename="../src/libsync/propagateupload.cpp" line="622"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Chyba zápisu metadat do databáze</translation>
|
||||
</message>
|
||||
|
@ -2380,42 +2380,42 @@ Nedoporučuje se jí používat.</translation>
|
|||
<translation>Textový popisek</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="48"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="61"/>
|
||||
<source>Time</source>
|
||||
<translation>Čas</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="49"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="62"/>
|
||||
<source>File</source>
|
||||
<translation>Soubor</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="50"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="63"/>
|
||||
<source>Folder</source>
|
||||
<translation>Adresář</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="51"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="64"/>
|
||||
<source>Action</source>
|
||||
<translation>Akce</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="52"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="65"/>
|
||||
<source>Size</source>
|
||||
<translation>Velikost</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="72"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="85"/>
|
||||
<source>Local sync protocol</source>
|
||||
<translation>Místní protokol synchronizace</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="74"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="87"/>
|
||||
<source>Copy</source>
|
||||
<translation>Kopie</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="75"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="88"/>
|
||||
<source>Copy the activity list to the clipboard.</source>
|
||||
<translation>Kopírovat záznam aktivity do schránky.</translation>
|
||||
</message>
|
||||
|
@ -2547,6 +2547,7 @@ Nedoporučuje se jí používat.</translation>
|
|||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/settingsdialogmac.cpp" line="152"/>
|
||||
<location filename="../src/gui/settingsdialogmac.cpp" line="211"/>
|
||||
<source>Account</source>
|
||||
<translation>Účet</translation>
|
||||
</message>
|
||||
|
@ -3203,22 +3204,22 @@ Nedoporučuje se jí používat.</translation>
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1278"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1287"/>
|
||||
<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="1285"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1294"/>
|
||||
<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>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1588"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1597"/>
|
||||
<source>Disk space is low: Downloads that would reduce free space below %1 were skipped.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1595"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1604"/>
|
||||
<source>There is insufficient space available on the server for some uploads.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
|
@ -3343,54 +3344,54 @@ Nedoporučuje se jí používat.</translation>
|
|||
<translation>Nelze otevřít synchronizační žurnál</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="968"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="977"/>
|
||||
<source>File name contains at least one invalid character</source>
|
||||
<translation>Jméno souboru obsahuje alespoň jeden neplatný znak</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1204"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1244"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1213"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1253"/>
|
||||
<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="1263"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1272"/>
|
||||
<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="1310"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1319"/>
|
||||
<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="1326"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1345"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1335"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1354"/>
|
||||
<source>Not allowed to remove, restoring</source>
|
||||
<translation>Odstranění není povoleno, obnovuji</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1359"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1368"/>
|
||||
<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="1413"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1422"/>
|
||||
<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="1424"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1433"/>
|
||||
<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="1424"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1433"/>
|
||||
<source>the destination</source>
|
||||
<translation>cílové umístění</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1424"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1433"/>
|
||||
<source>the source</source>
|
||||
<translation>zdroj</translation>
|
||||
</message>
|
||||
|
@ -3432,17 +3433,17 @@ Nedoporučuje se jí používat.</translation>
|
|||
<context>
|
||||
<name>OCC::ValidateChecksumHeader</name>
|
||||
<message>
|
||||
<location filename="../src/common/checksums.cpp" line="205"/>
|
||||
<location filename="../src/common/checksums.cpp" line="218"/>
|
||||
<source>The checksum header is malformed.</source>
|
||||
<translation>Hlavička kontrolního součtu je poškozena.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/common/checksums.cpp" line="220"/>
|
||||
<location filename="../src/common/checksums.cpp" line="233"/>
|
||||
<source>The checksum header contained an unknown checksum type '%1'</source>
|
||||
<translation>Hlavička kontrolního součtu obsahovala neznámý typ součtu '%1'</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/common/checksums.cpp" line="224"/>
|
||||
<location filename="../src/common/checksums.cpp" line="237"/>
|
||||
<source>The downloaded file does not match the checksum, it will be resumed.</source>
|
||||
<translation>Stažený soubor neodpovídá kontrolnímu součtu, bude znovu stažen.</translation>
|
||||
</message>
|
||||
|
|
|
@ -596,7 +596,7 @@
|
|||
<context>
|
||||
<name>OCC::CleanupPollsJob</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="990"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="1001"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Fehler beim Schreiben der Metadaten in die Datenbank</translation>
|
||||
</message>
|
||||
|
@ -744,26 +744,26 @@
|
|||
<translation>Systemeigene Ausschlussdatei kann nicht gelesen werden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="883"/>
|
||||
<location filename="../src/gui/folder.cpp" line="888"/>
|
||||
<source>A new folder larger than %1 MB has been added: %2.
|
||||
</source>
|
||||
<translation>Ein neues Verzeichnis größer als %1 MB wurde hinzugefügt: %2.
|
||||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="886"/>
|
||||
<location filename="../src/gui/folder.cpp" line="891"/>
|
||||
<source>A folder from an external storage has been added.
|
||||
</source>
|
||||
<translation>Ein Verzeichnis, von einem externen Speicher wurde hinzugefügt.
|
||||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="887"/>
|
||||
<location filename="../src/gui/folder.cpp" line="892"/>
|
||||
<source>Please go in the settings to select it if you wish to download it.</source>
|
||||
<translation>Bitte wechseln Sie zu den Einstellungen, falls Sie das Verzeichnis herunterladen möchten.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="922"/>
|
||||
<location filename="../src/gui/folder.cpp" line="927"/>
|
||||
<source>All files in the sync folder '%1' folder were deleted on the server.
|
||||
These deletes will be synchronized to your local sync folder, making such files unavailable unless you have a right to restore.
|
||||
If you decide to keep the files, they will be re-synced with the server if you have rights to do so.
|
||||
|
@ -774,7 +774,7 @@ Wenn Sie sich dazu entscheiden, diese Dateien zu behalten, werden diese wieder z
|
|||
Wenn Sie sich zum Löschen der Dateien entscheiden, sind diese nicht mehr verfügbar, außer Sie sind der Eigentümer.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="927"/>
|
||||
<location filename="../src/gui/folder.cpp" line="932"/>
|
||||
<source>All the files in your local sync folder '%1' were deleted. These deletes will be synchronized with your server, making such files unavailable unless restored.
|
||||
Are you sure you want to sync those actions with the server?
|
||||
If this was an accident and you decide to keep your files, they will be re-synced from the server.</source>
|
||||
|
@ -783,22 +783,22 @@ Sind Sie sich sicher, dass Sie diese Aktion mit Ihrem Server synchronisieren mö
|
|||
Falls dies ein Missgeschick war und Sie sich zum Behalten der Dateien entscheiden, werden diese wieder vom Server synchronisiert.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="931"/>
|
||||
<location filename="../src/gui/folder.cpp" line="936"/>
|
||||
<source>Remove All Files?</source>
|
||||
<translation>Alle Dateien löschen?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="934"/>
|
||||
<location filename="../src/gui/folder.cpp" line="939"/>
|
||||
<source>Remove all files</source>
|
||||
<translation>Lösche alle Dateien</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="935"/>
|
||||
<location filename="../src/gui/folder.cpp" line="940"/>
|
||||
<source>Keep files</source>
|
||||
<translation>Dateien behalten</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="952"/>
|
||||
<location filename="../src/gui/folder.cpp" line="957"/>
|
||||
<source>This sync would reset the files to an earlier time in the sync folder '%1'.
|
||||
This might be because a backup was restored on the server.
|
||||
Continuing the sync as normal will cause all your files to be overwritten by an older file in an earlier state. Do you want to keep your local most recent files as conflict files?</source>
|
||||
|
@ -807,17 +807,17 @@ Der Grund dafür ist möglicherweise, dass auf dem Server ein Backup eingespielt
|
|||
Wenn diese Synchronisation fortgesetzt wird, werden Dateien eventuell von älteren Versionen überschrieben. Möchten Sie die neueren lokalen Dateien als Konflikt-Dateien behalten?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="957"/>
|
||||
<location filename="../src/gui/folder.cpp" line="962"/>
|
||||
<source>Backup detected</source>
|
||||
<translation>Backup erkannt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="960"/>
|
||||
<location filename="../src/gui/folder.cpp" line="965"/>
|
||||
<source>Normal Synchronisation</source>
|
||||
<translation>Normale Synchronisation</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="961"/>
|
||||
<location filename="../src/gui/folder.cpp" line="966"/>
|
||||
<source>Keep Local Files as Conflict</source>
|
||||
<translation>Lokale Konfliktdateien behalten</translation>
|
||||
</message>
|
||||
|
@ -1291,22 +1291,22 @@ Wenn diese Synchronisation fortgesetzt wird, werden Dateien eventuell von älter
|
|||
<context>
|
||||
<name>OCC::HttpCredentialsGui</name>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="97"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="98"/>
|
||||
<source>Please enter %1 password:<br><br>User: %2<br>Account: %3<br></source>
|
||||
<translation>Bitte Kennwort für %1 eingeben:<br><br>Benutzer: %2<br>Konto: %3<br></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="111"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="112"/>
|
||||
<source>Reading from keychain failed with error: '%1'</source>
|
||||
<translation>Schlüsselbund fehlgeschlagen mit Fehler: '%1'</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="117"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="118"/>
|
||||
<source>Enter Password</source>
|
||||
<translation>Passwort eingeben</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="154"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="155"/>
|
||||
<source><a href="%1">Click here</a> to request an app password from the web interface.</source>
|
||||
<translation><a href="%1">Klicken Sie hier</a> um ein App-Passwort von dem Web-Interface zu erhalten.</translation>
|
||||
</message>
|
||||
|
@ -1428,12 +1428,12 @@ Objekte, bei denen Löschen erlaubt ist, werden gelöscht, wenn sie die Löschun
|
|||
<translation>Ignorierte Dateien anzeigen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/issueswidget.ui" line="145"/>
|
||||
<location filename="../src/gui/issueswidget.ui" line="148"/>
|
||||
<source>Copy the issues list to the clipboard.</source>
|
||||
<translation>Liste der Fehler in die Zwischenablage kopieren.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/issueswidget.ui" line="148"/>
|
||||
<location filename="../src/gui/issueswidget.ui" line="151"/>
|
||||
<source>Copy</source>
|
||||
<translation>Kopieren</translation>
|
||||
</message>
|
||||
|
@ -1918,144 +1918,144 @@ Es ist nicht ratsam, diese zu benutzen.</translation>
|
|||
<context>
|
||||
<name>OCC::OwncloudSetupWizard</name>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="217"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="250"/>
|
||||
<source><font color="green">Successfully connected to %1: %2 version %3 (%4)</font><br/><br/></source>
|
||||
<translation><font color="green">Erfolgreich mit %1 verbunden: %2 Version %3 (%4)</font><br/><br/></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="251"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="280"/>
|
||||
<source>Failed to connect to %1 at %2:<br/>%3</source>
|
||||
<translation>Die Verbindung zu %1 auf %2:<br/>%3 konnte nicht hergestellt werden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="285"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="314"/>
|
||||
<source>Timeout while trying to connect to %1 at %2.</source>
|
||||
<translation>Zeitüberschreitung beim Verbindungsversuch mit %1 unter %2.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="296"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="334"/>
|
||||
<source>Trying to connect to %1 at %2...</source>
|
||||
<translation>Verbindungsversuch mit %1 unter %2…</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="347"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="385"/>
|
||||
<source>The authenticated request to the server was redirected to '%1'. The URL is bad, the server is misconfigured.</source>
|
||||
<translation>Die Authentifizierungs-Anfrage an den Server wurde weitergeleitet an '%1'. Diese Adresse ist ungültig, der Server ist falsch konfiguriert.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="369"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="407"/>
|
||||
<source>There was an invalid response to an authenticated webdav request</source>
|
||||
<translation>Es gab eine ungültige Reaktion auf eine WebDav-Authentifizeriungs-Anfrage</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="360"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="398"/>
|
||||
<source>Access forbidden by server. To verify that you have proper access, <a href="%1">click here</a> to access the service with your browser.</source>
|
||||
<translation>Zugang vom Server nicht erlaubt. <a href="%1">Klicken Sie hier</a> zum Zugriff auf den Dienst mithilfe Ihres Browsers, so dass Sie sicherstellen können, dass Ihr Zugang ordnungsgemäß funktioniert.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="249"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="278"/>
|
||||
<source>Invalid URL</source>
|
||||
<translation>Ungültige URL</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="414"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="452"/>
|
||||
<source>Local sync folder %1 already exists, setting it up for sync.<br/><br/></source>
|
||||
<translation>Lokaler Sync-Ordner %1 existiert bereits, aktiviere Synchronistation.<br/><br/></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="417"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="455"/>
|
||||
<source>Creating local sync folder %1...</source>
|
||||
<translation>Lokaler Synchronisations-Ordner %1 wird erstellt ...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="421"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="459"/>
|
||||
<source>ok</source>
|
||||
<translation>ok</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="423"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="461"/>
|
||||
<source>failed.</source>
|
||||
<translation>fehlgeschlagen.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="425"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="463"/>
|
||||
<source>Could not create local folder %1</source>
|
||||
<translation>Der lokale Ordner %1 konnte nicht angelegt werden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="451"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="489"/>
|
||||
<source>No remote folder specified!</source>
|
||||
<translation>Keinen entfernten Ordner angegeben!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="457"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="495"/>
|
||||
<source>Error: %1</source>
|
||||
<translation>Fehler: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="470"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="508"/>
|
||||
<source>creating folder on ownCloud: %1</source>
|
||||
<translation>erstelle Ordner auf ownCloud: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="486"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="524"/>
|
||||
<source>Remote folder %1 created successfully.</source>
|
||||
<translation>Remoteordner %1 erfolgreich erstellt.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="488"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="526"/>
|
||||
<source>The remote folder %1 already exists. Connecting it for syncing.</source>
|
||||
<translation>Der Ordner %1 ist auf dem Server bereits vorhanden. Verbinde zur Synchronisation.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="490"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="492"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="528"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="530"/>
|
||||
<source>The folder creation resulted in HTTP error code %1</source>
|
||||
<translation>Das Erstellen des Verzeichnisses erzeugte den HTTP-Fehler-Code %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="494"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="532"/>
|
||||
<source>The remote folder creation failed because the provided credentials are wrong!<br/>Please go back and check your credentials.</p></source>
|
||||
<translation>Die Remote-Ordner-Erstellung ist fehlgeschlagen, weil die angegebenen Zugangsdaten falsch sind. Bitte gehen Sie zurück und überprüfen Sie die Zugangsdaten.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="498"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="536"/>
|
||||
<source><p><font color="red">Remote folder creation failed probably because the provided credentials are wrong.</font><br/>Please go back and check your credentials.</p></source>
|
||||
<translation><p><font color="red">Die Remote-Ordner-Erstellung ist fehlgeschlagen, vermutlich sind die angegebenen Zugangsdaten falsch.</font><br/>Bitte gehen Sie zurück und überprüfen Sie Ihre Zugangsdaten.</p></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="503"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="504"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="541"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="542"/>
|
||||
<source>Remote folder %1 creation failed with error <tt>%2</tt>.</source>
|
||||
<translation>Remote-Ordner %1 konnte mit folgendem Fehler nicht erstellt werden: <tt>%2</tt>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="521"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="559"/>
|
||||
<source>A sync connection from %1 to remote directory %2 was set up.</source>
|
||||
<translation>Eine Synchronisationsverbindung für Ordner %1 zum entfernten Ordner %2 wurde eingerichtet.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="526"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="564"/>
|
||||
<source>Successfully connected to %1!</source>
|
||||
<translation>Erfolgreich verbunden mit %1!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="533"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="571"/>
|
||||
<source>Connection to %1 could not be established. Please check again.</source>
|
||||
<translation>Die Verbindung zu %1 konnte nicht hergestellt werden. Bitte prüfen Sie die Einstellungen erneut.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="547"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="585"/>
|
||||
<source>Folder rename failed</source>
|
||||
<translation>Ordner umbenennen fehlgeschlagen.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="548"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="586"/>
|
||||
<source>Can't remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup.</source>
|
||||
<translation>Der Ordner kann nicht entfernt und gesichert werden, da der Ordner oder einer seiner Dateien in einem anderen Programm geöffnet ist. Bitte schließen Sie den Ordner oder die Datei oder beenden Sie die Installation.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="593"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="631"/>
|
||||
<source><font color="green"><b>Local sync folder %1 successfully created!</b></font></source>
|
||||
<translation><font color="green"><b>Lokaler Sync-Ordner %1 erfolgreich erstellt!</b></font></translation>
|
||||
</message>
|
||||
|
@ -2102,7 +2102,7 @@ Es ist nicht ratsam, diese zu benutzen.</translation>
|
|||
<context>
|
||||
<name>OCC::PropagateDirectory</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="942"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="953"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Fehler beim Schreiben der Metadaten in die Datenbank</translation>
|
||||
</message>
|
||||
|
@ -2140,17 +2140,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="772"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="775"/>
|
||||
<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="820"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="823"/>
|
||||
<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="871"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="874"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Fehler beim Schreiben der Metadaten in die Datenbank</translation>
|
||||
</message>
|
||||
|
@ -2226,12 +2226,12 @@ Es ist nicht ratsam, diese zu benutzen.</translation>
|
|||
<context>
|
||||
<name>OCC::PropagateRemoteDelete</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="96"/>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="100"/>
|
||||
<source>The file has been removed from a read only share. It was restored.</source>
|
||||
<translation>Die Datei wurde von einer Nur-Lese-Freigabe gelöscht. Die Datei wurde wiederhergestellt.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="117"/>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="121"/>
|
||||
<source>Wrong HTTP code returned by server. Expected 204, but received "%1 %2".</source>
|
||||
<translation>Es wurde ein falscher HTTP-Status-Code vom Server gesendet. Erwartet wurde 204, aber gesendet wurde "%1 %2".</translation>
|
||||
</message>
|
||||
|
@ -2239,12 +2239,12 @@ Es ist nicht ratsam, diese zu benutzen.</translation>
|
|||
<context>
|
||||
<name>OCC::PropagateRemoteMkdir</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="95"/>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="99"/>
|
||||
<source>Wrong HTTP code returned by server. Expected 201, but received "%1 %2".</source>
|
||||
<translation>Es wurde ein falscher HTTP-Status-Code vom Server gesendet. Erwartet wurde 201, aber gesendet wurde "%1 %2".</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="147"/>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="151"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Fehler beim Schreiben der Metadaten in die Datenbank</translation>
|
||||
</message>
|
||||
|
@ -2262,18 +2262,18 @@ Es ist nicht ratsam, diese zu benutzen.</translation>
|
|||
<translation>Dieser Ordner muss nicht umbenannt werden. Bitte benennen Sie es zurück wie in der Freigabe.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="137"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="141"/>
|
||||
<source>The file was renamed but is part of a read only share. The original file was restored.</source>
|
||||
<translation>Die Datei wurde auf einer Nur-Lese-Freigabe umbenannt. Die Original-Datei wurde wiederhergestellt.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="154"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="158"/>
|
||||
<source>Wrong HTTP code returned by server. Expected 201, but received "%1 %2".</source>
|
||||
<translation>Es wurde ein falscher HTTP-Status-Code vom Server gesendet. Erwartet wurde 201, aber gesendet wurde "%1 %2".</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="186"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="192"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="190"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="196"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Fehler beim Schreiben der Metadaten in die Datenbank</translation>
|
||||
</message>
|
||||
|
@ -2307,7 +2307,7 @@ Es ist nicht ratsam, diese zu benutzen.</translation>
|
|||
<translation>Das Hochladen von %1 überschreitet das Speicherkontingent des Ordners </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateupload.cpp" line="618"/>
|
||||
<location filename="../src/libsync/propagateupload.cpp" line="622"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Fehler beim Schreiben der Metadaten in die Datenbank</translation>
|
||||
</message>
|
||||
|
@ -2381,42 +2381,42 @@ Es ist nicht ratsam, diese zu benutzen.</translation>
|
|||
<translation>TextLabel</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="48"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="61"/>
|
||||
<source>Time</source>
|
||||
<translation>Zeit</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="49"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="62"/>
|
||||
<source>File</source>
|
||||
<translation>Datei</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="50"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="63"/>
|
||||
<source>Folder</source>
|
||||
<translation>Ordner</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="51"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="64"/>
|
||||
<source>Action</source>
|
||||
<translation>Aktion</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="52"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="65"/>
|
||||
<source>Size</source>
|
||||
<translation>Größe</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="72"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="85"/>
|
||||
<source>Local sync protocol</source>
|
||||
<translation>Lokales Sychronisationsprotokoll</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="74"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="87"/>
|
||||
<source>Copy</source>
|
||||
<translation>Kopieren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="75"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="88"/>
|
||||
<source>Copy the activity list to the clipboard.</source>
|
||||
<translation>Aktivitätsliste in die Zwischenablage kopieren.</translation>
|
||||
</message>
|
||||
|
@ -2548,6 +2548,7 @@ Es ist nicht ratsam, diese zu benutzen.</translation>
|
|||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/settingsdialogmac.cpp" line="152"/>
|
||||
<location filename="../src/gui/settingsdialogmac.cpp" line="211"/>
|
||||
<source>Account</source>
|
||||
<translation>Benutzerkonto</translation>
|
||||
</message>
|
||||
|
@ -3204,22 +3205,22 @@ Es ist nicht ratsam, diese zu benutzen.</translation>
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1278"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1287"/>
|
||||
<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="1285"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1294"/>
|
||||
<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>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1588"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1597"/>
|
||||
<source>Disk space is low: Downloads that would reduce free space below %1 were skipped.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1595"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1604"/>
|
||||
<source>There is insufficient space available on the server for some uploads.</source>
|
||||
<translation>Auf dem Server ist für einige Dateien zum Hochladen nicht genug Platz.</translation>
|
||||
</message>
|
||||
|
@ -3344,54 +3345,54 @@ Es ist nicht ratsam, diese zu benutzen.</translation>
|
|||
<translation>Synchronisationsbericht kann nicht geöffnet werden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="968"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="977"/>
|
||||
<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="1204"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1244"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1213"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1253"/>
|
||||
<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="1263"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1272"/>
|
||||
<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="1310"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1319"/>
|
||||
<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="1326"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1345"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1335"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1354"/>
|
||||
<source>Not allowed to remove, restoring</source>
|
||||
<translation>Löschen nicht erlaubt, Wiederherstellung</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1359"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1368"/>
|
||||
<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="1413"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1422"/>
|
||||
<source>Move not allowed, item restored</source>
|
||||
<translation>Verschieben nicht erlaubt, Element wiederhergestellt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1424"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1433"/>
|
||||
<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="1424"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1433"/>
|
||||
<source>the destination</source>
|
||||
<translation>Das Ziel</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1424"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1433"/>
|
||||
<source>the source</source>
|
||||
<translation>Die Quelle</translation>
|
||||
</message>
|
||||
|
@ -3433,17 +3434,17 @@ Es ist nicht ratsam, diese zu benutzen.</translation>
|
|||
<context>
|
||||
<name>OCC::ValidateChecksumHeader</name>
|
||||
<message>
|
||||
<location filename="../src/common/checksums.cpp" line="205"/>
|
||||
<location filename="../src/common/checksums.cpp" line="218"/>
|
||||
<source>The checksum header is malformed.</source>
|
||||
<translation>Der Prüfsummen-Header hat ein fehlerhaftes Format.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/common/checksums.cpp" line="220"/>
|
||||
<location filename="../src/common/checksums.cpp" line="233"/>
|
||||
<source>The checksum header contained an unknown checksum type '%1'</source>
|
||||
<translation>Die Prüfsummen-Kopfzeile enthielt den unbekannten Prüfsummentypen '%1'.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/common/checksums.cpp" line="224"/>
|
||||
<location filename="../src/common/checksums.cpp" line="237"/>
|
||||
<source>The downloaded file does not match the checksum, it will be resumed.</source>
|
||||
<translation>Die heruntergeladene Datei entspricht nicht der Prüfsumme, das Herunterladen wird wiederaufgenommen.</translation>
|
||||
</message>
|
||||
|
|
|
@ -596,7 +596,7 @@
|
|||
<context>
|
||||
<name>OCC::CleanupPollsJob</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="990"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="1001"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Σφάλμα εγγραφής μεταδεδομένων στην βάση δεδομένων</translation>
|
||||
</message>
|
||||
|
@ -744,26 +744,26 @@
|
|||
<translation>Αδυναμία ανάγνωσης αρχείου αποκλεισμού συστήματος</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="883"/>
|
||||
<location filename="../src/gui/folder.cpp" line="888"/>
|
||||
<source>A new folder larger than %1 MB has been added: %2.
|
||||
</source>
|
||||
<translation>Προστέθηκε ένας νέος φάκελος μεγαλύτερος από %1 MB: %2
|
||||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="886"/>
|
||||
<location filename="../src/gui/folder.cpp" line="891"/>
|
||||
<source>A folder from an external storage has been added.
|
||||
</source>
|
||||
<translation>Προστέθηκε ένας φάκελος από εξωτερικό αποθηκευτικό χώρο.
|
||||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="887"/>
|
||||
<location filename="../src/gui/folder.cpp" line="892"/>
|
||||
<source>Please go in the settings to select it if you wish to download it.</source>
|
||||
<translation>Μεταβείτε στις ρυθμίσεις για να το επιλέξετε εάν επιθυμείτε να το κατεβάσετε.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="922"/>
|
||||
<location filename="../src/gui/folder.cpp" line="927"/>
|
||||
<source>All files in the sync folder '%1' folder were deleted on the server.
|
||||
These deletes will be synchronized to your local sync folder, making such files unavailable unless you have a right to restore.
|
||||
If you decide to keep the files, they will be re-synced with the server if you have rights to do so.
|
||||
|
@ -774,7 +774,7 @@ If you decide to delete the files, they will be unavailable to you, unless you a
|
|||
Εφόσον επιλέξετε να διαγράψετε τα αρχεία, δε θα είναι διαθέσιμα σε εσάς, εκτός εάν είστε ο ιδιοκτήτης τους. </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="927"/>
|
||||
<location filename="../src/gui/folder.cpp" line="932"/>
|
||||
<source>All the files in your local sync folder '%1' were deleted. These deletes will be synchronized with your server, making such files unavailable unless restored.
|
||||
Are you sure you want to sync those actions with the server?
|
||||
If this was an accident and you decide to keep your files, they will be re-synced from the server.</source>
|
||||
|
@ -783,22 +783,22 @@ If this was an accident and you decide to keep your files, they will be re-synce
|
|||
Αν αυτό ήταν ένα ατύχημα και αποφασίσατε να διατηρήσετε τα αρχεία σας, θα συγχρονιστούν εκ νέου από το διακομιστή.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="931"/>
|
||||
<location filename="../src/gui/folder.cpp" line="936"/>
|
||||
<source>Remove All Files?</source>
|
||||
<translation>Αφαίρεση Όλων των Αρχείων;</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="934"/>
|
||||
<location filename="../src/gui/folder.cpp" line="939"/>
|
||||
<source>Remove all files</source>
|
||||
<translation>Αφαίρεση όλων των αρχείων</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="935"/>
|
||||
<location filename="../src/gui/folder.cpp" line="940"/>
|
||||
<source>Keep files</source>
|
||||
<translation>Διατήρηση αρχείων</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="952"/>
|
||||
<location filename="../src/gui/folder.cpp" line="957"/>
|
||||
<source>This sync would reset the files to an earlier time in the sync folder '%1'.
|
||||
This might be because a backup was restored on the server.
|
||||
Continuing the sync as normal will cause all your files to be overwritten by an older file in an earlier state. Do you want to keep your local most recent files as conflict files?</source>
|
||||
|
@ -807,17 +807,17 @@ Continuing the sync as normal will cause all your files to be overwritten by an
|
|||
Η συνέχιση του συγχρονισμού κανονικά θα προκαλέσει την αντικατάσταση όλων των αρχείων σας από παλιότερο αρχείο σε προηγούμενη κατάσταση. Θέλετε να διατηρήσετε τα τοπικά σας πιο πρόσφατα αρχεία ως αρχεία σύγκρουσης;</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="957"/>
|
||||
<location filename="../src/gui/folder.cpp" line="962"/>
|
||||
<source>Backup detected</source>
|
||||
<translation>Ανιχνεύθηκε αντίγραφο ασφαλείας</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="960"/>
|
||||
<location filename="../src/gui/folder.cpp" line="965"/>
|
||||
<source>Normal Synchronisation</source>
|
||||
<translation>Κανονικός συγχρονισμός</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="961"/>
|
||||
<location filename="../src/gui/folder.cpp" line="966"/>
|
||||
<source>Keep Local Files as Conflict</source>
|
||||
<translation>Διατήρηση τοπικών αρχείων ως Διένεξη</translation>
|
||||
</message>
|
||||
|
@ -1291,22 +1291,22 @@ Continuing the sync as normal will cause all your files to be overwritten by an
|
|||
<context>
|
||||
<name>OCC::HttpCredentialsGui</name>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="97"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="98"/>
|
||||
<source>Please enter %1 password:<br><br>User: %2<br>Account: %3<br></source>
|
||||
<translation>Παρακαλώ εισάγετε %1 κωδικού πρόσβασης:<br><br>Χρήστης: %2<br>Λογαριασμός: %3<br></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="111"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="112"/>
|
||||
<source>Reading from keychain failed with error: '%1'</source>
|
||||
<translation>Η ανάγνωση από την κλειδοθήκη απέτυχε με σφάλμα: '%1'</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="117"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="118"/>
|
||||
<source>Enter Password</source>
|
||||
<translation>Εισάγετε Κωδικό Πρόσβασης</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="154"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="155"/>
|
||||
<source><a href="%1">Click here</a> to request an app password from the web interface.</source>
|
||||
<translation><a href="%1">πατήστε εδώ</a>για να ζητήσετε έναν κωδικό πρόσβασης εφαρμογής από τη διεπαφή ιστού.</translation>
|
||||
</message>
|
||||
|
@ -1420,7 +1420,7 @@ Items where deletion is allowed will be deleted if they prevent a directory from
|
|||
<message>
|
||||
<location filename="../src/gui/issueswidget.ui" line="73"/>
|
||||
<source>Show warnings</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Εμφάνιση προειδοποιήσεων</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/issueswidget.ui" line="83"/>
|
||||
|
@ -1428,12 +1428,12 @@ Items where deletion is allowed will be deleted if they prevent a directory from
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/issueswidget.ui" line="145"/>
|
||||
<location filename="../src/gui/issueswidget.ui" line="148"/>
|
||||
<source>Copy the issues list to the clipboard.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/issueswidget.ui" line="148"/>
|
||||
<location filename="../src/gui/issueswidget.ui" line="151"/>
|
||||
<source>Copy</source>
|
||||
<translation>Αντιγραφή</translation>
|
||||
</message>
|
||||
|
@ -1919,144 +1919,144 @@ It is not advisable to use it.</source>
|
|||
<context>
|
||||
<name>OCC::OwncloudSetupWizard</name>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="217"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="250"/>
|
||||
<source><font color="green">Successfully connected to %1: %2 version %3 (%4)</font><br/><br/></source>
|
||||
<translation><font color="green">Επιτυχής σύνδεση στο %1: %2 έκδοση %3 (%4)</font><br/><br/></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="251"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="280"/>
|
||||
<source>Failed to connect to %1 at %2:<br/>%3</source>
|
||||
<translation>Αποτυχία σύνδεσης με το %1 στο %2:<br/>%3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="285"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="314"/>
|
||||
<source>Timeout while trying to connect to %1 at %2.</source>
|
||||
<translation>Λήξη χρονικού ορίου κατά τη σύνδεση σε %1 σε %2.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="296"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="334"/>
|
||||
<source>Trying to connect to %1 at %2...</source>
|
||||
<translation>Προσπάθεια σύνδεσης στο %1 για %2...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="347"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="385"/>
|
||||
<source>The authenticated request to the server was redirected to '%1'. The URL is bad, the server is misconfigured.</source>
|
||||
<translation>Η πιστοποιημένη αίτηση στον διακομιστή ανακατευθύνθηκε σε '%1'. Το URL είναι εσφαλμένο, ο διακομιστής δεν έχει διαμορφωθεί σωστά.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="369"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="407"/>
|
||||
<source>There was an invalid response to an authenticated webdav request</source>
|
||||
<translation>Υπήρξε μια άκυρη απόκριση σε μια πιστοποιημένη αίτηση </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="360"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="398"/>
|
||||
<source>Access forbidden by server. To verify that you have proper access, <a href="%1">click here</a> to access the service with your browser.</source>
|
||||
<translation>Απαγόρευση πρόσβασης από τον διακομιστή. Για να επιβεβαιώσετε ότι έχετε δικαιώματα πρόσβασης, <a href="%1">πατήστε εδώ</a> για να προσπελάσετε την υπηρεσία με το πρόγραμμα πλοήγησής σας.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="249"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="278"/>
|
||||
<source>Invalid URL</source>
|
||||
<translation>Μη έγκυρη URL</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="414"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="452"/>
|
||||
<source>Local sync folder %1 already exists, setting it up for sync.<br/><br/></source>
|
||||
<translation>Ο τοπικός φάκελος συγχρονισμού %1 υπάρχει ήδη, ρύθμιση για συγχρονισμό.<br/><br/></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="417"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="455"/>
|
||||
<source>Creating local sync folder %1...</source>
|
||||
<translation>Δημιουργία τοπικού φακέλου συγχρονισμού %1...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="421"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="459"/>
|
||||
<source>ok</source>
|
||||
<translation>οκ</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="423"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="461"/>
|
||||
<source>failed.</source>
|
||||
<translation>απέτυχε.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="425"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="463"/>
|
||||
<source>Could not create local folder %1</source>
|
||||
<translation>Αδυναμία δημιουργίας τοπικού φακέλου %1 </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="451"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="489"/>
|
||||
<source>No remote folder specified!</source>
|
||||
<translation>Δεν προσδιορίστηκε κανένας απομακρυσμένος φάκελος!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="457"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="495"/>
|
||||
<source>Error: %1</source>
|
||||
<translation>Σφάλμα: %1 </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="470"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="508"/>
|
||||
<source>creating folder on ownCloud: %1</source>
|
||||
<translation>δημιουργία φακέλου στο ownCloud: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="486"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="524"/>
|
||||
<source>Remote folder %1 created successfully.</source>
|
||||
<translation>Ο απομακρυσμένος φάκελος %1 δημιουργήθηκε με επιτυχία.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="488"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="526"/>
|
||||
<source>The remote folder %1 already exists. Connecting it for syncing.</source>
|
||||
<translation>Ο απομακρυσμένος φάκελος %1 υπάρχει ήδη. Θα συνδεθεί για συγχρονισμό. </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="490"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="492"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="528"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="530"/>
|
||||
<source>The folder creation resulted in HTTP error code %1</source>
|
||||
<translation>Η δημιουργία φακέλου είχε ως αποτέλεσμα τον κωδικό σφάλματος HTTP %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="494"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="532"/>
|
||||
<source>The remote folder creation failed because the provided credentials are wrong!<br/>Please go back and check your credentials.</p></source>
|
||||
<translation>Η δημιουργία απομακρυσμένου φακέλλου απέτυχε επειδή τα διαπιστευτήρια είναι λάθος!<br/>Παρακαλώ επιστρέψετε και ελέγξετε τα διαπιστευτήριά σας.</p></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="498"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="536"/>
|
||||
<source><p><font color="red">Remote folder creation failed probably because the provided credentials are wrong.</font><br/>Please go back and check your credentials.</p></source>
|
||||
<translation><p><font color="red">Η δημιουργία απομακρυσμένου φακέλου απέτυχε, πιθανώς επειδή τα διαπιστευτήρια που δόθηκαν είναι λάθος.</font><br/>Παρακαλώ επιστρέψτε πίσω και ελέγξτε τα διαπιστευτήρια σας.</p></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="503"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="504"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="541"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="542"/>
|
||||
<source>Remote folder %1 creation failed with error <tt>%2</tt>.</source>
|
||||
<translation>Η δημιουργία απομακρυσμένου φακέλου %1 απέτυχε με σφάλμα <tt>%2</tt>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="521"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="559"/>
|
||||
<source>A sync connection from %1 to remote directory %2 was set up.</source>
|
||||
<translation>Μια σύνδεση συγχρονισμού από τον απομακρυσμένο κατάλογο %1 σε %2 έχει ρυθμιστεί. </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="526"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="564"/>
|
||||
<source>Successfully connected to %1!</source>
|
||||
<translation>Επιτυχής σύνδεση με %1!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="533"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="571"/>
|
||||
<source>Connection to %1 could not be established. Please check again.</source>
|
||||
<translation>Αδυναμία σύνδεσης στον %1. Παρακαλώ ελέξτε ξανά.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="547"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="585"/>
|
||||
<source>Folder rename failed</source>
|
||||
<translation>Αποτυχία μετονομασίας φακέλου</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="548"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="586"/>
|
||||
<source>Can't remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup.</source>
|
||||
<translation>Αδυναμία αφαίρεσης και δημιουργίας αντιγράφου ασφαλείας του φακέλου διότι ο φάκελος ή ένα αρχείο του είναι ανοικτό από άλλο πρόγραμμα. Παρακαλώ κλείστε τον φάκελο ή το αρχείο και πατήστε επανάληψη ή ακυρώστε την ρύθμιση.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="593"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="631"/>
|
||||
<source><font color="green"><b>Local sync folder %1 successfully created!</b></font></source>
|
||||
<translation><font color="green"><b>Επιτυχής δημιουργία τοπικού φακέλου %1 για συγχρονισμό!</b></font></translation>
|
||||
</message>
|
||||
|
@ -2103,7 +2103,7 @@ It is not advisable to use it.</source>
|
|||
<context>
|
||||
<name>OCC::PropagateDirectory</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="942"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="953"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Σφάλμα εγγραφής μεταδεδομένων στην βάση δεδομένων</translation>
|
||||
</message>
|
||||
|
@ -2141,17 +2141,17 @@ It is not advisable to use it.</source>
|
|||
<translation>Το ληφθέν αρχείο είναι άδειο, παρόλο που ο διακομιστής ανακοίνωσε ότι θα έπρεπε να ήταν% 1.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="772"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="775"/>
|
||||
<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="820"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="823"/>
|
||||
<source>File has changed since discovery</source>
|
||||
<translation>Το αρχείο έχει αλλάξει από όταν ανακαλύφθηκε</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="871"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="874"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Σφάλμα εγγραφής μεταδεδομένων στην βάση δεδομένων</translation>
|
||||
</message>
|
||||
|
@ -2227,12 +2227,12 @@ It is not advisable to use it.</source>
|
|||
<context>
|
||||
<name>OCC::PropagateRemoteDelete</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="96"/>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="100"/>
|
||||
<source>The file has been removed from a read only share. It was restored.</source>
|
||||
<translation>Το αρχείο αφαιρέθηκε από ένα διαμοιρασμένο κατάλογο μόνο για ανάγνωση. Το αρχείο επαναφέρθηκε.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="117"/>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="121"/>
|
||||
<source>Wrong HTTP code returned by server. Expected 204, but received "%1 %2".</source>
|
||||
<translation>Ο διακομιστής επέστρεψε εσφαλμένο κωδικό HTTP. Αναμενόταν 204, αλλά ελήφθη "%1 %2".</translation>
|
||||
</message>
|
||||
|
@ -2240,12 +2240,12 @@ It is not advisable to use it.</source>
|
|||
<context>
|
||||
<name>OCC::PropagateRemoteMkdir</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="95"/>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="99"/>
|
||||
<source>Wrong HTTP code returned by server. Expected 201, but received "%1 %2".</source>
|
||||
<translation>Ο διακομιστής επέστρεψε εσφαλμένο κωδικό HTTP. Αναμενόταν 201, αλλά ελήφθη "%1 %2".</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="147"/>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="151"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Σφάλμα εγγραφής μεταδεδομένων στην βάση δεδομένων</translation>
|
||||
</message>
|
||||
|
@ -2263,18 +2263,18 @@ It is not advisable to use it.</source>
|
|||
<translation>Αυτός ο φάκελος δεν πρέπει να μετονομαστεί. Παρακαλώ ονομάστε τον ξανά Κοινόχρηστος.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="137"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="141"/>
|
||||
<source>The file was renamed but is part of a read only share. The original file was restored.</source>
|
||||
<translation>Το αρχείο μετονομάστηκε αλλά είναι τμήμα ενός διαμοιρασμένου καταλόγου μόνο για ανάγνωση. Το αρχικό αρχείο επαναφέρθηκε.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="154"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="158"/>
|
||||
<source>Wrong HTTP code returned by server. Expected 201, but received "%1 %2".</source>
|
||||
<translation>Ο διακομιστής επέστρεψε εσφαλμένο κωδικό HTTP. Αναμενόταν 201, αλλά ελήφθη "%1 %2".</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="186"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="192"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="190"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="196"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Σφάλμα εγγραφής μεταδεδομένων στην βάση δεδομένων</translation>
|
||||
</message>
|
||||
|
@ -2308,7 +2308,7 @@ It is not advisable to use it.</source>
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateupload.cpp" line="618"/>
|
||||
<location filename="../src/libsync/propagateupload.cpp" line="622"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Σφάλμα εγγραφής μεταδεδομένων στην βάση δεδομένων</translation>
|
||||
</message>
|
||||
|
@ -2382,42 +2382,42 @@ It is not advisable to use it.</source>
|
|||
<translation>TextLabel</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="48"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="61"/>
|
||||
<source>Time</source>
|
||||
<translation>Ώρα</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="49"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="62"/>
|
||||
<source>File</source>
|
||||
<translation>Αρχείο</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="50"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="63"/>
|
||||
<source>Folder</source>
|
||||
<translation>Φάκελος</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="51"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="64"/>
|
||||
<source>Action</source>
|
||||
<translation>Ενέργεια</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="52"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="65"/>
|
||||
<source>Size</source>
|
||||
<translation>Μέγεθος</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="72"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="85"/>
|
||||
<source>Local sync protocol</source>
|
||||
<translation>Πρωτόκολλο τοπικού συγχρονισμού</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="74"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="87"/>
|
||||
<source>Copy</source>
|
||||
<translation>Αντιγραφή</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="75"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="88"/>
|
||||
<source>Copy the activity list to the clipboard.</source>
|
||||
<translation>Αντιγραφή της λίστας δραστηριότητας στο πρόχειρο.</translation>
|
||||
</message>
|
||||
|
@ -2549,6 +2549,7 @@ It is not advisable to use it.</source>
|
|||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/settingsdialogmac.cpp" line="152"/>
|
||||
<location filename="../src/gui/settingsdialogmac.cpp" line="211"/>
|
||||
<source>Account</source>
|
||||
<translation>Λογαριασμός</translation>
|
||||
</message>
|
||||
|
@ -3205,22 +3206,22 @@ It is not advisable to use it.</source>
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1278"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1287"/>
|
||||
<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="1285"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1294"/>
|
||||
<source>Not allowed because you don't have permission to add files in that folder</source>
|
||||
<translation>Δεν επιτρέπεται επειδή δεν έχετε δικαιώματα να προσθέσετε αρχεία σε αυτόν τον φάκελο</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1588"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1597"/>
|
||||
<source>Disk space is low: Downloads that would reduce free space below %1 were skipped.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1595"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1604"/>
|
||||
<source>There is insufficient space available on the server for some uploads.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
|
@ -3345,54 +3346,54 @@ It is not advisable to use it.</source>
|
|||
<translation>Αδυναμία ανοίγματος του αρχείου συγχρονισμού</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="968"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="977"/>
|
||||
<source>File name contains at least one invalid character</source>
|
||||
<translation>Το όνομα αρχείου περιέχει έναν τουλάχιστον μη έγκυρο χαρακτήρα</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1204"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1244"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1213"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1253"/>
|
||||
<source>Ignored because of the "choose what to sync" blacklist</source>
|
||||
<translation>Αγνοήθηκε εξαιτίας της μαύρης λίστας "διάλεξε τι να συγχρονιστεί"</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1263"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1272"/>
|
||||
<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="1310"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1319"/>
|
||||
<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="1326"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1345"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1335"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1354"/>
|
||||
<source>Not allowed to remove, restoring</source>
|
||||
<translation>Δεν επιτρέπεται η αφαίρεση, αποκατάσταση σε εξέλιξη</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1359"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1368"/>
|
||||
<source>Local files and share folder removed.</source>
|
||||
<translation>Οι τοπικοί φάκελοι και ο φάκελος κοινής χρήσης αφαιρέθηκαν.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1413"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1422"/>
|
||||
<source>Move not allowed, item restored</source>
|
||||
<translation>Η μετακίνηση δεν επιτρέπεται, το αντικείμενο αποκαταστάθηκε</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1424"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1433"/>
|
||||
<source>Move not allowed because %1 is read-only</source>
|
||||
<translation>Η μετακίνηση δεν επιτρέπεται επειδή το %1 είναι μόνο για ανάγνωση</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1424"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1433"/>
|
||||
<source>the destination</source>
|
||||
<translation>ο προορισμός</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1424"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1433"/>
|
||||
<source>the source</source>
|
||||
<translation>η προέλευση</translation>
|
||||
</message>
|
||||
|
@ -3434,17 +3435,17 @@ It is not advisable to use it.</source>
|
|||
<context>
|
||||
<name>OCC::ValidateChecksumHeader</name>
|
||||
<message>
|
||||
<location filename="../src/common/checksums.cpp" line="205"/>
|
||||
<location filename="../src/common/checksums.cpp" line="218"/>
|
||||
<source>The checksum header is malformed.</source>
|
||||
<translation>Η κεφαλίδα του αθροίσματος ελέγχου δεν είναι σωστά διαμορφωμένη.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/common/checksums.cpp" line="220"/>
|
||||
<location filename="../src/common/checksums.cpp" line="233"/>
|
||||
<source>The checksum header contained an unknown checksum type '%1'</source>
|
||||
<translation>Το checksum header περιέχει άγνωστο τύπο checksum '%1'</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/common/checksums.cpp" line="224"/>
|
||||
<location filename="../src/common/checksums.cpp" line="237"/>
|
||||
<source>The downloaded file does not match the checksum, it will be resumed.</source>
|
||||
<translation>Το αρχείο που μεταφορτώθηκε δεν επαληθεύει το άθροισμα ελέγχου, θα συγχρονιστεί πάλι.</translation>
|
||||
</message>
|
||||
|
|
|
@ -604,7 +604,7 @@
|
|||
<context>
|
||||
<name>OCC::CleanupPollsJob</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="990"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="1001"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -773,24 +773,24 @@
|
|||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="883"/>
|
||||
<location filename="../src/gui/folder.cpp" line="888"/>
|
||||
<source>A new folder larger than %1 MB has been added: %2.
|
||||
</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="886"/>
|
||||
<location filename="../src/gui/folder.cpp" line="891"/>
|
||||
<source>A folder from an external storage has been added.
|
||||
</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="887"/>
|
||||
<location filename="../src/gui/folder.cpp" line="892"/>
|
||||
<source>Please go in the settings to select it if you wish to download it.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="922"/>
|
||||
<location filename="../src/gui/folder.cpp" line="927"/>
|
||||
<source>All files in the sync folder '%1' folder were deleted on the server.
|
||||
These deletes will be synchronized to your local sync folder, making such files unavailable unless you have a right to restore.
|
||||
If you decide to keep the files, they will be re-synced with the server if you have rights to do so.
|
||||
|
@ -798,46 +798,46 @@ If you decide to delete the files, they will be unavailable to you, unless you a
|
|||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="927"/>
|
||||
<location filename="../src/gui/folder.cpp" line="932"/>
|
||||
<source>All the files in your local sync folder '%1' were deleted. These deletes will be synchronized with your server, making such files unavailable unless restored.
|
||||
Are you sure you want to sync those actions with the server?
|
||||
If this was an accident and you decide to keep your files, they will be re-synced from the server.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="931"/>
|
||||
<location filename="../src/gui/folder.cpp" line="936"/>
|
||||
<source>Remove All Files?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="934"/>
|
||||
<location filename="../src/gui/folder.cpp" line="939"/>
|
||||
<source>Remove all files</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="935"/>
|
||||
<location filename="../src/gui/folder.cpp" line="940"/>
|
||||
<source>Keep files</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="952"/>
|
||||
<location filename="../src/gui/folder.cpp" line="957"/>
|
||||
<source>This sync would reset the files to an earlier time in the sync folder '%1'.
|
||||
This might be because a backup was restored on the server.
|
||||
Continuing the sync as normal will cause all your files to be overwritten by an older file in an earlier state. Do you want to keep your local most recent files as conflict files?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="957"/>
|
||||
<location filename="../src/gui/folder.cpp" line="962"/>
|
||||
<source>Backup detected</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="960"/>
|
||||
<location filename="../src/gui/folder.cpp" line="965"/>
|
||||
<source>Normal Synchronisation</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="961"/>
|
||||
<location filename="../src/gui/folder.cpp" line="966"/>
|
||||
<source>Keep Local Files as Conflict</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -1314,22 +1314,22 @@ Continuing the sync as normal will cause all your files to be overwritten by an
|
|||
<context>
|
||||
<name>OCC::HttpCredentialsGui</name>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="97"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="98"/>
|
||||
<source>Please enter %1 password:<br><br>User: %2<br>Account: %3<br></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="111"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="112"/>
|
||||
<source>Reading from keychain failed with error: '%1'</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="117"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="118"/>
|
||||
<source>Enter Password</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="154"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="155"/>
|
||||
<source><a href="%1">Click here</a> to request an app password from the web interface.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -1449,12 +1449,12 @@ Items where deletion is allowed will be deleted if they prevent a directory from
|
|||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/issueswidget.ui" line="145"/>
|
||||
<location filename="../src/gui/issueswidget.ui" line="148"/>
|
||||
<source>Copy the issues list to the clipboard.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/issueswidget.ui" line="148"/>
|
||||
<location filename="../src/gui/issueswidget.ui" line="151"/>
|
||||
<source>Copy</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -1938,144 +1938,144 @@ It is not advisable to use it.</source>
|
|||
<context>
|
||||
<name>OCC::OwncloudSetupWizard</name>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="217"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="250"/>
|
||||
<source><font color="green">Successfully connected to %1: %2 version %3 (%4)</font><br/><br/></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="251"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="280"/>
|
||||
<source>Failed to connect to %1 at %2:<br/>%3</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="285"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="314"/>
|
||||
<source>Timeout while trying to connect to %1 at %2.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="296"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="334"/>
|
||||
<source>Trying to connect to %1 at %2...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="347"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="385"/>
|
||||
<source>The authenticated request to the server was redirected to '%1'. The URL is bad, the server is misconfigured.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="369"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="407"/>
|
||||
<source>There was an invalid response to an authenticated webdav request</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="360"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="398"/>
|
||||
<source>Access forbidden by server. To verify that you have proper access, <a href="%1">click here</a> to access the service with your browser.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="249"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="278"/>
|
||||
<source>Invalid URL</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="414"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="452"/>
|
||||
<source>Local sync folder %1 already exists, setting it up for sync.<br/><br/></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="417"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="455"/>
|
||||
<source>Creating local sync folder %1...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="421"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="459"/>
|
||||
<source>ok</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="423"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="461"/>
|
||||
<source>failed.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="425"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="463"/>
|
||||
<source>Could not create local folder %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="451"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="489"/>
|
||||
<source>No remote folder specified!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="457"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="495"/>
|
||||
<source>Error: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="470"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="508"/>
|
||||
<source>creating folder on ownCloud: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="486"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="524"/>
|
||||
<source>Remote folder %1 created successfully.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="488"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="526"/>
|
||||
<source>The remote folder %1 already exists. Connecting it for syncing.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="490"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="492"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="528"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="530"/>
|
||||
<source>The folder creation resulted in HTTP error code %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="494"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="532"/>
|
||||
<source>The remote folder creation failed because the provided credentials are wrong!<br/>Please go back and check your credentials.</p></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="498"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="536"/>
|
||||
<source><p><font color="red">Remote folder creation failed probably because the provided credentials are wrong.</font><br/>Please go back and check your credentials.</p></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="503"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="504"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="541"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="542"/>
|
||||
<source>Remote folder %1 creation failed with error <tt>%2</tt>.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="521"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="559"/>
|
||||
<source>A sync connection from %1 to remote directory %2 was set up.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="526"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="564"/>
|
||||
<source>Successfully connected to %1!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="533"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="571"/>
|
||||
<source>Connection to %1 could not be established. Please check again.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="547"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="585"/>
|
||||
<source>Folder rename failed</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="548"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="586"/>
|
||||
<source>Can't remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="593"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="631"/>
|
||||
<source><font color="green"><b>Local sync folder %1 successfully created!</b></font></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -2122,7 +2122,7 @@ It is not advisable to use it.</source>
|
|||
<context>
|
||||
<name>OCC::PropagateDirectory</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="942"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="953"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -2160,17 +2160,17 @@ It is not advisable to use it.</source>
|
|||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="772"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="775"/>
|
||||
<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="820"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="823"/>
|
||||
<source>File has changed since discovery</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="871"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="874"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -2246,12 +2246,12 @@ It is not advisable to use it.</source>
|
|||
<context>
|
||||
<name>OCC::PropagateRemoteDelete</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="96"/>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="100"/>
|
||||
<source>The file has been removed from a read only share. It was restored.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="117"/>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="121"/>
|
||||
<source>Wrong HTTP code returned by server. Expected 204, but received "%1 %2".</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -2259,12 +2259,12 @@ It is not advisable to use it.</source>
|
|||
<context>
|
||||
<name>OCC::PropagateRemoteMkdir</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="95"/>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="99"/>
|
||||
<source>Wrong HTTP code returned by server. Expected 201, but received "%1 %2".</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="147"/>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="151"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -2282,18 +2282,18 @@ It is not advisable to use it.</source>
|
|||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="137"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="141"/>
|
||||
<source>The file was renamed but is part of a read only share. The original file was restored.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="154"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="158"/>
|
||||
<source>Wrong HTTP code returned by server. Expected 201, but received "%1 %2".</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="186"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="192"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="190"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="196"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -2327,7 +2327,7 @@ It is not advisable to use it.</source>
|
|||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateupload.cpp" line="618"/>
|
||||
<location filename="../src/libsync/propagateupload.cpp" line="622"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -2401,42 +2401,42 @@ It is not advisable to use it.</source>
|
|||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="48"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="61"/>
|
||||
<source>Time</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="49"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="62"/>
|
||||
<source>File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="50"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="63"/>
|
||||
<source>Folder</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="51"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="64"/>
|
||||
<source>Action</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="52"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="65"/>
|
||||
<source>Size</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="72"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="85"/>
|
||||
<source>Local sync protocol</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="74"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="87"/>
|
||||
<source>Copy</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="75"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="88"/>
|
||||
<source>Copy the activity list to the clipboard.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -2568,6 +2568,7 @@ It is not advisable to use it.</source>
|
|||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/settingsdialogmac.cpp" line="152"/>
|
||||
<location filename="../src/gui/settingsdialogmac.cpp" line="211"/>
|
||||
<source>Account</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -3222,22 +3223,22 @@ It is not advisable to use it.</source>
|
|||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1278"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1287"/>
|
||||
<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="1285"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1294"/>
|
||||
<source>Not allowed because you don't have permission to add files in that folder</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1588"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1597"/>
|
||||
<source>Disk space is low: Downloads that would reduce free space below %1 were skipped.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1595"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1604"/>
|
||||
<source>There is insufficient space available on the server for some uploads.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -3362,54 +3363,54 @@ It is not advisable to use it.</source>
|
|||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="968"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="977"/>
|
||||
<source>File name contains at least one invalid character</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1204"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1244"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1213"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1253"/>
|
||||
<source>Ignored because of the "choose what to sync" blacklist</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1263"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1272"/>
|
||||
<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="1310"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1319"/>
|
||||
<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="1326"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1345"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1335"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1354"/>
|
||||
<source>Not allowed to remove, restoring</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1359"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1368"/>
|
||||
<source>Local files and share folder removed.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1413"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1422"/>
|
||||
<source>Move not allowed, item restored</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1424"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1433"/>
|
||||
<source>Move not allowed because %1 is read-only</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1424"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1433"/>
|
||||
<source>the destination</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1424"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1433"/>
|
||||
<source>the source</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -3451,17 +3452,17 @@ It is not advisable to use it.</source>
|
|||
<context>
|
||||
<name>OCC::ValidateChecksumHeader</name>
|
||||
<message>
|
||||
<location filename="../src/common/checksums.cpp" line="205"/>
|
||||
<location filename="../src/common/checksums.cpp" line="218"/>
|
||||
<source>The checksum header is malformed.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/common/checksums.cpp" line="220"/>
|
||||
<location filename="../src/common/checksums.cpp" line="233"/>
|
||||
<source>The checksum header contained an unknown checksum type '%1'</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/common/checksums.cpp" line="224"/>
|
||||
<location filename="../src/common/checksums.cpp" line="237"/>
|
||||
<source>The downloaded file does not match the checksum, it will be resumed.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
|
|
@ -596,7 +596,7 @@
|
|||
<context>
|
||||
<name>OCC::CleanupPollsJob</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="990"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="1001"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Error al escribir los metadatos en la base de datos</translation>
|
||||
</message>
|
||||
|
@ -744,26 +744,26 @@
|
|||
<translation>No se ha podido leer el archivo de exclusión del sistema</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="883"/>
|
||||
<location filename="../src/gui/folder.cpp" line="888"/>
|
||||
<source>A new folder larger than %1 MB has been added: %2.
|
||||
</source>
|
||||
<translation>Una carpeta mayor de %1 MB ha sido añadida: %2.
|
||||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="886"/>
|
||||
<location filename="../src/gui/folder.cpp" line="891"/>
|
||||
<source>A folder from an external storage has been added.
|
||||
</source>
|
||||
<translation>Una carpeta de almacenamiento externo ha sido añadida.
|
||||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="887"/>
|
||||
<location filename="../src/gui/folder.cpp" line="892"/>
|
||||
<source>Please go in the settings to select it if you wish to download it.</source>
|
||||
<translation>Por favor vaya a opciones a seleccionarlo si desea descargar esto.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="922"/>
|
||||
<location filename="../src/gui/folder.cpp" line="927"/>
|
||||
<source>All files in the sync folder '%1' folder were deleted on the server.
|
||||
These deletes will be synchronized to your local sync folder, making such files unavailable unless you have a right to restore.
|
||||
If you decide to keep the files, they will be re-synced with the server if you have rights to do so.
|
||||
|
@ -774,7 +774,7 @@ Si decide mantener estos archivos, serán re-sincronizados con el servidor si Vd
|
|||
Si decide borrarlos, no serán visibles para Vd. a menos que sea usted el propietario.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="927"/>
|
||||
<location filename="../src/gui/folder.cpp" line="932"/>
|
||||
<source>All the files in your local sync folder '%1' were deleted. These deletes will be synchronized with your server, making such files unavailable unless restored.
|
||||
Are you sure you want to sync those actions with the server?
|
||||
If this was an accident and you decide to keep your files, they will be re-synced from the server.</source>
|
||||
|
@ -783,22 +783,22 @@ If this was an accident and you decide to keep your files, they will be re-synce
|
|||
Si ha sido un accidente, y decide mantener los archivos, serán re-sincronizados con el servidor.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="931"/>
|
||||
<location filename="../src/gui/folder.cpp" line="936"/>
|
||||
<source>Remove All Files?</source>
|
||||
<translation>¿Eliminar todos los archivos?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="934"/>
|
||||
<location filename="../src/gui/folder.cpp" line="939"/>
|
||||
<source>Remove all files</source>
|
||||
<translation>Eliminar todos los archivos</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="935"/>
|
||||
<location filename="../src/gui/folder.cpp" line="940"/>
|
||||
<source>Keep files</source>
|
||||
<translation>Conservar archivos</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="952"/>
|
||||
<location filename="../src/gui/folder.cpp" line="957"/>
|
||||
<source>This sync would reset the files to an earlier time in the sync folder '%1'.
|
||||
This might be because a backup was restored on the server.
|
||||
Continuing the sync as normal will cause all your files to be overwritten by an older file in an earlier state. Do you want to keep your local most recent files as conflict files?</source>
|
||||
|
@ -807,17 +807,17 @@ Esto puede deberse a que una copia de seguridad fue restaurada en el servidor.
|
|||
Si continua con la sincronización todos los archivos serán remplazados por su versión previa. ¿Desea mantener los archivos locales en su versión actual como archivos en conflicto?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="957"/>
|
||||
<location filename="../src/gui/folder.cpp" line="962"/>
|
||||
<source>Backup detected</source>
|
||||
<translation>Backup detectado</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="960"/>
|
||||
<location filename="../src/gui/folder.cpp" line="965"/>
|
||||
<source>Normal Synchronisation</source>
|
||||
<translation>Sincronización Normal</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="961"/>
|
||||
<location filename="../src/gui/folder.cpp" line="966"/>
|
||||
<source>Keep Local Files as Conflict</source>
|
||||
<translation>Mantener los archivos locales en caso de conflicto</translation>
|
||||
</message>
|
||||
|
@ -1291,22 +1291,22 @@ Si continua con la sincronización todos los archivos serán remplazados por su
|
|||
<context>
|
||||
<name>OCC::HttpCredentialsGui</name>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="97"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="98"/>
|
||||
<source>Please enter %1 password:<br><br>User: %2<br>Account: %3<br></source>
|
||||
<translation>Por favor introduzca la contraseña de %1:<br><br>Usuario: %2<br>Cuenta: %3<br></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="111"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="112"/>
|
||||
<source>Reading from keychain failed with error: '%1'</source>
|
||||
<translation>La lectura del llavero ha fallado y ha generado este error: '%1'</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="117"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="118"/>
|
||||
<source>Enter Password</source>
|
||||
<translation>Introduzca la contraseña</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="154"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="155"/>
|
||||
<source><a href="%1">Click here</a> to request an app password from the web interface.</source>
|
||||
<translation><a href="%1">Haga clic aquí</a> para solicitar una contraseña de aplicación desde la interfaz web.</translation>
|
||||
</message>
|
||||
|
@ -1428,12 +1428,12 @@ Los elementos cuya eliminación está permitida serán eliminados si impiden que
|
|||
<translation>Mostrar archivos ignorados</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/issueswidget.ui" line="145"/>
|
||||
<location filename="../src/gui/issueswidget.ui" line="148"/>
|
||||
<source>Copy the issues list to the clipboard.</source>
|
||||
<translation>Copiar la lista de problemas al portapapeles.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/issueswidget.ui" line="148"/>
|
||||
<location filename="../src/gui/issueswidget.ui" line="151"/>
|
||||
<source>Copy</source>
|
||||
<translation>Copiar</translation>
|
||||
</message>
|
||||
|
@ -1918,144 +1918,144 @@ No se recomienda usarla.</translation>
|
|||
<context>
|
||||
<name>OCC::OwncloudSetupWizard</name>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="217"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="250"/>
|
||||
<source><font color="green">Successfully connected to %1: %2 version %3 (%4)</font><br/><br/></source>
|
||||
<translation><font color="green">Conectado con éxito a %1: versión %2 %3 (%4)</font><br/><br/></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="251"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="280"/>
|
||||
<source>Failed to connect to %1 at %2:<br/>%3</source>
|
||||
<translation>Fallo al conectar %1 a %2:<br/>%3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="285"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="314"/>
|
||||
<source>Timeout while trying to connect to %1 at %2.</source>
|
||||
<translation>Tiempo de espera agotado mientras se intentaba conectar a %1 en %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="296"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="334"/>
|
||||
<source>Trying to connect to %1 at %2...</source>
|
||||
<translation>Intentando conectar a %1 desde %2...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="347"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="385"/>
|
||||
<source>The authenticated request to the server was redirected to '%1'. The URL is bad, the server is misconfigured.</source>
|
||||
<translation>La petición autenticada al servidor ha sido redirigida a '%1'. La dirección URL es errónea, el servidor está mal configurado.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="369"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="407"/>
|
||||
<source>There was an invalid response to an authenticated webdav request</source>
|
||||
<translation>Ha habido una respuesta no válida a una solicitud autenticada de webdav</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="360"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="398"/>
|
||||
<source>Access forbidden by server. To verify that you have proper access, <a href="%1">click here</a> to access the service with your browser.</source>
|
||||
<translation>Acceso denegado por el servidor. Para verificar que usted tiene acceso, <a href="%1">haga clic aquí</a> para acceder al servicio con su navegador.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="249"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="278"/>
|
||||
<source>Invalid URL</source>
|
||||
<translation>URL inválida.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="414"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="452"/>
|
||||
<source>Local sync folder %1 already exists, setting it up for sync.<br/><br/></source>
|
||||
<translation>La carpeta de sincronización local %1 ya existe, configurándola para la sincronización.<br/><br/></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="417"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="455"/>
|
||||
<source>Creating local sync folder %1...</source>
|
||||
<translation>Creando carpeta de sincronización local %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="421"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="459"/>
|
||||
<source>ok</source>
|
||||
<translation>bien</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="423"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="461"/>
|
||||
<source>failed.</source>
|
||||
<translation>ha fallado.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="425"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="463"/>
|
||||
<source>Could not create local folder %1</source>
|
||||
<translation>No se ha podido crear la carpeta local %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="451"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="489"/>
|
||||
<source>No remote folder specified!</source>
|
||||
<translation>¡No se ha especificado ninguna carpeta remota!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="457"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="495"/>
|
||||
<source>Error: %1</source>
|
||||
<translation>Error: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="470"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="508"/>
|
||||
<source>creating folder on ownCloud: %1</source>
|
||||
<translation>creando carpeta en ownCloud: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="486"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="524"/>
|
||||
<source>Remote folder %1 created successfully.</source>
|
||||
<translation>Carpeta remota %1 creado correctamente.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="488"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="526"/>
|
||||
<source>The remote folder %1 already exists. Connecting it for syncing.</source>
|
||||
<translation>La carpeta remota %1 ya existe. Conectándola para sincronizacion.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="490"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="492"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="528"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="530"/>
|
||||
<source>The folder creation resulted in HTTP error code %1</source>
|
||||
<translation>La creación de la carpeta ha producido el código de error HTTP %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="494"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="532"/>
|
||||
<source>The remote folder creation failed because the provided credentials are wrong!<br/>Please go back and check your credentials.</p></source>
|
||||
<translation>¡La creación de la carpeta remota ha fallado debido a que las credenciales proporcionadas son incorrectas!<br/>Por favor, vuelva atrás y compruebe sus credenciales</p></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="498"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="536"/>
|
||||
<source><p><font color="red">Remote folder creation failed probably because the provided credentials are wrong.</font><br/>Please go back and check your credentials.</p></source>
|
||||
<translation><p><font color="red">La creación de la carpeta remota ha fallado, probablemente porque las credenciales proporcionadas son incorrectas.</font><br/>Por favor, vuelva atrás y compruebe sus credenciales.</p></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="503"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="504"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="541"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="542"/>
|
||||
<source>Remote folder %1 creation failed with error <tt>%2</tt>.</source>
|
||||
<translation>Creación %1 de carpeta remota ha fallado con el error <tt>%2</tt>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="521"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="559"/>
|
||||
<source>A sync connection from %1 to remote directory %2 was set up.</source>
|
||||
<translation>Se ha configarado una conexión de sincronización desde %1 al directorio remoto %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="526"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="564"/>
|
||||
<source>Successfully connected to %1!</source>
|
||||
<translation>¡Conectado con éxito a %1!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="533"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="571"/>
|
||||
<source>Connection to %1 could not be established. Please check again.</source>
|
||||
<translation>No se ha podido establecer la conexión con %1. Por favor, compruébelo de nuevo.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="547"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="585"/>
|
||||
<source>Folder rename failed</source>
|
||||
<translation>Error al renombrar la carpeta</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="548"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="586"/>
|
||||
<source>Can't remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup.</source>
|
||||
<translation>No se puede eliminar y respaldar la carpeta porque la misma o un fichero en ella está abierto por otro programa. Por favor, cierre la carpeta o el fichero y reintente, o cancele la instalación.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="593"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="631"/>
|
||||
<source><font color="green"><b>Local sync folder %1 successfully created!</b></font></source>
|
||||
<translation><font color="green"><b>Carpeta de sincronización local %1 creada con éxito</b></font></translation>
|
||||
</message>
|
||||
|
@ -2102,7 +2102,7 @@ No se recomienda usarla.</translation>
|
|||
<context>
|
||||
<name>OCC::PropagateDirectory</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="942"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="953"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Error al escribir los metadatos en la base de datos</translation>
|
||||
</message>
|
||||
|
@ -2140,17 +2140,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="772"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="775"/>
|
||||
<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="820"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="823"/>
|
||||
<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="871"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="874"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Error al escribir los metadatos en la base de datos</translation>
|
||||
</message>
|
||||
|
@ -2226,12 +2226,12 @@ No se recomienda usarla.</translation>
|
|||
<context>
|
||||
<name>OCC::PropagateRemoteDelete</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="96"/>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="100"/>
|
||||
<source>The file has been removed from a read only share. It was restored.</source>
|
||||
<translation>El archvo fue eliminado de una carpeta compartida en modo de solo lectura. Ha sido recuperado.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="117"/>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="121"/>
|
||||
<source>Wrong HTTP code returned by server. Expected 204, but received "%1 %2".</source>
|
||||
<translation>El código HTTP devuelto por el servidor es erróneo. Esperado 204, pero recibido "%1 %2".</translation>
|
||||
</message>
|
||||
|
@ -2239,12 +2239,12 @@ No se recomienda usarla.</translation>
|
|||
<context>
|
||||
<name>OCC::PropagateRemoteMkdir</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="95"/>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="99"/>
|
||||
<source>Wrong HTTP code returned by server. Expected 201, but received "%1 %2".</source>
|
||||
<translation>El código HTTP devuelto por el servidor es erróneo. Esperado 201, pero recibido "%1 %2".</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="147"/>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="151"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Error al escribir los metadatos en la base de datos</translation>
|
||||
</message>
|
||||
|
@ -2262,18 +2262,18 @@ No se recomienda usarla.</translation>
|
|||
<translation>Esta carpeta no debe ser renombrada. Favor de renombrar a Compartida.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="137"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="141"/>
|
||||
<source>The file was renamed but is part of a read only share. The original file was restored.</source>
|
||||
<translation>El archivo fue renombrado, pero es parte de una carpeta compartida en modo de solo lectura. El archivo original ha sido recuperado.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="154"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="158"/>
|
||||
<source>Wrong HTTP code returned by server. Expected 201, but received "%1 %2".</source>
|
||||
<translation>El código HTTP devuelto por el servidor es erróneo. Esperado 201, pero recibido "%1 %2".</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="186"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="192"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="190"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="196"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Error al escribir los metadatos en la base de datos</translation>
|
||||
</message>
|
||||
|
@ -2307,7 +2307,7 @@ No se recomienda usarla.</translation>
|
|||
<translation>La subida %1 excede la quota de la carpeta</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateupload.cpp" line="618"/>
|
||||
<location filename="../src/libsync/propagateupload.cpp" line="622"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Error al escribir los metadatos en la base de datos</translation>
|
||||
</message>
|
||||
|
@ -2381,42 +2381,42 @@ No se recomienda usarla.</translation>
|
|||
<translation>Etiqueta de texto</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="48"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="61"/>
|
||||
<source>Time</source>
|
||||
<translation>Hora</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="49"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="62"/>
|
||||
<source>File</source>
|
||||
<translation>Archivo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="50"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="63"/>
|
||||
<source>Folder</source>
|
||||
<translation>Carpeta</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="51"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="64"/>
|
||||
<source>Action</source>
|
||||
<translation>Acción</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="52"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="65"/>
|
||||
<source>Size</source>
|
||||
<translation>Tamaño</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="72"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="85"/>
|
||||
<source>Local sync protocol</source>
|
||||
<translation>Protocolo de sincronización local</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="74"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="87"/>
|
||||
<source>Copy</source>
|
||||
<translation>Copiar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="75"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="88"/>
|
||||
<source>Copy the activity list to the clipboard.</source>
|
||||
<translation>Copie la lista de actividades al portapapeles</translation>
|
||||
</message>
|
||||
|
@ -2548,6 +2548,7 @@ No se recomienda usarla.</translation>
|
|||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/settingsdialogmac.cpp" line="152"/>
|
||||
<location filename="../src/gui/settingsdialogmac.cpp" line="211"/>
|
||||
<source>Account</source>
|
||||
<translation>Cuenta</translation>
|
||||
</message>
|
||||
|
@ -3204,22 +3205,22 @@ No se recomienda usarla.</translation>
|
|||
<translation>Imposible abrir o crear la BBDD local de sync. Asegurese de que tiene permisos de escritura en la carpeta de sync.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1278"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1287"/>
|
||||
<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="1285"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1294"/>
|
||||
<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>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1588"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1597"/>
|
||||
<source>Disk space is low: Downloads that would reduce free space below %1 were skipped.</source>
|
||||
<translation>Poco espacio libre en disco: La descarga lo reducirá por debajo del %1, deberia abortar.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1595"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1604"/>
|
||||
<source>There is insufficient space available on the server for some uploads.</source>
|
||||
<translation>No hay suficiente espacio libre en el servidor para algunas subidas.</translation>
|
||||
</message>
|
||||
|
@ -3344,54 +3345,54 @@ No se recomienda usarla.</translation>
|
|||
<translation>No es posible abrir el diario de sincronización</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="968"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="977"/>
|
||||
<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="1204"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1244"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1213"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1253"/>
|
||||
<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="1263"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1272"/>
|
||||
<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="1310"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1319"/>
|
||||
<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="1326"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1345"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1335"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1354"/>
|
||||
<source>Not allowed to remove, restoring</source>
|
||||
<translation>No está permitido borrar, restaurando.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1359"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1368"/>
|
||||
<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="1413"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1422"/>
|
||||
<source>Move not allowed, item restored</source>
|
||||
<translation>No está permitido mover, elemento restaurado.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1424"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1433"/>
|
||||
<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="1424"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1433"/>
|
||||
<source>the destination</source>
|
||||
<translation>destino</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1424"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1433"/>
|
||||
<source>the source</source>
|
||||
<translation>origen</translation>
|
||||
</message>
|
||||
|
@ -3433,17 +3434,17 @@ No se recomienda usarla.</translation>
|
|||
<context>
|
||||
<name>OCC::ValidateChecksumHeader</name>
|
||||
<message>
|
||||
<location filename="../src/common/checksums.cpp" line="205"/>
|
||||
<location filename="../src/common/checksums.cpp" line="218"/>
|
||||
<source>The checksum header is malformed.</source>
|
||||
<translation>La cabecera del archivo de comprobación es incorrecto.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/common/checksums.cpp" line="220"/>
|
||||
<location filename="../src/common/checksums.cpp" line="233"/>
|
||||
<source>The checksum header contained an unknown checksum type '%1'</source>
|
||||
<translation>La suma de comprobación de cabeceras contenía una suma de comprobación desconocida de tipo '%1'</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/common/checksums.cpp" line="224"/>
|
||||
<location filename="../src/common/checksums.cpp" line="237"/>
|
||||
<source>The downloaded file does not match the checksum, it will be resumed.</source>
|
||||
<translation>El archivo descargado no coincide con el archivo de comprobación, será reanudado.</translation>
|
||||
</message>
|
||||
|
|
|
@ -596,7 +596,7 @@
|
|||
<context>
|
||||
<name>OCC::CleanupPollsJob</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="990"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="1001"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Error escribiendo metadatos a la base de datos</translation>
|
||||
</message>
|
||||
|
@ -744,24 +744,24 @@
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="883"/>
|
||||
<location filename="../src/gui/folder.cpp" line="888"/>
|
||||
<source>A new folder larger than %1 MB has been added: %2.
|
||||
</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="886"/>
|
||||
<location filename="../src/gui/folder.cpp" line="891"/>
|
||||
<source>A folder from an external storage has been added.
|
||||
</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="887"/>
|
||||
<location filename="../src/gui/folder.cpp" line="892"/>
|
||||
<source>Please go in the settings to select it if you wish to download it.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="922"/>
|
||||
<location filename="../src/gui/folder.cpp" line="927"/>
|
||||
<source>All files in the sync folder '%1' folder were deleted on the server.
|
||||
These deletes will be synchronized to your local sync folder, making such files unavailable unless you have a right to restore.
|
||||
If you decide to keep the files, they will be re-synced with the server if you have rights to do so.
|
||||
|
@ -769,46 +769,46 @@ If you decide to delete the files, they will be unavailable to you, unless you a
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="927"/>
|
||||
<location filename="../src/gui/folder.cpp" line="932"/>
|
||||
<source>All the files in your local sync folder '%1' were deleted. These deletes will be synchronized with your server, making such files unavailable unless restored.
|
||||
Are you sure you want to sync those actions with the server?
|
||||
If this was an accident and you decide to keep your files, they will be re-synced from the server.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="931"/>
|
||||
<location filename="../src/gui/folder.cpp" line="936"/>
|
||||
<source>Remove All Files?</source>
|
||||
<translation>¿Borrar todos los archivos?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="934"/>
|
||||
<location filename="../src/gui/folder.cpp" line="939"/>
|
||||
<source>Remove all files</source>
|
||||
<translation>Borrar todos los archivos</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="935"/>
|
||||
<location filename="../src/gui/folder.cpp" line="940"/>
|
||||
<source>Keep files</source>
|
||||
<translation>Conservar archivos</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="952"/>
|
||||
<location filename="../src/gui/folder.cpp" line="957"/>
|
||||
<source>This sync would reset the files to an earlier time in the sync folder '%1'.
|
||||
This might be because a backup was restored on the server.
|
||||
Continuing the sync as normal will cause all your files to be overwritten by an older file in an earlier state. Do you want to keep your local most recent files as conflict files?</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="957"/>
|
||||
<location filename="../src/gui/folder.cpp" line="962"/>
|
||||
<source>Backup detected</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="960"/>
|
||||
<location filename="../src/gui/folder.cpp" line="965"/>
|
||||
<source>Normal Synchronisation</source>
|
||||
<translation>Sincronizacón Normal.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="961"/>
|
||||
<location filename="../src/gui/folder.cpp" line="966"/>
|
||||
<source>Keep Local Files as Conflict</source>
|
||||
<translation>Mantener Archivos Locales como Conflicto</translation>
|
||||
</message>
|
||||
|
@ -1282,22 +1282,22 @@ Continuing the sync as normal will cause all your files to be overwritten by an
|
|||
<context>
|
||||
<name>OCC::HttpCredentialsGui</name>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="97"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="98"/>
|
||||
<source>Please enter %1 password:<br><br>User: %2<br>Account: %3<br></source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="111"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="112"/>
|
||||
<source>Reading from keychain failed with error: '%1'</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="117"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="118"/>
|
||||
<source>Enter Password</source>
|
||||
<translation>Ingresar contraseña</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="154"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="155"/>
|
||||
<source><a href="%1">Click here</a> to request an app password from the web interface.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
|
@ -1417,12 +1417,12 @@ Items where deletion is allowed will be deleted if they prevent a directory from
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/issueswidget.ui" line="145"/>
|
||||
<location filename="../src/gui/issueswidget.ui" line="148"/>
|
||||
<source>Copy the issues list to the clipboard.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/issueswidget.ui" line="148"/>
|
||||
<location filename="../src/gui/issueswidget.ui" line="151"/>
|
||||
<source>Copy</source>
|
||||
<translation>Copiar</translation>
|
||||
</message>
|
||||
|
@ -1906,144 +1906,144 @@ It is not advisable to use it.</source>
|
|||
<context>
|
||||
<name>OCC::OwncloudSetupWizard</name>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="217"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="250"/>
|
||||
<source><font color="green">Successfully connected to %1: %2 version %3 (%4)</font><br/><br/></source>
|
||||
<translation><font color="green">Conectado a %1: versión de %2 %3 (%4)</font><br/><br/></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="251"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="280"/>
|
||||
<source>Failed to connect to %1 at %2:<br/>%3</source>
|
||||
<translation>Falló al conectarse a %1 en %2:<br/>%3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="285"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="314"/>
|
||||
<source>Timeout while trying to connect to %1 at %2.</source>
|
||||
<translation>Tiempo excedido mientras se intentaba conectar a %1 desde %2.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="296"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="334"/>
|
||||
<source>Trying to connect to %1 at %2...</source>
|
||||
<translation>Intentando conectar a %1 en %2...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="347"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="385"/>
|
||||
<source>The authenticated request to the server was redirected to '%1'. The URL is bad, the server is misconfigured.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="369"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="407"/>
|
||||
<source>There was an invalid response to an authenticated webdav request</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="360"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="398"/>
|
||||
<source>Access forbidden by server. To verify that you have proper access, <a href="%1">click here</a> to access the service with your browser.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="249"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="278"/>
|
||||
<source>Invalid URL</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="414"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="452"/>
|
||||
<source>Local sync folder %1 already exists, setting it up for sync.<br/><br/></source>
|
||||
<translation>El directorio de sincronización local %1 ya existe, configurándolo para la sincronización.<br/><br/></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="417"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="455"/>
|
||||
<source>Creating local sync folder %1...</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="421"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="459"/>
|
||||
<source>ok</source>
|
||||
<translation>aceptar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="423"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="461"/>
|
||||
<source>failed.</source>
|
||||
<translation>Error.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="425"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="463"/>
|
||||
<source>Could not create local folder %1</source>
|
||||
<translation>No fue posible crear el directorio local %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="451"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="489"/>
|
||||
<source>No remote folder specified!</source>
|
||||
<translation>¡No se ha especificado un directorio remoto!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="457"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="495"/>
|
||||
<source>Error: %1</source>
|
||||
<translation>Error: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="470"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="508"/>
|
||||
<source>creating folder on ownCloud: %1</source>
|
||||
<translation>Creando carpeta en ownCloud: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="486"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="524"/>
|
||||
<source>Remote folder %1 created successfully.</source>
|
||||
<translation>El directorio remoto %1 fue creado con éxito.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="488"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="526"/>
|
||||
<source>The remote folder %1 already exists. Connecting it for syncing.</source>
|
||||
<translation>El directorio remoto %1 ya existe. Estableciendo conexión para sincronizar.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="490"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="492"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="528"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="530"/>
|
||||
<source>The folder creation resulted in HTTP error code %1</source>
|
||||
<translation>La creación del directorio resultó en un error HTTP con código de error %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="494"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="532"/>
|
||||
<source>The remote folder creation failed because the provided credentials are wrong!<br/>Please go back and check your credentials.</p></source>
|
||||
<translation><p><font color="red">Error al crear el directorio remoto porque las credenciales provistas son incorrectas.</font><br/>Por favor, volvé atrás y verificá tus credenciales.</p></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="498"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="536"/>
|
||||
<source><p><font color="red">Remote folder creation failed probably because the provided credentials are wrong.</font><br/>Please go back and check your credentials.</p></source>
|
||||
<translation><p><font color="red">Error al crear el directorio remoto, probablemente porque las credenciales provistas son incorrectas.</font><br/>Por favor, volvé atrás y verificá tus credenciales.</p></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="503"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="504"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="541"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="542"/>
|
||||
<source>Remote folder %1 creation failed with error <tt>%2</tt>.</source>
|
||||
<translation>Se prtodujo un error <tt>%2</tt> al crear el directorio remoto %1.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="521"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="559"/>
|
||||
<source>A sync connection from %1 to remote directory %2 was set up.</source>
|
||||
<translation>Fue creada una conexión de sincronización desde %1 al directorio remoto %2.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="526"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="564"/>
|
||||
<source>Successfully connected to %1!</source>
|
||||
<translation>Conectado con éxito a %1!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="533"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="571"/>
|
||||
<source>Connection to %1 could not be established. Please check again.</source>
|
||||
<translation>No fue posible establecer la conexión a %1. Por favor, intentalo nuevamente.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="547"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="585"/>
|
||||
<source>Folder rename failed</source>
|
||||
<translation>Error Al Renombrar Directorio</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="548"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="586"/>
|
||||
<source>Can't remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="593"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="631"/>
|
||||
<source><font color="green"><b>Local sync folder %1 successfully created!</b></font></source>
|
||||
<translation><font color="green"><b>Directorio local %1 creado</b></font></translation>
|
||||
</message>
|
||||
|
@ -2090,7 +2090,7 @@ It is not advisable to use it.</source>
|
|||
<context>
|
||||
<name>OCC::PropagateDirectory</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="942"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="953"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Error escribiendo metadatos a la base de datos</translation>
|
||||
</message>
|
||||
|
@ -2128,17 +2128,17 @@ It is not advisable to use it.</source>
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="772"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="775"/>
|
||||
<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="820"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="823"/>
|
||||
<source>File has changed since discovery</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="871"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="874"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Error escribiendo metadatos a la base de datos</translation>
|
||||
</message>
|
||||
|
@ -2214,12 +2214,12 @@ It is not advisable to use it.</source>
|
|||
<context>
|
||||
<name>OCC::PropagateRemoteDelete</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="96"/>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="100"/>
|
||||
<source>The file has been removed from a read only share. It was restored.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="117"/>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="121"/>
|
||||
<source>Wrong HTTP code returned by server. Expected 204, but received "%1 %2".</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
|
@ -2227,12 +2227,12 @@ It is not advisable to use it.</source>
|
|||
<context>
|
||||
<name>OCC::PropagateRemoteMkdir</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="95"/>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="99"/>
|
||||
<source>Wrong HTTP code returned by server. Expected 201, but received "%1 %2".</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="147"/>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="151"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Error escribiendo metadatos a la base de datos</translation>
|
||||
</message>
|
||||
|
@ -2250,18 +2250,18 @@ It is not advisable to use it.</source>
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="137"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="141"/>
|
||||
<source>The file was renamed but is part of a read only share. The original file was restored.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="154"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="158"/>
|
||||
<source>Wrong HTTP code returned by server. Expected 201, but received "%1 %2".</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="186"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="192"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="190"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="196"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Error escribiendo metadatos a la base de datos</translation>
|
||||
</message>
|
||||
|
@ -2295,7 +2295,7 @@ It is not advisable to use it.</source>
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateupload.cpp" line="618"/>
|
||||
<location filename="../src/libsync/propagateupload.cpp" line="622"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Error escribiendo metadatos a la base de datos</translation>
|
||||
</message>
|
||||
|
@ -2369,42 +2369,42 @@ It is not advisable to use it.</source>
|
|||
<translation>EtiquetaDeTexto</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="48"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="61"/>
|
||||
<source>Time</source>
|
||||
<translation>Hora</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="49"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="62"/>
|
||||
<source>File</source>
|
||||
<translation>Archivo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="50"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="63"/>
|
||||
<source>Folder</source>
|
||||
<translation>Carpeta</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="51"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="64"/>
|
||||
<source>Action</source>
|
||||
<translation>Acción</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="52"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="65"/>
|
||||
<source>Size</source>
|
||||
<translation>Tamaño</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="72"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="85"/>
|
||||
<source>Local sync protocol</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="74"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="87"/>
|
||||
<source>Copy</source>
|
||||
<translation>Copiar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="75"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="88"/>
|
||||
<source>Copy the activity list to the clipboard.</source>
|
||||
<translation>Copiar la lista de actividades al portapapeles.</translation>
|
||||
</message>
|
||||
|
@ -2536,6 +2536,7 @@ It is not advisable to use it.</source>
|
|||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/settingsdialogmac.cpp" line="152"/>
|
||||
<location filename="../src/gui/settingsdialogmac.cpp" line="211"/>
|
||||
<source>Account</source>
|
||||
<translation>Cuenta</translation>
|
||||
</message>
|
||||
|
@ -3190,22 +3191,22 @@ It is not advisable to use it.</source>
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1278"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1287"/>
|
||||
<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="1285"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1294"/>
|
||||
<source>Not allowed because you don't have permission to add files in that folder</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1588"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1597"/>
|
||||
<source>Disk space is low: Downloads that would reduce free space below %1 were skipped.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1595"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1604"/>
|
||||
<source>There is insufficient space available on the server for some uploads.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
|
@ -3330,54 +3331,54 @@ It is not advisable to use it.</source>
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="968"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="977"/>
|
||||
<source>File name contains at least one invalid character</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1204"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1244"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1213"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1253"/>
|
||||
<source>Ignored because of the "choose what to sync" blacklist</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1263"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1272"/>
|
||||
<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="1310"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1319"/>
|
||||
<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="1326"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1345"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1335"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1354"/>
|
||||
<source>Not allowed to remove, restoring</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1359"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1368"/>
|
||||
<source>Local files and share folder removed.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1413"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1422"/>
|
||||
<source>Move not allowed, item restored</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1424"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1433"/>
|
||||
<source>Move not allowed because %1 is read-only</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1424"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1433"/>
|
||||
<source>the destination</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1424"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1433"/>
|
||||
<source>the source</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
|
@ -3419,17 +3420,17 @@ It is not advisable to use it.</source>
|
|||
<context>
|
||||
<name>OCC::ValidateChecksumHeader</name>
|
||||
<message>
|
||||
<location filename="../src/common/checksums.cpp" line="205"/>
|
||||
<location filename="../src/common/checksums.cpp" line="218"/>
|
||||
<source>The checksum header is malformed.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/common/checksums.cpp" line="220"/>
|
||||
<location filename="../src/common/checksums.cpp" line="233"/>
|
||||
<source>The checksum header contained an unknown checksum type '%1'</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/common/checksums.cpp" line="224"/>
|
||||
<location filename="../src/common/checksums.cpp" line="237"/>
|
||||
<source>The downloaded file does not match the checksum, it will be resumed.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
|
|
|
@ -596,7 +596,7 @@
|
|||
<context>
|
||||
<name>OCC::CleanupPollsJob</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="990"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="1001"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
|
@ -744,24 +744,24 @@
|
|||
<translation>Süsteemi väljajätmiste faili lugemine ebaõnnestus</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="883"/>
|
||||
<location filename="../src/gui/folder.cpp" line="888"/>
|
||||
<source>A new folder larger than %1 MB has been added: %2.
|
||||
</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="886"/>
|
||||
<location filename="../src/gui/folder.cpp" line="891"/>
|
||||
<source>A folder from an external storage has been added.
|
||||
</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="887"/>
|
||||
<location filename="../src/gui/folder.cpp" line="892"/>
|
||||
<source>Please go in the settings to select it if you wish to download it.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="922"/>
|
||||
<location filename="../src/gui/folder.cpp" line="927"/>
|
||||
<source>All files in the sync folder '%1' folder were deleted on the server.
|
||||
These deletes will be synchronized to your local sync folder, making such files unavailable unless you have a right to restore.
|
||||
If you decide to keep the files, they will be re-synced with the server if you have rights to do so.
|
||||
|
@ -769,46 +769,46 @@ If you decide to delete the files, they will be unavailable to you, unless you a
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="927"/>
|
||||
<location filename="../src/gui/folder.cpp" line="932"/>
|
||||
<source>All the files in your local sync folder '%1' were deleted. These deletes will be synchronized with your server, making such files unavailable unless restored.
|
||||
Are you sure you want to sync those actions with the server?
|
||||
If this was an accident and you decide to keep your files, they will be re-synced from the server.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="931"/>
|
||||
<location filename="../src/gui/folder.cpp" line="936"/>
|
||||
<source>Remove All Files?</source>
|
||||
<translation>Kustutada kõik failid?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="934"/>
|
||||
<location filename="../src/gui/folder.cpp" line="939"/>
|
||||
<source>Remove all files</source>
|
||||
<translation>Kustutada kõik failid</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="935"/>
|
||||
<location filename="../src/gui/folder.cpp" line="940"/>
|
||||
<source>Keep files</source>
|
||||
<translation>Säilita failid</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="952"/>
|
||||
<location filename="../src/gui/folder.cpp" line="957"/>
|
||||
<source>This sync would reset the files to an earlier time in the sync folder '%1'.
|
||||
This might be because a backup was restored on the server.
|
||||
Continuing the sync as normal will cause all your files to be overwritten by an older file in an earlier state. Do you want to keep your local most recent files as conflict files?</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="957"/>
|
||||
<location filename="../src/gui/folder.cpp" line="962"/>
|
||||
<source>Backup detected</source>
|
||||
<translation>Leiti varukoopia</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="960"/>
|
||||
<location filename="../src/gui/folder.cpp" line="965"/>
|
||||
<source>Normal Synchronisation</source>
|
||||
<translation>Tavaline sünkroonimine</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="961"/>
|
||||
<location filename="../src/gui/folder.cpp" line="966"/>
|
||||
<source>Keep Local Files as Conflict</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
|
@ -1282,22 +1282,22 @@ Continuing the sync as normal will cause all your files to be overwritten by an
|
|||
<context>
|
||||
<name>OCC::HttpCredentialsGui</name>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="97"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="98"/>
|
||||
<source>Please enter %1 password:<br><br>User: %2<br>Account: %3<br></source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="111"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="112"/>
|
||||
<source>Reading from keychain failed with error: '%1'</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="117"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="118"/>
|
||||
<source>Enter Password</source>
|
||||
<translation>Sisesta parool</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="154"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="155"/>
|
||||
<source><a href="%1">Click here</a> to request an app password from the web interface.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
|
@ -1417,12 +1417,12 @@ Items where deletion is allowed will be deleted if they prevent a directory from
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/issueswidget.ui" line="145"/>
|
||||
<location filename="../src/gui/issueswidget.ui" line="148"/>
|
||||
<source>Copy the issues list to the clipboard.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/issueswidget.ui" line="148"/>
|
||||
<location filename="../src/gui/issueswidget.ui" line="151"/>
|
||||
<source>Copy</source>
|
||||
<translation>Kopeeri</translation>
|
||||
</message>
|
||||
|
@ -1907,144 +1907,144 @@ Selle kasutamine pole soovitatav.</translation>
|
|||
<context>
|
||||
<name>OCC::OwncloudSetupWizard</name>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="217"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="250"/>
|
||||
<source><font color="green">Successfully connected to %1: %2 version %3 (%4)</font><br/><br/></source>
|
||||
<translation><font color="green">Edukalt ühendatud %1: %2 versioon %3 (4)</font><br/><br/></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="251"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="280"/>
|
||||
<source>Failed to connect to %1 at %2:<br/>%3</source>
|
||||
<translation>Ühendumine ebaõnnestus %1 %2-st:<br/>%3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="285"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="314"/>
|
||||
<source>Timeout while trying to connect to %1 at %2.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="296"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="334"/>
|
||||
<source>Trying to connect to %1 at %2...</source>
|
||||
<translation>Püüan ühenduda %1 kohast %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="347"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="385"/>
|
||||
<source>The authenticated request to the server was redirected to '%1'. The URL is bad, the server is misconfigured.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="369"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="407"/>
|
||||
<source>There was an invalid response to an authenticated webdav request</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="360"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="398"/>
|
||||
<source>Access forbidden by server. To verify that you have proper access, <a href="%1">click here</a> to access the service with your browser.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="249"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="278"/>
|
||||
<source>Invalid URL</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="414"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="452"/>
|
||||
<source>Local sync folder %1 already exists, setting it up for sync.<br/><br/></source>
|
||||
<translation>Kohalik kataloog %1 on juba olemas. Valmistan selle ette sünkroniseerimiseks.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="417"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="455"/>
|
||||
<source>Creating local sync folder %1...</source>
|
||||
<translation>Kohaliku kausta %1 sünkroonimise loomine ... </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="421"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="459"/>
|
||||
<source>ok</source>
|
||||
<translation>ok</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="423"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="461"/>
|
||||
<source>failed.</source>
|
||||
<translation>ebaõnnestus.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="425"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="463"/>
|
||||
<source>Could not create local folder %1</source>
|
||||
<translation>Ei suuda tekitada kohalikku kataloogi %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="451"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="489"/>
|
||||
<source>No remote folder specified!</source>
|
||||
<translation>Ühtegi võrgukataloogi pole määratletud!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="457"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="495"/>
|
||||
<source>Error: %1</source>
|
||||
<translation>Viga: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="470"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="508"/>
|
||||
<source>creating folder on ownCloud: %1</source>
|
||||
<translation>loon uue kataloogi ownCloudi: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="486"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="524"/>
|
||||
<source>Remote folder %1 created successfully.</source>
|
||||
<translation>Eemalolev kaust %1 on loodud.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="488"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="526"/>
|
||||
<source>The remote folder %1 already exists. Connecting it for syncing.</source>
|
||||
<translation>Serveris on kataloog %1 juba olemas. Ühendan selle sünkroniseerimiseks.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="490"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="492"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="528"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="530"/>
|
||||
<source>The folder creation resulted in HTTP error code %1</source>
|
||||
<translation>Kausta tekitamine lõppes HTTP veakoodiga %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="494"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="532"/>
|
||||
<source>The remote folder creation failed because the provided credentials are wrong!<br/>Please go back and check your credentials.</p></source>
|
||||
<translation>Kataloogi loomine serverisse ebaõnnestus, kuna kasutajatõendid on valed!<br/>Palun kontrolli oma kasutajatunnust ja parooli.</p></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="498"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="536"/>
|
||||
<source><p><font color="red">Remote folder creation failed probably because the provided credentials are wrong.</font><br/>Please go back and check your credentials.</p></source>
|
||||
<translation><p><font color="red">Serveris oleva kataloogi tekitamine ebaõnnestus tõenäoliselt valede kasutajatunnuste tõttu.</font><br/>Palun mine tagasi ning kontrolli kasutajatunnust ning parooli.</p></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="503"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="504"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="541"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="542"/>
|
||||
<source>Remote folder %1 creation failed with error <tt>%2</tt>.</source>
|
||||
<translation>Kataloogi %1 tekitamine serverisse ebaõnnestus veaga <tt>%2</tt></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="521"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="559"/>
|
||||
<source>A sync connection from %1 to remote directory %2 was set up.</source>
|
||||
<translation>Loodi sünkroniseerimisühendus kataloogist %1 serveri kataloogi %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="526"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="564"/>
|
||||
<source>Successfully connected to %1!</source>
|
||||
<translation>Edukalt ühendatud %1!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="533"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="571"/>
|
||||
<source>Connection to %1 could not be established. Please check again.</source>
|
||||
<translation>Ühenduse loomine %1 ebaõnnestus. Palun kontrolli uuesti.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="547"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="585"/>
|
||||
<source>Folder rename failed</source>
|
||||
<translation>Kataloogi ümbernimetamine ebaõnnestus</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="548"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="586"/>
|
||||
<source>Can't remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup.</source>
|
||||
<translation>Ei suuda eemaldada ning varundada kataloogi kuna kataloog või selles asuv fail on avatud mõne teise programmi poolt. Palun sulge kataloog või fail ning proovi uuesti või katkesta paigaldus.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="593"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="631"/>
|
||||
<source><font color="green"><b>Local sync folder %1 successfully created!</b></font></source>
|
||||
<translation><font color="green"><b>Kohalik kataloog %1 edukalt loodud!</b></font></translation>
|
||||
</message>
|
||||
|
@ -2091,7 +2091,7 @@ Selle kasutamine pole soovitatav.</translation>
|
|||
<context>
|
||||
<name>OCC::PropagateDirectory</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="942"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="953"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
|
@ -2129,17 +2129,17 @@ Selle kasutamine pole soovitatav.</translation>
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="772"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="775"/>
|
||||
<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="820"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="823"/>
|
||||
<source>File has changed since discovery</source>
|
||||
<translation>Faili on pärast avastamist muudetud</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="871"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="874"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
|
@ -2215,12 +2215,12 @@ Selle kasutamine pole soovitatav.</translation>
|
|||
<context>
|
||||
<name>OCC::PropagateRemoteDelete</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="96"/>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="100"/>
|
||||
<source>The file has been removed from a read only share. It was restored.</source>
|
||||
<translation>Fail oli eemaldatud kirjutamisõiguseta kataloogist. See on nüüd taastatud.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="117"/>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="121"/>
|
||||
<source>Wrong HTTP code returned by server. Expected 204, but received "%1 %2".</source>
|
||||
<translation>Server saatis vale HTTP koodi. Ootuspärane kood oli 204, aga saadeti kood "%1 %2".</translation>
|
||||
</message>
|
||||
|
@ -2228,12 +2228,12 @@ Selle kasutamine pole soovitatav.</translation>
|
|||
<context>
|
||||
<name>OCC::PropagateRemoteMkdir</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="95"/>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="99"/>
|
||||
<source>Wrong HTTP code returned by server. Expected 201, but received "%1 %2".</source>
|
||||
<translation>Server saatis vale HTTP koodi. Ootuspärane kood oli 201, aga saadeti kood "%1 %2".</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="147"/>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="151"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
|
@ -2251,18 +2251,18 @@ Selle kasutamine pole soovitatav.</translation>
|
|||
<translation>Kausta nime ei tohi muuta. Palun pane selle nimeks tagasi Shared.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="137"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="141"/>
|
||||
<source>The file was renamed but is part of a read only share. The original file was restored.</source>
|
||||
<translation>Fail oli ümber nimetatud, kuid see on osa kirjutamisõiguseta jagamisest. Algne fail taastati.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="154"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="158"/>
|
||||
<source>Wrong HTTP code returned by server. Expected 201, but received "%1 %2".</source>
|
||||
<translation>Server saatis vale HTTP koodi. Ootuspärane kood oli 201, aga saadeti kood "%1 %2".</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="186"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="192"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="190"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="196"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
|
@ -2296,7 +2296,7 @@ Selle kasutamine pole soovitatav.</translation>
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateupload.cpp" line="618"/>
|
||||
<location filename="../src/libsync/propagateupload.cpp" line="622"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
|
@ -2370,42 +2370,42 @@ Selle kasutamine pole soovitatav.</translation>
|
|||
<translation>Tekstisilt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="48"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="61"/>
|
||||
<source>Time</source>
|
||||
<translation>Aeg</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="49"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="62"/>
|
||||
<source>File</source>
|
||||
<translation>Fail</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="50"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="63"/>
|
||||
<source>Folder</source>
|
||||
<translation>Kaust</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="51"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="64"/>
|
||||
<source>Action</source>
|
||||
<translation>Tegevus</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="52"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="65"/>
|
||||
<source>Size</source>
|
||||
<translation>Suurus</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="72"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="85"/>
|
||||
<source>Local sync protocol</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="74"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="87"/>
|
||||
<source>Copy</source>
|
||||
<translation>Kopeeri</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="75"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="88"/>
|
||||
<source>Copy the activity list to the clipboard.</source>
|
||||
<translation>Kopeeri tegevuste nimistu puhvrisse.</translation>
|
||||
</message>
|
||||
|
@ -2537,6 +2537,7 @@ Selle kasutamine pole soovitatav.</translation>
|
|||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/settingsdialogmac.cpp" line="152"/>
|
||||
<location filename="../src/gui/settingsdialogmac.cpp" line="211"/>
|
||||
<source>Account</source>
|
||||
<translation>Konto</translation>
|
||||
</message>
|
||||
|
@ -3193,22 +3194,22 @@ Selle kasutamine pole soovitatav.</translation>
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1278"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1287"/>
|
||||
<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="1285"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1294"/>
|
||||
<source>Not allowed because you don't have permission to add files in that folder</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1588"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1597"/>
|
||||
<source>Disk space is low: Downloads that would reduce free space below %1 were skipped.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1595"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1604"/>
|
||||
<source>There is insufficient space available on the server for some uploads.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
|
@ -3333,54 +3334,54 @@ Selle kasutamine pole soovitatav.</translation>
|
|||
<translation>Ei suuda avada sünkroniseeringu zurnaali</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="968"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="977"/>
|
||||
<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="1204"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1244"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1213"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1253"/>
|
||||
<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="1263"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1272"/>
|
||||
<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="1310"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1319"/>
|
||||
<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="1326"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1345"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1335"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1354"/>
|
||||
<source>Not allowed to remove, restoring</source>
|
||||
<translation>Eemaldamine pole lubatud, taastan</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1359"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1368"/>
|
||||
<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="1413"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1422"/>
|
||||
<source>Move not allowed, item restored</source>
|
||||
<translation>Liigutamine pole lubatud, üksus taastatud</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1424"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1433"/>
|
||||
<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="1424"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1433"/>
|
||||
<source>the destination</source>
|
||||
<translation>sihtkoht</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1424"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1433"/>
|
||||
<source>the source</source>
|
||||
<translation>allikas</translation>
|
||||
</message>
|
||||
|
@ -3422,17 +3423,17 @@ Selle kasutamine pole soovitatav.</translation>
|
|||
<context>
|
||||
<name>OCC::ValidateChecksumHeader</name>
|
||||
<message>
|
||||
<location filename="../src/common/checksums.cpp" line="205"/>
|
||||
<location filename="../src/common/checksums.cpp" line="218"/>
|
||||
<source>The checksum header is malformed.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/common/checksums.cpp" line="220"/>
|
||||
<location filename="../src/common/checksums.cpp" line="233"/>
|
||||
<source>The checksum header contained an unknown checksum type '%1'</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/common/checksums.cpp" line="224"/>
|
||||
<location filename="../src/common/checksums.cpp" line="237"/>
|
||||
<source>The downloaded file does not match the checksum, it will be resumed.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
|
|
|
@ -596,7 +596,7 @@
|
|||
<context>
|
||||
<name>OCC::CleanupPollsJob</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="990"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="1001"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Errorea metadatuak datu-basean idaztean</translation>
|
||||
</message>
|
||||
|
@ -744,24 +744,24 @@
|
|||
<translation>Ezin izan da sistemako baztertutakoen fitxategia irakurri</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="883"/>
|
||||
<location filename="../src/gui/folder.cpp" line="888"/>
|
||||
<source>A new folder larger than %1 MB has been added: %2.
|
||||
</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="886"/>
|
||||
<location filename="../src/gui/folder.cpp" line="891"/>
|
||||
<source>A folder from an external storage has been added.
|
||||
</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="887"/>
|
||||
<location filename="../src/gui/folder.cpp" line="892"/>
|
||||
<source>Please go in the settings to select it if you wish to download it.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="922"/>
|
||||
<location filename="../src/gui/folder.cpp" line="927"/>
|
||||
<source>All files in the sync folder '%1' folder were deleted on the server.
|
||||
These deletes will be synchronized to your local sync folder, making such files unavailable unless you have a right to restore.
|
||||
If you decide to keep the files, they will be re-synced with the server if you have rights to do so.
|
||||
|
@ -769,46 +769,46 @@ If you decide to delete the files, they will be unavailable to you, unless you a
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="927"/>
|
||||
<location filename="../src/gui/folder.cpp" line="932"/>
|
||||
<source>All the files in your local sync folder '%1' were deleted. These deletes will be synchronized with your server, making such files unavailable unless restored.
|
||||
Are you sure you want to sync those actions with the server?
|
||||
If this was an accident and you decide to keep your files, they will be re-synced from the server.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="931"/>
|
||||
<location filename="../src/gui/folder.cpp" line="936"/>
|
||||
<source>Remove All Files?</source>
|
||||
<translation>Ezabatu Fitxategi Guztiak?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="934"/>
|
||||
<location filename="../src/gui/folder.cpp" line="939"/>
|
||||
<source>Remove all files</source>
|
||||
<translation>Ezabatu fitxategi guztiak</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="935"/>
|
||||
<location filename="../src/gui/folder.cpp" line="940"/>
|
||||
<source>Keep files</source>
|
||||
<translation>Mantendu fitxategiak</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="952"/>
|
||||
<location filename="../src/gui/folder.cpp" line="957"/>
|
||||
<source>This sync would reset the files to an earlier time in the sync folder '%1'.
|
||||
This might be because a backup was restored on the server.
|
||||
Continuing the sync as normal will cause all your files to be overwritten by an older file in an earlier state. Do you want to keep your local most recent files as conflict files?</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="957"/>
|
||||
<location filename="../src/gui/folder.cpp" line="962"/>
|
||||
<source>Backup detected</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="960"/>
|
||||
<location filename="../src/gui/folder.cpp" line="965"/>
|
||||
<source>Normal Synchronisation</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="961"/>
|
||||
<location filename="../src/gui/folder.cpp" line="966"/>
|
||||
<source>Keep Local Files as Conflict</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
|
@ -1282,22 +1282,22 @@ Continuing the sync as normal will cause all your files to be overwritten by an
|
|||
<context>
|
||||
<name>OCC::HttpCredentialsGui</name>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="97"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="98"/>
|
||||
<source>Please enter %1 password:<br><br>User: %2<br>Account: %3<br></source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="111"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="112"/>
|
||||
<source>Reading from keychain failed with error: '%1'</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="117"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="118"/>
|
||||
<source>Enter Password</source>
|
||||
<translation>Sartu Pasahitza</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="154"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="155"/>
|
||||
<source><a href="%1">Click here</a> to request an app password from the web interface.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
|
@ -1419,12 +1419,12 @@ Ezabatzeko baimena duten itemak ezabatuko dira hauek karpeta bat ezabatzea uzten
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/issueswidget.ui" line="145"/>
|
||||
<location filename="../src/gui/issueswidget.ui" line="148"/>
|
||||
<source>Copy the issues list to the clipboard.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/issueswidget.ui" line="148"/>
|
||||
<location filename="../src/gui/issueswidget.ui" line="151"/>
|
||||
<source>Copy</source>
|
||||
<translation>Kopiatu</translation>
|
||||
</message>
|
||||
|
@ -1909,144 +1909,144 @@ Ez da gomendagarria erabltzea.</translation>
|
|||
<context>
|
||||
<name>OCC::OwncloudSetupWizard</name>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="217"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="250"/>
|
||||
<source><font color="green">Successfully connected to %1: %2 version %3 (%4)</font><br/><br/></source>
|
||||
<translation><font color="green">Konexioa ongi burutu da %1 zerbitzarian: %2 bertsioa %3 (%4)</font><br/><br/></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="251"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="280"/>
|
||||
<source>Failed to connect to %1 at %2:<br/>%3</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="285"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="314"/>
|
||||
<source>Timeout while trying to connect to %1 at %2.</source>
|
||||
<translation>Denbora iraungi da %1era %2n konektatzen saiatzean.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="296"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="334"/>
|
||||
<source>Trying to connect to %1 at %2...</source>
|
||||
<translation>%2 zerbitzarian dagoen %1 konektatzen...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="347"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="385"/>
|
||||
<source>The authenticated request to the server was redirected to '%1'. The URL is bad, the server is misconfigured.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="369"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="407"/>
|
||||
<source>There was an invalid response to an authenticated webdav request</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="360"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="398"/>
|
||||
<source>Access forbidden by server. To verify that you have proper access, <a href="%1">click here</a> to access the service with your browser.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="249"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="278"/>
|
||||
<source>Invalid URL</source>
|
||||
<translation>Baliogabeko URLa</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="414"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="452"/>
|
||||
<source>Local sync folder %1 already exists, setting it up for sync.<br/><br/></source>
|
||||
<translation>Bertako %1 karpeta dagoeneko existitzen da, sinkronizaziorako prestatzen.<br/><br/></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="417"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="455"/>
|
||||
<source>Creating local sync folder %1...</source>
|
||||
<translation>Bertako %1 sinkronizazio karpeta sortzen...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="421"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="459"/>
|
||||
<source>ok</source>
|
||||
<translation>ados</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="423"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="461"/>
|
||||
<source>failed.</source>
|
||||
<translation>huts egin du.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="425"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="463"/>
|
||||
<source>Could not create local folder %1</source>
|
||||
<translation>Ezin da %1 karpeta lokala sortu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="451"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="489"/>
|
||||
<source>No remote folder specified!</source>
|
||||
<translation>Ez da urruneko karpeta zehaztu!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="457"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="495"/>
|
||||
<source>Error: %1</source>
|
||||
<translation>Errorea: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="470"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="508"/>
|
||||
<source>creating folder on ownCloud: %1</source>
|
||||
<translation>ownClouden karpeta sortzen: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="486"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="524"/>
|
||||
<source>Remote folder %1 created successfully.</source>
|
||||
<translation>Urruneko %1 karpeta ongi sortu da.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="488"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="526"/>
|
||||
<source>The remote folder %1 already exists. Connecting it for syncing.</source>
|
||||
<translation>Urruneko %1 karpeta dagoeneko existintzen da. Bertara konetatuko da sinkronizatzeko.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="490"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="492"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="528"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="530"/>
|
||||
<source>The folder creation resulted in HTTP error code %1</source>
|
||||
<translation>Karpeta sortzeak HTTP %1 errore kodea igorri du</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="494"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="532"/>
|
||||
<source>The remote folder creation failed because the provided credentials are wrong!<br/>Please go back and check your credentials.</p></source>
|
||||
<translation>Huts egin du urrutiko karpeta sortzen emandako kredintzialak ez direlako zuzenak!<br/> Egin atzera eta egiaztatu zure kredentzialak.</p></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="498"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="536"/>
|
||||
<source><p><font color="red">Remote folder creation failed probably because the provided credentials are wrong.</font><br/>Please go back and check your credentials.</p></source>
|
||||
<translation><p><font color="red">Urruneko karpeten sortzeak huts egin du ziuraski emandako kredentzialak gaizki daudelako.</font><br/>Mesedez atzera joan eta egiaztatu zure kredentzialak.</p></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="503"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="504"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="541"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="542"/>
|
||||
<source>Remote folder %1 creation failed with error <tt>%2</tt>.</source>
|
||||
<translation>Urruneko %1 karpetaren sortzeak huts egin du <tt>%2</tt> errorearekin.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="521"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="559"/>
|
||||
<source>A sync connection from %1 to remote directory %2 was set up.</source>
|
||||
<translation>Sinkronizazio konexio bat konfiguratu da %1 karpetatik urruneko %2 karpetara.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="526"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="564"/>
|
||||
<source>Successfully connected to %1!</source>
|
||||
<translation>%1-era ongi konektatu da!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="533"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="571"/>
|
||||
<source>Connection to %1 could not be established. Please check again.</source>
|
||||
<translation>%1 konexioa ezin da ezarri. Mesedez egiaztatu berriz.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="547"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="585"/>
|
||||
<source>Folder rename failed</source>
|
||||
<translation>Karpetaren berrizendatzeak huts egin du</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="548"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="586"/>
|
||||
<source>Can't remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup.</source>
|
||||
<translation>Ezin da karpeta ezabatu eta kopia egin, karpeta edo barruko fitxategiren bat beste programa batean irekita dagoelako. Mesedez itxi karpeta edo fitxategia eta sakatu berrekin edo ezeztatu konfigurazioa.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="593"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="631"/>
|
||||
<source><font color="green"><b>Local sync folder %1 successfully created!</b></font></source>
|
||||
<translation><font color="green"><b>Bertako sinkronizazio %1 karpeta ongi sortu da!</b></font></translation>
|
||||
</message>
|
||||
|
@ -2093,7 +2093,7 @@ Ez da gomendagarria erabltzea.</translation>
|
|||
<context>
|
||||
<name>OCC::PropagateDirectory</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="942"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="953"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Errorea metadatuak datu-basean idaztean</translation>
|
||||
</message>
|
||||
|
@ -2131,17 +2131,17 @@ Ez da gomendagarria erabltzea.</translation>
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="772"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="775"/>
|
||||
<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="820"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="823"/>
|
||||
<source>File has changed since discovery</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="871"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="874"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Errorea metadatuak datu-basean idaztean</translation>
|
||||
</message>
|
||||
|
@ -2217,12 +2217,12 @@ Ez da gomendagarria erabltzea.</translation>
|
|||
<context>
|
||||
<name>OCC::PropagateRemoteDelete</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="96"/>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="100"/>
|
||||
<source>The file has been removed from a read only share. It was restored.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="117"/>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="121"/>
|
||||
<source>Wrong HTTP code returned by server. Expected 204, but received "%1 %2".</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
|
@ -2230,12 +2230,12 @@ Ez da gomendagarria erabltzea.</translation>
|
|||
<context>
|
||||
<name>OCC::PropagateRemoteMkdir</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="95"/>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="99"/>
|
||||
<source>Wrong HTTP code returned by server. Expected 201, but received "%1 %2".</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="147"/>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="151"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Errorea metadatuak datu-basean idaztean</translation>
|
||||
</message>
|
||||
|
@ -2253,18 +2253,18 @@ Ez da gomendagarria erabltzea.</translation>
|
|||
<translation>Karpeta hau ezin da berrizendatu. Mesedez jarri berriz Shared izena.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="137"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="141"/>
|
||||
<source>The file was renamed but is part of a read only share. The original file was restored.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="154"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="158"/>
|
||||
<source>Wrong HTTP code returned by server. Expected 201, but received "%1 %2".</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="186"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="192"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="190"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="196"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Errorea metadatuak datu-basean idaztean</translation>
|
||||
</message>
|
||||
|
@ -2298,7 +2298,7 @@ Ez da gomendagarria erabltzea.</translation>
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateupload.cpp" line="618"/>
|
||||
<location filename="../src/libsync/propagateupload.cpp" line="622"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Errorea metadatuak datu-basean idaztean</translation>
|
||||
</message>
|
||||
|
@ -2372,42 +2372,42 @@ Ez da gomendagarria erabltzea.</translation>
|
|||
<translation>TestuEtiketa</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="48"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="61"/>
|
||||
<source>Time</source>
|
||||
<translation>Noiz</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="49"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="62"/>
|
||||
<source>File</source>
|
||||
<translation>Fitxategia</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="50"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="63"/>
|
||||
<source>Folder</source>
|
||||
<translation>Karpeta</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="51"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="64"/>
|
||||
<source>Action</source>
|
||||
<translation>Ekintza</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="52"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="65"/>
|
||||
<source>Size</source>
|
||||
<translation>Tamaina</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="72"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="85"/>
|
||||
<source>Local sync protocol</source>
|
||||
<translation>Bertako sinkronizazio protokolo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="74"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="87"/>
|
||||
<source>Copy</source>
|
||||
<translation>Kopiatu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="75"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="88"/>
|
||||
<source>Copy the activity list to the clipboard.</source>
|
||||
<translation>Kopiatu jarduera zerrenda arbelara.</translation>
|
||||
</message>
|
||||
|
@ -2539,6 +2539,7 @@ Ez da gomendagarria erabltzea.</translation>
|
|||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/settingsdialogmac.cpp" line="152"/>
|
||||
<location filename="../src/gui/settingsdialogmac.cpp" line="211"/>
|
||||
<source>Account</source>
|
||||
<translation>Kontua</translation>
|
||||
</message>
|
||||
|
@ -3193,22 +3194,22 @@ Ez da gomendagarria erabltzea.</translation>
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1278"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1287"/>
|
||||
<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="1285"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1294"/>
|
||||
<source>Not allowed because you don't have permission to add files in that folder</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1588"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1597"/>
|
||||
<source>Disk space is low: Downloads that would reduce free space below %1 were skipped.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1595"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1604"/>
|
||||
<source>There is insufficient space available on the server for some uploads.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
|
@ -3333,54 +3334,54 @@ Ez da gomendagarria erabltzea.</translation>
|
|||
<translation>Ezin da sinkronizazio egunerokoa ireki</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="968"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="977"/>
|
||||
<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="1204"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1244"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1213"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1253"/>
|
||||
<source>Ignored because of the "choose what to sync" blacklist</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1263"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1272"/>
|
||||
<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="1310"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1319"/>
|
||||
<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="1326"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1345"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1335"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1354"/>
|
||||
<source>Not allowed to remove, restoring</source>
|
||||
<translation>Ezabatzeko baimenik gabe, berrezartzen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1359"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1368"/>
|
||||
<source>Local files and share folder removed.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1413"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1422"/>
|
||||
<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="1424"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1433"/>
|
||||
<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="1424"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1433"/>
|
||||
<source>the destination</source>
|
||||
<translation>helburua</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1424"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1433"/>
|
||||
<source>the source</source>
|
||||
<translation>jatorria</translation>
|
||||
</message>
|
||||
|
@ -3422,17 +3423,17 @@ Ez da gomendagarria erabltzea.</translation>
|
|||
<context>
|
||||
<name>OCC::ValidateChecksumHeader</name>
|
||||
<message>
|
||||
<location filename="../src/common/checksums.cpp" line="205"/>
|
||||
<location filename="../src/common/checksums.cpp" line="218"/>
|
||||
<source>The checksum header is malformed.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/common/checksums.cpp" line="220"/>
|
||||
<location filename="../src/common/checksums.cpp" line="233"/>
|
||||
<source>The checksum header contained an unknown checksum type '%1'</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/common/checksums.cpp" line="224"/>
|
||||
<location filename="../src/common/checksums.cpp" line="237"/>
|
||||
<source>The downloaded file does not match the checksum, it will be resumed.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
|
|
|
@ -596,7 +596,7 @@
|
|||
<context>
|
||||
<name>OCC::CleanupPollsJob</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="990"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="1001"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>خطا در نوشتن متادیتا در پایگاه داده</translation>
|
||||
</message>
|
||||
|
@ -744,24 +744,24 @@
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="883"/>
|
||||
<location filename="../src/gui/folder.cpp" line="888"/>
|
||||
<source>A new folder larger than %1 MB has been added: %2.
|
||||
</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="886"/>
|
||||
<location filename="../src/gui/folder.cpp" line="891"/>
|
||||
<source>A folder from an external storage has been added.
|
||||
</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="887"/>
|
||||
<location filename="../src/gui/folder.cpp" line="892"/>
|
||||
<source>Please go in the settings to select it if you wish to download it.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="922"/>
|
||||
<location filename="../src/gui/folder.cpp" line="927"/>
|
||||
<source>All files in the sync folder '%1' folder were deleted on the server.
|
||||
These deletes will be synchronized to your local sync folder, making such files unavailable unless you have a right to restore.
|
||||
If you decide to keep the files, they will be re-synced with the server if you have rights to do so.
|
||||
|
@ -769,46 +769,46 @@ If you decide to delete the files, they will be unavailable to you, unless you a
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="927"/>
|
||||
<location filename="../src/gui/folder.cpp" line="932"/>
|
||||
<source>All the files in your local sync folder '%1' were deleted. These deletes will be synchronized with your server, making such files unavailable unless restored.
|
||||
Are you sure you want to sync those actions with the server?
|
||||
If this was an accident and you decide to keep your files, they will be re-synced from the server.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="931"/>
|
||||
<location filename="../src/gui/folder.cpp" line="936"/>
|
||||
<source>Remove All Files?</source>
|
||||
<translation>حذف تمام فایل ها؟</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="934"/>
|
||||
<location filename="../src/gui/folder.cpp" line="939"/>
|
||||
<source>Remove all files</source>
|
||||
<translation>حذف تمام فایل ها</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="935"/>
|
||||
<location filename="../src/gui/folder.cpp" line="940"/>
|
||||
<source>Keep files</source>
|
||||
<translation>نگه داشتن فایل ها</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="952"/>
|
||||
<location filename="../src/gui/folder.cpp" line="957"/>
|
||||
<source>This sync would reset the files to an earlier time in the sync folder '%1'.
|
||||
This might be because a backup was restored on the server.
|
||||
Continuing the sync as normal will cause all your files to be overwritten by an older file in an earlier state. Do you want to keep your local most recent files as conflict files?</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="957"/>
|
||||
<location filename="../src/gui/folder.cpp" line="962"/>
|
||||
<source>Backup detected</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="960"/>
|
||||
<location filename="../src/gui/folder.cpp" line="965"/>
|
||||
<source>Normal Synchronisation</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="961"/>
|
||||
<location filename="../src/gui/folder.cpp" line="966"/>
|
||||
<source>Keep Local Files as Conflict</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
|
@ -1282,22 +1282,22 @@ Continuing the sync as normal will cause all your files to be overwritten by an
|
|||
<context>
|
||||
<name>OCC::HttpCredentialsGui</name>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="97"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="98"/>
|
||||
<source>Please enter %1 password:<br><br>User: %2<br>Account: %3<br></source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="111"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="112"/>
|
||||
<source>Reading from keychain failed with error: '%1'</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="117"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="118"/>
|
||||
<source>Enter Password</source>
|
||||
<translation>رمز را وارد کنید</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="154"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="155"/>
|
||||
<source><a href="%1">Click here</a> to request an app password from the web interface.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
|
@ -1417,12 +1417,12 @@ Items where deletion is allowed will be deleted if they prevent a directory from
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/issueswidget.ui" line="145"/>
|
||||
<location filename="../src/gui/issueswidget.ui" line="148"/>
|
||||
<source>Copy the issues list to the clipboard.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/issueswidget.ui" line="148"/>
|
||||
<location filename="../src/gui/issueswidget.ui" line="151"/>
|
||||
<source>Copy</source>
|
||||
<translation>کپی کردن</translation>
|
||||
</message>
|
||||
|
@ -1906,144 +1906,144 @@ It is not advisable to use it.</source>
|
|||
<context>
|
||||
<name>OCC::OwncloudSetupWizard</name>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="217"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="250"/>
|
||||
<source><font color="green">Successfully connected to %1: %2 version %3 (%4)</font><br/><br/></source>
|
||||
<translation><font color="green"> با موفقیت متصل شده است به %1: %2 نسخه %3 (%4)</font><br/><br/></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="251"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="280"/>
|
||||
<source>Failed to connect to %1 at %2:<br/>%3</source>
|
||||
<translation>ارتباط ناموفق با %1 در %2:<br/>%3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="285"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="314"/>
|
||||
<source>Timeout while trying to connect to %1 at %2.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="296"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="334"/>
|
||||
<source>Trying to connect to %1 at %2...</source>
|
||||
<translation>تلاش برای اتصال %1 به %2...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="347"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="385"/>
|
||||
<source>The authenticated request to the server was redirected to '%1'. The URL is bad, the server is misconfigured.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="369"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="407"/>
|
||||
<source>There was an invalid response to an authenticated webdav request</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="360"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="398"/>
|
||||
<source>Access forbidden by server. To verify that you have proper access, <a href="%1">click here</a> to access the service with your browser.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="249"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="278"/>
|
||||
<source>Invalid URL</source>
|
||||
<translation>آدرس نامعتبر</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="414"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="452"/>
|
||||
<source>Local sync folder %1 already exists, setting it up for sync.<br/><br/></source>
|
||||
<translation>پوشه همگام سازی محلی %1 در حال حاضر موجود است، تنظیم آن برای همگام سازی. <br/><br/></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="417"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="455"/>
|
||||
<source>Creating local sync folder %1...</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="421"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="459"/>
|
||||
<source>ok</source>
|
||||
<translation>خوب</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="423"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="461"/>
|
||||
<source>failed.</source>
|
||||
<translation>ناموفق.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="425"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="463"/>
|
||||
<source>Could not create local folder %1</source>
|
||||
<translation>نمی تواند پوشه محلی ایجاد کند %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="451"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="489"/>
|
||||
<source>No remote folder specified!</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="457"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="495"/>
|
||||
<source>Error: %1</source>
|
||||
<translation>خطا: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="470"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="508"/>
|
||||
<source>creating folder on ownCloud: %1</source>
|
||||
<translation>ایجاد کردن پوشه بر روی ownCloud: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="486"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="524"/>
|
||||
<source>Remote folder %1 created successfully.</source>
|
||||
<translation>پوشه از راه دور %1 با موفقیت ایجاد شده است.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="488"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="526"/>
|
||||
<source>The remote folder %1 already exists. Connecting it for syncing.</source>
|
||||
<translation>در حال حاضر پوشه از راه دور %1 موجود است. برای همگام سازی به آن متصل شوید.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="490"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="492"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="528"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="530"/>
|
||||
<source>The folder creation resulted in HTTP error code %1</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="494"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="532"/>
|
||||
<source>The remote folder creation failed because the provided credentials are wrong!<br/>Please go back and check your credentials.</p></source>
|
||||
<translation>ایجاد پوشه از راه دور ناموفق بود به علت اینکه اعتبارهای ارائه شده اشتباه هستند!<br/>لطفا اعتبارهای خودتان را بررسی کنید.</p></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="498"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="536"/>
|
||||
<source><p><font color="red">Remote folder creation failed probably because the provided credentials are wrong.</font><br/>Please go back and check your credentials.</p></source>
|
||||
<translation><p><font color="red"> ایجاد پوشه از راه دور ناموفق بود، شاید به علت اعتبارهایی که ارئه شده اند، اشتباه هستند.</font><br/> لطفا باز گردید و اعتبار خود را بررسی کنید.</p></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="503"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="504"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="541"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="542"/>
|
||||
<source>Remote folder %1 creation failed with error <tt>%2</tt>.</source>
|
||||
<translation>ایجاد پوشه از راه دور %1 ناموفق بود با خطا <tt>%2</tt>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="521"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="559"/>
|
||||
<source>A sync connection from %1 to remote directory %2 was set up.</source>
|
||||
<translation>یک اتصال همگام سازی از %1 تا %2 پوشه از راه دور راه اندازی شد.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="526"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="564"/>
|
||||
<source>Successfully connected to %1!</source>
|
||||
<translation>با موفقیت به %1 اتصال یافت!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="533"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="571"/>
|
||||
<source>Connection to %1 could not be established. Please check again.</source>
|
||||
<translation>اتصال به %1 نمی تواند مقرر باشد. لطفا دوباره بررسی کنید.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="547"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="585"/>
|
||||
<source>Folder rename failed</source>
|
||||
<translation>تغییر نام پوشه ناموفق بود</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="548"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="586"/>
|
||||
<source>Can't remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="593"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="631"/>
|
||||
<source><font color="green"><b>Local sync folder %1 successfully created!</b></font></source>
|
||||
<translation><font color="green"><b> پوشه همگام سازی محلی %1 با موفقیت ساخته شده است!</b></font></translation>
|
||||
</message>
|
||||
|
@ -2090,7 +2090,7 @@ It is not advisable to use it.</source>
|
|||
<context>
|
||||
<name>OCC::PropagateDirectory</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="942"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="953"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>خطا در نوشتن متادیتا در پایگاه داده</translation>
|
||||
</message>
|
||||
|
@ -2128,17 +2128,17 @@ It is not advisable to use it.</source>
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="772"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="775"/>
|
||||
<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="820"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="823"/>
|
||||
<source>File has changed since discovery</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="871"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="874"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>خطا در نوشتن متادیتا در پایگاه داده</translation>
|
||||
</message>
|
||||
|
@ -2214,12 +2214,12 @@ It is not advisable to use it.</source>
|
|||
<context>
|
||||
<name>OCC::PropagateRemoteDelete</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="96"/>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="100"/>
|
||||
<source>The file has been removed from a read only share. It was restored.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="117"/>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="121"/>
|
||||
<source>Wrong HTTP code returned by server. Expected 204, but received "%1 %2".</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
|
@ -2227,12 +2227,12 @@ It is not advisable to use it.</source>
|
|||
<context>
|
||||
<name>OCC::PropagateRemoteMkdir</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="95"/>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="99"/>
|
||||
<source>Wrong HTTP code returned by server. Expected 201, but received "%1 %2".</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="147"/>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="151"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>خطا در نوشتن متادیتا در پایگاه داده</translation>
|
||||
</message>
|
||||
|
@ -2250,18 +2250,18 @@ It is not advisable to use it.</source>
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="137"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="141"/>
|
||||
<source>The file was renamed but is part of a read only share. The original file was restored.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="154"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="158"/>
|
||||
<source>Wrong HTTP code returned by server. Expected 201, but received "%1 %2".</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="186"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="192"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="190"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="196"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>خطا در نوشتن متادیتا در پایگاه داده</translation>
|
||||
</message>
|
||||
|
@ -2295,7 +2295,7 @@ It is not advisable to use it.</source>
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateupload.cpp" line="618"/>
|
||||
<location filename="../src/libsync/propagateupload.cpp" line="622"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>خطا در نوشتن متادیتا در پایگاه داده</translation>
|
||||
</message>
|
||||
|
@ -2369,42 +2369,42 @@ It is not advisable to use it.</source>
|
|||
<translation>برچسب متنی</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="48"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="61"/>
|
||||
<source>Time</source>
|
||||
<translation>زمان</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="49"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="62"/>
|
||||
<source>File</source>
|
||||
<translation>فایل</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="50"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="63"/>
|
||||
<source>Folder</source>
|
||||
<translation>پوشه</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="51"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="64"/>
|
||||
<source>Action</source>
|
||||
<translation>فعالیت</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="52"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="65"/>
|
||||
<source>Size</source>
|
||||
<translation>اندازه</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="72"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="85"/>
|
||||
<source>Local sync protocol</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="74"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="87"/>
|
||||
<source>Copy</source>
|
||||
<translation>کپی کردن</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="75"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="88"/>
|
||||
<source>Copy the activity list to the clipboard.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
|
@ -2536,6 +2536,7 @@ It is not advisable to use it.</source>
|
|||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/settingsdialogmac.cpp" line="152"/>
|
||||
<location filename="../src/gui/settingsdialogmac.cpp" line="211"/>
|
||||
<source>Account</source>
|
||||
<translation>حساب کاربری</translation>
|
||||
</message>
|
||||
|
@ -3190,22 +3191,22 @@ It is not advisable to use it.</source>
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1278"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1287"/>
|
||||
<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="1285"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1294"/>
|
||||
<source>Not allowed because you don't have permission to add files in that folder</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1588"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1597"/>
|
||||
<source>Disk space is low: Downloads that would reduce free space below %1 were skipped.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1595"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1604"/>
|
||||
<source>There is insufficient space available on the server for some uploads.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
|
@ -3330,54 +3331,54 @@ It is not advisable to use it.</source>
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="968"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="977"/>
|
||||
<source>File name contains at least one invalid character</source>
|
||||
<translation>نام فایل دارای حداقل یک کاراکتر نامعتبر است</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1204"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1244"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1213"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1253"/>
|
||||
<source>Ignored because of the "choose what to sync" blacklist</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1263"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1272"/>
|
||||
<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="1310"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1319"/>
|
||||
<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="1326"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1345"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1335"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1354"/>
|
||||
<source>Not allowed to remove, restoring</source>
|
||||
<translation>حذف مجاز نیست، در حال بازگردادن</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1359"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1368"/>
|
||||
<source>Local files and share folder removed.</source>
|
||||
<translation>فایلهای محلی و پوشهی اشتراک حذف شد.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1413"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1422"/>
|
||||
<source>Move not allowed, item restored</source>
|
||||
<translation>انتقال مجاز نیست، مورد بازگردانده شد</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1424"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1433"/>
|
||||
<source>Move not allowed because %1 is read-only</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1424"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1433"/>
|
||||
<source>the destination</source>
|
||||
<translation>مقصد</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1424"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1433"/>
|
||||
<source>the source</source>
|
||||
<translation>مبدا</translation>
|
||||
</message>
|
||||
|
@ -3419,17 +3420,17 @@ It is not advisable to use it.</source>
|
|||
<context>
|
||||
<name>OCC::ValidateChecksumHeader</name>
|
||||
<message>
|
||||
<location filename="../src/common/checksums.cpp" line="205"/>
|
||||
<location filename="../src/common/checksums.cpp" line="218"/>
|
||||
<source>The checksum header is malformed.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/common/checksums.cpp" line="220"/>
|
||||
<location filename="../src/common/checksums.cpp" line="233"/>
|
||||
<source>The checksum header contained an unknown checksum type '%1'</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/common/checksums.cpp" line="224"/>
|
||||
<location filename="../src/common/checksums.cpp" line="237"/>
|
||||
<source>The downloaded file does not match the checksum, it will be resumed.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
|
|
|
@ -596,7 +596,7 @@
|
|||
<context>
|
||||
<name>OCC::CleanupPollsJob</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="990"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="1001"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Virhe kirjoittaessa metadataa tietokantaan</translation>
|
||||
</message>
|
||||
|
@ -744,24 +744,24 @@
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="883"/>
|
||||
<location filename="../src/gui/folder.cpp" line="888"/>
|
||||
<source>A new folder larger than %1 MB has been added: %2.
|
||||
</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="886"/>
|
||||
<location filename="../src/gui/folder.cpp" line="891"/>
|
||||
<source>A folder from an external storage has been added.
|
||||
</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="887"/>
|
||||
<location filename="../src/gui/folder.cpp" line="892"/>
|
||||
<source>Please go in the settings to select it if you wish to download it.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="922"/>
|
||||
<location filename="../src/gui/folder.cpp" line="927"/>
|
||||
<source>All files in the sync folder '%1' folder were deleted on the server.
|
||||
These deletes will be synchronized to your local sync folder, making such files unavailable unless you have a right to restore.
|
||||
If you decide to keep the files, they will be re-synced with the server if you have rights to do so.
|
||||
|
@ -769,46 +769,46 @@ If you decide to delete the files, they will be unavailable to you, unless you a
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="927"/>
|
||||
<location filename="../src/gui/folder.cpp" line="932"/>
|
||||
<source>All the files in your local sync folder '%1' were deleted. These deletes will be synchronized with your server, making such files unavailable unless restored.
|
||||
Are you sure you want to sync those actions with the server?
|
||||
If this was an accident and you decide to keep your files, they will be re-synced from the server.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="931"/>
|
||||
<location filename="../src/gui/folder.cpp" line="936"/>
|
||||
<source>Remove All Files?</source>
|
||||
<translation>Poistetaanko kaikki tiedostot?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="934"/>
|
||||
<location filename="../src/gui/folder.cpp" line="939"/>
|
||||
<source>Remove all files</source>
|
||||
<translation>Poista kaikki tiedostot</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="935"/>
|
||||
<location filename="../src/gui/folder.cpp" line="940"/>
|
||||
<source>Keep files</source>
|
||||
<translation>Säilytä tiedostot</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="952"/>
|
||||
<location filename="../src/gui/folder.cpp" line="957"/>
|
||||
<source>This sync would reset the files to an earlier time in the sync folder '%1'.
|
||||
This might be because a backup was restored on the server.
|
||||
Continuing the sync as normal will cause all your files to be overwritten by an older file in an earlier state. Do you want to keep your local most recent files as conflict files?</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="957"/>
|
||||
<location filename="../src/gui/folder.cpp" line="962"/>
|
||||
<source>Backup detected</source>
|
||||
<translation>Varmuuskopio poistettu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="960"/>
|
||||
<location filename="../src/gui/folder.cpp" line="965"/>
|
||||
<source>Normal Synchronisation</source>
|
||||
<translation>Normaali synkronointi</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="961"/>
|
||||
<location filename="../src/gui/folder.cpp" line="966"/>
|
||||
<source>Keep Local Files as Conflict</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
|
@ -1282,22 +1282,22 @@ Continuing the sync as normal will cause all your files to be overwritten by an
|
|||
<context>
|
||||
<name>OCC::HttpCredentialsGui</name>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="97"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="98"/>
|
||||
<source>Please enter %1 password:<br><br>User: %2<br>Account: %3<br></source>
|
||||
<translation>Anna %1-salasana:<br><br>Käyttäjä: %2<br>Tili: %3<br></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="111"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="112"/>
|
||||
<source>Reading from keychain failed with error: '%1'</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="117"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="118"/>
|
||||
<source>Enter Password</source>
|
||||
<translation>Anna salasana</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="154"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="155"/>
|
||||
<source><a href="%1">Click here</a> to request an app password from the web interface.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
|
@ -1419,12 +1419,12 @@ Kohteet, joiden poisto on sallittu, poistetaan, jos ne estävät kansion poistam
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/issueswidget.ui" line="145"/>
|
||||
<location filename="../src/gui/issueswidget.ui" line="148"/>
|
||||
<source>Copy the issues list to the clipboard.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/issueswidget.ui" line="148"/>
|
||||
<location filename="../src/gui/issueswidget.ui" line="151"/>
|
||||
<source>Copy</source>
|
||||
<translation>Kopioi</translation>
|
||||
</message>
|
||||
|
@ -1909,144 +1909,144 @@ Osoitteen käyttäminen ei ole suositeltavaa.</translation>
|
|||
<context>
|
||||
<name>OCC::OwncloudSetupWizard</name>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="217"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="250"/>
|
||||
<source><font color="green">Successfully connected to %1: %2 version %3 (%4)</font><br/><br/></source>
|
||||
<translation><font color="green">Muodostettu yhteys onnistuneesti kohteeseen %1: %2 versio %3 (%4)</font><br/><br/></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="251"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="280"/>
|
||||
<source>Failed to connect to %1 at %2:<br/>%3</source>
|
||||
<translation>Yhteys %1iin osoitteessa %2 epäonnistui:<br/>%3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="285"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="314"/>
|
||||
<source>Timeout while trying to connect to %1 at %2.</source>
|
||||
<translation>Aikakatkaisu yrittäessä yhteyttä kohteeseen %1 osoitteessa %2.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="296"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="334"/>
|
||||
<source>Trying to connect to %1 at %2...</source>
|
||||
<translation>Yritetään yhdistetää palvelimeen %1 portissa %2...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="347"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="385"/>
|
||||
<source>The authenticated request to the server was redirected to '%1'. The URL is bad, the server is misconfigured.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="369"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="407"/>
|
||||
<source>There was an invalid response to an authenticated webdav request</source>
|
||||
<translation>Todennettuun webdav-pyyntöön saatiin virheellinen vastaus</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="360"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="398"/>
|
||||
<source>Access forbidden by server. To verify that you have proper access, <a href="%1">click here</a> to access the service with your browser.</source>
|
||||
<translation>Palvelin esti käyttämisen. Vahvista käyttöoikeutesi palvelimeen <a href="%1">napsauttamalla tästä</a> ja kirjaudu palveluun selaimella.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="249"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="278"/>
|
||||
<source>Invalid URL</source>
|
||||
<translation>Virheellinen verkko-osoite</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="414"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="452"/>
|
||||
<source>Local sync folder %1 already exists, setting it up for sync.<br/><br/></source>
|
||||
<translation>Paikallinen kansio %1 on jo olemassa, asetetaan se synkronoitavaksi.<br/><br/></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="417"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="455"/>
|
||||
<source>Creating local sync folder %1...</source>
|
||||
<translation>Luodaan paikallista synkronointikansiota %1...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="421"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="459"/>
|
||||
<source>ok</source>
|
||||
<translation>ok</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="423"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="461"/>
|
||||
<source>failed.</source>
|
||||
<translation>epäonnistui.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="425"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="463"/>
|
||||
<source>Could not create local folder %1</source>
|
||||
<translation>Paikalliskansion %1 luonti epäonnistui</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="451"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="489"/>
|
||||
<source>No remote folder specified!</source>
|
||||
<translation>Etäkansiota ei määritelty!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="457"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="495"/>
|
||||
<source>Error: %1</source>
|
||||
<translation>Virhe: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="470"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="508"/>
|
||||
<source>creating folder on ownCloud: %1</source>
|
||||
<translation>luodaan kansio ownCloudiin: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="486"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="524"/>
|
||||
<source>Remote folder %1 created successfully.</source>
|
||||
<translation>Etäkansio %1 luotiin onnistuneesti.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="488"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="526"/>
|
||||
<source>The remote folder %1 already exists. Connecting it for syncing.</source>
|
||||
<translation>Etäkansio %1 on jo olemassa. Otetaan siihen yhteyttä tiedostojen täsmäystä varten.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="490"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="492"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="528"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="530"/>
|
||||
<source>The folder creation resulted in HTTP error code %1</source>
|
||||
<translation>Kansion luonti aiheutti HTTP-virhekoodin %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="494"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="532"/>
|
||||
<source>The remote folder creation failed because the provided credentials are wrong!<br/>Please go back and check your credentials.</p></source>
|
||||
<translation>Etäkansion luominen epäonnistui koska antamasi tunnus/salasana ei täsmää!<br/>Ole hyvä ja palaa tarkistamaan tunnus/salasana</p></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="498"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="536"/>
|
||||
<source><p><font color="red">Remote folder creation failed probably because the provided credentials are wrong.</font><br/>Please go back and check your credentials.</p></source>
|
||||
<translation><p><font color="red">Pilvipalvelun etäkansion luominen ei onnistunut , koska tunnistautumistietosi ovat todennäköisesti väärin.</font><br/>Palaa takaisin ja tarkista käyttäjätunnus ja salasana.</p></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="503"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="504"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="541"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="542"/>
|
||||
<source>Remote folder %1 creation failed with error <tt>%2</tt>.</source>
|
||||
<translation>Etäkansion %1 luonti epäonnistui, virhe <tt>%2</tt>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="521"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="559"/>
|
||||
<source>A sync connection from %1 to remote directory %2 was set up.</source>
|
||||
<translation>Täsmäysyhteys kansiosta %1 etäkansioon %2 on asetettu.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="526"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="564"/>
|
||||
<source>Successfully connected to %1!</source>
|
||||
<translation>Yhteys kohteeseen %1 muodostettiin onnistuneesti!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="533"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="571"/>
|
||||
<source>Connection to %1 could not be established. Please check again.</source>
|
||||
<translation>Yhteyttä osoitteeseen %1 ei voitu muodostaa. Ole hyvä ja tarkista uudelleen.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="547"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="585"/>
|
||||
<source>Folder rename failed</source>
|
||||
<translation>Kansion nimen muuttaminen epäonnistui</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="548"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="586"/>
|
||||
<source>Can't remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="593"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="631"/>
|
||||
<source><font color="green"><b>Local sync folder %1 successfully created!</b></font></source>
|
||||
<translation><font color="green"><b>Paikallinen synkronointikansio %1 luotu onnistuneesti!</b></font></translation>
|
||||
</message>
|
||||
|
@ -2093,7 +2093,7 @@ Osoitteen käyttäminen ei ole suositeltavaa.</translation>
|
|||
<context>
|
||||
<name>OCC::PropagateDirectory</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="942"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="953"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Virhe kirjoittaessa metadataa tietokantaan</translation>
|
||||
</message>
|
||||
|
@ -2131,17 +2131,17 @@ Osoitteen käyttäminen ei ole suositeltavaa.</translation>
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="772"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="775"/>
|
||||
<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="820"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="823"/>
|
||||
<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="871"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="874"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Virhe kirjoittaessa metadataa tietokantaan</translation>
|
||||
</message>
|
||||
|
@ -2217,12 +2217,12 @@ Osoitteen käyttäminen ei ole suositeltavaa.</translation>
|
|||
<context>
|
||||
<name>OCC::PropagateRemoteDelete</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="96"/>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="100"/>
|
||||
<source>The file has been removed from a read only share. It was restored.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="117"/>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="121"/>
|
||||
<source>Wrong HTTP code returned by server. Expected 204, but received "%1 %2".</source>
|
||||
<translation>HTTP-palvelin palautti väärän koodin. Odotettiin koodia 204, vastaanotettiin "%1 %2".</translation>
|
||||
</message>
|
||||
|
@ -2230,12 +2230,12 @@ Osoitteen käyttäminen ei ole suositeltavaa.</translation>
|
|||
<context>
|
||||
<name>OCC::PropagateRemoteMkdir</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="95"/>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="99"/>
|
||||
<source>Wrong HTTP code returned by server. Expected 201, but received "%1 %2".</source>
|
||||
<translation>HTTP-palvelin palautti väärän koodin. Odotettiin koodia 201, vastaanotettiin "%1 %2".</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="147"/>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="151"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Virhe kirjoittaessa metadataa tietokantaan</translation>
|
||||
</message>
|
||||
|
@ -2253,18 +2253,18 @@ Osoitteen käyttäminen ei ole suositeltavaa.</translation>
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="137"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="141"/>
|
||||
<source>The file was renamed but is part of a read only share. The original file was restored.</source>
|
||||
<translation>Tiedosto nimettiin uudelleen, mutta se on osa "vain luku"-jakoa. Alkuperäinen tiedosto palautettiin.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="154"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="158"/>
|
||||
<source>Wrong HTTP code returned by server. Expected 201, but received "%1 %2".</source>
|
||||
<translation>HTTP-palvelin palautti väärän koodin. Odotettiin koodia 201, vastaanotettiin "%1 %2".</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="186"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="192"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="190"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="196"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Virhe kirjoittaessa metadataa tietokantaan</translation>
|
||||
</message>
|
||||
|
@ -2298,7 +2298,7 @@ Osoitteen käyttäminen ei ole suositeltavaa.</translation>
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateupload.cpp" line="618"/>
|
||||
<location filename="../src/libsync/propagateupload.cpp" line="622"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Virhe kirjoittaessa metadataa tietokantaan</translation>
|
||||
</message>
|
||||
|
@ -2372,42 +2372,42 @@ Osoitteen käyttäminen ei ole suositeltavaa.</translation>
|
|||
<translation>TekstiLeima</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="48"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="61"/>
|
||||
<source>Time</source>
|
||||
<translation>Aika</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="49"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="62"/>
|
||||
<source>File</source>
|
||||
<translation>Tiedosto</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="50"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="63"/>
|
||||
<source>Folder</source>
|
||||
<translation>Kansio</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="51"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="64"/>
|
||||
<source>Action</source>
|
||||
<translation>Toiminto</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="52"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="65"/>
|
||||
<source>Size</source>
|
||||
<translation>Koko</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="72"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="85"/>
|
||||
<source>Local sync protocol</source>
|
||||
<translation>Paikallinen synkronointiprotokolla</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="74"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="87"/>
|
||||
<source>Copy</source>
|
||||
<translation>Kopioi</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="75"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="88"/>
|
||||
<source>Copy the activity list to the clipboard.</source>
|
||||
<translation>Kopioi toimilista leikepöydälle.</translation>
|
||||
</message>
|
||||
|
@ -2539,6 +2539,7 @@ Osoitteen käyttäminen ei ole suositeltavaa.</translation>
|
|||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/settingsdialogmac.cpp" line="152"/>
|
||||
<location filename="../src/gui/settingsdialogmac.cpp" line="211"/>
|
||||
<source>Account</source>
|
||||
<translation>Tili</translation>
|
||||
</message>
|
||||
|
@ -3195,22 +3196,22 @@ Osoitteen käyttäminen ei ole suositeltavaa.</translation>
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1278"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1287"/>
|
||||
<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="1285"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1294"/>
|
||||
<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>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1588"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1597"/>
|
||||
<source>Disk space is low: Downloads that would reduce free space below %1 were skipped.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1595"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1604"/>
|
||||
<source>There is insufficient space available on the server for some uploads.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
|
@ -3335,54 +3336,54 @@ Osoitteen käyttäminen ei ole suositeltavaa.</translation>
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="968"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="977"/>
|
||||
<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="1204"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1244"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1213"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1253"/>
|
||||
<source>Ignored because of the "choose what to sync" blacklist</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1263"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1272"/>
|
||||
<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="1310"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1319"/>
|
||||
<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="1326"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1345"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1335"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1354"/>
|
||||
<source>Not allowed to remove, restoring</source>
|
||||
<translation>Poistaminen ei ole sallittua, palautetaan</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1359"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1368"/>
|
||||
<source>Local files and share folder removed.</source>
|
||||
<translation>Paikalliset tiedostot ja jakokansio poistettu.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1413"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1422"/>
|
||||
<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="1424"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1433"/>
|
||||
<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="1424"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1433"/>
|
||||
<source>the destination</source>
|
||||
<translation>kohde</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1424"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1433"/>
|
||||
<source>the source</source>
|
||||
<translation>lähde</translation>
|
||||
</message>
|
||||
|
@ -3424,17 +3425,17 @@ Osoitteen käyttäminen ei ole suositeltavaa.</translation>
|
|||
<context>
|
||||
<name>OCC::ValidateChecksumHeader</name>
|
||||
<message>
|
||||
<location filename="../src/common/checksums.cpp" line="205"/>
|
||||
<location filename="../src/common/checksums.cpp" line="218"/>
|
||||
<source>The checksum header is malformed.</source>
|
||||
<translation>Tarkistesumman otsake on muodostettu väärin.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/common/checksums.cpp" line="220"/>
|
||||
<location filename="../src/common/checksums.cpp" line="233"/>
|
||||
<source>The checksum header contained an unknown checksum type '%1'</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/common/checksums.cpp" line="224"/>
|
||||
<location filename="../src/common/checksums.cpp" line="237"/>
|
||||
<source>The downloaded file does not match the checksum, it will be resumed.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
|
|
|
@ -596,7 +596,7 @@
|
|||
<context>
|
||||
<name>OCC::CleanupPollsJob</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="990"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="1001"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Erreur à l'écriture des métadonnées dans la base de données</translation>
|
||||
</message>
|
||||
|
@ -744,14 +744,14 @@
|
|||
<translation>Impossible de lire le fichier d'exclusion du système</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="883"/>
|
||||
<location filename="../src/gui/folder.cpp" line="888"/>
|
||||
<source>A new folder larger than %1 MB has been added: %2.
|
||||
</source>
|
||||
<translation>Un nouveau dossier de taille supérieure à %1 Mo a été ajouté : %2.
|
||||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="886"/>
|
||||
<location filename="../src/gui/folder.cpp" line="891"/>
|
||||
<source>A folder from an external storage has been added.
|
||||
</source>
|
||||
<translation>Un nouveau dossier localisé sur un stockage externe a été ajouté.
|
||||
|
@ -759,12 +759,12 @@
|
|||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="887"/>
|
||||
<location filename="../src/gui/folder.cpp" line="892"/>
|
||||
<source>Please go in the settings to select it if you wish to download it.</source>
|
||||
<translation>Merci d'aller dans les Paramètres pour indiquer si vous souhaitez le télécharger.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="922"/>
|
||||
<location filename="../src/gui/folder.cpp" line="927"/>
|
||||
<source>All files in the sync folder '%1' folder were deleted on the server.
|
||||
These deletes will be synchronized to your local sync folder, making such files unavailable unless you have a right to restore.
|
||||
If you decide to keep the files, they will be re-synced with the server if you have rights to do so.
|
||||
|
@ -775,7 +775,7 @@ Si vous décidez de conserver ces fichiers, ils seront synchronisés à nouveau
|
|||
Si vous décidez de supprimer ces fichiers, ils vous seront inaccessibles, sauf si vous en êtes le propriétaire.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="927"/>
|
||||
<location filename="../src/gui/folder.cpp" line="932"/>
|
||||
<source>All the files in your local sync folder '%1' were deleted. These deletes will be synchronized with your server, making such files unavailable unless restored.
|
||||
Are you sure you want to sync those actions with the server?
|
||||
If this was an accident and you decide to keep your files, they will be re-synced from the server.</source>
|
||||
|
@ -784,22 +784,22 @@ If this was an accident and you decide to keep your files, they will be re-synce
|
|||
S'il s'agissait d'un accident et que vous choisissiez de conserver vos fichiers, ils seront synchronisés à nouveau depuis le serveur.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="931"/>
|
||||
<location filename="../src/gui/folder.cpp" line="936"/>
|
||||
<source>Remove All Files?</source>
|
||||
<translation>Supprimer tous les fichiers ?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="934"/>
|
||||
<location filename="../src/gui/folder.cpp" line="939"/>
|
||||
<source>Remove all files</source>
|
||||
<translation>Supprimer tous les fichiers</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="935"/>
|
||||
<location filename="../src/gui/folder.cpp" line="940"/>
|
||||
<source>Keep files</source>
|
||||
<translation>Conserver les fichiers</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="952"/>
|
||||
<location filename="../src/gui/folder.cpp" line="957"/>
|
||||
<source>This sync would reset the files to an earlier time in the sync folder '%1'.
|
||||
This might be because a backup was restored on the server.
|
||||
Continuing the sync as normal will cause all your files to be overwritten by an older file in an earlier state. Do you want to keep your local most recent files as conflict files?</source>
|
||||
|
@ -808,17 +808,17 @@ Cela peut être dû à une copie de sauvegarde restaurée sur le serveur.
|
|||
Continuer la synchronisation comme d'habitude fera en sorte que tous les fichiers soient remplacés par des fichiers plus vieux d'un état précédent. Voulez-vous conserver les versions les plus récentes de vos fichiers en tant que fichiers conflictuels ?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="957"/>
|
||||
<location filename="../src/gui/folder.cpp" line="962"/>
|
||||
<source>Backup detected</source>
|
||||
<translation>Sauvegarde détectée</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="960"/>
|
||||
<location filename="../src/gui/folder.cpp" line="965"/>
|
||||
<source>Normal Synchronisation</source>
|
||||
<translation>Synchronisation normale</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="961"/>
|
||||
<location filename="../src/gui/folder.cpp" line="966"/>
|
||||
<source>Keep Local Files as Conflict</source>
|
||||
<translation>Conserver les fichiers locaux comme Conflits</translation>
|
||||
</message>
|
||||
|
@ -1001,7 +1001,7 @@ Continuer la synchronisation comme d'habitude fera en sorte que tous les fi
|
|||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="884"/>
|
||||
<source>Reconciling changes</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Rapprochement des modifications</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folderstatusmodel.cpp" line="919"/>
|
||||
|
@ -1292,22 +1292,22 @@ Continuer la synchronisation comme d'habitude fera en sorte que tous les fi
|
|||
<context>
|
||||
<name>OCC::HttpCredentialsGui</name>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="97"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="98"/>
|
||||
<source>Please enter %1 password:<br><br>User: %2<br>Account: %3<br></source>
|
||||
<translation>Merci de saisir le mot de passe de %1 :<br><br>Utilisateur : %2<br>Compte : %3<br></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="111"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="112"/>
|
||||
<source>Reading from keychain failed with error: '%1'</source>
|
||||
<translation>Erreur lors de l'accès au trousseau : '%1'</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="117"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="118"/>
|
||||
<source>Enter Password</source>
|
||||
<translation>Saisissez le mot de passe</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="154"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="155"/>
|
||||
<source><a href="%1">Click here</a> to request an app password from the web interface.</source>
|
||||
<translation><a href="%1">Cliquez ici</a> pour demander un mot de passe d'application depuis l'interface web.</translation>
|
||||
</message>
|
||||
|
@ -1410,7 +1410,7 @@ L'option "Autoriser suppression" permet de ne pas bloquer la supp
|
|||
<location filename="../src/gui/issueswidget.ui" line="42"/>
|
||||
<location filename="../src/gui/issueswidget.ui" line="61"/>
|
||||
<source><no filter></source>
|
||||
<translation type="unfinished"/>
|
||||
<translation><no filter></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/issueswidget.ui" line="50"/>
|
||||
|
@ -1429,12 +1429,12 @@ L'option "Autoriser suppression" permet de ne pas bloquer la supp
|
|||
<translation>Voir les fichiers ignorés</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/issueswidget.ui" line="145"/>
|
||||
<location filename="../src/gui/issueswidget.ui" line="148"/>
|
||||
<source>Copy the issues list to the clipboard.</source>
|
||||
<translation>Copier la liste des anomalies dans le presse-papier.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/issueswidget.ui" line="148"/>
|
||||
<location filename="../src/gui/issueswidget.ui" line="151"/>
|
||||
<source>Copy</source>
|
||||
<translation>Copier</translation>
|
||||
</message>
|
||||
|
@ -1474,7 +1474,7 @@ L'option "Autoriser suppression" permet de ne pas bloquer la supp
|
|||
<message>
|
||||
<location filename="../src/gui/logbrowser.cpp" line="89"/>
|
||||
<source>&Capture debug messages</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>&Capturer les messages de déboguage</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/logbrowser.cpp" line="101"/>
|
||||
|
@ -1701,7 +1701,7 @@ L'option "Autoriser suppression" permet de ne pas bloquer la supp
|
|||
<message>
|
||||
<location filename="../src/gui/creds/oauth.cpp" line="118"/>
|
||||
<source>Could not parse the JSON returned from the server: <br><em>%1</em></source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Impossible d'analyser le fichier JSON récupéré sur le serveur : <br><em>%1</em></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/oauth.cpp" line="121"/>
|
||||
|
@ -1920,144 +1920,144 @@ Il est déconseillé de l'utiliser.</translation>
|
|||
<context>
|
||||
<name>OCC::OwncloudSetupWizard</name>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="217"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="250"/>
|
||||
<source><font color="green">Successfully connected to %1: %2 version %3 (%4)</font><br/><br/></source>
|
||||
<translation><font color="green">Connecté avec succès à %1 : %2 version %3 (%4)</font><br/><br/></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="251"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="280"/>
|
||||
<source>Failed to connect to %1 at %2:<br/>%3</source>
|
||||
<translation>Échec de la connexion à %1 sur %2 :<br/>%3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="285"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="314"/>
|
||||
<source>Timeout while trying to connect to %1 at %2.</source>
|
||||
<translation>Délai d'attente dépassé lors de la connexion à %1 sur %2.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="296"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="334"/>
|
||||
<source>Trying to connect to %1 at %2...</source>
|
||||
<translation>Tentative de connexion à %1 sur %2 ...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="347"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="385"/>
|
||||
<source>The authenticated request to the server was redirected to '%1'. The URL is bad, the server is misconfigured.</source>
|
||||
<translation>La requête d'authentification vers le serveur a été redirigée vers '%1'. L'URL est erronée, le serveur est mal configuré.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="369"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="407"/>
|
||||
<source>There was an invalid response to an authenticated webdav request</source>
|
||||
<translation>Une réponse non valide a été reçue suite à une requête WebDav authentifiée.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="360"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="398"/>
|
||||
<source>Access forbidden by server. To verify that you have proper access, <a href="%1">click here</a> to access the service with your browser.</source>
|
||||
<translation>Accès impossibe. Afin de vérifier l'accès au serveur, <a href="%1">cliquez ici</a> et connectez-vous au service avec votre navigateur web.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="249"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="278"/>
|
||||
<source>Invalid URL</source>
|
||||
<translation>URL invalide</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="414"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="452"/>
|
||||
<source>Local sync folder %1 already exists, setting it up for sync.<br/><br/></source>
|
||||
<translation>Le dossier de synchronisation local %1 existe déjà, configuration de la synchronisation.<br/><br/></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="417"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="455"/>
|
||||
<source>Creating local sync folder %1...</source>
|
||||
<translation>Création du dossier local de synchronisation %1... </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="421"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="459"/>
|
||||
<source>ok</source>
|
||||
<translation>ok</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="423"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="461"/>
|
||||
<source>failed.</source>
|
||||
<translation>échoué.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="425"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="463"/>
|
||||
<source>Could not create local folder %1</source>
|
||||
<translation>Impossible de créer le dossier local %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="451"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="489"/>
|
||||
<source>No remote folder specified!</source>
|
||||
<translation>Aucun dossier distant spécifié !</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="457"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="495"/>
|
||||
<source>Error: %1</source>
|
||||
<translation>Erreur : %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="470"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="508"/>
|
||||
<source>creating folder on ownCloud: %1</source>
|
||||
<translation>création d'un dossier sur ownCloud : %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="486"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="524"/>
|
||||
<source>Remote folder %1 created successfully.</source>
|
||||
<translation>Le dossier distant %1 a été créé avec succès.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="488"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="526"/>
|
||||
<source>The remote folder %1 already exists. Connecting it for syncing.</source>
|
||||
<translation>Le dossier distant %1 existe déjà. Connexion.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="490"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="492"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="528"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="530"/>
|
||||
<source>The folder creation resulted in HTTP error code %1</source>
|
||||
<translation>La création du dossier a généré le code d'erreur HTTP %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="494"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="532"/>
|
||||
<source>The remote folder creation failed because the provided credentials are wrong!<br/>Please go back and check your credentials.</p></source>
|
||||
<translation>La création du dossier distant a échoué car les identifiants de connexion sont erronés !<br/>Veuillez revenir en arrière et vérifier ces derniers.</p></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="498"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="536"/>
|
||||
<source><p><font color="red">Remote folder creation failed probably because the provided credentials are wrong.</font><br/>Please go back and check your credentials.</p></source>
|
||||
<translation><p><font color="red">La création du dossier distant a échoué, probablement parce que les informations d'identification fournies sont fausses.</font><br/>Veuillez revenir en arrière et les vérifier.</p></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="503"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="504"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="541"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="542"/>
|
||||
<source>Remote folder %1 creation failed with error <tt>%2</tt>.</source>
|
||||
<translation>La création du dossier distant "%1" a échouée avec l'erreur <tt>%2</tt>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="521"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="559"/>
|
||||
<source>A sync connection from %1 to remote directory %2 was set up.</source>
|
||||
<translation>Une synchronisation entre le dossier local %1 et le dossier distant %2 a été configurée.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="526"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="564"/>
|
||||
<source>Successfully connected to %1!</source>
|
||||
<translation>Connecté avec succès à %1 !</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="533"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="571"/>
|
||||
<source>Connection to %1 could not be established. Please check again.</source>
|
||||
<translation>La connexion à %1 n'a pu être établie. Veuillez réessayer.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="547"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="585"/>
|
||||
<source>Folder rename failed</source>
|
||||
<translation>Echec du renommage du dossier</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="548"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="586"/>
|
||||
<source>Can't remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup.</source>
|
||||
<translation>Impossible de supprimer et de sauvegarder le dossier parce que ce dossier ou un de ses fichiers est ouvert dans un autre programme. Veuillez fermer le dossier ou le fichier et ré-essayer, ou annuler l'installation.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="593"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="631"/>
|
||||
<source><font color="green"><b>Local sync folder %1 successfully created!</b></font></source>
|
||||
<translation><font color="green"><b>Dossier de synchronisation local %1 créé avec succès !</b></font></translation>
|
||||
</message>
|
||||
|
@ -2104,7 +2104,7 @@ Il est déconseillé de l'utiliser.</translation>
|
|||
<context>
|
||||
<name>OCC::PropagateDirectory</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="942"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="953"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Erreur à l'écriture des métadonnées dans la base de données</translation>
|
||||
</message>
|
||||
|
@ -2142,17 +2142,17 @@ Il est déconseillé de l'utiliser.</translation>
|
|||
<translation>Le fichier téléchargé est vide bien que le serveur indique que sa taille devrait être de %1.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="772"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="775"/>
|
||||
<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="820"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="823"/>
|
||||
<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="871"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="874"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Erreur à l'écriture des métadonnées dans la base de données</translation>
|
||||
</message>
|
||||
|
@ -2228,12 +2228,12 @@ Il est déconseillé de l'utiliser.</translation>
|
|||
<context>
|
||||
<name>OCC::PropagateRemoteDelete</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="96"/>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="100"/>
|
||||
<source>The file has been removed from a read only share. It was restored.</source>
|
||||
<translation>Le fichier a été supprimé d'un partage en lecture seule. Il a été restauré.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="117"/>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="121"/>
|
||||
<source>Wrong HTTP code returned by server. Expected 204, but received "%1 %2".</source>
|
||||
<translation>Le code HTTP retourné par le serveur n'est pas valide. La valeur attendue est 204 mais la valeur reçue est "%1 %2".</translation>
|
||||
</message>
|
||||
|
@ -2241,12 +2241,12 @@ Il est déconseillé de l'utiliser.</translation>
|
|||
<context>
|
||||
<name>OCC::PropagateRemoteMkdir</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="95"/>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="99"/>
|
||||
<source>Wrong HTTP code returned by server. Expected 201, but received "%1 %2".</source>
|
||||
<translation>Le code HTTP retourné par le serveur n'est pas valide. La valeur attendue est 201 mais la valeur reçue est "%1 %2".</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="147"/>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="151"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Erreur à l'écriture des métadonnées dans la base de données</translation>
|
||||
</message>
|
||||
|
@ -2264,18 +2264,18 @@ Il est déconseillé de l'utiliser.</translation>
|
|||
<translation>Le nom de ce dossier ne doit pas être changé. Veuillez le renommer en Shared.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="137"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="141"/>
|
||||
<source>The file was renamed but is part of a read only share. The original file was restored.</source>
|
||||
<translation>Le fichier a été renommé mais appartient à un partage en lecture seule. Le fichier original a été restauré.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="154"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="158"/>
|
||||
<source>Wrong HTTP code returned by server. Expected 201, but received "%1 %2".</source>
|
||||
<translation>Le code HTTP retourné par le serveur n'est pas valide. La valeur attendue est 201 mais la valeur reçue est "%1 %2".</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="186"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="192"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="190"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="196"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Erreur à l'écriture des métadonnées dans la base de données</translation>
|
||||
</message>
|
||||
|
@ -2306,10 +2306,10 @@ Il est déconseillé de l'utiliser.</translation>
|
|||
<location filename="../src/libsync/propagateupload.cpp" line="186"/>
|
||||
<location filename="../src/libsync/propagateupload.cpp" line="549"/>
|
||||
<source>Upload of %1 exceeds the quota for the folder</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Le téléversement de %1 amène un dépassement de quota pour le dossier</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateupload.cpp" line="618"/>
|
||||
<location filename="../src/libsync/propagateupload.cpp" line="622"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Erreur à l'écriture des métadonnées dans la base de données</translation>
|
||||
</message>
|
||||
|
@ -2383,42 +2383,42 @@ Il est déconseillé de l'utiliser.</translation>
|
|||
<translation>TextLabel</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="48"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="61"/>
|
||||
<source>Time</source>
|
||||
<translation>Heure</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="49"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="62"/>
|
||||
<source>File</source>
|
||||
<translation>Fichier</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="50"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="63"/>
|
||||
<source>Folder</source>
|
||||
<translation>Dossier</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="51"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="64"/>
|
||||
<source>Action</source>
|
||||
<translation>Action</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="52"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="65"/>
|
||||
<source>Size</source>
|
||||
<translation>Taille</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="72"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="85"/>
|
||||
<source>Local sync protocol</source>
|
||||
<translation>Historique des opérations de synchronisation locale</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="74"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="87"/>
|
||||
<source>Copy</source>
|
||||
<translation>Copier</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="75"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="88"/>
|
||||
<source>Copy the activity list to the clipboard.</source>
|
||||
<translation>Copier la liste d'activités dans le presse-papier</translation>
|
||||
</message>
|
||||
|
@ -2550,6 +2550,7 @@ Il est déconseillé de l'utiliser.</translation>
|
|||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/settingsdialogmac.cpp" line="152"/>
|
||||
<location filename="../src/gui/settingsdialogmac.cpp" line="211"/>
|
||||
<source>Account</source>
|
||||
<translation>Compte</translation>
|
||||
</message>
|
||||
|
@ -2637,12 +2638,12 @@ Il est déconseillé de l'utiliser.</translation>
|
|||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.ui" line="35"/>
|
||||
<source>Enter a name to create a new public link...</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Entrer un nom pour créer un nouveau lien public...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.ui" line="42"/>
|
||||
<source>&Create new</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>&Créer un nouveau</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.ui" line="105"/>
|
||||
|
@ -2657,7 +2658,7 @@ Il est déconseillé de l'utiliser.</translation>
|
|||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.ui" line="178"/>
|
||||
<source>Link properties:</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Propriétés du lien :</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.ui" line="220"/>
|
||||
|
@ -2693,32 +2694,32 @@ Il est déconseillé de l'utiliser.</translation>
|
|||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="61"/>
|
||||
<source>%1 link</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>lien %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="91"/>
|
||||
<source>Link shares have been disabled</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Les partages par lien ont été désactivés</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="105"/>
|
||||
<source>Create public link share</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Créer une lien de partage public</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="161"/>
|
||||
<source>Open link in browser</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Ouvrir le lien dans le navigateur</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="162"/>
|
||||
<source>Copy link to clipboard</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Copier le lien vers le presse-papier</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="163"/>
|
||||
<source>Copy link to clipboard (direct download)</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Copier le lien vers le presse-papier (téléchargement direct)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="164"/>
|
||||
|
@ -2728,7 +2729,7 @@ Il est déconseillé de l'utiliser.</translation>
|
|||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="165"/>
|
||||
<source>Send link by email (direct download)</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Envoyer le lien par courriel (téléchargement direct)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="237"/>
|
||||
|
@ -2761,22 +2762,22 @@ Il est déconseillé de l'utiliser.</translation>
|
|||
<message>
|
||||
<location filename="../src/gui/shareusergroupwidget.ui" line="108"/>
|
||||
<source><html><head/><body><p>You can direct people to this shared file or folder <a href="private link menu"><span style=" text-decoration: underline; color:#0000ff;">by giving them a private link</span></a>.</p></body></html></source>
|
||||
<translation type="unfinished"/>
|
||||
<translation><html><head/><body><p>Vous pouvez diriger quelqu'un vers ce fichier ou dossier partagé <a href="private link menu"><span style=" text-decoration: underline; color:#0000ff;">en lui adressant un lien privé</span></a>.</p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/shareusergroupwidget.cpp" line="186"/>
|
||||
<source>The item is not shared with any users or groups</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Cet élément n'est partagé avec aucun utilisateur ou groupe</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/shareusergroupwidget.cpp" line="235"/>
|
||||
<source>Open link in browser</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Ouvrir le lien dans le navigateur</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/shareusergroupwidget.cpp" line="237"/>
|
||||
<source>Copy link to clipboard</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Copier le lien vers le presse-papier</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/shareusergroupwidget.cpp" line="239"/>
|
||||
|
@ -2791,7 +2792,7 @@ Il est déconseillé de l'utiliser.</translation>
|
|||
<message>
|
||||
<location filename="../src/gui/shareusergroupwidget.cpp" line="337"/>
|
||||
<source>I shared something with you</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>J'ai partagé quelque chose avec vous</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -2884,7 +2885,7 @@ Il est déconseillé de l'utiliser.</translation>
|
|||
<message>
|
||||
<location filename="../src/gui/socketapi.cpp" line="555"/>
|
||||
<source>I shared something with you</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>J'ai partagé quelque chose avec vous</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/socketapi.cpp" line="563"/>
|
||||
|
@ -2894,12 +2895,12 @@ Il est déconseillé de l'utiliser.</translation>
|
|||
<message>
|
||||
<location filename="../src/gui/socketapi.cpp" line="565"/>
|
||||
<source>Copy private link to clipboard</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Copier le lien privé vers le presse-papier</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/socketapi.cpp" line="566"/>
|
||||
<source>Send private link by email...</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Envoyer le lien privé par courriel...</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -3177,7 +3178,7 @@ Il est déconseillé de l'utiliser.</translation>
|
|||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="264"/>
|
||||
<source>%1 (skipped due to earlier error, trying again in %2)</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>%1 (ignoré à cause d'une précédente erreur, nouvel essai dans %2)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="474"/>
|
||||
|
@ -3187,12 +3188,12 @@ Il est déconseillé de l'utiliser.</translation>
|
|||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="477"/>
|
||||
<source>Folder hierarchy is too deep</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>La hiérarchie du dossier est trop profonde</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="490"/>
|
||||
<source>Conflict: Server version downloaded, local copy renamed and not uploaded.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Conflit : La version du serveur a été téléchargée, la version locale renommée et non téléversée.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="774"/>
|
||||
|
@ -3203,27 +3204,27 @@ Il est déconseillé de l'utiliser.</translation>
|
|||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="809"/>
|
||||
<source>Unable to open or create the local sync database. Make sure you have write access in the sync folder.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Impossible d'accéder ou de créer une base de données locale de synchronisation. Assurez vous de disposer des droits d'écriture dans le dossier de synchronisation.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1278"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1287"/>
|
||||
<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="1285"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1294"/>
|
||||
<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>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1588"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1597"/>
|
||||
<source>Disk space is low: Downloads that would reduce free space below %1 were skipped.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>L'espace disque est faible : les téléchargements qui amèneraient à réduire l'espace libre en dessous de %1 ont été ignorés.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1595"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1604"/>
|
||||
<source>There is insufficient space available on the server for some uploads.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Il n'y a pas suffisamment d’espace disponible sur le serveur pour certains téléversements.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="167"/>
|
||||
|
@ -3313,7 +3314,7 @@ Il est déconseillé de l'utiliser.</translation>
|
|||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="486"/>
|
||||
<source>Unresolved conflict.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>conflit non résolu.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="497"/>
|
||||
|
@ -3346,54 +3347,54 @@ Il est déconseillé de l'utiliser.</translation>
|
|||
<translation>Impossible d'ouvrir le journal de synchronisation</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="968"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="977"/>
|
||||
<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="1204"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1244"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1213"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1253"/>
|
||||
<source>Ignored because of the "choose what to sync" blacklist</source>
|
||||
<translation>Ignoré en raison de la liste noire "Sélectionner le contenu à synchroniser".</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1263"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1272"/>
|
||||
<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="1310"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1319"/>
|
||||
<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="1326"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1345"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1335"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1354"/>
|
||||
<source>Not allowed to remove, restoring</source>
|
||||
<translation>Non autorisé à supprimer. Restauration</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1359"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1368"/>
|
||||
<source>Local files and share folder removed.</source>
|
||||
<translation>Fichiers locaux et dossier partagé supprimés.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1413"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1422"/>
|
||||
<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="1424"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1433"/>
|
||||
<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="1424"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1433"/>
|
||||
<source>the destination</source>
|
||||
<translation>la destination</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1424"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1433"/>
|
||||
<source>the source</source>
|
||||
<translation>la source</translation>
|
||||
</message>
|
||||
|
@ -3435,17 +3436,17 @@ Il est déconseillé de l'utiliser.</translation>
|
|||
<context>
|
||||
<name>OCC::ValidateChecksumHeader</name>
|
||||
<message>
|
||||
<location filename="../src/common/checksums.cpp" line="205"/>
|
||||
<location filename="../src/common/checksums.cpp" line="218"/>
|
||||
<source>The checksum header is malformed.</source>
|
||||
<translation>L'entête de somme de contrôle est mal formée.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/common/checksums.cpp" line="220"/>
|
||||
<location filename="../src/common/checksums.cpp" line="233"/>
|
||||
<source>The checksum header contained an unknown checksum type '%1'</source>
|
||||
<translation>L'en-tête de la somme de contrôle contenait un type de somme de contrôle inconnu '%1'</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/common/checksums.cpp" line="224"/>
|
||||
<location filename="../src/common/checksums.cpp" line="237"/>
|
||||
<source>The downloaded file does not match the checksum, it will be resumed.</source>
|
||||
<translation>Le fichier téléchargé ne correspond pas à la somme de contrôle, il va être téléchargé à nouveau.</translation>
|
||||
</message>
|
||||
|
@ -3559,7 +3560,7 @@ Il est déconseillé de l'utiliser.</translation>
|
|||
<message>
|
||||
<location filename="../src/gui/owncloudgui.cpp" line="240"/>
|
||||
<source>Disconnected from some accounts</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Déconnecté de certains comptes</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudgui.cpp" line="251"/>
|
||||
|
@ -3585,17 +3586,17 @@ Il est déconseillé de l'utiliser.</translation>
|
|||
<location filename="../src/gui/owncloudgui.cpp" line="273"/>
|
||||
<location filename="../src/gui/owncloudgui.cpp" line="304"/>
|
||||
<source>Synchronization is paused</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>La synchronisation est en pause</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudgui.cpp" line="306"/>
|
||||
<source>Error during synchronization</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Erreur durant la synchronisation</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudgui.cpp" line="314"/>
|
||||
<source>No sync folders configured</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Aucun dossier de synchronisation configuré</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudgui.cpp" line="360"/>
|
||||
|
@ -3800,7 +3801,7 @@ Il est déconseillé de l'utiliser.</translation>
|
|||
<message>
|
||||
<location filename="../src/gui/wizard/owncloudoauthcredspage.ui" line="36"/>
|
||||
<source>Please switch to your browser to proceed.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Merci de basculer vers votre navigateur pour poursuivre.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/wizard/owncloudoauthcredspage.ui" line="46"/>
|
||||
|
@ -3810,7 +3811,7 @@ Il est déconseillé de l'utiliser.</translation>
|
|||
<message>
|
||||
<location filename="../src/gui/wizard/owncloudoauthcredspage.ui" line="56"/>
|
||||
<source>Re-open Browser</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Redémarrez votre navigateur</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -4137,12 +4138,12 @@ Il est déconseillé de l'utiliser.</translation>
|
|||
<message>
|
||||
<location filename="../src/gui/guiutility.cpp" line="33"/>
|
||||
<source>Could not open browser</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Impossible de démarrer le navigateur</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/guiutility.cpp" line="34"/>
|
||||
<source>There was an error when launching the browser to go to URL %1. Maybe no default browser is configured?</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Une erreur est survenue au lancement du navigateur pour visiter l'adresse %1. Il est possible qu'aucun navigateur par défaut ne soit configuré.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/guiutility.cpp" line="55"/>
|
||||
|
|
|
@ -596,7 +596,7 @@
|
|||
<context>
|
||||
<name>OCC::CleanupPollsJob</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="990"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="1001"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
|
@ -744,24 +744,24 @@
|
|||
<translation>Non foi posíbel ler o ficheiro de exclusión do sistema</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="883"/>
|
||||
<location filename="../src/gui/folder.cpp" line="888"/>
|
||||
<source>A new folder larger than %1 MB has been added: %2.
|
||||
</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="886"/>
|
||||
<location filename="../src/gui/folder.cpp" line="891"/>
|
||||
<source>A folder from an external storage has been added.
|
||||
</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="887"/>
|
||||
<location filename="../src/gui/folder.cpp" line="892"/>
|
||||
<source>Please go in the settings to select it if you wish to download it.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="922"/>
|
||||
<location filename="../src/gui/folder.cpp" line="927"/>
|
||||
<source>All files in the sync folder '%1' folder were deleted on the server.
|
||||
These deletes will be synchronized to your local sync folder, making such files unavailable unless you have a right to restore.
|
||||
If you decide to keep the files, they will be re-synced with the server if you have rights to do so.
|
||||
|
@ -769,46 +769,46 @@ If you decide to delete the files, they will be unavailable to you, unless you a
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="927"/>
|
||||
<location filename="../src/gui/folder.cpp" line="932"/>
|
||||
<source>All the files in your local sync folder '%1' were deleted. These deletes will be synchronized with your server, making such files unavailable unless restored.
|
||||
Are you sure you want to sync those actions with the server?
|
||||
If this was an accident and you decide to keep your files, they will be re-synced from the server.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="931"/>
|
||||
<location filename="../src/gui/folder.cpp" line="936"/>
|
||||
<source>Remove All Files?</source>
|
||||
<translation>Retirar todos os ficheiros?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="934"/>
|
||||
<location filename="../src/gui/folder.cpp" line="939"/>
|
||||
<source>Remove all files</source>
|
||||
<translation>Retirar todos os ficheiros</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="935"/>
|
||||
<location filename="../src/gui/folder.cpp" line="940"/>
|
||||
<source>Keep files</source>
|
||||
<translation>Manter os ficheiros</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="952"/>
|
||||
<location filename="../src/gui/folder.cpp" line="957"/>
|
||||
<source>This sync would reset the files to an earlier time in the sync folder '%1'.
|
||||
This might be because a backup was restored on the server.
|
||||
Continuing the sync as normal will cause all your files to be overwritten by an older file in an earlier state. Do you want to keep your local most recent files as conflict files?</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="957"/>
|
||||
<location filename="../src/gui/folder.cpp" line="962"/>
|
||||
<source>Backup detected</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="960"/>
|
||||
<location filename="../src/gui/folder.cpp" line="965"/>
|
||||
<source>Normal Synchronisation</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="961"/>
|
||||
<location filename="../src/gui/folder.cpp" line="966"/>
|
||||
<source>Keep Local Files as Conflict</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
|
@ -1282,22 +1282,22 @@ Continuing the sync as normal will cause all your files to be overwritten by an
|
|||
<context>
|
||||
<name>OCC::HttpCredentialsGui</name>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="97"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="98"/>
|
||||
<source>Please enter %1 password:<br><br>User: %2<br>Account: %3<br></source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="111"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="112"/>
|
||||
<source>Reading from keychain failed with error: '%1'</source>
|
||||
<translation>A lectura do chaveiro fallou co erro: «%1»</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="117"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="118"/>
|
||||
<source>Enter Password</source>
|
||||
<translation>Escriba o contrasinal</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="154"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="155"/>
|
||||
<source><a href="%1">Click here</a> to request an app password from the web interface.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
|
@ -1417,12 +1417,12 @@ Items where deletion is allowed will be deleted if they prevent a directory from
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/issueswidget.ui" line="145"/>
|
||||
<location filename="../src/gui/issueswidget.ui" line="148"/>
|
||||
<source>Copy the issues list to the clipboard.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/issueswidget.ui" line="148"/>
|
||||
<location filename="../src/gui/issueswidget.ui" line="151"/>
|
||||
<source>Copy</source>
|
||||
<translation>Copiar</translation>
|
||||
</message>
|
||||
|
@ -1908,144 +1908,144 @@ Recomendámoslle que non o use.</translation>
|
|||
<context>
|
||||
<name>OCC::OwncloudSetupWizard</name>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="217"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="250"/>
|
||||
<source><font color="green">Successfully connected to %1: %2 version %3 (%4)</font><br/><br/></source>
|
||||
<translation><font color="green">Conectouse correctamente a %1: %2 versión %3 (%4)</font><br/><br/></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="251"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="280"/>
|
||||
<source>Failed to connect to %1 at %2:<br/>%3</source>
|
||||
<translation>Non foi posíbel conectar con %1 en %2:<br/>%3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="285"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="314"/>
|
||||
<source>Timeout while trying to connect to %1 at %2.</source>
|
||||
<translation>Esgotouse o tempo tentando conectarse a %1 en %2...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="296"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="334"/>
|
||||
<source>Trying to connect to %1 at %2...</source>
|
||||
<translation>Tentando conectarse a %1 en %2...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="347"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="385"/>
|
||||
<source>The authenticated request to the server was redirected to '%1'. The URL is bad, the server is misconfigured.</source>
|
||||
<translation>A solicitude autenticada no servidor foi redirixida a «%1», O URL é incorrecto, o servidor está mal configurado.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="369"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="407"/>
|
||||
<source>There was an invalid response to an authenticated webdav request</source>
|
||||
<translation>Deuse unha resposta incorrecta a unha solicitude de WebDAV autenticada</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="360"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="398"/>
|
||||
<source>Access forbidden by server. To verify that you have proper access, <a href="%1">click here</a> to access the service with your browser.</source>
|
||||
<translation>Acceso prohibido polo servidor. Para comprobar que dispón do acceso axeitado, <a href="%1">prema aquí</a> para acceder ao servizo co seu navegador.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="249"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="278"/>
|
||||
<source>Invalid URL</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="414"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="452"/>
|
||||
<source>Local sync folder %1 already exists, setting it up for sync.<br/><br/></source>
|
||||
<translation>O cartafol de sincronización local %1 xa existe. Configurándoo para a sincronización.<br/><br/></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="417"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="455"/>
|
||||
<source>Creating local sync folder %1...</source>
|
||||
<translation>Creando un cartafol local de sincronización %1...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="421"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="459"/>
|
||||
<source>ok</source>
|
||||
<translation>aceptar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="423"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="461"/>
|
||||
<source>failed.</source>
|
||||
<translation>fallou.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="425"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="463"/>
|
||||
<source>Could not create local folder %1</source>
|
||||
<translation>Non foi posíbel crear o cartafol local %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="451"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="489"/>
|
||||
<source>No remote folder specified!</source>
|
||||
<translation>Non foi especificado o cartafol remoto!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="457"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="495"/>
|
||||
<source>Error: %1</source>
|
||||
<translation>Erro: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="470"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="508"/>
|
||||
<source>creating folder on ownCloud: %1</source>
|
||||
<translation>creando o cartafol en ownCloud: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="486"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="524"/>
|
||||
<source>Remote folder %1 created successfully.</source>
|
||||
<translation>O cartafol remoto %1 creouse correctamente.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="488"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="526"/>
|
||||
<source>The remote folder %1 already exists. Connecting it for syncing.</source>
|
||||
<translation>O cartafol remoto %1 xa existe. Conectándoo para a sincronización.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="490"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="492"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="528"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="530"/>
|
||||
<source>The folder creation resulted in HTTP error code %1</source>
|
||||
<translation>A creación do cartafol resultou nun código de erro HTTP %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="494"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="532"/>
|
||||
<source>The remote folder creation failed because the provided credentials are wrong!<br/>Please go back and check your credentials.</p></source>
|
||||
<translation>A creación do cartafol remoto fracasou por por de seren incorrectas as credenciais!<br/>Volva atrás e comprobe as súas credenciais.</p></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="498"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="536"/>
|
||||
<source><p><font color="red">Remote folder creation failed probably because the provided credentials are wrong.</font><br/>Please go back and check your credentials.</p></source>
|
||||
<translation><p><font color="red">A creación do cartafol remoto fallou probabelmente debido a que as credenciais que se deron non foran as correctas.</font><br/>Volva atrás e comprobe as súas credenciais.</p> </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="503"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="504"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="541"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="542"/>
|
||||
<source>Remote folder %1 creation failed with error <tt>%2</tt>.</source>
|
||||
<translation>Produciuse un fallo ao crear o cartafol remoto %1 e dou o erro <tt>%2</tt>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="521"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="559"/>
|
||||
<source>A sync connection from %1 to remote directory %2 was set up.</source>
|
||||
<translation>Estabeleceuse a conexión de sincronización de %1 ao directorio remoto %2.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="526"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="564"/>
|
||||
<source>Successfully connected to %1!</source>
|
||||
<translation>Conectou satisfactoriamente con %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="533"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="571"/>
|
||||
<source>Connection to %1 could not be established. Please check again.</source>
|
||||
<translation>Non foi posíbel estabelecer a conexión con %1. Compróbeo de novo.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="547"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="585"/>
|
||||
<source>Folder rename failed</source>
|
||||
<translation>Non foi posíbel renomear o cartafol</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="548"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="586"/>
|
||||
<source>Can't remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup.</source>
|
||||
<translation>Non é posíbel retirar e facer unha copia de seguranza do cartafol, xa que o cartafol ou un ficheiro está aberto noutro programa Peche o cartafol ou o ficheiro e ténteo de novo, ou cancele a acción.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="593"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="631"/>
|
||||
<source><font color="green"><b>Local sync folder %1 successfully created!</b></font></source>
|
||||
<translation><font color="green"><b>O cartafol local de sincronización %1 creouse correctamente!</b></font></translation>
|
||||
</message>
|
||||
|
@ -2092,7 +2092,7 @@ Recomendámoslle que non o use.</translation>
|
|||
<context>
|
||||
<name>OCC::PropagateDirectory</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="942"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="953"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
|
@ -2130,17 +2130,17 @@ Recomendámoslle que non o use.</translation>
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="772"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="775"/>
|
||||
<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="820"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="823"/>
|
||||
<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="871"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="874"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
|
@ -2216,12 +2216,12 @@ Recomendámoslle que non o use.</translation>
|
|||
<context>
|
||||
<name>OCC::PropagateRemoteDelete</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="96"/>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="100"/>
|
||||
<source>The file has been removed from a read only share. It was restored.</source>
|
||||
<translation>Foi retirado un ficheiro desde unha compartición de só lectura. Foi restaurado.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="117"/>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="121"/>
|
||||
<source>Wrong HTTP code returned by server. Expected 204, but received "%1 %2".</source>
|
||||
<translation>O servidor devolveu código HTTP incorrecto. Agardábase 204, mais recibiuse «%1 %2».</translation>
|
||||
</message>
|
||||
|
@ -2229,12 +2229,12 @@ Recomendámoslle que non o use.</translation>
|
|||
<context>
|
||||
<name>OCC::PropagateRemoteMkdir</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="95"/>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="99"/>
|
||||
<source>Wrong HTTP code returned by server. Expected 201, but received "%1 %2".</source>
|
||||
<translation>O servidor devolveu código HTTP incorrecto. Agardábase 201, mais recibiuse «%1 %2».</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="147"/>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="151"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
|
@ -2252,18 +2252,18 @@ Recomendámoslle que non o use.</translation>
|
|||
<translation>Non é posíbel renomear este cartafol. Devólvalle o nome ao compartido.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="137"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="141"/>
|
||||
<source>The file was renamed but is part of a read only share. The original file was restored.</source>
|
||||
<translation>O ficheiro foi renomeado mais é parte dunha compartición de só lectura. O ficheiro orixinal foi restaurado.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="154"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="158"/>
|
||||
<source>Wrong HTTP code returned by server. Expected 201, but received "%1 %2".</source>
|
||||
<translation>O servidor devolveu código HTTP incorrecto. Agardábase 201, mais recibiuse «%1 %2».</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="186"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="192"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="190"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="196"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
|
@ -2297,7 +2297,7 @@ Recomendámoslle que non o use.</translation>
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateupload.cpp" line="618"/>
|
||||
<location filename="../src/libsync/propagateupload.cpp" line="622"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
|
@ -2371,42 +2371,42 @@ Recomendámoslle que non o use.</translation>
|
|||
<translation>Etiqueta de texto</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="48"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="61"/>
|
||||
<source>Time</source>
|
||||
<translation>Hora</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="49"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="62"/>
|
||||
<source>File</source>
|
||||
<translation>Ficheiro</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="50"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="63"/>
|
||||
<source>Folder</source>
|
||||
<translation>Cartafol</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="51"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="64"/>
|
||||
<source>Action</source>
|
||||
<translation>Acción</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="52"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="65"/>
|
||||
<source>Size</source>
|
||||
<translation>Tamaño</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="72"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="85"/>
|
||||
<source>Local sync protocol</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="74"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="87"/>
|
||||
<source>Copy</source>
|
||||
<translation>Copiar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="75"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="88"/>
|
||||
<source>Copy the activity list to the clipboard.</source>
|
||||
<translation>Copiar a lista da actividade no portapapeis.</translation>
|
||||
</message>
|
||||
|
@ -2538,6 +2538,7 @@ Recomendámoslle que non o use.</translation>
|
|||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/settingsdialogmac.cpp" line="152"/>
|
||||
<location filename="../src/gui/settingsdialogmac.cpp" line="211"/>
|
||||
<source>Account</source>
|
||||
<translation>Conta</translation>
|
||||
</message>
|
||||
|
@ -3194,22 +3195,22 @@ Recomendámoslle que non o use.</translation>
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1278"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1287"/>
|
||||
<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="1285"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1294"/>
|
||||
<source>Not allowed because you don't have permission to add files in that folder</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1588"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1597"/>
|
||||
<source>Disk space is low: Downloads that would reduce free space below %1 were skipped.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1595"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1604"/>
|
||||
<source>There is insufficient space available on the server for some uploads.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
|
@ -3334,54 +3335,54 @@ Recomendámoslle que non o use.</translation>
|
|||
<translation>Non foi posíbel abrir o rexistro de sincronización</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="968"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="977"/>
|
||||
<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="1204"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1244"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1213"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1253"/>
|
||||
<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="1263"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1272"/>
|
||||
<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="1310"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1319"/>
|
||||
<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="1326"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1345"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1335"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1354"/>
|
||||
<source>Not allowed to remove, restoring</source>
|
||||
<translation>Non está permitido retiralo, restaurando</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1359"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1368"/>
|
||||
<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="1413"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1422"/>
|
||||
<source>Move not allowed, item restored</source>
|
||||
<translation>Nos está permitido movelo, elemento restaurado</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1424"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1433"/>
|
||||
<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="1424"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1433"/>
|
||||
<source>the destination</source>
|
||||
<translation>o destino</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1424"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1433"/>
|
||||
<source>the source</source>
|
||||
<translation>a orixe</translation>
|
||||
</message>
|
||||
|
@ -3423,17 +3424,17 @@ Recomendámoslle que non o use.</translation>
|
|||
<context>
|
||||
<name>OCC::ValidateChecksumHeader</name>
|
||||
<message>
|
||||
<location filename="../src/common/checksums.cpp" line="205"/>
|
||||
<location filename="../src/common/checksums.cpp" line="218"/>
|
||||
<source>The checksum header is malformed.</source>
|
||||
<translation>A cabeceira da suma de comprobación é incorrecta.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/common/checksums.cpp" line="220"/>
|
||||
<location filename="../src/common/checksums.cpp" line="233"/>
|
||||
<source>The checksum header contained an unknown checksum type '%1'</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/common/checksums.cpp" line="224"/>
|
||||
<location filename="../src/common/checksums.cpp" line="237"/>
|
||||
<source>The downloaded file does not match the checksum, it will be resumed.</source>
|
||||
<translation>O ficheiro descargado non coincide coa suma de comprobación. Retomase.</translation>
|
||||
</message>
|
||||
|
|
|
@ -596,7 +596,7 @@
|
|||
<context>
|
||||
<name>OCC::CleanupPollsJob</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="990"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="1001"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
|
@ -744,24 +744,24 @@
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="883"/>
|
||||
<location filename="../src/gui/folder.cpp" line="888"/>
|
||||
<source>A new folder larger than %1 MB has been added: %2.
|
||||
</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="886"/>
|
||||
<location filename="../src/gui/folder.cpp" line="891"/>
|
||||
<source>A folder from an external storage has been added.
|
||||
</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="887"/>
|
||||
<location filename="../src/gui/folder.cpp" line="892"/>
|
||||
<source>Please go in the settings to select it if you wish to download it.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="922"/>
|
||||
<location filename="../src/gui/folder.cpp" line="927"/>
|
||||
<source>All files in the sync folder '%1' folder were deleted on the server.
|
||||
These deletes will be synchronized to your local sync folder, making such files unavailable unless you have a right to restore.
|
||||
If you decide to keep the files, they will be re-synced with the server if you have rights to do so.
|
||||
|
@ -769,46 +769,46 @@ If you decide to delete the files, they will be unavailable to you, unless you a
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="927"/>
|
||||
<location filename="../src/gui/folder.cpp" line="932"/>
|
||||
<source>All the files in your local sync folder '%1' were deleted. These deletes will be synchronized with your server, making such files unavailable unless restored.
|
||||
Are you sure you want to sync those actions with the server?
|
||||
If this was an accident and you decide to keep your files, they will be re-synced from the server.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="931"/>
|
||||
<location filename="../src/gui/folder.cpp" line="936"/>
|
||||
<source>Remove All Files?</source>
|
||||
<translation>Törli az összes fájlt?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="934"/>
|
||||
<location filename="../src/gui/folder.cpp" line="939"/>
|
||||
<source>Remove all files</source>
|
||||
<translation>Összes fájl eltávolítása</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="935"/>
|
||||
<location filename="../src/gui/folder.cpp" line="940"/>
|
||||
<source>Keep files</source>
|
||||
<translation>Fájlok megtartása</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="952"/>
|
||||
<location filename="../src/gui/folder.cpp" line="957"/>
|
||||
<source>This sync would reset the files to an earlier time in the sync folder '%1'.
|
||||
This might be because a backup was restored on the server.
|
||||
Continuing the sync as normal will cause all your files to be overwritten by an older file in an earlier state. Do you want to keep your local most recent files as conflict files?</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="957"/>
|
||||
<location filename="../src/gui/folder.cpp" line="962"/>
|
||||
<source>Backup detected</source>
|
||||
<translation>Biztonsági mentés észlelve</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="960"/>
|
||||
<location filename="../src/gui/folder.cpp" line="965"/>
|
||||
<source>Normal Synchronisation</source>
|
||||
<translation>Normal szinkronizáció</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="961"/>
|
||||
<location filename="../src/gui/folder.cpp" line="966"/>
|
||||
<source>Keep Local Files as Conflict</source>
|
||||
<translation>Helyi file-ok megtartása konfliktusként</translation>
|
||||
</message>
|
||||
|
@ -1282,22 +1282,22 @@ Continuing the sync as normal will cause all your files to be overwritten by an
|
|||
<context>
|
||||
<name>OCC::HttpCredentialsGui</name>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="97"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="98"/>
|
||||
<source>Please enter %1 password:<br><br>User: %2<br>Account: %3<br></source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="111"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="112"/>
|
||||
<source>Reading from keychain failed with error: '%1'</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="117"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="118"/>
|
||||
<source>Enter Password</source>
|
||||
<translation>Jelszómegadás</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="154"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="155"/>
|
||||
<source><a href="%1">Click here</a> to request an app password from the web interface.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
|
@ -1417,12 +1417,12 @@ Items where deletion is allowed will be deleted if they prevent a directory from
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/issueswidget.ui" line="145"/>
|
||||
<location filename="../src/gui/issueswidget.ui" line="148"/>
|
||||
<source>Copy the issues list to the clipboard.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/issueswidget.ui" line="148"/>
|
||||
<location filename="../src/gui/issueswidget.ui" line="151"/>
|
||||
<source>Copy</source>
|
||||
<translation>Másolás</translation>
|
||||
</message>
|
||||
|
@ -1906,144 +1906,144 @@ It is not advisable to use it.</source>
|
|||
<context>
|
||||
<name>OCC::OwncloudSetupWizard</name>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="217"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="250"/>
|
||||
<source><font color="green">Successfully connected to %1: %2 version %3 (%4)</font><br/><br/></source>
|
||||
<translation><font color="green">Sikeresen csatlakozott az %1-hoz: %2 verziószám %3 (%4)</font><br/><br/></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="251"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="280"/>
|
||||
<source>Failed to connect to %1 at %2:<br/>%3</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="285"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="314"/>
|
||||
<source>Timeout while trying to connect to %1 at %2.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="296"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="334"/>
|
||||
<source>Trying to connect to %1 at %2...</source>
|
||||
<translation>Próbál kapcsolódni az %1-hoz: %2...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="347"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="385"/>
|
||||
<source>The authenticated request to the server was redirected to '%1'. The URL is bad, the server is misconfigured.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="369"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="407"/>
|
||||
<source>There was an invalid response to an authenticated webdav request</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="360"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="398"/>
|
||||
<source>Access forbidden by server. To verify that you have proper access, <a href="%1">click here</a> to access the service with your browser.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="249"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="278"/>
|
||||
<source>Invalid URL</source>
|
||||
<translation>Érvénytelen URL</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="414"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="452"/>
|
||||
<source>Local sync folder %1 already exists, setting it up for sync.<br/><br/></source>
|
||||
<translation>A helyi %1 mappa már létezik, állítsa be a szinkronizálódását.<br/><br/></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="417"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="455"/>
|
||||
<source>Creating local sync folder %1...</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="421"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="459"/>
|
||||
<source>ok</source>
|
||||
<translation>ok</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="423"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="461"/>
|
||||
<source>failed.</source>
|
||||
<translation> sikertelen.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="425"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="463"/>
|
||||
<source>Could not create local folder %1</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="451"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="489"/>
|
||||
<source>No remote folder specified!</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="457"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="495"/>
|
||||
<source>Error: %1</source>
|
||||
<translation>Hiba: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="470"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="508"/>
|
||||
<source>creating folder on ownCloud: %1</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="486"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="524"/>
|
||||
<source>Remote folder %1 created successfully.</source>
|
||||
<translation>%1 távoli nappa sikeresen létrehozva.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="488"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="526"/>
|
||||
<source>The remote folder %1 already exists. Connecting it for syncing.</source>
|
||||
<translation>A %1 távoli mappa már létezik. Csatlakoztassa a szinkronizációhoz.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="490"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="492"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="528"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="530"/>
|
||||
<source>The folder creation resulted in HTTP error code %1</source>
|
||||
<translation>A könyvtár létrehozásakor keletkezett HTTP hibakód %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="494"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="532"/>
|
||||
<source>The remote folder creation failed because the provided credentials are wrong!<br/>Please go back and check your credentials.</p></source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="498"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="536"/>
|
||||
<source><p><font color="red">Remote folder creation failed probably because the provided credentials are wrong.</font><br/>Please go back and check your credentials.</p></source>
|
||||
<translation><p><font color="red">A távoli mappa létrehozása sikertelen, valószínűleg mivel hibásak a megdott hitelesítési adatok.</font><br/>Lépjen vissza és ellenőrizze a belépési adatokat.</p></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="503"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="504"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="541"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="542"/>
|
||||
<source>Remote folder %1 creation failed with error <tt>%2</tt>.</source>
|
||||
<translation>A távoli %1 mappa létrehozása nem sikerült. Hibaüzenet: <tt>%2</tt>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="521"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="559"/>
|
||||
<source>A sync connection from %1 to remote directory %2 was set up.</source>
|
||||
<translation>A szinkronizációs kapcsolat a %1 és a %2 távoli mappa között létrejött.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="526"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="564"/>
|
||||
<source>Successfully connected to %1!</source>
|
||||
<translation>Sikeresen csatlakozva: %1!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="533"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="571"/>
|
||||
<source>Connection to %1 could not be established. Please check again.</source>
|
||||
<translation>A kapcsolat a %1 kiszolgálóhoz sikertelen. Ellenőrizze újra.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="547"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="585"/>
|
||||
<source>Folder rename failed</source>
|
||||
<translation>A mappa átnevezése nem sikerült</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="548"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="586"/>
|
||||
<source>Can't remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="593"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="631"/>
|
||||
<source><font color="green"><b>Local sync folder %1 successfully created!</b></font></source>
|
||||
<translation><font color="green"><b>Helyi %1 szinkronizációs mappa sikeresen létrehozva!</b></font></translation>
|
||||
</message>
|
||||
|
@ -2090,7 +2090,7 @@ It is not advisable to use it.</source>
|
|||
<context>
|
||||
<name>OCC::PropagateDirectory</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="942"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="953"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
|
@ -2128,17 +2128,17 @@ It is not advisable to use it.</source>
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="772"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="775"/>
|
||||
<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="820"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="823"/>
|
||||
<source>File has changed since discovery</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="871"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="874"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
|
@ -2214,12 +2214,12 @@ It is not advisable to use it.</source>
|
|||
<context>
|
||||
<name>OCC::PropagateRemoteDelete</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="96"/>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="100"/>
|
||||
<source>The file has been removed from a read only share. It was restored.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="117"/>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="121"/>
|
||||
<source>Wrong HTTP code returned by server. Expected 204, but received "%1 %2".</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
|
@ -2227,12 +2227,12 @@ It is not advisable to use it.</source>
|
|||
<context>
|
||||
<name>OCC::PropagateRemoteMkdir</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="95"/>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="99"/>
|
||||
<source>Wrong HTTP code returned by server. Expected 201, but received "%1 %2".</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="147"/>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="151"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
|
@ -2250,18 +2250,18 @@ It is not advisable to use it.</source>
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="137"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="141"/>
|
||||
<source>The file was renamed but is part of a read only share. The original file was restored.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="154"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="158"/>
|
||||
<source>Wrong HTTP code returned by server. Expected 201, but received "%1 %2".</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="186"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="192"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="190"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="196"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
|
@ -2295,7 +2295,7 @@ It is not advisable to use it.</source>
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateupload.cpp" line="618"/>
|
||||
<location filename="../src/libsync/propagateupload.cpp" line="622"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
|
@ -2369,42 +2369,42 @@ It is not advisable to use it.</source>
|
|||
<translation>TextLabel</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="48"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="61"/>
|
||||
<source>Time</source>
|
||||
<translation>Idő</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="49"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="62"/>
|
||||
<source>File</source>
|
||||
<translation>Fájl</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="50"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="63"/>
|
||||
<source>Folder</source>
|
||||
<translation>Mappa</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="51"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="64"/>
|
||||
<source>Action</source>
|
||||
<translation>Művelet</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="52"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="65"/>
|
||||
<source>Size</source>
|
||||
<translation>Méret</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="72"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="85"/>
|
||||
<source>Local sync protocol</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="74"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="87"/>
|
||||
<source>Copy</source>
|
||||
<translation>Másolás</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="75"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="88"/>
|
||||
<source>Copy the activity list to the clipboard.</source>
|
||||
<translation>Az aktivitási lista másolása a vágólapra.</translation>
|
||||
</message>
|
||||
|
@ -2536,6 +2536,7 @@ It is not advisable to use it.</source>
|
|||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/settingsdialogmac.cpp" line="152"/>
|
||||
<location filename="../src/gui/settingsdialogmac.cpp" line="211"/>
|
||||
<source>Account</source>
|
||||
<translation>Fiók</translation>
|
||||
</message>
|
||||
|
@ -3191,22 +3192,22 @@ It is not advisable to use it.</source>
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1278"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1287"/>
|
||||
<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="1285"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1294"/>
|
||||
<source>Not allowed because you don't have permission to add files in that folder</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1588"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1597"/>
|
||||
<source>Disk space is low: Downloads that would reduce free space below %1 were skipped.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1595"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1604"/>
|
||||
<source>There is insufficient space available on the server for some uploads.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
|
@ -3331,54 +3332,54 @@ It is not advisable to use it.</source>
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="968"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="977"/>
|
||||
<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="1204"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1244"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1213"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1253"/>
|
||||
<source>Ignored because of the "choose what to sync" blacklist</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1263"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1272"/>
|
||||
<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="1310"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1319"/>
|
||||
<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="1326"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1345"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1335"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1354"/>
|
||||
<source>Not allowed to remove, restoring</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1359"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1368"/>
|
||||
<source>Local files and share folder removed.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1413"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1422"/>
|
||||
<source>Move not allowed, item restored</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1424"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1433"/>
|
||||
<source>Move not allowed because %1 is read-only</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1424"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1433"/>
|
||||
<source>the destination</source>
|
||||
<translation>a cél</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1424"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1433"/>
|
||||
<source>the source</source>
|
||||
<translation>a forrás</translation>
|
||||
</message>
|
||||
|
@ -3420,17 +3421,17 @@ It is not advisable to use it.</source>
|
|||
<context>
|
||||
<name>OCC::ValidateChecksumHeader</name>
|
||||
<message>
|
||||
<location filename="../src/common/checksums.cpp" line="205"/>
|
||||
<location filename="../src/common/checksums.cpp" line="218"/>
|
||||
<source>The checksum header is malformed.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/common/checksums.cpp" line="220"/>
|
||||
<location filename="../src/common/checksums.cpp" line="233"/>
|
||||
<source>The checksum header contained an unknown checksum type '%1'</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/common/checksums.cpp" line="224"/>
|
||||
<location filename="../src/common/checksums.cpp" line="237"/>
|
||||
<source>The downloaded file does not match the checksum, it will be resumed.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
|
|
|
@ -596,7 +596,7 @@
|
|||
<context>
|
||||
<name>OCC::CleanupPollsJob</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="990"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="1001"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Errore durante la scrittura dei metadati nel database</translation>
|
||||
</message>
|
||||
|
@ -744,14 +744,14 @@
|
|||
<translation>Impossibile leggere il file di esclusione di sistema</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="883"/>
|
||||
<location filename="../src/gui/folder.cpp" line="888"/>
|
||||
<source>A new folder larger than %1 MB has been added: %2.
|
||||
</source>
|
||||
<translation>Una nuova cartella più grande di %1 MB è stata aggiunta: %2.
|
||||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="886"/>
|
||||
<location filename="../src/gui/folder.cpp" line="891"/>
|
||||
<source>A folder from an external storage has been added.
|
||||
</source>
|
||||
<translation>Una nuova cartella da un'archiviazione esterna è stata aggiunta.
|
||||
|
@ -759,12 +759,12 @@
|
|||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="887"/>
|
||||
<location filename="../src/gui/folder.cpp" line="892"/>
|
||||
<source>Please go in the settings to select it if you wish to download it.</source>
|
||||
<translation>Vai nelle impostazioni e selezionala se vuoi scaricarla.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="922"/>
|
||||
<location filename="../src/gui/folder.cpp" line="927"/>
|
||||
<source>All files in the sync folder '%1' folder were deleted on the server.
|
||||
These deletes will be synchronized to your local sync folder, making such files unavailable unless you have a right to restore.
|
||||
If you decide to keep the files, they will be re-synced with the server if you have rights to do so.
|
||||
|
@ -772,29 +772,29 @@ If you decide to delete the files, they will be unavailable to you, unless you a
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="927"/>
|
||||
<location filename="../src/gui/folder.cpp" line="932"/>
|
||||
<source>All the files in your local sync folder '%1' were deleted. These deletes will be synchronized with your server, making such files unavailable unless restored.
|
||||
Are you sure you want to sync those actions with the server?
|
||||
If this was an accident and you decide to keep your files, they will be re-synced from the server.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="931"/>
|
||||
<location filename="../src/gui/folder.cpp" line="936"/>
|
||||
<source>Remove All Files?</source>
|
||||
<translation>Vuoi rimuovere tutti i file?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="934"/>
|
||||
<location filename="../src/gui/folder.cpp" line="939"/>
|
||||
<source>Remove all files</source>
|
||||
<translation>Rimuovi tutti i file</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="935"/>
|
||||
<location filename="../src/gui/folder.cpp" line="940"/>
|
||||
<source>Keep files</source>
|
||||
<translation>Mantieni i file</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="952"/>
|
||||
<location filename="../src/gui/folder.cpp" line="957"/>
|
||||
<source>This sync would reset the files to an earlier time in the sync folder '%1'.
|
||||
This might be because a backup was restored on the server.
|
||||
Continuing the sync as normal will cause all your files to be overwritten by an older file in an earlier state. Do you want to keep your local most recent files as conflict files?</source>
|
||||
|
@ -803,17 +803,17 @@ Ciò potrebbe verificarsi in seguito al ripristino di un backup sul server.
|
|||
Se continui normalmente la sincronizzazione provocherai la sovrascrittura di tutti i tuoi file con file più datati in uno stato precedente. Vuoi mantenere i tuoi file locali più recenti come file di conflitto?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="957"/>
|
||||
<location filename="../src/gui/folder.cpp" line="962"/>
|
||||
<source>Backup detected</source>
|
||||
<translation>Backup rilevato</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="960"/>
|
||||
<location filename="../src/gui/folder.cpp" line="965"/>
|
||||
<source>Normal Synchronisation</source>
|
||||
<translation>Sincronizzazione normale</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="961"/>
|
||||
<location filename="../src/gui/folder.cpp" line="966"/>
|
||||
<source>Keep Local Files as Conflict</source>
|
||||
<translation>Mantieni i file locali come conflitto</translation>
|
||||
</message>
|
||||
|
@ -1287,22 +1287,22 @@ Se continui normalmente la sincronizzazione provocherai la sovrascrittura di tut
|
|||
<context>
|
||||
<name>OCC::HttpCredentialsGui</name>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="97"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="98"/>
|
||||
<source>Please enter %1 password:<br><br>User: %2<br>Account: %3<br></source>
|
||||
<translation>Digita la password di %1:<br><br>Utente: '%2<br>Account: %3<br></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="111"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="112"/>
|
||||
<source>Reading from keychain failed with error: '%1'</source>
|
||||
<translation>Lettura dal portachiavi non riuscita con errore: '%1'</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="117"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="118"/>
|
||||
<source>Enter Password</source>
|
||||
<translation>Digita password</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="154"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="155"/>
|
||||
<source><a href="%1">Click here</a> to request an app password from the web interface.</source>
|
||||
<translation><a href="%1">Fai clic qui</a> per richiedere una password dell'applicazione dall'interfaccia web.</translation>
|
||||
</message>
|
||||
|
@ -1424,12 +1424,12 @@ Gli elementi per i quali è consentita l'eliminazione, saranno eliminati se
|
|||
<translation>Mostra i file ignorati</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/issueswidget.ui" line="145"/>
|
||||
<location filename="../src/gui/issueswidget.ui" line="148"/>
|
||||
<source>Copy the issues list to the clipboard.</source>
|
||||
<translation>Copia la lista dei problemi negli appunti.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/issueswidget.ui" line="148"/>
|
||||
<location filename="../src/gui/issueswidget.ui" line="151"/>
|
||||
<source>Copy</source>
|
||||
<translation>Copia</translation>
|
||||
</message>
|
||||
|
@ -1686,7 +1686,7 @@ Gli elementi per i quali è consentita l'eliminazione, saranno eliminati se
|
|||
<message>
|
||||
<location filename="../src/gui/creds/oauth.cpp" line="112"/>
|
||||
<source>Error returned from the server: <em>%1</em></source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Messaggio di errore dal server: <em>%1</em></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/oauth.cpp" line="115"/>
|
||||
|
@ -1914,144 +1914,144 @@ Non è consigliabile utilizzarlo.</translation>
|
|||
<context>
|
||||
<name>OCC::OwncloudSetupWizard</name>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="217"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="250"/>
|
||||
<source><font color="green">Successfully connected to %1: %2 version %3 (%4)</font><br/><br/></source>
|
||||
<translation><font color="green">Connesso correttamente a %1: %2 versione %3 (%4)</font><br/><br/></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="251"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="280"/>
|
||||
<source>Failed to connect to %1 at %2:<br/>%3</source>
|
||||
<translation>Connessione a %1 su %2:<br/>%3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="285"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="314"/>
|
||||
<source>Timeout while trying to connect to %1 at %2.</source>
|
||||
<translation>Tempo scaduto durante il tentativo di connessione a %1 su %2.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="296"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="334"/>
|
||||
<source>Trying to connect to %1 at %2...</source>
|
||||
<translation>Tentativo di connessione a %1 su %2...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="347"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="385"/>
|
||||
<source>The authenticated request to the server was redirected to '%1'. The URL is bad, the server is misconfigured.</source>
|
||||
<translation>La richiesta autenticata al server è stata rediretta a '%1'. L'URL è errato, il server non è configurato correttamente.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="369"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="407"/>
|
||||
<source>There was an invalid response to an authenticated webdav request</source>
|
||||
<translation>Ricevuta una risposta non valida a una richiesta webdav autenticata.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="360"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="398"/>
|
||||
<source>Access forbidden by server. To verify that you have proper access, <a href="%1">click here</a> to access the service with your browser.</source>
|
||||
<translation>Accesso negato dal server. Per verificare di avere i permessi appropriati, <a href="%1">fai clic qui</a> per accedere al servizio con il tuo browser.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="249"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="278"/>
|
||||
<source>Invalid URL</source>
|
||||
<translation>URL non valido</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="414"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="452"/>
|
||||
<source>Local sync folder %1 already exists, setting it up for sync.<br/><br/></source>
|
||||
<translation>La cartella di sincronizzazione locale %1 esiste già, impostata per la sincronizzazione.<br/><br/></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="417"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="455"/>
|
||||
<source>Creating local sync folder %1...</source>
|
||||
<translation>Creazione della cartella locale di sincronizzazione %1... </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="421"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="459"/>
|
||||
<source>ok</source>
|
||||
<translation>ok</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="423"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="461"/>
|
||||
<source>failed.</source>
|
||||
<translation>non riuscita.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="425"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="463"/>
|
||||
<source>Could not create local folder %1</source>
|
||||
<translation>Impossibile creare la cartella locale %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="451"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="489"/>
|
||||
<source>No remote folder specified!</source>
|
||||
<translation>Nessuna cartella remota specificata!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="457"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="495"/>
|
||||
<source>Error: %1</source>
|
||||
<translation>Errore: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="470"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="508"/>
|
||||
<source>creating folder on ownCloud: %1</source>
|
||||
<translation>creazione cartella su ownCloud: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="486"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="524"/>
|
||||
<source>Remote folder %1 created successfully.</source>
|
||||
<translation>La cartella remota %1 è stata creata correttamente.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="488"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="526"/>
|
||||
<source>The remote folder %1 already exists. Connecting it for syncing.</source>
|
||||
<translation>La cartella remota %1 esiste già. Connessione in corso per la sincronizzazione</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="490"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="492"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="528"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="530"/>
|
||||
<source>The folder creation resulted in HTTP error code %1</source>
|
||||
<translation>La creazione della cartella ha restituito un codice di errore HTTP %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="494"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="532"/>
|
||||
<source>The remote folder creation failed because the provided credentials are wrong!<br/>Please go back and check your credentials.</p></source>
|
||||
<translation>La creazione della cartella remota non è riuscita poiché le credenziali fornite sono errate!<br/>Torna indietro e verifica le credenziali.</p></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="498"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="536"/>
|
||||
<source><p><font color="red">Remote folder creation failed probably because the provided credentials are wrong.</font><br/>Please go back and check your credentials.</p></source>
|
||||
<translation><p><font color="red">La creazione della cartella remota non è riuscita probabilmente perché le credenziali fornite non sono corrette.</font><br/>Torna indietro e controlla le credenziali inserite.</p></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="503"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="504"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="541"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="542"/>
|
||||
<source>Remote folder %1 creation failed with error <tt>%2</tt>.</source>
|
||||
<translation>Creazione della cartella remota %1 non riuscita con errore <tt>%2</tt>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="521"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="559"/>
|
||||
<source>A sync connection from %1 to remote directory %2 was set up.</source>
|
||||
<translation>Una connessione di sincronizzazione da %1 alla cartella remota %2 è stata stabilita.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="526"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="564"/>
|
||||
<source>Successfully connected to %1!</source>
|
||||
<translation>Connesso con successo a %1!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="533"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="571"/>
|
||||
<source>Connection to %1 could not be established. Please check again.</source>
|
||||
<translation>La connessione a %1 non può essere stabilita. Prova ancora.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="547"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="585"/>
|
||||
<source>Folder rename failed</source>
|
||||
<translation>Rinomina della cartella non riuscita</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="548"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="586"/>
|
||||
<source>Can't remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup.</source>
|
||||
<translation>Impossibile rimuovere o creare una copia di sicurezza della cartella poiché la cartella o un file in essa contenuto è aperta in un altro programma. Chiudi la cartella o il file e premi Riprova o annulla la configurazione.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="593"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="631"/>
|
||||
<source><font color="green"><b>Local sync folder %1 successfully created!</b></font></source>
|
||||
<translation><font color="green"><b>Cartella locale %1 creata correttamente!</b></font></translation>
|
||||
</message>
|
||||
|
@ -2098,7 +2098,7 @@ Non è consigliabile utilizzarlo.</translation>
|
|||
<context>
|
||||
<name>OCC::PropagateDirectory</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="942"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="953"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Errore durante la scrittura dei metadati nel database</translation>
|
||||
</message>
|
||||
|
@ -2136,17 +2136,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="772"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="775"/>
|
||||
<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="820"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="823"/>
|
||||
<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="871"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="874"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Errore durante la scrittura dei metadati nel database</translation>
|
||||
</message>
|
||||
|
@ -2222,12 +2222,12 @@ Non è consigliabile utilizzarlo.</translation>
|
|||
<context>
|
||||
<name>OCC::PropagateRemoteDelete</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="96"/>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="100"/>
|
||||
<source>The file has been removed from a read only share. It was restored.</source>
|
||||
<translation>Il file è stato rimosso da una condivisione in sola lettura. È stato ripristinato.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="117"/>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="121"/>
|
||||
<source>Wrong HTTP code returned by server. Expected 204, but received "%1 %2".</source>
|
||||
<translation>Codice HTTP errato restituito dal server. Atteso 204, ma ricevuto "%1 %2".</translation>
|
||||
</message>
|
||||
|
@ -2235,12 +2235,12 @@ Non è consigliabile utilizzarlo.</translation>
|
|||
<context>
|
||||
<name>OCC::PropagateRemoteMkdir</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="95"/>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="99"/>
|
||||
<source>Wrong HTTP code returned by server. Expected 201, but received "%1 %2".</source>
|
||||
<translation>Codice HTTP errato restituito dal server. Atteso 201, ma ricevuto "%1 %2".</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="147"/>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="151"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Errore durante la scrittura dei metadati nel database</translation>
|
||||
</message>
|
||||
|
@ -2258,18 +2258,18 @@ Non è consigliabile utilizzarlo.</translation>
|
|||
<translation>Questa cartella non può essere rinominata. Ripristina il nome Shared.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="137"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="141"/>
|
||||
<source>The file was renamed but is part of a read only share. The original file was restored.</source>
|
||||
<translation>Il file è stato rinominato, ma è parte di una condivisione in sola lettura. Il file originale è stato ripristinato.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="154"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="158"/>
|
||||
<source>Wrong HTTP code returned by server. Expected 201, but received "%1 %2".</source>
|
||||
<translation>Codice HTTP errato restituito dal server. Atteso 201, ma ricevuto "%1 %2".</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="186"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="192"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="190"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="196"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Errore durante la scrittura dei metadati nel database</translation>
|
||||
</message>
|
||||
|
@ -2303,7 +2303,7 @@ Non è consigliabile utilizzarlo.</translation>
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateupload.cpp" line="618"/>
|
||||
<location filename="../src/libsync/propagateupload.cpp" line="622"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Errore durante la scrittura dei metadati nel database</translation>
|
||||
</message>
|
||||
|
@ -2377,42 +2377,42 @@ Non è consigliabile utilizzarlo.</translation>
|
|||
<translation>EtichettaTesto</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="48"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="61"/>
|
||||
<source>Time</source>
|
||||
<translation>Ora</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="49"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="62"/>
|
||||
<source>File</source>
|
||||
<translation>File</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="50"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="63"/>
|
||||
<source>Folder</source>
|
||||
<translation>Cartella</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="51"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="64"/>
|
||||
<source>Action</source>
|
||||
<translation>Azione</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="52"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="65"/>
|
||||
<source>Size</source>
|
||||
<translation>Dimensione</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="72"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="85"/>
|
||||
<source>Local sync protocol</source>
|
||||
<translation>Protocollo di sincronizzazione locale</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="74"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="87"/>
|
||||
<source>Copy</source>
|
||||
<translation>Copia</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="75"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="88"/>
|
||||
<source>Copy the activity list to the clipboard.</source>
|
||||
<translation>Copia l'elenco delle attività negli appunti.</translation>
|
||||
</message>
|
||||
|
@ -2544,6 +2544,7 @@ Non è consigliabile utilizzarlo.</translation>
|
|||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/settingsdialogmac.cpp" line="152"/>
|
||||
<location filename="../src/gui/settingsdialogmac.cpp" line="211"/>
|
||||
<source>Account</source>
|
||||
<translation>Account</translation>
|
||||
</message>
|
||||
|
@ -2692,22 +2693,22 @@ Non è consigliabile utilizzarlo.</translation>
|
|||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="91"/>
|
||||
<source>Link shares have been disabled</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>La condivisione tramite link è stata disabilitata</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="105"/>
|
||||
<source>Create public link share</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Crea collegamento pubblico</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="161"/>
|
||||
<source>Open link in browser</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Apri collegamento nel browser</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="162"/>
|
||||
<source>Copy link to clipboard</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Copia link negli appunti</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.cpp" line="163"/>
|
||||
|
@ -2760,17 +2761,17 @@ Non è consigliabile utilizzarlo.</translation>
|
|||
<message>
|
||||
<location filename="../src/gui/shareusergroupwidget.cpp" line="186"/>
|
||||
<source>The item is not shared with any users or groups</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>L'elemento non è condiviso con nessun utente o gruppo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/shareusergroupwidget.cpp" line="235"/>
|
||||
<source>Open link in browser</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Apri collegamento nel browser</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/shareusergroupwidget.cpp" line="237"/>
|
||||
<source>Copy link to clipboard</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Copia link negli appunti</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/shareusergroupwidget.cpp" line="239"/>
|
||||
|
@ -2785,7 +2786,7 @@ Non è consigliabile utilizzarlo.</translation>
|
|||
<message>
|
||||
<location filename="../src/gui/shareusergroupwidget.cpp" line="337"/>
|
||||
<source>I shared something with you</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Ho condiviso qualcosa con te</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -2878,22 +2879,22 @@ Non è consigliabile utilizzarlo.</translation>
|
|||
<message>
|
||||
<location filename="../src/gui/socketapi.cpp" line="555"/>
|
||||
<source>I shared something with you</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Ho condiviso qualcosa con te</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/socketapi.cpp" line="563"/>
|
||||
<source>Share...</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Condividi...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/socketapi.cpp" line="565"/>
|
||||
<source>Copy private link to clipboard</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Copia link privato negli appunti</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/socketapi.cpp" line="566"/>
|
||||
<source>Send private link by email...</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Invia link privato per email</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -3200,22 +3201,22 @@ Non è consigliabile utilizzarlo.</translation>
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1278"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1287"/>
|
||||
<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="1285"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1294"/>
|
||||
<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>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1588"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1597"/>
|
||||
<source>Disk space is low: Downloads that would reduce free space below %1 were skipped.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1595"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1604"/>
|
||||
<source>There is insufficient space available on the server for some uploads.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
|
@ -3340,54 +3341,54 @@ Non è consigliabile utilizzarlo.</translation>
|
|||
<translation>Impossibile aprire il registro di sincronizzazione</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="968"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="977"/>
|
||||
<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="1204"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1244"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1213"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1253"/>
|
||||
<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="1263"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1272"/>
|
||||
<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="1310"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1319"/>
|
||||
<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="1326"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1345"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1335"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1354"/>
|
||||
<source>Not allowed to remove, restoring</source>
|
||||
<translation>Rimozione non consentita, ripristino</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1359"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1368"/>
|
||||
<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="1413"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1422"/>
|
||||
<source>Move not allowed, item restored</source>
|
||||
<translation>Spostamento non consentito, elemento ripristinato</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1424"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1433"/>
|
||||
<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="1424"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1433"/>
|
||||
<source>the destination</source>
|
||||
<translation>la destinazione</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1424"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1433"/>
|
||||
<source>the source</source>
|
||||
<translation>l'origine</translation>
|
||||
</message>
|
||||
|
@ -3429,17 +3430,17 @@ Non è consigliabile utilizzarlo.</translation>
|
|||
<context>
|
||||
<name>OCC::ValidateChecksumHeader</name>
|
||||
<message>
|
||||
<location filename="../src/common/checksums.cpp" line="205"/>
|
||||
<location filename="../src/common/checksums.cpp" line="218"/>
|
||||
<source>The checksum header is malformed.</source>
|
||||
<translation>L'intestazione del codice di controllo non è valida.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/common/checksums.cpp" line="220"/>
|
||||
<location filename="../src/common/checksums.cpp" line="233"/>
|
||||
<source>The checksum header contained an unknown checksum type '%1'</source>
|
||||
<translation>L'intestazione di controllo conteneva un tipo di codice di controllo '%1' sconosciuto</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/common/checksums.cpp" line="224"/>
|
||||
<location filename="../src/common/checksums.cpp" line="237"/>
|
||||
<source>The downloaded file does not match the checksum, it will be resumed.</source>
|
||||
<translation>Il file scaricato non verifica il codice di controllo, sarà ripristinato.</translation>
|
||||
</message>
|
||||
|
@ -3553,7 +3554,7 @@ Non è consigliabile utilizzarlo.</translation>
|
|||
<message>
|
||||
<location filename="../src/gui/owncloudgui.cpp" line="240"/>
|
||||
<source>Disconnected from some accounts</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Disconnesso da un account</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudgui.cpp" line="251"/>
|
||||
|
@ -3579,17 +3580,17 @@ Non è consigliabile utilizzarlo.</translation>
|
|||
<location filename="../src/gui/owncloudgui.cpp" line="273"/>
|
||||
<location filename="../src/gui/owncloudgui.cpp" line="304"/>
|
||||
<source>Synchronization is paused</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>La sincronizzazione è in pausa</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudgui.cpp" line="306"/>
|
||||
<source>Error during synchronization</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Errore durante la sincronizzazione</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudgui.cpp" line="314"/>
|
||||
<source>No sync folders configured</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Nessuna cartella configurata per la sincronizzazione</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudgui.cpp" line="360"/>
|
||||
|
@ -3799,7 +3800,7 @@ Non è consigliabile utilizzarlo.</translation>
|
|||
<message>
|
||||
<location filename="../src/gui/wizard/owncloudoauthcredspage.ui" line="46"/>
|
||||
<source>An error occured while connecting. Please try again.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Si è verificato un errore durante la connessione. Prova ancora </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/wizard/owncloudoauthcredspage.ui" line="56"/>
|
||||
|
@ -4131,7 +4132,7 @@ Non è consigliabile utilizzarlo.</translation>
|
|||
<message>
|
||||
<location filename="../src/gui/guiutility.cpp" line="33"/>
|
||||
<source>Could not open browser</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Impossibile aprire il browser</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/guiutility.cpp" line="34"/>
|
||||
|
|
|
@ -596,7 +596,7 @@
|
|||
<context>
|
||||
<name>OCC::CleanupPollsJob</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="990"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="1001"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>メタデータのデータベースへの書き込みに失敗</translation>
|
||||
</message>
|
||||
|
@ -744,26 +744,26 @@
|
|||
<translation>システム上の除外ファイルを読み込めません</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="883"/>
|
||||
<location filename="../src/gui/folder.cpp" line="888"/>
|
||||
<source>A new folder larger than %1 MB has been added: %2.
|
||||
</source>
|
||||
<translation>%1 MB より大きな新しいフォルダーが追加されました: %2
|
||||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="886"/>
|
||||
<location filename="../src/gui/folder.cpp" line="891"/>
|
||||
<source>A folder from an external storage has been added.
|
||||
</source>
|
||||
<translation>外部ストレージからフォルダーが追加されました。
|
||||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="887"/>
|
||||
<location filename="../src/gui/folder.cpp" line="892"/>
|
||||
<source>Please go in the settings to select it if you wish to download it.</source>
|
||||
<translation>このフォルダーをダウンロードするには設定画面で選択してください。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="922"/>
|
||||
<location filename="../src/gui/folder.cpp" line="927"/>
|
||||
<source>All files in the sync folder '%1' folder were deleted on the server.
|
||||
These deletes will be synchronized to your local sync folder, making such files unavailable unless you have a right to restore.
|
||||
If you decide to keep the files, they will be re-synced with the server if you have rights to do so.
|
||||
|
@ -774,7 +774,7 @@ If you decide to delete the files, they will be unavailable to you, unless you a
|
|||
「すべてのファイルを削除」を選択すると、あなたが所有者でない限り、ファイルは使用できなくなります。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="927"/>
|
||||
<location filename="../src/gui/folder.cpp" line="932"/>
|
||||
<source>All the files in your local sync folder '%1' were deleted. These deletes will be synchronized with your server, making such files unavailable unless restored.
|
||||
Are you sure you want to sync those actions with the server?
|
||||
If this was an accident and you decide to keep your files, they will be re-synced from the server.</source>
|
||||
|
@ -783,39 +783,39 @@ If this was an accident and you decide to keep your files, they will be re-synce
|
|||
「ファイルを残す」を選択した場合、ファイルはサーバーから再同期されます。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="931"/>
|
||||
<location filename="../src/gui/folder.cpp" line="936"/>
|
||||
<source>Remove All Files?</source>
|
||||
<translation>すべてのファイルを削除しますか?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="934"/>
|
||||
<location filename="../src/gui/folder.cpp" line="939"/>
|
||||
<source>Remove all files</source>
|
||||
<translation>すべてのファイルを削除</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="935"/>
|
||||
<location filename="../src/gui/folder.cpp" line="940"/>
|
||||
<source>Keep files</source>
|
||||
<translation>ファイルを残す</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="952"/>
|
||||
<location filename="../src/gui/folder.cpp" line="957"/>
|
||||
<source>This sync would reset the files to an earlier time in the sync folder '%1'.
|
||||
This might be because a backup was restored on the server.
|
||||
Continuing the sync as normal will cause all your files to be overwritten by an older file in an earlier state. Do you want to keep your local most recent files as conflict files?</source>
|
||||
<translation>この同期により同期フォルダー '%1' のファイルが以前のものに戻されます。 これは、バックアップがサーバー上に復元されたためです。 通常と同じように同期を続けると、すべてのファイルが以前の状態の古いファイルによって上書きされます。最新のローカルファイルを競合ファイルとして保存しますか?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="957"/>
|
||||
<location filename="../src/gui/folder.cpp" line="962"/>
|
||||
<source>Backup detected</source>
|
||||
<translation>バックアップが検出されました</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="960"/>
|
||||
<location filename="../src/gui/folder.cpp" line="965"/>
|
||||
<source>Normal Synchronisation</source>
|
||||
<translation>正常同期</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="961"/>
|
||||
<location filename="../src/gui/folder.cpp" line="966"/>
|
||||
<source>Keep Local Files as Conflict</source>
|
||||
<translation>コンフリクト時にローカルファイルを保持</translation>
|
||||
</message>
|
||||
|
@ -1289,22 +1289,22 @@ Continuing the sync as normal will cause all your files to be overwritten by an
|
|||
<context>
|
||||
<name>OCC::HttpCredentialsGui</name>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="97"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="98"/>
|
||||
<source>Please enter %1 password:<br><br>User: %2<br>Account: %3<br></source>
|
||||
<translation>%1 のパスワードを入力してください:<br> <br>ユーザー:%2<br>アカウント:%3<br></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="111"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="112"/>
|
||||
<source>Reading from keychain failed with error: '%1'</source>
|
||||
<translation>鍵情報の読み込みに失敗しました。エラー: '%1'</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="117"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="118"/>
|
||||
<source>Enter Password</source>
|
||||
<translation>パスワードを入力してください</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="154"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="155"/>
|
||||
<source><a href="%1">Click here</a> to request an app password from the web interface.</source>
|
||||
<translation><a href="%1">ここをクリック</a>してウェブインターフェースからアプリパスワードをリクエストしてください。</translation>
|
||||
</message>
|
||||
|
@ -1426,12 +1426,12 @@ Items where deletion is allowed will be deleted if they prevent a directory from
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/issueswidget.ui" line="145"/>
|
||||
<location filename="../src/gui/issueswidget.ui" line="148"/>
|
||||
<source>Copy the issues list to the clipboard.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/issueswidget.ui" line="148"/>
|
||||
<location filename="../src/gui/issueswidget.ui" line="151"/>
|
||||
<source>Copy</source>
|
||||
<translation>コピー</translation>
|
||||
</message>
|
||||
|
@ -1915,144 +1915,144 @@ It is not advisable to use it.</source>
|
|||
<context>
|
||||
<name>OCC::OwncloudSetupWizard</name>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="217"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="250"/>
|
||||
<source><font color="green">Successfully connected to %1: %2 version %3 (%4)</font><br/><br/></source>
|
||||
<translation><font color="green">正常に %1 へ接続されました:%2 バージョン %3 (%4)</font><br/><br/></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="251"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="280"/>
|
||||
<source>Failed to connect to %1 at %2:<br/>%3</source>
|
||||
<translation>%2 の %1 に接続に失敗:<br/>%3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="285"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="314"/>
|
||||
<source>Timeout while trying to connect to %1 at %2.</source>
|
||||
<translation>%2 の %1 へ接続を試みた際にタイムアウトしました。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="296"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="334"/>
|
||||
<source>Trying to connect to %1 at %2...</source>
|
||||
<translation>%2 の %1 へ接続を試みています...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="347"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="385"/>
|
||||
<source>The authenticated request to the server was redirected to '%1'. The URL is bad, the server is misconfigured.</source>
|
||||
<translation>サーバーへの認証リクエストは '%1' へリダイレクトされました。URLは不正です、サーバーの設定に誤りがあります。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="369"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="407"/>
|
||||
<source>There was an invalid response to an authenticated webdav request</source>
|
||||
<translation>認証された WebDav リクエストに不正な応答がありました</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="360"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="398"/>
|
||||
<source>Access forbidden by server. To verify that you have proper access, <a href="%1">click here</a> to access the service with your browser.</source>
|
||||
<translation>サーバーによってアクセスが拒否されています。適切なアクセス権があるか検証するには、<a href="%1">ここをクリック</a>してブラウザーでサービスにアクセスしてください。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="249"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="278"/>
|
||||
<source>Invalid URL</source>
|
||||
<translation>無効なURL</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="414"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="452"/>
|
||||
<source>Local sync folder %1 already exists, setting it up for sync.<br/><br/></source>
|
||||
<translation>ローカルの同期フォルダー %1 はすでに存在するため、同期の設定をしてください。<br/><br/></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="417"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="455"/>
|
||||
<source>Creating local sync folder %1...</source>
|
||||
<translation>ローカル同期フォルダー %1 を作成中...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="421"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="459"/>
|
||||
<source>ok</source>
|
||||
<translation>OK</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="423"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="461"/>
|
||||
<source>failed.</source>
|
||||
<translation>失敗。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="425"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="463"/>
|
||||
<source>Could not create local folder %1</source>
|
||||
<translation>ローカルフォルダー %1 を作成できませんでした</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="451"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="489"/>
|
||||
<source>No remote folder specified!</source>
|
||||
<translation>リモートフォルダーが指定されていません!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="457"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="495"/>
|
||||
<source>Error: %1</source>
|
||||
<translation>エラー: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="470"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="508"/>
|
||||
<source>creating folder on ownCloud: %1</source>
|
||||
<translation>ownCloud上にフォルダーを作成中: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="486"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="524"/>
|
||||
<source>Remote folder %1 created successfully.</source>
|
||||
<translation>リモートフォルダー %1 は正常に生成されました。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="488"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="526"/>
|
||||
<source>The remote folder %1 already exists. Connecting it for syncing.</source>
|
||||
<translation>リモートフォルダー %1 はすでに存在します。同期のために接続しています。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="490"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="492"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="528"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="530"/>
|
||||
<source>The folder creation resulted in HTTP error code %1</source>
|
||||
<translation>フォルダーの作成はHTTPのエラーコード %1 で終了しました</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="494"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="532"/>
|
||||
<source>The remote folder creation failed because the provided credentials are wrong!<br/>Please go back and check your credentials.</p></source>
|
||||
<translation>指定された資格情報が間違っているため、リモートフォルダーの作成に失敗しました!<br/>前に戻って資格情報を確認してください。</p></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="498"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="536"/>
|
||||
<source><p><font color="red">Remote folder creation failed probably because the provided credentials are wrong.</font><br/>Please go back and check your credentials.</p></source>
|
||||
<translation><p><font color="red">おそらく資格情報が間違っているため、リモートフォルダーの作成に失敗しました。</font><br/>前に戻り、資格情報をチェックしてください。</p></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="503"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="504"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="541"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="542"/>
|
||||
<source>Remote folder %1 creation failed with error <tt>%2</tt>.</source>
|
||||
<translation>リモートフォルダー %1 の作成がエラーで失敗しました。<tt>%2</tt>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="521"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="559"/>
|
||||
<source>A sync connection from %1 to remote directory %2 was set up.</source>
|
||||
<translation>%1 からリモートディレクトリ %2 への同期接続を設定しました。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="526"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="564"/>
|
||||
<source>Successfully connected to %1!</source>
|
||||
<translation>%1への接続に成功しました!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="533"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="571"/>
|
||||
<source>Connection to %1 could not be established. Please check again.</source>
|
||||
<translation>%1 への接続を確立できませんでした。もう一度確認してください。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="547"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="585"/>
|
||||
<source>Folder rename failed</source>
|
||||
<translation>フォルダー名の変更に失敗しました。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="548"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="586"/>
|
||||
<source>Can't remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup.</source>
|
||||
<translation>フォルダーまたはその中にあるファイルが他のプログラムで開かれているため、フォルダーの削除やバックアップができません。フォルダーまたはファイルを閉じてから再試行するか、セットアップをキャンセルしてください。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="593"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="631"/>
|
||||
<source><font color="green"><b>Local sync folder %1 successfully created!</b></font></source>
|
||||
<translation><font color="green"><b>ローカルの同期フォルダー %1 は正常に作成されました!</b></font></translation>
|
||||
</message>
|
||||
|
@ -2099,7 +2099,7 @@ It is not advisable to use it.</source>
|
|||
<context>
|
||||
<name>OCC::PropagateDirectory</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="942"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="953"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>メタデータのデータベースへの書き込みに失敗</translation>
|
||||
</message>
|
||||
|
@ -2137,17 +2137,17 @@ It is not advisable to use it.</source>
|
|||
<translation>サーバーが通知しているファイルは %1 であるべきですが、ダウンロードファイルは空でした。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="772"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="775"/>
|
||||
<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="820"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="823"/>
|
||||
<source>File has changed since discovery</source>
|
||||
<translation>ファイルは発見以降に変更されました</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="871"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="874"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>メタデータのデータベースへの書き込みに失敗</translation>
|
||||
</message>
|
||||
|
@ -2223,12 +2223,12 @@ It is not advisable to use it.</source>
|
|||
<context>
|
||||
<name>OCC::PropagateRemoteDelete</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="96"/>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="100"/>
|
||||
<source>The file has been removed from a read only share. It was restored.</source>
|
||||
<translation>ファイルが読み込み専用の共有から削除されました。ファイルは復元されました。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="117"/>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="121"/>
|
||||
<source>Wrong HTTP code returned by server. Expected 204, but received "%1 %2".</source>
|
||||
<translation>誤ったHTTPコードがサーバーから返されました。204のはずが、"%1 %2"が返りました。</translation>
|
||||
</message>
|
||||
|
@ -2236,12 +2236,12 @@ It is not advisable to use it.</source>
|
|||
<context>
|
||||
<name>OCC::PropagateRemoteMkdir</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="95"/>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="99"/>
|
||||
<source>Wrong HTTP code returned by server. Expected 201, but received "%1 %2".</source>
|
||||
<translation>誤ったHTTPコードがサーバーから返されました。201のはずが、"%1 %2"が返りました。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="147"/>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="151"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>メタデータのデータベースへの書き込みに失敗</translation>
|
||||
</message>
|
||||
|
@ -2259,18 +2259,18 @@ It is not advisable to use it.</source>
|
|||
<translation>このフォルダー名は変更できません。名前を Shared に戻してください。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="137"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="141"/>
|
||||
<source>The file was renamed but is part of a read only share. The original file was restored.</source>
|
||||
<translation>ファイルの名前が変更されましたが、読み込み専用の共有の一部です。オリジナルのファイルが復元されました。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="154"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="158"/>
|
||||
<source>Wrong HTTP code returned by server. Expected 201, but received "%1 %2".</source>
|
||||
<translation>誤ったHTTPコードがサーバーから返されました。201のはずが、"%1 %2"が返りました。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="186"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="192"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="190"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="196"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>メタデータのデータベースへの書き込みに失敗</translation>
|
||||
</message>
|
||||
|
@ -2304,7 +2304,7 @@ It is not advisable to use it.</source>
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateupload.cpp" line="618"/>
|
||||
<location filename="../src/libsync/propagateupload.cpp" line="622"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>メタデータのデータベースへの書き込みに失敗</translation>
|
||||
</message>
|
||||
|
@ -2378,42 +2378,42 @@ It is not advisable to use it.</source>
|
|||
<translation>テキストラベル</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="48"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="61"/>
|
||||
<source>Time</source>
|
||||
<translation>時刻</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="49"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="62"/>
|
||||
<source>File</source>
|
||||
<translation>ファイル</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="50"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="63"/>
|
||||
<source>Folder</source>
|
||||
<translation>フォルダー</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="51"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="64"/>
|
||||
<source>Action</source>
|
||||
<translation>アクション</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="52"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="65"/>
|
||||
<source>Size</source>
|
||||
<translation>サイズ</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="72"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="85"/>
|
||||
<source>Local sync protocol</source>
|
||||
<translation>ローカルファイル同期状況</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="74"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="87"/>
|
||||
<source>Copy</source>
|
||||
<translation>コピー</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="75"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="88"/>
|
||||
<source>Copy the activity list to the clipboard.</source>
|
||||
<translation>アクティビティ一覧をコピーする</translation>
|
||||
</message>
|
||||
|
@ -2545,6 +2545,7 @@ It is not advisable to use it.</source>
|
|||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/settingsdialogmac.cpp" line="152"/>
|
||||
<location filename="../src/gui/settingsdialogmac.cpp" line="211"/>
|
||||
<source>Account</source>
|
||||
<translation>アカウント</translation>
|
||||
</message>
|
||||
|
@ -3201,22 +3202,22 @@ It is not advisable to use it.</source>
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1278"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1287"/>
|
||||
<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="1285"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1294"/>
|
||||
<source>Not allowed because you don't have permission to add files in that folder</source>
|
||||
<translation>そのフォルダーにファイルを追加する権限がありません</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1588"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1597"/>
|
||||
<source>Disk space is low: Downloads that would reduce free space below %1 were skipped.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1595"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1604"/>
|
||||
<source>There is insufficient space available on the server for some uploads.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
|
@ -3341,54 +3342,54 @@ It is not advisable to use it.</source>
|
|||
<translation>同期ジャーナルを開くことができません</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="968"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="977"/>
|
||||
<source>File name contains at least one invalid character</source>
|
||||
<translation>ファイル名に1文字以上の無効な文字が含まれています</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1204"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1244"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1213"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1253"/>
|
||||
<source>Ignored because of the "choose what to sync" blacklist</source>
|
||||
<translation>"同期対象先" ブラックリストにより無視されました。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1263"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1272"/>
|
||||
<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="1310"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1319"/>
|
||||
<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="1326"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1345"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1335"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1354"/>
|
||||
<source>Not allowed to remove, restoring</source>
|
||||
<translation>削除できないので復元しています</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1359"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1368"/>
|
||||
<source>Local files and share folder removed.</source>
|
||||
<translation>ローカルファイルと共有フォルダーを削除しました。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1413"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1422"/>
|
||||
<source>Move not allowed, item restored</source>
|
||||
<translation>移動できないので項目を復元しました</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1424"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1433"/>
|
||||
<source>Move not allowed because %1 is read-only</source>
|
||||
<translation>%1 は読み取り専用のため移動できません</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1424"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1433"/>
|
||||
<source>the destination</source>
|
||||
<translation>移動先</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1424"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1433"/>
|
||||
<source>the source</source>
|
||||
<translation>移動元</translation>
|
||||
</message>
|
||||
|
@ -3430,17 +3431,17 @@ It is not advisable to use it.</source>
|
|||
<context>
|
||||
<name>OCC::ValidateChecksumHeader</name>
|
||||
<message>
|
||||
<location filename="../src/common/checksums.cpp" line="205"/>
|
||||
<location filename="../src/common/checksums.cpp" line="218"/>
|
||||
<source>The checksum header is malformed.</source>
|
||||
<translation>ヘッダーのチェックサムが異常です。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/common/checksums.cpp" line="220"/>
|
||||
<location filename="../src/common/checksums.cpp" line="233"/>
|
||||
<source>The checksum header contained an unknown checksum type '%1'</source>
|
||||
<translation>チェックサムヘッダーに '%1' という未知のチェックサムが含まれていました</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/common/checksums.cpp" line="224"/>
|
||||
<location filename="../src/common/checksums.cpp" line="237"/>
|
||||
<source>The downloaded file does not match the checksum, it will be resumed.</source>
|
||||
<translation>ダウンロードしたファイルがチェックサムエラーです。再ダウンロードします。</translation>
|
||||
</message>
|
||||
|
|
|
@ -596,7 +596,7 @@
|
|||
<context>
|
||||
<name>OCC::CleanupPollsJob</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="990"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="1001"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Feil ved skriving av metadata til databasen</translation>
|
||||
</message>
|
||||
|
@ -744,25 +744,25 @@
|
|||
<translation>Klarte ikke å lese systemets ekskluderingsfil</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="883"/>
|
||||
<location filename="../src/gui/folder.cpp" line="888"/>
|
||||
<source>A new folder larger than %1 MB has been added: %2.
|
||||
</source>
|
||||
<translation>En ny mappe større enn %1 MB er blitt lagt til: %2.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="886"/>
|
||||
<location filename="../src/gui/folder.cpp" line="891"/>
|
||||
<source>A folder from an external storage has been added.
|
||||
</source>
|
||||
<translation>En mappe fra et eksternt lager er blitt lagt til.
|
||||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="887"/>
|
||||
<location filename="../src/gui/folder.cpp" line="892"/>
|
||||
<source>Please go in the settings to select it if you wish to download it.</source>
|
||||
<translation>Gå til Innstillinger og velg den hvis du ønsker å laste den ned.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="922"/>
|
||||
<location filename="../src/gui/folder.cpp" line="927"/>
|
||||
<source>All files in the sync folder '%1' folder were deleted on the server.
|
||||
These deletes will be synchronized to your local sync folder, making such files unavailable unless you have a right to restore.
|
||||
If you decide to keep the files, they will be re-synced with the server if you have rights to do so.
|
||||
|
@ -773,7 +773,7 @@ Hvis du velger å beholde filene, vil de bli synkronisert tilbake til serveren h
|
|||
Hvis du velger å slette filene, blir de utilgjengelige for deg hvis du ikke er eieren av filen.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="927"/>
|
||||
<location filename="../src/gui/folder.cpp" line="932"/>
|
||||
<source>All the files in your local sync folder '%1' were deleted. These deletes will be synchronized with your server, making such files unavailable unless restored.
|
||||
Are you sure you want to sync those actions with the server?
|
||||
If this was an accident and you decide to keep your files, they will be re-synced from the server.</source>
|
||||
|
@ -782,22 +782,22 @@ Er du sikker på at du ønsker å synkronisere denne handlingen med serveren?
|
|||
Hvis det var et uhell og du velger å beholde filene, vil de bli synkronisert tilbake fra serveren.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="931"/>
|
||||
<location filename="../src/gui/folder.cpp" line="936"/>
|
||||
<source>Remove All Files?</source>
|
||||
<translation>Fjerne alle filer?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="934"/>
|
||||
<location filename="../src/gui/folder.cpp" line="939"/>
|
||||
<source>Remove all files</source>
|
||||
<translation>Fjern alle filer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="935"/>
|
||||
<location filename="../src/gui/folder.cpp" line="940"/>
|
||||
<source>Keep files</source>
|
||||
<translation>Behold filer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="952"/>
|
||||
<location filename="../src/gui/folder.cpp" line="957"/>
|
||||
<source>This sync would reset the files to an earlier time in the sync folder '%1'.
|
||||
This might be because a backup was restored on the server.
|
||||
Continuing the sync as normal will cause all your files to be overwritten by an older file in an earlier state. Do you want to keep your local most recent files as conflict files?</source>
|
||||
|
@ -806,17 +806,17 @@ Dette kan være fordi en backup ble gjenopprettet på serveren.
|
|||
Hvis synkroniseringen fortsetter som normalt, vil alle filene dine bli overskrevet av en eldre fil i en tidligere tilstand. Ønsker du å beholde dine ferskeste lokale filer som konflikt-filer?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="957"/>
|
||||
<location filename="../src/gui/folder.cpp" line="962"/>
|
||||
<source>Backup detected</source>
|
||||
<translation>Backup oppdaget</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="960"/>
|
||||
<location filename="../src/gui/folder.cpp" line="965"/>
|
||||
<source>Normal Synchronisation</source>
|
||||
<translation>Normal synkronisering</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="961"/>
|
||||
<location filename="../src/gui/folder.cpp" line="966"/>
|
||||
<source>Keep Local Files as Conflict</source>
|
||||
<translation>Behold lokale filer som konflikt</translation>
|
||||
</message>
|
||||
|
@ -1290,22 +1290,22 @@ Hvis synkroniseringen fortsetter som normalt, vil alle filene dine bli overskrev
|
|||
<context>
|
||||
<name>OCC::HttpCredentialsGui</name>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="97"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="98"/>
|
||||
<source>Please enter %1 password:<br><br>User: %2<br>Account: %3<br></source>
|
||||
<translation>Legg inn %1-passord:<br><br>Bruker: %2<br>Konto: %3<br></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="111"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="112"/>
|
||||
<source>Reading from keychain failed with error: '%1'</source>
|
||||
<translation>Lesing fra nøkkelring feilet med feil: '%1'</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="117"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="118"/>
|
||||
<source>Enter Password</source>
|
||||
<translation>Legg inn passord</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="154"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="155"/>
|
||||
<source><a href="%1">Click here</a> to request an app password from the web interface.</source>
|
||||
<translation><a href="%1">Klikk her</a> for å be om et app-passord fra web-grensesnittet.</translation>
|
||||
</message>
|
||||
|
@ -1427,12 +1427,12 @@ Elementer hvor sletting er tillatt, vil bli slettet hvis de forhindrer fjerning
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/issueswidget.ui" line="145"/>
|
||||
<location filename="../src/gui/issueswidget.ui" line="148"/>
|
||||
<source>Copy the issues list to the clipboard.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/issueswidget.ui" line="148"/>
|
||||
<location filename="../src/gui/issueswidget.ui" line="151"/>
|
||||
<source>Copy</source>
|
||||
<translation>Kopier</translation>
|
||||
</message>
|
||||
|
@ -1918,144 +1918,144 @@ Det er ikke tilrådelig å bruke den.</translation>
|
|||
<context>
|
||||
<name>OCC::OwncloudSetupWizard</name>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="217"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="250"/>
|
||||
<source><font color="green">Successfully connected to %1: %2 version %3 (%4)</font><br/><br/></source>
|
||||
<translation><font color="green">Vellykket oppkobling mot %1: %2 versjon %3 (%4)</font><br/><br/></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="251"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="280"/>
|
||||
<source>Failed to connect to %1 at %2:<br/>%3</source>
|
||||
<translation>Klarte ikke å koble til %1 på %2:<br/>%3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="285"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="314"/>
|
||||
<source>Timeout while trying to connect to %1 at %2.</source>
|
||||
<translation>Tidsavbrudd ved oppkobling mot %1 på %2.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="296"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="334"/>
|
||||
<source>Trying to connect to %1 at %2...</source>
|
||||
<translation>Prøver å koble til %1 på %2...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="347"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="385"/>
|
||||
<source>The authenticated request to the server was redirected to '%1'. The URL is bad, the server is misconfigured.</source>
|
||||
<translation>Autentisert forespørsel til serveren ble omdirigert til '%1'. URL-en er ugyldig, serveren er feilkonfigurert.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="369"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="407"/>
|
||||
<source>There was an invalid response to an authenticated webdav request</source>
|
||||
<translation>Det kom et uventet svar fra en autentisert webdav-forespørsel.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="360"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="398"/>
|
||||
<source>Access forbidden by server. To verify that you have proper access, <a href="%1">click here</a> to access the service with your browser.</source>
|
||||
<translation>Tilgang forbudt av serveren. For å sjekke om du har gyldig tilgang, <a href="%1">klikk her</a> for å aksessere tjenesten med nettleseren din.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="249"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="278"/>
|
||||
<source>Invalid URL</source>
|
||||
<translation>Ugyldig URL</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="414"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="452"/>
|
||||
<source>Local sync folder %1 already exists, setting it up for sync.<br/><br/></source>
|
||||
<translation>Lokal synkroniseringsmappe %1 finnes allerede. Setter den opp for synkronisering.<br/><br/></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="417"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="455"/>
|
||||
<source>Creating local sync folder %1...</source>
|
||||
<translation>Oppretter lokal synkroniseringsmappe %1...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="421"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="459"/>
|
||||
<source>ok</source>
|
||||
<translation>ok</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="423"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="461"/>
|
||||
<source>failed.</source>
|
||||
<translation>feilet.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="425"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="463"/>
|
||||
<source>Could not create local folder %1</source>
|
||||
<translation>Klarte ikke å opprette lokal mappe %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="451"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="489"/>
|
||||
<source>No remote folder specified!</source>
|
||||
<translation>Ingen ekstern mappe spesifisert!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="457"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="495"/>
|
||||
<source>Error: %1</source>
|
||||
<translation>Feil: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="470"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="508"/>
|
||||
<source>creating folder on ownCloud: %1</source>
|
||||
<translation>oppretter mappe på ownCloud: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="486"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="524"/>
|
||||
<source>Remote folder %1 created successfully.</source>
|
||||
<translation>Ekstern mappe %1 ble opprettet.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="488"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="526"/>
|
||||
<source>The remote folder %1 already exists. Connecting it for syncing.</source>
|
||||
<translation>Ekstern mappe %1 finnes allerede. Kobler den til for synkronisering.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="490"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="492"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="528"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="530"/>
|
||||
<source>The folder creation resulted in HTTP error code %1</source>
|
||||
<translation>Oppretting av mappe resulterte i HTTP-feilkode %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="494"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="532"/>
|
||||
<source>The remote folder creation failed because the provided credentials are wrong!<br/>Please go back and check your credentials.</p></source>
|
||||
<translation>Oppretting av ekstern mappe feilet fordi påloggingsinformasjonen er feil!<br/>Gå tilbake og sjekk brukernavnet og passordet ditt.</p></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="498"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="536"/>
|
||||
<source><p><font color="red">Remote folder creation failed probably because the provided credentials are wrong.</font><br/>Please go back and check your credentials.</p></source>
|
||||
<translation><p><font color="red">Oppretting av ekstern mappe feilet, sannsynligvis fordi oppgitt påloggingsinformasjon er feil.</font><br/>Vennligst gå tilbake og sjekk ditt brukernavn og passord.</p></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="503"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="504"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="541"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="542"/>
|
||||
<source>Remote folder %1 creation failed with error <tt>%2</tt>.</source>
|
||||
<translation>Oppretting av ekstern mappe %1 feilet med feil <tt>%2</tt>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="521"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="559"/>
|
||||
<source>A sync connection from %1 to remote directory %2 was set up.</source>
|
||||
<translation>En synkroniseringsforbindelse fra %1 til ekstern mappe %2 ble satt opp.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="526"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="564"/>
|
||||
<source>Successfully connected to %1!</source>
|
||||
<translation>Forbindelse til %1 opprettet!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="533"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="571"/>
|
||||
<source>Connection to %1 could not be established. Please check again.</source>
|
||||
<translation>Klarte ikke å etablere forbindelse til %1. Sjekk igjen.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="547"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="585"/>
|
||||
<source>Folder rename failed</source>
|
||||
<translation>Omdøping av mappe feilet</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="548"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="586"/>
|
||||
<source>Can't remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup.</source>
|
||||
<translation>Kan ikke fjerne og sikkerhetskopiere mappen fordi mappen eller en fil i mappen er åpen i et annet program. Lukk mappen eller filen og prøv igjen, eller avbryt oppsettet.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="593"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="631"/>
|
||||
<source><font color="green"><b>Local sync folder %1 successfully created!</b></font></source>
|
||||
<translation><font color="green"><b>Oppretting av lokal synkroniseringsmappe %1 vellykket!</b></font></translation>
|
||||
</message>
|
||||
|
@ -2102,7 +2102,7 @@ Det er ikke tilrådelig å bruke den.</translation>
|
|||
<context>
|
||||
<name>OCC::PropagateDirectory</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="942"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="953"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Feil ved skriving av metadata til databasen</translation>
|
||||
</message>
|
||||
|
@ -2140,17 +2140,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="772"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="775"/>
|
||||
<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="820"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="823"/>
|
||||
<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="871"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="874"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Feil ved skriving av metadata til databasen</translation>
|
||||
</message>
|
||||
|
@ -2226,12 +2226,12 @@ Det er ikke tilrådelig å bruke den.</translation>
|
|||
<context>
|
||||
<name>OCC::PropagateRemoteDelete</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="96"/>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="100"/>
|
||||
<source>The file has been removed from a read only share. It was restored.</source>
|
||||
<translation>Filen er blitt fjernet fra en deling med lesetilgang. Den ble gjenopprettet.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="117"/>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="121"/>
|
||||
<source>Wrong HTTP code returned by server. Expected 204, but received "%1 %2".</source>
|
||||
<translation>Feil HTTP-kode returnert fra server. Ventet 204, men mottok "%1 %2".</translation>
|
||||
</message>
|
||||
|
@ -2239,12 +2239,12 @@ Det er ikke tilrådelig å bruke den.</translation>
|
|||
<context>
|
||||
<name>OCC::PropagateRemoteMkdir</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="95"/>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="99"/>
|
||||
<source>Wrong HTTP code returned by server. Expected 201, but received "%1 %2".</source>
|
||||
<translation>Feil HTTP-kode returnert fra server. Ventet 201, men mottok "%1 %2".</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="147"/>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="151"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Feil ved skriving av metadata til databasen</translation>
|
||||
</message>
|
||||
|
@ -2262,18 +2262,18 @@ Det er ikke tilrådelig å bruke den.</translation>
|
|||
<translation>Denne mappen må ikke omdøpes. Vennligst omdøp den tilbake til Shared.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="137"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="141"/>
|
||||
<source>The file was renamed but is part of a read only share. The original file was restored.</source>
|
||||
<translation>Filen ble gitt nytt navn mer er en del av en deling med lesetilgang. Den opprinnelige filen ble gjenopprettet.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="154"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="158"/>
|
||||
<source>Wrong HTTP code returned by server. Expected 201, but received "%1 %2".</source>
|
||||
<translation>Feil HTTP-kode returnert fra server. Ventet 201, men mottok "%1 %2".</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="186"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="192"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="190"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="196"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Feil ved skriving av metadata til databasen</translation>
|
||||
</message>
|
||||
|
@ -2307,7 +2307,7 @@ Det er ikke tilrådelig å bruke den.</translation>
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateupload.cpp" line="618"/>
|
||||
<location filename="../src/libsync/propagateupload.cpp" line="622"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Feil ved skriving av metadata til databasen</translation>
|
||||
</message>
|
||||
|
@ -2381,42 +2381,42 @@ Det er ikke tilrådelig å bruke den.</translation>
|
|||
<translation>Tekst-etikett</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="48"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="61"/>
|
||||
<source>Time</source>
|
||||
<translation>Tid</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="49"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="62"/>
|
||||
<source>File</source>
|
||||
<translation>Fil</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="50"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="63"/>
|
||||
<source>Folder</source>
|
||||
<translation>Mappe</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="51"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="64"/>
|
||||
<source>Action</source>
|
||||
<translation>Handling</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="52"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="65"/>
|
||||
<source>Size</source>
|
||||
<translation>Størrelse</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="72"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="85"/>
|
||||
<source>Local sync protocol</source>
|
||||
<translation>Lokal synkroniseringsprotokoll</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="74"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="87"/>
|
||||
<source>Copy</source>
|
||||
<translation>Kopier</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="75"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="88"/>
|
||||
<source>Copy the activity list to the clipboard.</source>
|
||||
<translation>Kopier aktivitetslisten til utklippstavlen.</translation>
|
||||
</message>
|
||||
|
@ -2548,6 +2548,7 @@ Det er ikke tilrådelig å bruke den.</translation>
|
|||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/settingsdialogmac.cpp" line="152"/>
|
||||
<location filename="../src/gui/settingsdialogmac.cpp" line="211"/>
|
||||
<source>Account</source>
|
||||
<translation>Konto</translation>
|
||||
</message>
|
||||
|
@ -3204,22 +3205,22 @@ Det er ikke tilrådelig å bruke den.</translation>
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1278"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1287"/>
|
||||
<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="1285"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1294"/>
|
||||
<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>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1588"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1597"/>
|
||||
<source>Disk space is low: Downloads that would reduce free space below %1 were skipped.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1595"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1604"/>
|
||||
<source>There is insufficient space available on the server for some uploads.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
|
@ -3344,54 +3345,54 @@ Det er ikke tilrådelig å bruke den.</translation>
|
|||
<translation>Kan ikke åpne synkroniseringsjournalen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="968"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="977"/>
|
||||
<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="1204"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1244"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1213"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1253"/>
|
||||
<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="1263"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1272"/>
|
||||
<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="1310"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1319"/>
|
||||
<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="1326"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1345"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1335"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1354"/>
|
||||
<source>Not allowed to remove, restoring</source>
|
||||
<translation>Ikke tillatt å fjerne, gjenoppretter</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1359"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1368"/>
|
||||
<source>Local files and share folder removed.</source>
|
||||
<translation>Lokale filer og delingsmappe fjernet.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1413"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1422"/>
|
||||
<source>Move not allowed, item restored</source>
|
||||
<translation>Flytting ikke tillatt, element gjenopprettet</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1424"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1433"/>
|
||||
<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="1424"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1433"/>
|
||||
<source>the destination</source>
|
||||
<translation>målet</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1424"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1433"/>
|
||||
<source>the source</source>
|
||||
<translation>kilden</translation>
|
||||
</message>
|
||||
|
@ -3433,17 +3434,17 @@ Det er ikke tilrådelig å bruke den.</translation>
|
|||
<context>
|
||||
<name>OCC::ValidateChecksumHeader</name>
|
||||
<message>
|
||||
<location filename="../src/common/checksums.cpp" line="205"/>
|
||||
<location filename="../src/common/checksums.cpp" line="218"/>
|
||||
<source>The checksum header is malformed.</source>
|
||||
<translation>Sjekksum-headeren har feil format.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/common/checksums.cpp" line="220"/>
|
||||
<location filename="../src/common/checksums.cpp" line="233"/>
|
||||
<source>The checksum header contained an unknown checksum type '%1'</source>
|
||||
<translation>Sjekksum-header inneholdt ukjent sjekksum-type '%1'</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/common/checksums.cpp" line="224"/>
|
||||
<location filename="../src/common/checksums.cpp" line="237"/>
|
||||
<source>The downloaded file does not match the checksum, it will be resumed.</source>
|
||||
<translation>Den nedlastede filen passer ikke med sjekksummen, den vil bli gjenopptatt.</translation>
|
||||
</message>
|
||||
|
|
|
@ -596,7 +596,7 @@
|
|||
<context>
|
||||
<name>OCC::CleanupPollsJob</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="990"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="1001"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Fout bij schrijven van Metadata naar de database</translation>
|
||||
</message>
|
||||
|
@ -744,26 +744,26 @@
|
|||
<translation>Kon het systeem-uitsluitingsbestand niet lezen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="883"/>
|
||||
<location filename="../src/gui/folder.cpp" line="888"/>
|
||||
<source>A new folder larger than %1 MB has been added: %2.
|
||||
</source>
|
||||
<translation>Er is een nieuwe map groter dan %1 MB toegevoegd: %2.
|
||||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="886"/>
|
||||
<location filename="../src/gui/folder.cpp" line="891"/>
|
||||
<source>A folder from an external storage has been added.
|
||||
</source>
|
||||
<translation>Er is een map op externe opslag toegevoegd.
|
||||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="887"/>
|
||||
<location filename="../src/gui/folder.cpp" line="892"/>
|
||||
<source>Please go in the settings to select it if you wish to download it.</source>
|
||||
<translation>Ga naar de instellingen om het te selecteren als u deze wilt downloaden.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="922"/>
|
||||
<location filename="../src/gui/folder.cpp" line="927"/>
|
||||
<source>All files in the sync folder '%1' folder were deleted on the server.
|
||||
These deletes will be synchronized to your local sync folder, making such files unavailable unless you have a right to restore.
|
||||
If you decide to keep the files, they will be re-synced with the server if you have rights to do so.
|
||||
|
@ -774,7 +774,7 @@ Als u de bestanden wilt behouden, worden ze opnieuw gesynchroniseerd met de serv
|
|||
Als u de bestanden wilt verwijderen, worden ze niet beschikbaar, tenzij u de eigenaar bent.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="927"/>
|
||||
<location filename="../src/gui/folder.cpp" line="932"/>
|
||||
<source>All the files in your local sync folder '%1' were deleted. These deletes will be synchronized with your server, making such files unavailable unless restored.
|
||||
Are you sure you want to sync those actions with the server?
|
||||
If this was an accident and you decide to keep your files, they will be re-synced from the server.</source>
|
||||
|
@ -782,22 +782,22 @@ If this was an accident and you decide to keep your files, they will be re-synce
|
|||
Als dit een ongelukje was en u de bestanden wilt behouden, worden ze opnieuw gesynchroniseerd met de server.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="931"/>
|
||||
<location filename="../src/gui/folder.cpp" line="936"/>
|
||||
<source>Remove All Files?</source>
|
||||
<translation>Verwijder alle bestanden?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="934"/>
|
||||
<location filename="../src/gui/folder.cpp" line="939"/>
|
||||
<source>Remove all files</source>
|
||||
<translation>Verwijder alle bestanden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="935"/>
|
||||
<location filename="../src/gui/folder.cpp" line="940"/>
|
||||
<source>Keep files</source>
|
||||
<translation>Bewaar bestanden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="952"/>
|
||||
<location filename="../src/gui/folder.cpp" line="957"/>
|
||||
<source>This sync would reset the files to an earlier time in the sync folder '%1'.
|
||||
This might be because a backup was restored on the server.
|
||||
Continuing the sync as normal will cause all your files to be overwritten by an older file in an earlier state. Do you want to keep your local most recent files as conflict files?</source>
|
||||
|
@ -806,17 +806,17 @@ Dit kan komen doordat een backup is hersteld op de server.
|
|||
Doorgaan met deze synchronisatie overschrijft al uw bestanden door een eerdere versie. Wilt u uw lokale meer recente bestanden behouden als conflict bestanden?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="957"/>
|
||||
<location filename="../src/gui/folder.cpp" line="962"/>
|
||||
<source>Backup detected</source>
|
||||
<translation>Backup gedetecteerd</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="960"/>
|
||||
<location filename="../src/gui/folder.cpp" line="965"/>
|
||||
<source>Normal Synchronisation</source>
|
||||
<translation>Normale synchronisatie</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="961"/>
|
||||
<location filename="../src/gui/folder.cpp" line="966"/>
|
||||
<source>Keep Local Files as Conflict</source>
|
||||
<translation>Behoud lokale bestanden als conflict</translation>
|
||||
</message>
|
||||
|
@ -1291,7 +1291,7 @@ Doorgaan met deze synchronisatie overschrijft al uw bestanden door een eerdere v
|
|||
<context>
|
||||
<name>OCC::HttpCredentialsGui</name>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="97"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="98"/>
|
||||
<source>Please enter %1 password:<br><br>User: %2<br>Account: %3<br></source>
|
||||
<translation>Voer %1 wachtwoord in:
|
||||
|
||||
|
@ -1300,17 +1300,17 @@ Account: %3
|
|||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="111"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="112"/>
|
||||
<source>Reading from keychain failed with error: '%1'</source>
|
||||
<translation>Het lezen van de sleutelketen is mislukt met fout: '%1'</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="117"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="118"/>
|
||||
<source>Enter Password</source>
|
||||
<translation>Vul het wachtwoord in</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="154"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="155"/>
|
||||
<source><a href="%1">Click here</a> to request an app password from the web interface.</source>
|
||||
<translation><a href="%1">Klik hier</a> om een nieuw app wachtwoord via de web interface op te vragen.</translation>
|
||||
</message>
|
||||
|
@ -1432,12 +1432,12 @@ Onderdelen die gewist mogen worden worden verwijderd als ze voorkomen dat een ma
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/issueswidget.ui" line="145"/>
|
||||
<location filename="../src/gui/issueswidget.ui" line="148"/>
|
||||
<source>Copy the issues list to the clipboard.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/issueswidget.ui" line="148"/>
|
||||
<location filename="../src/gui/issueswidget.ui" line="151"/>
|
||||
<source>Copy</source>
|
||||
<translation>Kopiëren</translation>
|
||||
</message>
|
||||
|
@ -1923,144 +1923,144 @@ We adviseren deze site niet te gebruiken.</translation>
|
|||
<context>
|
||||
<name>OCC::OwncloudSetupWizard</name>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="217"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="250"/>
|
||||
<source><font color="green">Successfully connected to %1: %2 version %3 (%4)</font><br/><br/></source>
|
||||
<translation><font color="green">Succesvol verbonden met %1: %2 versie %3 (%4)</font><br/><br/></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="251"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="280"/>
|
||||
<source>Failed to connect to %1 at %2:<br/>%3</source>
|
||||
<translation>Kon geen verbinding maken met %1 op %2:<br/>%3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="285"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="314"/>
|
||||
<source>Timeout while trying to connect to %1 at %2.</source>
|
||||
<translation>Time-out bij verbinden met %1 om %2.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="296"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="334"/>
|
||||
<source>Trying to connect to %1 at %2...</source>
|
||||
<translation>Probeer te verbinden met %1 om %2...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="347"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="385"/>
|
||||
<source>The authenticated request to the server was redirected to '%1'. The URL is bad, the server is misconfigured.</source>
|
||||
<translation>De geauthentiseerde aanvraag voor de server werd omgeleid naar '%1'. De URL is onjuist, de server is verkeerd geconfigureerd.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="369"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="407"/>
|
||||
<source>There was an invalid response to an authenticated webdav request</source>
|
||||
<translation>Er was een ongeldig antwoord op een geauthenticeerde webdav opvraging</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="360"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="398"/>
|
||||
<source>Access forbidden by server. To verify that you have proper access, <a href="%1">click here</a> to access the service with your browser.</source>
|
||||
<translation>Toegang door server verboden. Om te verifiëren dat u toegang mag hebben, <a href="%1">klik hier</a> om met uw browser toegang tot de service te krijgen.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="249"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="278"/>
|
||||
<source>Invalid URL</source>
|
||||
<translation>Ongeldige URL</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="414"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="452"/>
|
||||
<source>Local sync folder %1 already exists, setting it up for sync.<br/><br/></source>
|
||||
<translation>Lokale synch map %1 bestaat al, deze wordt ingesteld voor synchronisatie.<br/><br/></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="417"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="455"/>
|
||||
<source>Creating local sync folder %1...</source>
|
||||
<translation>Creëren lokale sync map %1...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="421"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="459"/>
|
||||
<source>ok</source>
|
||||
<translation>ok</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="423"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="461"/>
|
||||
<source>failed.</source>
|
||||
<translation>mislukt.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="425"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="463"/>
|
||||
<source>Could not create local folder %1</source>
|
||||
<translation>Kon lokale map %1 niet aanmaken</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="451"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="489"/>
|
||||
<source>No remote folder specified!</source>
|
||||
<translation>Geen externe map opgegeven!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="457"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="495"/>
|
||||
<source>Error: %1</source>
|
||||
<translation>Fout: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="470"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="508"/>
|
||||
<source>creating folder on ownCloud: %1</source>
|
||||
<translation>aanmaken map op ownCloud: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="486"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="524"/>
|
||||
<source>Remote folder %1 created successfully.</source>
|
||||
<translation>Externe map %1 succesvol gecreërd.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="488"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="526"/>
|
||||
<source>The remote folder %1 already exists. Connecting it for syncing.</source>
|
||||
<translation>De remote map %1 bestaat al. Verbinden voor synchroniseren.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="490"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="492"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="528"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="530"/>
|
||||
<source>The folder creation resulted in HTTP error code %1</source>
|
||||
<translation>Het aanmaken van de map resulteerde in HTTP foutcode %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="494"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="532"/>
|
||||
<source>The remote folder creation failed because the provided credentials are wrong!<br/>Please go back and check your credentials.</p></source>
|
||||
<translation>Het aanmaken van de remote map is mislukt, waarschijnlijk omdat uw inloggegevens fout waren.<br/>Ga terug en controleer uw inloggegevens.</p></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="498"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="536"/>
|
||||
<source><p><font color="red">Remote folder creation failed probably because the provided credentials are wrong.</font><br/>Please go back and check your credentials.</p></source>
|
||||
<translation><p><font color="red">Het aanmaken van de remote map is mislukt, waarschijnlijk omdat uw inloggegevens fout waren.</font><br/>ga terug en controleer uw inloggevens.</p></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="503"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="504"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="541"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="542"/>
|
||||
<source>Remote folder %1 creation failed with error <tt>%2</tt>.</source>
|
||||
<translation>Aanmaken van remote map %1 mislukt met fout <tt>%2</tt>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="521"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="559"/>
|
||||
<source>A sync connection from %1 to remote directory %2 was set up.</source>
|
||||
<translation>Er is een sync verbinding van %1 naar remote directory %2 opgezet.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="526"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="564"/>
|
||||
<source>Successfully connected to %1!</source>
|
||||
<translation>Succesvol verbonden met %1!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="533"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="571"/>
|
||||
<source>Connection to %1 could not be established. Please check again.</source>
|
||||
<translation>Verbinding met %1 niet geslaagd. Probeer het nog eens.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="547"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="585"/>
|
||||
<source>Folder rename failed</source>
|
||||
<translation>Hernoemen map mislukt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="548"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="586"/>
|
||||
<source>Can't remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup.</source>
|
||||
<translation>Kan de map niet verwijderen en backuppen, omdat de map of een bestand daarin, geopend is in een ander programma. Sluit de map of het bestand en drup op Opnieuw of annuleer de installatie.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="593"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="631"/>
|
||||
<source><font color="green"><b>Local sync folder %1 successfully created!</b></font></source>
|
||||
<translation><font color="green"><b>Lokale synch map %1 is succesvol aangemaakt!</b></font></translation>
|
||||
</message>
|
||||
|
@ -2107,7 +2107,7 @@ We adviseren deze site niet te gebruiken.</translation>
|
|||
<context>
|
||||
<name>OCC::PropagateDirectory</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="942"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="953"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Fout bij schrijven van Metadata naar de database</translation>
|
||||
</message>
|
||||
|
@ -2145,17 +2145,17 @@ We adviseren deze site niet te gebruiken.</translation>
|
|||
<translation>Het gedownloade bestand is leeg, hoewel de server meldde dat het %1 zou moeten zijn.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="772"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="775"/>
|
||||
<source>File %1 cannot be saved because of a local file name clash!</source>
|
||||
<translation>Bestand %1 kan niet worden opgeslagen wegens een lokaal bestandsnaam conflict!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="820"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="823"/>
|
||||
<source>File has changed since discovery</source>
|
||||
<translation>Het bestand is gewijzigd sinds het is gevonden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="871"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="874"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Fout bij schrijven van Metadata naar de database</translation>
|
||||
</message>
|
||||
|
@ -2231,12 +2231,12 @@ We adviseren deze site niet te gebruiken.</translation>
|
|||
<context>
|
||||
<name>OCC::PropagateRemoteDelete</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="96"/>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="100"/>
|
||||
<source>The file has been removed from a read only share. It was restored.</source>
|
||||
<translation>Het bestand is verwijderd van een alleen-lezen share. Het is teruggezet.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="117"/>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="121"/>
|
||||
<source>Wrong HTTP code returned by server. Expected 204, but received "%1 %2".</source>
|
||||
<translation>Foutieve HTTP code ontvangen van de server. Verwacht was 204, maar ontvangen "%1 %2".</translation>
|
||||
</message>
|
||||
|
@ -2244,12 +2244,12 @@ We adviseren deze site niet te gebruiken.</translation>
|
|||
<context>
|
||||
<name>OCC::PropagateRemoteMkdir</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="95"/>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="99"/>
|
||||
<source>Wrong HTTP code returned by server. Expected 201, but received "%1 %2".</source>
|
||||
<translation>Foutieve HTTP code ontvangen van de server. Verwacht was 201, maar ontvangen "%1 %2".</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="147"/>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="151"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Fout bij schrijven van Metadata naar de database</translation>
|
||||
</message>
|
||||
|
@ -2267,18 +2267,18 @@ We adviseren deze site niet te gebruiken.</translation>
|
|||
<translation>Deze map mag niet worden hernoemd. Verander de naam terug in Gedeeld.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="137"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="141"/>
|
||||
<source>The file was renamed but is part of a read only share. The original file was restored.</source>
|
||||
<translation>Het bestand is hernoemd, maar hoort bij een alleen-lezen share. Het originele bestand is teruggezet.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="154"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="158"/>
|
||||
<source>Wrong HTTP code returned by server. Expected 201, but received "%1 %2".</source>
|
||||
<translation>Foutieve HTTP code ontvangen van de server. Verwacht werd 201, maar ontvangen "%1 %2".</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="186"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="192"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="190"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="196"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Fout bij schrijven van Metadata naar de database</translation>
|
||||
</message>
|
||||
|
@ -2312,7 +2312,7 @@ We adviseren deze site niet te gebruiken.</translation>
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateupload.cpp" line="618"/>
|
||||
<location filename="../src/libsync/propagateupload.cpp" line="622"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Fout bij schrijven van Metadata naar de database</translation>
|
||||
</message>
|
||||
|
@ -2386,42 +2386,42 @@ We adviseren deze site niet te gebruiken.</translation>
|
|||
<translation>Tekstlabel</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="48"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="61"/>
|
||||
<source>Time</source>
|
||||
<translation>Tijd</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="49"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="62"/>
|
||||
<source>File</source>
|
||||
<translation>Bestand</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="50"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="63"/>
|
||||
<source>Folder</source>
|
||||
<translation>Map</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="51"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="64"/>
|
||||
<source>Action</source>
|
||||
<translation>Handeling</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="52"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="65"/>
|
||||
<source>Size</source>
|
||||
<translation>Grootte</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="72"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="85"/>
|
||||
<source>Local sync protocol</source>
|
||||
<translation>Lokaal sync protocol</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="74"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="87"/>
|
||||
<source>Copy</source>
|
||||
<translation>Kopiëren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="75"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="88"/>
|
||||
<source>Copy the activity list to the clipboard.</source>
|
||||
<translation>Kopieer de activiteitenlijst naar het klembord.</translation>
|
||||
</message>
|
||||
|
@ -2553,6 +2553,7 @@ We adviseren deze site niet te gebruiken.</translation>
|
|||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/settingsdialogmac.cpp" line="152"/>
|
||||
<location filename="../src/gui/settingsdialogmac.cpp" line="211"/>
|
||||
<source>Account</source>
|
||||
<translation>Account</translation>
|
||||
</message>
|
||||
|
@ -3209,22 +3210,22 @@ We adviseren deze site niet te gebruiken.</translation>
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1278"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1287"/>
|
||||
<source>Not allowed because you don't have permission to add parent folder</source>
|
||||
<translation>Niet toegestaan omdat u geen rechten hebt om een bovenliggende map toe te voegen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1285"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1294"/>
|
||||
<source>Not allowed because you don't have permission to add files in that folder</source>
|
||||
<translation>Niet toegestaan omdat u geen rechten hebt om bestanden in die map toe te voegen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1588"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1597"/>
|
||||
<source>Disk space is low: Downloads that would reduce free space below %1 were skipped.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1595"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1604"/>
|
||||
<source>There is insufficient space available on the server for some uploads.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
|
@ -3349,54 +3350,54 @@ We adviseren deze site niet te gebruiken.</translation>
|
|||
<translation>Kan het sync transactielog niet openen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="968"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="977"/>
|
||||
<source>File name contains at least one invalid character</source>
|
||||
<translation>De bestandsnaam bevat ten minste één ongeldig teken</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1204"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1244"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1213"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1253"/>
|
||||
<source>Ignored because of the "choose what to sync" blacklist</source>
|
||||
<translation>Genegeerd vanwege de "wat synchroniseren" zwarte lijst</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1263"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1272"/>
|
||||
<source>Not allowed because you don't have permission to add subfolders to that folder</source>
|
||||
<translation>Niet toegestaan, omdat je geen permissies hebt om submappen aan die map toe te voegen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1310"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1319"/>
|
||||
<source>Not allowed to upload this file because it is read-only on the server, restoring</source>
|
||||
<translation>Niet toegestaan om dit bestand te uploaden, omdat het alleen-lezen is op de server, herstellen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1326"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1345"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1335"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1354"/>
|
||||
<source>Not allowed to remove, restoring</source>
|
||||
<translation>Niet toegestaan om te verwijderen, herstellen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1359"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1368"/>
|
||||
<source>Local files and share folder removed.</source>
|
||||
<translation>Lokale bestanden en share-map verwijderd. </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1413"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1422"/>
|
||||
<source>Move not allowed, item restored</source>
|
||||
<translation>Verplaatsen niet toegestaan, object hersteld</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1424"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1433"/>
|
||||
<source>Move not allowed because %1 is read-only</source>
|
||||
<translation>Verplaatsen niet toegestaan, omdat %1 alleen-lezen is</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1424"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1433"/>
|
||||
<source>the destination</source>
|
||||
<translation>bestemming</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1424"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1433"/>
|
||||
<source>the source</source>
|
||||
<translation>bron</translation>
|
||||
</message>
|
||||
|
@ -3438,17 +3439,17 @@ We adviseren deze site niet te gebruiken.</translation>
|
|||
<context>
|
||||
<name>OCC::ValidateChecksumHeader</name>
|
||||
<message>
|
||||
<location filename="../src/common/checksums.cpp" line="205"/>
|
||||
<location filename="../src/common/checksums.cpp" line="218"/>
|
||||
<source>The checksum header is malformed.</source>
|
||||
<translation>De header van het controlegetal is misvormd.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/common/checksums.cpp" line="220"/>
|
||||
<location filename="../src/common/checksums.cpp" line="233"/>
|
||||
<source>The checksum header contained an unknown checksum type '%1'</source>
|
||||
<translation>Het header controlegetal bevat een onbekend controlegetal type '%1'</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/common/checksums.cpp" line="224"/>
|
||||
<location filename="../src/common/checksums.cpp" line="237"/>
|
||||
<source>The downloaded file does not match the checksum, it will be resumed.</source>
|
||||
<translation>Het gedownloade bestand komt niet overeen met het controlegetal. Het wordt opnieuw verwerkt.</translation>
|
||||
</message>
|
||||
|
|
|
@ -596,7 +596,7 @@
|
|||
<context>
|
||||
<name>OCC::CleanupPollsJob</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="990"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="1001"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Błąd podczas zapisu metadanych do bazy</translation>
|
||||
</message>
|
||||
|
@ -744,26 +744,26 @@
|
|||
<translation>Nie można przeczytać pliku wyłączeń</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="883"/>
|
||||
<location filename="../src/gui/folder.cpp" line="888"/>
|
||||
<source>A new folder larger than %1 MB has been added: %2.
|
||||
</source>
|
||||
<translation>Nowy folder większy niż %1MB został dodany: %2
|
||||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="886"/>
|
||||
<location filename="../src/gui/folder.cpp" line="891"/>
|
||||
<source>A folder from an external storage has been added.
|
||||
</source>
|
||||
<translation>Folder z pamięci zewnętrznej został dodany .
|
||||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="887"/>
|
||||
<location filename="../src/gui/folder.cpp" line="892"/>
|
||||
<source>Please go in the settings to select it if you wish to download it.</source>
|
||||
<translation>Przejdź do ustawień żeby go zaznaczyć i pobrać.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="922"/>
|
||||
<location filename="../src/gui/folder.cpp" line="927"/>
|
||||
<source>All files in the sync folder '%1' folder were deleted on the server.
|
||||
These deletes will be synchronized to your local sync folder, making such files unavailable unless you have a right to restore.
|
||||
If you decide to keep the files, they will be re-synced with the server if you have rights to do so.
|
||||
|
@ -771,46 +771,46 @@ If you decide to delete the files, they will be unavailable to you, unless you a
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="927"/>
|
||||
<location filename="../src/gui/folder.cpp" line="932"/>
|
||||
<source>All the files in your local sync folder '%1' were deleted. These deletes will be synchronized with your server, making such files unavailable unless restored.
|
||||
Are you sure you want to sync those actions with the server?
|
||||
If this was an accident and you decide to keep your files, they will be re-synced from the server.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="931"/>
|
||||
<location filename="../src/gui/folder.cpp" line="936"/>
|
||||
<source>Remove All Files?</source>
|
||||
<translation>Usunąć wszystkie pliki?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="934"/>
|
||||
<location filename="../src/gui/folder.cpp" line="939"/>
|
||||
<source>Remove all files</source>
|
||||
<translation>Usuń wszystkie pliki</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="935"/>
|
||||
<location filename="../src/gui/folder.cpp" line="940"/>
|
||||
<source>Keep files</source>
|
||||
<translation>Pozostaw pliki</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="952"/>
|
||||
<location filename="../src/gui/folder.cpp" line="957"/>
|
||||
<source>This sync would reset the files to an earlier time in the sync folder '%1'.
|
||||
This might be because a backup was restored on the server.
|
||||
Continuing the sync as normal will cause all your files to be overwritten by an older file in an earlier state. Do you want to keep your local most recent files as conflict files?</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="957"/>
|
||||
<location filename="../src/gui/folder.cpp" line="962"/>
|
||||
<source>Backup detected</source>
|
||||
<translation>Wykryto kopię zapasową.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="960"/>
|
||||
<location filename="../src/gui/folder.cpp" line="965"/>
|
||||
<source>Normal Synchronisation</source>
|
||||
<translation>Normalna synchronizacja.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="961"/>
|
||||
<location filename="../src/gui/folder.cpp" line="966"/>
|
||||
<source>Keep Local Files as Conflict</source>
|
||||
<translation>Zatrzymaj pliki lokalne i ustaw status konfliktu.</translation>
|
||||
</message>
|
||||
|
@ -1284,22 +1284,22 @@ Continuing the sync as normal will cause all your files to be overwritten by an
|
|||
<context>
|
||||
<name>OCC::HttpCredentialsGui</name>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="97"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="98"/>
|
||||
<source>Please enter %1 password:<br><br>User: %2<br>Account: %3<br></source>
|
||||
<translation>Wprowadź %1 hasło:<br><br>Użytkownik:%2<br>Konto:%3<br></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="111"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="112"/>
|
||||
<source>Reading from keychain failed with error: '%1'</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="117"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="118"/>
|
||||
<source>Enter Password</source>
|
||||
<translation>Wprowadź hasło</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="154"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="155"/>
|
||||
<source><a href="%1">Click here</a> to request an app password from the web interface.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
|
@ -1421,12 +1421,12 @@ Pozycje, dla których usuwanie jest dozwolone zostaną usunięte, jeżeli uprawn
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/issueswidget.ui" line="145"/>
|
||||
<location filename="../src/gui/issueswidget.ui" line="148"/>
|
||||
<source>Copy the issues list to the clipboard.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/issueswidget.ui" line="148"/>
|
||||
<location filename="../src/gui/issueswidget.ui" line="151"/>
|
||||
<source>Copy</source>
|
||||
<translation>Kopiuj</translation>
|
||||
</message>
|
||||
|
@ -1912,144 +1912,144 @@ Niezalecane jest jego użycie.</translation>
|
|||
<context>
|
||||
<name>OCC::OwncloudSetupWizard</name>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="217"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="250"/>
|
||||
<source><font color="green">Successfully connected to %1: %2 version %3 (%4)</font><br/><br/></source>
|
||||
<translation><font color="green">Udane połączenie z %1: %2 wersja %3 (%4)</font><br/><br/></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="251"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="280"/>
|
||||
<source>Failed to connect to %1 at %2:<br/>%3</source>
|
||||
<translation>Nie udało się połączyć do %1 w %2:<br/>%3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="285"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="314"/>
|
||||
<source>Timeout while trying to connect to %1 at %2.</source>
|
||||
<translation>Upłynął czas podczas próby połączenia do %1 na %2.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="296"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="334"/>
|
||||
<source>Trying to connect to %1 at %2...</source>
|
||||
<translation>Próba połączenia z %1 w %2...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="347"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="385"/>
|
||||
<source>The authenticated request to the server was redirected to '%1'. The URL is bad, the server is misconfigured.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="369"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="407"/>
|
||||
<source>There was an invalid response to an authenticated webdav request</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="360"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="398"/>
|
||||
<source>Access forbidden by server. To verify that you have proper access, <a href="%1">click here</a> to access the service with your browser.</source>
|
||||
<translation>Dostęp zabroniony przez serwer. Aby sprawdzić, czy masz odpowiednie uprawnienia, kliknij <a href="%1">tutaj</a>, aby połączyć się z usługą poprzez przeglądarkę.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="249"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="278"/>
|
||||
<source>Invalid URL</source>
|
||||
<translation>Błędny adres url.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="414"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="452"/>
|
||||
<source>Local sync folder %1 already exists, setting it up for sync.<br/><br/></source>
|
||||
<translation>Lokalny folder synchronizacji %1 już istnieje. Ustawiam go do synchronizacji.<br/><br/></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="417"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="455"/>
|
||||
<source>Creating local sync folder %1...</source>
|
||||
<translation>Tworzenie lokalnego folderu synchronizacji %1...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="421"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="459"/>
|
||||
<source>ok</source>
|
||||
<translation>OK</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="423"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="461"/>
|
||||
<source>failed.</source>
|
||||
<translation>Błąd.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="425"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="463"/>
|
||||
<source>Could not create local folder %1</source>
|
||||
<translation>Nie udało się utworzyć lokalnego folderu %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="451"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="489"/>
|
||||
<source>No remote folder specified!</source>
|
||||
<translation>Nie określono folderu zdalnego!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="457"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="495"/>
|
||||
<source>Error: %1</source>
|
||||
<translation>Błąd: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="470"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="508"/>
|
||||
<source>creating folder on ownCloud: %1</source>
|
||||
<translation>tworzę folder na ownCloud: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="486"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="524"/>
|
||||
<source>Remote folder %1 created successfully.</source>
|
||||
<translation>Zdalny folder %1 został utworzony pomyślnie.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="488"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="526"/>
|
||||
<source>The remote folder %1 already exists. Connecting it for syncing.</source>
|
||||
<translation>Zdalny folder %1 już istnieje. Podłączam go do synchronizowania.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="490"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="492"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="528"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="530"/>
|
||||
<source>The folder creation resulted in HTTP error code %1</source>
|
||||
<translation>Tworzenie folderu spowodowało kod błędu HTTP %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="494"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="532"/>
|
||||
<source>The remote folder creation failed because the provided credentials are wrong!<br/>Please go back and check your credentials.</p></source>
|
||||
<translation>Nie udało się utworzyć zdalnego folderu ponieważ podane dane dostępowe są nieprawidłowe!<br/>Wróć i sprawdź podane dane dostępowe.</p></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="498"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="536"/>
|
||||
<source><p><font color="red">Remote folder creation failed probably because the provided credentials are wrong.</font><br/>Please go back and check your credentials.</p></source>
|
||||
<translation><p><font color="red">Tworzenie folderu zdalnego nie powiodło się. Prawdopodobnie dostarczone poświadczenia są błędne.</font><br/>Wróć i sprawdź poświadczenia.</p></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="503"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="504"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="541"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="542"/>
|
||||
<source>Remote folder %1 creation failed with error <tt>%2</tt>.</source>
|
||||
<translation>Tworzenie folderu zdalnego %1 nie powiodło się z powodu błędu <tt>%2</tt>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="521"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="559"/>
|
||||
<source>A sync connection from %1 to remote directory %2 was set up.</source>
|
||||
<translation>Połączenie synchronizacji z %1 do katalogu zdalnego %2 zostało utworzone.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="526"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="564"/>
|
||||
<source>Successfully connected to %1!</source>
|
||||
<translation>Udane połączenie z %1!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="533"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="571"/>
|
||||
<source>Connection to %1 could not be established. Please check again.</source>
|
||||
<translation>Połączenie z %1 nie może być nawiązane. Sprawdź ponownie.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="547"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="585"/>
|
||||
<source>Folder rename failed</source>
|
||||
<translation>Zmiana nazwy folderu nie powiodła się</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="548"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="586"/>
|
||||
<source>Can't remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup.</source>
|
||||
<translation>Nie można usunąć i zarchiwizować folderu ponieważ znajdujący się w nim plik lub folder jest otwarty przez inny program. Proszę zamknąć folder lub plik albo kliknąć ponów lub anuluj setup.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="593"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="631"/>
|
||||
<source><font color="green"><b>Local sync folder %1 successfully created!</b></font></source>
|
||||
<translation><font color="green"><b>Utworzenie lokalnego folderu synchronizowanego %1 zakończone pomyślnie!</b></font></translation>
|
||||
</message>
|
||||
|
@ -2096,7 +2096,7 @@ Niezalecane jest jego użycie.</translation>
|
|||
<context>
|
||||
<name>OCC::PropagateDirectory</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="942"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="953"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Błąd podczas zapisu metadanych do bazy</translation>
|
||||
</message>
|
||||
|
@ -2134,17 +2134,17 @@ Niezalecane jest jego użycie.</translation>
|
|||
<translation>Pobrany plik jest pusty pomimo tego, że według zapowiedzi serwera powinien mieć %1.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="772"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="775"/>
|
||||
<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="820"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="823"/>
|
||||
<source>File has changed since discovery</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="871"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="874"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Błąd podczas zapisu metadanych do bazy</translation>
|
||||
</message>
|
||||
|
@ -2220,12 +2220,12 @@ Niezalecane jest jego użycie.</translation>
|
|||
<context>
|
||||
<name>OCC::PropagateRemoteDelete</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="96"/>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="100"/>
|
||||
<source>The file has been removed from a read only share. It was restored.</source>
|
||||
<translation>Plik został usunięty z zasobu z prawem tylko do odczytu. Został przywrócony.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="117"/>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="121"/>
|
||||
<source>Wrong HTTP code returned by server. Expected 204, but received "%1 %2".</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
|
@ -2233,12 +2233,12 @@ Niezalecane jest jego użycie.</translation>
|
|||
<context>
|
||||
<name>OCC::PropagateRemoteMkdir</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="95"/>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="99"/>
|
||||
<source>Wrong HTTP code returned by server. Expected 201, but received "%1 %2".</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="147"/>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="151"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Błąd podczas zapisu metadanych do bazy</translation>
|
||||
</message>
|
||||
|
@ -2256,18 +2256,18 @@ Niezalecane jest jego użycie.</translation>
|
|||
<translation>Nie wolno zmieniać nazwy tego folderu. Proszę zmień nazwę z powrotem na Shared.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="137"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="141"/>
|
||||
<source>The file was renamed but is part of a read only share. The original file was restored.</source>
|
||||
<translation>Plik był edytowany lokalnie ale jest częścią udziału z prawem tylko do odczytu. Przywrócono oryginalny plik</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="154"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="158"/>
|
||||
<source>Wrong HTTP code returned by server. Expected 201, but received "%1 %2".</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="186"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="192"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="190"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="196"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Błąd podczas zapisu metadanych do bazy</translation>
|
||||
</message>
|
||||
|
@ -2301,7 +2301,7 @@ Niezalecane jest jego użycie.</translation>
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateupload.cpp" line="618"/>
|
||||
<location filename="../src/libsync/propagateupload.cpp" line="622"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Błąd podczas zapisu metadanych do bazy</translation>
|
||||
</message>
|
||||
|
@ -2375,42 +2375,42 @@ Niezalecane jest jego użycie.</translation>
|
|||
<translation>Etykieta</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="48"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="61"/>
|
||||
<source>Time</source>
|
||||
<translation>Czas</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="49"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="62"/>
|
||||
<source>File</source>
|
||||
<translation>Plik</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="50"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="63"/>
|
||||
<source>Folder</source>
|
||||
<translation>Folder</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="51"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="64"/>
|
||||
<source>Action</source>
|
||||
<translation>Akcja</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="52"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="65"/>
|
||||
<source>Size</source>
|
||||
<translation>Rozmiar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="72"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="85"/>
|
||||
<source>Local sync protocol</source>
|
||||
<translation>Lokalny protokół synchronizacji</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="74"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="87"/>
|
||||
<source>Copy</source>
|
||||
<translation>Kopiuj</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="75"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="88"/>
|
||||
<source>Copy the activity list to the clipboard.</source>
|
||||
<translation>Kopiuj listę aktywności do schowka.</translation>
|
||||
</message>
|
||||
|
@ -2542,6 +2542,7 @@ Niezalecane jest jego użycie.</translation>
|
|||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/settingsdialogmac.cpp" line="152"/>
|
||||
<location filename="../src/gui/settingsdialogmac.cpp" line="211"/>
|
||||
<source>Account</source>
|
||||
<translation>Konto</translation>
|
||||
</message>
|
||||
|
@ -3198,22 +3199,22 @@ Niezalecane jest jego użycie.</translation>
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1278"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1287"/>
|
||||
<source>Not allowed because you don't have permission to add parent folder</source>
|
||||
<translation>Niedozwolone, ponieważ nie masz uprawnień do dodawania katalogu nadrzędnego</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1285"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1294"/>
|
||||
<source>Not allowed because you don't have permission to add files in that folder</source>
|
||||
<translation>Niedozwolone, ponieważ nie masz uprawnień do dodawania plików w tym katalogu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1588"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1597"/>
|
||||
<source>Disk space is low: Downloads that would reduce free space below %1 were skipped.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1595"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1604"/>
|
||||
<source>There is insufficient space available on the server for some uploads.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
|
@ -3338,54 +3339,54 @@ Niezalecane jest jego użycie.</translation>
|
|||
<translation>Nie można otworzyć dziennika synchronizacji</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="968"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="977"/>
|
||||
<source>File name contains at least one invalid character</source>
|
||||
<translation>Nazwa pliku zawiera co najmniej jeden nieprawidłowy znak</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1204"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1244"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1213"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1253"/>
|
||||
<source>Ignored because of the "choose what to sync" blacklist</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1263"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1272"/>
|
||||
<source>Not allowed because you don't have permission to add subfolders to that folder</source>
|
||||
<translation>Niedozwolone, ponieważ nie masz uprawnień do dodawania podkatalogów w tym katalogu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1310"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1319"/>
|
||||
<source>Not allowed to upload this file because it is read-only on the server, restoring</source>
|
||||
<translation>Wgrywanie niedozwolone, ponieważ plik jest tylko do odczytu na serwerze, przywracanie</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1326"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1345"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1335"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1354"/>
|
||||
<source>Not allowed to remove, restoring</source>
|
||||
<translation>Brak uprawnień by usunąć, przywracanie</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1359"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1368"/>
|
||||
<source>Local files and share folder removed.</source>
|
||||
<translation>Lokalne pliki i udostępniane foldery zostały usunięte.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1413"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1422"/>
|
||||
<source>Move not allowed, item restored</source>
|
||||
<translation>Przenoszenie niedozwolone, obiekt przywrócony</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1424"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1433"/>
|
||||
<source>Move not allowed because %1 is read-only</source>
|
||||
<translation>Przenoszenie niedozwolone, ponieważ %1 jest tylko do odczytu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1424"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1433"/>
|
||||
<source>the destination</source>
|
||||
<translation>docelowy</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1424"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1433"/>
|
||||
<source>the source</source>
|
||||
<translation>źródło</translation>
|
||||
</message>
|
||||
|
@ -3427,17 +3428,17 @@ Niezalecane jest jego użycie.</translation>
|
|||
<context>
|
||||
<name>OCC::ValidateChecksumHeader</name>
|
||||
<message>
|
||||
<location filename="../src/common/checksums.cpp" line="205"/>
|
||||
<location filename="../src/common/checksums.cpp" line="218"/>
|
||||
<source>The checksum header is malformed.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/common/checksums.cpp" line="220"/>
|
||||
<location filename="../src/common/checksums.cpp" line="233"/>
|
||||
<source>The checksum header contained an unknown checksum type '%1'</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/common/checksums.cpp" line="224"/>
|
||||
<location filename="../src/common/checksums.cpp" line="237"/>
|
||||
<source>The downloaded file does not match the checksum, it will be resumed.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
|
|
|
@ -88,7 +88,7 @@
|
|||
<message>
|
||||
<location filename="../src/libsync/abstractnetworkjob.cpp" line="386"/>
|
||||
<source>Server replied "%1 %2" to "%3 %4"</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>O Servidor respondeu "%1 %2" até "%3 %4"</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -243,7 +243,7 @@
|
|||
<message>
|
||||
<location filename="../src/gui/accountsettings.cpp" line="657"/>
|
||||
<source>Server %1 is currently in maintenance mode.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>O Servidor %1 encontra-se em manutenção</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/accountsettings.cpp" line="659"/>
|
||||
|
@ -258,7 +258,7 @@
|
|||
<message>
|
||||
<location filename="../src/gui/accountsettings.cpp" line="672"/>
|
||||
<source>Connecting to %1...</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>A Conectar a %1...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/accountsettings.cpp" line="675"/>
|
||||
|
@ -373,7 +373,7 @@
|
|||
<message>
|
||||
<location filename="../src/gui/accountstate.cpp" line="132"/>
|
||||
<source>Maintenance mode</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Modo de Manutenção</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/accountstate.cpp" line="134"/>
|
||||
|
@ -596,7 +596,7 @@
|
|||
<context>
|
||||
<name>OCC::CleanupPollsJob</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="990"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="1001"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Erro ao gravar os metadados para a base de dados</translation>
|
||||
</message>
|
||||
|
@ -744,26 +744,26 @@
|
|||
<translation>Não foi possível ler o ficheiro excluir do sistema</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="883"/>
|
||||
<location filename="../src/gui/folder.cpp" line="888"/>
|
||||
<source>A new folder larger than %1 MB has been added: %2.
|
||||
</source>
|
||||
<translation>Foi adicionada uma nova pasta maior que %1 MB: %2.
|
||||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="886"/>
|
||||
<location filename="../src/gui/folder.cpp" line="891"/>
|
||||
<source>A folder from an external storage has been added.
|
||||
</source>
|
||||
<translation>Foi adicionada uma pasta vinda de armazenamento externo.
|
||||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="887"/>
|
||||
<location filename="../src/gui/folder.cpp" line="892"/>
|
||||
<source>Please go in the settings to select it if you wish to download it.</source>
|
||||
<translation>Por favor, vá às configurações para a selecionar se a desejar transferir.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="922"/>
|
||||
<location filename="../src/gui/folder.cpp" line="927"/>
|
||||
<source>All files in the sync folder '%1' folder were deleted on the server.
|
||||
These deletes will be synchronized to your local sync folder, making such files unavailable unless you have a right to restore.
|
||||
If you decide to keep the files, they will be re-synced with the server if you have rights to do so.
|
||||
|
@ -774,7 +774,7 @@ Se decidir manter os ficheiros, eles serão sincronizados novamento para o servi
|
|||
Se decidir apagar os ficheiros, eles ficaram indisponíveis para si, a não ser que seja o seu proprietário.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="927"/>
|
||||
<location filename="../src/gui/folder.cpp" line="932"/>
|
||||
<source>All the files in your local sync folder '%1' were deleted. These deletes will be synchronized with your server, making such files unavailable unless restored.
|
||||
Are you sure you want to sync those actions with the server?
|
||||
If this was an accident and you decide to keep your files, they will be re-synced from the server.</source>
|
||||
|
@ -783,22 +783,22 @@ Tem a certeza que deseja sincronizar essas ações com o servidor?
|
|||
Se foi acidental e decidir manter os seus ficheiros, eles serão sincronizados novamente apartir do servidor.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="931"/>
|
||||
<location filename="../src/gui/folder.cpp" line="936"/>
|
||||
<source>Remove All Files?</source>
|
||||
<translation>Remover todos os ficheiros?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="934"/>
|
||||
<location filename="../src/gui/folder.cpp" line="939"/>
|
||||
<source>Remove all files</source>
|
||||
<translation>Remover todos os ficheiros</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="935"/>
|
||||
<location filename="../src/gui/folder.cpp" line="940"/>
|
||||
<source>Keep files</source>
|
||||
<translation>Manter ficheiros</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="952"/>
|
||||
<location filename="../src/gui/folder.cpp" line="957"/>
|
||||
<source>This sync would reset the files to an earlier time in the sync folder '%1'.
|
||||
This might be because a backup was restored on the server.
|
||||
Continuing the sync as normal will cause all your files to be overwritten by an older file in an earlier state. Do you want to keep your local most recent files as conflict files?</source>
|
||||
|
@ -807,17 +807,17 @@ Isto pode ser porque um backup foi restaurado no servidor.
|
|||
Continuando a sincronização fará com que todos os seus ficheiros sejam substituídos por um ficheiro mais velho num estado anterior. Deseja manter os seus ficheiros locais mais recentes como ficheiros de conflito?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="957"/>
|
||||
<location filename="../src/gui/folder.cpp" line="962"/>
|
||||
<source>Backup detected</source>
|
||||
<translation>Detetada cópia de segurança</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="960"/>
|
||||
<location filename="../src/gui/folder.cpp" line="965"/>
|
||||
<source>Normal Synchronisation</source>
|
||||
<translation>Sincronização Normal</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="961"/>
|
||||
<location filename="../src/gui/folder.cpp" line="966"/>
|
||||
<source>Keep Local Files as Conflict</source>
|
||||
<translation>Manter Ficheiros Locais como Conflito</translation>
|
||||
</message>
|
||||
|
@ -1291,22 +1291,22 @@ Continuando a sincronização fará com que todos os seus ficheiros sejam substi
|
|||
<context>
|
||||
<name>OCC::HttpCredentialsGui</name>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="97"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="98"/>
|
||||
<source>Please enter %1 password:<br><br>User: %2<br>Account: %3<br></source>
|
||||
<translation>Por favor, insira a palavra-passe %1:<br><br>Utilizador: %2<br>Conta: %3<br></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="111"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="112"/>
|
||||
<source>Reading from keychain failed with error: '%1'</source>
|
||||
<translation>A leitura da cadeia de dados falhou com um erro: '%1'</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="117"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="118"/>
|
||||
<source>Enter Password</source>
|
||||
<translation>Insira a Palavra-passe</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="154"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="155"/>
|
||||
<source><a href="%1">Click here</a> to request an app password from the web interface.</source>
|
||||
<translation><a href="%1">Clique aqui</a> para solicitar uma palavra-passe da aplicação a partir da interface da Web.</translation>
|
||||
</message>
|
||||
|
@ -1420,7 +1420,7 @@ Os itens onde é permitido a eliminação serão eliminados se estes impedirem a
|
|||
<message>
|
||||
<location filename="../src/gui/issueswidget.ui" line="73"/>
|
||||
<source>Show warnings</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Mostrar Avisos</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/issueswidget.ui" line="83"/>
|
||||
|
@ -1428,12 +1428,12 @@ Os itens onde é permitido a eliminação serão eliminados se estes impedirem a
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/issueswidget.ui" line="145"/>
|
||||
<location filename="../src/gui/issueswidget.ui" line="148"/>
|
||||
<source>Copy the issues list to the clipboard.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/issueswidget.ui" line="148"/>
|
||||
<location filename="../src/gui/issueswidget.ui" line="151"/>
|
||||
<source>Copy</source>
|
||||
<translation>Copiar</translation>
|
||||
</message>
|
||||
|
@ -1450,7 +1450,7 @@ Os itens onde é permitido a eliminação serão eliminados se estes impedirem a
|
|||
<message>
|
||||
<location filename="../src/gui/issueswidget.cpp" line="78"/>
|
||||
<source>Issue</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Situação</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -1919,144 +1919,144 @@ Não é aconselhada a sua utilização.</translation>
|
|||
<context>
|
||||
<name>OCC::OwncloudSetupWizard</name>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="217"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="250"/>
|
||||
<source><font color="green">Successfully connected to %1: %2 version %3 (%4)</font><br/><br/></source>
|
||||
<translation><font color="green">Ligado com sucesso a %1: %2 - versão: %3 (%4)</font><br/><br/></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="251"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="280"/>
|
||||
<source>Failed to connect to %1 at %2:<br/>%3</source>
|
||||
<translation>Não foi possível ligar a %1 em %2:<br/>%3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="285"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="314"/>
|
||||
<source>Timeout while trying to connect to %1 at %2.</source>
|
||||
<translation>Tempo expirou enquanto tentava ligar a %1 em %2.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="296"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="334"/>
|
||||
<source>Trying to connect to %1 at %2...</source>
|
||||
<translation>A tentar ligar a %1 em %2...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="347"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="385"/>
|
||||
<source>The authenticated request to the server was redirected to '%1'. The URL is bad, the server is misconfigured.</source>
|
||||
<translation>O pedido de autenticação para o servidor foi redirecionado para '%1'. O URL é mau, o servidor está mal configurado. </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="369"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="407"/>
|
||||
<source>There was an invalid response to an authenticated webdav request</source>
|
||||
<translation>Houve uma resposta inválida para o pedido de autenticação webdav</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="360"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="398"/>
|
||||
<source>Access forbidden by server. To verify that you have proper access, <a href="%1">click here</a> to access the service with your browser.</source>
|
||||
<translation>Acesso proibido pelo servidor. Para verificar que tem o acesso adequado, <a href="%1">clique aqui</a> para aceder ao serviço com o seu navegador.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="249"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="278"/>
|
||||
<source>Invalid URL</source>
|
||||
<translation>URL inválido</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="414"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="452"/>
|
||||
<source>Local sync folder %1 already exists, setting it up for sync.<br/><br/></source>
|
||||
<translation>A pasta de sincronização local %1 já existe, a configurar para sincronizar.<br/><br/></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="417"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="455"/>
|
||||
<source>Creating local sync folder %1...</source>
|
||||
<translation>A criar a pasta de sincronização local %1...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="421"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="459"/>
|
||||
<source>ok</source>
|
||||
<translation>ok</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="423"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="461"/>
|
||||
<source>failed.</source>
|
||||
<translation>Falhou.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="425"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="463"/>
|
||||
<source>Could not create local folder %1</source>
|
||||
<translation>Não foi possível criar a pasta local %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="451"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="489"/>
|
||||
<source>No remote folder specified!</source>
|
||||
<translation>Não foi indicada a pasta remota!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="457"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="495"/>
|
||||
<source>Error: %1</source>
|
||||
<translation>Erro: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="470"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="508"/>
|
||||
<source>creating folder on ownCloud: %1</source>
|
||||
<translation>a criar a pasta na ownCloud: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="486"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="524"/>
|
||||
<source>Remote folder %1 created successfully.</source>
|
||||
<translation>Criação da pasta remota %1 com sucesso!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="488"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="526"/>
|
||||
<source>The remote folder %1 already exists. Connecting it for syncing.</source>
|
||||
<translation>A pasta remota %1 já existe. Ligue-a para sincronizar.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="490"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="492"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="528"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="530"/>
|
||||
<source>The folder creation resulted in HTTP error code %1</source>
|
||||
<translation>A criação da pasta resultou num erro HTTP com o código %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="494"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="532"/>
|
||||
<source>The remote folder creation failed because the provided credentials are wrong!<br/>Please go back and check your credentials.</p></source>
|
||||
<translation>A criação da pasta remota falhou, provavelmente por ter introduzido as credenciais erradas.<br/>Por favor, verifique as suas credenciais.</p></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="498"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="536"/>
|
||||
<source><p><font color="red">Remote folder creation failed probably because the provided credentials are wrong.</font><br/>Please go back and check your credentials.</p></source>
|
||||
<translation><p><font color="red">A criação da pasta remota falhou, provavelmente por ter introduzido as credenciais erradas.</font><br/>Por favor, verifique as suas credenciais.</p></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="503"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="504"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="541"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="542"/>
|
||||
<source>Remote folder %1 creation failed with error <tt>%2</tt>.</source>
|
||||
<translation>A criação da pasta remota %1 falhou com o erro <tt>%2</tt>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="521"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="559"/>
|
||||
<source>A sync connection from %1 to remote directory %2 was set up.</source>
|
||||
<translation>A sincronização de %1 com a pasta remota %2 foi criada com sucesso.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="526"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="564"/>
|
||||
<source>Successfully connected to %1!</source>
|
||||
<translation>Conectado com sucesso a %1!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="533"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="571"/>
|
||||
<source>Connection to %1 could not be established. Please check again.</source>
|
||||
<translation>Não foi possível ligar a %1 . Por Favor verifique novamente.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="547"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="585"/>
|
||||
<source>Folder rename failed</source>
|
||||
<translation>Erro ao renomear a pasta</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="548"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="586"/>
|
||||
<source>Can't remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup.</source>
|
||||
<translation>Não é possível remover e fazer backup à pasta porque a pasta ou um ficheiro nesta está aberto em outro programa. Por favor, feche a pasta ou o ficheiro e clique novamente ou cancele a configuração.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="593"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="631"/>
|
||||
<source><font color="green"><b>Local sync folder %1 successfully created!</b></font></source>
|
||||
<translation><font color="green"><b>Pasta de sincronização local %1 criada com sucesso!</b></font></translation>
|
||||
</message>
|
||||
|
@ -2103,7 +2103,7 @@ Não é aconselhada a sua utilização.</translation>
|
|||
<context>
|
||||
<name>OCC::PropagateDirectory</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="942"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="953"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Erro ao escrever a meta-informação par a base de dados</translation>
|
||||
</message>
|
||||
|
@ -2141,17 +2141,17 @@ Não é aconselhada a sua utilização.</translation>
|
|||
<translation>O ficheiro transferido está vazio, apesar do servidor indicar que este deveria ter %1.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="772"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="775"/>
|
||||
<source>File %1 cannot be saved because of a local file name clash!</source>
|
||||
<translation>Ficheiro %1 não pode ser guardado devido à existência de um ficheiro local com o mesmo nome.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="820"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="823"/>
|
||||
<source>File has changed since discovery</source>
|
||||
<translation>O ficheiro alterou-se desde a sua descoberta</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="871"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="874"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Erro ao gravar os metadados para a base de dados</translation>
|
||||
</message>
|
||||
|
@ -2227,12 +2227,12 @@ Não é aconselhada a sua utilização.</translation>
|
|||
<context>
|
||||
<name>OCC::PropagateRemoteDelete</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="96"/>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="100"/>
|
||||
<source>The file has been removed from a read only share. It was restored.</source>
|
||||
<translation>O ficheiro havia sido removido de uma partilha apenas de leitura. Ficheiro restaurado. </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="117"/>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="121"/>
|
||||
<source>Wrong HTTP code returned by server. Expected 204, but received "%1 %2".</source>
|
||||
<translation>Código HTTP errado devolvido pelo servidor. Esperado 204, mas foi recebido "%1 %2".</translation>
|
||||
</message>
|
||||
|
@ -2240,12 +2240,12 @@ Não é aconselhada a sua utilização.</translation>
|
|||
<context>
|
||||
<name>OCC::PropagateRemoteMkdir</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="95"/>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="99"/>
|
||||
<source>Wrong HTTP code returned by server. Expected 201, but received "%1 %2".</source>
|
||||
<translation>Código HTTP errado devolvido pelo servidor. Esperado 201, mas foi recebido "%1 %2".</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="147"/>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="151"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Erro ao escrever a meta-informação par a base de dados</translation>
|
||||
</message>
|
||||
|
@ -2263,18 +2263,18 @@ Não é aconselhada a sua utilização.</translation>
|
|||
<translation>Esta pasta não pode ser renomeada. Por favor renomeie para o seu nome original: Shared.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="137"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="141"/>
|
||||
<source>The file was renamed but is part of a read only share. The original file was restored.</source>
|
||||
<translation>O ficheiro foi renomeado mas faz parte de uma partilha só de leitura. O ficheiro original foi restaurado.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="154"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="158"/>
|
||||
<source>Wrong HTTP code returned by server. Expected 201, but received "%1 %2".</source>
|
||||
<translation>Código HTTP errado devolvido pelo servidor. Esperado 201, mas foi recebido "%1 %2".</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="186"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="192"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="190"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="196"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Erro ao escrever a meta-informação par a base de dados</translation>
|
||||
</message>
|
||||
|
@ -2308,7 +2308,7 @@ Não é aconselhada a sua utilização.</translation>
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateupload.cpp" line="618"/>
|
||||
<location filename="../src/libsync/propagateupload.cpp" line="622"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Erro ao gravar os metadados para a base de dados</translation>
|
||||
</message>
|
||||
|
@ -2382,42 +2382,42 @@ Não é aconselhada a sua utilização.</translation>
|
|||
<translation>TextLabel</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="48"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="61"/>
|
||||
<source>Time</source>
|
||||
<translation>Tempo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="49"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="62"/>
|
||||
<source>File</source>
|
||||
<translation>Ficheiro</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="50"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="63"/>
|
||||
<source>Folder</source>
|
||||
<translation>Pasta</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="51"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="64"/>
|
||||
<source>Action</source>
|
||||
<translation>Ação</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="52"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="65"/>
|
||||
<source>Size</source>
|
||||
<translation>Tamanho</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="72"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="85"/>
|
||||
<source>Local sync protocol</source>
|
||||
<translation>Protocolo de sincronização local</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="74"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="87"/>
|
||||
<source>Copy</source>
|
||||
<translation>Copiar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="75"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="88"/>
|
||||
<source>Copy the activity list to the clipboard.</source>
|
||||
<translation>Copiar lista de actividades para a área de transferência.</translation>
|
||||
</message>
|
||||
|
@ -2549,6 +2549,7 @@ Não é aconselhada a sua utilização.</translation>
|
|||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/settingsdialogmac.cpp" line="152"/>
|
||||
<location filename="../src/gui/settingsdialogmac.cpp" line="211"/>
|
||||
<source>Account</source>
|
||||
<translation>Conta</translation>
|
||||
</message>
|
||||
|
@ -2641,7 +2642,7 @@ Não é aconselhada a sua utilização.</translation>
|
|||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.ui" line="42"/>
|
||||
<source>&Create new</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>&Criar novo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharelinkwidget.ui" line="105"/>
|
||||
|
@ -2888,7 +2889,7 @@ Não é aconselhada a sua utilização.</translation>
|
|||
<message>
|
||||
<location filename="../src/gui/socketapi.cpp" line="563"/>
|
||||
<source>Share...</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Partilhar...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/socketapi.cpp" line="565"/>
|
||||
|
@ -3205,22 +3206,22 @@ Não é aconselhada a sua utilização.</translation>
|
|||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1278"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1287"/>
|
||||
<source>Not allowed because you don't have permission to add parent folder</source>
|
||||
<translation>Não permitido, porque não tem permissão para adicionar a pasta fonte</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1285"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1294"/>
|
||||
<source>Not allowed because you don't have permission to add files in that folder</source>
|
||||
<translation>Não permitido, porque não tem permissão para adicionar os ficheiros nessa pasta</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1588"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1597"/>
|
||||
<source>Disk space is low: Downloads that would reduce free space below %1 were skipped.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1595"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1604"/>
|
||||
<source>There is insufficient space available on the server for some uploads.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
|
@ -3345,54 +3346,54 @@ Não é aconselhada a sua utilização.</translation>
|
|||
<translation>Impossível abrir o jornal de sincronismo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="968"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="977"/>
|
||||
<source>File name contains at least one invalid character</source>
|
||||
<translation>O nome de ficheiro contém pelo menos um caráter inválido</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1204"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1244"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1213"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1253"/>
|
||||
<source>Ignored because of the "choose what to sync" blacklist</source>
|
||||
<translation>Ignorado devido à blacklist de escolha para sincronização</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1263"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1272"/>
|
||||
<source>Not allowed because you don't have permission to add subfolders to that folder</source>
|
||||
<translation>Não permitido, porque não tem permissão para adicionar as subpastas nessa pasta</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1310"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1319"/>
|
||||
<source>Not allowed to upload this file because it is read-only on the server, restoring</source>
|
||||
<translation>Não é permitido enviar este ficheiro porque este é só de leitura no servidor, a restaurar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1326"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1345"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1335"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1354"/>
|
||||
<source>Not allowed to remove, restoring</source>
|
||||
<translation>Não autorizado para remoção, restaurando</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1359"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1368"/>
|
||||
<source>Local files and share folder removed.</source>
|
||||
<translation>Ficheiros locais e pasta partilhada removidos.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1413"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1422"/>
|
||||
<source>Move not allowed, item restored</source>
|
||||
<translation>Mover não foi permitido, item restaurado</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1424"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1433"/>
|
||||
<source>Move not allowed because %1 is read-only</source>
|
||||
<translation>Mover não foi autorizado porque %1 é só de leitura</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1424"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1433"/>
|
||||
<source>the destination</source>
|
||||
<translation>o destino</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1424"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1433"/>
|
||||
<source>the source</source>
|
||||
<translation>a origem</translation>
|
||||
</message>
|
||||
|
@ -3434,17 +3435,17 @@ Não é aconselhada a sua utilização.</translation>
|
|||
<context>
|
||||
<name>OCC::ValidateChecksumHeader</name>
|
||||
<message>
|
||||
<location filename="../src/common/checksums.cpp" line="205"/>
|
||||
<location filename="../src/common/checksums.cpp" line="218"/>
|
||||
<source>The checksum header is malformed.</source>
|
||||
<translation>O cabeçalho de "checksum" está com problemas.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/common/checksums.cpp" line="220"/>
|
||||
<location filename="../src/common/checksums.cpp" line="233"/>
|
||||
<source>The checksum header contained an unknown checksum type '%1'</source>
|
||||
<translation>O header checksum continha um tipo de checksum desconhecido '%1'</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/common/checksums.cpp" line="224"/>
|
||||
<location filename="../src/common/checksums.cpp" line="237"/>
|
||||
<source>The downloaded file does not match the checksum, it will be resumed.</source>
|
||||
<translation>O ficheiro transferido não corresponde ao "checksum", Este irá ser retomado.</translation>
|
||||
</message>
|
||||
|
|
|
@ -596,7 +596,7 @@
|
|||
<context>
|
||||
<name>OCC::CleanupPollsJob</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="990"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="1001"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Ocorreu um erro ao escrever metadados ao banco de dados</translation>
|
||||
</message>
|
||||
|
@ -744,26 +744,26 @@
|
|||
<translation>Não foi possível ler o sistema de arquivo de exclusão</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="883"/>
|
||||
<location filename="../src/gui/folder.cpp" line="888"/>
|
||||
<source>A new folder larger than %1 MB has been added: %2.
|
||||
</source>
|
||||
<translation>Uma nova pasta maior que %1 MB foi adicionada: %2
|
||||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="886"/>
|
||||
<location filename="../src/gui/folder.cpp" line="891"/>
|
||||
<source>A folder from an external storage has been added.
|
||||
</source>
|
||||
<translation>Uma pasta de um armazenamento externo foi adicionada.
|
||||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="887"/>
|
||||
<location filename="../src/gui/folder.cpp" line="892"/>
|
||||
<source>Please go in the settings to select it if you wish to download it.</source>
|
||||
<translation>Por favor, vá nas configurações para selecioná-lo se você deseja baixá-lo.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="922"/>
|
||||
<location filename="../src/gui/folder.cpp" line="927"/>
|
||||
<source>All files in the sync folder '%1' folder were deleted on the server.
|
||||
These deletes will be synchronized to your local sync folder, making such files unavailable unless you have a right to restore.
|
||||
If you decide to keep the files, they will be re-synced with the server if you have rights to do so.
|
||||
|
@ -774,29 +774,29 @@ If you decide to delete the files, they will be unavailable to you, unless you a
|
|||
Se você decidir excluir os arquivos, eles não estarão disponíveis para você, a menos que você seja o proprietário.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="927"/>
|
||||
<location filename="../src/gui/folder.cpp" line="932"/>
|
||||
<source>All the files in your local sync folder '%1' were deleted. These deletes will be synchronized with your server, making such files unavailable unless restored.
|
||||
Are you sure you want to sync those actions with the server?
|
||||
If this was an accident and you decide to keep your files, they will be re-synced from the server.</source>
|
||||
<translation>Todos os arquivos na pasta de sincronização local '%1' foram excluídos. Essas exclusões serão sincronizadas com o servidor, tornando tais arquivos indisponíveis, a menos que restaurados.Tem certeza de que deseja sincronizar essas ações com o servidor?Se isso foi um acidente e você decidir manter seus arquivos, eles serão re-sincronizados a partir do servidor.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="931"/>
|
||||
<location filename="../src/gui/folder.cpp" line="936"/>
|
||||
<source>Remove All Files?</source>
|
||||
<translation>Deseja Remover Todos os Arquivos?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="934"/>
|
||||
<location filename="../src/gui/folder.cpp" line="939"/>
|
||||
<source>Remove all files</source>
|
||||
<translation>Remover todos os arquivos</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="935"/>
|
||||
<location filename="../src/gui/folder.cpp" line="940"/>
|
||||
<source>Keep files</source>
|
||||
<translation>Manter arquivos</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="952"/>
|
||||
<location filename="../src/gui/folder.cpp" line="957"/>
|
||||
<source>This sync would reset the files to an earlier time in the sync folder '%1'.
|
||||
This might be because a backup was restored on the server.
|
||||
Continuing the sync as normal will cause all your files to be overwritten by an older file in an earlier state. Do you want to keep your local most recent files as conflict files?</source>
|
||||
|
@ -805,17 +805,17 @@ Isso pode ser porque um backup foi restaurado no servidor.
|
|||
Continuar a sincronização como normal fará com que todos os seus arquivos sejam substituídos por um arquivo antigo em um estado anterior. Deseja manter seus arquivos mais recentes locais como arquivos de conflito?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="957"/>
|
||||
<location filename="../src/gui/folder.cpp" line="962"/>
|
||||
<source>Backup detected</source>
|
||||
<translation>Backup detectado</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="960"/>
|
||||
<location filename="../src/gui/folder.cpp" line="965"/>
|
||||
<source>Normal Synchronisation</source>
|
||||
<translation>Sincronização Normal</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="961"/>
|
||||
<location filename="../src/gui/folder.cpp" line="966"/>
|
||||
<source>Keep Local Files as Conflict</source>
|
||||
<translation>Manter Arquivos Locais como Conflito</translation>
|
||||
</message>
|
||||
|
@ -1290,22 +1290,22 @@ Continuar a sincronização como normal fará com que todos os seus arquivos sej
|
|||
<context>
|
||||
<name>OCC::HttpCredentialsGui</name>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="97"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="98"/>
|
||||
<source>Please enter %1 password:<br><br>User: %2<br>Account: %3<br></source>
|
||||
<translation>Por favor entre uma senha %1:<br><br>Usuário: %2<br>Conta: %3<br></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="111"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="112"/>
|
||||
<source>Reading from keychain failed with error: '%1'</source>
|
||||
<translation>Leitura de chaveiro falhou com o erro: '%1'</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="117"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="118"/>
|
||||
<source>Enter Password</source>
|
||||
<translation>Entrar Senha</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="154"/>
|
||||
<location filename="../src/gui/creds/httpcredentialsgui.cpp" line="155"/>
|
||||
<source><a href="%1">Click here</a> to request an app password from the web interface.</source>
|
||||
<translation><a href="%1">Clique aqui</a> para solicitar uma senha de aplicativo na interface da web.</translation>
|
||||
</message>
|
||||
|
@ -1427,12 +1427,12 @@ Itens onde a eliminação é permitida serão excluídos se eles evitarem que um
|
|||
<translation>Mostrar arquivos ignorados</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/issueswidget.ui" line="145"/>
|
||||
<location filename="../src/gui/issueswidget.ui" line="148"/>
|
||||
<source>Copy the issues list to the clipboard.</source>
|
||||
<translation>Copie a lista de problemas para a área de transferência.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/issueswidget.ui" line="148"/>
|
||||
<location filename="../src/gui/issueswidget.ui" line="151"/>
|
||||
<source>Copy</source>
|
||||
<translation>Copiar</translation>
|
||||
</message>
|
||||
|
@ -1916,144 +1916,144 @@ It is not advisable to use it.</source>
|
|||
<context>
|
||||
<name>OCC::OwncloudSetupWizard</name>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="217"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="250"/>
|
||||
<source><font color="green">Successfully connected to %1: %2 version %3 (%4)</font><br/><br/></source>
|
||||
<translation><font color="green">Conectado com sucesso a %1: %2 versão %3 (%4)</font><br/><br/></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="251"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="280"/>
|
||||
<source>Failed to connect to %1 at %2:<br/>%3</source>
|
||||
<translation>Falha ao conectar a %1 em %2:<br/>%3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="285"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="314"/>
|
||||
<source>Timeout while trying to connect to %1 at %2.</source>
|
||||
<translation>O tempo expirou ao tentar contactar %1 e %2.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="296"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="334"/>
|
||||
<source>Trying to connect to %1 at %2...</source>
|
||||
<translation>Tentando conectar a %1 em %2...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="347"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="385"/>
|
||||
<source>The authenticated request to the server was redirected to '%1'. The URL is bad, the server is misconfigured.</source>
|
||||
<translation>A solicitação de autenticação ao servidor foi direcionada para '%1'. A URL está errada, a configuração do servidor está errada.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="369"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="407"/>
|
||||
<source>There was an invalid response to an authenticated webdav request</source>
|
||||
<translation>Houve uma resposta inválida a um pedido de autenticação WebDAV</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="360"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="398"/>
|
||||
<source>Access forbidden by server. To verify that you have proper access, <a href="%1">click here</a> to access the service with your browser.</source>
|
||||
<translation>Acesso proibido pelo servidor. Para verificar se você tem acesso adequado, <a href="%1">clique aqui</a> para acessar o serviço com o seu navegador.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="249"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="278"/>
|
||||
<source>Invalid URL</source>
|
||||
<translation>URL inválida</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="414"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="452"/>
|
||||
<source>Local sync folder %1 already exists, setting it up for sync.<br/><br/></source>
|
||||
<translation>Pasta local de sincronização %1 já existe, configurando para sincronização. <br/><br/></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="417"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="455"/>
|
||||
<source>Creating local sync folder %1...</source>
|
||||
<translation>Criação de pasta de sincronização local %1...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="421"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="459"/>
|
||||
<source>ok</source>
|
||||
<translation>ok</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="423"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="461"/>
|
||||
<source>failed.</source>
|
||||
<translation>falhou.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="425"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="463"/>
|
||||
<source>Could not create local folder %1</source>
|
||||
<translation>Não foi possível criar pasta local %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="451"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="489"/>
|
||||
<source>No remote folder specified!</source>
|
||||
<translation>Nenhuma pasta remota foi especificada!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="457"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="495"/>
|
||||
<source>Error: %1</source>
|
||||
<translation>Erro: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="470"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="508"/>
|
||||
<source>creating folder on ownCloud: %1</source>
|
||||
<translation>criar pasta no ownCloud: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="486"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="524"/>
|
||||
<source>Remote folder %1 created successfully.</source>
|
||||
<translation>Pasta remota %1 criada com sucesso.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="488"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="526"/>
|
||||
<source>The remote folder %1 already exists. Connecting it for syncing.</source>
|
||||
<translation>Pasta remota %1 já existe. Conectando para sincronizar.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="490"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="492"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="528"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="530"/>
|
||||
<source>The folder creation resulted in HTTP error code %1</source>
|
||||
<translation>A criação da pasta resultou em um erro do código HTTP %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="494"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="532"/>
|
||||
<source>The remote folder creation failed because the provided credentials are wrong!<br/>Please go back and check your credentials.</p></source>
|
||||
<translation>A criação da pasta remota falhou porque as credenciais fornecidas estão erradas!<br/>Por favor, volte e verifique suas credenciais.</p></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="498"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="536"/>
|
||||
<source><p><font color="red">Remote folder creation failed probably because the provided credentials are wrong.</font><br/>Please go back and check your credentials.</p></source>
|
||||
<translation><p><font color="red">A criação remota de pasta falhou provavelmente as causas da falha na criação da pasta remota são credenciais erradas</font><br/>Volte e verifique suas credenciais, por favor.</p></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="503"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="504"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="541"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="542"/>
|
||||
<source>Remote folder %1 creation failed with error <tt>%2</tt>.</source>
|
||||
<translation>Falha na criação da pasta remota %1 com erro <tt>%2</tt>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="521"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="559"/>
|
||||
<source>A sync connection from %1 to remote directory %2 was set up.</source>
|
||||
<translation>Uma conexão de sincronização de %1 para o diretório remoto %2 foi realizada.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="526"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="564"/>
|
||||
<source>Successfully connected to %1!</source>
|
||||
<translation>Conectado com sucesso a %1!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="533"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="571"/>
|
||||
<source>Connection to %1 could not be established. Please check again.</source>
|
||||
<translation>Conexão à %1 não foi estabelecida. Por favor, verifique novamente.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="547"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="585"/>
|
||||
<source>Folder rename failed</source>
|
||||
<translation>Falha no nome da pasta</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="548"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="586"/>
|
||||
<source>Can't remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup.</source>
|
||||
<translation>Não é possível remover e fazer backup da pasta porque a pasta ou um arquivo que está nesta pasta está aberto em outro programa. Por favor, feche a pasta ou arquivo e clique tentar novamente ou cancelar a operação.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="593"/>
|
||||
<location filename="../src/gui/owncloudsetupwizard.cpp" line="631"/>
|
||||
<source><font color="green"><b>Local sync folder %1 successfully created!</b></font></source>
|
||||
<translation><font color="green"><b>Pasta de sincronização local %1 criada com sucesso!</b></font></translation>
|
||||
</message>
|
||||
|
@ -2100,7 +2100,7 @@ It is not advisable to use it.</source>
|
|||
<context>
|
||||
<name>OCC::PropagateDirectory</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="942"/>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="953"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Ocorreu um erro ao escrever metadados ao banco de dados</translation>
|
||||
</message>
|
||||
|
@ -2138,17 +2138,17 @@ It is not advisable to use it.</source>
|
|||
<translation>O arquivo baixado está vazio apesar do servidor anunciou que deveria ter %1.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="772"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="775"/>
|
||||
<source>File %1 cannot be saved because of a local file name clash!</source>
|
||||
<translation>O arquivo %1 não pode ser salvo devido a um confronto com um nome de arquivo local!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="820"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="823"/>
|
||||
<source>File has changed since discovery</source>
|
||||
<translation>Arquivo foi alterado desde a descoberta</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="871"/>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="874"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Ocorreu um erro ao escrever metadados ao banco de dados</translation>
|
||||
</message>
|
||||
|
@ -2224,12 +2224,12 @@ It is not advisable to use it.</source>
|
|||
<context>
|
||||
<name>OCC::PropagateRemoteDelete</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="96"/>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="100"/>
|
||||
<source>The file has been removed from a read only share. It was restored.</source>
|
||||
<translation>O arquivo foi removido de um compartilhamento somente de leitura. Ele foi restaurado.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="117"/>
|
||||
<location filename="../src/libsync/propagateremotedelete.cpp" line="121"/>
|
||||
<source>Wrong HTTP code returned by server. Expected 204, but received "%1 %2".</source>
|
||||
<translation>Código HTTP retornado errado pelo servidor. 204 esperado, mas recebeu "%1 %2".</translation>
|
||||
</message>
|
||||
|
@ -2237,12 +2237,12 @@ It is not advisable to use it.</source>
|
|||
<context>
|
||||
<name>OCC::PropagateRemoteMkdir</name>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="95"/>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="99"/>
|
||||
<source>Wrong HTTP code returned by server. Expected 201, but received "%1 %2".</source>
|
||||
<translation>Código HTTP retornado errado pelo servidor. 201 esperado, mas recebeu "%1 %2".</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="147"/>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="151"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Ocorreu um erro ao escrever metadados ao banco de dados</translation>
|
||||
</message>
|
||||
|
@ -2260,18 +2260,18 @@ It is not advisable to use it.</source>
|
|||
<translation>Esta pasta não pode ser renomeada. Por favor, nomeie-a de volta para Compartilhada.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="137"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="141"/>
|
||||
<source>The file was renamed but is part of a read only share. The original file was restored.</source>
|
||||
<translation>O arquivo foi renomeado mas faz parte de compartilhamento só de leitura. O arquivo original foi restaurado.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="154"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="158"/>
|
||||
<source>Wrong HTTP code returned by server. Expected 201, but received "%1 %2".</source>
|
||||
<translation>Código HTTP retornado errado pelo servidor. 201 esperado, mas recebeu "%1 %2".</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="186"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="192"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="190"/>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="196"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Ocorreu um erro ao escrever metadados ao banco de dados</translation>
|
||||
</message>
|
||||
|
@ -2305,7 +2305,7 @@ It is not advisable to use it.</source>
|
|||
<translation>O envio de %1 excede a quota da pasta</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateupload.cpp" line="618"/>
|
||||
<location filename="../src/libsync/propagateupload.cpp" line="622"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation>Ocorreu um erro ao escrever metadados ao banco de dados</translation>
|
||||
</message>
|
||||
|
@ -2379,42 +2379,42 @@ It is not advisable to use it.</source>
|
|||
<translation>RótuloTexto</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="48"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="61"/>
|
||||
<source>Time</source>
|
||||
<translation>Tempo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="49"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="62"/>
|
||||
<source>File</source>
|
||||
<translation>Arquivo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="50"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="63"/>
|
||||
<source>Folder</source>
|
||||
<translation>Pasta</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="51"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="64"/>
|
||||
<source>Action</source>
|
||||
<translation>Ação</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="52"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="65"/>
|
||||
<source>Size</source>
|
||||
<translation>Tamanho</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="72"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="85"/>
|
||||
<source>Local sync protocol</source>
|
||||
<translation>Protocolo de sincronização local</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="74"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="87"/>
|
||||
<source>Copy</source>
|
||||
<translation>Copiar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="75"/>
|
||||
<location filename="../src/gui/protocolwidget.cpp" line="88"/>
|
||||
<source>Copy the activity list to the clipboard.</source>
|
||||
<translation>Copiar a lista de atividades para a área de transferência.</translation>
|
||||
</message>
|
||||
|
@ -2546,6 +2546,7 @@ It is not advisable to use it.</source>
|
|||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/settingsdialogmac.cpp" line="152"/>
|
||||
<location filename="../src/gui/settingsdialogmac.cpp" line="211"/>
|
||||
<source>Account</source>
|
||||
<translation>Conta</translation>
|
||||
</message>
|
||||
|
@ -3202,22 +3203,22 @@ It is not advisable to use it.</source>
|
|||
<translation>Não é possível abrir ou criar o banco de dados de sincronização local. Certifique-se de ter acesso de gravação na pasta de sincronização.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1278"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1287"/>
|
||||
<source>Not allowed because you don't have permission to add parent folder</source>
|
||||
<translation>Não permitido porque você não tem permissão para adicionar pasta mãe</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1285"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1294"/>
|
||||
<source>Not allowed because you don't have permission to add files in that folder</source>
|
||||
<translation>Não permitido porque você não tem permissão para adicionar arquivos na pasta</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1588"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1597"/>
|
||||
<source>Disk space is low: Downloads that would reduce free space below %1 were skipped.</source>
|
||||
<translation>O espaço em disco é pequeno: Os downloads que reduzam o espaço livre abaixo de %1 foram ignorados.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1595"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1604"/>
|
||||
<source>There is insufficient space available on the server for some uploads.</source>
|
||||
<translation>Há espaço disponível no servidor para alguns envios.</translation>
|
||||
</message>
|
||||
|
@ -3342,54 +3343,54 @@ It is not advisable to use it.</source>
|
|||
<translation>Não é possível abrir o arquivo de sincronização</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="968"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="977"/>
|
||||
<source>File name contains at least one invalid character</source>
|
||||
<translation>O nome do arquivo contem pelo menos um caractere inválido </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1204"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1244"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1213"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1253"/>
|
||||
<source>Ignored because of the "choose what to sync" blacklist</source>
|
||||
<translation>Ignorado por causa da lista negra "escolher o que sincronizar"</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1263"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1272"/>
|
||||
<source>Not allowed because you don't have permission to add subfolders to that folder</source>
|
||||
<translation>Não permitido porque você não tem permissão para adicionar subpastas para essa pasta</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1310"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1319"/>
|
||||
<source>Not allowed to upload this file because it is read-only on the server, restoring</source>
|
||||
<translation>Não é permitido fazer o upload deste arquivo porque ele é somente leitura no servidor, restaurando</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1326"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1345"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1335"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1354"/>
|
||||
<source>Not allowed to remove, restoring</source>
|
||||
<translation>Não é permitido remover, restaurando</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1359"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1368"/>
|
||||
<source>Local files and share folder removed.</source>
|
||||
<translation>Arquivos locais e pasta compartilhada removida.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1413"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1422"/>
|
||||
<source>Move not allowed, item restored</source>
|
||||
<translation>Não é permitido mover, item restaurado</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1424"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1433"/>
|
||||
<source>Move not allowed because %1 is read-only</source>
|
||||
<translation>Não é permitido mover porque %1 é somente para leitura</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1424"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1433"/>
|
||||
<source>the destination</source>
|
||||
<translation>o destino</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1424"/>
|
||||
<location filename="../src/libsync/syncengine.cpp" line="1433"/>
|
||||
<source>the source</source>
|
||||
<translation>a fonte</translation>
|
||||
</message>
|
||||
|
@ -3431,17 +3432,17 @@ It is not advisable to use it.</source>
|
|||
<context>
|
||||
<name>OCC::ValidateChecksumHeader</name>
|
||||
<message>
|
||||
<location filename="../src/common/checksums.cpp" line="205"/>
|
||||
<location filename="../src/common/checksums.cpp" line="218"/>
|
||||
<source>The checksum header is malformed.</source>
|
||||
<translation>O cabeçalho da soma de verificação está incorreto.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/common/checksums.cpp" line="220"/>
|
||||
<location filename="../src/common/checksums.cpp" line="233"/>
|
||||
<source>The checksum header contained an unknown checksum type '%1'</source>
|
||||
<translation>A cabeçalho da soma de verificação continha um tipo de soma de verificação desconhecido '%1'</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/common/checksums.cpp" line="224"/>
|
||||
<location filename="../src/common/checksums.cpp" line="237"/>
|
||||
<source>The downloaded file does not match the checksum, it will be resumed.</source>
|
||||
<translation>O arquivo baixado não coincide com o checksum, ele será retomado.</translation>
|
||||
</message>
|
||||
|
|
Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше
Загрузка…
Ссылка в новой задаче