mirror of
https://github.com/chylex/Nextcloud-Desktop.git
synced 2026-04-05 14:34:16 +02:00
Compare commits
147 Commits
v1.6.0-bet
...
v1.6.0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
746c15b4aa | ||
|
|
7e65c9741e | ||
|
|
a50e7c1b48 | ||
|
|
0ae82e2041 | ||
|
|
22af756fe3 | ||
|
|
2f1bec28dd | ||
|
|
022a3fcd92 | ||
|
|
064dcdb25a | ||
|
|
938dce7fa6 | ||
|
|
0151682a53 | ||
|
|
864f2cdc7d | ||
|
|
77ddedc859 | ||
|
|
0c1ab533e6 | ||
|
|
1dd7f736d0 | ||
|
|
571c199db8 | ||
|
|
40715cbc77 | ||
|
|
3d2a2df86f | ||
|
|
86a48b52e9 | ||
|
|
ebe1f986f1 | ||
|
|
dd1152dd4f | ||
|
|
ce9bfd319a | ||
|
|
f591ac6549 | ||
|
|
4fd368c992 | ||
|
|
93f453057b | ||
|
|
5a069d274b | ||
|
|
e275ad3866 | ||
|
|
5813f63df8 | ||
|
|
9a1f8ccf7b | ||
|
|
449c00f019 | ||
|
|
6017eb7ca6 | ||
|
|
f1b2417967 | ||
|
|
181383e5f1 | ||
|
|
c1b9d5c653 | ||
|
|
964c3ac7bf | ||
|
|
6d8afabf41 | ||
|
|
0a7dbeb778 | ||
|
|
3228fde4af | ||
|
|
0582abe8dd | ||
|
|
81f410970f | ||
|
|
e75c5236f2 | ||
|
|
8a671c40d1 | ||
|
|
50ce0f9681 | ||
|
|
a60902b33d | ||
|
|
5220786cf2 | ||
|
|
99cead68f5 | ||
|
|
7a209ba376 | ||
|
|
f9263da3de | ||
|
|
3f724e1c6a | ||
|
|
c9d3f7a0eb | ||
|
|
072af16f3b | ||
|
|
d2b6c626b5 | ||
|
|
115276408a | ||
|
|
9abffdb1a6 | ||
|
|
5b0307446a | ||
|
|
0f20a4f546 | ||
|
|
1b2875c20a | ||
|
|
bbdf7bf955 | ||
|
|
57359968ed | ||
|
|
ea9f302b7a | ||
|
|
ef0a3c212e | ||
|
|
18677dbc3f | ||
|
|
7e8b403116 | ||
|
|
1303379c9e | ||
|
|
b995cd318c | ||
|
|
ed19107161 | ||
|
|
1b67f253dc | ||
|
|
667c835c49 | ||
|
|
5b298abba1 | ||
|
|
4edbeece49 | ||
|
|
97362cff32 | ||
|
|
3db3c7b876 | ||
|
|
8738128504 | ||
|
|
069eaf9170 | ||
|
|
d0b9b002e4 | ||
|
|
bdba56f60b | ||
|
|
7087dbc445 | ||
|
|
7ade4bb6e6 | ||
|
|
86117aed0d | ||
|
|
ed3d9a7479 | ||
|
|
3746a2efff | ||
|
|
9b53cc66e7 | ||
|
|
43fe7b0d55 | ||
|
|
5aa6f81ef3 | ||
|
|
f838f28185 | ||
|
|
e1f8eb5aa5 | ||
|
|
f40a054cb7 | ||
|
|
adfb163593 | ||
|
|
81c768099e | ||
|
|
4bcaebb322 | ||
|
|
8b469d3992 | ||
|
|
bb929db7e6 | ||
|
|
90ee274744 | ||
|
|
9f6e9f8e1b | ||
|
|
943f9f60e3 | ||
|
|
f89bfce068 | ||
|
|
ef44a59bed | ||
|
|
d96139f698 | ||
|
|
de970eb0a5 | ||
|
|
7a28b44128 | ||
|
|
17a2e224c4 | ||
|
|
87386ce001 | ||
|
|
5ed4710d64 | ||
|
|
5493c22584 | ||
|
|
64f4d1b387 | ||
|
|
cdd8c8165b | ||
|
|
16ffd7fbe4 | ||
|
|
ba959f7cf9 | ||
|
|
cf145feed8 | ||
|
|
07f57b1982 | ||
|
|
e62eb62a01 | ||
|
|
574e030caf | ||
|
|
3705a42375 | ||
|
|
a9ffd1d0cf | ||
|
|
f86dd1cbbf | ||
|
|
af066cc733 | ||
|
|
822650719b | ||
|
|
95747fbaea | ||
|
|
321058ef74 | ||
|
|
71c11373d8 | ||
|
|
d5ba288dd5 | ||
|
|
091e9bbd52 | ||
|
|
ce09e11011 | ||
|
|
d7a226e0e6 | ||
|
|
f034bcb9ae | ||
|
|
4c77a04514 | ||
|
|
a50c39cd0c | ||
|
|
370dd99e47 | ||
|
|
f97fbe868f | ||
|
|
2ce6560b6e | ||
|
|
2b4e14c4fc | ||
|
|
1631cfdaf1 | ||
|
|
2e76fe87c2 | ||
|
|
6c44f53645 | ||
|
|
988c162d2f | ||
|
|
3d8d4fecd7 | ||
|
|
f8525fa5a0 | ||
|
|
6e48eb9397 | ||
|
|
88cb047197 | ||
|
|
7f7154ed40 | ||
|
|
a8c1ffc2f4 | ||
|
|
df8b5b1ea6 | ||
|
|
ce50cdecf1 | ||
|
|
77c7439329 | ||
|
|
752112dbaa | ||
|
|
925c6485e6 | ||
|
|
738f026c41 | ||
|
|
32e205f6ce |
11
ChangeLog
11
ChangeLog
@@ -1,18 +1,22 @@
|
||||
ChangeLog
|
||||
=========
|
||||
version 1.6.0 (release 2014-04- )
|
||||
version 1.6.0 (release 2014-05-30 )
|
||||
* Minor GUI improvements
|
||||
* Qt5 compile issues fixed
|
||||
* Ignore sync log file in filewatcher
|
||||
* Install libocsync to private library dir and use rpath to localize
|
||||
* Fix reconnect after server disconnect
|
||||
* Fix crashes
|
||||
* Fix "unknown action" display in Activity window
|
||||
* Fix memory leaks
|
||||
* Respect XDG_CONFIG_HOME environment var
|
||||
* Handle empty fileids in the journal correctly
|
||||
* Add abilility to compile libowncloudsync without GUI dependendy
|
||||
|
||||
* Fix SSL error with previously-expired CAs on Windows
|
||||
* Fix incorrect folder pause state after start
|
||||
* Fix a couple of actual potential crashes
|
||||
* Improve Cookie support (e.g. for cookie-based load-balancers)
|
||||
* Introduce a general timeout of 300s for network operations
|
||||
* Improve error handling, blacklisting
|
||||
* Job-based change propagation, enables faster parallel up/downloads
|
||||
(right now only if no bandwidth limit is set and no proxy is used)
|
||||
* Significantly reduced CPU load when checking for local and remote changes
|
||||
@@ -30,6 +34,7 @@ version 1.6.0 (release 2014-04- )
|
||||
* Mac OS X: Fix UI inconsistencies on Mavericks
|
||||
* Shibboleth: Warn if authenticating with a different user
|
||||
* Remove vio abstraction in csync
|
||||
* Avoid data loss when a client file system is not case sensitive
|
||||
|
||||
version 1.5.3 (release 2014-03-10 )
|
||||
* Fix usage of proxies after first sync run (#1502, #1524, #1459, #1521)
|
||||
|
||||
@@ -4,7 +4,7 @@ set( MIRALL_VERSION_PATCH 0 )
|
||||
set( MIRALL_SOVERSION 0 )
|
||||
|
||||
if ( NOT DEFINED MIRALL_VERSION_SUFFIX )
|
||||
set( MIRALL_VERSION_SUFFIX "beta2" ) #e.g. beta1, beta2, rc1
|
||||
set( MIRALL_VERSION_SUFFIX "") #e.g. beta1, beta2, rc1
|
||||
endif( NOT DEFINED MIRALL_VERSION_SUFFIX )
|
||||
|
||||
if( NOT DEFINED MIRALL_VERSION_BUILD )
|
||||
|
||||
@@ -3,13 +3,13 @@ StrCpy $MUI_FINISHPAGE_SHOWREADME_TEXT_STRING "
|
||||
StrCpy $ConfirmEndProcess_MESSAGEBOX_TEXT "Βρέθηκε η(οι) διεργασία(ες) ${APPLICATION_EXECUTABLE} η(οι) οποία(ες) θα πρέπει να τερματιστεί(ούν).$\nΘα θέλατε να την(τις) τερματίσει ο βοηθός εγκατάστασης για εσάς;"
|
||||
StrCpy $ConfirmEndProcess_KILLING_PROCESSES_TEXT "Τερματισμός διεργασιών ${APPLICATION_EXECUTABLE}."
|
||||
StrCpy $ConfirmEndProcess_KILL_NOT_FOUND_TEXT "Δεν βρέθηκε διεργασία για βίαιο τερματισμό!"
|
||||
StrCpy $PageReinstall_NEW_Field_1 "Μια παλαιότερη έκδοση της ${APPLICATION_NAME} είναι εγκατεστημένη στο σύστημά σας. Είναι προτεινόμενο να απεγκαταστήσετε την τρέχουσα έκδοση πριν την εγκατάσταση. Επιλέξτε τη διαδικασία που επιθυμείτε να πραγματοποιείσετε και πατήστε Επόμενο για να συνεχίσετε."
|
||||
StrCpy $PageReinstall_NEW_Field_1 "Μια παλαιότερη έκδοση της ${APPLICATION_NAME} είναι εγκατεστημένη στο σύστημά σας. Είναι προτεινόμενο να απεγκαταστήσετε την τρέχουσα έκδοση πριν την εγκατάσταση. Επιλέξτε τη διαδικασία που επιθυμείτε να εκτελέσετε και πατήστε Επόμενο για να συνεχίσετε."
|
||||
StrCpy $PageReinstall_NEW_Field_2 "Απεγκατάσταση πριν την εγκατάσταση"
|
||||
StrCpy $PageReinstall_NEW_Field_3 "Να μην απεγκατασταθεί"
|
||||
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE "Ήδη εγκατεστημένο"
|
||||
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE "Ήδη εγκατεστημένη"
|
||||
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE "Επιλέξτε πώς θέλετε να εγκαταστήσετε την ${APPLICATION_NAME}."
|
||||
StrCpy $PageReinstall_OLD_Field_1 "Μια νεώτερη έκδοση της ${APPLICATION_NAME} είναι ήδη εγκατεστημένη! Δεν συνίσταται να εγκαταστείσετε μια παλαιότερη έκδοση. Εάν θέλετε πραγματικά να εγκαταστήσετε αυτή την παλαιότερη έκδοση, είναι καλύτερο να απεγκαταστήσετε την τρέχουσα έκδοση πρώτα. Επιλέξτε τη διαδικασία που επιθυμείτε να πραγματοποιείσετε και επιλέξτε Επόμενο για να συνεχίσετε."
|
||||
StrCpy $PageReinstall_SAME_Field_1 "Η ${APPLICATION_NAME} ${VERSION} είναι ήδη εγκατεστημένη.\n\nΕπιλέξτε τη διαδικασία που επιθυμείτε να πραγματοποιείσετε και επιλέξτε Επόμενο για να συνεχίσετε."
|
||||
StrCpy $PageReinstall_OLD_Field_1 "Μια νεώτερη έκδοση της ${APPLICATION_NAME} είναι ήδη εγκατεστημένη! Δεν συνίσταται να εγκαταστείσετε μια παλαιότερη έκδοση. Εάν θέλετε πραγματικά να εγκαταστήσετε αυτήν την παλαιότερη έκδοση, είναι καλύτερο να απεγκαταστήσετε την τρέχουσα έκδοση πρώτα. Επιλέξτε τη διαδικασία που επιθυμείτε να εκτελέσετε και επιλέξτε Επόμενο για να συνεχίσετε."
|
||||
StrCpy $PageReinstall_SAME_Field_1 "Η ${APPLICATION_NAME} ${VERSION} είναι ήδη εγκατεστημένη.\n\nΕπιλέξτε τη διαδικασία που επιθυμείτε να εκτελέσετε και επιλέξτε Επόμενο για να συνεχίσετε."
|
||||
StrCpy $PageReinstall_SAME_Field_2 "Προσθήκη/ Επανεγκατάσταση συνιστωσών"
|
||||
StrCpy $PageReinstall_SAME_Field_3 "Απεγκατάσταση ${APPLICATION_NAME}"
|
||||
StrCpy $UNINSTALLER_APPDATA_TITLE "Απεγκατάσταση ${APPLICATION_NAME}"
|
||||
@@ -23,16 +23,16 @@ StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_SECTION "
|
||||
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_DetailPrint "Δημιουργία Συντόμευσης Ταχείας Εκκίνησης"
|
||||
StrCpy $OPTION_SECTION_SC_APPLICATION_Desc "Βάση ${APPLICATION_NAME}."
|
||||
StrCpy $OPTION_SECTION_SC_START_MENU_Desc "Συντόμευση ${APPLICATION_NAME}."
|
||||
StrCpy $OPTION_SECTION_SC_DESKTOP_Desc "Συντόμευση στην επιφάνεια εργασίας της "
|
||||
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_Desc "Συντόμευση Ταχείας Εκκίνησης της "
|
||||
StrCpy $UNINSTALLER_APPDATA_SUBTITLE "Αφαίρεση του φακέλου δεδομένων της ${APPLICATION_NAME} από τον υπολογιστή σας"
|
||||
StrCpy $OPTION_SECTION_SC_DESKTOP_Desc "Συντόμευση επιφάνειας εργασίας της ${APPLICATION_NAME}."
|
||||
StrCpy $OPTION_SECTION_SC_QUICK_LAUNCH_Desc "Συντόμευση Ταχείας Εκκίνησης της ${APPLICATION_NAME}."
|
||||
StrCpy $UNINSTALLER_APPDATA_SUBTITLE "Αφαίρεση του φακέλου δεδομένων της ${APPLICATION_NAME} από τον υπολογιστή σας."
|
||||
StrCpy $UNINSTALLER_APPDATA_LABEL_1 "Θέλετε να αφαιρέσετε τον φάκελο δεδομένων της ${APPLICATION_NAME};"
|
||||
StrCpy $UNINSTALLER_APPDATA_LABEL_2 "Αφήστε κενό για να διατηρήσετε τον φάκελο δεδομένων για μελλοντική χρήση ή επιλέξτε για να διγράψετε το φάκελο δεδομένων."
|
||||
StrCpy $UNINSTALLER_APPDATA_CHECKBOX "Να διαγραφεί ο φάκελος δεδομένων."
|
||||
StrCpy $UNINSTALLER_APPDATA_CHECKBOX "Ναι, διαγραφή αυτού του φακέλου δεδομένων."
|
||||
StrCpy $UNINSTALLER_FILE_Detail "Εγγραφή Εφαρμογής Απεγκατάστασης"
|
||||
StrCpy $UNINSTALLER_REGISTRY_Detail "Εγγραφή Κλειδιών μητρώου (Registry) της Εφαρμογής Εγκατάστασης"
|
||||
StrCpy $UNINSTALLER_FINISHED_Detail "Ολοκλήρωση"
|
||||
StrCpy $UNINSTALL_MESSAGEBOX "Φαίνεται πως η ${APPLICATION_NAME} είναι εγκατεστημένη στον κατάλογο '$INSTDIR'.$\n$\nΣυνέχιση παρ' όλα αυτά (δεν συνίσταται);"
|
||||
StrCpy $UNINSTALLER_FINISHED_Detail "Ολοκληρώθηκε"
|
||||
StrCpy $UNINSTALL_MESSAGEBOX "Δεν φαίνεται να είναι εγκατεστημένηη η ${APPLICATION_NAME} στον κατάλογο '$INSTDIR'.$\n$\nΣυνέχιση παρ' όλα αυτά (δεν συνίσταται);"
|
||||
StrCpy $UNINSTALL_ABORT "Η απεγκατάσταση ματαιώθηκε από το χρήστη"
|
||||
StrCpy $INIT_NO_QUICK_LAUNCH "Συντόμευση Ταχείας Εκκίνησης (Μ/Δ)"
|
||||
StrCpy $INIT_NO_DESKTOP "Συντόμευση Επιφάνειας Εργασίας (αντικαθιστά υπάρχουσα)"
|
||||
|
||||
@@ -9,7 +9,7 @@ StrCpy $PageReinstall_NEW_Field_3 "Kald
|
||||
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_TITLE "Zaten Yüklü"
|
||||
StrCpy $PageReinstall_NEW_MUI_HEADER_TEXT_SUBTITLE "${APPLICATION_NAME} uygulamasını nasıl yüklemek istediğinizi seçin."
|
||||
StrCpy $PageReinstall_OLD_Field_1 "${APPLICATION_NAME} uygulamasının daha yeni sürümü zaten yüklü! Daha eski bir sürümünü yüklemeniz önerilmez. Gerçekten bu eski sürümü yüklemek isterseniz, ilk olarak geçerli sürümü kaldırmanız tavsiye edilir. Yapmak istediğiniz işlemi seçin ve devam etmek üzere İleri tıklayın."
|
||||
StrCpy $PageReinstall_SAME_Field_1 "${APPLICATION_NAME} ${VERSION} zaten yüklü.\nYapmak istediğiniz işlemi seçin ve devam etmek için İleri tıklayın."
|
||||
StrCpy $PageReinstall_SAME_Field_1 "${APPLICATION_NAME} ${VERSION} zaten yüklü.\n\nYapmak istediğiniz işlemi seçin ve devam etmek için İleri tıklayın."
|
||||
StrCpy $PageReinstall_SAME_Field_2 "Bileşenleri ekle/yeniden yükle"
|
||||
StrCpy $PageReinstall_SAME_Field_3 "${APPLICATION_NAME} uygulamasını kaldır"
|
||||
StrCpy $UNINSTALLER_APPDATA_TITLE "${APPLICATION_NAME} uygulamasını kaldır"
|
||||
|
||||
@@ -191,15 +191,12 @@ int csync_init(CSYNC *ctx) {
|
||||
ctx->local.type = LOCAL_REPLICA;
|
||||
|
||||
if ( !ctx->options.local_only_mode) {
|
||||
owncloud_init(csync_get_auth_callback(ctx), csync_get_userdata(ctx));
|
||||
owncloud_init(csync_get_userdata(ctx));
|
||||
ctx->remote.type = REMOTE_REPLICA;
|
||||
} else {
|
||||
ctx->remote.type = LOCAL_REPLICA;
|
||||
}
|
||||
|
||||
if (ctx->options.timeout)
|
||||
csync_vio_set_property(ctx, "timeout", &ctx->options.timeout);
|
||||
|
||||
if (c_rbtree_create(&ctx->local.tree, _key_cmp, _data_cmp) < 0) {
|
||||
ctx->status_code = CSYNC_STATUS_TREE_ERROR;
|
||||
rc = -1;
|
||||
@@ -447,6 +444,7 @@ static int _csync_treewalk_visitor(void *obj, void *data) {
|
||||
trav.rename_path = cur->destpath;
|
||||
trav.etag = cur->etag;
|
||||
trav.file_id = cur->file_id;
|
||||
trav.inode = cur->inode;
|
||||
|
||||
trav.error_status = cur->error_status;
|
||||
trav.should_update_etag = cur->should_update_etag;
|
||||
|
||||
@@ -170,6 +170,7 @@ enum csync_notify_type_e {
|
||||
struct csync_tree_walk_file_s {
|
||||
const char *path;
|
||||
int64_t size;
|
||||
int64_t inode;
|
||||
time_t modtime;
|
||||
#ifdef _WIN32
|
||||
uint32_t uid;
|
||||
|
||||
@@ -60,7 +60,7 @@ struct dav_session_s dav_session; /* The DAV Session, initialised in dav_connect
|
||||
int _connected = 0; /* flag to indicate if a connection exists, ie.
|
||||
the dav_session is valid */
|
||||
|
||||
csync_auth_callback _authcb;
|
||||
|
||||
void *_userdata;
|
||||
long long chunked_total_size = 0;
|
||||
long long chunked_done = 0;
|
||||
@@ -123,6 +123,7 @@ static int verify_sslcert(void *userdata, int failures,
|
||||
char buf[MAX(NE_SSL_DIGESTLEN, NE_ABUFSIZ)];
|
||||
int ret = -1;
|
||||
const ne_ssl_certificate *cert = certificate;
|
||||
csync_auth_callback authcb = NULL;
|
||||
|
||||
(void) userdata;
|
||||
memset( problem, 0, LEN );
|
||||
@@ -160,11 +161,14 @@ static int verify_sslcert(void *userdata, int failures,
|
||||
}
|
||||
addSSLWarning( problem, "Do you want to accept the certificate chain anyway?\nAnswer yes to do so and take the risk: ", LEN );
|
||||
|
||||
if( _authcb ){
|
||||
if( dav_session.csync_ctx ) {
|
||||
authcb = csync_get_auth_callback( dav_session.csync_ctx );
|
||||
}
|
||||
if( authcb ){
|
||||
/* call the csync callback */
|
||||
DEBUG_WEBDAV("Call the csync callback for SSL problems");
|
||||
memset( buf, 0, NE_ABUFSIZ );
|
||||
(*_authcb) ( problem, buf, NE_ABUFSIZ-1, 1, 0, _userdata );
|
||||
(*authcb) ( problem, buf, NE_ABUFSIZ-1, 1, 0, _userdata );
|
||||
if( buf[0] == 'y' || buf[0] == 'Y') {
|
||||
ret = 0;
|
||||
} else {
|
||||
@@ -184,6 +188,8 @@ static int ne_auth( void *userdata, const char *realm, int attempt,
|
||||
char *username, char *password)
|
||||
{
|
||||
char buf[NE_ABUFSIZ];
|
||||
csync_auth_callback authcb = NULL;
|
||||
int re = attempt;
|
||||
|
||||
(void) userdata;
|
||||
(void) realm;
|
||||
@@ -199,24 +205,29 @@ static int ne_auth( void *userdata, const char *realm, int attempt,
|
||||
if( dav_session.pwd && strlen( dav_session.pwd ) < NE_ABUFSIZ ) {
|
||||
strcpy( password, dav_session.pwd );
|
||||
}
|
||||
} else if( _authcb != NULL ){
|
||||
/* call the csync callback */
|
||||
DEBUG_WEBDAV("Call the csync callback for %s", realm );
|
||||
memset( buf, 0, NE_ABUFSIZ );
|
||||
(*_authcb) ("Enter your username: ", buf, NE_ABUFSIZ-1, 1, 0, _userdata );
|
||||
if( strlen(buf) < NE_ABUFSIZ ) {
|
||||
strcpy( username, buf );
|
||||
}
|
||||
memset( buf, 0, NE_ABUFSIZ );
|
||||
(*_authcb) ("Enter your password: ", buf, NE_ABUFSIZ-1, 0, 0, _userdata );
|
||||
if( strlen(buf) < NE_ABUFSIZ) {
|
||||
strcpy( password, buf );
|
||||
}
|
||||
} else {
|
||||
DEBUG_WEBDAV("I can not authenticate!");
|
||||
if( dav_session.csync_ctx ) {
|
||||
authcb = csync_get_auth_callback( dav_session.csync_ctx );
|
||||
}
|
||||
if( authcb != NULL ){
|
||||
/* call the csync callback */
|
||||
DEBUG_WEBDAV("Call the csync callback for %s", realm );
|
||||
memset( buf, 0, NE_ABUFSIZ );
|
||||
(*authcb) ("Enter your username: ", buf, NE_ABUFSIZ-1, 1, 0, _userdata );
|
||||
if( strlen(buf) < NE_ABUFSIZ ) {
|
||||
strcpy( username, buf );
|
||||
}
|
||||
memset( buf, 0, NE_ABUFSIZ );
|
||||
(*authcb) ("Enter your password: ", buf, NE_ABUFSIZ-1, 0, 0, _userdata );
|
||||
if( strlen(buf) < NE_ABUFSIZ) {
|
||||
strcpy( password, buf );
|
||||
}
|
||||
} else {
|
||||
re = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
return attempt;
|
||||
return re;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -508,10 +519,10 @@ static int dav_connect(const char *base_url) {
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (dav_session.read_timeout == 0)
|
||||
dav_session.read_timeout = 300; // set 300 seconds as default.
|
||||
|
||||
ne_set_read_timeout(dav_session.ctx, dav_session.read_timeout);
|
||||
if (dav_session.read_timeout != 0) {
|
||||
ne_set_read_timeout(dav_session.ctx, dav_session.read_timeout);
|
||||
DEBUG_WEBDAV("Timeout set to %u seconds", dav_session.read_timeout );
|
||||
}
|
||||
|
||||
snprintf( uaBuf, sizeof(uaBuf), "Mozilla/5.0 (%s) csyncoC/%s",
|
||||
get_platform(), CSYNC_STRINGIFY( LIBCSYNC_VERSION ));
|
||||
@@ -982,8 +993,10 @@ int owncloud_commit(void) {
|
||||
|
||||
clean_caches();
|
||||
|
||||
if( dav_session.ctx )
|
||||
ne_session_destroy( dav_session.ctx );
|
||||
if( dav_session.ctx ) {
|
||||
ne_forget_auth(dav_session.ctx);
|
||||
ne_session_destroy( dav_session.ctx );
|
||||
}
|
||||
/* DEBUG_WEBDAV( "********** vio_module_shutdown" ); */
|
||||
|
||||
dav_session.ctx = 0;
|
||||
@@ -1047,10 +1060,9 @@ int owncloud_set_property(const char *key, void *data) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
void owncloud_init(csync_auth_callback cb, void *userdata) {
|
||||
void owncloud_init(void *userdata) {
|
||||
|
||||
_userdata = userdata;
|
||||
_authcb = cb;
|
||||
_connected = 0; /* triggers dav_connect to go through the whole neon setup */
|
||||
|
||||
memset(&dav_session, 0, sizeof(dav_session));
|
||||
|
||||
@@ -173,7 +173,7 @@ int owncloud_closedir(csync_vio_handle_t *dhandle);
|
||||
int owncloud_stat(const char *uri, csync_vio_file_stat_t *buf);
|
||||
int owncloud_commit(void);
|
||||
char *owncloud_error_string(void);
|
||||
void owncloud_init(csync_auth_callback cb, void *userdata);
|
||||
void owncloud_init(void *userdata);
|
||||
int owncloud_set_property(const char *key, void *data);
|
||||
|
||||
#endif /* CSYNC_OWNCLOUD_H */
|
||||
|
||||
@@ -183,6 +183,7 @@ static int _csync_merge_algorithm_visitor(void *obj, void *data) {
|
||||
if( !c_streq(cur->file_id, "") ) {
|
||||
csync_vio_set_file_id( other->file_id, cur->file_id );
|
||||
}
|
||||
other->inode = cur->inode;
|
||||
cur->instruction = CSYNC_INSTRUCTION_NONE;
|
||||
} else if (other->instruction == CSYNC_INSTRUCTION_REMOVE) {
|
||||
other->instruction = CSYNC_INSTRUCTION_RENAME;
|
||||
@@ -191,7 +192,7 @@ static int _csync_merge_algorithm_visitor(void *obj, void *data) {
|
||||
if( !c_streq(cur->file_id, "") ) {
|
||||
csync_vio_set_file_id( other->file_id, cur->file_id );
|
||||
}
|
||||
|
||||
other->inode = cur->inode;
|
||||
cur->instruction = CSYNC_INSTRUCTION_NONE;
|
||||
} else if (other->instruction == CSYNC_INSTRUCTION_NEW) {
|
||||
CSYNC_LOG(CSYNC_LOG_PRIORITY_TRACE, "OOOO=> NEW detected in other tree!");
|
||||
|
||||
@@ -276,6 +276,8 @@ static int _csync_detect_update(CSYNC *ctx, const char *file,
|
||||
|
||||
/* check if it's a file and has been renamed */
|
||||
if (ctx->current == LOCAL_REPLICA) {
|
||||
CSYNC_LOG(CSYNC_LOG_PRIORITY_TRACE, "Checking for rename based on inode # %" PRId64 "", (uint64_t) fs->inode);
|
||||
|
||||
tmp = csync_statedb_get_stat_by_inode(ctx, fs->inode);
|
||||
|
||||
/* translate the file type between the two stat types csync has. */
|
||||
@@ -476,7 +478,6 @@ static bool fill_tree_from_db(CSYNC *ctx, const char *uri)
|
||||
/* File tree walker */
|
||||
int csync_ftw(CSYNC *ctx, const char *uri, csync_walker_fn fn,
|
||||
unsigned int depth) {
|
||||
char errbuf[256] = {0};
|
||||
char *filename = NULL;
|
||||
char *d_name = NULL;
|
||||
csync_vio_handle_t *dh = NULL;
|
||||
@@ -520,10 +521,7 @@ int csync_ftw(CSYNC *ctx, const char *uri, csync_walker_fn fn,
|
||||
CSYNC_LOG(CSYNC_LOG_PRIORITY_ERROR, "asprintf failed!");
|
||||
}
|
||||
} else {
|
||||
C_STRERROR(errno, errbuf, sizeof(errbuf));
|
||||
CSYNC_LOG(CSYNC_LOG_PRIORITY_ERROR,
|
||||
"opendir failed for %s - %s (errno %d)",
|
||||
uri, errbuf, errno);
|
||||
CSYNC_LOG(CSYNC_LOG_PRIORITY_ERROR, "opendir failed for %s - errno %d", uri, errno);
|
||||
}
|
||||
goto error;
|
||||
}
|
||||
@@ -671,7 +669,8 @@ int csync_ftw(CSYNC *ctx, const char *uri, csync_walker_fn fn,
|
||||
}
|
||||
}
|
||||
|
||||
if (ctx->current_fs && (ctx->current_fs->instruction == CSYNC_INSTRUCTION_EVAL ||
|
||||
if (flag == CSYNC_FTW_FLAG_DIR && ctx->current_fs
|
||||
&& (ctx->current_fs->instruction == CSYNC_INSTRUCTION_EVAL ||
|
||||
ctx->current_fs->instruction == CSYNC_INSTRUCTION_NEW ||
|
||||
ctx->current_fs->instruction == CSYNC_INSTRUCTION_EVAL_RENAME)) {
|
||||
ctx->current_fs->should_update_etag = true;
|
||||
|
||||
@@ -182,6 +182,7 @@ csync_vio_file_stat_t *csync_vio_convert_file_stat(csync_file_stat_t *st) {
|
||||
}
|
||||
|
||||
bool (*csync_file_locked_or_open_ext) (const char*) = 0; // filled in by library user
|
||||
void set_csync_file_locked_or_open_ext(bool (*f) (const char*));
|
||||
void set_csync_file_locked_or_open_ext(bool (*f) (const char*)) {
|
||||
csync_file_locked_or_open_ext = f;
|
||||
}
|
||||
|
||||
@@ -55,9 +55,6 @@
|
||||
/** Get the size of an array */
|
||||
#define ARRAY_SIZE(a) (sizeof(a)/sizeof(a[0]))
|
||||
|
||||
/** Macro to make strerror_r work with -Werror=unused-result */
|
||||
#define C_STRERROR(errno, buf, size) if(strerror_r(errno, buf, size)) {}
|
||||
|
||||
/**
|
||||
* This is a hack to fix warnings. The idea is to use this everywhere that we
|
||||
* get the "discarding const" warning by the compiler. That doesn't actually
|
||||
|
||||
@@ -113,11 +113,6 @@ int csync_vio_stat(CSYNC *ctx, const char *uri, csync_vio_file_stat_t *buf) {
|
||||
if (rc < 0) {
|
||||
CSYNC_LOG(CSYNC_LOG_PRIORITY_ERROR, "Local stat failed, errno %d", errno);
|
||||
}
|
||||
#ifdef _WIN32
|
||||
else {
|
||||
CSYNC_LOG(CSYNC_LOG_PRIORITY_DEBUG, "Win32: STAT-inode for %s: %llu", uri, buf->inode );
|
||||
}
|
||||
#endif
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
@@ -240,6 +240,9 @@ int csync_vio_local_stat(const char *uri, csync_vio_file_stat_t *buf) {
|
||||
/* printf("Index: %I64i\n", FileIndex.QuadPart); */
|
||||
buf->inode = FileIndex.QuadPart;
|
||||
|
||||
buf->size = (fileInfo.nFileSizeHigh * (int64_t)(MAXDWORD+1)) + fileInfo.nFileSizeLow;
|
||||
buf->fields |= CSYNC_VIO_FILE_STAT_FIELDS_SIZE;
|
||||
|
||||
/* Get the file time with a win32 call rather than through stat. See
|
||||
* http://www.codeproject.com/Articles/1144/Beating-the-Daylight-Savings-Time-bug-and-getting
|
||||
* for deeper explanation.
|
||||
|
||||
@@ -243,19 +243,6 @@ static void check_csync_statedb_get_stat_by_hash_not_found(void **state)
|
||||
free(tmp);
|
||||
}
|
||||
|
||||
static void check_csync_statedb_get_stat_by_inode(void **state)
|
||||
{
|
||||
CSYNC *csync = *state;
|
||||
csync_file_stat_t *tmp;
|
||||
|
||||
tmp = csync_statedb_get_stat_by_inode(csync, (ino_t) 23);
|
||||
assert_non_null(tmp);
|
||||
|
||||
assert_int_equal(tmp->phash, 42);
|
||||
assert_int_equal(tmp->inode, 23);
|
||||
|
||||
free(tmp);
|
||||
}
|
||||
|
||||
static void check_csync_statedb_get_stat_by_inode_not_found(void **state)
|
||||
{
|
||||
@@ -272,14 +259,10 @@ int torture_run_tests(void)
|
||||
unit_test_setup_teardown(check_csync_statedb_query_statement, setup, teardown),
|
||||
unit_test_setup_teardown(check_csync_statedb_create_error, setup, teardown),
|
||||
unit_test_setup_teardown(check_csync_statedb_insert_statement, setup, teardown),
|
||||
/* unit_test_setup_teardown(check_csync_statedb_is_empty, setup, teardown), */
|
||||
/* unit_test_setup_teardown(check_csync_statedb_create_tables, setup, teardown), */
|
||||
unit_test_setup_teardown(check_csync_statedb_drop_tables, setup, teardown),
|
||||
unit_test_setup_teardown(check_csync_statedb_insert_metadata, setup, teardown),
|
||||
unit_test_setup_teardown(check_csync_statedb_write, setup, teardown),
|
||||
/* unit_test_setup_teardown(check_csync_statedb_get_stat_by_hash, setup_db, teardown), */
|
||||
unit_test_setup_teardown(check_csync_statedb_get_stat_by_hash_not_found, setup_db, teardown),
|
||||
/* unit_test_setup_teardown(check_csync_statedb_get_stat_by_inode, setup_db, teardown), */
|
||||
unit_test_setup_teardown(check_csync_statedb_get_stat_by_inode_not_found, setup_db, teardown),
|
||||
};
|
||||
|
||||
|
||||
@@ -12,12 +12,15 @@ if(SPHINX_FOUND)
|
||||
# assets
|
||||
set(LATEX_LOGO "${CMAKE_CURRENT_SOURCE_DIR}/logo-blue.pdf")
|
||||
|
||||
install(DIRECTORY ${SPHINX_HTML_DIR} DESTINATION ${CMAKE_INSTALL_DOCDIR} OPTIONAL)
|
||||
install(DIRECTORY ${SPHINX_MAN_DIR} DESTINATION ${CMAKE_INSTALL_MANDIR} OPTIONAL)
|
||||
install(DIRECTORY ${SPHINX_PDF_DIR} DESTINATION ${CMAKE_INSTALL_DOCDIR} OPTIONAL)
|
||||
install(DIRECTORY ${SPHINX_QCH_DIR} DESTINATION ${CMAKE_INSTALL_DOCDIR} OPTIONAL)
|
||||
|
||||
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/conf.py.in" conf.py @ONLY)
|
||||
|
||||
if(WITH_DOC)
|
||||
add_custom_target(doc ALL DEPENDS doc-html doc-man COMMENT "Building documentation...")
|
||||
install(DIRECTORY ${SPHINX_HTML_DIR} DESTINATION ${CMAKE_INSTALL_DOCDIR})
|
||||
install(DIRECTORY ${SPHINX_MAN_DIR} DESTINATION ${CMAKE_INSTALL_MANDIR})
|
||||
else(WITH_DOC)
|
||||
add_custom_target(doc DEPENDS doc-html doc-man COMMENT "Building documentation...")
|
||||
endif(WITH_DOC)
|
||||
@@ -39,9 +42,6 @@ if(SPHINX_FOUND)
|
||||
add_custom_target(doc-pdf $(MAKE) -C ${SPHINX_PDF_DIR} all-pdf
|
||||
DEPENDS doc-latex )
|
||||
add_dependencies(doc doc-pdf)
|
||||
if (WITH_DOC)
|
||||
install(DIRECTORY ${SPHINX_PDF_DIR} DESTINATION ${CMAKE_INSTALL_DOCDIR})
|
||||
endif (WITH_DOC)
|
||||
endif(PDFLATEX_FOUND)
|
||||
if (EXISTS ${QT_QCOLLECTIONGENERATOR_EXECUTABLE})
|
||||
add_custom_target( doc-qch-sphinx ${SPHINX_EXECUTABLE}
|
||||
@@ -53,9 +53,6 @@ if(SPHINX_FOUND)
|
||||
${SPHINX_QCH_DIR}/*.qhcp
|
||||
DEPENDS doc-qch-sphinx )
|
||||
add_dependencies(doc doc-qch)
|
||||
if (WITH_DOC)
|
||||
install(DIRECTORY ${SPHINX_QCH_DIR} DESTINATION ${CMAKE_INSTALL_DOCDIR})
|
||||
endif (WITH_DOC)
|
||||
endif()
|
||||
add_custom_target( doc-html ${SPHINX_EXECUTABLE}
|
||||
-q -c . -b html
|
||||
|
||||
@@ -134,3 +134,25 @@ log line contains a lot of information of every request and it's result.
|
||||
More information about the apache logging can be found at
|
||||
``http://httpd.apache.org/docs/current/logs.html``.
|
||||
|
||||
Core Dumps
|
||||
----------
|
||||
|
||||
In case of crashes of the client software, having a core dump helps to
|
||||
debug the issue tremendously.
|
||||
|
||||
The client is able to write a core dump in case of crashing on Linux and
|
||||
MacOSX. To enable that, the environment variable ``OWNCLOUD_CORE_DUMP`` has
|
||||
to be defined.
|
||||
|
||||
For example
|
||||
|
||||
```
|
||||
OWNCLOUD_CORE_DUMP=1 owncloud
|
||||
```
|
||||
|
||||
starts the client with core dumping enabled. Core dumps appear in the
|
||||
current working directory, and since they can be fairly large, it is
|
||||
important to have plenty of disk space when running with dumps enabled.
|
||||
|
||||
If a core dump file should be transfered back to the developers it
|
||||
should be compressed properly before.
|
||||
|
||||
2
src/3rdparty/qtlockedfile/README.txt
vendored
2
src/3rdparty/qtlockedfile/README.txt
vendored
@@ -1,5 +1,5 @@
|
||||
This is the src directory of the QtLockedFile
|
||||
solution integrated over from Qt's Qt Creator.
|
||||
solution integrated over from Qt's Qt Creator.
|
||||
|
||||
It is required by the QtSingleApplication solution.
|
||||
|
||||
|
||||
41
src/3rdparty/qtlockedfile/qtlockedfile.cpp
vendored
41
src/3rdparty/qtlockedfile/qtlockedfile.cpp
vendored
@@ -1,32 +1,31 @@
|
||||
/**************************************************************************
|
||||
/****************************************************************************
|
||||
**
|
||||
** This file is part of Qt Creator
|
||||
** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** Copyright (c) 2012 Nokia Corporation and/or its subsidiary(-ies).
|
||||
**
|
||||
** Contact: http://www.qt-project.org/
|
||||
** This file is part of Qt Creator.
|
||||
**
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** This file may be used under the terms of the GNU Lesser General Public
|
||||
** License version 2.1 as published by the Free Software Foundation and
|
||||
** appearing in the file LICENSE.LGPL included in the packaging of this file.
|
||||
** Please review the following information to ensure the GNU Lesser General
|
||||
** Public License version 2.1 requirements will be met:
|
||||
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Nokia gives you certain additional
|
||||
** rights. These rights are described in the Nokia Qt LGPL Exception
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** Other Usage
|
||||
**
|
||||
** Alternatively, this file may be used in accordance with the terms and
|
||||
** conditions contained in a signed written agreement between you and Nokia.
|
||||
**
|
||||
**
|
||||
**************************************************************************/
|
||||
****************************************************************************/
|
||||
|
||||
#include "qtlockedfile.h"
|
||||
|
||||
|
||||
41
src/3rdparty/qtlockedfile/qtlockedfile.h
vendored
41
src/3rdparty/qtlockedfile/qtlockedfile.h
vendored
@@ -1,32 +1,31 @@
|
||||
/**************************************************************************
|
||||
/****************************************************************************
|
||||
**
|
||||
** This file is part of Qt Creator
|
||||
** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** Copyright (c) 2012 Nokia Corporation and/or its subsidiary(-ies).
|
||||
**
|
||||
** Contact: http://www.qt-project.org/
|
||||
** This file is part of Qt Creator.
|
||||
**
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** This file may be used under the terms of the GNU Lesser General Public
|
||||
** License version 2.1 as published by the Free Software Foundation and
|
||||
** appearing in the file LICENSE.LGPL included in the packaging of this file.
|
||||
** Please review the following information to ensure the GNU Lesser General
|
||||
** Public License version 2.1 requirements will be met:
|
||||
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Nokia gives you certain additional
|
||||
** rights. These rights are described in the Nokia Qt LGPL Exception
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** Other Usage
|
||||
**
|
||||
** Alternatively, this file may be used in accordance with the terms and
|
||||
** conditions contained in a signed written agreement between you and Nokia.
|
||||
**
|
||||
**
|
||||
**************************************************************************/
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef QTLOCKEDFILE_H
|
||||
#define QTLOCKEDFILE_H
|
||||
|
||||
11
src/3rdparty/qtlockedfile/qtlockedfile.pri
vendored
Normal file
11
src/3rdparty/qtlockedfile/qtlockedfile.pri
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
INCLUDEPATH += $$PWD
|
||||
DEPENDPATH += $$PWD
|
||||
HEADERS += $$PWD/qtlockedfile.h
|
||||
SOURCES += $$PWD/qtlockedfile.cpp
|
||||
|
||||
unix:SOURCES += $$PWD/qtlockedfile_unix.cpp
|
||||
win32:SOURCES += $$PWD/qtlockedfile_win.cpp
|
||||
|
||||
win32:contains(TEMPLATE, lib):contains(CONFIG, shared) {
|
||||
DEFINES += QT_QTLOCKEDFILE_EXPORT=__declspec(dllexport)
|
||||
}
|
||||
42
src/3rdparty/qtlockedfile/qtlockedfile_unix.cpp
vendored
42
src/3rdparty/qtlockedfile/qtlockedfile_unix.cpp
vendored
@@ -1,32 +1,31 @@
|
||||
/**************************************************************************
|
||||
/****************************************************************************
|
||||
**
|
||||
** This file is part of Qt Creator
|
||||
** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** Copyright (c) 2012 Nokia Corporation and/or its subsidiary(-ies).
|
||||
**
|
||||
** Contact: http://www.qt-project.org/
|
||||
** This file is part of Qt Creator.
|
||||
**
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** This file may be used under the terms of the GNU Lesser General Public
|
||||
** License version 2.1 as published by the Free Software Foundation and
|
||||
** appearing in the file LICENSE.LGPL included in the packaging of this file.
|
||||
** Please review the following information to ensure the GNU Lesser General
|
||||
** Public License version 2.1 requirements will be met:
|
||||
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Nokia gives you certain additional
|
||||
** rights. These rights are described in the Nokia Qt LGPL Exception
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** Other Usage
|
||||
**
|
||||
** Alternatively, this file may be used in accordance with the terms and
|
||||
** conditions contained in a signed written agreement between you and Nokia.
|
||||
**
|
||||
**
|
||||
**************************************************************************/
|
||||
****************************************************************************/
|
||||
|
||||
#include "qtlockedfile.h"
|
||||
|
||||
@@ -96,6 +95,7 @@ bool QtLockedFile::unlock()
|
||||
}
|
||||
|
||||
m_lock_mode = NoLock;
|
||||
remove();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
44
src/3rdparty/qtlockedfile/qtlockedfile_win.cpp
vendored
44
src/3rdparty/qtlockedfile/qtlockedfile_win.cpp
vendored
@@ -1,32 +1,31 @@
|
||||
/**************************************************************************
|
||||
/****************************************************************************
|
||||
**
|
||||
** This file is part of Qt Creator
|
||||
** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** Copyright (c) 2012 Nokia Corporation and/or its subsidiary(-ies).
|
||||
**
|
||||
** Contact: http://www.qt-project.org/
|
||||
** This file is part of Qt Creator.
|
||||
**
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** This file may be used under the terms of the GNU Lesser General Public
|
||||
** License version 2.1 as published by the Free Software Foundation and
|
||||
** appearing in the file LICENSE.LGPL included in the packaging of this file.
|
||||
** Please review the following information to ensure the GNU Lesser General
|
||||
** Public License version 2.1 requirements will be met:
|
||||
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Nokia gives you certain additional
|
||||
** rights. These rights are described in the Nokia Qt LGPL Exception
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** Other Usage
|
||||
**
|
||||
** Alternatively, this file may be used in accordance with the terms and
|
||||
** conditions contained in a signed written agreement between you and Nokia.
|
||||
**
|
||||
**
|
||||
**************************************************************************/
|
||||
****************************************************************************/
|
||||
|
||||
#include "qtlockedfile.h"
|
||||
|
||||
@@ -50,7 +49,7 @@ static QString errorCodeToString(DWORD errorCode)
|
||||
if (data != 0)
|
||||
LocalFree(data);
|
||||
|
||||
if (result.endsWith('\n'))
|
||||
if (result.endsWith(QLatin1Char('\n')))
|
||||
result.truncate(result.length() - 1);
|
||||
|
||||
return result;
|
||||
@@ -168,6 +167,7 @@ bool QtLockedFile::unlock()
|
||||
}
|
||||
|
||||
m_lock_mode = QtLockedFile::NoLock;
|
||||
remove();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
2
src/3rdparty/qtsingleapplication/README.txt
vendored
2
src/3rdparty/qtsingleapplication/README.txt
vendored
@@ -1,5 +1,5 @@
|
||||
This is the src directory of the QtSingleApplication solution
|
||||
integrated over from Qt's Qt Creator project.
|
||||
integrated over from Qt's Qt Creator project.
|
||||
|
||||
It additionally requires the QtLockedFile solution.
|
||||
|
||||
|
||||
102
src/3rdparty/qtsingleapplication/qtlocalpeer.cpp
vendored
102
src/3rdparty/qtsingleapplication/qtlocalpeer.cpp
vendored
@@ -1,32 +1,31 @@
|
||||
/**************************************************************************
|
||||
/****************************************************************************
|
||||
**
|
||||
** This file is part of Qt Creator
|
||||
** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** Copyright (c) 2012 Nokia Corporation and/or its subsidiary(-ies).
|
||||
**
|
||||
** Contact: http://www.qt-project.org/
|
||||
** This file is part of Qt Creator.
|
||||
**
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** This file may be used under the terms of the GNU Lesser General Public
|
||||
** License version 2.1 as published by the Free Software Foundation and
|
||||
** appearing in the file LICENSE.LGPL included in the packaging of this file.
|
||||
** Please review the following information to ensure the GNU Lesser General
|
||||
** Public License version 2.1 requirements will be met:
|
||||
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Nokia gives you certain additional
|
||||
** rights. These rights are described in the Nokia Qt LGPL Exception
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** Other Usage
|
||||
**
|
||||
** Alternatively, this file may be used in accordance with the terms and
|
||||
** conditions contained in a signed written agreement between you and Nokia.
|
||||
**
|
||||
**
|
||||
**************************************************************************/
|
||||
****************************************************************************/
|
||||
|
||||
#include "qtlocalpeer.h"
|
||||
|
||||
@@ -47,7 +46,31 @@ static PProcessIdToSessionId pProcessIdToSessionId = 0;
|
||||
|
||||
namespace SharedTools {
|
||||
|
||||
const char *QtLocalPeer::ack = "ack";
|
||||
static const char ack[] = "ack";
|
||||
|
||||
QString QtLocalPeer::appSessionId(const QString &appId)
|
||||
{
|
||||
QByteArray idc = appId.toUtf8();
|
||||
quint16 idNum = qChecksum(idc.constData(), idc.size());
|
||||
//### could do: two 16bit checksums over separate halves of id, for a 32bit result - improved uniqeness probability. Every-other-char split would be best.
|
||||
|
||||
QString res = QLatin1String("qtsingleapplication-")
|
||||
+ QString::number(idNum, 16);
|
||||
#if defined(Q_OS_WIN)
|
||||
if (!pProcessIdToSessionId) {
|
||||
QLibrary lib(QLatin1String("kernel32"));
|
||||
pProcessIdToSessionId = (PProcessIdToSessionId)lib.resolve("ProcessIdToSessionId");
|
||||
}
|
||||
if (pProcessIdToSessionId) {
|
||||
DWORD sessionId = 0;
|
||||
pProcessIdToSessionId(GetCurrentProcessId(), &sessionId);
|
||||
res += QLatin1Char('-') + QString::number(sessionId, 16);
|
||||
}
|
||||
#else
|
||||
res += QLatin1Char('-') + QString::number(::getuid(), 16);
|
||||
#endif
|
||||
return res;
|
||||
}
|
||||
|
||||
QtLocalPeer::QtLocalPeer(QObject *parent, const QString &appId)
|
||||
: QObject(parent), id(appId)
|
||||
@@ -55,26 +78,7 @@ QtLocalPeer::QtLocalPeer(QObject *parent, const QString &appId)
|
||||
if (id.isEmpty())
|
||||
id = QCoreApplication::applicationFilePath(); //### On win, check if this returns .../argv[0] without casefolding; .\MYAPP == .\myapp on Win
|
||||
|
||||
QByteArray idc = id.toUtf8();
|
||||
quint16 idNum = qChecksum(idc.constData(), idc.size());
|
||||
//### could do: two 16bit checksums over separate halves of id, for a 32bit result - improved uniqeness probability. Every-other-char split would be best.
|
||||
|
||||
socketName = QLatin1String("qtsingleapplication-")
|
||||
+ QString::number(idNum, 16);
|
||||
#if defined(Q_OS_WIN)
|
||||
if (!pProcessIdToSessionId) {
|
||||
QLibrary lib("kernel32");
|
||||
pProcessIdToSessionId = (PProcessIdToSessionId)lib.resolve("ProcessIdToSessionId");
|
||||
}
|
||||
if (pProcessIdToSessionId) {
|
||||
DWORD sessionId = 0;
|
||||
pProcessIdToSessionId(GetCurrentProcessId(), &sessionId);
|
||||
socketName += QLatin1Char('-') + QString::number(sessionId, 16);
|
||||
}
|
||||
#else
|
||||
socketName += QLatin1Char('-') + QString::number(::getuid(), 16);
|
||||
#endif
|
||||
|
||||
socketName = appSessionId(id);
|
||||
server = new QLocalServer(this);
|
||||
QString lockName = QDir(QDir::tempPath()).absolutePath()
|
||||
+ QLatin1Char('/') + socketName
|
||||
@@ -100,7 +104,7 @@ bool QtLocalPeer::isClient()
|
||||
return false;
|
||||
}
|
||||
|
||||
bool QtLocalPeer::sendMessage(const QString &message, int timeout)
|
||||
bool QtLocalPeer::sendMessage(const QString &message, int timeout, bool block)
|
||||
{
|
||||
if (!isClient())
|
||||
return false;
|
||||
@@ -130,6 +134,8 @@ bool QtLocalPeer::sendMessage(const QString &message, int timeout)
|
||||
bool res = socket.waitForBytesWritten(timeout);
|
||||
res &= socket.waitForReadyRead(timeout); // wait for ack
|
||||
res &= (socket.read(qstrlen(ack)) == ack);
|
||||
if (block) // block until peer disconnects
|
||||
socket.waitForDisconnected(-1);
|
||||
return res;
|
||||
}
|
||||
|
||||
@@ -140,8 +146,11 @@ void QtLocalPeer::receiveConnection()
|
||||
return;
|
||||
|
||||
// Why doesn't Qt have a blocking stream that takes care of this shait???
|
||||
while (socket->bytesAvailable() < static_cast<int>(sizeof(quint32)))
|
||||
socket->waitForReadyRead();
|
||||
while (socket->bytesAvailable() < static_cast<int>(sizeof(quint32))) {
|
||||
if (!socket->isValid()) // stale request
|
||||
return;
|
||||
socket->waitForReadyRead(1000);
|
||||
}
|
||||
QDataStream ds(socket);
|
||||
QByteArray uMsg;
|
||||
quint32 remaining;
|
||||
@@ -166,8 +175,7 @@ void QtLocalPeer::receiveConnection()
|
||||
QString message = QString::fromUtf8(uMsg.constData(), uMsg.size());
|
||||
socket->write(ack, qstrlen(ack));
|
||||
socket->waitForBytesWritten(1000);
|
||||
delete socket;
|
||||
emit messageReceived(message); // ##(might take a long time to return)
|
||||
emit messageReceived(message, socket); // ##(might take a long time to return)
|
||||
}
|
||||
|
||||
} // namespace SharedTools
|
||||
|
||||
51
src/3rdparty/qtsingleapplication/qtlocalpeer.h
vendored
51
src/3rdparty/qtsingleapplication/qtlocalpeer.h
vendored
@@ -1,34 +1,33 @@
|
||||
/**************************************************************************
|
||||
/****************************************************************************
|
||||
**
|
||||
** This file is part of Qt Creator
|
||||
** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** Copyright (c) 2012 Nokia Corporation and/or its subsidiary(-ies).
|
||||
**
|
||||
** Contact: http://www.qt-project.org/
|
||||
** This file is part of Qt Creator.
|
||||
**
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** This file may be used under the terms of the GNU Lesser General Public
|
||||
** License version 2.1 as published by the Free Software Foundation and
|
||||
** appearing in the file LICENSE.LGPL included in the packaging of this file.
|
||||
** Please review the following information to ensure the GNU Lesser General
|
||||
** Public License version 2.1 requirements will be met:
|
||||
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Nokia gives you certain additional
|
||||
** rights. These rights are described in the Nokia Qt LGPL Exception
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** Other Usage
|
||||
**
|
||||
** Alternatively, this file may be used in accordance with the terms and
|
||||
** conditions contained in a signed written agreement between you and Nokia.
|
||||
**
|
||||
**
|
||||
**************************************************************************/
|
||||
****************************************************************************/
|
||||
|
||||
#include "qtlockedfile.h"
|
||||
#include <qtlockedfile.h>
|
||||
|
||||
#include <QLocalServer>
|
||||
#include <QLocalSocket>
|
||||
@@ -43,12 +42,13 @@ class QtLocalPeer : public QObject
|
||||
public:
|
||||
explicit QtLocalPeer(QObject *parent = 0, const QString &appId = QString());
|
||||
bool isClient();
|
||||
bool sendMessage(const QString &message, int timeout);
|
||||
bool sendMessage(const QString &message, int timeout, bool block);
|
||||
QString applicationId() const
|
||||
{ return id; }
|
||||
static QString appSessionId(const QString &appId);
|
||||
|
||||
Q_SIGNALS:
|
||||
void messageReceived(const QString &message);
|
||||
void messageReceived(const QString &message, QObject *socket);
|
||||
|
||||
protected Q_SLOTS:
|
||||
void receiveConnection();
|
||||
@@ -58,9 +58,6 @@ protected:
|
||||
QString socketName;
|
||||
QLocalServer* server;
|
||||
QtLockedFile lockFile;
|
||||
|
||||
private:
|
||||
static const char* ack;
|
||||
};
|
||||
|
||||
} // namespace SharedTools
|
||||
|
||||
@@ -1,96 +1,123 @@
|
||||
/**************************************************************************
|
||||
/****************************************************************************
|
||||
**
|
||||
** This file is part of Qt Creator
|
||||
** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** Copyright (c) 2012 Nokia Corporation and/or its subsidiary(-ies).
|
||||
**
|
||||
** Contact: http://www.qt-project.org/
|
||||
** This file is part of Qt Creator.
|
||||
**
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** This file may be used under the terms of the GNU Lesser General Public
|
||||
** License version 2.1 as published by the Free Software Foundation and
|
||||
** appearing in the file LICENSE.LGPL included in the packaging of this file.
|
||||
** Please review the following information to ensure the GNU Lesser General
|
||||
** Public License version 2.1 requirements will be met:
|
||||
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Nokia gives you certain additional
|
||||
** rights. These rights are described in the Nokia Qt LGPL Exception
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** Other Usage
|
||||
**
|
||||
** Alternatively, this file may be used in accordance with the terms and
|
||||
** conditions contained in a signed written agreement between you and Nokia.
|
||||
**
|
||||
**
|
||||
**************************************************************************/
|
||||
****************************************************************************/
|
||||
|
||||
#include "qtsingleapplication.h"
|
||||
#include "qtlocalpeer.h"
|
||||
|
||||
#include <QWidget>
|
||||
#include <qtlockedfile.h>
|
||||
|
||||
#include <QDir>
|
||||
#include <QFileOpenEvent>
|
||||
#include <QSharedMemory>
|
||||
#include <QWidget>
|
||||
|
||||
namespace SharedTools {
|
||||
|
||||
void QtSingleApplication::sysInit(const QString &appId)
|
||||
static const int instancesSize = 1024;
|
||||
|
||||
static QString instancesLockFilename(const QString &appSessionId)
|
||||
{
|
||||
actWin = 0;
|
||||
firstPeer = new QtLocalPeer(this, appId);
|
||||
connect(firstPeer, SIGNAL(messageReceived(QString)), SIGNAL(messageReceived(QString)));
|
||||
pidPeer = new QtLocalPeer(this, appId + QLatin1Char('-') + QString::number(QCoreApplication::applicationPid(), 10));
|
||||
connect(pidPeer, SIGNAL(messageReceived(QString)), SIGNAL(messageReceived(QString)));
|
||||
const QChar slash(QLatin1Char('/'));
|
||||
QString res = QDir::tempPath();
|
||||
if (!res.endsWith(slash))
|
||||
res += slash;
|
||||
return res + appSessionId + QLatin1String("-instances");
|
||||
}
|
||||
|
||||
|
||||
QtSingleApplication::QtSingleApplication(int &argc, char **argv, bool GUIenabled)
|
||||
: QApplication(argc, argv, GUIenabled)
|
||||
{
|
||||
sysInit();
|
||||
}
|
||||
|
||||
|
||||
QtSingleApplication::QtSingleApplication(const QString &appId, int &argc, char **argv)
|
||||
: QApplication(argc, argv)
|
||||
: QApplication(argc, argv),
|
||||
firstPeer(-1),
|
||||
pidPeer(0)
|
||||
{
|
||||
this->appId = appId;
|
||||
sysInit(appId);
|
||||
|
||||
const QString appSessionId = QtLocalPeer::appSessionId(appId);
|
||||
|
||||
// This shared memory holds a zero-terminated array of active (or crashed) instances
|
||||
instances = new QSharedMemory(appSessionId, this);
|
||||
actWin = 0;
|
||||
block = false;
|
||||
|
||||
// First instance creates the shared memory, later instances attach to it
|
||||
const bool created = instances->create(instancesSize);
|
||||
if (!created) {
|
||||
if (!instances->attach()) {
|
||||
qWarning() << "Failed to initialize instances shared memory: "
|
||||
<< instances->errorString();
|
||||
delete instances;
|
||||
instances = 0;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// QtLockedFile is used to workaround QTBUG-10364
|
||||
QtLockedFile lockfile(instancesLockFilename(appSessionId));
|
||||
|
||||
lockfile.open(QtLockedFile::ReadWrite);
|
||||
lockfile.lock(QtLockedFile::WriteLock);
|
||||
qint64 *pids = static_cast<qint64 *>(instances->data());
|
||||
if (!created) {
|
||||
// Find the first instance that it still running
|
||||
// The whole list needs to be iterated in order to append to it
|
||||
for (; *pids; ++pids) {
|
||||
if (firstPeer == -1 && isRunning(*pids))
|
||||
firstPeer = *pids;
|
||||
}
|
||||
}
|
||||
// Add current pid to list and terminate it
|
||||
*pids++ = QCoreApplication::applicationPid();
|
||||
*pids = 0;
|
||||
pidPeer = new QtLocalPeer(this, appId + QLatin1Char('-') +
|
||||
QString::number(QCoreApplication::applicationPid()));
|
||||
connect(pidPeer, SIGNAL(messageReceived(QString,QObject*)), SIGNAL(messageReceived(QString,QObject*)));
|
||||
pidPeer->isClient();
|
||||
lockfile.unlock();
|
||||
}
|
||||
|
||||
|
||||
#if QT_VERSION < QT_VERSION_CHECK(5, 0, 0)
|
||||
QtSingleApplication::QtSingleApplication(int &argc, char **argv, Type type)
|
||||
: QApplication(argc, argv, type)
|
||||
QtSingleApplication::~QtSingleApplication()
|
||||
{
|
||||
sysInit();
|
||||
if (!instances)
|
||||
return;
|
||||
const qint64 appPid = QCoreApplication::applicationPid();
|
||||
QtLockedFile lockfile(instancesLockFilename(QtLocalPeer::appSessionId(appId)));
|
||||
lockfile.open(QtLockedFile::ReadWrite);
|
||||
lockfile.lock(QtLockedFile::WriteLock);
|
||||
// Rewrite array, removing current pid and previously crashed ones
|
||||
qint64 *pids = static_cast<qint64 *>(instances->data());
|
||||
qint64 *newpids = pids;
|
||||
for (; *pids; ++pids) {
|
||||
if (*pids != appPid && isRunning(*pids))
|
||||
*newpids++ = *pids;
|
||||
}
|
||||
*newpids = 0;
|
||||
lockfile.unlock();
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(Q_WS_X11)
|
||||
QtSingleApplication::QtSingleApplication(Display* dpy, Qt::HANDLE visual, Qt::HANDLE colormap)
|
||||
: QApplication(dpy, visual, colormap)
|
||||
{
|
||||
sysInit();
|
||||
}
|
||||
|
||||
QtSingleApplication::QtSingleApplication(Display *dpy, int &argc, char **argv, Qt::HANDLE visual, Qt::HANDLE cmap)
|
||||
: QApplication(dpy, argc, argv, visual, cmap)
|
||||
{
|
||||
sysInit();
|
||||
}
|
||||
|
||||
QtSingleApplication::QtSingleApplication(Display* dpy, const QString &appId,
|
||||
int argc, char **argv, Qt::HANDLE visual, Qt::HANDLE colormap)
|
||||
: QApplication(dpy, argc, argv, visual, colormap)
|
||||
{
|
||||
this->appId = appId;
|
||||
sysInit(appId);
|
||||
}
|
||||
#endif
|
||||
|
||||
bool QtSingleApplication::event(QEvent *event)
|
||||
{
|
||||
@@ -104,31 +131,26 @@ bool QtSingleApplication::event(QEvent *event)
|
||||
|
||||
bool QtSingleApplication::isRunning(qint64 pid)
|
||||
{
|
||||
if (pid == -1)
|
||||
return firstPeer->isClient();
|
||||
if (pid == -1) {
|
||||
pid = firstPeer;
|
||||
if (pid == -1)
|
||||
return false;
|
||||
}
|
||||
|
||||
QtLocalPeer peer(this, appId + QLatin1Char('-') + QString::number(pid, 10));
|
||||
return peer.isClient();
|
||||
}
|
||||
|
||||
void QtSingleApplication::initialize(bool)
|
||||
{
|
||||
firstPeer->isClient();
|
||||
pidPeer->isClient();
|
||||
}
|
||||
|
||||
bool QtSingleApplication::sendMessage(const QString &message, int timeout, qint64 pid)
|
||||
{
|
||||
if (pid == -1)
|
||||
return firstPeer->sendMessage(message, timeout);
|
||||
if (pid == -1) {
|
||||
pid = firstPeer;
|
||||
if (pid == -1)
|
||||
return false;
|
||||
}
|
||||
|
||||
QtLocalPeer peer(this, appId + QLatin1Char('-') + QString::number(pid, 10));
|
||||
return peer.sendMessage(message, timeout);
|
||||
}
|
||||
|
||||
QString QtSingleApplication::id() const
|
||||
{
|
||||
return firstPeer->applicationId();
|
||||
return peer.sendMessage(message, timeout, block);
|
||||
}
|
||||
|
||||
QString QtSingleApplication::applicationId() const
|
||||
@@ -136,16 +158,20 @@ QString QtSingleApplication::applicationId() const
|
||||
return appId;
|
||||
}
|
||||
|
||||
void QtSingleApplication::setBlock(bool value)
|
||||
{
|
||||
block = value;
|
||||
}
|
||||
|
||||
void QtSingleApplication::setActivationWindow(QWidget *aw, bool activateOnMessage)
|
||||
{
|
||||
actWin = aw;
|
||||
if (activateOnMessage) {
|
||||
connect(firstPeer, SIGNAL(messageReceived(QString)), this, SLOT(activateWindow()));
|
||||
connect(pidPeer, SIGNAL(messageReceived(QString)), this, SLOT(activateWindow()));
|
||||
} else {
|
||||
disconnect(firstPeer, SIGNAL(messageReceived(QString)), this, SLOT(activateWindow()));
|
||||
disconnect(pidPeer, SIGNAL(messageReceived(QString)), this, SLOT(activateWindow()));
|
||||
}
|
||||
if (!pidPeer)
|
||||
return;
|
||||
if (activateOnMessage)
|
||||
connect(pidPeer, SIGNAL(messageReceived(QString,QObject*)), this, SLOT(activateWindow()));
|
||||
else
|
||||
disconnect(pidPeer, SIGNAL(messageReceived(QString,QObject*)), this, SLOT(activateWindow()));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,38 +1,39 @@
|
||||
/**************************************************************************
|
||||
/****************************************************************************
|
||||
**
|
||||
** This file is part of Qt Creator
|
||||
** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** Copyright (c) 2012 Nokia Corporation and/or its subsidiary(-ies).
|
||||
**
|
||||
** Contact: http://www.qt-project.org/
|
||||
** This file is part of Qt Creator.
|
||||
**
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** This file may be used under the terms of the GNU Lesser General Public
|
||||
** License version 2.1 as published by the Free Software Foundation and
|
||||
** appearing in the file LICENSE.LGPL included in the packaging of this file.
|
||||
** Please review the following information to ensure the GNU Lesser General
|
||||
** Public License version 2.1 requirements will be met:
|
||||
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Nokia gives you certain additional
|
||||
** rights. These rights are described in the Nokia Qt LGPL Exception
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** Other Usage
|
||||
**
|
||||
** Alternatively, this file may be used in accordance with the terms and
|
||||
** conditions contained in a signed written agreement between you and Nokia.
|
||||
**
|
||||
**
|
||||
**************************************************************************/
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef _SHAREDTOOLS_SINGLEAPPLICATION
|
||||
#define _SHAREDTOOLS_SINGLEAPPLICATION
|
||||
#ifndef QTSINGLEAPPLICATION_H
|
||||
#define QTSINGLEAPPLICATION_H
|
||||
|
||||
#include <QApplication>
|
||||
|
||||
QT_FORWARD_DECLARE_CLASS(QSharedMemory)
|
||||
|
||||
namespace SharedTools {
|
||||
|
||||
class QtLocalPeer;
|
||||
@@ -42,50 +43,37 @@ class QtSingleApplication : public QApplication
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
QtSingleApplication(int &argc, char **argv, bool GUIenabled = true);
|
||||
QtSingleApplication(const QString &id, int &argc, char **argv);
|
||||
#if QT_VERSION < QT_VERSION_CHECK(5, 0, 0)
|
||||
QtSingleApplication(int &argc, char **argv, Type type);
|
||||
#endif
|
||||
#if defined(Q_WS_X11)
|
||||
explicit QtSingleApplication(Display *dpy, Qt::HANDLE visual = 0, Qt::HANDLE colormap = 0);
|
||||
QtSingleApplication(Display *dpy, int &argc, char **argv, Qt::HANDLE visual = 0, Qt::HANDLE cmap = 0);
|
||||
#endif
|
||||
~QtSingleApplication();
|
||||
|
||||
bool isRunning(qint64 pid = -1);
|
||||
|
||||
QString id() const;
|
||||
|
||||
void setActivationWindow(QWidget* aw, bool activateOnMessage = true);
|
||||
QWidget* activationWindow() const;
|
||||
bool event(QEvent *event);
|
||||
|
||||
QString applicationId() const;
|
||||
void setBlock(bool value);
|
||||
|
||||
public Q_SLOTS:
|
||||
bool sendMessage(const QString &message, int timeout = 5000, qint64 pid = -1);
|
||||
void activateWindow();
|
||||
|
||||
//Obsolete methods:
|
||||
public:
|
||||
void initialize(bool = true);
|
||||
|
||||
#if defined(Q_WS_X11)
|
||||
QtSingleApplication(Display* dpy, const QString &id, int argc, char **argv, Qt::HANDLE visual = 0, Qt::HANDLE colormap = 0);
|
||||
#endif
|
||||
// end obsolete methods
|
||||
|
||||
Q_SIGNALS:
|
||||
void messageReceived(const QString &message);
|
||||
void messageReceived(const QString &message, QObject *socket);
|
||||
void fileOpenRequest(const QString &file);
|
||||
|
||||
private:
|
||||
void sysInit(const QString &appId = QString());
|
||||
QtLocalPeer *firstPeer;
|
||||
QString instancesFileName(const QString &appId);
|
||||
|
||||
qint64 firstPeer;
|
||||
QSharedMemory *instances;
|
||||
QtLocalPeer *pidPeer;
|
||||
QWidget *actWin;
|
||||
QString appId;
|
||||
bool block;
|
||||
};
|
||||
|
||||
} // namespace SharedTools
|
||||
#endif // _SHAREDTOOLS_SINGLEAPPLICATION
|
||||
|
||||
#endif // QTSINGLEAPPLICATION_H
|
||||
|
||||
15
src/3rdparty/qtsingleapplication/qtsingleapplication.pri
vendored
Normal file
15
src/3rdparty/qtsingleapplication/qtsingleapplication.pri
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
INCLUDEPATH += $$PWD
|
||||
DEPENDPATH += $$PWD
|
||||
HEADERS += $$PWD/qtsingleapplication.h $$PWD/qtlocalpeer.h
|
||||
SOURCES += $$PWD/qtsingleapplication.cpp $$PWD/qtlocalpeer.cpp
|
||||
|
||||
QT *= network
|
||||
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
|
||||
|
||||
gotqtlockedfile = $$find(HEADERS, .*qtlockedfile.h)
|
||||
isEmpty(gotqtlockedfile):include(../qtlockedfile/qtlockedfile.pri)
|
||||
|
||||
|
||||
win32:contains(TEMPLATE, lib):contains(CONFIG, shared) {
|
||||
DEFINES += QT_QTSINGLEAPPLICATION_EXPORT=__declspec(dllexport)
|
||||
}
|
||||
@@ -1,32 +1,31 @@
|
||||
/**************************************************************************
|
||||
/****************************************************************************
|
||||
**
|
||||
** This file is part of Qt Creator
|
||||
** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** Copyright (c) 2012 Nokia Corporation and/or its subsidiary(-ies).
|
||||
**
|
||||
** Contact: http://www.qt-project.org/
|
||||
** This file is part of Qt Creator.
|
||||
**
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** This file may be used under the terms of the GNU Lesser General Public
|
||||
** License version 2.1 as published by the Free Software Foundation and
|
||||
** appearing in the file LICENSE.LGPL included in the packaging of this file.
|
||||
** Please review the following information to ensure the GNU Lesser General
|
||||
** Public License version 2.1 requirements will be met:
|
||||
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Nokia gives you certain additional
|
||||
** rights. These rights are described in the Nokia Qt LGPL Exception
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** Other Usage
|
||||
**
|
||||
** Alternatively, this file may be used in accordance with the terms and
|
||||
** conditions contained in a signed written agreement between you and Nokia.
|
||||
**
|
||||
**
|
||||
**************************************************************************/
|
||||
****************************************************************************/
|
||||
|
||||
#include "qtsinglecoreapplication.h"
|
||||
#include "qtlocalpeer.h"
|
||||
@@ -37,6 +36,7 @@ QtSingleCoreApplication::QtSingleCoreApplication(int &argc, char **argv)
|
||||
: QCoreApplication(argc, argv)
|
||||
{
|
||||
peer = new QtLocalPeer(this);
|
||||
block = false;
|
||||
connect(peer, SIGNAL(messageReceived(QString)), SIGNAL(messageReceived(QString)));
|
||||
}
|
||||
|
||||
@@ -57,7 +57,7 @@ bool QtSingleCoreApplication::isRunning()
|
||||
|
||||
bool QtSingleCoreApplication::sendMessage(const QString &message, int timeout)
|
||||
{
|
||||
return peer->sendMessage(message, timeout);
|
||||
return peer->sendMessage(message, timeout, block);
|
||||
}
|
||||
|
||||
|
||||
@@ -66,4 +66,9 @@ QString QtSingleCoreApplication::id() const
|
||||
return peer->applicationId();
|
||||
}
|
||||
|
||||
void QtSingleCoreApplication::setBlock(bool value)
|
||||
{
|
||||
block = value;
|
||||
}
|
||||
|
||||
} // namespace SharedTools
|
||||
|
||||
@@ -1,32 +1,31 @@
|
||||
/**************************************************************************
|
||||
/****************************************************************************
|
||||
**
|
||||
** This file is part of Qt Creator
|
||||
** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** Copyright (c) 2012 Nokia Corporation and/or its subsidiary(-ies).
|
||||
**
|
||||
** Contact: http://www.qt-project.org/
|
||||
** This file is part of Qt Creator.
|
||||
**
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** This file may be used under the terms of the GNU Lesser General Public
|
||||
** License version 2.1 as published by the Free Software Foundation and
|
||||
** appearing in the file LICENSE.LGPL included in the packaging of this file.
|
||||
** Please review the following information to ensure the GNU Lesser General
|
||||
** Public License version 2.1 requirements will be met:
|
||||
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Nokia gives you certain additional
|
||||
** rights. These rights are described in the Nokia Qt LGPL Exception
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** Other Usage
|
||||
**
|
||||
** Alternatively, this file may be used in accordance with the terms and
|
||||
** conditions contained in a signed written agreement between you and Nokia.
|
||||
**
|
||||
**
|
||||
**************************************************************************/
|
||||
****************************************************************************/
|
||||
|
||||
#include <QCoreApplication>
|
||||
|
||||
@@ -44,6 +43,7 @@ public:
|
||||
|
||||
bool isRunning();
|
||||
QString id() const;
|
||||
void setBlock(bool value);
|
||||
|
||||
public Q_SLOTS:
|
||||
bool sendMessage(const QString &message, int timeout = 5000);
|
||||
@@ -55,6 +55,7 @@ Q_SIGNALS:
|
||||
|
||||
private:
|
||||
QtLocalPeer* peer;
|
||||
bool block;
|
||||
};
|
||||
|
||||
} // namespace SharedTools
|
||||
|
||||
14
src/3rdparty/qtsingleapplication/qtsinglecoreapplication.pri
vendored
Normal file
14
src/3rdparty/qtsingleapplication/qtsinglecoreapplication.pri
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
INCLUDEPATH += $$PWD
|
||||
DEPENDPATH += $$PWD
|
||||
HEADERS += $$PWD/qtsinglecoreapplication.h $$PWD/qtlocalpeer.h
|
||||
SOURCES += $$PWD/qtsinglecoreapplication.cpp $$PWD/qtlocalpeer.cpp
|
||||
|
||||
QT *= network
|
||||
|
||||
gotqtlockedfile = $$find(HEADERS, .*qtlockedfile.h)
|
||||
isEmpty(gotqtlockedfile):include(../qtlockedfile/qtlockedfile.pri)
|
||||
|
||||
|
||||
win32:contains(TEMPLATE, lib):contains(CONFIG, shared) {
|
||||
DEFINES += QT_QTSINGLECOREAPPLICATION_EXPORT=__declspec(dllexport)
|
||||
}
|
||||
@@ -1,4 +1,5 @@
|
||||
set(CMAKE_AUTOMOC TRUE)
|
||||
include(GenerateExportHeader)
|
||||
|
||||
include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR})
|
||||
|
||||
@@ -103,6 +104,7 @@ set(libsync_SRCS
|
||||
mirall/quotainfo.cpp
|
||||
mirall/clientproxy.cpp
|
||||
mirall/syncrunfilelog.cpp
|
||||
mirall/cookiejar.cpp
|
||||
creds/dummycredentials.cpp
|
||||
creds/abstractcredentials.cpp
|
||||
creds/credentialsfactory.cpp
|
||||
@@ -120,11 +122,8 @@ else()
|
||||
${libsync_SRCS}
|
||||
creds/httpcredentials.cpp
|
||||
creds/shibbolethcredentials.cpp
|
||||
creds/shibboleth/shibbolethaccessmanager.cpp
|
||||
creds/shibboleth/shibbolethcookiejar.cpp
|
||||
creds/shibboleth/shibbolethwebview.cpp
|
||||
creds/shibboleth/shibbolethrefresher.cpp
|
||||
creds/shibboleth/shibbolethconfigfile.cpp
|
||||
creds/shibboleth/authenticationdialog.cpp
|
||||
creds/shibboleth/shibbolethuserjob.cpp
|
||||
)
|
||||
@@ -195,6 +194,14 @@ if(NEON_FOUND)
|
||||
endif()
|
||||
|
||||
add_library(${synclib_NAME} SHARED ${libsync_SRCS} ${syncMoc})
|
||||
GENERATE_EXPORT_HEADER( ${synclib_NAME}
|
||||
BASE_NAME ${synclib_NAME}
|
||||
EXPORT_MACRO_NAME OWNCLOUDSYNC_EXPORT
|
||||
EXPORT_FILE_NAME owncloudlib.h
|
||||
STATIC_DEFINE OWNCLOUD_BUILT_AS_STATIC
|
||||
)
|
||||
|
||||
|
||||
if(TOKEN_AUTH_ONLY)
|
||||
qt5_use_modules(${synclib_NAME} Network Xml Sql)
|
||||
else()
|
||||
|
||||
@@ -141,7 +141,11 @@ void HttpCredentials::syncContextPreStart (CSYNC* ctx)
|
||||
|
||||
bool HttpCredentials::changed(AbstractCredentials* credentials) const
|
||||
{
|
||||
HttpCredentials* other(dynamic_cast< HttpCredentials* >(credentials));
|
||||
HttpCredentials* other(qobject_cast< HttpCredentials* >(credentials));
|
||||
|
||||
if (!other) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!other || (other->user() != this->user())) {
|
||||
return true;
|
||||
|
||||
@@ -1,55 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) by Krzesimir Nowak <krzesimir@endocode.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; version 2 of the License.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* for more details.
|
||||
*/
|
||||
|
||||
#include <QDebug>
|
||||
#include <QNetworkRequest>
|
||||
#include <QNetworkCookieJar>
|
||||
|
||||
#include "creds/shibboleth/shibbolethaccessmanager.h"
|
||||
|
||||
namespace Mirall
|
||||
{
|
||||
|
||||
ShibbolethAccessManager::ShibbolethAccessManager(const QNetworkCookie& cookie, QObject* parent)
|
||||
: MirallAccessManager (parent),
|
||||
_cookie(cookie)
|
||||
{}
|
||||
|
||||
QNetworkReply* ShibbolethAccessManager::createRequest(QNetworkAccessManager::Operation op, const QNetworkRequest& request, QIODevice* outgoingData)
|
||||
{
|
||||
if (!_cookie.name().isEmpty()) {
|
||||
QNetworkCookieJar* jar(cookieJar());
|
||||
QUrl url(request.url());
|
||||
QList<QNetworkCookie> cookies;
|
||||
Q_FOREACH(const QNetworkCookie& cookie, jar->cookiesForUrl(url)) {
|
||||
if (!cookie.name().startsWith("_shibsession_")) {
|
||||
cookies << cookie;
|
||||
}
|
||||
}
|
||||
|
||||
cookies << _cookie; // this line and the line above replace all cookies with self and then add the shibboleth cookie (filtering the current shib cookie)
|
||||
jar->setCookiesFromUrl(cookies, url);
|
||||
}
|
||||
|
||||
qDebug() << "Creating a request to " << request.url().toString() << " with shibboleth cookie:" << _cookie.name();
|
||||
|
||||
return MirallAccessManager::createRequest (op, request, outgoingData);
|
||||
}
|
||||
|
||||
void ShibbolethAccessManager::setCookie(const QNetworkCookie& cookie)
|
||||
{
|
||||
qDebug() << "Got new shibboleth cookie:" << cookie.name();
|
||||
_cookie = cookie;
|
||||
}
|
||||
|
||||
} // ns Mirall
|
||||
@@ -1,43 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) by Krzesimir Nowak <krzesimir@endocode.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; version 2 of the License.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* for more details.
|
||||
*/
|
||||
|
||||
#ifndef MIRALL_WIZARD_SHIBBOLETH_ACCESS_MANAGER_H
|
||||
#define MIRALL_WIZARD_SHIBBOLETH_ACCESS_MANAGER_H
|
||||
|
||||
#include <QNetworkCookie>
|
||||
|
||||
#include "mirall/mirallaccessmanager.h"
|
||||
|
||||
namespace Mirall
|
||||
{
|
||||
|
||||
class ShibbolethAccessManager : public MirallAccessManager
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
ShibbolethAccessManager(const QNetworkCookie& cookie, QObject* parent = 0);
|
||||
|
||||
public Q_SLOTS:
|
||||
void setCookie(const QNetworkCookie& cookie);
|
||||
|
||||
protected:
|
||||
QNetworkReply* createRequest(QNetworkAccessManager::Operation op, const QNetworkRequest& request, QIODevice* outgoingData = 0);
|
||||
|
||||
private:
|
||||
QNetworkCookie _cookie;
|
||||
};
|
||||
|
||||
} // ns Mirall
|
||||
|
||||
#endif
|
||||
@@ -1,104 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) by Krzesimir Nowak <krzesimir@endocode.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; version 2 of the License.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* for more details.
|
||||
*/
|
||||
|
||||
#include <QDebug>
|
||||
#include <QTextStream>
|
||||
|
||||
#include "creds/shibboleth/shibbolethconfigfile.h"
|
||||
#include "creds/shibboleth/shibbolethcookiejar.h"
|
||||
|
||||
namespace Mirall
|
||||
{
|
||||
|
||||
namespace
|
||||
{
|
||||
|
||||
const char otherCookiesC[] = "otherCookies";
|
||||
|
||||
} // ns
|
||||
|
||||
void ShibbolethConfigFile::storeCookies(const QMap<QUrl, QList<QNetworkCookie> >& cookiesForUrl)
|
||||
{
|
||||
if (cookiesForUrl.isEmpty()) {
|
||||
removeData(QString(), QString::fromLatin1(otherCookiesC));
|
||||
} else {
|
||||
QByteArray data;
|
||||
QTextStream stream(&data);
|
||||
|
||||
Q_FOREACH (const QUrl& url, cookiesForUrl.keys()) {
|
||||
const QList<QNetworkCookie>& cookies(cookiesForUrl[url]);
|
||||
|
||||
if (cookies.isEmpty()) {
|
||||
continue;
|
||||
}
|
||||
stream << "URL: " << url.toString().toUtf8() << "\n";
|
||||
qDebug() << "URL: " << url.toString().toUtf8();
|
||||
|
||||
Q_FOREACH (const QNetworkCookie& cookie, cookies) {
|
||||
stream << cookie.toRawForm(QNetworkCookie::NameAndValueOnly) << "\n";
|
||||
qDebug() << cookie.toRawForm(QNetworkCookie::NameAndValueOnly);
|
||||
}
|
||||
}
|
||||
|
||||
stream.flush();
|
||||
|
||||
const QByteArray encodedCookies(data.toBase64());
|
||||
|
||||
qDebug() << "Raw cookies:\n" << data;
|
||||
qDebug() << "Encoded cookies: " << encodedCookies;
|
||||
|
||||
storeData(QString(), QString::fromLatin1(otherCookiesC), QVariant(encodedCookies));
|
||||
}
|
||||
}
|
||||
|
||||
ShibbolethCookieJar* ShibbolethConfigFile::createCookieJar() const
|
||||
{
|
||||
ShibbolethCookieJar* jar = new ShibbolethCookieJar();
|
||||
const QVariant variant(retrieveData(QString(), QString::fromLatin1(otherCookiesC)));
|
||||
|
||||
if (variant.isValid()) {
|
||||
QByteArray data(QByteArray::fromBase64(variant.toByteArray()));
|
||||
QTextStream stream (&data);
|
||||
const QString urlHeader(QString::fromLatin1("URL: "));
|
||||
QUrl currentUrl;
|
||||
QList<QNetworkCookie> currentCookies;
|
||||
|
||||
qDebug() << "Got valid cookies variant: " << data;
|
||||
|
||||
while (!stream.atEnd()) {
|
||||
const QString line(stream.readLine());
|
||||
|
||||
qDebug() << line;
|
||||
|
||||
if (line.startsWith(urlHeader)) {
|
||||
if (!currentUrl.isEmpty() && !currentCookies.isEmpty()) {
|
||||
jar->setCookiesFromUrl(currentCookies, currentUrl);
|
||||
currentCookies.clear();
|
||||
currentUrl.clear();
|
||||
}
|
||||
currentUrl = QUrl(line.mid(5));
|
||||
} else if (!currentUrl.isEmpty()) {
|
||||
const int equalPos(line.indexOf('='));
|
||||
|
||||
currentCookies << QNetworkCookie(line.left(equalPos).toUtf8(), line.mid(equalPos + 1).toUtf8());
|
||||
}
|
||||
}
|
||||
if (!currentUrl.isEmpty() && !currentCookies.isEmpty()) {
|
||||
jar->setCookiesFromUrl(currentCookies, currentUrl);
|
||||
}
|
||||
}
|
||||
|
||||
return jar;
|
||||
}
|
||||
|
||||
} // ns Mirall
|
||||
@@ -1,38 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) by Krzesimir Nowak <krzesimir@endocode.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; version 2 of the License.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* for more details.
|
||||
*/
|
||||
|
||||
#ifndef MIRALL_CREDS_SHIBBOLETH_CONFIG_FILE_H
|
||||
#define MIRALL_CREDS_SHIBBOLETH_CONFIG_FILE_H
|
||||
|
||||
#include <QList>
|
||||
#include <QMap>
|
||||
#include <QNetworkCookie>
|
||||
#include <QUrl>
|
||||
|
||||
#include "mirall/mirallconfigfile.h"
|
||||
|
||||
namespace Mirall
|
||||
{
|
||||
|
||||
class ShibbolethCookieJar;
|
||||
|
||||
class ShibbolethConfigFile : public MirallConfigFile
|
||||
{
|
||||
public:
|
||||
void storeCookies(const QMap<QUrl, QList<QNetworkCookie> >& cookies);
|
||||
ShibbolethCookieJar* createCookieJar() const;
|
||||
};
|
||||
|
||||
} // ns Mirall
|
||||
|
||||
#endif
|
||||
@@ -1,34 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) by Krzesimir Nowak <krzesimir@endocode.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; version 2 of the License.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* for more details.
|
||||
*/
|
||||
|
||||
#include "creds/shibboleth/shibbolethcookiejar.h"
|
||||
|
||||
namespace Mirall
|
||||
{
|
||||
|
||||
ShibbolethCookieJar::ShibbolethCookieJar (QObject* parent)
|
||||
: QNetworkCookieJar (parent)
|
||||
{}
|
||||
|
||||
bool ShibbolethCookieJar::setCookiesFromUrl (const QList<QNetworkCookie>& cookieList, const QUrl& url)
|
||||
{
|
||||
if (QNetworkCookieJar::setCookiesFromUrl (cookieList, url)) {
|
||||
Q_EMIT newCookiesForUrl (cookieList, url);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
} // ns Mirall
|
||||
@@ -1,41 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) by Krzesimir Nowak <krzesimir@endocode.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; version 2 of the License.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* for more details.
|
||||
*/
|
||||
|
||||
#ifndef MIRALL_WIZARD_SHIBBOLETH_COOKIE_JAR_H
|
||||
#define MIRALL_WIZARD_SHIBBOLETH_COOKIE_JAR_H
|
||||
|
||||
#include <QNetworkCookieJar>
|
||||
#include <QList>
|
||||
|
||||
class QUrl;
|
||||
class QNetworkCookie;
|
||||
|
||||
namespace Mirall
|
||||
{
|
||||
|
||||
class ShibbolethCookieJar : public QNetworkCookieJar
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
ShibbolethCookieJar (QObject* parent = 0);
|
||||
|
||||
virtual bool setCookiesFromUrl (const QList<QNetworkCookie>& cookieList, const QUrl& url);
|
||||
|
||||
Q_SIGNALS:
|
||||
void newCookiesForUrl (const QList<QNetworkCookie>& cookieList, const QUrl& url);
|
||||
};
|
||||
|
||||
} // ns Mirall
|
||||
|
||||
#endif
|
||||
@@ -47,7 +47,7 @@ bool ShibbolethUserJob::finished()
|
||||
}
|
||||
|
||||
QString user = json.value("ocs").toMap().value("data").toMap().value("id").toString();
|
||||
qDebug() << "cloud/user: " << json << "->" << user;
|
||||
//qDebug() << "cloud/user: " << json << "->" << user;
|
||||
emit userFetched(user);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -14,54 +14,53 @@
|
||||
#include <QApplication>
|
||||
#include <QDebug>
|
||||
#include <QNetworkCookie>
|
||||
#include <QNetworkCookieJar>
|
||||
#include <QWebFrame>
|
||||
#include <QWebPage>
|
||||
#include <QMessageBox>
|
||||
#include <QAuthenticator>
|
||||
#include <QNetworkReply>
|
||||
|
||||
#include "creds/shibboleth/shibbolethcookiejar.h"
|
||||
#include "creds/shibboleth/shibbolethwebview.h"
|
||||
#include "creds/shibboleth/authenticationdialog.h"
|
||||
#include "creds/shibboleth/shibbolethwebview.h"
|
||||
#include "creds/shibbolethcredentials.h"
|
||||
#include "mirall/account.h"
|
||||
#include "mirall/logger.h"
|
||||
#include "mirall/mirallaccessmanager.h"
|
||||
#include "mirall/theme.h"
|
||||
|
||||
namespace Mirall
|
||||
{
|
||||
|
||||
void ShibbolethWebView::setup(Account *account, ShibbolethCookieJar* jar)
|
||||
ShibbolethWebView::ShibbolethWebView(Account* account, QWidget* parent)
|
||||
: QWebView(parent)
|
||||
, _account(account)
|
||||
, _accepted(false)
|
||||
{
|
||||
_account = account;
|
||||
MirallAccessManager* nm = new MirallAccessManager(this);
|
||||
// we need our own QNAM, but the we offload the SSL error handling to
|
||||
// the account object, which already can do this
|
||||
connect(nm, SIGNAL(sslErrors(QNetworkReply*,QList<QSslError>)),
|
||||
account, SLOT(slotHandleErrors(QNetworkReply*,QList<QSslError>)));
|
||||
connect(nm, SIGNAL(authenticationRequired(QNetworkReply*,QAuthenticator*)),
|
||||
SLOT(slotHandleAuthentication(QNetworkReply*,QAuthenticator*)));
|
||||
|
||||
// no minimize
|
||||
setWindowFlags(Qt::Dialog);
|
||||
setAttribute(Qt::WA_DeleteOnClose);
|
||||
QWebPage* page = new QWebPage(this);
|
||||
|
||||
jar->setParent(this);
|
||||
connect(jar, SIGNAL (newCookiesForUrl (QList<QNetworkCookie>, QUrl)),
|
||||
this, SLOT (onNewCookiesForUrl (QList<QNetworkCookie>, QUrl)));
|
||||
page->setNetworkAccessManager(account->networkAccessManager());
|
||||
connect(page, SIGNAL(loadStarted()),
|
||||
this, SLOT(slotLoadStarted()));
|
||||
connect(page, SIGNAL(loadFinished(bool)),
|
||||
this, SLOT(slotLoadFinished(bool)));
|
||||
|
||||
nm->setCookieJar(jar);
|
||||
page->setNetworkAccessManager(nm);
|
||||
|
||||
connect(page->networkAccessManager()->cookieJar(),
|
||||
SIGNAL(newCookiesForUrl (QList<QNetworkCookie>, QUrl)),
|
||||
this, SLOT(onNewCookiesForUrl (QList<QNetworkCookie>, QUrl)));
|
||||
page->mainFrame()->load(account->url());
|
||||
this->setPage(page);
|
||||
setWindowTitle(tr("%1 - Authenticate").arg(Theme::instance()->appNameGUI()));
|
||||
}
|
||||
|
||||
ShibbolethWebView::ShibbolethWebView(Account* account, QWidget* parent)
|
||||
: QWebView(parent)
|
||||
{
|
||||
setup(account, new ShibbolethCookieJar(this));
|
||||
// If we have a valid cookie, it's most likely expired. We can use this as
|
||||
// as a criteria to tell the user why the browser window pops up
|
||||
QNetworkCookie shibCookie = ShibbolethCredentials::findShibCookie(_account, ShibbolethCredentials::accountCookies(_account));
|
||||
if (shibCookie != QNetworkCookie()) {
|
||||
Logger::instance()->postOptionalGuiLog(tr("Reauthentication required"), tr("Your session has expired. You need to re-login to continue to use the client."));
|
||||
}
|
||||
}
|
||||
|
||||
ShibbolethWebView::~ShibbolethWebView()
|
||||
@@ -69,41 +68,24 @@ ShibbolethWebView::~ShibbolethWebView()
|
||||
slotLoadFinished();
|
||||
}
|
||||
|
||||
ShibbolethWebView::ShibbolethWebView(Account* account, ShibbolethCookieJar* jar, QWidget* parent)
|
||||
: QWebView(parent)
|
||||
{
|
||||
setup(account, jar);
|
||||
}
|
||||
|
||||
void ShibbolethWebView::onNewCookiesForUrl (const QList<QNetworkCookie>& cookieList, const QUrl& url)
|
||||
{
|
||||
QList<QNetworkCookie> otherCookies;
|
||||
QNetworkCookie shibCookie;
|
||||
|
||||
Q_FOREACH (const QNetworkCookie& cookie, cookieList) {
|
||||
if (cookie.name().startsWith ("_shibsession_")) {
|
||||
if (shibCookie.name().isEmpty()) {
|
||||
shibCookie = cookie;
|
||||
} else {
|
||||
qWarning() << "Too many Shibboleth session cookies at once!";
|
||||
}
|
||||
} else {
|
||||
otherCookies << cookie;
|
||||
if (url.host() == _account->url().host()) {
|
||||
QNetworkCookie shibCookie = ShibbolethCredentials::findShibCookie(_account, cookieList);
|
||||
if (shibCookie != QNetworkCookie()) {
|
||||
Q_EMIT shibbolethCookieReceived(shibCookie, _account);
|
||||
accept();
|
||||
close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!otherCookies.isEmpty()) {
|
||||
Q_EMIT otherCookiesReceived(otherCookies, url);
|
||||
}
|
||||
if (!shibCookie.name().isEmpty()) {
|
||||
Q_EMIT shibbolethCookieReceived(shibCookie, _account);
|
||||
}
|
||||
}
|
||||
|
||||
void ShibbolethWebView::hideEvent(QHideEvent* event)
|
||||
void ShibbolethWebView::closeEvent(QCloseEvent *event)
|
||||
{
|
||||
Q_EMIT viewHidden();
|
||||
QWebView::hideEvent(event);
|
||||
if (!_accepted) {
|
||||
Q_EMIT rejected();
|
||||
}
|
||||
QWebView::closeEvent(event);
|
||||
}
|
||||
|
||||
void ShibbolethWebView::slotLoadStarted()
|
||||
@@ -142,4 +124,9 @@ void ShibbolethWebView::slotHandleAuthentication(QNetworkReply *reply, QAuthenti
|
||||
}
|
||||
}
|
||||
|
||||
void ShibbolethWebView::accept()
|
||||
{
|
||||
_accepted = true;
|
||||
}
|
||||
|
||||
} // ns Mirall
|
||||
|
||||
@@ -37,13 +37,11 @@ public:
|
||||
ShibbolethWebView(Account *account, ShibbolethCookieJar* jar, QWidget* parent = 0);
|
||||
~ShibbolethWebView();
|
||||
|
||||
protected:
|
||||
void hideEvent(QHideEvent* event);
|
||||
void closeEvent(QCloseEvent *event);
|
||||
|
||||
Q_SIGNALS:
|
||||
void shibbolethCookieReceived(const QNetworkCookie& cookie, Account* account);
|
||||
void viewHidden();
|
||||
void otherCookiesReceived(const QList<QNetworkCookie>& cookieList, const QUrl& url);
|
||||
void shibbolethCookieReceived(const QNetworkCookie &cookie, Account *account);
|
||||
void rejected();
|
||||
|
||||
private Q_SLOTS:
|
||||
void onNewCookiesForUrl(const QList<QNetworkCookie>& cookieList, const QUrl& url);
|
||||
@@ -51,9 +49,13 @@ private Q_SLOTS:
|
||||
void slotLoadFinished(bool success = true);
|
||||
void slotHandleAuthentication(QNetworkReply*,QAuthenticator*);
|
||||
|
||||
protected:
|
||||
void accept();
|
||||
|
||||
private:
|
||||
void setup(Account *account, ShibbolethCookieJar* jar);
|
||||
QPointer<Account> _account;
|
||||
bool _accepted;
|
||||
};
|
||||
|
||||
} // ns Mirall
|
||||
|
||||
@@ -16,18 +16,19 @@
|
||||
#include <QSettings>
|
||||
#include <QNetworkReply>
|
||||
#include <QMessageBox>
|
||||
#include <qdebug.h>
|
||||
#include <QDebug>
|
||||
|
||||
#include "creds/shibbolethcredentials.h"
|
||||
#include "creds/shibboleth/shibbolethaccessmanager.h"
|
||||
#include "creds/shibboleth/shibbolethwebview.h"
|
||||
#include "creds/shibboleth/shibbolethrefresher.h"
|
||||
#include "creds/shibboleth/shibbolethconfigfile.h"
|
||||
#include "creds/shibbolethcredentials.h"
|
||||
#include "shibboleth/shibbolethuserjob.h"
|
||||
#include "creds/credentialscommon.h"
|
||||
|
||||
#include "mirall/mirallaccessmanager.h"
|
||||
#include "mirall/account.h"
|
||||
#include "mirall/theme.h"
|
||||
#include "mirall/cookiejar.h"
|
||||
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)
|
||||
#include <qt5keychain/keychain.h>
|
||||
@@ -43,7 +44,9 @@ namespace Mirall
|
||||
namespace
|
||||
{
|
||||
|
||||
const char userC[] = "user";
|
||||
// Not "user" because it has a special meaning for http
|
||||
const char userC[] = "shib_user";
|
||||
const char shibCookieNameC[] = "_shibsession_";
|
||||
|
||||
int shibboleth_redirect_callback(CSYNC* csync_ctx,
|
||||
const char* uri)
|
||||
@@ -65,7 +68,6 @@ int shibboleth_redirect_callback(CSYNC* csync_ctx,
|
||||
Account *account = AccountManager::instance()->account();
|
||||
ShibbolethCredentials* creds = qobject_cast<ShibbolethCredentials*>(account->credentials());
|
||||
|
||||
|
||||
if (!creds) {
|
||||
qDebug() << "Not a Shibboleth creds instance!";
|
||||
return 1;
|
||||
@@ -84,18 +86,10 @@ int shibboleth_redirect_callback(CSYNC* csync_ctx,
|
||||
ShibbolethCredentials::ShibbolethCredentials()
|
||||
: AbstractCredentials(),
|
||||
_url(),
|
||||
_shibCookie(),
|
||||
_ready(false),
|
||||
_stillValid(false),
|
||||
_browser(0),
|
||||
_otherCookies()
|
||||
{}
|
||||
|
||||
ShibbolethCredentials::ShibbolethCredentials(const QNetworkCookie& cookie, const QMap<QUrl, QList<QNetworkCookie> >& otherCookies)
|
||||
: _shibCookie(cookie),
|
||||
_ready(true),
|
||||
_browser(0),
|
||||
_otherCookies(otherCookies)
|
||||
_fetchJobInProgress(false),
|
||||
_browser(0)
|
||||
{}
|
||||
|
||||
void ShibbolethCredentials::syncContextPreInit(CSYNC* ctx)
|
||||
@@ -110,29 +104,11 @@ QByteArray ShibbolethCredentials::prepareCookieData() const
|
||||
// have any way to get "session_key" module property from
|
||||
// csync. Had we have it, then we could just append shibboleth
|
||||
// cookies to the "session_key" value and set it in csync module.
|
||||
QList<QNetworkCookie> cookies(AccountManager::instance()->account()->lastAuthCookies());
|
||||
QMap<QString, QString> uniqueCookies;
|
||||
Account *account = AccountManager::instance()->account();
|
||||
QList<QNetworkCookie> cookies = accountCookies(account);
|
||||
|
||||
cookies << _shibCookie;
|
||||
// Stuff cookies inside csync, then we can avoid the intermediate HTTP 401 reply
|
||||
// when https://github.com/owncloud/core/pull/4042 is merged.
|
||||
foreach(QNetworkCookie c, cookies) {
|
||||
const QString cookieName(c.name());
|
||||
|
||||
if (cookieName.startsWith("_shibsession_")) {
|
||||
continue;
|
||||
}
|
||||
uniqueCookies.insert(cookieName, c.value());
|
||||
}
|
||||
|
||||
if (!_shibCookie.name().isEmpty()) {
|
||||
uniqueCookies.insert(_shibCookie.name(), _shibCookie.value());
|
||||
}
|
||||
foreach(const QString& cookieName, uniqueCookies.keys()) {
|
||||
cookiesAsString += cookieName;
|
||||
cookiesAsString += '=';
|
||||
cookiesAsString += uniqueCookies[cookieName];
|
||||
cookiesAsString += "; ";
|
||||
foreach(const QNetworkCookie &cookie, cookies) {
|
||||
cookiesAsString += cookie.toRawForm(QNetworkCookie::NameAndValueOnly) + QLatin1String("; ");
|
||||
}
|
||||
|
||||
return cookiesAsString.toLatin1();
|
||||
@@ -150,9 +126,13 @@ void ShibbolethCredentials::syncContextPreStart (CSYNC* ctx)
|
||||
|
||||
bool ShibbolethCredentials::changed(AbstractCredentials* credentials) const
|
||||
{
|
||||
ShibbolethCredentials* other(dynamic_cast< ShibbolethCredentials* >(credentials));
|
||||
ShibbolethCredentials* other(qobject_cast< ShibbolethCredentials* >(credentials));
|
||||
|
||||
if (!other || other->cookie() != this->cookie()) {
|
||||
if (!other) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (_shibCookie != other->_shibCookie || _user != other->_user) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -169,17 +149,9 @@ QString ShibbolethCredentials::user() const
|
||||
return _user;
|
||||
}
|
||||
|
||||
QNetworkCookie ShibbolethCredentials::cookie() const
|
||||
{
|
||||
return _shibCookie;
|
||||
}
|
||||
|
||||
QNetworkAccessManager* ShibbolethCredentials::getQNAM() const
|
||||
{
|
||||
ShibbolethAccessManager* qnam(new ShibbolethAccessManager(_shibCookie));
|
||||
|
||||
connect(this, SIGNAL(newCookie(QNetworkCookie)),
|
||||
qnam, SLOT(setCookie(QNetworkCookie)));
|
||||
QNetworkAccessManager* qnam(new MirallAccessManager);
|
||||
connect(qnam, SIGNAL(finished(QNetworkReply*)),
|
||||
this, SLOT(slotReplyFinished(QNetworkReply*)));
|
||||
return qnam;
|
||||
@@ -187,6 +159,10 @@ QNetworkAccessManager* ShibbolethCredentials::getQNAM() const
|
||||
|
||||
void ShibbolethCredentials::slotReplyFinished(QNetworkReply* r)
|
||||
{
|
||||
if (!_browser.isNull()) {
|
||||
return;
|
||||
}
|
||||
|
||||
QVariant target = r->attribute(QNetworkRequest::RedirectionTargetAttribute);
|
||||
if (target.isValid()) {
|
||||
_stillValid = false;
|
||||
@@ -203,10 +179,16 @@ bool ShibbolethCredentials::ready() const
|
||||
|
||||
void ShibbolethCredentials::fetch(Account *account)
|
||||
{
|
||||
|
||||
if(_fetchJobInProgress) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (_user.isEmpty()) {
|
||||
_user = account->credentialSetting(QLatin1String(userC)).toString();
|
||||
}
|
||||
if (_ready) {
|
||||
_fetchJobInProgress = false;
|
||||
Q_EMIT fetched();
|
||||
} else {
|
||||
if (account) {
|
||||
@@ -219,6 +201,7 @@ void ShibbolethCredentials::fetch(Account *account)
|
||||
job->setProperty("account", QVariant::fromValue(account));
|
||||
connect(job, SIGNAL(finished(QKeychain::Job*)), SLOT(slotReadJobDone(QKeychain::Job*)));
|
||||
job->start();
|
||||
_fetchJobInProgress = true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -230,44 +213,29 @@ bool ShibbolethCredentials::stillValid(QNetworkReply *reply)
|
||||
|
||||
void ShibbolethCredentials::persist(Account* account)
|
||||
{
|
||||
ShibbolethConfigFile cfg;
|
||||
|
||||
cfg.storeCookies(_otherCookies);
|
||||
|
||||
storeShibCookie(_shibCookie, account);
|
||||
if (!_user.isEmpty())
|
||||
if (!_user.isEmpty()) {
|
||||
account->setCredentialSetting(QLatin1String(userC), _user);
|
||||
}
|
||||
}
|
||||
|
||||
// only used by Application::slotLogout(). Use invalidateAndFetch for normal usage
|
||||
void ShibbolethCredentials::invalidateToken(Account *account)
|
||||
{
|
||||
Q_UNUSED(account)
|
||||
CookieJar *jar = static_cast<CookieJar*>(account->networkAccessManager()->cookieJar());
|
||||
jar->deleteCookie(_shibCookie);
|
||||
jar->clearSessionCookies();
|
||||
removeShibCookie(account);
|
||||
_shibCookie = QNetworkCookie();
|
||||
storeShibCookie(_shibCookie, account); // store/erase cookie
|
||||
|
||||
// ### access to ctx missing, but might not be required at all
|
||||
//csync_set_module_property(ctx, "session_key", "");
|
||||
}
|
||||
|
||||
void ShibbolethCredentials::disposeBrowser()
|
||||
void ShibbolethCredentials::onShibbolethCookieReceived(const QNetworkCookie& shibCookie, Account *account)
|
||||
{
|
||||
qDebug() << Q_FUNC_INFO;
|
||||
disconnect(_browser, SIGNAL(viewHidden()),
|
||||
this, SLOT(slotBrowserHidden()));
|
||||
disconnect(_browser, SIGNAL(shibbolethCookieReceived(QNetworkCookie, Account*)),
|
||||
this, SLOT(onShibbolethCookieReceived(QNetworkCookie, Account*)));
|
||||
_browser->hide();
|
||||
_browser->deleteLater();
|
||||
_browser = 0;
|
||||
}
|
||||
|
||||
void ShibbolethCredentials::onShibbolethCookieReceived(const QNetworkCookie& cookie, Account* account)
|
||||
{
|
||||
disposeBrowser();
|
||||
_shibCookie = cookie;
|
||||
storeShibCookie(_shibCookie, account);
|
||||
Q_EMIT newCookie(_shibCookie);
|
||||
storeShibCookie(shibCookie, account);
|
||||
_shibCookie = shibCookie;
|
||||
addToCookieJar(shibCookie);
|
||||
|
||||
// Now fetch the user...
|
||||
// But we must first do a request to webdav so the session is enabled.
|
||||
@@ -304,21 +272,22 @@ void ShibbolethCredentials::slotUserFetched(const QString &user)
|
||||
|
||||
_stillValid = true;
|
||||
_ready = true;
|
||||
_fetchJobInProgress = false;
|
||||
Q_EMIT fetched();
|
||||
}
|
||||
|
||||
|
||||
void ShibbolethCredentials::slotBrowserHidden()
|
||||
void ShibbolethCredentials::slotBrowserRejected()
|
||||
{
|
||||
disposeBrowser();
|
||||
_ready = false;
|
||||
_shibCookie = QNetworkCookie();
|
||||
_fetchJobInProgress = false;
|
||||
Q_EMIT fetched();
|
||||
}
|
||||
|
||||
void ShibbolethCredentials::invalidateAndFetch(Account* account)
|
||||
{
|
||||
_ready = false;
|
||||
_fetchJobInProgress = true;
|
||||
|
||||
// delete the credentials, then in the slot fetch them again (which will trigger browser)
|
||||
DeletePasswordJob *job = new DeletePasswordJob(Theme::instance()->appName());
|
||||
@@ -335,6 +304,7 @@ void ShibbolethCredentials::slotInvalidateAndFetchInvalidateDone(QKeychain::Job*
|
||||
|
||||
connect (this, SIGNAL(fetched()),
|
||||
this, SLOT(onFetched()));
|
||||
_fetchJobInProgress = false;
|
||||
// small hack to support the ShibbolethRefresher hack
|
||||
// we already rand fetch() with a valid account object,
|
||||
// and hence know the url on refresh
|
||||
@@ -355,16 +325,17 @@ void ShibbolethCredentials::slotReadJobDone(QKeychain::Job *job)
|
||||
if (job->error() == QKeychain::NoError) {
|
||||
ReadPasswordJob *readJob = static_cast<ReadPasswordJob*>(job);
|
||||
delete readJob->settings();
|
||||
qDebug() << Q_FUNC_INFO;
|
||||
QList<QNetworkCookie> cookies = QNetworkCookie::parseCookies(readJob->textData().toUtf8());
|
||||
if (cookies.count() > 0) {
|
||||
_shibCookie = cookies.first();
|
||||
addToCookieJar(_shibCookie);
|
||||
}
|
||||
// access
|
||||
job->setSettings(account->settingsWithGroup(Theme::instance()->appName(), job));
|
||||
|
||||
_ready = true;
|
||||
_stillValid = true;
|
||||
Q_EMIT newCookie(_shibCookie);
|
||||
_fetchJobInProgress = false;
|
||||
Q_EMIT fetched();
|
||||
} else {
|
||||
showLoginWindow(account);
|
||||
@@ -373,24 +344,44 @@ void ShibbolethCredentials::slotReadJobDone(QKeychain::Job *job)
|
||||
|
||||
void ShibbolethCredentials::showLoginWindow(Account* account)
|
||||
{
|
||||
if (_browser) {
|
||||
if (!_browser.isNull()) {
|
||||
_browser->activateWindow();
|
||||
_browser->raise();
|
||||
// FIXME On OS X this does not raise properly
|
||||
return;
|
||||
}
|
||||
ShibbolethConfigFile cfg;
|
||||
_browser = new ShibbolethWebView(account, cfg.createCookieJar());
|
||||
_browser = new ShibbolethWebView(account);
|
||||
connect(_browser, SIGNAL(shibbolethCookieReceived(QNetworkCookie, Account*)),
|
||||
this, SLOT(onShibbolethCookieReceived(QNetworkCookie, Account*)));
|
||||
connect(_browser, SIGNAL(viewHidden()),
|
||||
this, SLOT(slotBrowserHidden()));
|
||||
// FIXME If the browser was hidden (e.g. user closed it) without us logging in, the logic gets stuck
|
||||
// and can only be unstuck by restarting the app or pressing "Sign in" (we should switch to offline but we don't)
|
||||
connect(_browser, SIGNAL(rejected()), this, SLOT(slotBrowserRejected()));
|
||||
|
||||
_browser->show();
|
||||
}
|
||||
|
||||
QList<QNetworkCookie> ShibbolethCredentials::accountCookies(Account *account)
|
||||
{
|
||||
return account->networkAccessManager()->cookieJar()->cookiesForUrl(account->url());
|
||||
}
|
||||
|
||||
QNetworkCookie ShibbolethCredentials::findShibCookie(Account *account, QList<QNetworkCookie> cookies)
|
||||
{
|
||||
if(cookies.isEmpty()) {
|
||||
cookies = accountCookies(account);
|
||||
}
|
||||
|
||||
Q_FOREACH(QNetworkCookie cookie, cookies) {
|
||||
if (cookie.name().startsWith(shibCookieNameC)) {
|
||||
return cookie;
|
||||
}
|
||||
}
|
||||
return QNetworkCookie();
|
||||
}
|
||||
|
||||
QByteArray ShibbolethCredentials::shibCookieName()
|
||||
{
|
||||
return QByteArray(shibCookieNameC);
|
||||
}
|
||||
|
||||
void ShibbolethCredentials::storeShibCookie(const QNetworkCookie &cookie, Account *account)
|
||||
{
|
||||
WritePasswordJob *job = new WritePasswordJob(Theme::instance()->appName());
|
||||
@@ -402,5 +393,24 @@ void ShibbolethCredentials::storeShibCookie(const QNetworkCookie &cookie, Accoun
|
||||
job->start();
|
||||
}
|
||||
|
||||
void ShibbolethCredentials::removeShibCookie(Account *account)
|
||||
{
|
||||
DeletePasswordJob *job = new DeletePasswordJob(Theme::instance()->appName());
|
||||
job->setSettings(account->settingsWithGroup(Theme::instance()->appName(), job));
|
||||
job->setKey(keychainKey(account->url().toString(), "shibAssertion"));
|
||||
job->start();
|
||||
}
|
||||
|
||||
void ShibbolethCredentials::addToCookieJar(const QNetworkCookie &cookie)
|
||||
{
|
||||
QList<QNetworkCookie> cookies;
|
||||
cookies << cookie;
|
||||
Account *account = AccountManager::instance()->account();
|
||||
QNetworkCookieJar *jar = account->networkAccessManager()->cookieJar();
|
||||
jar->blockSignals(true); // otherwise we'd call ourselves
|
||||
jar->setCookiesFromUrl(cookies, account->url());
|
||||
jar->blockSignals(false);
|
||||
}
|
||||
|
||||
|
||||
} // ns Mirall
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
#include <QMap>
|
||||
#include <QNetworkCookie>
|
||||
#include <QUrl>
|
||||
#include <QPointer>
|
||||
|
||||
#include "creds/abstractcredentials.h"
|
||||
|
||||
@@ -36,7 +37,6 @@ Q_OBJECT
|
||||
|
||||
public:
|
||||
ShibbolethCredentials();
|
||||
ShibbolethCredentials(const QNetworkCookie& cookie, const QMap<QUrl, QList<QNetworkCookie> >& otherCookies);
|
||||
|
||||
void syncContextPreInit(CSYNC* ctx);
|
||||
void syncContextPreStart(CSYNC* ctx);
|
||||
@@ -50,16 +50,18 @@ public:
|
||||
void persist(Account *account);
|
||||
void invalidateToken(Account *account);
|
||||
|
||||
QNetworkCookie cookie() const;
|
||||
|
||||
void showLoginWindow(Account*);
|
||||
|
||||
static QList<QNetworkCookie> accountCookies(Account*);
|
||||
static QNetworkCookie findShibCookie(Account*, QList<QNetworkCookie> cookies = QList<QNetworkCookie>());
|
||||
static QByteArray shibCookieName();
|
||||
|
||||
public Q_SLOTS:
|
||||
void invalidateAndFetch(Account *account);
|
||||
|
||||
private Q_SLOTS:
|
||||
void onShibbolethCookieReceived(const QNetworkCookie& cookie, Account*);
|
||||
void slotBrowserHidden();
|
||||
void onShibbolethCookieReceived(const QNetworkCookie&, Account*);
|
||||
void slotBrowserRejected();
|
||||
void onFetched();
|
||||
void slotReadJobDone(QKeychain::Job*);
|
||||
void slotInvalidateAndFetchInvalidateDone(QKeychain::Job*);
|
||||
@@ -73,15 +75,16 @@ Q_SIGNALS:
|
||||
|
||||
private:
|
||||
void storeShibCookie(const QNetworkCookie &cookie, Account *account);
|
||||
void removeShibCookie(Account *account);
|
||||
void addToCookieJar(const QNetworkCookie &cookie);
|
||||
QUrl _url;
|
||||
QByteArray prepareCookieData() const;
|
||||
void disposeBrowser();
|
||||
|
||||
QNetworkCookie _shibCookie;
|
||||
bool _ready;
|
||||
bool _stillValid;
|
||||
ShibbolethWebView* _browser;
|
||||
QMap<QUrl, QList<QNetworkCookie> > _otherCookies;
|
||||
bool _fetchJobInProgress;
|
||||
QPointer<ShibbolethWebView> _browser;
|
||||
QNetworkCookie _shibCookie;
|
||||
QString _user;
|
||||
};
|
||||
|
||||
|
||||
22
src/main.cpp
22
src/main.cpp
@@ -1,4 +1,5 @@
|
||||
/*
|
||||
*
|
||||
* Copyright (C) by Duncan Mac-Vicar P. <duncan@kde.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
@@ -11,8 +12,15 @@
|
||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* for more details.
|
||||
*/
|
||||
#include <QtGlobal>
|
||||
|
||||
#include <signal.h>
|
||||
|
||||
#ifdef Q_OS_UNIX
|
||||
#include <sys/time.h>
|
||||
#include <sys/resource.h>
|
||||
#endif
|
||||
|
||||
#include "mirall/application.h"
|
||||
#include "mirall/theme.h"
|
||||
#include "mirall/utility.h"
|
||||
@@ -51,6 +59,20 @@ int main(int argc, char **argv)
|
||||
return 0;
|
||||
}
|
||||
|
||||
// check a environment variable for core dumps
|
||||
#ifdef Q_OS_UNIX
|
||||
if( !qgetenv("OWNCLOUD_CORE_DUMP").isEmpty() ) {
|
||||
struct rlimit core_limit;
|
||||
core_limit.rlim_cur = RLIM_INFINITY;
|
||||
core_limit.rlim_max = RLIM_INFINITY;
|
||||
|
||||
if (setrlimit(RLIMIT_CORE, &core_limit) < 0) {
|
||||
fprintf(stderr, "Unable to set core dump limit\n");
|
||||
} else {
|
||||
qDebug() << "Core dumps enabled";
|
||||
}
|
||||
}
|
||||
#endif
|
||||
// if handleStartup returns true, main()
|
||||
// needs to terminate here, e.g. because
|
||||
// the updater is triggered
|
||||
|
||||
@@ -12,9 +12,11 @@
|
||||
*/
|
||||
|
||||
#include "mirall/account.h"
|
||||
#include "mirall/cookiejar.h"
|
||||
#include "mirall/theme.h"
|
||||
#include "mirall/networkjobs.h"
|
||||
#include "mirall/mirallconfigfile.h"
|
||||
#include "mirall/mirallaccessmanager.h"
|
||||
#include "mirall/quotainfo.h"
|
||||
#include "creds/abstractcredentials.h"
|
||||
#include "creds/credentialsfactory.h"
|
||||
@@ -75,6 +77,8 @@ Account::Account(AbstractSslErrorHandler *sslErrorHandler, QObject *parent)
|
||||
|
||||
Account::~Account()
|
||||
{
|
||||
delete _credentials;
|
||||
delete _am;
|
||||
}
|
||||
|
||||
void Account::save()
|
||||
@@ -161,7 +165,11 @@ AbstractCredentials *Account::credentials() const
|
||||
void Account::setCredentials(AbstractCredentials *cred)
|
||||
{
|
||||
// set active credential manager
|
||||
QNetworkCookieJar *jar = 0;
|
||||
if (_am) {
|
||||
jar = _am->cookieJar();
|
||||
jar->setParent(0);
|
||||
|
||||
_am->deleteLater();
|
||||
}
|
||||
|
||||
@@ -170,6 +178,9 @@ void Account::setCredentials(AbstractCredentials *cred)
|
||||
}
|
||||
_credentials = cred;
|
||||
_am = _credentials->getQNAM();
|
||||
if (jar) {
|
||||
_am->setCookieJar(jar);
|
||||
}
|
||||
connect(_am, SIGNAL(sslErrors(QNetworkReply*,QList<QSslError>)),
|
||||
SLOT(slotHandleErrors(QNetworkReply*,QList<QSslError>)));
|
||||
}
|
||||
@@ -186,7 +197,12 @@ QList<QNetworkCookie> Account::lastAuthCookies() const
|
||||
|
||||
void Account::clearCookieJar()
|
||||
{
|
||||
_am->setCookieJar(new QNetworkCookieJar);
|
||||
_am->setCookieJar(new CookieJar);
|
||||
}
|
||||
|
||||
QNetworkAccessManager *Account::networkAccessManager()
|
||||
{
|
||||
return _am;
|
||||
}
|
||||
|
||||
QNetworkReply *Account::headRequest(const QString &relPath)
|
||||
|
||||
@@ -34,6 +34,7 @@ namespace Mirall {
|
||||
class AbstractCredentials;
|
||||
class Account;
|
||||
class QuotaInfo;
|
||||
class MirallAccessManager;
|
||||
|
||||
class OWNCLOUDSYNC_EXPORT AccountManager : public QObject {
|
||||
Q_OBJECT
|
||||
@@ -143,6 +144,8 @@ public:
|
||||
|
||||
void clearCookieJar();
|
||||
|
||||
QNetworkAccessManager* networkAccessManager();
|
||||
|
||||
QuotaInfo *quotaInfo();
|
||||
signals:
|
||||
void stateChanged(int state);
|
||||
|
||||
@@ -114,7 +114,6 @@ AccountSettings::AccountSettings(QWidget *parent) :
|
||||
connect(FolderMan::instance(), SIGNAL(folderListLoaded(Folder::Map)),
|
||||
this, SLOT(setFolderList(Folder::Map)));
|
||||
setFolderList(FolderMan::instance()->map());
|
||||
|
||||
}
|
||||
|
||||
void AccountSettings::slotAccountChanged(Account *newAccount, Account *oldAccount)
|
||||
@@ -140,28 +139,28 @@ void AccountSettings::slotAccountChanged(Account *newAccount, Account *oldAccoun
|
||||
|
||||
void AccountSettings::slotFolderActivated( const QModelIndex& indx )
|
||||
{
|
||||
bool state = indx.isValid();
|
||||
bool isValid = indx.isValid();
|
||||
|
||||
bool haveFolders = ui->_folderList->model()->rowCount() > 0;
|
||||
|
||||
ui->_buttonRemove->setEnabled(state);
|
||||
ui->_buttonRemove->setEnabled(isValid);
|
||||
if( Theme::instance()->singleSyncFolder() ) {
|
||||
// only one folder synced folder allowed.
|
||||
ui->_buttonAdd->setVisible(!haveFolders);
|
||||
} else {
|
||||
ui->_buttonAdd->setVisible(true);
|
||||
ui->_buttonAdd->setEnabled( true );
|
||||
}
|
||||
ui->_buttonEnable->setEnabled( state );
|
||||
ui->_buttonAdd->setEnabled(_account && _account->state() == Account::Connected);
|
||||
ui->_buttonEnable->setEnabled( isValid );
|
||||
|
||||
if ( state ) {
|
||||
if ( isValid ) {
|
||||
bool folderEnabled = _model->data( indx, FolderStatusDelegate::FolderSyncEnabled).toBool();
|
||||
if ( folderEnabled ) {
|
||||
ui->_buttonEnable->setText( tr( "Pause" ) );
|
||||
} else {
|
||||
ui->_buttonEnable->setText( tr( "Resume" ) );
|
||||
}
|
||||
ui->_buttonEnable->setEnabled(_account && _account->state() == Account::Connected);
|
||||
ui->_buttonEnable->setEnabled( _account && _account->state() == Account::Connected);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -269,6 +268,10 @@ void AccountSettings::folderToModelItem( QStandardItem *item, Folder *f )
|
||||
// if the folder was disabled before, set the sync icon
|
||||
item->setData( theme->syncStateIcon( SyncResult::SyncRunning), FolderStatusDelegate::FolderStatusIconRole );
|
||||
} // we keep the previous icon for the SyncPrepare state.
|
||||
} else if( status == SyncResult::Undefined ) {
|
||||
// startup, the sync was never done.
|
||||
qDebug() << "XXX FIRST time sync, setting icon to sync running!";
|
||||
item->setData( theme->syncStateIcon( SyncResult::SyncRunning), FolderStatusDelegate::FolderStatusIconRole );
|
||||
} else {
|
||||
// kepp the previous icon for the prepare phase.
|
||||
if( status == SyncResult::Problem) {
|
||||
@@ -361,7 +364,7 @@ void AccountSettings::slotResetCurrentFolder()
|
||||
if( ret == QMessageBox::Yes ) {
|
||||
FolderMan *folderMan = FolderMan::instance();
|
||||
Folder *f = folderMan->folder(alias);
|
||||
f->slotTerminateSync(true);
|
||||
f->slotTerminateSync();
|
||||
f->wipe();
|
||||
folderMan->slotScheduleAllFolders();
|
||||
}
|
||||
@@ -478,7 +481,7 @@ void AccountSettings::slotEnableCurrentFolder()
|
||||
// message box can return at any time while the thread keeps running,
|
||||
// so better check again after the user has responded.
|
||||
if ( f->isBusy() && terminate ) {
|
||||
f->slotTerminateSync(false);
|
||||
f->slotTerminateSync();
|
||||
}
|
||||
|
||||
folderMan->slotEnableFolder( alias, !folderEnabled );
|
||||
@@ -633,8 +636,9 @@ void AccountSettings::slotSetProgress(const QString& folder, const Progress::Inf
|
||||
item->setData( overallSyncString, FolderStatusDelegate::SyncProgressOverallString );
|
||||
|
||||
int overallPercent = 0;
|
||||
if( progress._totalSize > 0 ) {
|
||||
overallPercent = qRound(double(completedSize)/double(progress._totalSize) * 100.0);
|
||||
if( progress._totalFileCount > 0 ) {
|
||||
// Add one 'byte' for each files so the percentage is moving when deleting or renaming files
|
||||
overallPercent = qRound(double(completedSize + progress._completedFileCount)/double(progress._totalSize + progress._totalFileCount) * 100.0);
|
||||
}
|
||||
item->setData( overallPercent, FolderStatusDelegate::SyncProgressOverallPercent);
|
||||
}
|
||||
@@ -739,7 +743,7 @@ void AccountSettings::slotAccountStateChanged(int state)
|
||||
ui->sslButton->updateAccountInfo(_account);
|
||||
QUrl safeUrl(_account->url());
|
||||
safeUrl.setPassword(QString()); // Remove the password from the URL to avoid showing it in the UI
|
||||
ui->_buttonAdd->setEnabled(state == Account::Connected);
|
||||
slotButtonsSetEnabled();
|
||||
if (state == Account::Connected) {
|
||||
QString user;
|
||||
if (AbstractCredentials *cred = _account->credentials()) {
|
||||
|
||||
@@ -45,6 +45,8 @@
|
||||
#include <QMenu>
|
||||
#include <QMessageBox>
|
||||
|
||||
class QSocket;
|
||||
|
||||
namespace Mirall {
|
||||
|
||||
namespace {
|
||||
@@ -64,14 +66,12 @@ static const char optionsC[] =
|
||||
|
||||
QString applicationTrPath()
|
||||
{
|
||||
#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD)
|
||||
return QString::fromLatin1(DATADIR"/"APPLICATION_EXECUTABLE"/i18n/");
|
||||
#endif
|
||||
#ifdef Q_OS_MAC
|
||||
return QApplication::applicationDirPath()+QLatin1String("/../Resources/Translations"); // path defaults to app dir.
|
||||
#endif
|
||||
#ifdef Q_OS_WIN
|
||||
#if defined(Q_OS_WIN)
|
||||
return QApplication::applicationDirPath();
|
||||
#elif defined(Q_OS_MAC)
|
||||
return QApplication::applicationDirPath()+QLatin1String("/../Resources/Translations"); // path defaults to app dir.
|
||||
#elif defined(Q_OS_UNIX)
|
||||
return QString::fromLatin1(DATADIR"/"APPLICATION_EXECUTABLE"/i18n/");
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -79,7 +79,7 @@ QString applicationTrPath()
|
||||
// ----------------------------------------------------------------------------------
|
||||
|
||||
Application::Application(int &argc, char **argv) :
|
||||
SharedTools::QtSingleApplication(argc, argv),
|
||||
SharedTools::QtSingleApplication(Theme::instance()->appName() ,argc, argv),
|
||||
_gui(0),
|
||||
_theme(Theme::instance()),
|
||||
_helpOnly(false),
|
||||
@@ -99,14 +99,13 @@ Application::Application(int &argc, char **argv) :
|
||||
//no need to waste time;
|
||||
if ( _helpOnly ) return;
|
||||
|
||||
initialize();
|
||||
if (isRunning())
|
||||
return;
|
||||
|
||||
setupLogging();
|
||||
setupTranslations();
|
||||
|
||||
connect( this, SIGNAL(messageReceived(QString)), SLOT(slotParseOptions(QString)));
|
||||
connect( this, SIGNAL(messageReceived(QString, QObject*)), SLOT(slotParseOptions(QString, QObject*)));
|
||||
|
||||
Account *account = Account::restore();
|
||||
if (account) {
|
||||
@@ -159,6 +158,7 @@ Application::Application(int &argc, char **argv) :
|
||||
|
||||
Application::~Application()
|
||||
{
|
||||
delete AccountManager::instance()->account();
|
||||
// qDebug() << "* Mirall shutdown";
|
||||
}
|
||||
|
||||
@@ -245,6 +245,8 @@ void Application::slotCheckConnection()
|
||||
} else {
|
||||
// let gui open the setup wizard
|
||||
_gui->slotOpenSettingsDialog( true );
|
||||
|
||||
_checkConnectionTimer.stop(); // don't popup the wizard on interval;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -323,6 +325,7 @@ void Application::slotownCloudWizardDone( int res )
|
||||
}
|
||||
folderMan->setSyncEnabled( true );
|
||||
if( res == QDialog::Accepted ) {
|
||||
_checkConnectionTimer.start();
|
||||
slotCheckConnection();
|
||||
}
|
||||
|
||||
@@ -350,7 +353,7 @@ void Application::slotUseMonoIconsChanged(bool)
|
||||
_gui->slotComputeOverallSyncStatus();
|
||||
}
|
||||
|
||||
void Application::slotParseOptions(const QString &opts)
|
||||
void Application::slotParseOptions(const QString &opts, QObject*)
|
||||
{
|
||||
QStringList options = opts.split(QLatin1Char('|'));
|
||||
parseOptions(options);
|
||||
|
||||
@@ -28,9 +28,11 @@
|
||||
#include "mirall/connectionvalidator.h"
|
||||
#include "mirall/progressdispatcher.h"
|
||||
#include "mirall/clientproxy.h"
|
||||
#include "mirall/folderman.h"
|
||||
|
||||
class QMessageBox;
|
||||
class QSystemTrayIcon;
|
||||
class QSocket;
|
||||
|
||||
namespace Mirall {
|
||||
class Theme;
|
||||
@@ -69,7 +71,7 @@ signals:
|
||||
void folderStateChanged(Folder*);
|
||||
|
||||
protected slots:
|
||||
void slotParseOptions( const QString& );
|
||||
void slotParseOptions( const QString&, QObject* );
|
||||
void slotCheckConnection();
|
||||
void slotConnectionValidatorResult(ConnectionValidator::Status);
|
||||
void slotStartUpdateDetector();
|
||||
@@ -106,6 +108,8 @@ private:
|
||||
|
||||
QTimer _checkConnectionTimer;
|
||||
|
||||
FolderMan folderManager;
|
||||
|
||||
friend class ownCloudGui; // for _startupNetworkError
|
||||
};
|
||||
|
||||
|
||||
155
src/mirall/cookiejar.cpp
Normal file
155
src/mirall/cookiejar.cpp
Normal file
@@ -0,0 +1,155 @@
|
||||
/*
|
||||
* Copyright (C) by Daniel Molkentin <danimo@owncloud.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; version 2 of the License.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* for more details.
|
||||
*/
|
||||
|
||||
#include "cookiejar.h"
|
||||
|
||||
#include "mirall/mirallconfigfile.h"
|
||||
|
||||
#include <QDebug>
|
||||
#include <QFile>
|
||||
#include <QDateTime>
|
||||
#include <QNetworkCookie>
|
||||
|
||||
namespace Mirall {
|
||||
|
||||
namespace {
|
||||
const unsigned int JAR_VERSION = 23;
|
||||
}
|
||||
|
||||
QDataStream &operator<<(QDataStream &stream, const QList<QNetworkCookie> &list)
|
||||
{
|
||||
stream << JAR_VERSION;
|
||||
stream << quint32(list.size());
|
||||
for (int i = 0; i < list.size(); ++i)
|
||||
stream << list.at(i).toRawForm();
|
||||
return stream;
|
||||
}
|
||||
|
||||
QDataStream &operator>>(QDataStream &stream, QList<QNetworkCookie> &list)
|
||||
{
|
||||
list.clear();
|
||||
|
||||
quint32 version;
|
||||
stream >> version;
|
||||
|
||||
if (version != JAR_VERSION)
|
||||
return stream;
|
||||
|
||||
quint32 count;
|
||||
stream >> count;
|
||||
for(quint32 i = 0; i < count; ++i)
|
||||
{
|
||||
QByteArray value;
|
||||
stream >> value;
|
||||
QList<QNetworkCookie> newCookies = QNetworkCookie::parseCookies(value);
|
||||
if (newCookies.count() == 0 && value.length() != 0) {
|
||||
qWarning() << "CookieJar: Unable to parse saved cookie:" << value;
|
||||
}
|
||||
for (int j = 0; j < newCookies.count(); ++j)
|
||||
list.append(newCookies.at(j));
|
||||
if (stream.atEnd())
|
||||
break;
|
||||
}
|
||||
return stream;
|
||||
}
|
||||
|
||||
CookieJar::CookieJar(QObject *parent) :
|
||||
QNetworkCookieJar(parent)
|
||||
{
|
||||
restore();
|
||||
}
|
||||
|
||||
CookieJar::~CookieJar()
|
||||
{
|
||||
save();
|
||||
}
|
||||
|
||||
bool CookieJar::setCookiesFromUrl(const QList<QNetworkCookie>& cookieList, const QUrl& url)
|
||||
{
|
||||
if (QNetworkCookieJar::setCookiesFromUrl(cookieList, url)) {
|
||||
Q_EMIT newCookiesForUrl(cookieList, url);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
QList<QNetworkCookie> CookieJar::cookiesForUrl(const QUrl &url) const
|
||||
{
|
||||
QList<QNetworkCookie> cookies = QNetworkCookieJar::cookiesForUrl(url);
|
||||
// qDebug() << url << "requests:" << cookies;
|
||||
return cookies;
|
||||
}
|
||||
|
||||
bool CookieJar::deleteCookie(const QNetworkCookie &delCookie)
|
||||
{
|
||||
QList<QNetworkCookie> cookies = allCookies();
|
||||
bool removeSucceeded = false;
|
||||
foreach(const QNetworkCookie &cookie, cookies) {
|
||||
// ### cookies are not identical in attriutes, why?
|
||||
if (cookie.name() == delCookie.name()) {
|
||||
cookies.removeOne(cookie);
|
||||
removeSucceeded = true;
|
||||
}
|
||||
}
|
||||
setAllCookies(cookies);
|
||||
return removeSucceeded;
|
||||
}
|
||||
|
||||
void CookieJar::clearSessionCookies()
|
||||
{
|
||||
setAllCookies(removeExpired(allCookies()));
|
||||
}
|
||||
|
||||
|
||||
void CookieJar::save()
|
||||
{
|
||||
QFile file;
|
||||
file.setFileName(storagePath());
|
||||
qDebug() << storagePath();
|
||||
file.open(QIODevice::WriteOnly);
|
||||
QDataStream stream(&file);
|
||||
stream << allCookies();
|
||||
file.close();
|
||||
}
|
||||
|
||||
void CookieJar::restore()
|
||||
{
|
||||
QFile file;
|
||||
file.setFileName(storagePath());
|
||||
file.open(QIODevice::ReadOnly);
|
||||
QDataStream stream(&file);
|
||||
QList<QNetworkCookie> list;
|
||||
stream >> list;
|
||||
setAllCookies(removeExpired(list));
|
||||
file.close();
|
||||
}
|
||||
|
||||
QList<QNetworkCookie> CookieJar::removeExpired(const QList<QNetworkCookie> &cookies)
|
||||
{
|
||||
QList<QNetworkCookie> updatedList;
|
||||
foreach(const QNetworkCookie &cookie, cookies) {
|
||||
if (cookie.expirationDate() > QDateTime::currentDateTime() && !cookie.isSessionCookie()) {
|
||||
updatedList << cookie;
|
||||
}
|
||||
}
|
||||
return updatedList;
|
||||
}
|
||||
|
||||
QString CookieJar::storagePath() const
|
||||
{
|
||||
MirallConfigFile cfg;
|
||||
return cfg.configPath() + "/cookies.db";
|
||||
}
|
||||
|
||||
} // namespace Mirall
|
||||
47
src/mirall/cookiejar.h
Normal file
47
src/mirall/cookiejar.h
Normal file
@@ -0,0 +1,47 @@
|
||||
/*
|
||||
* Copyright (C) by Daniel Molkentin <danimo@owncloud.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; version 2 of the License.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* for more details.
|
||||
*/
|
||||
|
||||
#ifndef MIRALL_COOKIEJAR_H
|
||||
#define MIRALL_COOKIEJAR_H
|
||||
|
||||
#include <QNetworkCookieJar>
|
||||
|
||||
#include "owncloudlib.h"
|
||||
|
||||
namespace Mirall {
|
||||
|
||||
class OWNCLOUDSYNC_EXPORT CookieJar : public QNetworkCookieJar
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit CookieJar(QObject *parent = 0);
|
||||
~CookieJar();
|
||||
bool setCookiesFromUrl(const QList<QNetworkCookie> &cookieList, const QUrl &url);
|
||||
QList<QNetworkCookie> cookiesForUrl(const QUrl &url) const;
|
||||
|
||||
virtual bool deleteCookie(const QNetworkCookie & cookie);
|
||||
void clearSessionCookies();
|
||||
|
||||
signals:
|
||||
void newCookiesForUrl(const QList<QNetworkCookie>& cookieList, const QUrl& url);
|
||||
private:
|
||||
void save();
|
||||
void restore();
|
||||
QList<QNetworkCookie> removeExpired(const QList<QNetworkCookie> &cookies);
|
||||
QString storagePath() const;
|
||||
|
||||
};
|
||||
|
||||
} // namespace Mirall
|
||||
|
||||
#endif // MIRALL_COOKIEJAR_H
|
||||
@@ -91,6 +91,14 @@ Folder::Folder(const QString &alias, const QString &path, const QString& secondP
|
||||
|
||||
bool Folder::init()
|
||||
{
|
||||
Account *account = AccountManager::instance()->account();
|
||||
if (!account) {
|
||||
// Normaly this should not happen, but it could be that there is something
|
||||
// wrong with the config and it is better not to crash.
|
||||
qWarning() << "WRN: No account configured, can't sync";
|
||||
return false;
|
||||
}
|
||||
|
||||
QString url = Utility::toCSyncScheme(remoteUrl().toString());
|
||||
QString localpath = path();
|
||||
|
||||
@@ -301,8 +309,7 @@ void Folder::bubbleUpSyncResult()
|
||||
|
||||
SyncRunFileLog syncFileLog;
|
||||
|
||||
syncFileLog.start(path(), _stopWatch );
|
||||
_stopWatch.reset();
|
||||
syncFileLog.start(path(), _engine ? _engine->stopWatch() : Utility::StopWatch() );
|
||||
|
||||
QElapsedTimer timer;
|
||||
timer.start();
|
||||
@@ -467,7 +474,7 @@ void Folder::slotThreadTreeWalkResult(const SyncFileItemVector& items)
|
||||
_syncResult.setSyncFileItemVector(items);
|
||||
}
|
||||
|
||||
void Folder::slotTerminateSync(bool block)
|
||||
void Folder::slotTerminateSync()
|
||||
{
|
||||
qDebug() << "folder " << alias() << " Terminating!";
|
||||
|
||||
@@ -477,14 +484,10 @@ void Folder::slotTerminateSync(bool block)
|
||||
// Do not display an error message, user knows his own actions.
|
||||
// _errors.append( tr("The CSync thread terminated.") );
|
||||
// _csyncError = true;
|
||||
if (!block) {
|
||||
setSyncState(SyncResult::SyncAbortRequested);
|
||||
return;
|
||||
}
|
||||
|
||||
slotSyncFinished();
|
||||
setSyncEnabled(false);
|
||||
setSyncState(SyncResult::SyncAbortRequested);
|
||||
return;
|
||||
}
|
||||
setSyncEnabled(false);
|
||||
}
|
||||
|
||||
// This removes the csync File database
|
||||
@@ -630,7 +633,6 @@ void Folder::slotSyncFinished()
|
||||
qDebug() << "-> CSync Finished slot with error " << _csyncError << "warn count" << _syncResult.warnCount();
|
||||
|
||||
bubbleUpSyncResult();
|
||||
_stopWatch = _engine->stopWatch();
|
||||
|
||||
_engine.reset(0);
|
||||
// _watcher->setEventsEnabledDelayed(2000);
|
||||
@@ -653,9 +655,24 @@ void Folder::slotSyncFinished()
|
||||
}
|
||||
|
||||
emit syncStateChange();
|
||||
|
||||
// The syncFinished result that is to be triggered here makes the folderman
|
||||
// clearing the current running sync folder marker.
|
||||
// Lets wait a bit to do that because, as long as this marker is not cleared,
|
||||
// file system change notifications are ignored for that folder. And it takes
|
||||
// some time under certain conditions to make the file system notifications
|
||||
// all come in.
|
||||
QTimer::singleShot(200, this, SLOT(slotEmitFinishedDelayed() ));
|
||||
|
||||
}
|
||||
|
||||
void Folder::slotEmitFinishedDelayed()
|
||||
{
|
||||
emit syncFinished( _syncResult );
|
||||
}
|
||||
|
||||
|
||||
|
||||
// the progress comes without a folder and the valid path set. Add that here
|
||||
// and hand the result over to the progress dispatcher.
|
||||
void Folder::slotTransmissionProgress(const Progress::Info &pi)
|
||||
@@ -695,6 +712,9 @@ void Folder::slotAboutToRemoveAllFiles(SyncFileItem::Direction direction, bool *
|
||||
*cancel = msgBox.clickedButton() == keepBtn;
|
||||
if (*cancel) {
|
||||
wipe();
|
||||
// speed up next sync
|
||||
_lastEtag = QString();
|
||||
QTimer::singleShot(50, this, SLOT(slotPollTimerTimeout()));
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -21,7 +21,6 @@
|
||||
#include "mirall/progressdispatcher.h"
|
||||
#include "mirall/syncjournaldb.h"
|
||||
#include "mirall/clientproxy.h"
|
||||
#include "mirall/utility.h"
|
||||
|
||||
#include <csync.h>
|
||||
|
||||
@@ -149,10 +148,8 @@ public slots:
|
||||
|
||||
/**
|
||||
* terminate the current sync run
|
||||
*
|
||||
* If block is true, this will block synchroniously for the sync thread to finish.
|
||||
*/
|
||||
void slotTerminateSync(bool block);
|
||||
void slotTerminateSync();
|
||||
|
||||
void slotAboutToRemoveAllFiles(SyncFileItem::Direction, bool*);
|
||||
|
||||
@@ -184,9 +181,12 @@ private slots:
|
||||
|
||||
void slotThreadTreeWalkResult(const SyncFileItemVector& );
|
||||
|
||||
void slotEmitFinishedDelayed();
|
||||
|
||||
private:
|
||||
bool init();
|
||||
|
||||
|
||||
void setIgnoredFiles();
|
||||
|
||||
void bubbleUpSyncResult();
|
||||
@@ -217,8 +217,6 @@ private:
|
||||
|
||||
ClientProxy _clientProxy;
|
||||
|
||||
Utility::StopWatch _stopWatch;
|
||||
|
||||
CSYNC *_csync_ctx;
|
||||
};
|
||||
|
||||
|
||||
@@ -41,13 +41,6 @@ FolderMan::FolderMan(QObject *parent) :
|
||||
QObject(parent),
|
||||
_syncEnabled( true )
|
||||
{
|
||||
// if QDir::mkpath would not be so stupid, I would not need to have this
|
||||
// duplication of folderConfigPath() here
|
||||
MirallConfigFile cfg;
|
||||
QDir storageDir(cfg.configPath());
|
||||
storageDir.mkpath(QLatin1String("folders"));
|
||||
_folderConfigPath = cfg.configPath() + QLatin1String("folders");
|
||||
|
||||
_folderChangeSignalMapper = new QSignalMapper(this);
|
||||
connect(_folderChangeSignalMapper, SIGNAL(mapped(const QString &)),
|
||||
this, SIGNAL(folderSyncStateChange(const QString &)));
|
||||
@@ -55,15 +48,14 @@ FolderMan::FolderMan(QObject *parent) :
|
||||
_folderWatcherSignalMapper = new QSignalMapper(this);
|
||||
connect(_folderWatcherSignalMapper, SIGNAL(mapped(const QString&)),
|
||||
this, SLOT(slotScheduleSync(const QString&)));
|
||||
|
||||
ne_sock_init();
|
||||
Q_ASSERT(!_instance);
|
||||
_instance = this;
|
||||
}
|
||||
|
||||
FolderMan *FolderMan::instance()
|
||||
{
|
||||
if(!_instance) {
|
||||
_instance = new FolderMan;
|
||||
ne_sock_init();
|
||||
}
|
||||
|
||||
return _instance;
|
||||
}
|
||||
|
||||
@@ -71,6 +63,7 @@ FolderMan::~FolderMan()
|
||||
{
|
||||
qDeleteAll(_folderMap);
|
||||
ne_sock_exit();
|
||||
_instance = 0;
|
||||
}
|
||||
|
||||
Mirall::Folder::Map FolderMan::map()
|
||||
@@ -144,6 +137,11 @@ int FolderMan::setupFolders()
|
||||
|
||||
unloadAllFolders();
|
||||
|
||||
MirallConfigFile cfg;
|
||||
QDir storageDir(cfg.configPath());
|
||||
storageDir.mkpath(QLatin1String("folders"));
|
||||
_folderConfigPath = cfg.configPath() + QLatin1String("folders");
|
||||
|
||||
QDir dir( _folderConfigPath );
|
||||
//We need to include hidden files just in case the alias starts with '.'
|
||||
dir.setFilter(QDir::Files | QDir::Hidden);
|
||||
@@ -301,6 +299,7 @@ Folder* FolderMan::setupFolderFromConfigFile(const QString &file) {
|
||||
qDebug() << "Adding folder to Folder Map " << folder;
|
||||
_folderMap[alias] = folder;
|
||||
if (paused) {
|
||||
folder->setSyncEnabled(!paused);
|
||||
_disabledFolders.insert(folder);
|
||||
}
|
||||
|
||||
@@ -353,9 +352,10 @@ void FolderMan::terminateSyncProcess( const QString& alias )
|
||||
if( ! folderAlias.isEmpty() && _folderMap.contains(folderAlias) ) {
|
||||
Folder *f = _folderMap[folderAlias];
|
||||
if( f ) {
|
||||
f->slotTerminateSync(true);
|
||||
if(_currentSyncFolder == folderAlias )
|
||||
f->slotTerminateSync();
|
||||
if(_currentSyncFolder == folderAlias ) {
|
||||
_currentSyncFolder.clear();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,12 +30,13 @@ class SyncResult;
|
||||
|
||||
namespace Mirall {
|
||||
|
||||
class Application;
|
||||
|
||||
class OWNCLOUDSYNC_EXPORT FolderMan : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
static FolderMan* instance();
|
||||
~FolderMan();
|
||||
|
||||
int setupFolders();
|
||||
|
||||
@@ -144,10 +145,10 @@ private:
|
||||
QQueue<QString> _scheduleQueue;
|
||||
QMap<QString, FolderWatcher*> _folderWatchers;
|
||||
|
||||
|
||||
explicit FolderMan(QObject *parent = 0);
|
||||
static FolderMan *_instance;
|
||||
|
||||
explicit FolderMan(QObject *parent = 0);
|
||||
~FolderMan();
|
||||
friend class Mirall::Application;
|
||||
};
|
||||
|
||||
} // namespace Mirall
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
#include "mirall/folderwatcher_win.h"
|
||||
#elif defined(Q_OS_MAC)
|
||||
#include "mirall/folderwatcher_mac.h"
|
||||
#elif defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD)
|
||||
#elif defined(Q_OS_UNIX)
|
||||
#include "mirall/folderwatcher_linux.h"
|
||||
#endif
|
||||
|
||||
@@ -115,7 +115,7 @@ void FolderWatcher::changeDetected( const QString& path )
|
||||
|
||||
void FolderWatcher::changeDetected( const QStringList& paths )
|
||||
{
|
||||
qDebug() << Q_FUNC_INFO << paths;
|
||||
// qDebug() << Q_FUNC_INFO << paths;
|
||||
|
||||
// TODO: this shortcut doesn't look very reliable:
|
||||
// - why is the timeout only 1 second?
|
||||
|
||||
@@ -136,7 +136,7 @@ bool FolderWizardLocalPath::isComplete() const
|
||||
QString absCleanUserFolder = QDir::cleanPath(QDir(userInput).canonicalPath())+'/';
|
||||
if( isOk && QDir::cleanPath(folderDir).startsWith(absCleanUserFolder) ) {
|
||||
qDebug() << "A already configured folder is child of the current selected";
|
||||
warnStrings.append( tr("The selected folder is a symbolic link. An already configured"
|
||||
warnStrings.append( tr("The selected folder is a symbolic link. An already configured "
|
||||
"folder is contained in the folder this link is pointing to."));
|
||||
isOk = false;
|
||||
}
|
||||
|
||||
@@ -27,6 +27,9 @@ static void mirallLogCatcher(QtMsgType type, const char *msg)
|
||||
// qDebug() exports to local8Bit, which is not always UTF-8
|
||||
Logger::instance()->mirallLog( QString::fromLocal8Bit(msg) );
|
||||
}
|
||||
static void qInstallMessageHandler(QtMsgHandler h) {
|
||||
qInstallMsgHandler(h);
|
||||
}
|
||||
#else
|
||||
static void mirallLogCatcher(QtMsgType, const QMessageLogContext &ctx, const QString &message) {
|
||||
Q_UNUSED(ctx);
|
||||
@@ -38,35 +41,23 @@ static void mirallLogCatcher(QtMsgType, const QMessageLogContext &ctx, const QSt
|
||||
}
|
||||
#endif
|
||||
|
||||
Logger* Logger::_instance=0;
|
||||
|
||||
Logger::Logger( QObject* parent)
|
||||
: QObject(parent),
|
||||
_showTime(true), _doLogging(false), _doFileFlush(false), _logExpire(0)
|
||||
{
|
||||
}
|
||||
|
||||
Logger *Logger::instance()
|
||||
{
|
||||
if( !Logger::_instance ) {
|
||||
Logger::_instance = new Logger;
|
||||
#if QT_VERSION < QT_VERSION_CHECK(5, 0, 0)
|
||||
qInstallMsgHandler( mirallLogCatcher );
|
||||
#else
|
||||
qInstallMessageHandler(mirallLogCatcher);
|
||||
#endif
|
||||
}
|
||||
return Logger::_instance;
|
||||
static Logger log;
|
||||
return &log;
|
||||
}
|
||||
|
||||
void Logger::destroy()
|
||||
Logger::Logger( QObject* parent) : QObject(parent),
|
||||
_showTime(true), _doLogging(false), _doFileFlush(false), _logExpire(0)
|
||||
{
|
||||
if( Logger::_instance ) {
|
||||
delete Logger::_instance;
|
||||
Logger::_instance = 0;
|
||||
}
|
||||
qInstallMessageHandler(mirallLogCatcher);
|
||||
}
|
||||
|
||||
Logger::~Logger() {
|
||||
qInstallMessageHandler(0);
|
||||
}
|
||||
|
||||
|
||||
void Logger::postGuiLog(const QString &title, const QString &message)
|
||||
{
|
||||
emit guiLog(title, message);
|
||||
|
||||
@@ -41,6 +41,7 @@ class OWNCLOUDSYNC_EXPORT Logger : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
|
||||
void log(Log log);
|
||||
|
||||
static void csyncLog( const QString& message );
|
||||
@@ -49,7 +50,6 @@ public:
|
||||
const QList<Log>& logs() const {return _logs;}
|
||||
|
||||
static Logger* instance();
|
||||
static void destroy();
|
||||
|
||||
void postGuiLog(const QString& title, const QString& message);
|
||||
void postOptionalGuiLog(const QString& title, const QString& message);
|
||||
@@ -69,14 +69,12 @@ signals:
|
||||
public slots:
|
||||
void enterNextLogFile();
|
||||
|
||||
protected:
|
||||
private:
|
||||
Logger(QObject* parent=0);
|
||||
~Logger();
|
||||
QList<Log> _logs;
|
||||
bool _showTime;
|
||||
bool _doLogging;
|
||||
|
||||
static Logger* _instance;
|
||||
|
||||
QFile _logFile;
|
||||
bool _doFileFlush;
|
||||
int _logExpire;
|
||||
|
||||
@@ -14,7 +14,9 @@
|
||||
#include <QNetworkRequest>
|
||||
#include <QNetworkProxy>
|
||||
#include <QAuthenticator>
|
||||
#include <QSslConfiguration>
|
||||
|
||||
#include "mirall/cookiejar.h"
|
||||
#include "mirall/mirallaccessmanager.h"
|
||||
#include "mirall/utility.h"
|
||||
|
||||
@@ -30,6 +32,7 @@ MirallAccessManager::MirallAccessManager(QObject* parent)
|
||||
proxy.setHostName(" ");
|
||||
setProxy(proxy);
|
||||
#endif
|
||||
setCookieJar(new CookieJar);
|
||||
QObject::connect(this, SIGNAL(proxyAuthenticationRequired(QNetworkProxy,QAuthenticator*)),
|
||||
this, SLOT(slotProxyAuthenticationRequired(QNetworkProxy,QAuthenticator*)));
|
||||
}
|
||||
|
||||
@@ -47,6 +47,7 @@ static const char monoIconsC[] = "monoIcons";
|
||||
static const char optionalDesktopNoficationsC[] = "optionalDesktopNotifications";
|
||||
static const char skipUpdateCheckC[] = "skipUpdateCheck";
|
||||
static const char geometryC[] = "geometry";
|
||||
static const char timeoutC[] = "timeout";
|
||||
|
||||
static const char proxyHostC[] = "Proxy/host";
|
||||
static const char proxyTypeC[] = "Proxy/type";
|
||||
@@ -103,6 +104,12 @@ bool MirallConfigFile::optionalDesktopNotifications() const
|
||||
return settings.value(QLatin1String(optionalDesktopNoficationsC), true).toBool();
|
||||
}
|
||||
|
||||
int MirallConfigFile::timeout() const
|
||||
{
|
||||
QSettings settings(configFile(), QSettings::IniFormat);
|
||||
return settings.value(QLatin1String(timeoutC), 300).toInt(); // default to 5 min
|
||||
}
|
||||
|
||||
void MirallConfigFile::setOptionalDesktopNotifications(bool show)
|
||||
{
|
||||
QSettings settings(configFile(), QSettings::IniFormat);
|
||||
|
||||
@@ -97,6 +97,8 @@ public:
|
||||
bool optionalDesktopNotifications() const;
|
||||
void setOptionalDesktopNotifications(bool show);
|
||||
|
||||
int timeout() const;
|
||||
|
||||
void saveGeometry(QWidget *w);
|
||||
void restoreGeometry(QWidget *w);
|
||||
|
||||
|
||||
@@ -63,8 +63,6 @@ public:
|
||||
void setReply(QNetworkReply *reply);
|
||||
QNetworkReply* reply() const { return _reply; }
|
||||
|
||||
void setTimeout(qint64 msec);
|
||||
void resetTimeout();
|
||||
|
||||
void setIgnoreCredentialFailure(bool ignore);
|
||||
bool ignoreCredentialFailure() const { return _ignoreCredentialFailure; }
|
||||
@@ -72,6 +70,9 @@ public:
|
||||
QString responseTimestamp();
|
||||
quint64 duration();
|
||||
|
||||
public slots:
|
||||
void setTimeout(qint64 msec);
|
||||
void resetTimeout();
|
||||
signals:
|
||||
void networkError(QNetworkReply *reply);
|
||||
protected:
|
||||
@@ -100,7 +101,7 @@ private slots:
|
||||
private:
|
||||
QNetworkReply* addTimer(QNetworkReply *reply);
|
||||
bool _ignoreCredentialFailure;
|
||||
QNetworkReply *_reply;
|
||||
QPointer<QNetworkReply> _reply; // (QPointer because the NetworkManager may be destroyed before the jobs at exit)
|
||||
Account *_account;
|
||||
QString _path;
|
||||
QTimer _timer;
|
||||
|
||||
@@ -19,9 +19,16 @@
|
||||
#include "propagator_qnam.h"
|
||||
#include "propagatorjobs.h"
|
||||
#include "propagator_legacy.h"
|
||||
#include "mirall/mirallconfigfile.h"
|
||||
#include "mirall/utility.h"
|
||||
|
||||
#ifdef Q_OS_WIN
|
||||
#include <windef.h>
|
||||
#include <winbase.h>
|
||||
#endif
|
||||
|
||||
#include <QStack>
|
||||
#include <QFileInfo>
|
||||
|
||||
namespace Mirall {
|
||||
|
||||
@@ -45,11 +52,6 @@ void PropagateItemJob::done(SyncFileItem::Status status, const QString &errorStr
|
||||
if( _item._httpErrorCode == 403 ||_item._httpErrorCode == 413 || _item._httpErrorCode == 415 ) {
|
||||
qDebug() << "Fatal Error condition" << _item._httpErrorCode << ", forbid retry!";
|
||||
retries = -1;
|
||||
#ifdef OWNCLOUD_5XX_NO_BLACKLIST
|
||||
} else if (_item._httpErrorCode / 100 == 5) {
|
||||
// In this configuration, never blacklist error 5xx
|
||||
qDebug() << "Do not blacklist error " << _item._httpErrorCode;
|
||||
#endif
|
||||
} else {
|
||||
static QAtomicInt defaultRetriesCount(qgetenv("OWNCLOUD_BLACKLIST_COUNT").toInt());
|
||||
if (defaultRetriesCount.fetchAndAddAcquire(0) <= 0) {
|
||||
@@ -61,10 +63,17 @@ void PropagateItemJob::done(SyncFileItem::Status status, const QString &errorStr
|
||||
|
||||
switch( status ) {
|
||||
case SyncFileItem::SoftError:
|
||||
// do not blacklist in case of soft error.
|
||||
break;
|
||||
case SyncFileItem::FatalError:
|
||||
// do not blacklist in case of soft error or fatal error.
|
||||
break;
|
||||
case SyncFileItem::NormalError:
|
||||
#ifdef OWNCLOUD_5XX_NO_BLACKLIST
|
||||
if (_item._httpErrorCode / 100 == 5) {
|
||||
// In this configuration, never blacklist error 5xx
|
||||
qDebug() << "Do not blacklist error " << _item._httpErrorCode;
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
_propagator->_journal->updateBlacklistEntry( record );
|
||||
break;
|
||||
case SyncFileItem::Success:
|
||||
@@ -151,6 +160,8 @@ void PropagateItemJob::slotRestoreJobCompleted(const SyncFileItem& item )
|
||||
}
|
||||
}
|
||||
|
||||
// ================================================================================
|
||||
|
||||
PropagateItemJob* OwncloudPropagator::createJob(const SyncFileItem& item) {
|
||||
switch(item._instruction) {
|
||||
case CSYNC_INSTRUCTION_REMOVE:
|
||||
@@ -240,7 +251,7 @@ void OwncloudPropagator::start(const SyncFileItemVector& _syncedItems)
|
||||
|
||||
connect(_rootJob.data(), SIGNAL(completed(SyncFileItem)), this, SIGNAL(completed(SyncFileItem)));
|
||||
connect(_rootJob.data(), SIGNAL(progress(SyncFileItem,quint64)), this, SIGNAL(progress(SyncFileItem,quint64)));
|
||||
connect(_rootJob.data(), SIGNAL(finished(SyncFileItem::Status)), this, SIGNAL(finished()));
|
||||
connect(_rootJob.data(), SIGNAL(finished(SyncFileItem::Status)), this, SLOT(emitFinished()));
|
||||
|
||||
qDebug() << (useLegacyJobs() ? "Using legacy libneon/HTTP sequential code path" : "Using QNAM/HTTP parallel code path");
|
||||
|
||||
@@ -279,6 +290,58 @@ bool OwncloudPropagator::useLegacyJobs()
|
||||
return env=="true" || env =="1";
|
||||
}
|
||||
|
||||
int OwncloudPropagator::httpTimeout()
|
||||
{
|
||||
static int timeout;
|
||||
if (!timeout) {
|
||||
timeout = qgetenv("OWNCLOUD_TIMEOUT").toUInt();
|
||||
if (timeout == 0) {
|
||||
MirallConfigFile cfg;
|
||||
timeout = cfg.timeout();
|
||||
}
|
||||
|
||||
}
|
||||
return timeout;
|
||||
}
|
||||
|
||||
bool OwncloudPropagator::localFileNameClash( const QString& relFile )
|
||||
{
|
||||
bool re = false;
|
||||
const QString file( _localDir + relFile );
|
||||
|
||||
if( !file.isEmpty() && Utility::fsCasePreserving() ) {
|
||||
#ifdef Q_OS_MAC
|
||||
QFileInfo fileInfo(file);
|
||||
if (!fileInfo.exists()) {
|
||||
re = false;
|
||||
} else {
|
||||
re = ( ! fileInfo.canonicalFilePath().endsWith(relFile, Qt::CaseSensitive) );
|
||||
}
|
||||
#elif defined(Q_OS_WIN)
|
||||
const QString file( _localDir + relFile );
|
||||
qDebug() << "CaseClashCheck for " << file;
|
||||
WIN32_FIND_DATA FindFileData;
|
||||
HANDLE hFind;
|
||||
|
||||
hFind = FindFirstFileW( (wchar_t*)file.utf16(), &FindFileData);
|
||||
if (hFind == INVALID_HANDLE_VALUE) {
|
||||
//qDebug() << "FindFirstFile failed " << GetLastError();
|
||||
// returns false.
|
||||
} else {
|
||||
QString realFileName = QString::fromWCharArray( FindFileData.cFileName );
|
||||
qDebug() << Q_FUNC_INFO << "Real file name is " << realFileName;
|
||||
FindClose(hFind);
|
||||
|
||||
if( ! file.endsWith(realFileName, Qt::CaseSensitive) ) {
|
||||
re = true;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
return re;
|
||||
}
|
||||
|
||||
// ================================================================================
|
||||
|
||||
void PropagateDirectory::start()
|
||||
{
|
||||
@@ -337,5 +400,4 @@ void PropagateDirectory::slotSubJobReady()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -187,6 +187,7 @@ public:
|
||||
const QString _remoteFolder; // folder. (same as remoteDir but without remote.php/webdav)
|
||||
|
||||
SyncJournalDb * const _journal;
|
||||
bool _finishedEmited; // used to ensure that finished is only emit once
|
||||
|
||||
public:
|
||||
OwncloudPropagator(ne_session_s *session, const QString &localDir, const QString &remoteDir, const QString &remoteFolder,
|
||||
@@ -197,6 +198,7 @@ public:
|
||||
, _remoteDir((remoteDir.endsWith(QChar('/'))) ? remoteDir : remoteDir+'/' )
|
||||
, _remoteFolder((remoteFolder.endsWith(QChar('/'))) ? remoteFolder : remoteFolder+'/' )
|
||||
, _journal(progressDb)
|
||||
, _finishedEmited(false)
|
||||
, _activeJobs(0)
|
||||
{ }
|
||||
|
||||
@@ -210,17 +212,28 @@ public:
|
||||
/* The number of currently active jobs */
|
||||
int _activeJobs;
|
||||
|
||||
|
||||
bool isInSharedDirectory(const QString& file);
|
||||
|
||||
bool localFileNameClash(const QString& relfile);
|
||||
|
||||
void abort() {
|
||||
_abortRequested.fetchAndStoreOrdered(true);
|
||||
if (_rootJob)
|
||||
if (_rootJob) {
|
||||
_rootJob->abort();
|
||||
emit finished();
|
||||
}
|
||||
emitFinished();
|
||||
}
|
||||
|
||||
// timeout in seconds
|
||||
static int httpTimeout();
|
||||
|
||||
private slots:
|
||||
|
||||
/** Emit the finished signal and make sure it is only emit once */
|
||||
void emitFinished() {
|
||||
if (!_finishedEmited)
|
||||
emit finished();
|
||||
_finishedEmited = true;
|
||||
}
|
||||
|
||||
signals:
|
||||
void completed(const SyncFileItem &);
|
||||
|
||||
@@ -187,7 +187,8 @@ void OwncloudSetupWizard::slotNoOwnCloudFoundAuthTimeout(const QUrl&url)
|
||||
void OwncloudSetupWizard::slotConnectToOCUrl( const QString& url )
|
||||
{
|
||||
qDebug() << "Connect to url: " << url;
|
||||
_ocWizard->account()->setCredentials(_ocWizard->getCredentials());
|
||||
AbstractCredentials *creds = _ocWizard->getCredentials();
|
||||
_ocWizard->account()->setCredentials(creds);
|
||||
_ocWizard->setField(QLatin1String("OCUrl"), url );
|
||||
_ocWizard->appendToConfigurationLog(tr("Trying to connect to %1 at %2...")
|
||||
.arg( Theme::instance()->appNameGUI() ).arg(url) );
|
||||
@@ -197,7 +198,9 @@ void OwncloudSetupWizard::slotConnectToOCUrl( const QString& url )
|
||||
|
||||
void OwncloudSetupWizard::testOwnCloudConnect()
|
||||
{
|
||||
ValidateDavAuthJob *job = new ValidateDavAuthJob(_ocWizard->account(), this);
|
||||
Account *account = _ocWizard->account();
|
||||
|
||||
ValidateDavAuthJob *job = new ValidateDavAuthJob(account, this);
|
||||
job->setIgnoreCredentialFailure(true);
|
||||
connect(job, SIGNAL(authResult(QNetworkReply*)), SLOT(slotConnectionCheck(QNetworkReply*)));
|
||||
job->start();
|
||||
@@ -483,7 +486,8 @@ ValidateDavAuthJob::ValidateDavAuthJob(Account *account, QObject *parent)
|
||||
|
||||
void ValidateDavAuthJob::start()
|
||||
{
|
||||
QNetworkReply *reply = getRequest(account()->davPath());
|
||||
QString p = account()->davPath();
|
||||
QNetworkReply *reply = getRequest(p);
|
||||
setReply(reply);
|
||||
setupConnections(reply);
|
||||
AbstractNetworkJob::start();
|
||||
|
||||
@@ -108,7 +108,9 @@ ProgressDispatcher::~ProgressDispatcher()
|
||||
|
||||
void ProgressDispatcher::setProgressInfo(const QString& folder, const Progress::Info& progress)
|
||||
{
|
||||
if( folder.isEmpty() ) {
|
||||
if( folder.isEmpty() ||
|
||||
(progress._currentItems.size() == 0
|
||||
&& progress._totalFileCount == 0) ) {
|
||||
return;
|
||||
}
|
||||
emit progressInfo( folder, progress );
|
||||
|
||||
@@ -54,10 +54,12 @@ namespace Progress
|
||||
|
||||
void setProgressComplete(const SyncFileItem &item) {
|
||||
_currentItems.remove(item._file);
|
||||
if (Progress::isSizeDependent(item._instruction)) {
|
||||
_completedSize += item._size;
|
||||
if (!item._isDirectory) {
|
||||
_completedFileCount++;
|
||||
if (Progress::isSizeDependent(item._instruction)) {
|
||||
_completedSize += item._size;
|
||||
}
|
||||
}
|
||||
_completedFileCount++;
|
||||
_lastCompletedItem = item;
|
||||
}
|
||||
void setProgressItem(const SyncFileItem &item, quint64 size) {
|
||||
@@ -69,7 +71,8 @@ namespace Progress
|
||||
quint64 completedSize() const {
|
||||
quint64 r = _completedSize;
|
||||
foreach(const ProgressItem &i, _currentItems) {
|
||||
r += i._completedSize;
|
||||
if (!i._item._isDirectory)
|
||||
r += i._completedSize;
|
||||
}
|
||||
return r;
|
||||
}
|
||||
|
||||
@@ -444,6 +444,13 @@ void PropagateDownloadFileLegacy::start()
|
||||
if (_propagator->_abortRequested.fetchAndAddRelaxed(0))
|
||||
return;
|
||||
|
||||
// do a case clash check.
|
||||
if( _propagator->localFileNameClash(_item._file) ) {
|
||||
done( SyncFileItem::NormalError, tr("File %1 can not be downloaded because of a local file name clash!")
|
||||
.arg(QDir::toNativeSeparators(_item._file)) );
|
||||
return;
|
||||
}
|
||||
|
||||
emit progress(_item, 0);
|
||||
|
||||
QString tmpFileName;
|
||||
|
||||
@@ -22,10 +22,22 @@
|
||||
#include "propagatorjobs.h"
|
||||
#include <QNetworkAccessManager>
|
||||
#include <QFileInfo>
|
||||
#include <QDir>
|
||||
#include <cmath>
|
||||
|
||||
namespace Mirall {
|
||||
|
||||
static uint chunkSize() {
|
||||
static uint chunkSize;
|
||||
if (!chunkSize) {
|
||||
chunkSize = qgetenv("OWNCLOUD_CHUNK_SIZE").toUInt();
|
||||
if (chunkSize == 0) {
|
||||
chunkSize = 10*1024*1024; // default to 10 MiB
|
||||
}
|
||||
}
|
||||
return chunkSize;
|
||||
}
|
||||
|
||||
/**
|
||||
* Fiven an error from the network, map to a SyncFileItem::Status error
|
||||
*/
|
||||
@@ -61,19 +73,14 @@ void PUTFileJob::start() {
|
||||
}
|
||||
|
||||
connect(reply(), SIGNAL(uploadProgress(qint64,qint64)), this, SIGNAL(uploadProgress(qint64,qint64)));
|
||||
connect(reply(), SIGNAL(uploadProgress(qint64,qint64)), this, SLOT(resetTimeout()));
|
||||
|
||||
AbstractNetworkJob::start();
|
||||
}
|
||||
|
||||
static uint chunkSize() {
|
||||
static uint chunkSize;
|
||||
if (!chunkSize) {
|
||||
chunkSize = qgetenv("OWNCLOUD_CHUNK_SIZE").toUInt();
|
||||
if (chunkSize == 0) {
|
||||
chunkSize = 10*1024*1024; // default to 10 MiB
|
||||
}
|
||||
}
|
||||
return chunkSize;
|
||||
void PUTFileJob::slotTimeout() {
|
||||
_errorString = tr("Connection Timeout");
|
||||
reply()->abort();
|
||||
}
|
||||
|
||||
void PropagateUploadFileQNAM::start()
|
||||
@@ -111,7 +118,6 @@ void PropagateUploadFileQNAM::start()
|
||||
}
|
||||
|
||||
struct ChunkDevice : QIODevice {
|
||||
Q_OBJECT
|
||||
public:
|
||||
QIODevice *_file;
|
||||
qint64 _read;
|
||||
@@ -162,7 +168,6 @@ public:
|
||||
return _file->seek(pos + _start);
|
||||
}
|
||||
};
|
||||
#include "propagator_qnam.moc"
|
||||
|
||||
void PropagateUploadFileQNAM::startNextChunk()
|
||||
{
|
||||
@@ -217,6 +222,7 @@ void PropagateUploadFileQNAM::startNextChunk()
|
||||
device->open(QIODevice::ReadOnly);
|
||||
|
||||
_job = new PUTFileJob(AccountManager::instance()->account(), _propagator->_remoteFolder + path, device, headers);
|
||||
_job->setTimeout(_propagator->httpTimeout() * 1000);
|
||||
connect(_job, SIGNAL(finishedSignal()), this, SLOT(slotPutFinished()));
|
||||
connect(_job, SIGNAL(uploadProgress(qint64,qint64)), this, SLOT(slotUploadProgress(qint64,qint64)));
|
||||
_job->start();
|
||||
@@ -242,7 +248,7 @@ void PropagateUploadFileQNAM::slotPutFinished()
|
||||
"It is restored and your edit is in the conflict file."))) {
|
||||
return;
|
||||
}
|
||||
QString errorString = job->reply()->errorString();
|
||||
QString errorString = job->errorString();
|
||||
|
||||
QByteArray replyContent = job->reply()->readAll();
|
||||
qDebug() << replyContent; // display the XML error in the debug
|
||||
@@ -273,7 +279,7 @@ void PropagateUploadFileQNAM::slotPutFinished()
|
||||
_currentChunk++;
|
||||
if (_currentChunk >= _chunkCount) {
|
||||
_propagator->_activeJobs--;
|
||||
done(SyncFileItem::NormalError, tr("The server did not aknoledge the last chunk. (No e-tag were present)"));
|
||||
done(SyncFileItem::NormalError, tr("The server did not acknowledge the last chunk. (No e-tag were present)"));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -288,6 +294,8 @@ void PropagateUploadFileQNAM::slotPutFinished()
|
||||
return;
|
||||
}
|
||||
|
||||
// the following code only happens after all chunks were uploaded.
|
||||
//
|
||||
// the file id should only be empty for new files up- or downloaded
|
||||
QByteArray fid = job->reply()->rawHeader("OC-FileID");
|
||||
if( !fid.isEmpty() ) {
|
||||
@@ -372,8 +380,8 @@ void GETFileJob::start() {
|
||||
|
||||
void GETFileJob::slotMetaDataChanged()
|
||||
{
|
||||
qDebug() << Q_FUNC_INFO << reply()->error() << reply()->errorString() << reply()->attribute(QNetworkRequest::HttpStatusCodeAttribute);
|
||||
if (reply()->error() != QNetworkReply::NoError ) {
|
||||
if (reply()->error() != QNetworkReply::NoError
|
||||
|| reply()->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt() / 100 != 2) {
|
||||
// We will handle the error when the job is finished.
|
||||
return;
|
||||
}
|
||||
@@ -420,10 +428,9 @@ void GETFileJob::slotReadyRead()
|
||||
return;
|
||||
}
|
||||
}
|
||||
resetTimeout();
|
||||
}
|
||||
|
||||
|
||||
|
||||
void PropagateDownloadFileQNAM::start()
|
||||
{
|
||||
if (_propagator->_abortRequested.fetchAndAddRelaxed(0))
|
||||
@@ -431,6 +438,13 @@ void PropagateDownloadFileQNAM::start()
|
||||
|
||||
qDebug() << Q_FUNC_INFO << _item._file << _propagator->_activeJobs;
|
||||
|
||||
// do a case clash check.
|
||||
if( _propagator->localFileNameClash(_item._file) ) {
|
||||
done( SyncFileItem::NormalError, tr("File %1 can not be downloaded because of a local file name clash!")
|
||||
.arg(QDir::toNativeSeparators(_item._file)) );
|
||||
return;
|
||||
}
|
||||
|
||||
emit progress(_item, 0);
|
||||
|
||||
QString tmpFileName;
|
||||
@@ -495,6 +509,7 @@ void PropagateDownloadFileQNAM::start()
|
||||
_job = new GETFileJob(AccountManager::instance()->account(),
|
||||
_propagator->_remoteFolder + _item._file,
|
||||
&_tmpFile, headers, expectedEtagForResume);
|
||||
_job->setTimeout(_propagator->httpTimeout() * 1000);
|
||||
connect(_job, SIGNAL(finishedSignal()), this, SLOT(slotGetFinished()));
|
||||
connect(_job, SIGNAL(downloadProgress(qint64,qint64)), this, SLOT(slotDownloadProgress(qint64,qint64)));
|
||||
_propagator->_activeJobs ++;
|
||||
@@ -509,7 +524,9 @@ void PropagateDownloadFileQNAM::slotGetFinished()
|
||||
GETFileJob *job = qobject_cast<GETFileJob *>(sender());
|
||||
Q_ASSERT(job);
|
||||
|
||||
qDebug() << Q_FUNC_INFO << job->reply()->request().url() << "FINISHED WITH STATUS" << job->reply()->error() << job->reply()->errorString();
|
||||
qDebug() << Q_FUNC_INFO << job->reply()->request().url() << "FINISHED WITH STATUS"
|
||||
<< job->reply()->error()
|
||||
<< (job->reply()->error() == QNetworkReply::NoError ? QLatin1String("") : job->reply()->errorString());
|
||||
|
||||
QNetworkReply::NetworkError err = job->reply()->error();
|
||||
if (err != QNetworkReply::NoError) {
|
||||
@@ -611,5 +628,13 @@ void PropagateDownloadFileQNAM::abort()
|
||||
_job->reply()->abort();
|
||||
}
|
||||
|
||||
void GETFileJob::slotTimeout()
|
||||
{
|
||||
_errorString = tr("Connection Timeout");
|
||||
_errorStatus = SyncFileItem::FatalError;
|
||||
reply()->abort();
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -53,6 +53,7 @@ class PUTFileJob : public AbstractNetworkJob {
|
||||
Q_OBJECT
|
||||
QIODevice* _device;
|
||||
QMap<QByteArray, QByteArray> _headers;
|
||||
QString _errorString;
|
||||
|
||||
public:
|
||||
// Takes ownership of the device
|
||||
@@ -67,6 +68,13 @@ public:
|
||||
return true;
|
||||
}
|
||||
|
||||
QString errorString() {
|
||||
return _errorString.isEmpty() ? reply()->errorString() : _errorString;
|
||||
};
|
||||
|
||||
virtual void slotTimeout();
|
||||
|
||||
|
||||
signals:
|
||||
void finishedSignal();
|
||||
void uploadProgress(qint64,qint64);
|
||||
@@ -124,6 +132,9 @@ public:
|
||||
|
||||
SyncFileItem::Status errorStatus() { return _errorStatus; }
|
||||
|
||||
virtual void slotTimeout();
|
||||
|
||||
|
||||
signals:
|
||||
void finishedSignal();
|
||||
void downloadProgress(qint64,qint64);
|
||||
|
||||
@@ -44,11 +44,6 @@
|
||||
#include <neon/ne_compress.h>
|
||||
#include <neon/ne_redirect.h>
|
||||
|
||||
#ifdef Q_OS_WIN
|
||||
#include <windef.h>
|
||||
#include <winbase.h>
|
||||
#endif
|
||||
|
||||
#include <time.h>
|
||||
|
||||
|
||||
@@ -81,9 +76,16 @@ void PropagateLocalRemove::start()
|
||||
return;
|
||||
|
||||
QString filename = _propagator->_localDir + _item._file;
|
||||
if( _propagator->localFileNameClash(_item._file)) {
|
||||
done(SyncFileItem::NormalError, tr("Could not remove %1 because of a local file name clash")
|
||||
.arg(QDir::toNativeSeparators(filename)));
|
||||
return;
|
||||
}
|
||||
|
||||
if (_item._isDirectory) {
|
||||
if (QDir(filename).exists() && !removeRecursively(filename)) {
|
||||
done(SyncFileItem::NormalError, tr("Could not remove directory %1").arg(filename));
|
||||
done(SyncFileItem::NormalError, tr("Could not remove directory %1")
|
||||
.arg(QDir::toNativeSeparators(filename)));
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
@@ -104,9 +106,17 @@ void PropagateLocalMkdir::start()
|
||||
if (_propagator->_abortRequested.fetchAndAddRelaxed(0))
|
||||
return;
|
||||
|
||||
QDir d;
|
||||
if (!d.mkpath(_propagator->_localDir + _item._file)) {
|
||||
done(SyncFileItem::NormalError, tr("could not create directory %1").arg(_propagator->_localDir + _item._file));
|
||||
QDir newDir(_propagator->_localDir + _item._file);
|
||||
QString newDirStr = QDir::toNativeSeparators(newDir.path());
|
||||
if( Utility::fsCasePreserving() && newDir.exists() &&
|
||||
_propagator->localFileNameClash(_item._file ) ) {
|
||||
qDebug() << "WARN: new directory to create locally already exists!";
|
||||
done( SyncFileItem::NormalError, tr("Attention, possible case sensitivity clash with %1").arg(newDirStr) );
|
||||
return;
|
||||
}
|
||||
QDir localDir(_propagator->_localDir);
|
||||
if (!localDir.mkpath(_item._file)) {
|
||||
done( SyncFileItem::NormalError, tr("could not create directory %1").arg(newDirStr) );
|
||||
return;
|
||||
}
|
||||
done(SyncFileItem::Success);
|
||||
@@ -178,7 +188,19 @@ void PropagateLocalRename::start()
|
||||
if (_item._file != _item._renameTarget) {
|
||||
emit progress(_item, 0);
|
||||
qDebug() << "MOVE " << _propagator->_localDir + _item._file << " => " << _propagator->_localDir + _item._renameTarget;
|
||||
QFile::rename(_propagator->_localDir + _item._file, _propagator->_localDir + _item._renameTarget);
|
||||
QFile file(_propagator->_localDir + _item._file);
|
||||
|
||||
if (_propagator->localFileNameClash(_item._renameTarget)) {
|
||||
// Fixme: the file that is the reason for the clash could be named here,
|
||||
// it would have to come out the localFileNameClash function
|
||||
done(SyncFileItem::NormalError, tr( "File %1 can not be renamed to %2 because of a local file name clash")
|
||||
.arg(QDir::toNativeSeparators(_item._file)).arg(QDir::toNativeSeparators(_item._renameTarget)) );
|
||||
return;
|
||||
}
|
||||
if (!file.rename(_propagator->_localDir + _item._file, _propagator->_localDir + _item._renameTarget)) {
|
||||
done(SyncFileItem::NormalError, file.errorString());
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
_propagator->_journal->deleteFileRecord(_item._originalFile);
|
||||
|
||||
@@ -81,6 +81,7 @@ class PropagateLocalMkdir : public PropagateItemJob {
|
||||
public:
|
||||
PropagateLocalMkdir (OwncloudPropagator* propagator,const SyncFileItem& item) : PropagateItemJob(propagator, item) {}
|
||||
void start();
|
||||
|
||||
};
|
||||
class PropagateRemoteRemove : public PropagateNeonJob {
|
||||
Q_OBJECT
|
||||
|
||||
@@ -23,8 +23,6 @@ namespace Mirall {
|
||||
SettingsDialogMac::SettingsDialogMac(ownCloudGui *gui, QWidget *parent)
|
||||
: MacPreferencesWindow(parent)
|
||||
{
|
||||
setWindowFlags(windowFlags() | Qt::WindowStaysOnTopHint);
|
||||
|
||||
setObjectName("SettingsMac"); // required as group for saveGeometry call
|
||||
|
||||
setWindowTitle(tr("%1").arg(Theme::instance()->appNameGUI()));
|
||||
@@ -51,8 +49,6 @@ SettingsDialogMac::SettingsDialogMac(ownCloudGui *gui, QWidget *parent)
|
||||
|
||||
connect( ProgressDispatcher::instance(), SIGNAL(progressInfo(QString, Progress::Info)),
|
||||
_accountSettings, SLOT(slotSetProgress(QString, Progress::Info)) );
|
||||
connect( ProgressDispatcher::instance(), SIGNAL(progressSyncProblem(QString,Progress::SyncProblem)),
|
||||
_accountSettings, SLOT(slotProgressProblem(QString,Progress::SyncProblem)) );
|
||||
|
||||
QAction *showLogWindow = new QAction(this);
|
||||
showLogWindow->setShortcut(QKeySequence("F12"));
|
||||
|
||||
@@ -83,7 +83,7 @@ QMenu* SslButton::buildCertMenu(QMenu *parent, const QSslCertificate& cert,
|
||||
QLatin1String("<br/>") +
|
||||
Utility::escape(Utility::formatFingerprint(sha265hash.mid(sha265hash.length()/2), false));
|
||||
#endif
|
||||
QString serial = QString::fromUtf8(cert.serialNumber(), true);
|
||||
QString serial = QString::fromUtf8(cert.serialNumber());
|
||||
QString effectiveDate = cert.effectiveDate().date().toString();
|
||||
QString expiryDate = cert.expiryDate().date().toString();
|
||||
QString sna = QStringList(cert.alternateSubjectNames().values()).join(" ");
|
||||
|
||||
@@ -52,8 +52,7 @@ void csyncLogCatcher(int /*verbosity*/,
|
||||
Logger::instance()->csyncLog( QString::fromUtf8(buffer) );
|
||||
}
|
||||
|
||||
/* static variables to hold the credentials */
|
||||
QMutex SyncEngine::_syncMutex;
|
||||
bool SyncEngine::_syncRunning = false;
|
||||
|
||||
SyncEngine::SyncEngine(CSYNC *ctx, const QString& localPath, const QString& remoteURL, const QString& remotePath, Mirall::SyncJournalDb* journal)
|
||||
{
|
||||
@@ -66,6 +65,7 @@ SyncEngine::SyncEngine(CSYNC *ctx, const QString& localPath, const QString& remo
|
||||
qRegisterMetaType<SyncFileItem::Status>("SyncFileItem::Status");
|
||||
qRegisterMetaType<Progress::Info>("Progress::Info");
|
||||
|
||||
_thread.setObjectName("CSync_Neon_Thread");
|
||||
_thread.start();
|
||||
}
|
||||
|
||||
@@ -292,6 +292,8 @@ int SyncEngine::treewalkFile( TREE_WALK_FILE *file, bool remote )
|
||||
item._modtime = file->modtime;
|
||||
item._etag = file->etag;
|
||||
item._size = file->size;
|
||||
item._inode = file->inode;
|
||||
|
||||
item._should_update_etag = file->should_update_etag;
|
||||
switch( file->type ) {
|
||||
case CSYNC_FTW_TYPE_DIR:
|
||||
@@ -412,18 +414,13 @@ void SyncEngine::handleSyncError(CSYNC *ctx, const char *state) {
|
||||
} else {
|
||||
emit csyncError(errStr);
|
||||
}
|
||||
csync_commit(_csync_ctx);
|
||||
emit finished();
|
||||
_syncMutex.unlock();
|
||||
_thread.quit();
|
||||
finalize();
|
||||
}
|
||||
|
||||
void SyncEngine::startSync()
|
||||
{
|
||||
if (!_syncMutex.tryLock()) {
|
||||
qDebug() << Q_FUNC_INFO << "WARNING: Another sync seems to be running. Not starting a new one.";
|
||||
return;
|
||||
}
|
||||
Q_ASSERT(!_syncRunning);
|
||||
_syncRunning = true;
|
||||
|
||||
if( ! _csync_ctx ) {
|
||||
qDebug() << "XXXXXXXXXXXXXXXX FAIL: do not have csync_ctx!";
|
||||
@@ -449,12 +446,7 @@ void SyncEngine::startSync()
|
||||
if( fileRecordCount == -1 ) {
|
||||
qDebug() << "No way to create a sync journal!";
|
||||
emit csyncError(tr("Unable to initialize a sync journal."));
|
||||
|
||||
csync_commit(_csync_ctx);
|
||||
emit finished();
|
||||
_syncMutex.unlock();
|
||||
_thread.quit();
|
||||
|
||||
finalize();
|
||||
return;
|
||||
// database creation error!
|
||||
} else if ( fileRecordCount < 50 ) {
|
||||
@@ -499,6 +491,9 @@ void SyncEngine::startSync()
|
||||
// csync_set_auth_callback( _csync_ctx, getauth );
|
||||
csync_set_log_callback( csyncLogCatcher );
|
||||
//csync_set_log_level( 11 ); don't set the loglevel here, it shall be done by folder.cpp or owncloudcmd.cpp
|
||||
int timeout = OwncloudPropagator::httpTimeout();
|
||||
csync_set_module_property(_csync_ctx, "timeout", &timeout);
|
||||
|
||||
|
||||
_stopWatch.start();
|
||||
|
||||
@@ -548,9 +543,7 @@ void SyncEngine::slotUpdateFinished(int updateResult)
|
||||
if (!_journal->isConnected()) {
|
||||
qDebug() << "Bailing out, DB failure";
|
||||
emit csyncError(tr("Cannot open the sync journal"));
|
||||
emit finished();
|
||||
_syncMutex.unlock();
|
||||
_thread.quit();
|
||||
finalize();
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -564,9 +557,7 @@ void SyncEngine::slotUpdateFinished(int updateResult)
|
||||
emit aboutToRemoveAllFiles(_syncedItems.first()._direction, &cancel);
|
||||
if (cancel) {
|
||||
qDebug() << Q_FUNC_INFO << "Abort sync";
|
||||
emit finished();
|
||||
_syncMutex.unlock();
|
||||
_thread.quit();
|
||||
finalize();
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -586,7 +577,7 @@ void SyncEngine::slotUpdateFinished(int updateResult)
|
||||
connect(_propagator.data(), SIGNAL(progress(SyncFileItem,quint64)),
|
||||
this, SLOT(slotProgress(SyncFileItem,quint64)));
|
||||
connect(_propagator.data(), SIGNAL(adjustTotalTransmissionSize(qint64)), this, SLOT(slotAdjustTotalTransmissionSize(qint64)));
|
||||
connect(_propagator.data(), SIGNAL(finished()), this, SLOT(slotFinished()));
|
||||
connect(_propagator.data(), SIGNAL(finished()), this, SLOT(slotFinished()), Qt::QueuedConnection);
|
||||
|
||||
setNetworkLimits();
|
||||
|
||||
@@ -666,16 +657,21 @@ void SyncEngine::slotFinished()
|
||||
}
|
||||
_journal->commit("All Finished.", false);
|
||||
emit treeWalkResult(_syncedItems);
|
||||
finalize();
|
||||
}
|
||||
|
||||
void SyncEngine::finalize()
|
||||
{
|
||||
csync_commit(_csync_ctx);
|
||||
|
||||
qDebug() << "CSync run took " << _stopWatch.addLapTime(QLatin1String("Sync Finished"));
|
||||
_stopWatch.stop();
|
||||
|
||||
emit finished();
|
||||
_propagator.reset(0);
|
||||
_syncMutex.unlock();
|
||||
_thread.quit();
|
||||
_thread.wait();
|
||||
_syncRunning = false;
|
||||
emit finished();
|
||||
}
|
||||
|
||||
void SyncEngine::slotProgress(const SyncFileItem& item, quint64 current)
|
||||
|
||||
@@ -101,7 +101,10 @@ private:
|
||||
int treewalkFile( TREE_WALK_FILE*, bool );
|
||||
bool checkBlacklisting( SyncFileItem *item );
|
||||
|
||||
static QMutex _syncMutex;
|
||||
// cleanup and emit the finished signal
|
||||
void finalize();
|
||||
|
||||
static bool _syncRunning; //true when one sync is running somewhere (for debugging)
|
||||
SyncFileItemVector _syncedItems;
|
||||
|
||||
CSYNC *_csync_ctx;
|
||||
|
||||
@@ -50,7 +50,7 @@ public:
|
||||
};
|
||||
|
||||
SyncFileItem() : _type(UnknownType), _direction(None), _instruction(CSYNC_INSTRUCTION_NONE),
|
||||
_should_update_etag(false), _blacklistedInDb(false),
|
||||
_size(0), _should_update_etag(false), _blacklistedInDb(false),
|
||||
_status(NoStatus), _httpErrorCode(0), _requestDuration(0) {}
|
||||
|
||||
friend bool operator==(const SyncFileItem& item1, const SyncFileItem& item2) {
|
||||
@@ -83,6 +83,7 @@ public:
|
||||
time_t _modtime;
|
||||
QByteArray _etag;
|
||||
quint64 _size;
|
||||
quint64 _inode;
|
||||
bool _should_update_etag;
|
||||
QByteArray _fileId;
|
||||
bool _blacklistedInDb;
|
||||
|
||||
@@ -770,7 +770,15 @@ void SyncJournalDb::updateBlacklistEntry( const SyncJournalBlacklistRecord& item
|
||||
return;
|
||||
}
|
||||
|
||||
query.prepare("SELECT retrycount FROM blacklist WHERE path=:path");
|
||||
QString sql("SELECT retrycount FROM blacklist WHERE path=:path");
|
||||
|
||||
if( Utility::fsCasePreserving() ) {
|
||||
// if the file system is case preserving we have to check the blacklist
|
||||
// case insensitively
|
||||
sql += QLatin1String(" COLLATE NOCASE");
|
||||
}
|
||||
|
||||
query.prepare(sql);
|
||||
query.bindValue(":path", item._file);
|
||||
|
||||
if( !query.exec() ) {
|
||||
|
||||
@@ -36,15 +36,20 @@ SyncJournalFileRecord::SyncJournalFileRecord(const SyncFileItem &item, const QSt
|
||||
_type(item._type), _etag(item._etag), _fileId(item._fileId),
|
||||
_uid(0), _gid(0), _mode(0)
|
||||
{
|
||||
// use the "old" inode coming with the item for the case where the
|
||||
// filesystem stat fails. That can happen if the the file was removed
|
||||
// or renamed meanwhile. For the rename case we still need the inode to
|
||||
// detect the rename tough.
|
||||
_inode = item._inode;
|
||||
|
||||
// Query the inode:
|
||||
// based on code from csync_vio_local.c (csync_vio_local_stat)
|
||||
#ifdef Q_OS_WIN
|
||||
/* Get the Windows file id as an inode replacement. */
|
||||
/* Query the inode:
|
||||
based on code from csync_vio_local.c (csync_vio_local_stat)
|
||||
Get the Windows file id as an inode replacement. */
|
||||
HANDLE h = CreateFileW( (wchar_t*)localFileName.utf16(), 0, FILE_SHARE_READ, NULL, OPEN_EXISTING,
|
||||
FILE_ATTRIBUTE_NORMAL+FILE_FLAG_BACKUP_SEMANTICS, NULL );
|
||||
|
||||
if( h == INVALID_HANDLE_VALUE ) {
|
||||
_inode = 0;
|
||||
qWarning() << "Failed to query the 'inode' because CreateFileW failed for file " << localFileName;
|
||||
} else {
|
||||
BY_HANDLE_FILE_INFORMATION fileInfo;
|
||||
@@ -60,7 +65,7 @@ SyncJournalFileRecord::SyncJournalFileRecord(const SyncFileItem &item, const QSt
|
||||
_inode = FileIndex.QuadPart;
|
||||
} else {
|
||||
qWarning() << "Failed to query the 'inode' for file " << localFileName;
|
||||
_inode = 0;
|
||||
|
||||
}
|
||||
CloseHandle(h);
|
||||
}
|
||||
@@ -68,7 +73,6 @@ SyncJournalFileRecord::SyncJournalFileRecord(const SyncFileItem &item, const QSt
|
||||
struct stat sb;
|
||||
if( stat(QFile::encodeName(localFileName).constData(), &sb) < 0) {
|
||||
qWarning() << "Failed to query the 'inode' for file " << localFileName;
|
||||
_inode = 0;
|
||||
} else {
|
||||
_inode = sb.st_ino;
|
||||
}
|
||||
|
||||
@@ -143,7 +143,7 @@ QString Utility::platform()
|
||||
return QLatin1String("Linux");
|
||||
#elif defined(__DragonFly__) // Q_OS_FREEBSD also defined
|
||||
return QLatin1String("DragonFlyBSD");
|
||||
#elif defined(Q_OS_FREEBSD)
|
||||
#elif defined(Q_OS_FREEBSD) || defined(Q_OS_FREEBSD_KERNEL)
|
||||
return QLatin1String("FreeBSD");
|
||||
#elif defined(Q_OS_NETBSD)
|
||||
return QLatin1String("NetBSD");
|
||||
@@ -167,20 +167,9 @@ QByteArray Utility::userAgentString()
|
||||
void Utility::raiseDialog( QWidget *raiseWidget )
|
||||
{
|
||||
#ifndef TOKEN_AUTH_ONLY
|
||||
// viel hilft viel ;-)
|
||||
if( raiseWidget ) {
|
||||
#if QT_VERSION < QT_VERSION_CHECK(5, 0, 0) && \
|
||||
(defined(Q_OS_WIN) || defined (Q_OS_MAC))
|
||||
Qt::WindowFlags eFlags = raiseWidget->windowFlags();
|
||||
if (!(eFlags & Qt::WindowStaysOnTopHint)) {
|
||||
eFlags |= Qt::WindowStaysOnTopHint;
|
||||
raiseWidget->setWindowFlags(eFlags);
|
||||
raiseWidget->show();
|
||||
eFlags &= ~Qt::WindowStaysOnTopHint;
|
||||
raiseWidget->setWindowFlags(eFlags);
|
||||
}
|
||||
#endif
|
||||
raiseWidget->show();
|
||||
if( raiseWidget && raiseWidget->parentWidget() == 0) {
|
||||
// Qt has a bug which causes parent-less dialogs to pop-under.
|
||||
raiseWidget->showNormal();
|
||||
raiseWidget->raise();
|
||||
raiseWidget->activateWindow();
|
||||
}
|
||||
@@ -199,7 +188,7 @@ void Utility::setLaunchOnStartup(const QString &appName, const QString& guiName,
|
||||
|
||||
qint64 Utility::freeDiskSpace(const QString &path, bool *ok)
|
||||
{
|
||||
#if defined(Q_OS_MAC) || defined(Q_OS_FREEBSD)
|
||||
#if defined(Q_OS_MAC) || defined(Q_OS_FREEBSD) || defined(Q_OS_FREEBSD_KERNEL)
|
||||
struct statvfs stat;
|
||||
statvfs(path.toUtf8().data(), &stat);
|
||||
return (qint64) stat.f_bavail * stat.f_frsize;
|
||||
@@ -348,6 +337,15 @@ static bool checkDolphinCanSelect()
|
||||
return p.readAll().contains("--select");
|
||||
}
|
||||
|
||||
bool Utility::fsCasePreserving()
|
||||
{
|
||||
bool re = false;
|
||||
if( isWindows() || isMac() ) {
|
||||
re = true;
|
||||
}
|
||||
return re;
|
||||
}
|
||||
|
||||
// inspired by Qt Creator's showInGraphicalShell();
|
||||
void Utility::showInFileManager(const QString &localPath)
|
||||
{
|
||||
|
||||
@@ -69,6 +69,12 @@ namespace Utility
|
||||
OWNCLOUDSYNC_EXPORT bool isUnix();
|
||||
OWNCLOUDSYNC_EXPORT bool isLinux(); // use with care
|
||||
|
||||
// Case preserving file system underneath?
|
||||
// if this function returns true, the file system is case preserving,
|
||||
// that means "test" means the same as "TEST" for filenames.
|
||||
// if false, the two cases are two different files.
|
||||
OWNCLOUDSYNC_EXPORT bool fsCasePreserving();
|
||||
|
||||
class StopWatch {
|
||||
private:
|
||||
QHash<QString, quint64> _lapTimes;
|
||||
|
||||
@@ -52,7 +52,7 @@ void setLaunchOnStartup_private(const QString &appName, const QString& guiName,
|
||||
QString userAutoStartPath = getUserAutostartDir_private();
|
||||
QString desktopFileLocation = userAutoStartPath+appName+QLatin1String(".desktop");
|
||||
if (enable) {
|
||||
if (!QDir().exists(userAutoStartPath) && !QDir().mkdir(userAutoStartPath)) {
|
||||
if (!QDir().exists(userAutoStartPath) && !QDir().mkpath(userAutoStartPath)) {
|
||||
qDebug() << "Could not create autostart directory";
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -29,20 +29,11 @@
|
||||
#include "mirall/clientproxy.h"
|
||||
#include "mirall/account.h"
|
||||
#include "creds/httpcredentials.h"
|
||||
|
||||
#include "owncloudcmd.h"
|
||||
#include "simplesslerrorhandler.h"
|
||||
|
||||
using namespace Mirall;
|
||||
|
||||
class OwncloudCmd : public QObject {
|
||||
Q_OBJECT
|
||||
public:
|
||||
OwncloudCmd() : QObject() { }
|
||||
public slots:
|
||||
void transmissionProgressSlot() {
|
||||
}
|
||||
};
|
||||
|
||||
struct CmdOptions {
|
||||
QString source_dir;
|
||||
QString target_url;
|
||||
@@ -166,7 +157,6 @@ int main(int argc, char **argv) {
|
||||
account.setSslErrorHandler(sslErrorHandler);
|
||||
AccountManager::instance()->setAccount(&account);
|
||||
|
||||
|
||||
CSYNC *_csync_ctx;
|
||||
if( csync_create( &_csync_ctx, options.source_dir.toUtf8(),
|
||||
options.target_url.toUtf8()) < 0 ) {
|
||||
@@ -245,5 +235,3 @@ int main(int argc, char **argv) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
#include "owncloudcmd.moc"
|
||||
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
/*
|
||||
* Copyright (C) by Olivier Goffart <ogoffart@owncloud.com>
|
||||
* Copyright (C) by Klaas Freitag <freitag@owncloud.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; version 2 of the License.
|
||||
* 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
|
||||
@@ -11,10 +13,19 @@
|
||||
* for more details.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
#ifndef OWNCLOUDCMD_H
|
||||
#define OWNCLOUDCMD_H
|
||||
|
||||
#include <QObject>
|
||||
|
||||
|
||||
class OwncloudCmd : public QObject {
|
||||
Q_OBJECT
|
||||
public:
|
||||
OwncloudCmd() : QObject() { }
|
||||
public slots:
|
||||
void transmissionProgressSlot() {
|
||||
}
|
||||
};
|
||||
|
||||
#ifdef owncloudsync_EXPORTS
|
||||
#define OWNCLOUDSYNC_EXPORT Q_DECL_EXPORT
|
||||
#else
|
||||
#define OWNCLOUDSYNC_EXPORT Q_DECL_IMPORT
|
||||
#endif
|
||||
@@ -15,6 +15,8 @@
|
||||
|
||||
#include "wizard/owncloudshibbolethcredspage.h"
|
||||
#include "mirall/theme.h"
|
||||
#include "mirall/account.h"
|
||||
#include "mirall/cookiejar.h"
|
||||
#include "wizard/owncloudwizardcommon.h"
|
||||
#include "wizard/owncloudwizard.h"
|
||||
#include "creds/shibbolethcredentials.h"
|
||||
@@ -26,24 +28,30 @@ namespace Mirall
|
||||
OwncloudShibbolethCredsPage::OwncloudShibbolethCredsPage()
|
||||
: AbstractCredentialsWizardPage(),
|
||||
_browser(0),
|
||||
_cookie(),
|
||||
_afterInitialSetup(false),
|
||||
_cookiesForUrl()
|
||||
_afterInitialSetup(false)
|
||||
{}
|
||||
|
||||
void OwncloudShibbolethCredsPage::setupBrowser()
|
||||
{
|
||||
if (_browser) {
|
||||
if (!_browser.isNull()) {
|
||||
return;
|
||||
}
|
||||
OwncloudWizard *ocWizard = qobject_cast<OwncloudWizard*>(wizard());
|
||||
_browser = new ShibbolethWebView(ocWizard->account());
|
||||
connect(_browser, SIGNAL(shibbolethCookieReceived(QNetworkCookie, Account*)),
|
||||
this, SLOT(slotShibbolethCookieReceived(QNetworkCookie, Account*)));
|
||||
connect(_browser, SIGNAL(viewHidden()),
|
||||
this, SLOT(slotViewHidden()));
|
||||
connect(_browser, SIGNAL(otherCookiesReceived(QList<QNetworkCookie>, QUrl)),
|
||||
this, SLOT(slotOtherCookiesReceived(QList<QNetworkCookie>, QUrl)));
|
||||
Account *account = ocWizard->account();
|
||||
|
||||
// we need to reset the cookie jar to drop temporary cookies (like the shib cookie)
|
||||
// i.e. if someone presses "back"
|
||||
QNetworkAccessManager *qnam = account->networkAccessManager();
|
||||
delete qnam->cookieJar();
|
||||
CookieJar *jar = new CookieJar;
|
||||
qnam->setCookieJar(jar);
|
||||
jar->setParent(0);
|
||||
|
||||
_browser = new ShibbolethWebView(account);
|
||||
connect(_browser, SIGNAL(shibbolethCookieReceived(const QNetworkCookie&, Account*)),
|
||||
this, SLOT(slotShibbolethCookieReceived()));
|
||||
connect(_browser, SIGNAL(rejected()),
|
||||
this, SLOT(slotBrowserRejected()));
|
||||
|
||||
_browser->move(ocWizard->x(), ocWizard->y());
|
||||
_browser->show();
|
||||
@@ -60,9 +68,6 @@ void OwncloudShibbolethCredsPage::setVisible(bool visible)
|
||||
if (isVisible() == visible) {
|
||||
return;
|
||||
}
|
||||
if (_browser) {
|
||||
disposeBrowser();
|
||||
}
|
||||
if (visible) {
|
||||
setupBrowser();
|
||||
wizard()->hide();
|
||||
@@ -74,23 +79,6 @@ void OwncloudShibbolethCredsPage::setVisible(bool visible)
|
||||
void OwncloudShibbolethCredsPage::initializePage()
|
||||
{
|
||||
_afterInitialSetup = true;
|
||||
_cookie = QNetworkCookie();
|
||||
_cookiesForUrl.clear();
|
||||
}
|
||||
|
||||
void OwncloudShibbolethCredsPage::disposeBrowser()
|
||||
{
|
||||
if (_browser) {
|
||||
disconnect(_browser, SIGNAL(otherCookiesReceived(QList<QNetworkCookie>, QUrl)),
|
||||
this, SLOT(slotOtherCookiesReceived(QList<QNetworkCookie>, QUrl)));
|
||||
disconnect(_browser, SIGNAL(viewHidden()),
|
||||
this, SLOT(slotViewHidden()));
|
||||
disconnect(_browser, SIGNAL(shibbolethCookieReceived(QNetworkCookie, Account*)),
|
||||
this, SLOT(slotShibbolethCookieReceived(QNetworkCookie, Account*)));
|
||||
_browser->hide();
|
||||
_browser->deleteLater();
|
||||
_browser = 0;
|
||||
}
|
||||
}
|
||||
|
||||
int OwncloudShibbolethCredsPage::nextId() const
|
||||
@@ -105,38 +93,16 @@ void OwncloudShibbolethCredsPage::setConnected()
|
||||
|
||||
AbstractCredentials* OwncloudShibbolethCredsPage::getCredentials() const
|
||||
{
|
||||
return new ShibbolethCredentials(_cookie, _cookiesForUrl);
|
||||
return new ShibbolethCredentials;
|
||||
}
|
||||
|
||||
void OwncloudShibbolethCredsPage::slotShibbolethCookieReceived(const QNetworkCookie& cookie, Account*)
|
||||
void OwncloudShibbolethCredsPage::slotShibbolethCookieReceived()
|
||||
{
|
||||
disposeBrowser();
|
||||
_cookie = cookie;
|
||||
emit connectToOCUrl(field("OCUrl").toString().simplified());
|
||||
}
|
||||
|
||||
void OwncloudShibbolethCredsPage::slotOtherCookiesReceived(const QList<QNetworkCookie>& cookieList, const QUrl& url)
|
||||
void OwncloudShibbolethCredsPage::slotBrowserRejected()
|
||||
{
|
||||
QList<QNetworkCookie>& cookies(_cookiesForUrl[url]);
|
||||
QMap<QByteArray, QByteArray> uniqueCookies;
|
||||
|
||||
Q_FOREACH (const QNetworkCookie& c, cookieList) {
|
||||
if (!c.isSessionCookie()) {
|
||||
cookies << c;
|
||||
}
|
||||
}
|
||||
Q_FOREACH (const QNetworkCookie& c, cookies) {
|
||||
uniqueCookies[c.name()] = c.value();
|
||||
}
|
||||
cookies.clear();
|
||||
Q_FOREACH (const QByteArray& name, uniqueCookies.keys()) {
|
||||
cookies << QNetworkCookie(name, uniqueCookies[name]);
|
||||
}
|
||||
}
|
||||
|
||||
void OwncloudShibbolethCredsPage::slotViewHidden()
|
||||
{
|
||||
disposeBrowser();
|
||||
wizard()->back();
|
||||
wizard()->show();
|
||||
}
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
#include <QMap>
|
||||
#include <QNetworkCookie>
|
||||
#include <QUrl>
|
||||
#include <QPointer>
|
||||
|
||||
#include "wizard/abstractcredswizardpage.h"
|
||||
|
||||
@@ -45,18 +46,14 @@ public Q_SLOTS:
|
||||
void setVisible(bool visible);
|
||||
|
||||
private Q_SLOTS:
|
||||
void slotShibbolethCookieReceived(const QNetworkCookie& cookie, Account*);
|
||||
void slotOtherCookiesReceived(const QList<QNetworkCookie>& cookieList, const QUrl& url);
|
||||
void slotViewHidden();
|
||||
void slotShibbolethCookieReceived();
|
||||
void slotBrowserRejected();
|
||||
|
||||
private:
|
||||
void setupBrowser();
|
||||
void disposeBrowser();
|
||||
|
||||
ShibbolethWebView* _browser;
|
||||
QNetworkCookie _cookie;
|
||||
QPointer<ShibbolethWebView> _browser;
|
||||
bool _afterInitialSetup;
|
||||
QMap<QUrl, QList<QNetworkCookie> > _cookiesForUrl;
|
||||
};
|
||||
|
||||
} // ns Mirall
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
|
||||
].DS_Store
|
||||
].ds_store
|
||||
._*
|
||||
]Thumbs.db
|
||||
desktop.ini
|
||||
|
||||
|
||||
@@ -91,10 +91,11 @@ private slots:
|
||||
}
|
||||
|
||||
void testRemoveADir() {
|
||||
_checkMark = _root+"/a1/b1";
|
||||
_checkMark = _root+"/a1/b3";
|
||||
QDir dir;
|
||||
dir.rmdir(_root+"/a1/b1/c2");
|
||||
QVERIFY(dir.rmdir(_root+"/a1/b3/c3"));
|
||||
_loop.processEvents();
|
||||
QVERIFY(_checkMark.isEmpty()); // the slot clears the checkmark.
|
||||
}
|
||||
|
||||
void testRemoveAFile() {
|
||||
|
||||
@@ -89,7 +89,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.ui" line="62"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="160"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="159"/>
|
||||
<source>Pause</source>
|
||||
<translation>Pausa</translation>
|
||||
</message>
|
||||
@@ -119,59 +119,59 @@
|
||||
<translation><b>Nota</b> Algunes carpetes, incloent els fitxers muntats a través de xarxa o compartits, poden tenir límits diferents.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="162"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="161"/>
|
||||
<source>Resume</source>
|
||||
<translation>Continua</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="317"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="320"/>
|
||||
<source>Confirm Folder Remove</source>
|
||||
<translation>Confirma l'eliminació de la carpeta</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="318"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="321"/>
|
||||
<source><p>Do you really want to stop syncing the folder <i>%1</i>?</p><p><b>Note:</b> This will not remove the files from your client.</p></source>
|
||||
<translation><p>Voleu aturar la sincronització de la carpeta <i>%1</i>?</p><p><b>Nota:</b> Això no eliminarà els fitxers del client.</p></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="354"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="357"/>
|
||||
<source>Confirm Folder Reset</source>
|
||||
<translation>Confirmeu la reinicialització de la carpeta</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="355"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="358"/>
|
||||
<source><p>Do you really want to reset folder <i>%1</i> and rebuild your client database?</p><p><b>Note:</b> This function is designed for maintenance purposes only. No files will be removed, but this can cause significant data traffic and take several minutes or hours to complete, depending on the size of the folder. Only use this option if advised by your administrator.</p></source>
|
||||
<translation><p>Voleu reiniciar la carpeta <i>%1</i> i reconstruir la base de dades del client?</p><p><b>Nota:</b> Aquesta funció existeix només per tasques de manteniment. Cap fitxer no s'eliminarà, però podria provocar-se un transit de dades significant i podria trigar diversos minuts o hores en completar-se, depenent de la mida de la carpeta. Utilitzeu aquesta opció només si us ho recomana l'administrador.</p></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="619"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="622"/>
|
||||
<source>%1 %2 (%3 of %4)</source>
|
||||
<extracomment>Example text: "uploading foobar.png (1MB of 2MB)"</extracomment>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="622"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="625"/>
|
||||
<source>%1 %2</source>
|
||||
<extracomment>Example text: "uploading foobar.png"</extracomment>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="717"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="721"/>
|
||||
<source>%1 (%3%) of %2 server space in use.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="756"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="760"/>
|
||||
<source>No connection to %1 at <a href="%2">%3</a>.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="763"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="767"/>
|
||||
<source>No %1 connection configured.</source>
|
||||
<translation>La connexió %1 no està configurada.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="466"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="469"/>
|
||||
<source>Sync Running</source>
|
||||
<translation>S'està sincronitzant</translation>
|
||||
</message>
|
||||
@@ -181,27 +181,27 @@
|
||||
<translation>No hi ha cap compte configurat</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="467"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="470"/>
|
||||
<source>The syncing operation is running.<br/>Do you want to terminate it?</source>
|
||||
<translation>S'està sincronitzant.<br/>Voleu parar-la?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="749"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="753"/>
|
||||
<source>Connected to <a href="%1">%2</a>.</source>
|
||||
<translation>Connectat a <a href="%1">%2</a>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="631"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="634"/>
|
||||
<source>%1 of %2, file %3 of %4</source>
|
||||
<translation>%1 de %2, fitxer %3 de %4</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="752"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="756"/>
|
||||
<source>Connected to <a href="%1">%2</a> as <i>%3</i>.</source>
|
||||
<translation>Connectat a <a href="%1">%2</a> com a <i>%3</i>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="721"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="725"/>
|
||||
<source>Currently there is no storage usage information available.</source>
|
||||
<translation>Actualment no hi ha informació disponible de l'ús d'emmagatzemament.</translation>
|
||||
</message>
|
||||
@@ -260,100 +260,100 @@
|
||||
<context>
|
||||
<name>Mirall::Folder</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="99"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="107"/>
|
||||
<source>Unable to create csync-context</source>
|
||||
<translation>No s'ha pogut crear el context-csync</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="157"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="165"/>
|
||||
<source>Local folder %1 does not exist.</source>
|
||||
<translation>El fitxer local %1 no existeix.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="160"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="168"/>
|
||||
<source>%1 should be a directory but is not.</source>
|
||||
<translation>%1 hauria de ser una carpeta, però no ho és.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="163"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="171"/>
|
||||
<source>%1 is not readable.</source>
|
||||
<translation>No es pot llegir %1.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="316"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="323"/>
|
||||
<source>%1: %2</source>
|
||||
<translation>%1: %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="402"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="409"/>
|
||||
<source>%1 and %2 other files have been removed.</source>
|
||||
<comment>%1 names a file.</comment>
|
||||
<translation>%1 i %2 altres fitxers s'han esborrat</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="404"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="411"/>
|
||||
<source>%1 has been removed.</source>
|
||||
<comment>%1 names a file.</comment>
|
||||
<translation>S'ha esborrat '%1'</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="409"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="416"/>
|
||||
<source>%1 and %2 other files have been downloaded.</source>
|
||||
<comment>%1 names a file.</comment>
|
||||
<translation>%1 i %2 altres fitxers s'han descarregat.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="411"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="418"/>
|
||||
<source>%1 has been downloaded.</source>
|
||||
<comment>%1 names a file.</comment>
|
||||
<translation>S'ha descarregat %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="416"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="423"/>
|
||||
<source>%1 and %2 other files have been updated.</source>
|
||||
<translation>%1 i %2 altres fitxer(s) s'han actualitzat.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="418"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="425"/>
|
||||
<source>%1 has been updated.</source>
|
||||
<comment>%1 names a file.</comment>
|
||||
<translation>S'ha actualitzat %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="423"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="430"/>
|
||||
<source>%1 has been renamed to %2 and %3 other files have been renamed.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="425"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="432"/>
|
||||
<source>%1 has been renamed to %2.</source>
|
||||
<comment>%1 and %2 name files.</comment>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="430"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="437"/>
|
||||
<source>%1 has been moved to %2 and %3 other files have been moved.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="432"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="439"/>
|
||||
<source>%1 has been moved to %2.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="440"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="447"/>
|
||||
<source>Sync Activity</source>
|
||||
<translation>Activitat de sincronització</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="680"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="697"/>
|
||||
<source>This sync would remove all the files in the local sync folder '%1'.
|
||||
If you or your administrator have reset your account on the server, choose "Keep files". If you want your data to be removed, choose "Remove all files".</source>
|
||||
<translation>Aquesta sincronització eliminarà tots els fitxers a la carpeta local de sincronització '%1'.
|
||||
Si vós o l'administrador heu reinicialitzat el compte en el servidor, escolliu "Mantenir fitxers". Si voleueliminar les dades, escolliu "Esborra tots els fitxers".</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="683"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="700"/>
|
||||
<source>This sync would remove all the files in the sync folder '%1'.
|
||||
This might be because the folder was silently reconfigured, or that all the file were manually removed.
|
||||
Are you sure you want to perform this operation?</source>
|
||||
@@ -362,17 +362,17 @@ Això podria ser perquè la carpeta ha estat reconfigurada silenciosament, o que
|
||||
Esteu segur que voleu executar aquesta operació?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="687"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="704"/>
|
||||
<source>Remove All Files?</source>
|
||||
<translation>Esborra tots els fitxers?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="689"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="706"/>
|
||||
<source>Remove all files</source>
|
||||
<translation>Esborra tots els fitxers</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="690"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="707"/>
|
||||
<source>Keep files</source>
|
||||
<translation>Mantén els fitxers</translation>
|
||||
</message>
|
||||
@@ -380,12 +380,12 @@ Esteu segur que voleu executar aquesta operació?</translation>
|
||||
<context>
|
||||
<name>Mirall::FolderMan</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/folderman.cpp" line="173"/>
|
||||
<location filename="../src/mirall/folderman.cpp" line="171"/>
|
||||
<source>Could not reset folder state</source>
|
||||
<translation>No es pot restablir l'estat de la carpeta</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folderman.cpp" line="174"/>
|
||||
<location filename="../src/mirall/folderman.cpp" line="172"/>
|
||||
<source>An old sync journal '%1' was found, but could not be removed. Please make sure that no application is currently using it.</source>
|
||||
<translation>S'ha trobat un diari de sincronització antic '%1', però no s'ha pogut eliminar. Assegureu-vos que no hi ha cap aplicació que actualment en faci ús.</translation>
|
||||
</message>
|
||||
@@ -512,8 +512,8 @@ Esteu segur que voleu executar aquesta operació?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folderwizard.cpp" line="139"/>
|
||||
<source>The selected folder is a symbolic link. An already configuredfolder is contained in the folder this link is pointing to.</source>
|
||||
<translation>El directori seleccionat és un enllaç simbòlic. Un directori ja configurat es trobat a la ruta on apunta aquest enllaç.</translation>
|
||||
<source>The selected folder is a symbolic link. An already configured folder is contained in the folder this link is pointing to.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folderwizard.cpp" line="146"/>
|
||||
@@ -533,7 +533,7 @@ Esteu segur que voleu executar aquesta operació?</translation>
|
||||
<message>
|
||||
<location filename="../src/mirall/folderwizard.cpp" line="176"/>
|
||||
<source>The alias <i>%1</i> is already in use. Please pick another alias.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>L'alies <i>%1%<i> ja està en ús. Si us plau, esculli un altre àlies.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folderwizard.cpp" line="209"/>
|
||||
@@ -596,15 +596,20 @@ Esteu segur que voleu executar aquesta operació?</translation>
|
||||
<context>
|
||||
<name>Mirall::GETFileJob</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="381"/>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="393"/>
|
||||
<source>No E-Tag received from server, check Proxy/Gateway</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="388"/>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="400"/>
|
||||
<source>We received a different E-Tag for resuming. Retrying next time.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="633"/>
|
||||
<source>Connection Timeout</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Mirall::GeneralSettings</name>
|
||||
@@ -653,12 +658,12 @@ Esteu segur que voleu executar aquesta operació?</translation>
|
||||
<context>
|
||||
<name>Mirall::HttpCredentials</name>
|
||||
<message>
|
||||
<location filename="../src/creds/httpcredentials.cpp" line="278"/>
|
||||
<location filename="../src/creds/httpcredentials.cpp" line="282"/>
|
||||
<source>Enter Password</source>
|
||||
<translation>Escriviu contrasenya</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/creds/httpcredentials.cpp" line="279"/>
|
||||
<location filename="../src/creds/httpcredentials.cpp" line="283"/>
|
||||
<source>Please enter %1 password for user '%2':</source>
|
||||
<translation>Escriviu %1 contrasenya per s'usuari '%2':</translation>
|
||||
</message>
|
||||
@@ -781,12 +786,12 @@ Els elements marcats també s'eliminaran si prevenen l'eliminació d&a
|
||||
<context>
|
||||
<name>Mirall::Logger</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/logger.cpp" line="155"/>
|
||||
<location filename="../src/mirall/logger.cpp" line="146"/>
|
||||
<source>Error</source>
|
||||
<translation>Error</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/logger.cpp" line="156"/>
|
||||
<location filename="../src/mirall/logger.cpp" line="147"/>
|
||||
<source><nobr>File '%1'<br/>cannot be opened for writing.<br/><br/>The log output can <b>not</b> be saved!</nobr></source>
|
||||
<translation><nobr>El fitxer '%1'<br/>no es pot obrir en mode escriptura.<br/><br/>La sortida del registre <b>no</b> es pot desar!</nobr></translation>
|
||||
</message>
|
||||
@@ -816,7 +821,7 @@ Els elements marcats també s'eliminaran si prevenen l'eliminació d&a
|
||||
<message>
|
||||
<location filename="../src/updater/ocupdater.cpp" line="273"/>
|
||||
<source>Get update</source>
|
||||
<translation>Obtén l'actialització</translation>
|
||||
<translation>Obtingueu l'actualització</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@@ -925,13 +930,14 @@ Els elements marcats també s'eliminaran si prevenen l'eliminació d&a
|
||||
<message>
|
||||
<location filename="../src/updater/ocupdater.cpp" line="55"/>
|
||||
<source>New Update Ready</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Nova actualització a punt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/updater/ocupdater.cpp" line="56"/>
|
||||
<source>A new update is about to be installed. The updater may ask
|
||||
for additional privileges during the process.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Una nova actualització és apunt d'instal·lar-se. L'actualització pot demanar privilegis addicionals durant el procés.
|
||||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/updater/ocupdater.cpp" line="77"/>
|
||||
@@ -951,22 +957,22 @@ for additional privileges during the process.</source>
|
||||
<message>
|
||||
<location filename="../src/updater/ocupdater.cpp" line="83"/>
|
||||
<source>Could not check for new updates.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>No s'ha pogut comprovar si hi ha actualitzacions.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/updater/ocupdater.cpp" line="85"/>
|
||||
<source>New version %1 available. Please use the systems update tool to install it.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>La nova versió %1 està disponible. Si us plau, utilitzeu l'eina d'actualització dels sistemes per instal·lar.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/updater/ocupdater.cpp" line="87"/>
|
||||
<source>Checking update server...</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Comprovació d'actualitzacions al servidor</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/updater/ocupdater.cpp" line="91"/>
|
||||
<source>No updates available. Your installation is at the latest version.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>No hi ha actualitzacions disponibles. La instal·lació ja es troba en la versió més recent.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@@ -1051,7 +1057,8 @@ for additional privileges during the process.</source>
|
||||
<location filename="../src/wizard/owncloudsetuppage.cpp" line="105"/>
|
||||
<source>This url is NOT secure as it is not encrypted.
|
||||
It is not advisable to use it.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Aquesta adreça NO és segura i no és encriptada.
|
||||
No és aconsellada usar-la.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/wizard/owncloudsetuppage.cpp" line="109"/>
|
||||
@@ -1077,18 +1084,18 @@ It is not advisable to use it.</source>
|
||||
<context>
|
||||
<name>Mirall::OwncloudSetupWizard</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="357"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="360"/>
|
||||
<source>Folder rename failed</source>
|
||||
<translation>Ha fallat en canviar el nom de la carpeta</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="412"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="421"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="415"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="424"/>
|
||||
<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>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="192"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="193"/>
|
||||
<source>Trying to connect to %1 at %2...</source>
|
||||
<translation>Intentant connectar amb %1 a %2...</translation>
|
||||
</message>
|
||||
@@ -1098,32 +1105,32 @@ It is not advisable to use it.</source>
|
||||
<translation><font color="green">S'ha connectat correctament amb %1: %2 versió %3 (%4)</font><br/><br/></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="215"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="218"/>
|
||||
<source>Error: Wrong credentials.</source>
|
||||
<translation>Error: credencials incorrectes.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="229"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="232"/>
|
||||
<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/mirall/owncloudsetupwizard.cpp" line="231"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="234"/>
|
||||
<source>Creating local sync folder %1... </source>
|
||||
<translation>Creant carpeta local de sincronització %1...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="235"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="238"/>
|
||||
<source>ok</source>
|
||||
<translation>correcte</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="237"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="240"/>
|
||||
<source>failed.</source>
|
||||
<translation>ha fallat.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="239"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="242"/>
|
||||
<source>Could not create local folder %1</source>
|
||||
<translation>No s'ha pogut crear la carpeta local %1</translation>
|
||||
</message>
|
||||
@@ -1134,69 +1141,69 @@ It is not advisable to use it.</source>
|
||||
<translation>Ha fallat la connexió amb %1 a %2:<br/>%3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="264"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="267"/>
|
||||
<source>No remote folder specified!</source>
|
||||
<translation>No heu especificat cap carpeta remota!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="270"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="273"/>
|
||||
<source>Error: %1</source>
|
||||
<translation>Error: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="283"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="286"/>
|
||||
<source>creating folder on ownCloud: %1</source>
|
||||
<translation>creant la carpeta a ownCloud: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="299"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="302"/>
|
||||
<source>Remote folder %1 created successfully.</source>
|
||||
<translation>La carpeta remota %1 s'ha creat correctament.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="301"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="304"/>
|
||||
<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/mirall/owncloudsetupwizard.cpp" line="303"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="305"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="306"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="308"/>
|
||||
<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/mirall/owncloudsetupwizard.cpp" line="307"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="310"/>
|
||||
<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/mirall/owncloudsetupwizard.cpp" line="310"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="313"/>
|
||||
<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/mirall/owncloudsetupwizard.cpp" line="315"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="316"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="318"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="319"/>
|
||||
<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/mirall/owncloudsetupwizard.cpp" line="332"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="335"/>
|
||||
<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/mirall/owncloudsetupwizard.cpp" line="337"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="340"/>
|
||||
<source>Successfully connected to %1!</source>
|
||||
<translation>Connectat amb èxit a %1!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="344"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="347"/>
|
||||
<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/mirall/owncloudsetupwizard.cpp" line="358"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="361"/>
|
||||
<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>
|
||||
@@ -1237,6 +1244,14 @@ It is not advisable to use it.</source>
|
||||
<translation>%1 carpeta <i>%1</i> està sincronitzat amb la carpeta local <i>%2</i></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Mirall::PUTFileJob</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="82"/>
|
||||
<source>Connection Timeout</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Mirall::PropagateDownloadFileLegacy</name>
|
||||
<message>
|
||||
@@ -1254,11 +1269,24 @@ It is not advisable to use it.</source>
|
||||
<source>We received a different E-Tag for resuming. Retrying next time.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_legacy.cpp" line="449"/>
|
||||
<source>File %1 can not be downloaded because of a local file name clash!</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Mirall::PropagateDownloadFileQNAM</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="443"/>
|
||||
<source>File %1 can not be downloaded because of a local file name clash!</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Mirall::PropagateItemJob</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudpropagator.cpp" line="150"/>
|
||||
<location filename="../src/mirall/owncloudpropagator.cpp" line="159"/>
|
||||
<source>A file or directory was removed from a read only share, but restoring failed: %1</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
@@ -1266,7 +1294,12 @@ It is not advisable to use it.</source>
|
||||
<context>
|
||||
<name>Mirall::PropagateLocalMkdir</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="109"/>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="114"/>
|
||||
<source>Attention, possible case sensitivity clash with %1</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="119"/>
|
||||
<source>could not create directory %1</source>
|
||||
<translation>No s'ha pogut crear el directori %1</translation>
|
||||
</message>
|
||||
@@ -1274,15 +1307,28 @@ It is not advisable to use it.</source>
|
||||
<context>
|
||||
<name>Mirall::PropagateLocalRemove</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="86"/>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="80"/>
|
||||
<source>Could not remove %1 because of a local file name clash</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="87"/>
|
||||
<source>Could not remove directory %1</source>
|
||||
<translation>No s'ha pogut esborrar la carpeta %1</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Mirall::PropagateLocalRename</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="196"/>
|
||||
<source>File %1 can not be renamed to %2 because of a local file name clash</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Mirall::PropagateRemoteRemove</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="129"/>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="139"/>
|
||||
<source>The file has been removed from a read only share. It was restored.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
@@ -1290,17 +1336,17 @@ It is not advisable to use it.</source>
|
||||
<context>
|
||||
<name>Mirall::PropagateRemoteRename</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="220"/>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="242"/>
|
||||
<source>This folder must not be renamed. It is renamed back to its original name.</source>
|
||||
<translation>No s'ha de canviar el nom d'aquesta carpeta. Es reanomena de nou amb el seu nom original.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="222"/>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="244"/>
|
||||
<source>This folder must not be renamed. Please name it back to Shared.</source>
|
||||
<translation>Aquesta carpeta no es pot reanomenar. Reanomeneu-la de nou Shared.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="237"/>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="259"/>
|
||||
<source>The file was renamed but is part of a read only share. The original file was restored.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
@@ -1327,18 +1373,18 @@ It is not advisable to use it.</source>
|
||||
<context>
|
||||
<name>Mirall::PropagateUploadFileQNAM</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="241"/>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="247"/>
|
||||
<source>The file was edited locally but is part of a read only share. It is restored and your edit is in the conflict file.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="266"/>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="272"/>
|
||||
<source>Local file changed during sync.</source>
|
||||
<translation>El fitxer local ha canviat durant la sincronització.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="276"/>
|
||||
<source>The server did not aknoledge the last chunk. (No e-tag were present)</source>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="282"/>
|
||||
<source>The server did not acknowledge the last chunk. (No e-tag were present)</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
@@ -1423,7 +1469,8 @@ It is not advisable to use it.</source>
|
||||
<location filename="../src/mirall/protocolwidget.cpp" line="231"/>
|
||||
<source>%1 files are ignored because of previous errors.
|
||||
Try to sync these again.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>%1 fixers són ignorats per errors previs.
|
||||
Proveu de sincronitzar-los de nou.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@@ -1462,27 +1509,27 @@ It is not advisable to use it.</source>
|
||||
<context>
|
||||
<name>Mirall::SettingsDialogMac</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="30"/>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="28"/>
|
||||
<source>%1</source>
|
||||
<translation>%1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="34"/>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="32"/>
|
||||
<source>Account</source>
|
||||
<translation>Compte</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="38"/>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="36"/>
|
||||
<source>Activity</source>
|
||||
<translation>Activitat</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="42"/>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="40"/>
|
||||
<source>General</source>
|
||||
<translation>General</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="46"/>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="44"/>
|
||||
<source>Network</source>
|
||||
<translation>Xarxa</translation>
|
||||
</message>
|
||||
@@ -1490,12 +1537,12 @@ It is not advisable to use it.</source>
|
||||
<context>
|
||||
<name>Mirall::ShibbolethCredentials</name>
|
||||
<message>
|
||||
<location filename="../src/creds/shibbolethcredentials.cpp" line="299"/>
|
||||
<location filename="../src/creds/shibbolethcredentials.cpp" line="259"/>
|
||||
<source>Login Error</source>
|
||||
<translation>Error d'accés</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/creds/shibbolethcredentials.cpp" line="299"/>
|
||||
<location filename="../src/creds/shibbolethcredentials.cpp" line="259"/>
|
||||
<source>You must sign in as user %1</source>
|
||||
<translation>Cal identificar-se com a usuari %1</translation>
|
||||
</message>
|
||||
@@ -1503,12 +1550,22 @@ It is not advisable to use it.</source>
|
||||
<context>
|
||||
<name>Mirall::ShibbolethWebView</name>
|
||||
<message>
|
||||
<location filename="../src/creds/shibboleth/shibbolethwebview.cpp" line="58"/>
|
||||
<location filename="../src/creds/shibboleth/shibbolethwebview.cpp" line="56"/>
|
||||
<source>%1 - Authenticate</source>
|
||||
<translation>%1 - Autenticat</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/creds/shibboleth/shibbolethwebview.cpp" line="119"/>
|
||||
<location filename="../src/creds/shibboleth/shibbolethwebview.cpp" line="62"/>
|
||||
<source>Reauthentication required</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/creds/shibboleth/shibbolethwebview.cpp" line="62"/>
|
||||
<source>Your session has expired. You need to re-login to continue to use the client.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/creds/shibboleth/shibbolethwebview.cpp" line="101"/>
|
||||
<source>%1 - %2</source>
|
||||
<translation>%1 - %2</translation>
|
||||
</message>
|
||||
@@ -1553,7 +1610,7 @@ It is not advisable to use it.</source>
|
||||
<message>
|
||||
<location filename="../src/mirall/sslbutton.cpp" line="106"/>
|
||||
<source>Serial:</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Serial:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/sslbutton.cpp" line="109"/>
|
||||
@@ -1614,7 +1671,8 @@ It is not advisable to use it.</source>
|
||||
<location filename="../src/mirall/sslbutton.cpp" line="182"/>
|
||||
<source>This connection is encrypted using %1 bit %2.
|
||||
</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Aquesta connexió és encriptada usant %1 bit %2.
|
||||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/sslbutton.cpp" line="185"/>
|
||||
@@ -1882,12 +1940,12 @@ It is not advisable to use it.</source>
|
||||
<translation>El fitxer conté caràcters no vàlids que no es poden sincronitzar entre plataformes.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/syncengine.cpp" line="451"/>
|
||||
<location filename="../src/mirall/syncengine.cpp" line="448"/>
|
||||
<source>Unable to initialize a sync journal.</source>
|
||||
<translation>No es pot inicialitzar un periòdic de sincronització</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/syncengine.cpp" line="550"/>
|
||||
<location filename="../src/mirall/syncengine.cpp" line="545"/>
|
||||
<source>Cannot open the sync journal</source>
|
||||
<translation>No es pot obrir el diari de sincronització</translation>
|
||||
</message>
|
||||
@@ -2258,12 +2316,12 @@ It is not advisable to use it.</source>
|
||||
<context>
|
||||
<name>main.cpp</name>
|
||||
<message>
|
||||
<location filename="../src/main.cpp" line="30"/>
|
||||
<location filename="../src/main.cpp" line="38"/>
|
||||
<source>System Tray not available</source>
|
||||
<translation>La safata del sistema no està disponible</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/main.cpp" line="31"/>
|
||||
<location filename="../src/main.cpp" line="39"/>
|
||||
<source>%1 requires on a working system tray. If you are running XFCE, please follow <a href="http://docs.xfce.org/xfce/xfce4-panel/systray">these instructions</a>. Otherwise, please install a system tray application such as 'trayer' and try again.</source>
|
||||
<translation>%1 requereix una safata del sistema que funcioni. Si esteu executant XFCE seguiu <a href="http://docs.xfce.org/xfce/xfce4-panel/systray">aquestes instruccions</a>. Altrament, instal·leu una aplicació de safata com 'trayer' i intenteu-ho de nou.</translation>
|
||||
</message>
|
||||
|
||||
@@ -89,7 +89,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.ui" line="62"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="160"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="159"/>
|
||||
<source>Pause</source>
|
||||
<translation>Pozastavit</translation>
|
||||
</message>
|
||||
@@ -119,59 +119,59 @@
|
||||
<translation><b>Poznámka:</b> Některé složky, včetně síťových či sdílených složek, mohou mít jiné limity.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="162"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="161"/>
|
||||
<source>Resume</source>
|
||||
<translation>Obnovit</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="317"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="320"/>
|
||||
<source>Confirm Folder Remove</source>
|
||||
<translation>Potvrdit odstranění složky</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="318"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="321"/>
|
||||
<source><p>Do you really want to stop syncing the folder <i>%1</i>?</p><p><b>Note:</b> This will not remove the files from your client.</p></source>
|
||||
<translation><p>Opravdu chcete zastavit synchronizaci složky <i>%1</i>?</p><p><b>Poznámka:</b> Tato akce nesmaže soubory z místní složky.</p></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="354"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="357"/>
|
||||
<source>Confirm Folder Reset</source>
|
||||
<translation>Potvrdit restartování složky</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="355"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="358"/>
|
||||
<source><p>Do you really want to reset folder <i>%1</i> and rebuild your client database?</p><p><b>Note:</b> This function is designed for maintenance purposes only. No files will be removed, but this can cause significant data traffic and take several minutes or hours to complete, depending on the size of the folder. Only use this option if advised by your administrator.</p></source>
|
||||
<translation><p>Skutečně chcete resetovat složku <i>%1</i> a znovu sestavit klientskou databázi?</p><p><b>Poznámka:</b> Tato funkce je určena pouze pro účely údržby. Žádné soubory nebudou smazány, ale může to způsobit velké datové přenosy a dokončení může trvat mnoho minut či hodin v závislosti na množství dat ve složce. Použijte tuto volbu pouze na pokyn správce.</p></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="619"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="622"/>
|
||||
<source>%1 %2 (%3 of %4)</source>
|
||||
<extracomment>Example text: "uploading foobar.png (1MB of 2MB)"</extracomment>
|
||||
<translation>%1 %2 (%3 ze %4)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="622"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="625"/>
|
||||
<source>%1 %2</source>
|
||||
<extracomment>Example text: "uploading foobar.png"</extracomment>
|
||||
<translation>%1 %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="717"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="721"/>
|
||||
<source>%1 (%3%) of %2 server space in use.</source>
|
||||
<translation>%1 (%3%) z %2 místa na disku použito.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="756"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="760"/>
|
||||
<source>No connection to %1 at <a href="%2">%3</a>.</source>
|
||||
<translation>Žádné spojení s %1 na <a href="%2">%3</a>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="763"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="767"/>
|
||||
<source>No %1 connection configured.</source>
|
||||
<translation>Žádné spojení s %1 nenastaveno.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="466"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="469"/>
|
||||
<source>Sync Running</source>
|
||||
<translation>Synchronizace probíhá</translation>
|
||||
</message>
|
||||
@@ -181,27 +181,27 @@
|
||||
<translation>Žádný účet nenastaven.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="467"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="470"/>
|
||||
<source>The syncing operation is running.<br/>Do you want to terminate it?</source>
|
||||
<translation>Operace synchronizace právě probíhá.<br/>Přejete si ji ukončit?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="749"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="753"/>
|
||||
<source>Connected to <a href="%1">%2</a>.</source>
|
||||
<translation>Připojeno k <a href="%1">%2</a>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="631"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="634"/>
|
||||
<source>%1 of %2, file %3 of %4</source>
|
||||
<translation>%1 z %2, soubor %3 z %4</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="752"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="756"/>
|
||||
<source>Connected to <a href="%1">%2</a> as <i>%3</i>.</source>
|
||||
<translation>Připojeno k <a href="%1">%2</a> jako <i>%3</i>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="721"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="725"/>
|
||||
<source>Currently there is no storage usage information available.</source>
|
||||
<translation>Momentálně nejsou k dispozici žádné informace o využití úložiště</translation>
|
||||
</message>
|
||||
@@ -260,100 +260,100 @@
|
||||
<context>
|
||||
<name>Mirall::Folder</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="99"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="107"/>
|
||||
<source>Unable to create csync-context</source>
|
||||
<translation>Nepodařilo se vytvořit csync-context</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="157"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="165"/>
|
||||
<source>Local folder %1 does not exist.</source>
|
||||
<translation>Místní složka %1 neexistuje.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="160"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="168"/>
|
||||
<source>%1 should be a directory but is not.</source>
|
||||
<translation>%1 by měl být adresář, ale není.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="163"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="171"/>
|
||||
<source>%1 is not readable.</source>
|
||||
<translation>%1 není čitelný.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="316"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="323"/>
|
||||
<source>%1: %2</source>
|
||||
<translation>%1: %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="402"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="409"/>
|
||||
<source>%1 and %2 other files have been removed.</source>
|
||||
<comment>%1 names a file.</comment>
|
||||
<translation>%1 a %2 dalších souborů bylo odebráno.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="404"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="411"/>
|
||||
<source>%1 has been removed.</source>
|
||||
<comment>%1 names a file.</comment>
|
||||
<translation>%1 byl odebrán.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="409"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="416"/>
|
||||
<source>%1 and %2 other files have been downloaded.</source>
|
||||
<comment>%1 names a file.</comment>
|
||||
<translation>%1 a %2 dalších souborů bylo staženo.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="411"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="418"/>
|
||||
<source>%1 has been downloaded.</source>
|
||||
<comment>%1 names a file.</comment>
|
||||
<translation>%1 byl stažen.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="416"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="423"/>
|
||||
<source>%1 and %2 other files have been updated.</source>
|
||||
<translation>%1 a %2 dalších souborů bylo aktualizováno.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="418"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="425"/>
|
||||
<source>%1 has been updated.</source>
|
||||
<comment>%1 names a file.</comment>
|
||||
<translation>%1 byl aktualizován.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="423"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="430"/>
|
||||
<source>%1 has been renamed to %2 and %3 other files have been renamed.</source>
|
||||
<translation>%1 byl přejmenován na %2 a %3 dalších souborů bylo přejmenováno.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="425"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="432"/>
|
||||
<source>%1 has been renamed to %2.</source>
|
||||
<comment>%1 and %2 name files.</comment>
|
||||
<translation>%1 byl přejmenován na %2.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="430"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="437"/>
|
||||
<source>%1 has been moved to %2 and %3 other files have been moved.</source>
|
||||
<translation>%1 byl přesunut do %2 a %3 dalších souborů bylo přesunuto.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="432"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="439"/>
|
||||
<source>%1 has been moved to %2.</source>
|
||||
<translation>%1 byl přemístěn do %2.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="440"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="447"/>
|
||||
<source>Sync Activity</source>
|
||||
<translation>Průběh synchronizace</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="680"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="697"/>
|
||||
<source>This sync would remove all the files in the local sync folder '%1'.
|
||||
If you or your administrator have reset your account on the server, choose "Keep files". If you want your data to be removed, choose "Remove all files".</source>
|
||||
<translation>Tato synchronizace by smazala všechny soubory v místní složce '%1'
|
||||
Pokud jste vy nebo váš správce zresetovali účet na serveru, zvolte "Ponechat soubory". Pokud chcete místní data odstranit, zvolte "Odstranit všechny soubory".</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="683"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="700"/>
|
||||
<source>This sync would remove all the files in the sync folder '%1'.
|
||||
This might be because the folder was silently reconfigured, or that all the file were manually removed.
|
||||
Are you sure you want to perform this operation?</source>
|
||||
@@ -362,17 +362,17 @@ Toto může být způsobeno změnou v nastavení synchronizace složky nebo tím
|
||||
Opravdu chcete provést tuto akci?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="687"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="704"/>
|
||||
<source>Remove All Files?</source>
|
||||
<translation>Odstranit všechny soubory?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="689"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="706"/>
|
||||
<source>Remove all files</source>
|
||||
<translation>Odstranit všechny soubory</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="690"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="707"/>
|
||||
<source>Keep files</source>
|
||||
<translation>Ponechat soubory</translation>
|
||||
</message>
|
||||
@@ -380,12 +380,12 @@ Opravdu chcete provést tuto akci?</translation>
|
||||
<context>
|
||||
<name>Mirall::FolderMan</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/folderman.cpp" line="173"/>
|
||||
<location filename="../src/mirall/folderman.cpp" line="171"/>
|
||||
<source>Could not reset folder state</source>
|
||||
<translation>Nelze obnovit stav složky</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folderman.cpp" line="174"/>
|
||||
<location filename="../src/mirall/folderman.cpp" line="172"/>
|
||||
<source>An old sync journal '%1' was found, but could not be removed. Please make sure that no application is currently using it.</source>
|
||||
<translation>Byl nalezen starý záznam synchronizace '%1', ale nebylo možné jej odebrat. Ujistěte se, že není aktuálně používán jinou aplikací.</translation>
|
||||
</message>
|
||||
@@ -512,8 +512,8 @@ Opravdu chcete provést tuto akci?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folderwizard.cpp" line="139"/>
|
||||
<source>The selected folder is a symbolic link. An already configuredfolder is contained in the folder this link is pointing to.</source>
|
||||
<translation>Zvolená složka je symbolický odkaz. Cílová složka tohoto odkazu již obsahuje složku s nastavenou synchronizací.</translation>
|
||||
<source>The selected folder is a symbolic link. An already configured folder is contained in the folder this link is pointing to.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folderwizard.cpp" line="146"/>
|
||||
@@ -596,15 +596,20 @@ Opravdu chcete provést tuto akci?</translation>
|
||||
<context>
|
||||
<name>Mirall::GETFileJob</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="381"/>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="393"/>
|
||||
<source>No E-Tag received from server, check Proxy/Gateway</source>
|
||||
<translation>Ze serveru nebyl obdržen E-Tag, zkontrolujte proxy/bránu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="388"/>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="400"/>
|
||||
<source>We received a different E-Tag for resuming. Retrying next time.</source>
|
||||
<translation>Obdrželi jsme jiný E-Tag pro pokračování. Zkusím znovu příště.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="633"/>
|
||||
<source>Connection Timeout</source>
|
||||
<translation>Spojení Vypršelo</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Mirall::GeneralSettings</name>
|
||||
@@ -653,12 +658,12 @@ Opravdu chcete provést tuto akci?</translation>
|
||||
<context>
|
||||
<name>Mirall::HttpCredentials</name>
|
||||
<message>
|
||||
<location filename="../src/creds/httpcredentials.cpp" line="278"/>
|
||||
<location filename="../src/creds/httpcredentials.cpp" line="282"/>
|
||||
<source>Enter Password</source>
|
||||
<translation>Zadejte heslo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/creds/httpcredentials.cpp" line="279"/>
|
||||
<location filename="../src/creds/httpcredentials.cpp" line="283"/>
|
||||
<source>Please enter %1 password for user '%2':</source>
|
||||
<translation>Zadejte prosím %1 heslo pro uživatele '%2': </translation>
|
||||
</message>
|
||||
@@ -781,12 +786,12 @@ Zvolené položky budou smazány také v případě, že brání smazání adres
|
||||
<context>
|
||||
<name>Mirall::Logger</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/logger.cpp" line="155"/>
|
||||
<location filename="../src/mirall/logger.cpp" line="146"/>
|
||||
<source>Error</source>
|
||||
<translation>Chyba</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/logger.cpp" line="156"/>
|
||||
<location filename="../src/mirall/logger.cpp" line="147"/>
|
||||
<source><nobr>File '%1'<br/>cannot be opened for writing.<br/><br/>The log output can <b>not</b> be saved!</nobr></source>
|
||||
<translation><nobr>Soubor '%1'<br/>nelze otevřít pro zápis.<br/><br/>Výstup záznamu <b>nelze</b> uložit.</nobr></translation>
|
||||
</message>
|
||||
@@ -1079,18 +1084,18 @@ Nedoporučuje se jí používat.</translation>
|
||||
<context>
|
||||
<name>Mirall::OwncloudSetupWizard</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="357"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="360"/>
|
||||
<source>Folder rename failed</source>
|
||||
<translation>Přejmenování složky selhalo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="412"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="421"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="415"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="424"/>
|
||||
<source><font color="green"><b>Local sync folder %1 successfully created!</b></font></source>
|
||||
<translation><font color="green"><b>Místní synchronizovaná složka %1 byla vytvořena úspěšně!</b></font></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="192"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="193"/>
|
||||
<source>Trying to connect to %1 at %2...</source>
|
||||
<translation>Pokouším se připojit k %1 na %2...</translation>
|
||||
</message>
|
||||
@@ -1100,32 +1105,32 @@ Nedoporučuje se jí používat.</translation>
|
||||
<translation><font color="green">Úspěšně připojeno k %1: %2 verze %3 (%4)</font><br/><br/></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="215"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="218"/>
|
||||
<source>Error: Wrong credentials.</source>
|
||||
<translation>Chyba: nesprávné přihlašovací údaje.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="229"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="232"/>
|
||||
<source>Local sync folder %1 already exists, setting it up for sync.<br/><br/></source>
|
||||
<translation>Místní synchronizovaná složka %1 již existuje, nastavuji ji pro synchronizaci.<br/><br/></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="231"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="234"/>
|
||||
<source>Creating local sync folder %1... </source>
|
||||
<translation>Vytvářím místní synchronizovanou složku %1... </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="235"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="238"/>
|
||||
<source>ok</source>
|
||||
<translation>OK</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="237"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="240"/>
|
||||
<source>failed.</source>
|
||||
<translation>selhalo.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="239"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="242"/>
|
||||
<source>Could not create local folder %1</source>
|
||||
<translation>Nelze vytvořit místní složku %1</translation>
|
||||
</message>
|
||||
@@ -1136,69 +1141,69 @@ Nedoporučuje se jí používat.</translation>
|
||||
<translation>Selhalo spojení s %1 v %2:<br/>%3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="264"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="267"/>
|
||||
<source>No remote folder specified!</source>
|
||||
<translation>Žádná vzdálená složka nenastavena!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="270"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="273"/>
|
||||
<source>Error: %1</source>
|
||||
<translation>Chyba: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="283"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="286"/>
|
||||
<source>creating folder on ownCloud: %1</source>
|
||||
<translation>vytvářím složku na ownCloudu: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="299"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="302"/>
|
||||
<source>Remote folder %1 created successfully.</source>
|
||||
<translation>Vzdálená složka %1 byla úspěšně vytvořena.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="301"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="304"/>
|
||||
<source>The remote folder %1 already exists. Connecting it for syncing.</source>
|
||||
<translation>Vzdálená složka %1 již existuje. Spojuji ji pro synchronizaci.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="303"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="305"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="306"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="308"/>
|
||||
<source>The folder creation resulted in HTTP error code %1</source>
|
||||
<translation>Vytvoření složky selhalo HTTP chybou %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="307"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="310"/>
|
||||
<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é složky 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/mirall/owncloudsetupwizard.cpp" line="310"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="313"/>
|
||||
<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é složky 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/mirall/owncloudsetupwizard.cpp" line="315"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="316"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="318"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="319"/>
|
||||
<source>Remote folder %1 creation failed with error <tt>%2</tt>.</source>
|
||||
<translation>Vytváření vzdálené složky %1 selhalo s chybou <tt>%2</tt>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="332"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="335"/>
|
||||
<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/mirall/owncloudsetupwizard.cpp" line="337"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="340"/>
|
||||
<source>Successfully connected to %1!</source>
|
||||
<translation>Úspěšně spojeno s %1.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="344"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="347"/>
|
||||
<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/mirall/owncloudsetupwizard.cpp" line="358"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="361"/>
|
||||
<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>
|
||||
@@ -1239,6 +1244,14 @@ Nedoporučuje se jí používat.</translation>
|
||||
<translation>Složka %1 <i>%1</i> je synchronizována do místní složky <i>%2</i></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Mirall::PUTFileJob</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="82"/>
|
||||
<source>Connection Timeout</source>
|
||||
<translation>Spojení Vypršelo</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Mirall::PropagateDownloadFileLegacy</name>
|
||||
<message>
|
||||
@@ -1256,11 +1269,24 @@ Nedoporučuje se jí používat.</translation>
|
||||
<source>We received a different E-Tag for resuming. Retrying next time.</source>
|
||||
<translation>Obdrželi jsme jiný E-Tag pro pokračování. Zkusím znovu příště.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_legacy.cpp" line="449"/>
|
||||
<source>File %1 can not be downloaded because of a local file name clash!</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Mirall::PropagateDownloadFileQNAM</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="443"/>
|
||||
<source>File %1 can not be downloaded because of a local file name clash!</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Mirall::PropagateItemJob</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudpropagator.cpp" line="150"/>
|
||||
<location filename="../src/mirall/owncloudpropagator.cpp" line="159"/>
|
||||
<source>A file or directory was removed from a read only share, but restoring failed: %1</source>
|
||||
<translation>Soubor nebo adresář by odebrán ze sdílení pouze pro čtení, ale jeho obnovení selhalo: %1</translation>
|
||||
</message>
|
||||
@@ -1268,7 +1294,12 @@ Nedoporučuje se jí používat.</translation>
|
||||
<context>
|
||||
<name>Mirall::PropagateLocalMkdir</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="109"/>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="114"/>
|
||||
<source>Attention, possible case sensitivity clash with %1</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="119"/>
|
||||
<source>could not create directory %1</source>
|
||||
<translation>nepodařilo se vytvořit adresář %1</translation>
|
||||
</message>
|
||||
@@ -1276,15 +1307,28 @@ Nedoporučuje se jí používat.</translation>
|
||||
<context>
|
||||
<name>Mirall::PropagateLocalRemove</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="86"/>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="80"/>
|
||||
<source>Could not remove %1 because of a local file name clash</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="87"/>
|
||||
<source>Could not remove directory %1</source>
|
||||
<translation>Nepodařilo se odstranit adresář %1</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Mirall::PropagateLocalRename</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="196"/>
|
||||
<source>File %1 can not be renamed to %2 because of a local file name clash</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Mirall::PropagateRemoteRemove</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="129"/>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="139"/>
|
||||
<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>
|
||||
@@ -1292,17 +1336,17 @@ Nedoporučuje se jí používat.</translation>
|
||||
<context>
|
||||
<name>Mirall::PropagateRemoteRename</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="220"/>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="242"/>
|
||||
<source>This folder must not be renamed. It is renamed back to its original name.</source>
|
||||
<translation>Tato složka nemůže být přejmenována. Byl jí vrácen původní název.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="222"/>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="244"/>
|
||||
<source>This folder must not be renamed. Please name it back to Shared.</source>
|
||||
<translation>Tato složka nemůže být přejmenována. Přejmenujte jí prosím zpět na Shared.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="237"/>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="259"/>
|
||||
<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>
|
||||
@@ -1329,19 +1373,19 @@ Nedoporučuje se jí používat.</translation>
|
||||
<context>
|
||||
<name>Mirall::PropagateUploadFileQNAM</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="241"/>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="247"/>
|
||||
<source>The file was edited locally but is part of a read only share. It is restored and your edit is in the conflict file.</source>
|
||||
<translation>Soubor zde byl editován, ale je součástí sdílení pouze pro čtení. Původní soubor byl obnoven a editovaná verze je uložena v konfliktním souboru.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="266"/>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="272"/>
|
||||
<source>Local file changed during sync.</source>
|
||||
<translation>Místní soubor byl změněn během synchronizace.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="276"/>
|
||||
<source>The server did not aknoledge the last chunk. (No e-tag were present)</source>
|
||||
<translation>Server nepotvrdil poslední část dat. (Nebyl nalezen e-tag)</translation>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="282"/>
|
||||
<source>The server did not acknowledge the last chunk. (No e-tag were present)</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@@ -1466,27 +1510,27 @@ Zkuste provést novou synchronizaci.
|
||||
<context>
|
||||
<name>Mirall::SettingsDialogMac</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="30"/>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="28"/>
|
||||
<source>%1</source>
|
||||
<translation>%1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="34"/>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="32"/>
|
||||
<source>Account</source>
|
||||
<translation>Účet</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="38"/>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="36"/>
|
||||
<source>Activity</source>
|
||||
<translation>Aktivita</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="42"/>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="40"/>
|
||||
<source>General</source>
|
||||
<translation>Hlavní</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="46"/>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="44"/>
|
||||
<source>Network</source>
|
||||
<translation>Síť</translation>
|
||||
</message>
|
||||
@@ -1494,12 +1538,12 @@ Zkuste provést novou synchronizaci.
|
||||
<context>
|
||||
<name>Mirall::ShibbolethCredentials</name>
|
||||
<message>
|
||||
<location filename="../src/creds/shibbolethcredentials.cpp" line="299"/>
|
||||
<location filename="../src/creds/shibbolethcredentials.cpp" line="259"/>
|
||||
<source>Login Error</source>
|
||||
<translation>Chyba přihlášení</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/creds/shibbolethcredentials.cpp" line="299"/>
|
||||
<location filename="../src/creds/shibbolethcredentials.cpp" line="259"/>
|
||||
<source>You must sign in as user %1</source>
|
||||
<translation>Musíte se přihlásit jako uživatel %1</translation>
|
||||
</message>
|
||||
@@ -1507,12 +1551,22 @@ Zkuste provést novou synchronizaci.
|
||||
<context>
|
||||
<name>Mirall::ShibbolethWebView</name>
|
||||
<message>
|
||||
<location filename="../src/creds/shibboleth/shibbolethwebview.cpp" line="58"/>
|
||||
<location filename="../src/creds/shibboleth/shibbolethwebview.cpp" line="56"/>
|
||||
<source>%1 - Authenticate</source>
|
||||
<translation>%1 - ověření</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/creds/shibboleth/shibbolethwebview.cpp" line="119"/>
|
||||
<location filename="../src/creds/shibboleth/shibbolethwebview.cpp" line="62"/>
|
||||
<source>Reauthentication required</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/creds/shibboleth/shibbolethwebview.cpp" line="62"/>
|
||||
<source>Your session has expired. You need to re-login to continue to use the client.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/creds/shibboleth/shibbolethwebview.cpp" line="101"/>
|
||||
<source>%1 - %2</source>
|
||||
<translation>%1 - %2</translation>
|
||||
</message>
|
||||
@@ -1887,12 +1941,12 @@ Zkuste provést novou synchronizaci.
|
||||
<translation>Soubor obsahuje alespoň jeden neplatný znak, který narušuje synchronizaci v prostředí více platforem.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/syncengine.cpp" line="451"/>
|
||||
<location filename="../src/mirall/syncengine.cpp" line="448"/>
|
||||
<source>Unable to initialize a sync journal.</source>
|
||||
<translation>Nemohu inicializovat synchronizační žurnál.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/syncengine.cpp" line="550"/>
|
||||
<location filename="../src/mirall/syncengine.cpp" line="545"/>
|
||||
<source>Cannot open the sync journal</source>
|
||||
<translation>Nelze otevřít synchronizační žurnál</translation>
|
||||
</message>
|
||||
@@ -2263,12 +2317,12 @@ Zkuste provést novou synchronizaci.
|
||||
<context>
|
||||
<name>main.cpp</name>
|
||||
<message>
|
||||
<location filename="../src/main.cpp" line="30"/>
|
||||
<location filename="../src/main.cpp" line="38"/>
|
||||
<source>System Tray not available</source>
|
||||
<translation>Systémová lišta není k dispozici</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/main.cpp" line="31"/>
|
||||
<location filename="../src/main.cpp" line="39"/>
|
||||
<source>%1 requires on a working system tray. If you are running XFCE, please follow <a href="http://docs.xfce.org/xfce/xfce4-panel/systray">these instructions</a>. Otherwise, please install a system tray application such as 'trayer' and try again.</source>
|
||||
<translation>%1 vyžaduje fungující systémovou lištu. Pokud používáte XFCE, řiďte se <a href="http://docs.xfce.org/xfce/xfce4-panel/systray">těmito instrukcemi</a>. V ostatních případech prosím nainstalujte do svého systému aplikaci pro systémovou lištu, např. 'trayer', a zkuste to znovu.</translation>
|
||||
</message>
|
||||
|
||||
@@ -89,7 +89,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.ui" line="62"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="160"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="159"/>
|
||||
<source>Pause</source>
|
||||
<translation>Anhalten</translation>
|
||||
</message>
|
||||
@@ -119,60 +119,60 @@
|
||||
<translation><b>Hinweis:</b> Einige Ordner, einschließlich über das Netzwerk verbundene oder freigegebene Ordner, können unterschiedliche Beschränkungen haben.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="162"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="161"/>
|
||||
<source>Resume</source>
|
||||
<translation>Fortsetzen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="317"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="320"/>
|
||||
<source>Confirm Folder Remove</source>
|
||||
<translation>Löschen des Ordners bestätigen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="318"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="321"/>
|
||||
<source><p>Do you really want to stop syncing the folder <i>%1</i>?</p><p><b>Note:</b> This will not remove the files from your client.</p></source>
|
||||
<translation><p>Wollen Sie wirklich die Synchronisation des Ordners <i>%1</i> beenden?</p><p><b>Anmerkung:</b> Dies wird keine Dateien von ihrem Rechner löschen.</p></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="354"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="357"/>
|
||||
<source>Confirm Folder Reset</source>
|
||||
<translation>Zurücksetzen des Ordners bestätigen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="355"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="358"/>
|
||||
<source><p>Do you really want to reset folder <i>%1</i> and rebuild your client database?</p><p><b>Note:</b> This function is designed for maintenance purposes only. No files will be removed, but this can cause significant data traffic and take several minutes or hours to complete, depending on the size of the folder. Only use this option if advised by your administrator.</p></source>
|
||||
<translation><p>Wollen Sie wirklich den Ordner <i>%1</i> zurücksetzen und die Datenbank auf dem Klient neu aufbauen?</p><p><b>Anmerkung:</b>
|
||||
<translation><p>Wollen Sie wirklich den Ordner <i>%1</i> zurücksetzen und die Datenbank auf dem Client neu aufbauen?</p><p><b>Anmerkung:</b>
|
||||
Diese Funktion ist nur für Wartungszwecke gedacht. Es werden keine Dateien entfernt, jedoch kann diese Aktion erheblichen Datenverkehr verursachen und je nach Umfang des Ordners mehrere Minuten oder Stunden in Anspruch nehmen. Verwenden Sie diese Funktion nur dann, wenn ihr Administrator dies ausdrücklich wünscht.</p></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="619"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="622"/>
|
||||
<source>%1 %2 (%3 of %4)</source>
|
||||
<extracomment>Example text: "uploading foobar.png (1MB of 2MB)"</extracomment>
|
||||
<translation>%1 %2 (%3 von %4)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="622"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="625"/>
|
||||
<source>%1 %2</source>
|
||||
<extracomment>Example text: "uploading foobar.png"</extracomment>
|
||||
<translation>%1 %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="717"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="721"/>
|
||||
<source>%1 (%3%) of %2 server space in use.</source>
|
||||
<translation>%1 (%3%) von %2 Serverkapazität in Benutzung.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="756"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="760"/>
|
||||
<source>No connection to %1 at <a href="%2">%3</a>.</source>
|
||||
<translation>Keine Verbindung mit %1 zu <a href="%2">%3</a>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="763"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="767"/>
|
||||
<source>No %1 connection configured.</source>
|
||||
<translation>Keine %1-Verbindung konfiguriert.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="466"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="469"/>
|
||||
<source>Sync Running</source>
|
||||
<translation>Synchronisation läuft</translation>
|
||||
</message>
|
||||
@@ -182,27 +182,27 @@ Diese Funktion ist nur für Wartungszwecke gedacht. Es werden keine Dateien entf
|
||||
<translation>Kein Konto konfiguriert.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="467"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="470"/>
|
||||
<source>The syncing operation is running.<br/>Do you want to terminate it?</source>
|
||||
<translation>Die Synchronistation läuft gerade.<br/>Wollen Sie diese beenden?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="749"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="753"/>
|
||||
<source>Connected to <a href="%1">%2</a>.</source>
|
||||
<translation>Verbunden mit <a href="%1">%2</a>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="631"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="634"/>
|
||||
<source>%1 of %2, file %3 of %4</source>
|
||||
<translation>%1 of %2, Datei %3 von %4</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="752"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="756"/>
|
||||
<source>Connected to <a href="%1">%2</a> as <i>%3</i>.</source>
|
||||
<translation>Verbunden mit <a href="%1">%2</a> als <i>%3</i>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="721"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="725"/>
|
||||
<source>Currently there is no storage usage information available.</source>
|
||||
<translation>Derzeit sind keine Speichernutzungsinformationen verfügbar.</translation>
|
||||
</message>
|
||||
@@ -240,12 +240,12 @@ Diese Funktion ist nur für Wartungszwecke gedacht. Es werden keine Dateien entf
|
||||
<message>
|
||||
<location filename="../src/mirall/connectionvalidator.cpp" line="106"/>
|
||||
<source>The configured server for this client is too old</source>
|
||||
<translation>Der konfigurierte Server ist für diesen Klient zu alt</translation>
|
||||
<translation>Der konfigurierte Server ist für diesen Client zu alt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/connectionvalidator.cpp" line="107"/>
|
||||
<source>Please update to the latest server and restart the client.</source>
|
||||
<translation>Aktualisieren Sie auf die letzte Server-Version und starten Sie den Klient neu.</translation>
|
||||
<translation>Aktualisieren Sie auf die letzte Server-Version und starten Sie den Client neu.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/connectionvalidator.cpp" line="127"/>
|
||||
@@ -261,100 +261,100 @@ Diese Funktion ist nur für Wartungszwecke gedacht. Es werden keine Dateien entf
|
||||
<context>
|
||||
<name>Mirall::Folder</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="99"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="107"/>
|
||||
<source>Unable to create csync-context</source>
|
||||
<translation>Kann keinen CSync-Kontext erstellen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="157"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="165"/>
|
||||
<source>Local folder %1 does not exist.</source>
|
||||
<translation>Lokales Verzeichnis %1 existiert nicht.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="160"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="168"/>
|
||||
<source>%1 should be a directory but is not.</source>
|
||||
<translation>%1 sollte ein Verzeichnis sein, ist es aber nicht.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="163"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="171"/>
|
||||
<source>%1 is not readable.</source>
|
||||
<translation>%1 ist nicht lesbar.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="316"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="323"/>
|
||||
<source>%1: %2</source>
|
||||
<translation>%1: %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="402"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="409"/>
|
||||
<source>%1 and %2 other files have been removed.</source>
|
||||
<comment>%1 names a file.</comment>
|
||||
<translation>%1 und %2 andere Dateien wurden gelöscht.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="404"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="411"/>
|
||||
<source>%1 has been removed.</source>
|
||||
<comment>%1 names a file.</comment>
|
||||
<translation>%1 wurde gelöscht.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="409"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="416"/>
|
||||
<source>%1 and %2 other files have been downloaded.</source>
|
||||
<comment>%1 names a file.</comment>
|
||||
<translation>%1 und %2 andere Dateien wurden heruntergeladen.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="411"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="418"/>
|
||||
<source>%1 has been downloaded.</source>
|
||||
<comment>%1 names a file.</comment>
|
||||
<translation>%1 wurde heruntergeladen.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="416"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="423"/>
|
||||
<source>%1 and %2 other files have been updated.</source>
|
||||
<translation>%1 und %2 andere Dateien wurden aktualisiert.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="418"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="425"/>
|
||||
<source>%1 has been updated.</source>
|
||||
<comment>%1 names a file.</comment>
|
||||
<translation>%1 wurde aktualisiert.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="423"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="430"/>
|
||||
<source>%1 has been renamed to %2 and %3 other files have been renamed.</source>
|
||||
<translation>%1 wurde in %2 umbenannt und %3 andere Dateien wurden umbenannt.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="425"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="432"/>
|
||||
<source>%1 has been renamed to %2.</source>
|
||||
<comment>%1 and %2 name files.</comment>
|
||||
<translation>%1 wurde in %2 umbenannt.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="430"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="437"/>
|
||||
<source>%1 has been moved to %2 and %3 other files have been moved.</source>
|
||||
<translation>%1 wurde in %2 verschoben und %3 andere Dateien wurden verschoben.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="432"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="439"/>
|
||||
<source>%1 has been moved to %2.</source>
|
||||
<translation>%1 wurde in %2 verschoben.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="440"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="447"/>
|
||||
<source>Sync Activity</source>
|
||||
<translation>Synchronisierungsaktivität</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="680"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="697"/>
|
||||
<source>This sync would remove all the files in the local sync folder '%1'.
|
||||
If you or your administrator have reset your account on the server, choose "Keep files". If you want your data to be removed, choose "Remove all files".</source>
|
||||
<translation>Dieser Synchronisationsvorgang würde alle Dateien in dem lokalen Ordner '%1' entfernen.
|
||||
Wenn Sie oder Ihr Administrator Ihr Konto auf dem Server zurückgesetzt haben, wählen Sie "Dateien behalten". Wenn Sie ihre Daten löschen wollen, wählen Sie "Alle Dateien entfernen".</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="683"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="700"/>
|
||||
<source>This sync would remove all the files in the sync folder '%1'.
|
||||
This might be because the folder was silently reconfigured, or that all the file were manually removed.
|
||||
Are you sure you want to perform this operation?</source>
|
||||
@@ -363,17 +363,17 @@ Vielleicht wurde der Ordner neu konfiguriert, oder alle Dateien wurden händisch
|
||||
Sind Sie sicher, dass sie diese Operation durchführen wollen?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="687"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="704"/>
|
||||
<source>Remove All Files?</source>
|
||||
<translation>Alle Dateien löschen?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="689"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="706"/>
|
||||
<source>Remove all files</source>
|
||||
<translation>Lösche alle Dateien</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="690"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="707"/>
|
||||
<source>Keep files</source>
|
||||
<translation>Dateien behalten</translation>
|
||||
</message>
|
||||
@@ -381,12 +381,12 @@ Sind Sie sicher, dass sie diese Operation durchführen wollen?</translation>
|
||||
<context>
|
||||
<name>Mirall::FolderMan</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/folderman.cpp" line="173"/>
|
||||
<location filename="../src/mirall/folderman.cpp" line="171"/>
|
||||
<source>Could not reset folder state</source>
|
||||
<translation>Konnte Ordner-Zustand nicht zurücksetzen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folderman.cpp" line="174"/>
|
||||
<location filename="../src/mirall/folderman.cpp" line="172"/>
|
||||
<source>An old sync journal '%1' was found, but could not be removed. Please make sure that no application is currently using it.</source>
|
||||
<translation>Ein altes Synchronisations-Journal '%1' wurde gefunden, konnte jedoch nicht entfernt werden. Bitte stellen Sie sicher, dass keine Anwendung es verwendet.</translation>
|
||||
</message>
|
||||
@@ -513,7 +513,7 @@ Sind Sie sicher, dass sie diese Operation durchführen wollen?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folderwizard.cpp" line="139"/>
|
||||
<source>The selected folder is a symbolic link. An already configuredfolder is contained in the folder this link is pointing to.</source>
|
||||
<source>The selected folder is a symbolic link. An already configured folder is contained in the folder this link is pointing to.</source>
|
||||
<translation>Das gewählte Verzeichnis ist ein symbolischer Link. Ein bereits konfigurierter Ordner befindet sich in dem Ordner auf den dieser Link zeigt.</translation>
|
||||
</message>
|
||||
<message>
|
||||
@@ -597,15 +597,20 @@ Sind Sie sicher, dass sie diese Operation durchführen wollen?</translation>
|
||||
<context>
|
||||
<name>Mirall::GETFileJob</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="381"/>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="393"/>
|
||||
<source>No E-Tag received from server, check Proxy/Gateway</source>
|
||||
<translation>Kein E-Tag vom Server empfangen, bitte Proxy / Gateway überprüfen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="388"/>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="400"/>
|
||||
<source>We received a different E-Tag for resuming. Retrying next time.</source>
|
||||
<translation>Es wurde ein unterschiedlicher E-Tag zum Fortfahren empfangen. Bitte beim nächsten mal nochmal versuchen.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="633"/>
|
||||
<source>Connection Timeout</source>
|
||||
<translation>Zeitüberschreitung der Verbindung</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Mirall::GeneralSettings</name>
|
||||
@@ -654,12 +659,12 @@ Sind Sie sicher, dass sie diese Operation durchführen wollen?</translation>
|
||||
<context>
|
||||
<name>Mirall::HttpCredentials</name>
|
||||
<message>
|
||||
<location filename="../src/creds/httpcredentials.cpp" line="278"/>
|
||||
<location filename="../src/creds/httpcredentials.cpp" line="282"/>
|
||||
<source>Enter Password</source>
|
||||
<translation>Passwort eingeben</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/creds/httpcredentials.cpp" line="279"/>
|
||||
<location filename="../src/creds/httpcredentials.cpp" line="283"/>
|
||||
<source>Please enter %1 password for user '%2':</source>
|
||||
<translation>Bitte %1 Passwort für den Nutzer '%2' eingeben:</translation>
|
||||
</message>
|
||||
@@ -782,12 +787,12 @@ Aktivierte Elemente werden ebenfalls gelöscht, wenn diese das Löschen eines Ve
|
||||
<context>
|
||||
<name>Mirall::Logger</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/logger.cpp" line="155"/>
|
||||
<location filename="../src/mirall/logger.cpp" line="146"/>
|
||||
<source>Error</source>
|
||||
<translation>Fehler</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/logger.cpp" line="156"/>
|
||||
<location filename="../src/mirall/logger.cpp" line="147"/>
|
||||
<source><nobr>File '%1'<br/>cannot be opened for writing.<br/><br/>The log output can <b>not</b> be saved!</nobr></source>
|
||||
<translation><nobr>Datei '%1'<br/>kann nicht zum Schreiben geöffnet werden.<br/><br/>Die Protokolldatei kann <b>nicht</b> gespeichert werden!</nobr></translation>
|
||||
</message>
|
||||
@@ -1080,18 +1085,18 @@ Es ist nicht ratsam, diese zu benutzen.</translation>
|
||||
<context>
|
||||
<name>Mirall::OwncloudSetupWizard</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="357"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="360"/>
|
||||
<source>Folder rename failed</source>
|
||||
<translation>Ordner umbenennen fehlgeschlagen.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="412"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="421"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="415"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="424"/>
|
||||
<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>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="192"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="193"/>
|
||||
<source>Trying to connect to %1 at %2...</source>
|
||||
<translation>Versuche zu %1 an %2 zu verbinden...</translation>
|
||||
</message>
|
||||
@@ -1101,32 +1106,32 @@ Es ist nicht ratsam, diese zu benutzen.</translation>
|
||||
<translation><font color="green">Erfolgreich mit %1 verbunden: %2 Version %3 (%4)</font><br/><br/></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="215"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="218"/>
|
||||
<source>Error: Wrong credentials.</source>
|
||||
<translation>Fehler: Falsche Anmeldeinformationen.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="229"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="232"/>
|
||||
<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/mirall/owncloudsetupwizard.cpp" line="231"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="234"/>
|
||||
<source>Creating local sync folder %1... </source>
|
||||
<translation>Erstelle lokalen Sync-Ordner %1...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="235"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="238"/>
|
||||
<source>ok</source>
|
||||
<translation>ok</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="237"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="240"/>
|
||||
<source>failed.</source>
|
||||
<translation>fehlgeschlagen.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="239"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="242"/>
|
||||
<source>Could not create local folder %1</source>
|
||||
<translation>Der lokale Ordner %1 konnte nicht angelegt werden</translation>
|
||||
</message>
|
||||
@@ -1137,69 +1142,69 @@ Es ist nicht ratsam, diese zu benutzen.</translation>
|
||||
<translation>Die Verbindung zu %1 auf %2:<br/>%3 konnte nicht hergestellt werden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="264"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="267"/>
|
||||
<source>No remote folder specified!</source>
|
||||
<translation>Keinen fernen Ordner spezifiziert!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="270"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="273"/>
|
||||
<source>Error: %1</source>
|
||||
<translation>Fehler: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="283"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="286"/>
|
||||
<source>creating folder on ownCloud: %1</source>
|
||||
<translation>erstelle Ordner auf ownCloud: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="299"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="302"/>
|
||||
<source>Remote folder %1 created successfully.</source>
|
||||
<translation>Remoteordner %1 erfolgreich erstellt.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="301"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="304"/>
|
||||
<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/mirall/owncloudsetupwizard.cpp" line="303"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="305"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="306"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="308"/>
|
||||
<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/mirall/owncloudsetupwizard.cpp" line="307"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="310"/>
|
||||
<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/mirall/owncloudsetupwizard.cpp" line="310"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="313"/>
|
||||
<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/mirall/owncloudsetupwizard.cpp" line="315"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="316"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="318"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="319"/>
|
||||
<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/mirall/owncloudsetupwizard.cpp" line="332"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="335"/>
|
||||
<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/mirall/owncloudsetupwizard.cpp" line="337"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="340"/>
|
||||
<source>Successfully connected to %1!</source>
|
||||
<translation>Erfolgreich verbunden mit %1!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="344"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="347"/>
|
||||
<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/mirall/owncloudsetupwizard.cpp" line="358"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="361"/>
|
||||
<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>Kann den Ordner nicht entfernen und sichern, da der Ordner oder einer seiner Dateien in einem anderen Programm geöffnet ist. Bitte schließen Sie den Ordner ode die Datei oder beenden Sie das Setup.</translation>
|
||||
</message>
|
||||
@@ -1240,6 +1245,14 @@ Es ist nicht ratsam, diese zu benutzen.</translation>
|
||||
<translation>%1 Ordner <i>%1</i> ist mit einem lokalen Ordner synchronisiert <i>%2</i></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Mirall::PUTFileJob</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="82"/>
|
||||
<source>Connection Timeout</source>
|
||||
<translation>Zeitüberschreitung der Verbindung</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Mirall::PropagateDownloadFileLegacy</name>
|
||||
<message>
|
||||
@@ -1257,11 +1270,24 @@ Es ist nicht ratsam, diese zu benutzen.</translation>
|
||||
<source>We received a different E-Tag for resuming. Retrying next time.</source>
|
||||
<translation>Es wurde ein unterschiedlicher E-Tag zum Fortfahren empfangen. Bitte beim nächsten mal nochmal versuchen.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_legacy.cpp" line="449"/>
|
||||
<source>File %1 can not be downloaded because of a local file name clash!</source>
|
||||
<translation>Die Datei %1 kann aufgrund eines Konfliktes mit dem lokalen Dateinamen nicht herunter geladen werden!</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Mirall::PropagateDownloadFileQNAM</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="443"/>
|
||||
<source>File %1 can not be downloaded because of a local file name clash!</source>
|
||||
<translation>Die Datei %1 kann aufgrund eines Konfliktes mit dem lokalen Dateinamen nicht herunter geladen werden!</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Mirall::PropagateItemJob</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudpropagator.cpp" line="150"/>
|
||||
<location filename="../src/mirall/owncloudpropagator.cpp" line="159"/>
|
||||
<source>A file or directory was removed from a read only share, but restoring failed: %1</source>
|
||||
<translation>Eine Datei oder Verzeichnis wurde von einer Nur-Lese-Freigabe wiederhergestellt, aber die Wiederherstellung ist mit folgendem Fehler fehlgeschlagen: %1</translation>
|
||||
</message>
|
||||
@@ -1269,7 +1295,12 @@ Es ist nicht ratsam, diese zu benutzen.</translation>
|
||||
<context>
|
||||
<name>Mirall::PropagateLocalMkdir</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="109"/>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="114"/>
|
||||
<source>Attention, possible case sensitivity clash with %1</source>
|
||||
<translation>Achtung, es könnte ein Problem mit der Groß- und Kleinschreibung für %1 auftreten</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="119"/>
|
||||
<source>could not create directory %1</source>
|
||||
<translation>Verzeichnis %1 konnte nicht erstellt werden</translation>
|
||||
</message>
|
||||
@@ -1277,15 +1308,28 @@ Es ist nicht ratsam, diese zu benutzen.</translation>
|
||||
<context>
|
||||
<name>Mirall::PropagateLocalRemove</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="86"/>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="80"/>
|
||||
<source>Could not remove %1 because of a local file name clash</source>
|
||||
<translation>%1 kann aufgrund eines Konfliktes mit dem lokalen Dateinamen nicht gelöscht werden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="87"/>
|
||||
<source>Could not remove directory %1</source>
|
||||
<translation>Verzeichnis %1 konnte nicht entfernt werden</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Mirall::PropagateLocalRename</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="196"/>
|
||||
<source>File %1 can not be renamed to %2 because of a local file name clash</source>
|
||||
<translation>%1 kann aufgrund eines Konfliktes mit dem lokalen Dateinamen nicht zu %2 umbenannt werden</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Mirall::PropagateRemoteRemove</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="129"/>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="139"/>
|
||||
<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>
|
||||
@@ -1293,17 +1337,17 @@ Es ist nicht ratsam, diese zu benutzen.</translation>
|
||||
<context>
|
||||
<name>Mirall::PropagateRemoteRename</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="220"/>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="242"/>
|
||||
<source>This folder must not be renamed. It is renamed back to its original name.</source>
|
||||
<translation>Dieser Ordner muss nicht umbenannt werden. Er wurde zurück zum Originalnamen umbenannt.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="222"/>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="244"/>
|
||||
<source>This folder must not be renamed. Please name it back to Shared.</source>
|
||||
<translation>Dieser Ordner muss nicht umbenannt werden. Bitte benennen Sie es zurück wie in der Freigabe.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="237"/>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="259"/>
|
||||
<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>
|
||||
@@ -1330,18 +1374,18 @@ Es ist nicht ratsam, diese zu benutzen.</translation>
|
||||
<context>
|
||||
<name>Mirall::PropagateUploadFileQNAM</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="241"/>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="247"/>
|
||||
<source>The file was edited locally but is part of a read only share. It is restored and your edit is in the conflict file.</source>
|
||||
<translation>Die Datei wurde von einer Nur-Lese-Freigabe lokal bearbeitet. Die Datei wurde wiederhergestellt und Ihre Bearbeitung ist in der Konflikte-Datei.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="266"/>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="272"/>
|
||||
<source>Local file changed during sync.</source>
|
||||
<translation>Eine lokale Datei wurde während der Synchronisation geändert.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="276"/>
|
||||
<source>The server did not aknoledge the last chunk. (No e-tag were present)</source>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="282"/>
|
||||
<source>The server did not acknowledge the last chunk. (No e-tag were present)</source>
|
||||
<translation>Der Server hat den letzten Block nicht bestätigt. (Der E-Tag war nicht vorhanden)</translation>
|
||||
</message>
|
||||
</context>
|
||||
@@ -1466,27 +1510,27 @@ Versuchen Sie diese nochmals zu synchronisieren.</translation>
|
||||
<context>
|
||||
<name>Mirall::SettingsDialogMac</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="30"/>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="28"/>
|
||||
<source>%1</source>
|
||||
<translation>%1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="34"/>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="32"/>
|
||||
<source>Account</source>
|
||||
<translation>Nutzerkonto</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="38"/>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="36"/>
|
||||
<source>Activity</source>
|
||||
<translation>Aktivität</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="42"/>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="40"/>
|
||||
<source>General</source>
|
||||
<translation>Allgemein</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="46"/>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="44"/>
|
||||
<source>Network</source>
|
||||
<translation>Netzwerk</translation>
|
||||
</message>
|
||||
@@ -1494,12 +1538,12 @@ Versuchen Sie diese nochmals zu synchronisieren.</translation>
|
||||
<context>
|
||||
<name>Mirall::ShibbolethCredentials</name>
|
||||
<message>
|
||||
<location filename="../src/creds/shibbolethcredentials.cpp" line="299"/>
|
||||
<location filename="../src/creds/shibbolethcredentials.cpp" line="259"/>
|
||||
<source>Login Error</source>
|
||||
<translation>Log-In Fehler</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/creds/shibbolethcredentials.cpp" line="299"/>
|
||||
<location filename="../src/creds/shibbolethcredentials.cpp" line="259"/>
|
||||
<source>You must sign in as user %1</source>
|
||||
<translation>Sie müssen sich als %1 einloggen</translation>
|
||||
</message>
|
||||
@@ -1507,12 +1551,22 @@ Versuchen Sie diese nochmals zu synchronisieren.</translation>
|
||||
<context>
|
||||
<name>Mirall::ShibbolethWebView</name>
|
||||
<message>
|
||||
<location filename="../src/creds/shibboleth/shibbolethwebview.cpp" line="58"/>
|
||||
<location filename="../src/creds/shibboleth/shibbolethwebview.cpp" line="56"/>
|
||||
<source>%1 - Authenticate</source>
|
||||
<translation>%1 - Authentifikation</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/creds/shibboleth/shibbolethwebview.cpp" line="119"/>
|
||||
<location filename="../src/creds/shibboleth/shibbolethwebview.cpp" line="62"/>
|
||||
<source>Reauthentication required</source>
|
||||
<translation>Erneute Authentifizierung erforderlich</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/creds/shibboleth/shibbolethwebview.cpp" line="62"/>
|
||||
<source>Your session has expired. You need to re-login to continue to use the client.</source>
|
||||
<translation>Ihre Sitzung ist abgelaufen. Sie müssen sich zur weiteren Nutzung des Clients neu Anmelden.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/creds/shibboleth/shibbolethwebview.cpp" line="101"/>
|
||||
<source>%1 - %2</source>
|
||||
<translation>%1 - %2</translation>
|
||||
</message>
|
||||
@@ -1743,7 +1797,7 @@ Versuchen Sie diese nochmals zu synchronisieren.</translation>
|
||||
<message>
|
||||
<location filename="../src/mirall/syncengine.cpp" line="102"/>
|
||||
<source>The system time on this client is different than the system time on the server. Please use a time synchronization service (NTP) on the server and client machines so that the times remain the same.</source>
|
||||
<translation>Die Uhrzeit auf diesem Klienten und dem Server sind verschieden. Bitte verwenden Sie ein Zeitsynchronisationsprotokolls (NTP) auf Ihrem Server und Klienten, damit die gleiche Uhrzeit verwendet wird.</translation>
|
||||
<translation>Die Uhrzeit auf diesem Computer und dem Server sind verschieden. Bitte verwenden Sie ein Zeitsynchronisationsprotokolls (NTP) auf Ihrem Server und Klienten, damit die gleiche Uhrzeit verwendet wird.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/syncengine.cpp" line="107"/>
|
||||
@@ -1887,12 +1941,12 @@ Versuchen Sie diese nochmals zu synchronisieren.</translation>
|
||||
<translation>Die Datei beinhaltet ungültige Zeichen und kann nicht plattformübergreifend synchronisiert werden.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/syncengine.cpp" line="451"/>
|
||||
<location filename="../src/mirall/syncengine.cpp" line="448"/>
|
||||
<source>Unable to initialize a sync journal.</source>
|
||||
<translation>Synchronisationsbericht konnte nicht initialisiert werden.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/syncengine.cpp" line="550"/>
|
||||
<location filename="../src/mirall/syncengine.cpp" line="545"/>
|
||||
<source>Cannot open the sync journal</source>
|
||||
<translation>Synchronisationsbericht kann nicht geöffnet werden</translation>
|
||||
</message>
|
||||
@@ -2263,12 +2317,12 @@ Versuchen Sie diese nochmals zu synchronisieren.</translation>
|
||||
<context>
|
||||
<name>main.cpp</name>
|
||||
<message>
|
||||
<location filename="../src/main.cpp" line="30"/>
|
||||
<location filename="../src/main.cpp" line="38"/>
|
||||
<source>System Tray not available</source>
|
||||
<translation>Die Taskleiste ist nicht verfügbar.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/main.cpp" line="31"/>
|
||||
<location filename="../src/main.cpp" line="39"/>
|
||||
<source>%1 requires on a working system tray. If you are running XFCE, please follow <a href="http://docs.xfce.org/xfce/xfce4-panel/systray">these instructions</a>. Otherwise, please install a system tray application such as 'trayer' and try again.</source>
|
||||
<translation>%1 wird für eine funktionierende Taskleiste benötigt. Falls Sie XFCE einsetzen, dann folgen Sie bitte <a href="http://docs.xfce.org/xfce/xfce4-panel/systray">diesen Anweisungen</a>. Anderenfalls installieren Sie bitte eine Taskleisten-Anwendung wie 'trayer' und versuchen Sie es erneut.</translation>
|
||||
</message>
|
||||
|
||||
@@ -89,7 +89,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.ui" line="62"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="160"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="159"/>
|
||||
<source>Pause</source>
|
||||
<translation>Παύση</translation>
|
||||
</message>
|
||||
@@ -119,59 +119,59 @@
|
||||
<translation><b>Σημείωση:</b> Κάποιοι φάκελοι, συμπεριλαμβανομένων των δικτυακών δίσκων ή των κοινόχρηστων φακέλων, μπορεί να έχουν διαφορετικά όρια. </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="162"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="161"/>
|
||||
<source>Resume</source>
|
||||
<translation>Συνέχεια</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="317"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="320"/>
|
||||
<source>Confirm Folder Remove</source>
|
||||
<translation>Επιβεβαίωση αφαίρεσης φακέλου</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="318"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="321"/>
|
||||
<source><p>Do you really want to stop syncing the folder <i>%1</i>?</p><p><b>Note:</b> This will not remove the files from your client.</p></source>
|
||||
<translation><p>Θέλετε στ' αλήθεια να σταματήσετε το συγχρονισμό του φακέλου <i>%1</i>;</p><p><b>Σημείωση:</b> Αυτό δεν θα αφαιρέσει τα αρχεία από το δέκτη.</p></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="354"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="357"/>
|
||||
<source>Confirm Folder Reset</source>
|
||||
<translation>Επιβεβαίωση Επαναφοράς Φακέλου</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="355"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="358"/>
|
||||
<source><p>Do you really want to reset folder <i>%1</i> and rebuild your client database?</p><p><b>Note:</b> This function is designed for maintenance purposes only. No files will be removed, but this can cause significant data traffic and take several minutes or hours to complete, depending on the size of the folder. Only use this option if advised by your administrator.</p></source>
|
||||
<translation><p>Θέλετε στ' αλήθεια να επαναφέρετε το φάκελο <i>%1</i> και να επαναδημιουργήσετε τη βάση δεδομένων του πελάτη;</p><p><b>Σημείωση:</b> Αυτή η λειτουργία έχει σχεδιαστεί αποκλειστικά για λόγους συντήρησης. Κανένα αρχείο δεν θα αφαιρεθεί, αλλά αυτό μπορεί να προκαλέσει σημαντική κίνηση δεδομένων και να πάρει αρκετά λεπτά ή ώρες μέχρι να ολοκληρωθεί, ανάλογα με το μέγεθος του φακέλου. Χρησιμοποιείστε αυτή την επιλογή μόνο εάν έχετε συμβουλευτεί αναλόγως από το διαχειριστή σας.</p></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="619"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="622"/>
|
||||
<source>%1 %2 (%3 of %4)</source>
|
||||
<extracomment>Example text: "uploading foobar.png (1MB of 2MB)"</extracomment>
|
||||
<translation>%1 %2 (%3 από %4)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="622"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="625"/>
|
||||
<source>%1 %2</source>
|
||||
<extracomment>Example text: "uploading foobar.png"</extracomment>
|
||||
<translation>%1 %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="717"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="721"/>
|
||||
<source>%1 (%3%) of %2 server space in use.</source>
|
||||
<translation>Χρησιμοποιούμενος χώρος στον διακομιστή: %1 (%3%) από %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="756"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="760"/>
|
||||
<source>No connection to %1 at <a href="%2">%3</a>.</source>
|
||||
<translation>Δεν υπάρχει σύνδεση με %1 στο <a href="%2">%3</a>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="763"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="767"/>
|
||||
<source>No %1 connection configured.</source>
|
||||
<translation>Δεν υπάρχει σύνδεση με το %1.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="466"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="469"/>
|
||||
<source>Sync Running</source>
|
||||
<translation>Ο Συγχρονισμός Εκτελείται</translation>
|
||||
</message>
|
||||
@@ -181,27 +181,27 @@
|
||||
<translation>Δεν ρυθμίστηκε λογαριασμός.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="467"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="470"/>
|
||||
<source>The syncing operation is running.<br/>Do you want to terminate it?</source>
|
||||
<translation>Η λειτουργία συγχρονισμού λειτουργεί.<br/> Θέλετε να την τερματίσετε;</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="749"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="753"/>
|
||||
<source>Connected to <a href="%1">%2</a>.</source>
|
||||
<translation>Συνδεδεμένοι με <a href="%1">%2</a>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="631"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="634"/>
|
||||
<source>%1 of %2, file %3 of %4</source>
|
||||
<translation>%1 από %2, αρχείο %3 από %4</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="752"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="756"/>
|
||||
<source>Connected to <a href="%1">%2</a> as <i>%3</i>.</source>
|
||||
<translation>Συνδεδεμένοι με <a href="%1">%2</a> ως <i>%3</i>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="721"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="725"/>
|
||||
<source>Currently there is no storage usage information available.</source>
|
||||
<translation>Προς το παρόν δεν υπάρχουν πληροφορίες χρήσης χώρου αποθήκευσης διαθέσιμες.</translation>
|
||||
</message>
|
||||
@@ -260,100 +260,100 @@
|
||||
<context>
|
||||
<name>Mirall::Folder</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="99"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="107"/>
|
||||
<source>Unable to create csync-context</source>
|
||||
<translation>Αδυναμία δημιουργίας πλαισίου csync</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="157"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="165"/>
|
||||
<source>Local folder %1 does not exist.</source>
|
||||
<translation>Δεν υπάρχει ο τοπικός φάκελος %1.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="160"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="168"/>
|
||||
<source>%1 should be a directory but is not.</source>
|
||||
<translation>%1 επρεπε να ειναι χωρος αποθηκευσης αλλα δεν ειναι.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="163"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="171"/>
|
||||
<source>%1 is not readable.</source>
|
||||
<translation> %1 δεν είναι αναγνώσιμο. </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="316"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="323"/>
|
||||
<source>%1: %2</source>
|
||||
<translation>%1: %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="402"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="409"/>
|
||||
<source>%1 and %2 other files have been removed.</source>
|
||||
<comment>%1 names a file.</comment>
|
||||
<translation>Το %1 και άλλα %2 αρχεία διαγράφηκαν.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="404"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="411"/>
|
||||
<source>%1 has been removed.</source>
|
||||
<comment>%1 names a file.</comment>
|
||||
<translation>Το %1 έχει διαγραφεί.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="409"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="416"/>
|
||||
<source>%1 and %2 other files have been downloaded.</source>
|
||||
<comment>%1 names a file.</comment>
|
||||
<translation>Το αρχείο %1 και άλλα %2 αρχεία έχουν μεταφορτωθεί.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="411"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="418"/>
|
||||
<source>%1 has been downloaded.</source>
|
||||
<comment>%1 names a file.</comment>
|
||||
<translation>Το αρχείο %1 έχει μεταφορτωθεί.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="416"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="423"/>
|
||||
<source>%1 and %2 other files have been updated.</source>
|
||||
<translation>Το αρχείο %1 και %2 άλλα αρχεία έχουν ενημερωθεί.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="418"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="425"/>
|
||||
<source>%1 has been updated.</source>
|
||||
<comment>%1 names a file.</comment>
|
||||
<translation>Το αρχείο %1 έχει ενημερωθεί.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="423"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="430"/>
|
||||
<source>%1 has been renamed to %2 and %3 other files have been renamed.</source>
|
||||
<translation>Το αρχείο %1 έχει μετονομαστεί σε %2 και άλλα %3 αρχεία έχουν μετονομαστεί.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="425"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="432"/>
|
||||
<source>%1 has been renamed to %2.</source>
|
||||
<comment>%1 and %2 name files.</comment>
|
||||
<translation>Το αρχείο %1 έχει μετονομαστεί σε %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="430"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="437"/>
|
||||
<source>%1 has been moved to %2 and %3 other files have been moved.</source>
|
||||
<translation>Το αρχείο %1 έχει μετακινηθεί στο %2 και %3 άλλα αρχεία έχουν μετακινηθεί.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="432"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="439"/>
|
||||
<source>%1 has been moved to %2.</source>
|
||||
<translation>Το αρχείο %1 έχει μετακινηθεί στο %2.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="440"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="447"/>
|
||||
<source>Sync Activity</source>
|
||||
<translation>Δραστηριότητα Συγχρονισμού</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="680"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="697"/>
|
||||
<source>This sync would remove all the files in the local sync folder '%1'.
|
||||
If you or your administrator have reset your account on the server, choose "Keep files". If you want your data to be removed, choose "Remove all files".</source>
|
||||
<translation>Αυτός ο συγχρονισμός θα αφαιρέσει όλα τα αρχεία στον τοπικό φάκελο συγχρονισμού '%1'.
|
||||
Εάν εσείς ή ο διαχειριστής σας επαναφέρατε τον λογαριασμό σας στο διακομιστή, επιλέξτε "Διατήρηση αρχείων". Εάν θέλετε να αφαιρεθούν τα δεδομένα σας, επιλέξτε "Αφαίρεση όλων των αρχείων".</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="683"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="700"/>
|
||||
<source>This sync would remove all the files in the sync folder '%1'.
|
||||
This might be because the folder was silently reconfigured, or that all the file were manually removed.
|
||||
Are you sure you want to perform this operation?</source>
|
||||
@@ -362,17 +362,17 @@ Are you sure you want to perform this operation?</source>
|
||||
Είστε σίγουροι ότι θέλετε να πραγματοποιήσετε αυτή εντολή;</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="687"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="704"/>
|
||||
<source>Remove All Files?</source>
|
||||
<translation>Αφαίρεση Όλων των Αρχείων;</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="689"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="706"/>
|
||||
<source>Remove all files</source>
|
||||
<translation>Αφαίρεση όλων των αρχείων</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="690"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="707"/>
|
||||
<source>Keep files</source>
|
||||
<translation>Διατήρηση αρχείων</translation>
|
||||
</message>
|
||||
@@ -380,12 +380,12 @@ Are you sure you want to perform this operation?</source>
|
||||
<context>
|
||||
<name>Mirall::FolderMan</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/folderman.cpp" line="173"/>
|
||||
<location filename="../src/mirall/folderman.cpp" line="171"/>
|
||||
<source>Could not reset folder state</source>
|
||||
<translation>Δεν ήταν δυνατό να επαναφερθεί η κατάσταση του φακέλου</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folderman.cpp" line="174"/>
|
||||
<location filename="../src/mirall/folderman.cpp" line="172"/>
|
||||
<source>An old sync journal '%1' was found, but could not be removed. Please make sure that no application is currently using it.</source>
|
||||
<translation>Βρέθηκε ένα παλαιότερο αρχείο συγχρονισμού '%1', αλλά δεν μπόρεσε να αφαιρεθεί. Παρακαλώ βεβαιωθείτε ότι καμμια εφαρμογή δεν το χρησιμοποιεί αυτή τη στιγμή.</translation>
|
||||
</message>
|
||||
@@ -512,8 +512,8 @@ Are you sure you want to perform this operation?</source>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folderwizard.cpp" line="139"/>
|
||||
<source>The selected folder is a symbolic link. An already configuredfolder is contained in the folder this link is pointing to.</source>
|
||||
<translation>Ο επιλεγμένος φάκελος είναι ένας συμβολικός σύνδεσμος. Ένας ήδη ρυθμισμένος φάκελος περιέχεται στον φάκελο στον οποίο καταλήγει αυτός ο σύνδεσμος. </translation>
|
||||
<source>The selected folder is a symbolic link. An already configured folder is contained in the folder this link is pointing to.</source>
|
||||
<translation>Ο επιλεγμένος φάκελος είναι ένας συμβολικός σύνδεσμος. Ένας ήδη ρυθμισμένος φάκελος περιέχεται στον φάκελο στον οποίο καταλήγει αυτός ο σύνδεσμος.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folderwizard.cpp" line="146"/>
|
||||
@@ -596,15 +596,20 @@ Are you sure you want to perform this operation?</source>
|
||||
<context>
|
||||
<name>Mirall::GETFileJob</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="381"/>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="393"/>
|
||||
<source>No E-Tag received from server, check Proxy/Gateway</source>
|
||||
<translation>Δεν ελήφθη E-Tag από τον διακομιστή, ελέγξτε τον διακομιστή μεσολάβησης/πύλη</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="388"/>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="400"/>
|
||||
<source>We received a different E-Tag for resuming. Retrying next time.</source>
|
||||
<translation>Ελήφθη διαφορετικό E-Tag για συνέχιση. Επανάληψη την επόμενη φορά.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="633"/>
|
||||
<source>Connection Timeout</source>
|
||||
<translation>Χρονικό όριο σύνδεσης</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Mirall::GeneralSettings</name>
|
||||
@@ -653,12 +658,12 @@ Are you sure you want to perform this operation?</source>
|
||||
<context>
|
||||
<name>Mirall::HttpCredentials</name>
|
||||
<message>
|
||||
<location filename="../src/creds/httpcredentials.cpp" line="278"/>
|
||||
<location filename="../src/creds/httpcredentials.cpp" line="282"/>
|
||||
<source>Enter Password</source>
|
||||
<translation>Εισάγετε Κωδικό Πρόσβασης</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/creds/httpcredentials.cpp" line="279"/>
|
||||
<location filename="../src/creds/httpcredentials.cpp" line="283"/>
|
||||
<source>Please enter %1 password for user '%2':</source>
|
||||
<translation>Παρακαλώ εισάγετε τον κωδικό %1 για το χρήστη '%2':</translation>
|
||||
</message>
|
||||
@@ -781,12 +786,12 @@ Checked items will also be deleted if they prevent a directory from being remove
|
||||
<context>
|
||||
<name>Mirall::Logger</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/logger.cpp" line="155"/>
|
||||
<location filename="../src/mirall/logger.cpp" line="146"/>
|
||||
<source>Error</source>
|
||||
<translation>Σφάλμα</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/logger.cpp" line="156"/>
|
||||
<location filename="../src/mirall/logger.cpp" line="147"/>
|
||||
<source><nobr>File '%1'<br/>cannot be opened for writing.<br/><br/>The log output can <b>not</b> be saved!</nobr></source>
|
||||
<translation><nobr>Το αρχειο '%1'<br/>δεν μπορει να ανοιχθει για το γραψιμο.<br/><br/>Το αρχείο καταγραφής δεν <b>μπορεί</b> να αποθηκευτεί!</nobr> </translation>
|
||||
</message>
|
||||
@@ -995,7 +1000,7 @@ for additional privileges during the process.</source>
|
||||
<message>
|
||||
<location filename="../src/wizard/owncloudadvancedsetuppage.cpp" line="111"/>
|
||||
<source>%1 folder '%2' is synced to local folder '%3'</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Ο φάκελος %1 '%2' είναι συγχρονισμένος με τον τοπικό φάκελο '%3'</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/wizard/owncloudadvancedsetuppage.cpp" line="117"/>
|
||||
@@ -1079,18 +1084,18 @@ It is not advisable to use it.</source>
|
||||
<context>
|
||||
<name>Mirall::OwncloudSetupWizard</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="357"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="360"/>
|
||||
<source>Folder rename failed</source>
|
||||
<translation>Αποτυχία μετονομασίας φακέλου</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="412"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="421"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="415"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="424"/>
|
||||
<source><font color="green"><b>Local sync folder %1 successfully created!</b></font></source>
|
||||
<translation><font color="green"><b>Επιτυχής δημιουργία τοπικού καταλόγου %1 για συγχρονισμό!</b></font></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="192"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="193"/>
|
||||
<source>Trying to connect to %1 at %2...</source>
|
||||
<translation>Προσπαθεια συνδεσης στο %1 για %2...</translation>
|
||||
</message>
|
||||
@@ -1100,32 +1105,32 @@ It is not advisable to use it.</source>
|
||||
<translation><font color="green">Επιτυχής σύνδεση στο %1: %2 έκδοση %3 (%4)</font><br/><br/></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="215"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="218"/>
|
||||
<source>Error: Wrong credentials.</source>
|
||||
<translation>Σφάλμα: Λάθος διαπιστευτήρια.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="229"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="232"/>
|
||||
<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/mirall/owncloudsetupwizard.cpp" line="231"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="234"/>
|
||||
<source>Creating local sync folder %1... </source>
|
||||
<translation>Δημιουργία τοπικού καταλόγου %1 για συγχρονισμό... </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="235"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="238"/>
|
||||
<source>ok</source>
|
||||
<translation>οκ</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="237"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="240"/>
|
||||
<source>failed.</source>
|
||||
<translation>απέτυχε.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="239"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="242"/>
|
||||
<source>Could not create local folder %1</source>
|
||||
<translation>Δεν μπόρεσε να δημιουργήσει τοπικό φάκελλο %1 </translation>
|
||||
</message>
|
||||
@@ -1136,71 +1141,71 @@ It is not advisable to use it.</source>
|
||||
<translation>Αποτυχία σύνδεσης με το %1 στο %2:<br/>%3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="264"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="267"/>
|
||||
<source>No remote folder specified!</source>
|
||||
<translation>Κανένας απομακρυσμένος φάκελος δεν προσδιορίστηκε!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="270"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="273"/>
|
||||
<source>Error: %1</source>
|
||||
<translation>Σφάλμα %1 </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="283"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="286"/>
|
||||
<source>creating folder on ownCloud: %1</source>
|
||||
<translation>δημιουργία φακέλλου στο ownCloud % 1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="299"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="302"/>
|
||||
<source>Remote folder %1 created successfully.</source>
|
||||
<translation>Ο απομακρυσμένος φάκελος %1 δημιουργήθηκε με επιτυχία.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="301"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="304"/>
|
||||
<source>The remote folder %1 already exists. Connecting it for syncing.</source>
|
||||
<translation>Ο απομακρυσμένος φάκελος %1 υπάρχει ήδη. Πραγματοποιείται σύνδεση για ενημέρωση. </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="303"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="305"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="306"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="308"/>
|
||||
<source>The folder creation resulted in HTTP error code %1</source>
|
||||
<translation>Η δημιουργία φακέλου είχε ως αποτέλεσμα τον κωδικό σφάλματος HTTP %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="307"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="310"/>
|
||||
<source>The remote folder creation failed because the provided credentials are wrong!<br/>Please go back and check your credentials.</p></source>
|
||||
<translation>Η δημιουργία απομακρυσμένου φακέλλου απέτυχε επειδή τα διαπιστευτήρια είναι λάθος! <br/> Παρακαλώ επιστρέψετε και ελέγξετε τα διαπιστευτήρια. </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="310"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="313"/>
|
||||
<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/mirall/owncloudsetupwizard.cpp" line="315"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="316"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="318"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="319"/>
|
||||
<source>Remote folder %1 creation failed with error <tt>%2</tt>.</source>
|
||||
<translation>Η απομακρυσμένη δημιουργία φακέλου %1 απέτυχε με σφάλμα <tt>%2</tt>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="332"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="335"/>
|
||||
<source>A sync connection from %1 to remote directory %2 was set up.</source>
|
||||
<translation>Μια σύνδεση συγχρονισμού από τον κατάλογο %1 σε %2 έχει συσταθεί. </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="337"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="340"/>
|
||||
<source>Successfully connected to %1!</source>
|
||||
<translation>Η συνδεση πετυχε με %1!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="344"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="347"/>
|
||||
<source>Connection to %1 could not be established. Please check again.</source>
|
||||
<translation>Αδυναμία σύνδεσης στον %1. Παρακαλώ ελέξτε ξανά.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="358"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="361"/>
|
||||
<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>Αδυναμία αφαίρεσης και δημιουργίας αντιγράφου ασφαλείας φακέλου διότι ο φάκελος ή ένα αρχείο του είναι ανοικτό από άλλο πρόγραμμα. Παρακαλώ κλείστε τον φάκελο ή το αρχείο και πατήστε επανάληψη ή ακυρώστε την ρύθμιση.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@@ -1239,6 +1244,14 @@ It is not advisable to use it.</source>
|
||||
<translation>Ο φάκελος %1 <i>%1</i> συγχρονίζεται με τον τοπικό φάκελο <i>%2</i></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Mirall::PUTFileJob</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="82"/>
|
||||
<source>Connection Timeout</source>
|
||||
<translation>Χρονικό όριο σύνδεσης</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Mirall::PropagateDownloadFileLegacy</name>
|
||||
<message>
|
||||
@@ -1256,11 +1269,24 @@ It is not advisable to use it.</source>
|
||||
<source>We received a different E-Tag for resuming. Retrying next time.</source>
|
||||
<translation>Ελήφθη διαφορετικό E-Tag για συνέχιση. Επανάληψη την επόμενη φορά.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_legacy.cpp" line="449"/>
|
||||
<source>File %1 can not be downloaded because of a local file name clash!</source>
|
||||
<translation>Το αρχείο %1 δεν είναι δυνατό να μεταφορτωθεί λόγω διένεξης με το όνομα ενός τοπικού ονόματος αρχείου!</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Mirall::PropagateDownloadFileQNAM</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="443"/>
|
||||
<source>File %1 can not be downloaded because of a local file name clash!</source>
|
||||
<translation>Το αρχείο %1 δεν είναι δυνατό να μεταφορτωθεί λόγω διένεξης με το όνομα ενός τοπικού ονόματος αρχείου!</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Mirall::PropagateItemJob</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudpropagator.cpp" line="150"/>
|
||||
<location filename="../src/mirall/owncloudpropagator.cpp" line="159"/>
|
||||
<source>A file or directory was removed from a read only share, but restoring failed: %1</source>
|
||||
<translation>Ένα αρχείο ή ένας κατάλογος αφαιρέθηκε από ένα διαμοιρασμένο κατάλογο μόνο για ανάγνωση, αλλά η επαναφορά απέτυχε: %1</translation>
|
||||
</message>
|
||||
@@ -1268,7 +1294,12 @@ It is not advisable to use it.</source>
|
||||
<context>
|
||||
<name>Mirall::PropagateLocalMkdir</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="109"/>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="114"/>
|
||||
<source>Attention, possible case sensitivity clash with %1</source>
|
||||
<translation>Προσοχή, πιθανή διένεξη κεφαλαίων-πεζών γραμάτων με το %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="119"/>
|
||||
<source>could not create directory %1</source>
|
||||
<translation>αδυναμία δημιουργίας καταλόγου %1</translation>
|
||||
</message>
|
||||
@@ -1276,15 +1307,28 @@ It is not advisable to use it.</source>
|
||||
<context>
|
||||
<name>Mirall::PropagateLocalRemove</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="86"/>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="80"/>
|
||||
<source>Could not remove %1 because of a local file name clash</source>
|
||||
<translation>Δεν ήταν δυνατή η διαγραφή του %1 λόγω διένεξης με ένα τοπικό όνομα αρχείου</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="87"/>
|
||||
<source>Could not remove directory %1</source>
|
||||
<translation>Αδυναμία αφαίρεσης καταλόγου %1</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Mirall::PropagateLocalRename</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="196"/>
|
||||
<source>File %1 can not be renamed to %2 because of a local file name clash</source>
|
||||
<translation>Το αρχείο %1 δεν είναι δυνατό να μετονομαστεί σε %2 λόγω μιας διένεξης με τοπικό όνομα αρχείου</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Mirall::PropagateRemoteRemove</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="129"/>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="139"/>
|
||||
<source>The file has been removed from a read only share. It was restored.</source>
|
||||
<translation>Το αρχείο διαγράφηκε από ένα διαμοιρασμένο κατάλογο μόνο για ανάγνωση. Το αρχείο επαναφέρθηκε.</translation>
|
||||
</message>
|
||||
@@ -1292,17 +1336,17 @@ It is not advisable to use it.</source>
|
||||
<context>
|
||||
<name>Mirall::PropagateRemoteRename</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="220"/>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="242"/>
|
||||
<source>This folder must not be renamed. It is renamed back to its original name.</source>
|
||||
<translation>Αυτός ο φάκελος δεν πρέπει να μετονομαστεί. Μετονομάζεται πίσω στο αρχικό του όνομα.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="222"/>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="244"/>
|
||||
<source>This folder must not be renamed. Please name it back to Shared.</source>
|
||||
<translation>Αυτός ο φάκελος δεν πρέπει να μετονομαστεί. Παρακαλώ ονομάστε το ξανά Κοινόχρηστος.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="237"/>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="259"/>
|
||||
<source>The file was renamed but is part of a read only share. The original file was restored.</source>
|
||||
<translation>Το αρχείο μετονομάστηκε αλλά είναι τμήμα ενός διαμοιρασμένου καταλόγου μόνο για ανάγνωση. Το αρχικό αρχείο επαναφέρθηκε.</translation>
|
||||
</message>
|
||||
@@ -1329,18 +1373,18 @@ It is not advisable to use it.</source>
|
||||
<context>
|
||||
<name>Mirall::PropagateUploadFileQNAM</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="241"/>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="247"/>
|
||||
<source>The file was edited locally but is part of a read only share. It is restored and your edit is in the conflict file.</source>
|
||||
<translation>Το αρχείο υπέστη επεξεργασία τοπικά αλλά είναι τμήμα ενός διαμοιρασμένου καταλόγου μόνο για ανάγνωση. Επαναφέρθηκε και η επεξεργασία σας βρίσκεται στο αρχείο συγκρούσεων.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="266"/>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="272"/>
|
||||
<source>Local file changed during sync.</source>
|
||||
<translation>Το τοπικό αρχείο τροποποιήθηκε κατά τον συγχρονισμό.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="276"/>
|
||||
<source>The server did not aknoledge the last chunk. (No e-tag were present)</source>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="282"/>
|
||||
<source>The server did not acknowledge the last chunk. (No e-tag were present)</source>
|
||||
<translation>Ο διακομιστής δεν επιβεβαίωσε το τελευταίο τμήμα. (Δεν υπήρχε E-Tag)</translation>
|
||||
</message>
|
||||
</context>
|
||||
@@ -1465,27 +1509,27 @@ It is not advisable to use it.</source>
|
||||
<context>
|
||||
<name>Mirall::SettingsDialogMac</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="30"/>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="28"/>
|
||||
<source>%1</source>
|
||||
<translation>%1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="34"/>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="32"/>
|
||||
<source>Account</source>
|
||||
<translation>Λογαριασμός</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="38"/>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="36"/>
|
||||
<source>Activity</source>
|
||||
<translation>Δραστηριότητα</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="42"/>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="40"/>
|
||||
<source>General</source>
|
||||
<translation>Γενικά</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="46"/>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="44"/>
|
||||
<source>Network</source>
|
||||
<translation>Δίκτυο</translation>
|
||||
</message>
|
||||
@@ -1493,12 +1537,12 @@ It is not advisable to use it.</source>
|
||||
<context>
|
||||
<name>Mirall::ShibbolethCredentials</name>
|
||||
<message>
|
||||
<location filename="../src/creds/shibbolethcredentials.cpp" line="299"/>
|
||||
<location filename="../src/creds/shibbolethcredentials.cpp" line="259"/>
|
||||
<source>Login Error</source>
|
||||
<translation>Σφάλμα σύνδεσης</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/creds/shibbolethcredentials.cpp" line="299"/>
|
||||
<location filename="../src/creds/shibbolethcredentials.cpp" line="259"/>
|
||||
<source>You must sign in as user %1</source>
|
||||
<translation>Πρέπει να εισέλθετε σαν χρήστης %1</translation>
|
||||
</message>
|
||||
@@ -1506,12 +1550,22 @@ It is not advisable to use it.</source>
|
||||
<context>
|
||||
<name>Mirall::ShibbolethWebView</name>
|
||||
<message>
|
||||
<location filename="../src/creds/shibboleth/shibbolethwebview.cpp" line="58"/>
|
||||
<location filename="../src/creds/shibboleth/shibbolethwebview.cpp" line="56"/>
|
||||
<source>%1 - Authenticate</source>
|
||||
<translation>%1 - Πιστοποίηση</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/creds/shibboleth/shibbolethwebview.cpp" line="119"/>
|
||||
<location filename="../src/creds/shibboleth/shibbolethwebview.cpp" line="62"/>
|
||||
<source>Reauthentication required</source>
|
||||
<translation>Απαιτείται επανάληψη πιστοποίησης</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/creds/shibboleth/shibbolethwebview.cpp" line="62"/>
|
||||
<source>Your session has expired. You need to re-login to continue to use the client.</source>
|
||||
<translation>Η συνεδρία σας έληξε. Πρέπει να εισέλθετε ξανά για να συνεχίσετε να χρησιμοποιείτε το πρόγραμμα.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/creds/shibboleth/shibbolethwebview.cpp" line="101"/>
|
||||
<source>%1 - %2</source>
|
||||
<translation>%1 - %2</translation>
|
||||
</message>
|
||||
@@ -1591,7 +1645,7 @@ It is not advisable to use it.</source>
|
||||
<message>
|
||||
<location filename="../src/mirall/sslbutton.cpp" line="123"/>
|
||||
<source>SHA-256:</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>SHA-256:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/sslbutton.cpp" line="125"/>
|
||||
@@ -1863,7 +1917,7 @@ It is not advisable to use it.</source>
|
||||
<message>
|
||||
<location filename="../src/mirall/syncengine.cpp" line="182"/>
|
||||
<source>An internal error number %1 happened.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Συνέβη εσωτερικό σφάλμα με αριθμό %1.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/syncengine.cpp" line="240"/>
|
||||
@@ -1886,12 +1940,12 @@ It is not advisable to use it.</source>
|
||||
<translation>Το αρχείο περιέχει άκυρους χαρακτήρες που δεν μπορούν να συγχρονιστούν σε όλα τα συστήματα.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/syncengine.cpp" line="451"/>
|
||||
<location filename="../src/mirall/syncengine.cpp" line="448"/>
|
||||
<source>Unable to initialize a sync journal.</source>
|
||||
<translation>Αδυναμία προετοιμασίας αρχείου συγχρονισμού.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/syncengine.cpp" line="550"/>
|
||||
<location filename="../src/mirall/syncengine.cpp" line="545"/>
|
||||
<source>Cannot open the sync journal</source>
|
||||
<translation>Αποτυχία ανοίγματος του ημερολογίου συγχρονισμού.</translation>
|
||||
</message>
|
||||
@@ -1922,7 +1976,7 @@ It is not advisable to use it.</source>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudgui.cpp" line="179"/>
|
||||
<source>Disconnected from server</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Αποσύνδεση από τον διακομιστή</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudgui.cpp" line="211"/>
|
||||
@@ -2262,12 +2316,12 @@ It is not advisable to use it.</source>
|
||||
<context>
|
||||
<name>main.cpp</name>
|
||||
<message>
|
||||
<location filename="../src/main.cpp" line="30"/>
|
||||
<location filename="../src/main.cpp" line="38"/>
|
||||
<source>System Tray not available</source>
|
||||
<translation>Μπάρα Συστήματος μη-διαθέσιμη</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/main.cpp" line="31"/>
|
||||
<location filename="../src/main.cpp" line="39"/>
|
||||
<source>%1 requires on a working system tray. If you are running XFCE, please follow <a href="http://docs.xfce.org/xfce/xfce4-panel/systray">these instructions</a>. Otherwise, please install a system tray application such as 'trayer' and try again.</source>
|
||||
<translation>Το %1 απαιτεί μια μπάρα συστήματος σε λειτουργία. Εάν χρησιμοποιείτε XFCE, παρακαλώ ακολουθείστε <a href="http://docs.xfce.org/xfce/xfce4-panel/systray">αυτές τις οδηγίες</a>. Διαφορετικά, παρακαλώ εγκαταστείστε μια εφαρμογή μπάρας συστήματος όπως η 'trayer' και δοκιμάστε ξανά.</translation>
|
||||
</message>
|
||||
@@ -2286,7 +2340,7 @@ It is not advisable to use it.</source>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudtheme.cpp" line="51"/>
|
||||
<source><p><small>Built from Git revision <a href="%1">%2</a> on %3, %4 using Qt %5.</small></p></source>
|
||||
<translation type="unfinished"/>
|
||||
<translation><p><small>Δημιουργήθηκε από την διασκευή Git <a href="%1">%2</a> στο %3, %4 χρησιμοποιώντας Qt %5.</small></p></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudtheme.cpp" line="58"/>
|
||||
@@ -2346,7 +2400,7 @@ Klaas Freitag, Daniel Molkentin, Jan-Christoph Borchardt, ownCloud Inc.
|
||||
<message>
|
||||
<location filename="../src/mirall/progressdispatcher.cpp" line="44"/>
|
||||
<source>Filesystem access error</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Σφάλμα πρόσβασης στο σύστημα αρχείων</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/progressdispatcher.cpp" line="46"/>
|
||||
@@ -2394,7 +2448,7 @@ Klaas Freitag, Daniel Molkentin, Jan-Christoph Borchardt, ownCloud Inc.
|
||||
<location filename="../src/mirall/progressdispatcher.cpp" line="78"/>
|
||||
<location filename="../src/mirall/progressdispatcher.cpp" line="80"/>
|
||||
<source>unknown</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>άγνωστο</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
||||
@@ -91,7 +91,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.ui" line="62"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="160"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="159"/>
|
||||
<source>Pause</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -121,59 +121,59 @@
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="162"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="161"/>
|
||||
<source>Resume</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="317"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="320"/>
|
||||
<source>Confirm Folder Remove</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="318"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="321"/>
|
||||
<source><p>Do you really want to stop syncing the folder <i>%1</i>?</p><p><b>Note:</b> This will not remove the files from your client.</p></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="354"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="357"/>
|
||||
<source>Confirm Folder Reset</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="355"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="358"/>
|
||||
<source><p>Do you really want to reset folder <i>%1</i> and rebuild your client database?</p><p><b>Note:</b> This function is designed for maintenance purposes only. No files will be removed, but this can cause significant data traffic and take several minutes or hours to complete, depending on the size of the folder. Only use this option if advised by your administrator.</p></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="619"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="622"/>
|
||||
<source>%1 %2 (%3 of %4)</source>
|
||||
<extracomment>Example text: "uploading foobar.png (1MB of 2MB)"</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="622"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="625"/>
|
||||
<source>%1 %2</source>
|
||||
<extracomment>Example text: "uploading foobar.png"</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="717"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="721"/>
|
||||
<source>%1 (%3%) of %2 server space in use.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="756"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="760"/>
|
||||
<source>No connection to %1 at <a href="%2">%3</a>.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="763"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="767"/>
|
||||
<source>No %1 connection configured.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="466"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="469"/>
|
||||
<source>Sync Running</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -183,27 +183,27 @@
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="467"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="470"/>
|
||||
<source>The syncing operation is running.<br/>Do you want to terminate it?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="749"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="753"/>
|
||||
<source>Connected to <a href="%1">%2</a>.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="631"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="634"/>
|
||||
<source>%1 of %2, file %3 of %4</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="752"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="756"/>
|
||||
<source>Connected to <a href="%1">%2</a> as <i>%3</i>.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="721"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="725"/>
|
||||
<source>Currently there is no storage usage information available.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -262,116 +262,116 @@
|
||||
<context>
|
||||
<name>Mirall::Folder</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="99"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="107"/>
|
||||
<source>Unable to create csync-context</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="157"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="165"/>
|
||||
<source>Local folder %1 does not exist.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="160"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="168"/>
|
||||
<source>%1 should be a directory but is not.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="163"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="171"/>
|
||||
<source>%1 is not readable.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="316"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="323"/>
|
||||
<source>%1: %2</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="402"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="409"/>
|
||||
<source>%1 and %2 other files have been removed.</source>
|
||||
<comment>%1 names a file.</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="404"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="411"/>
|
||||
<source>%1 has been removed.</source>
|
||||
<comment>%1 names a file.</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="409"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="416"/>
|
||||
<source>%1 and %2 other files have been downloaded.</source>
|
||||
<comment>%1 names a file.</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="411"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="418"/>
|
||||
<source>%1 has been downloaded.</source>
|
||||
<comment>%1 names a file.</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="416"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="423"/>
|
||||
<source>%1 and %2 other files have been updated.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="418"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="425"/>
|
||||
<source>%1 has been updated.</source>
|
||||
<comment>%1 names a file.</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="423"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="430"/>
|
||||
<source>%1 has been renamed to %2 and %3 other files have been renamed.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="425"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="432"/>
|
||||
<source>%1 has been renamed to %2.</source>
|
||||
<comment>%1 and %2 name files.</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="430"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="437"/>
|
||||
<source>%1 has been moved to %2 and %3 other files have been moved.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="432"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="439"/>
|
||||
<source>%1 has been moved to %2.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="440"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="447"/>
|
||||
<source>Sync Activity</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="680"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="697"/>
|
||||
<source>This sync would remove all the files in the local sync folder '%1'.
|
||||
If you or your administrator have reset your account on the server, choose "Keep files". If you want your data to be removed, choose "Remove all files".</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="683"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="700"/>
|
||||
<source>This sync would remove all the files in the sync folder '%1'.
|
||||
This might be because the folder was silently reconfigured, or that all the file were manually removed.
|
||||
Are you sure you want to perform this operation?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="687"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="704"/>
|
||||
<source>Remove All Files?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="689"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="706"/>
|
||||
<source>Remove all files</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="690"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="707"/>
|
||||
<source>Keep files</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -379,12 +379,12 @@ Are you sure you want to perform this operation?</source>
|
||||
<context>
|
||||
<name>Mirall::FolderMan</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/folderman.cpp" line="173"/>
|
||||
<location filename="../src/mirall/folderman.cpp" line="171"/>
|
||||
<source>Could not reset folder state</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folderman.cpp" line="174"/>
|
||||
<location filename="../src/mirall/folderman.cpp" line="172"/>
|
||||
<source>An old sync journal '%1' was found, but could not be removed. Please make sure that no application is currently using it.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -511,7 +511,7 @@ Are you sure you want to perform this operation?</source>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folderwizard.cpp" line="139"/>
|
||||
<source>The selected folder is a symbolic link. An already configuredfolder is contained in the folder this link is pointing to.</source>
|
||||
<source>The selected folder is a symbolic link. An already configured folder is contained in the folder this link is pointing to.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
@@ -595,15 +595,20 @@ Are you sure you want to perform this operation?</source>
|
||||
<context>
|
||||
<name>Mirall::GETFileJob</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="381"/>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="393"/>
|
||||
<source>No E-Tag received from server, check Proxy/Gateway</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="388"/>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="400"/>
|
||||
<source>We received a different E-Tag for resuming. Retrying next time.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="633"/>
|
||||
<source>Connection Timeout</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Mirall::GeneralSettings</name>
|
||||
@@ -652,12 +657,12 @@ Are you sure you want to perform this operation?</source>
|
||||
<context>
|
||||
<name>Mirall::HttpCredentials</name>
|
||||
<message>
|
||||
<location filename="../src/creds/httpcredentials.cpp" line="278"/>
|
||||
<location filename="../src/creds/httpcredentials.cpp" line="282"/>
|
||||
<source>Enter Password</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/creds/httpcredentials.cpp" line="279"/>
|
||||
<location filename="../src/creds/httpcredentials.cpp" line="283"/>
|
||||
<source>Please enter %1 password for user '%2':</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -778,12 +783,12 @@ Checked items will also be deleted if they prevent a directory from being remove
|
||||
<context>
|
||||
<name>Mirall::Logger</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/logger.cpp" line="155"/>
|
||||
<location filename="../src/mirall/logger.cpp" line="146"/>
|
||||
<source>Error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/logger.cpp" line="156"/>
|
||||
<location filename="../src/mirall/logger.cpp" line="147"/>
|
||||
<source><nobr>File '%1'<br/>cannot be opened for writing.<br/><br/>The log output can <b>not</b> be saved!</nobr></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -1074,18 +1079,18 @@ It is not advisable to use it.</source>
|
||||
<context>
|
||||
<name>Mirall::OwncloudSetupWizard</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="357"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="360"/>
|
||||
<source>Folder rename failed</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="412"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="421"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="415"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="424"/>
|
||||
<source><font color="green"><b>Local sync folder %1 successfully created!</b></font></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="192"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="193"/>
|
||||
<source>Trying to connect to %1 at %2...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -1095,32 +1100,32 @@ It is not advisable to use it.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="215"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="218"/>
|
||||
<source>Error: Wrong credentials.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="229"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="232"/>
|
||||
<source>Local sync folder %1 already exists, setting it up for sync.<br/><br/></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="231"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="234"/>
|
||||
<source>Creating local sync folder %1... </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="235"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="238"/>
|
||||
<source>ok</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="237"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="240"/>
|
||||
<source>failed.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="239"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="242"/>
|
||||
<source>Could not create local folder %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -1131,69 +1136,69 @@ It is not advisable to use it.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="264"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="267"/>
|
||||
<source>No remote folder specified!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="270"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="273"/>
|
||||
<source>Error: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="283"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="286"/>
|
||||
<source>creating folder on ownCloud: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="299"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="302"/>
|
||||
<source>Remote folder %1 created successfully.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="301"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="304"/>
|
||||
<source>The remote folder %1 already exists. Connecting it for syncing.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="303"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="305"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="306"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="308"/>
|
||||
<source>The folder creation resulted in HTTP error code %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="307"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="310"/>
|
||||
<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/mirall/owncloudsetupwizard.cpp" line="310"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="313"/>
|
||||
<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/mirall/owncloudsetupwizard.cpp" line="315"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="316"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="318"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="319"/>
|
||||
<source>Remote folder %1 creation failed with error <tt>%2</tt>.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="332"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="335"/>
|
||||
<source>A sync connection from %1 to remote directory %2 was set up.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="337"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="340"/>
|
||||
<source>Successfully connected to %1!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="344"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="347"/>
|
||||
<source>Connection to %1 could not be established. Please check again.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="358"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="361"/>
|
||||
<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>
|
||||
@@ -1234,6 +1239,14 @@ It is not advisable to use it.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Mirall::PUTFileJob</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="82"/>
|
||||
<source>Connection Timeout</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Mirall::PropagateDownloadFileLegacy</name>
|
||||
<message>
|
||||
@@ -1251,11 +1264,24 @@ It is not advisable to use it.</source>
|
||||
<source>We received a different E-Tag for resuming. Retrying next time.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_legacy.cpp" line="449"/>
|
||||
<source>File %1 can not be downloaded because of a local file name clash!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Mirall::PropagateDownloadFileQNAM</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="443"/>
|
||||
<source>File %1 can not be downloaded because of a local file name clash!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Mirall::PropagateItemJob</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudpropagator.cpp" line="150"/>
|
||||
<location filename="../src/mirall/owncloudpropagator.cpp" line="159"/>
|
||||
<source>A file or directory was removed from a read only share, but restoring failed: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -1263,7 +1289,12 @@ It is not advisable to use it.</source>
|
||||
<context>
|
||||
<name>Mirall::PropagateLocalMkdir</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="109"/>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="114"/>
|
||||
<source>Attention, possible case sensitivity clash with %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="119"/>
|
||||
<source>could not create directory %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -1271,15 +1302,28 @@ It is not advisable to use it.</source>
|
||||
<context>
|
||||
<name>Mirall::PropagateLocalRemove</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="86"/>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="80"/>
|
||||
<source>Could not remove %1 because of a local file name clash</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="87"/>
|
||||
<source>Could not remove directory %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Mirall::PropagateLocalRename</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="196"/>
|
||||
<source>File %1 can not be renamed to %2 because of a local file name clash</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Mirall::PropagateRemoteRemove</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="129"/>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="139"/>
|
||||
<source>The file has been removed from a read only share. It was restored.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -1287,17 +1331,17 @@ It is not advisable to use it.</source>
|
||||
<context>
|
||||
<name>Mirall::PropagateRemoteRename</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="220"/>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="242"/>
|
||||
<source>This folder must not be renamed. It is renamed back to its original name.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="222"/>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="244"/>
|
||||
<source>This folder must not be renamed. Please name it back to Shared.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="237"/>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="259"/>
|
||||
<source>The file was renamed but is part of a read only share. The original file was restored.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -1324,18 +1368,18 @@ It is not advisable to use it.</source>
|
||||
<context>
|
||||
<name>Mirall::PropagateUploadFileQNAM</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="241"/>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="247"/>
|
||||
<source>The file was edited locally but is part of a read only share. It is restored and your edit is in the conflict file.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="266"/>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="272"/>
|
||||
<source>Local file changed during sync.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="276"/>
|
||||
<source>The server did not aknoledge the last chunk. (No e-tag were present)</source>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="282"/>
|
||||
<source>The server did not acknowledge the last chunk. (No e-tag were present)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
@@ -1459,27 +1503,27 @@ It is not advisable to use it.</source>
|
||||
<context>
|
||||
<name>Mirall::SettingsDialogMac</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="30"/>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="28"/>
|
||||
<source>%1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="34"/>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="32"/>
|
||||
<source>Account</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="38"/>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="36"/>
|
||||
<source>Activity</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="42"/>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="40"/>
|
||||
<source>General</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="46"/>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="44"/>
|
||||
<source>Network</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -1487,12 +1531,12 @@ It is not advisable to use it.</source>
|
||||
<context>
|
||||
<name>Mirall::ShibbolethCredentials</name>
|
||||
<message>
|
||||
<location filename="../src/creds/shibbolethcredentials.cpp" line="299"/>
|
||||
<location filename="../src/creds/shibbolethcredentials.cpp" line="259"/>
|
||||
<source>Login Error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/creds/shibbolethcredentials.cpp" line="299"/>
|
||||
<location filename="../src/creds/shibbolethcredentials.cpp" line="259"/>
|
||||
<source>You must sign in as user %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -1500,12 +1544,22 @@ It is not advisable to use it.</source>
|
||||
<context>
|
||||
<name>Mirall::ShibbolethWebView</name>
|
||||
<message>
|
||||
<location filename="../src/creds/shibboleth/shibbolethwebview.cpp" line="58"/>
|
||||
<location filename="../src/creds/shibboleth/shibbolethwebview.cpp" line="56"/>
|
||||
<source>%1 - Authenticate</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/creds/shibboleth/shibbolethwebview.cpp" line="119"/>
|
||||
<location filename="../src/creds/shibboleth/shibbolethwebview.cpp" line="62"/>
|
||||
<source>Reauthentication required</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/creds/shibboleth/shibbolethwebview.cpp" line="62"/>
|
||||
<source>Your session has expired. You need to re-login to continue to use the client.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/creds/shibboleth/shibbolethwebview.cpp" line="101"/>
|
||||
<source>%1 - %2</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -1878,12 +1932,12 @@ It is not advisable to use it.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/syncengine.cpp" line="451"/>
|
||||
<location filename="../src/mirall/syncengine.cpp" line="448"/>
|
||||
<source>Unable to initialize a sync journal.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/syncengine.cpp" line="550"/>
|
||||
<location filename="../src/mirall/syncengine.cpp" line="545"/>
|
||||
<source>Cannot open the sync journal</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -2254,12 +2308,12 @@ It is not advisable to use it.</source>
|
||||
<context>
|
||||
<name>main.cpp</name>
|
||||
<message>
|
||||
<location filename="../src/main.cpp" line="30"/>
|
||||
<location filename="../src/main.cpp" line="38"/>
|
||||
<source>System Tray not available</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/main.cpp" line="31"/>
|
||||
<location filename="../src/main.cpp" line="39"/>
|
||||
<source>%1 requires on a working system tray. If you are running XFCE, please follow <a href="http://docs.xfce.org/xfce/xfce4-panel/systray">these instructions</a>. Otherwise, please install a system tray application such as 'trayer' and try again.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
||||
@@ -89,7 +89,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.ui" line="62"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="160"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="159"/>
|
||||
<source>Pause</source>
|
||||
<translation>Pausar</translation>
|
||||
</message>
|
||||
@@ -119,59 +119,59 @@
|
||||
<translation><b>Nota:</b> Algunas carpetas, incluyendo unidades de red o carpetas compartidas, pueden tener límites diferentes.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="162"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="161"/>
|
||||
<source>Resume</source>
|
||||
<translation>Continuar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="317"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="320"/>
|
||||
<source>Confirm Folder Remove</source>
|
||||
<translation>Confirmar la eliminación de la carpeta</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="318"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="321"/>
|
||||
<source><p>Do you really want to stop syncing the folder <i>%1</i>?</p><p><b>Note:</b> This will not remove the files from your client.</p></source>
|
||||
<translation><p>Realmente desea dejar de sincronizar la carpeta <i>%1</i>?</p><p><b>Note:</b> Esto no eliminará los archivos de su cliente.</p></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="354"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="357"/>
|
||||
<source>Confirm Folder Reset</source>
|
||||
<translation>Confirme que desea restablecer la carpeta</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="355"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="358"/>
|
||||
<source><p>Do you really want to reset folder <i>%1</i> and rebuild your client database?</p><p><b>Note:</b> This function is designed for maintenance purposes only. No files will be removed, but this can cause significant data traffic and take several minutes or hours to complete, depending on the size of the folder. Only use this option if advised by your administrator.</p></source>
|
||||
<translation><p>Realmente desea restablecer la carpeta <i>%1</i> y reconstruir la base de datos de cliente?</p><p><b>Nota:</b> Esta función es para mantenimiento únicamente. No se eliminarán archivos, pero se puede causar alto tráfico en la red y puede tomar varios minutos u horas para terminar, dependiendo del tamaño de la carpeta. Únicamente utilice esta opción si así lo indica su administrador.</p></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="619"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="622"/>
|
||||
<source>%1 %2 (%3 of %4)</source>
|
||||
<extracomment>Example text: "uploading foobar.png (1MB of 2MB)"</extracomment>
|
||||
<translation>%1 %2 (%3 de %4)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="622"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="625"/>
|
||||
<source>%1 %2</source>
|
||||
<extracomment>Example text: "uploading foobar.png"</extracomment>
|
||||
<translation>%1 %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="717"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="721"/>
|
||||
<source>%1 (%3%) of %2 server space in use.</source>
|
||||
<translation>%1 (%3%) de %2 espacio usado en el servidor.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="756"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="760"/>
|
||||
<source>No connection to %1 at <a href="%2">%3</a>.</source>
|
||||
<translation>No hay conexión a %1 en <a href="%2">%3</a>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="763"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="767"/>
|
||||
<source>No %1 connection configured.</source>
|
||||
<translation>No hay ninguna conexión de %1 configurada.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="466"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="469"/>
|
||||
<source>Sync Running</source>
|
||||
<translation>Sincronización en curso</translation>
|
||||
</message>
|
||||
@@ -181,27 +181,27 @@
|
||||
<translation>No se ha configurado la cuenta.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="467"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="470"/>
|
||||
<source>The syncing operation is running.<br/>Do you want to terminate it?</source>
|
||||
<translation>La sincronización está en curso.<br/>¿Desea interrumpirla?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="749"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="753"/>
|
||||
<source>Connected to <a href="%1">%2</a>.</source>
|
||||
<translation>Conectado a <a href="%1">%2</a>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="631"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="634"/>
|
||||
<source>%1 of %2, file %3 of %4</source>
|
||||
<translation>%1 de %2, archivo %3 de %4</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="752"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="756"/>
|
||||
<source>Connected to <a href="%1">%2</a> as <i>%3</i>.</source>
|
||||
<translation>Conectado a <a href="%1">%2</a> como <i>%3</i>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="721"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="725"/>
|
||||
<source>Currently there is no storage usage information available.</source>
|
||||
<translation>Actualmente no hay información disponible sobre el uso de almacenamiento.</translation>
|
||||
</message>
|
||||
@@ -260,100 +260,100 @@
|
||||
<context>
|
||||
<name>Mirall::Folder</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="99"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="107"/>
|
||||
<source>Unable to create csync-context</source>
|
||||
<translation>Imposible crear csync-context</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="157"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="165"/>
|
||||
<source>Local folder %1 does not exist.</source>
|
||||
<translation>Carpeta local %1 no existe.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="160"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="168"/>
|
||||
<source>%1 should be a directory but is not.</source>
|
||||
<translation>%1 debería ser un directorio, pero no lo es.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="163"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="171"/>
|
||||
<source>%1 is not readable.</source>
|
||||
<translation>%1 es ilegible.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="316"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="323"/>
|
||||
<source>%1: %2</source>
|
||||
<translation>%1: %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="402"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="409"/>
|
||||
<source>%1 and %2 other files have been removed.</source>
|
||||
<comment>%1 names a file.</comment>
|
||||
<translation>%1 y %2 otros archivos han sido eliminados.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="404"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="411"/>
|
||||
<source>%1 has been removed.</source>
|
||||
<comment>%1 names a file.</comment>
|
||||
<translation>%1 ha sido eliminado.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="409"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="416"/>
|
||||
<source>%1 and %2 other files have been downloaded.</source>
|
||||
<comment>%1 names a file.</comment>
|
||||
<translation>%1 y %2 otros archivos han sido descargados.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="411"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="418"/>
|
||||
<source>%1 has been downloaded.</source>
|
||||
<comment>%1 names a file.</comment>
|
||||
<translation>%1 ha sido descargado.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="416"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="423"/>
|
||||
<source>%1 and %2 other files have been updated.</source>
|
||||
<translation>%1 y %2 otros archivos han sido actualizados.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="418"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="425"/>
|
||||
<source>%1 has been updated.</source>
|
||||
<comment>%1 names a file.</comment>
|
||||
<translation>%1 ha sido actualizado.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="423"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="430"/>
|
||||
<source>%1 has been renamed to %2 and %3 other files have been renamed.</source>
|
||||
<translation>%1 ha sido renombrado a %2 y %3 otros archivos han sido renombrados.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="425"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="432"/>
|
||||
<source>%1 has been renamed to %2.</source>
|
||||
<comment>%1 and %2 name files.</comment>
|
||||
<translation>%1 ha sido renombrado a %2.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="430"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="437"/>
|
||||
<source>%1 has been moved to %2 and %3 other files have been moved.</source>
|
||||
<translation>%1 ha sido movido a %2 y %3 otros archivos han sido movidos.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="432"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="439"/>
|
||||
<source>%1 has been moved to %2.</source>
|
||||
<translation>%1 ha sido movido a %2.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="440"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="447"/>
|
||||
<source>Sync Activity</source>
|
||||
<translation>Actividad en la Sincronización</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="680"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="697"/>
|
||||
<source>This sync would remove all the files in the local sync folder '%1'.
|
||||
If you or your administrator have reset your account on the server, choose "Keep files". If you want your data to be removed, choose "Remove all files".</source>
|
||||
<translation>Esta sincronización eliminaría todos los archivos en la carpeta local de sincronización '%1'.
|
||||
Si ud. o su administrador han restablecido su cuenta en el servidor, elija "Conservar Archivos". Si desea eliminar toda su información, elija "Eliminar todos los archivos".</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="683"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="700"/>
|
||||
<source>This sync would remove all the files in the sync folder '%1'.
|
||||
This might be because the folder was silently reconfigured, or that all the file were manually removed.
|
||||
Are you sure you want to perform this operation?</source>
|
||||
@@ -362,17 +362,17 @@ Esto se puede deber a que la carpeta fue reconfigurada de forma silenciosa o a q
|
||||
Está seguro de que desea realizar esta operación?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="687"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="704"/>
|
||||
<source>Remove All Files?</source>
|
||||
<translation>Eliminar todos los archivos?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="689"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="706"/>
|
||||
<source>Remove all files</source>
|
||||
<translation>Eliminar todos los archivos</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="690"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="707"/>
|
||||
<source>Keep files</source>
|
||||
<translation>Conservar archivos</translation>
|
||||
</message>
|
||||
@@ -380,12 +380,12 @@ Está seguro de que desea realizar esta operación?</translation>
|
||||
<context>
|
||||
<name>Mirall::FolderMan</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/folderman.cpp" line="173"/>
|
||||
<location filename="../src/mirall/folderman.cpp" line="171"/>
|
||||
<source>Could not reset folder state</source>
|
||||
<translation>No se ha podido restablecer el estado de la carpeta</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folderman.cpp" line="174"/>
|
||||
<location filename="../src/mirall/folderman.cpp" line="172"/>
|
||||
<source>An old sync journal '%1' was found, but could not be removed. Please make sure that no application is currently using it.</source>
|
||||
<translation>Un antiguo registro (journal) de sincronización '%1' se ha encontrado, pero no se ha podido eliminar. Por favor asegúrese que ninguna aplicación la está utilizando.</translation>
|
||||
</message>
|
||||
@@ -512,8 +512,8 @@ Está seguro de que desea realizar esta operación?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folderwizard.cpp" line="139"/>
|
||||
<source>The selected folder is a symbolic link. An already configuredfolder is contained in the folder this link is pointing to.</source>
|
||||
<translation>La carpeta seleccionada es un link simbolico. Una carpeta ya configurada existe en el destino al que apunta este enlace simbolico.</translation>
|
||||
<source>The selected folder is a symbolic link. An already configured folder is contained in the folder this link is pointing to.</source>
|
||||
<translation>La carpeta seleccionada es un link simbólico. Ya existe una carpeta configurada en la carpeta a la que apunta este link.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folderwizard.cpp" line="146"/>
|
||||
@@ -596,15 +596,20 @@ Está seguro de que desea realizar esta operación?</translation>
|
||||
<context>
|
||||
<name>Mirall::GETFileJob</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="381"/>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="393"/>
|
||||
<source>No E-Tag received from server, check Proxy/Gateway</source>
|
||||
<translation>No se recibió ninguna e-tag del servidor, revisar el proxy/gateway</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="388"/>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="400"/>
|
||||
<source>We received a different E-Tag for resuming. Retrying next time.</source>
|
||||
<translation>Se recibió una e-tag distinta para reanudar. Se intentará nuevamente.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="633"/>
|
||||
<source>Connection Timeout</source>
|
||||
<translation>Tiempo de espera de conexión agotado</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Mirall::GeneralSettings</name>
|
||||
@@ -653,12 +658,12 @@ Está seguro de que desea realizar esta operación?</translation>
|
||||
<context>
|
||||
<name>Mirall::HttpCredentials</name>
|
||||
<message>
|
||||
<location filename="../src/creds/httpcredentials.cpp" line="278"/>
|
||||
<location filename="../src/creds/httpcredentials.cpp" line="282"/>
|
||||
<source>Enter Password</source>
|
||||
<translation>Introduzca la Contraseña</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/creds/httpcredentials.cpp" line="279"/>
|
||||
<location filename="../src/creds/httpcredentials.cpp" line="283"/>
|
||||
<source>Please enter %1 password for user '%2':</source>
|
||||
<translation>Por favor, introduzca su %1 contraseña para el usuario '%2':</translation>
|
||||
</message>
|
||||
@@ -730,7 +735,7 @@ Los elementos marcados también se eliminarán si impiden la eliminación de alg
|
||||
<message>
|
||||
<location filename="../src/mirall/logbrowser.cpp" line="59"/>
|
||||
<source>Log Output</source>
|
||||
<translation>Registrar salida</translation>
|
||||
<translation>Salida del sistema</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/logbrowser.cpp" line="71"/>
|
||||
@@ -781,12 +786,12 @@ Los elementos marcados también se eliminarán si impiden la eliminación de alg
|
||||
<context>
|
||||
<name>Mirall::Logger</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/logger.cpp" line="155"/>
|
||||
<location filename="../src/mirall/logger.cpp" line="146"/>
|
||||
<source>Error</source>
|
||||
<translation>Error</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/logger.cpp" line="156"/>
|
||||
<location filename="../src/mirall/logger.cpp" line="147"/>
|
||||
<source><nobr>File '%1'<br/>cannot be opened for writing.<br/><br/>The log output can <b>not</b> be saved!</nobr></source>
|
||||
<translation><nobr>Archivo '%1'<br/>no se puede abrir para escritura.<br/><br/>¡El archivo de registro <b>no</b> puede ser guardado!</nobr></translation>
|
||||
</message>
|
||||
@@ -1079,18 +1084,18 @@ No se recomienda usarlo.</translation>
|
||||
<context>
|
||||
<name>Mirall::OwncloudSetupWizard</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="357"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="360"/>
|
||||
<source>Folder rename failed</source>
|
||||
<translation>Error Renombrando Carpeta</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="412"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="421"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="415"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="424"/>
|
||||
<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>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="192"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="193"/>
|
||||
<source>Trying to connect to %1 at %2...</source>
|
||||
<translation>Intentando conectar a %1 desde %2...</translation>
|
||||
</message>
|
||||
@@ -1100,32 +1105,32 @@ No se recomienda usarlo.</translation>
|
||||
<translation><font color="green">Conectado con éxito a %1: versión %2 %3 (%4)</font><br/><br/></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="215"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="218"/>
|
||||
<source>Error: Wrong credentials.</source>
|
||||
<translation>Error: Credenciales erróneas.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="229"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="232"/>
|
||||
<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/mirall/owncloudsetupwizard.cpp" line="231"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="234"/>
|
||||
<source>Creating local sync folder %1... </source>
|
||||
<translation>Creando la carpeta local %1...</translation>
|
||||
<translation>Creando la carpeta de sincronización local %1...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="235"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="238"/>
|
||||
<source>ok</source>
|
||||
<translation>ok</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="237"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="240"/>
|
||||
<source>failed.</source>
|
||||
<translation>falló.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="239"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="242"/>
|
||||
<source>Could not create local folder %1</source>
|
||||
<translation>No se pudo crear carpeta local %1</translation>
|
||||
</message>
|
||||
@@ -1136,69 +1141,69 @@ No se recomienda usarlo.</translation>
|
||||
<translation>Error conectando con %1 en %2:<br/>%3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="264"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="267"/>
|
||||
<source>No remote folder specified!</source>
|
||||
<translation>No se ha especificado la carpeta remota!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="270"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="273"/>
|
||||
<source>Error: %1</source>
|
||||
<translation>Error: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="283"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="286"/>
|
||||
<source>creating folder on ownCloud: %1</source>
|
||||
<translation>creando carpeta en ownCloud: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="299"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="302"/>
|
||||
<source>Remote folder %1 created successfully.</source>
|
||||
<translation>Carpeta remota %1 creada correctamente.</translation>
|
||||
<translation>Carpeta remota %1 creado correctamente.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="301"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="304"/>
|
||||
<source>The remote folder %1 already exists. Connecting it for syncing.</source>
|
||||
<translation>La carpeta remota %1 ya existe. Conectándola para sincronizar.</translation>
|
||||
<translation>La carpeta remota %1 ya existe. Conectándola para sincronizacion.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="303"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="305"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="306"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="308"/>
|
||||
<source>The folder creation resulted in HTTP error code %1</source>
|
||||
<translation>La creación de la carpeta causó un error HTTP de código %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="307"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="310"/>
|
||||
<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 comprueba sus credenciales</p></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="310"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="313"/>
|
||||
<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/mirall/owncloudsetupwizard.cpp" line="315"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="316"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="318"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="319"/>
|
||||
<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/mirall/owncloudsetupwizard.cpp" line="332"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="335"/>
|
||||
<source>A sync connection from %1 to remote directory %2 was set up.</source>
|
||||
<translation>Una conexión de sincronización desde %1 al directorio remoto %2 ha sido configurada.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="337"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="340"/>
|
||||
<source>Successfully connected to %1!</source>
|
||||
<translation>¡Conectado con éxito a %1!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="344"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="347"/>
|
||||
<source>Connection to %1 could not be established. Please check again.</source>
|
||||
<translation>Conexión a %1 no se pudo establecer. Por favor compruebelo de nuevo.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="358"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="361"/>
|
||||
<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>
|
||||
@@ -1239,6 +1244,14 @@ No se recomienda usarlo.</translation>
|
||||
<translation>%1 La carpeta <i>%1</i> ha sido sincronizada con la carpeta local<i>%2</i></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Mirall::PUTFileJob</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="82"/>
|
||||
<source>Connection Timeout</source>
|
||||
<translation>Tiempo de espera de conexión agotado</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Mirall::PropagateDownloadFileLegacy</name>
|
||||
<message>
|
||||
@@ -1256,11 +1269,24 @@ No se recomienda usarlo.</translation>
|
||||
<source>We received a different E-Tag for resuming. Retrying next time.</source>
|
||||
<translation>Se recibió una e-tag distinta para reanudar. Se intentará nuevamente.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_legacy.cpp" line="449"/>
|
||||
<source>File %1 can not be downloaded because of a local file name clash!</source>
|
||||
<translation>¡El fichero %1 no puede ser descargado debido al nombre de la clase de un fichero local!</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Mirall::PropagateDownloadFileQNAM</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="443"/>
|
||||
<source>File %1 can not be downloaded because of a local file name clash!</source>
|
||||
<translation>¡El fichero %1 no puede ser descargado debido al nombre de la clase de un fichero local!</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Mirall::PropagateItemJob</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudpropagator.cpp" line="150"/>
|
||||
<location filename="../src/mirall/owncloudpropagator.cpp" line="159"/>
|
||||
<source>A file or directory was removed from a read only share, but restoring failed: %1</source>
|
||||
<translation>Un archivo o directorio fue eliminado de una carpeta compartida en modo de solo lectura, pero la recuperación falló: %1</translation>
|
||||
</message>
|
||||
@@ -1268,7 +1294,12 @@ No se recomienda usarlo.</translation>
|
||||
<context>
|
||||
<name>Mirall::PropagateLocalMkdir</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="109"/>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="114"/>
|
||||
<source>Attention, possible case sensitivity clash with %1</source>
|
||||
<translation>Atención, posible error de muyuscula/minisculas en %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="119"/>
|
||||
<source>could not create directory %1</source>
|
||||
<translation>No se pudo crear el directorio %1</translation>
|
||||
</message>
|
||||
@@ -1276,15 +1307,28 @@ No se recomienda usarlo.</translation>
|
||||
<context>
|
||||
<name>Mirall::PropagateLocalRemove</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="86"/>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="80"/>
|
||||
<source>Could not remove %1 because of a local file name clash</source>
|
||||
<translation>No se pudo eliminar %1 por causa de un conflicto con el nombre de un archivo local</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="87"/>
|
||||
<source>Could not remove directory %1</source>
|
||||
<translation>No se pudo eliminar el directorio %1</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Mirall::PropagateLocalRename</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="196"/>
|
||||
<source>File %1 can not be renamed to %2 because of a local file name clash</source>
|
||||
<translation>El archivo %1 no se puede renombrar a %2 por causa de un conflicto con el nombre de un archivo local</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Mirall::PropagateRemoteRemove</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="129"/>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="139"/>
|
||||
<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>
|
||||
@@ -1292,17 +1336,17 @@ No se recomienda usarlo.</translation>
|
||||
<context>
|
||||
<name>Mirall::PropagateRemoteRename</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="220"/>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="242"/>
|
||||
<source>This folder must not be renamed. It is renamed back to its original name.</source>
|
||||
<translation>Esta carpeta no debe ser renombrada. Ha sido renombrada a su nombre original</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="222"/>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="244"/>
|
||||
<source>This folder must not be renamed. Please name it back to Shared.</source>
|
||||
<translation>Esta carpeta no debe ser renombrada. Favor de renombrar a Compartida.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="237"/>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="259"/>
|
||||
<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>
|
||||
@@ -1329,18 +1373,18 @@ No se recomienda usarlo.</translation>
|
||||
<context>
|
||||
<name>Mirall::PropagateUploadFileQNAM</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="241"/>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="247"/>
|
||||
<source>The file was edited locally but is part of a read only share. It is restored and your edit is in the conflict file.</source>
|
||||
<translation>El archivo fue modificado localmente, pero es parte de una carpeta compartida en modo de solo lectura. Ha sido recuperado y tu modificación está en el archivo de conflicto.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="266"/>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="272"/>
|
||||
<source>Local file changed during sync.</source>
|
||||
<translation>Un archivo local fue modificado durante la sincronización.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="276"/>
|
||||
<source>The server did not aknoledge the last chunk. (No e-tag were present)</source>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="282"/>
|
||||
<source>The server did not acknowledge the last chunk. (No e-tag were present)</source>
|
||||
<translation>El servidor no reconoció la última parte. (No había una e-tag presente.)</translation>
|
||||
</message>
|
||||
</context>
|
||||
@@ -1465,27 +1509,27 @@ Intente sincronizar los archivos nuevamente.</translation>
|
||||
<context>
|
||||
<name>Mirall::SettingsDialogMac</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="30"/>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="28"/>
|
||||
<source>%1</source>
|
||||
<translation>%1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="34"/>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="32"/>
|
||||
<source>Account</source>
|
||||
<translation>Cuenta</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="38"/>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="36"/>
|
||||
<source>Activity</source>
|
||||
<translation>Actividad</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="42"/>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="40"/>
|
||||
<source>General</source>
|
||||
<translation>General</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="46"/>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="44"/>
|
||||
<source>Network</source>
|
||||
<translation>Red</translation>
|
||||
</message>
|
||||
@@ -1493,12 +1537,12 @@ Intente sincronizar los archivos nuevamente.</translation>
|
||||
<context>
|
||||
<name>Mirall::ShibbolethCredentials</name>
|
||||
<message>
|
||||
<location filename="../src/creds/shibbolethcredentials.cpp" line="299"/>
|
||||
<location filename="../src/creds/shibbolethcredentials.cpp" line="259"/>
|
||||
<source>Login Error</source>
|
||||
<translation>Error al iniciar sesión</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/creds/shibbolethcredentials.cpp" line="299"/>
|
||||
<location filename="../src/creds/shibbolethcredentials.cpp" line="259"/>
|
||||
<source>You must sign in as user %1</source>
|
||||
<translation>Debe iniciar sesión como el usuario %1</translation>
|
||||
</message>
|
||||
@@ -1506,12 +1550,22 @@ Intente sincronizar los archivos nuevamente.</translation>
|
||||
<context>
|
||||
<name>Mirall::ShibbolethWebView</name>
|
||||
<message>
|
||||
<location filename="../src/creds/shibboleth/shibbolethwebview.cpp" line="58"/>
|
||||
<location filename="../src/creds/shibboleth/shibbolethwebview.cpp" line="56"/>
|
||||
<source>%1 - Authenticate</source>
|
||||
<translation>%1 - Autenticar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/creds/shibboleth/shibbolethwebview.cpp" line="119"/>
|
||||
<location filename="../src/creds/shibboleth/shibbolethwebview.cpp" line="62"/>
|
||||
<source>Reauthentication required</source>
|
||||
<translation>Debe volver a autenticarse</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/creds/shibboleth/shibbolethwebview.cpp" line="62"/>
|
||||
<source>Your session has expired. You need to re-login to continue to use the client.</source>
|
||||
<translation>Su sesión ha caducado. Necesita volver a iniciarla para continuar usando el cliente.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/creds/shibboleth/shibbolethwebview.cpp" line="101"/>
|
||||
<source>%1 - %2</source>
|
||||
<translation>%1 - %2</translation>
|
||||
</message>
|
||||
@@ -1654,7 +1708,7 @@ Intente sincronizar los archivos nuevamente.</translation>
|
||||
<message>
|
||||
<location filename="../src/mirall/sslerrordialog.cpp" line="134"/>
|
||||
<source>Warnings about current SSL Connection:</source>
|
||||
<translation>Avisos de la conexión SSL actual:</translation>
|
||||
<translation>Avisos Sobre la actual conexión SSL:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/sslerrordialog.cpp" line="170"/>
|
||||
@@ -1694,7 +1748,7 @@ Intente sincronizar los archivos nuevamente.</translation>
|
||||
<message>
|
||||
<location filename="../src/mirall/sslerrordialog.cpp" line="191"/>
|
||||
<source>Fingerprint (SHA1): <tt>%1</tt></source>
|
||||
<translation>Huella (SHA1): <tt>%1</tt></translation>
|
||||
<translation>Huella dactilar (SHA1): <tt>%1</tt></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/sslerrordialog.cpp" line="193"/>
|
||||
@@ -1886,12 +1940,12 @@ Intente sincronizar los archivos nuevamente.</translation>
|
||||
<translation>El fichero contiene caracteres inválidos que no pueden ser sincronizados con la plataforma.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/syncengine.cpp" line="451"/>
|
||||
<location filename="../src/mirall/syncengine.cpp" line="448"/>
|
||||
<source>Unable to initialize a sync journal.</source>
|
||||
<translation>No se pudo inicializar un registro (journal) de sincronización.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/syncengine.cpp" line="550"/>
|
||||
<location filename="../src/mirall/syncengine.cpp" line="545"/>
|
||||
<source>Cannot open the sync journal</source>
|
||||
<translation>No es posible abrir el diario de sincronización</translation>
|
||||
</message>
|
||||
@@ -2130,7 +2184,7 @@ Intente sincronizar los archivos nuevamente.</translation>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetuppage.ui" line="20"/>
|
||||
<source>Server &address:</source>
|
||||
<translation>&Dirección del servidor:</translation>
|
||||
<translation>Uso servidor &Dirección:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetuppage.ui" line="36"/>
|
||||
@@ -2144,7 +2198,7 @@ Intente sincronizar los archivos nuevamente.</translation>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetuppage.ui" line="47"/>
|
||||
<source>Use &secure connection</source>
|
||||
<translation>Usar conexión &segura</translation>
|
||||
<translation>Uso &conexión segura</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetuppage.ui" line="60"/>
|
||||
@@ -2217,7 +2271,7 @@ Intente sincronizar los archivos nuevamente.</translation>
|
||||
<message>
|
||||
<location filename="../src/wizard/owncloudwizardresultpage.ui" line="20"/>
|
||||
<source>TextLabel</source>
|
||||
<translation>Etiqueta</translation>
|
||||
<translation>Texto Etiqueta</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/wizard/owncloudwizardresultpage.ui" line="69"/>
|
||||
@@ -2262,12 +2316,12 @@ Intente sincronizar los archivos nuevamente.</translation>
|
||||
<context>
|
||||
<name>main.cpp</name>
|
||||
<message>
|
||||
<location filename="../src/main.cpp" line="30"/>
|
||||
<location filename="../src/main.cpp" line="38"/>
|
||||
<source>System Tray not available</source>
|
||||
<translation>Bandeja del sistema no está disponible</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/main.cpp" line="31"/>
|
||||
<location filename="../src/main.cpp" line="39"/>
|
||||
<source>%1 requires on a working system tray. If you are running XFCE, please follow <a href="http://docs.xfce.org/xfce/xfce4-panel/systray">these instructions</a>. Otherwise, please install a system tray application such as 'trayer' and try again.</source>
|
||||
<translation>% 1 requiere en una bandeja del sistema de trabajo. Si está ejecutando XFCE, por favor siga <a href="http://docs.xfce.org/xfce/xfce4-panel/systray"> estas instrucciones </ a>. De lo contrario, instale una aplicación de la bandeja del sistema, tales como "trayer 'y vuelva a intentarlo.</translation>
|
||||
</message>
|
||||
|
||||
@@ -89,7 +89,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.ui" line="62"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="160"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="159"/>
|
||||
<source>Pause</source>
|
||||
<translation>Pausar</translation>
|
||||
</message>
|
||||
@@ -119,59 +119,59 @@
|
||||
<translation><b>Nota:</b> Algunas carpetas, incluidas las montadas en red o las carpetas compartidas, pueden tener diferentes límites.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="162"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="161"/>
|
||||
<source>Resume</source>
|
||||
<translation>Continuar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="317"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="320"/>
|
||||
<source>Confirm Folder Remove</source>
|
||||
<translation>Confirmá la eliminación del directorio</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="318"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="321"/>
|
||||
<source><p>Do you really want to stop syncing the folder <i>%1</i>?</p><p><b>Note:</b> This will not remove the files from your client.</p></source>
|
||||
<translation><p>¿Realmente deseas detener la sincronización de la carpeta <i>%1</i>?</p><p><b>Nota:</b>Estp no removerá los archivos desde tu cliente.</p></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="354"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="357"/>
|
||||
<source>Confirm Folder Reset</source>
|
||||
<translation>Confirme el reseteo de la carpeta</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="355"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="358"/>
|
||||
<source><p>Do you really want to reset folder <i>%1</i> and rebuild your client database?</p><p><b>Note:</b> This function is designed for maintenance purposes only. No files will be removed, but this can cause significant data traffic and take several minutes or hours to complete, depending on the size of the folder. Only use this option if advised by your administrator.</p></source>
|
||||
<translation><p>¿Realmente deseas resetear el directorio <i>%1</i> y reconstruir la base de datos del cliente?</p><p><b>Nota:</b> Esta función está designada para propósitos de mantenimiento solamente. Ningún archivo será eliminado, pero puede causar un tráfico de datos significante y tomar varios minutos o horas para completarse, dependiendo del tamaño del directorio. Sólo use esta opción si es aconsejado por su administrador.</p></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="619"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="622"/>
|
||||
<source>%1 %2 (%3 of %4)</source>
|
||||
<extracomment>Example text: "uploading foobar.png (1MB of 2MB)"</extracomment>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="622"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="625"/>
|
||||
<source>%1 %2</source>
|
||||
<extracomment>Example text: "uploading foobar.png"</extracomment>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="717"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="721"/>
|
||||
<source>%1 (%3%) of %2 server space in use.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="756"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="760"/>
|
||||
<source>No connection to %1 at <a href="%2">%3</a>.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="763"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="767"/>
|
||||
<source>No %1 connection configured.</source>
|
||||
<translation>No hay ninguna conexión de %1 configurada.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="466"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="469"/>
|
||||
<source>Sync Running</source>
|
||||
<translation>Sincronización en curso</translation>
|
||||
</message>
|
||||
@@ -181,27 +181,27 @@
|
||||
<translation>No hay cuenta configurada.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="467"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="470"/>
|
||||
<source>The syncing operation is running.<br/>Do you want to terminate it?</source>
|
||||
<translation>La sincronización está en curso.<br/>¿Querés interrumpirla?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="749"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="753"/>
|
||||
<source>Connected to <a href="%1">%2</a>.</source>
|
||||
<translation>Conectado a <a href="%1">%2</a>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="631"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="634"/>
|
||||
<source>%1 of %2, file %3 of %4</source>
|
||||
<translation>%1 de %2, archivo %3 de %4</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="752"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="756"/>
|
||||
<source>Connected to <a href="%1">%2</a> as <i>%3</i>.</source>
|
||||
<translation>Conectado a <a href="%1">%2</a> como <i>%3</i>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="721"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="725"/>
|
||||
<source>Currently there is no storage usage information available.</source>
|
||||
<translation>Actualmente no hay información disponible acerca del uso del almacenamiento.</translation>
|
||||
</message>
|
||||
@@ -260,100 +260,100 @@
|
||||
<context>
|
||||
<name>Mirall::Folder</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="99"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="107"/>
|
||||
<source>Unable to create csync-context</source>
|
||||
<translation>Imposible crear csync-context</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="157"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="165"/>
|
||||
<source>Local folder %1 does not exist.</source>
|
||||
<translation>El directorio local %1 no existe.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="160"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="168"/>
|
||||
<source>%1 should be a directory but is not.</source>
|
||||
<translation>%1 debería ser un directorio, pero no lo es.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="163"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="171"/>
|
||||
<source>%1 is not readable.</source>
|
||||
<translation>No se puede leer %1.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="316"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="323"/>
|
||||
<source>%1: %2</source>
|
||||
<translation>%1: %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="402"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="409"/>
|
||||
<source>%1 and %2 other files have been removed.</source>
|
||||
<comment>%1 names a file.</comment>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="404"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="411"/>
|
||||
<source>%1 has been removed.</source>
|
||||
<comment>%1 names a file.</comment>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="409"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="416"/>
|
||||
<source>%1 and %2 other files have been downloaded.</source>
|
||||
<comment>%1 names a file.</comment>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="411"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="418"/>
|
||||
<source>%1 has been downloaded.</source>
|
||||
<comment>%1 names a file.</comment>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="416"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="423"/>
|
||||
<source>%1 and %2 other files have been updated.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="418"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="425"/>
|
||||
<source>%1 has been updated.</source>
|
||||
<comment>%1 names a file.</comment>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="423"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="430"/>
|
||||
<source>%1 has been renamed to %2 and %3 other files have been renamed.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="425"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="432"/>
|
||||
<source>%1 has been renamed to %2.</source>
|
||||
<comment>%1 and %2 name files.</comment>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="430"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="437"/>
|
||||
<source>%1 has been moved to %2 and %3 other files have been moved.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="432"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="439"/>
|
||||
<source>%1 has been moved to %2.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="440"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="447"/>
|
||||
<source>Sync Activity</source>
|
||||
<translation>Actividad de Sync</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="680"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="697"/>
|
||||
<source>This sync would remove all the files in the local sync folder '%1'.
|
||||
If you or your administrator have reset your account on the server, choose "Keep files". If you want your data to be removed, choose "Remove all files".</source>
|
||||
<translation>Esta sincronización borraría todos los archivos en la carpeta local de sincronización '%1'.
|
||||
Si vos o el administrador resetearon tu cuenta en el servidor, elegí "Conservar Archivos". Si querés borrar toda tu información, elegí "Borrar todos los archivos".</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="683"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="700"/>
|
||||
<source>This sync would remove all the files in the sync folder '%1'.
|
||||
This might be because the folder was silently reconfigured, or that all the file were manually removed.
|
||||
Are you sure you want to perform this operation?</source>
|
||||
@@ -362,17 +362,17 @@ Esto se puede deber a que el directorio fue reconfigurado de manera silenciosa o
|
||||
¿Estás seguro de que querés realizar esta operación?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="687"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="704"/>
|
||||
<source>Remove All Files?</source>
|
||||
<translation>¿Borrar todos los archivos?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="689"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="706"/>
|
||||
<source>Remove all files</source>
|
||||
<translation>Borrar todos los archivos</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="690"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="707"/>
|
||||
<source>Keep files</source>
|
||||
<translation>Conservar archivos</translation>
|
||||
</message>
|
||||
@@ -380,12 +380,12 @@ Esto se puede deber a que el directorio fue reconfigurado de manera silenciosa o
|
||||
<context>
|
||||
<name>Mirall::FolderMan</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/folderman.cpp" line="173"/>
|
||||
<location filename="../src/mirall/folderman.cpp" line="171"/>
|
||||
<source>Could not reset folder state</source>
|
||||
<translation>No se pudo </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folderman.cpp" line="174"/>
|
||||
<location filename="../src/mirall/folderman.cpp" line="172"/>
|
||||
<source>An old sync journal '%1' was found, but could not be removed. Please make sure that no application is currently using it.</source>
|
||||
<translation>Una antigua sincronización con journaling '%1' fue encontrada, pero no se pudo eliminar. Por favor, asegurate que ninguna aplicación la está utilizando.</translation>
|
||||
</message>
|
||||
@@ -512,8 +512,8 @@ Esto se puede deber a que el directorio fue reconfigurado de manera silenciosa o
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folderwizard.cpp" line="139"/>
|
||||
<source>The selected folder is a symbolic link. An already configuredfolder is contained in the folder this link is pointing to.</source>
|
||||
<translation>El directorio seleccionado es un vínculo simbólico. Un directorio ya configurado está contenido en la carpeta que este vínculo apunta.</translation>
|
||||
<source>The selected folder is a symbolic link. An already configured folder is contained in the folder this link is pointing to.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folderwizard.cpp" line="146"/>
|
||||
@@ -596,15 +596,20 @@ Esto se puede deber a que el directorio fue reconfigurado de manera silenciosa o
|
||||
<context>
|
||||
<name>Mirall::GETFileJob</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="381"/>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="393"/>
|
||||
<source>No E-Tag received from server, check Proxy/Gateway</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="388"/>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="400"/>
|
||||
<source>We received a different E-Tag for resuming. Retrying next time.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="633"/>
|
||||
<source>Connection Timeout</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Mirall::GeneralSettings</name>
|
||||
@@ -653,12 +658,12 @@ Esto se puede deber a que el directorio fue reconfigurado de manera silenciosa o
|
||||
<context>
|
||||
<name>Mirall::HttpCredentials</name>
|
||||
<message>
|
||||
<location filename="../src/creds/httpcredentials.cpp" line="278"/>
|
||||
<location filename="../src/creds/httpcredentials.cpp" line="282"/>
|
||||
<source>Enter Password</source>
|
||||
<translation>Ingresar contraseña</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/creds/httpcredentials.cpp" line="279"/>
|
||||
<location filename="../src/creds/httpcredentials.cpp" line="283"/>
|
||||
<source>Please enter %1 password for user '%2':</source>
|
||||
<translation>Por favor, ingresa %1 contraseña para el usuario '%2':</translation>
|
||||
</message>
|
||||
@@ -781,12 +786,12 @@ Los elementos marcados también se borrarán si impiden la eliminación de algú
|
||||
<context>
|
||||
<name>Mirall::Logger</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/logger.cpp" line="155"/>
|
||||
<location filename="../src/mirall/logger.cpp" line="146"/>
|
||||
<source>Error</source>
|
||||
<translation>Error</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/logger.cpp" line="156"/>
|
||||
<location filename="../src/mirall/logger.cpp" line="147"/>
|
||||
<source><nobr>File '%1'<br/>cannot be opened for writing.<br/><br/>The log output can <b>not</b> be saved!</nobr></source>
|
||||
<translation><nobr>El archivo '%1'<br/>no puede ser abierto para escritura.<br/><br/>¡El archivo de log <b>no</b> puede ser guardado!</nobr></translation>
|
||||
</message>
|
||||
@@ -1077,18 +1082,18 @@ It is not advisable to use it.</source>
|
||||
<context>
|
||||
<name>Mirall::OwncloudSetupWizard</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="357"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="360"/>
|
||||
<source>Folder rename failed</source>
|
||||
<translation>Error Al Renombrar Directorio</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="412"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="421"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="415"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="424"/>
|
||||
<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>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="192"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="193"/>
|
||||
<source>Trying to connect to %1 at %2...</source>
|
||||
<translation>Intentando conectar a %1 en %2...</translation>
|
||||
</message>
|
||||
@@ -1098,32 +1103,32 @@ It is not advisable to use it.</source>
|
||||
<translation><font color="green">Conectado a %1: versión de %2 %3 (%4)</font><br/><br/></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="215"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="218"/>
|
||||
<source>Error: Wrong credentials.</source>
|
||||
<translation>Error: Credenciales erróneas.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="229"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="232"/>
|
||||
<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/mirall/owncloudsetupwizard.cpp" line="231"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="234"/>
|
||||
<source>Creating local sync folder %1... </source>
|
||||
<translation>Creando el directorio %1...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="235"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="238"/>
|
||||
<source>ok</source>
|
||||
<translation>aceptar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="237"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="240"/>
|
||||
<source>failed.</source>
|
||||
<translation>Error.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="239"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="242"/>
|
||||
<source>Could not create local folder %1</source>
|
||||
<translation>No fue posible crear el directorio local %1</translation>
|
||||
</message>
|
||||
@@ -1134,69 +1139,69 @@ It is not advisable to use it.</source>
|
||||
<translation>Falló al conectarse a %1 en %2:<br/>%3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="264"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="267"/>
|
||||
<source>No remote folder specified!</source>
|
||||
<translation>¡No se ha especificado un directorio remoto!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="270"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="273"/>
|
||||
<source>Error: %1</source>
|
||||
<translation>Error: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="283"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="286"/>
|
||||
<source>creating folder on ownCloud: %1</source>
|
||||
<translation>Creando carpeta en ownCloud: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="299"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="302"/>
|
||||
<source>Remote folder %1 created successfully.</source>
|
||||
<translation>El directorio remoto %1 fue creado con éxito.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="301"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="304"/>
|
||||
<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/mirall/owncloudsetupwizard.cpp" line="303"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="305"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="306"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="308"/>
|
||||
<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/mirall/owncloudsetupwizard.cpp" line="307"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="310"/>
|
||||
<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/mirall/owncloudsetupwizard.cpp" line="310"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="313"/>
|
||||
<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/mirall/owncloudsetupwizard.cpp" line="315"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="316"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="318"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="319"/>
|
||||
<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/mirall/owncloudsetupwizard.cpp" line="332"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="335"/>
|
||||
<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/mirall/owncloudsetupwizard.cpp" line="337"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="340"/>
|
||||
<source>Successfully connected to %1!</source>
|
||||
<translation>Conectado con éxito a %1!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="344"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="347"/>
|
||||
<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/mirall/owncloudsetupwizard.cpp" line="358"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="361"/>
|
||||
<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>
|
||||
@@ -1237,6 +1242,14 @@ It is not advisable to use it.</source>
|
||||
<translation>el directorio %1 <i>%1</i> está sincronizándose con el directorio local <i>%2</i></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Mirall::PUTFileJob</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="82"/>
|
||||
<source>Connection Timeout</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Mirall::PropagateDownloadFileLegacy</name>
|
||||
<message>
|
||||
@@ -1254,11 +1267,24 @@ It is not advisable to use it.</source>
|
||||
<source>We received a different E-Tag for resuming. Retrying next time.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_legacy.cpp" line="449"/>
|
||||
<source>File %1 can not be downloaded because of a local file name clash!</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Mirall::PropagateDownloadFileQNAM</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="443"/>
|
||||
<source>File %1 can not be downloaded because of a local file name clash!</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Mirall::PropagateItemJob</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudpropagator.cpp" line="150"/>
|
||||
<location filename="../src/mirall/owncloudpropagator.cpp" line="159"/>
|
||||
<source>A file or directory was removed from a read only share, but restoring failed: %1</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
@@ -1266,7 +1292,12 @@ It is not advisable to use it.</source>
|
||||
<context>
|
||||
<name>Mirall::PropagateLocalMkdir</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="109"/>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="114"/>
|
||||
<source>Attention, possible case sensitivity clash with %1</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="119"/>
|
||||
<source>could not create directory %1</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
@@ -1274,15 +1305,28 @@ It is not advisable to use it.</source>
|
||||
<context>
|
||||
<name>Mirall::PropagateLocalRemove</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="86"/>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="80"/>
|
||||
<source>Could not remove %1 because of a local file name clash</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="87"/>
|
||||
<source>Could not remove directory %1</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Mirall::PropagateLocalRename</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="196"/>
|
||||
<source>File %1 can not be renamed to %2 because of a local file name clash</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Mirall::PropagateRemoteRemove</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="129"/>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="139"/>
|
||||
<source>The file has been removed from a read only share. It was restored.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
@@ -1290,17 +1334,17 @@ It is not advisable to use it.</source>
|
||||
<context>
|
||||
<name>Mirall::PropagateRemoteRename</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="220"/>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="242"/>
|
||||
<source>This folder must not be renamed. It is renamed back to its original name.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="222"/>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="244"/>
|
||||
<source>This folder must not be renamed. Please name it back to Shared.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="237"/>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="259"/>
|
||||
<source>The file was renamed but is part of a read only share. The original file was restored.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
@@ -1327,18 +1371,18 @@ It is not advisable to use it.</source>
|
||||
<context>
|
||||
<name>Mirall::PropagateUploadFileQNAM</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="241"/>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="247"/>
|
||||
<source>The file was edited locally but is part of a read only share. It is restored and your edit is in the conflict file.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="266"/>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="272"/>
|
||||
<source>Local file changed during sync.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="276"/>
|
||||
<source>The server did not aknoledge the last chunk. (No e-tag were present)</source>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="282"/>
|
||||
<source>The server did not acknowledge the last chunk. (No e-tag were present)</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
@@ -1463,27 +1507,27 @@ Intente sincronizar estos nuevamente.</translation>
|
||||
<context>
|
||||
<name>Mirall::SettingsDialogMac</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="30"/>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="28"/>
|
||||
<source>%1</source>
|
||||
<translation>%1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="34"/>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="32"/>
|
||||
<source>Account</source>
|
||||
<translation>Cuenta</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="38"/>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="36"/>
|
||||
<source>Activity</source>
|
||||
<translation>Actividad</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="42"/>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="40"/>
|
||||
<source>General</source>
|
||||
<translation>General</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="46"/>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="44"/>
|
||||
<source>Network</source>
|
||||
<translation>Red</translation>
|
||||
</message>
|
||||
@@ -1491,12 +1535,12 @@ Intente sincronizar estos nuevamente.</translation>
|
||||
<context>
|
||||
<name>Mirall::ShibbolethCredentials</name>
|
||||
<message>
|
||||
<location filename="../src/creds/shibbolethcredentials.cpp" line="299"/>
|
||||
<location filename="../src/creds/shibbolethcredentials.cpp" line="259"/>
|
||||
<source>Login Error</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/creds/shibbolethcredentials.cpp" line="299"/>
|
||||
<location filename="../src/creds/shibbolethcredentials.cpp" line="259"/>
|
||||
<source>You must sign in as user %1</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
@@ -1504,12 +1548,22 @@ Intente sincronizar estos nuevamente.</translation>
|
||||
<context>
|
||||
<name>Mirall::ShibbolethWebView</name>
|
||||
<message>
|
||||
<location filename="../src/creds/shibboleth/shibbolethwebview.cpp" line="58"/>
|
||||
<location filename="../src/creds/shibboleth/shibbolethwebview.cpp" line="56"/>
|
||||
<source>%1 - Authenticate</source>
|
||||
<translation>%1 - Autenticarse</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/creds/shibboleth/shibbolethwebview.cpp" line="119"/>
|
||||
<location filename="../src/creds/shibboleth/shibbolethwebview.cpp" line="62"/>
|
||||
<source>Reauthentication required</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/creds/shibboleth/shibbolethwebview.cpp" line="62"/>
|
||||
<source>Your session has expired. You need to re-login to continue to use the client.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/creds/shibboleth/shibbolethwebview.cpp" line="101"/>
|
||||
<source>%1 - %2</source>
|
||||
<translation>%1 - %2</translation>
|
||||
</message>
|
||||
@@ -1882,12 +1936,12 @@ Intente sincronizar estos nuevamente.</translation>
|
||||
<translation>El archivo contiene caracteres inválidos que no pueden ser sincronizados entre plataforma.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/syncengine.cpp" line="451"/>
|
||||
<location filename="../src/mirall/syncengine.cpp" line="448"/>
|
||||
<source>Unable to initialize a sync journal.</source>
|
||||
<translation>Imposible inicializar un diario de sincronización.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/syncengine.cpp" line="550"/>
|
||||
<location filename="../src/mirall/syncengine.cpp" line="545"/>
|
||||
<source>Cannot open the sync journal</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
@@ -2259,12 +2313,12 @@ Intente sincronizar estos nuevamente.</translation>
|
||||
<context>
|
||||
<name>main.cpp</name>
|
||||
<message>
|
||||
<location filename="../src/main.cpp" line="30"/>
|
||||
<location filename="../src/main.cpp" line="38"/>
|
||||
<source>System Tray not available</source>
|
||||
<translation>La bandeja del sistema no está disponible</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/main.cpp" line="31"/>
|
||||
<location filename="../src/main.cpp" line="39"/>
|
||||
<source>%1 requires on a working system tray. If you are running XFCE, please follow <a href="http://docs.xfce.org/xfce/xfce4-panel/systray">these instructions</a>. Otherwise, please install a system tray application such as 'trayer' and try again.</source>
|
||||
<translation>% 1 requiere una bandeja del sistema funcionando. Si estás usando XFCE, por favor leé <a href="http://docs.xfce.org/xfce/xfce4-panel/systray"> estas instrucciones</ a>. De lo contrario, instalá una aplicación de la bandeja del sistema, como 'trayer' e intentalo de nuevo.</translation>
|
||||
</message>
|
||||
|
||||
@@ -89,7 +89,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.ui" line="62"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="160"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="159"/>
|
||||
<source>Pause</source>
|
||||
<translation>Paus</translation>
|
||||
</message>
|
||||
@@ -119,59 +119,59 @@
|
||||
<translation><b>Märkus:</b> Mõned kataloogid, sealhulgas võrgust ühendatud või jagatud kataloogid, võivad omada erinevaid limiite.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="162"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="161"/>
|
||||
<source>Resume</source>
|
||||
<translation>Taasta</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="317"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="320"/>
|
||||
<source>Confirm Folder Remove</source>
|
||||
<translation>Kinnita kausta eemaldamist</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="318"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="321"/>
|
||||
<source><p>Do you really want to stop syncing the folder <i>%1</i>?</p><p><b>Note:</b> This will not remove the files from your client.</p></source>
|
||||
<translation><p>Kas tõesti soovid peatada kataloogi <i>%1</i> sünkroniseerimist?.</p><p><b>Märkus:</b> See ei eemalda faile sinu kliendist.</p></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="354"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="357"/>
|
||||
<source>Confirm Folder Reset</source>
|
||||
<translation>Kinnita kataloogi algseadistus</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="355"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="358"/>
|
||||
<source><p>Do you really want to reset folder <i>%1</i> and rebuild your client database?</p><p><b>Note:</b> This function is designed for maintenance purposes only. No files will be removed, but this can cause significant data traffic and take several minutes or hours to complete, depending on the size of the folder. Only use this option if advised by your administrator.</p></source>
|
||||
<translation><p>Kas tõesti soovid kataloogi <i>%1</i> algseadistada ning uuesti luua oma kliendi andmebaasi?</p><p><b>See funktsioon on mõeldud peamiselt ainult hooldustöödeks. Märkus:</b>Kuigi ühtegi faili ei eemaldata, siis see võib põhjustada märkimisväärset andmeliiklust ja võtta mitu minutit või tundi, sõltuvalt kataloogi suurusest. Kasuta seda võimalust ainult siis kui seda soovitab süsteemihaldur.</p></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="619"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="622"/>
|
||||
<source>%1 %2 (%3 of %4)</source>
|
||||
<extracomment>Example text: "uploading foobar.png (1MB of 2MB)"</extracomment>
|
||||
<translation>%1 %2 (%3 / %4)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="622"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="625"/>
|
||||
<source>%1 %2</source>
|
||||
<extracomment>Example text: "uploading foobar.png"</extracomment>
|
||||
<translation>%1 %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="717"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="721"/>
|
||||
<source>%1 (%3%) of %2 server space in use.</source>
|
||||
<translation>%1 (%3%) %2-st serveri mahust on kasutuses.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="756"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="760"/>
|
||||
<source>No connection to %1 at <a href="%2">%3</a>.</source>
|
||||
<translation>Ühendus puudub %1 <a href="%2">%3</a>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="763"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="767"/>
|
||||
<source>No %1 connection configured.</source>
|
||||
<translation>Ühtegi %1 ühendust pole seadistatud.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="466"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="469"/>
|
||||
<source>Sync Running</source>
|
||||
<translation>Sünkroniseerimine on käimas</translation>
|
||||
</message>
|
||||
@@ -181,27 +181,27 @@
|
||||
<translation>Ühtegi kontot pole seadistatud</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="467"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="470"/>
|
||||
<source>The syncing operation is running.<br/>Do you want to terminate it?</source>
|
||||
<translation>Sünkroniseerimine on käimas.<br/>Kas sa soovid seda lõpetada?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="749"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="753"/>
|
||||
<source>Connected to <a href="%1">%2</a>.</source>
|
||||
<translation>Ühendatud <a href="%1">%2</a>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="631"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="634"/>
|
||||
<source>%1 of %2, file %3 of %4</source>
|
||||
<translation>%1 / %2, fail %3 / %4</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="752"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="756"/>
|
||||
<source>Connected to <a href="%1">%2</a> as <i>%3</i>.</source>
|
||||
<translation>Ühendatud <a href="%1">%2</a> kui <i>%3</i>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="721"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="725"/>
|
||||
<source>Currently there is no storage usage information available.</source>
|
||||
<translation>Hetkel pole mahu kasutuse info saadaval.</translation>
|
||||
</message>
|
||||
@@ -260,100 +260,100 @@
|
||||
<context>
|
||||
<name>Mirall::Folder</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="99"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="107"/>
|
||||
<source>Unable to create csync-context</source>
|
||||
<translation>Ei suuda luua csync-konteksti</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="157"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="165"/>
|
||||
<source>Local folder %1 does not exist.</source>
|
||||
<translation>Kohalikku kausta %1 pole olemas.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="160"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="168"/>
|
||||
<source>%1 should be a directory but is not.</source>
|
||||
<translation>%1 peaks olema kataloog, kuid pole seda mitte.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="163"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="171"/>
|
||||
<source>%1 is not readable.</source>
|
||||
<translation>%1 pole loetav.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="316"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="323"/>
|
||||
<source>%1: %2</source>
|
||||
<translation>%1: %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="402"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="409"/>
|
||||
<source>%1 and %2 other files have been removed.</source>
|
||||
<comment>%1 names a file.</comment>
|
||||
<translation>%1 ja %2 teist faili eemaldati.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="404"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="411"/>
|
||||
<source>%1 has been removed.</source>
|
||||
<comment>%1 names a file.</comment>
|
||||
<translation>%1 on eemaldatud.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="409"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="416"/>
|
||||
<source>%1 and %2 other files have been downloaded.</source>
|
||||
<comment>%1 names a file.</comment>
|
||||
<translation>%1 ja %2 teist faili on alla laaditud.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="411"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="418"/>
|
||||
<source>%1 has been downloaded.</source>
|
||||
<comment>%1 names a file.</comment>
|
||||
<translation>%1 on alla laaditud.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="416"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="423"/>
|
||||
<source>%1 and %2 other files have been updated.</source>
|
||||
<translation>%1 ja %2 teist faili on uuendatud.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="418"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="425"/>
|
||||
<source>%1 has been updated.</source>
|
||||
<comment>%1 names a file.</comment>
|
||||
<translation>%1 on uuendatud.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="423"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="430"/>
|
||||
<source>%1 has been renamed to %2 and %3 other files have been renamed.</source>
|
||||
<translation>%1 on ümber nimetatud %2 ja %3 muud faili on samuti ümber nimetatud</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="425"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="432"/>
|
||||
<source>%1 has been renamed to %2.</source>
|
||||
<comment>%1 and %2 name files.</comment>
|
||||
<translation>%1 on ümber nimetatud %2.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="430"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="437"/>
|
||||
<source>%1 has been moved to %2 and %3 other files have been moved.</source>
|
||||
<translation>%1 on tõstetud %2 ning %3 muud faili on samuti liigutatud.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="432"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="439"/>
|
||||
<source>%1 has been moved to %2.</source>
|
||||
<translation>%1 on tõstetud %2.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="440"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="447"/>
|
||||
<source>Sync Activity</source>
|
||||
<translation>Sünkroniseerimise tegevus</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="680"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="697"/>
|
||||
<source>This sync would remove all the files in the local sync folder '%1'.
|
||||
If you or your administrator have reset your account on the server, choose "Keep files". If you want your data to be removed, choose "Remove all files".</source>
|
||||
<translation>See sünkroniseering kustutab kõik failid kohalikust kataloogist '%1'.⏎
|
||||
Kui sina või adminstraator on sinu konto serveris algseadistanud, siis vali "Säilita failid". Kui soovid oma andmed kustutada, vali "Kustuta kõik failid".</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="683"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="700"/>
|
||||
<source>This sync would remove all the files in the sync folder '%1'.
|
||||
This might be because the folder was silently reconfigured, or that all the file were manually removed.
|
||||
Are you sure you want to perform this operation?</source>
|
||||
@@ -362,17 +362,17 @@ See võib olla põhjustatud kataloogi ümberseadistusest või on toimunud kõiki
|
||||
Oled kindel, et soovid seda operatsiooni teostada?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="687"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="704"/>
|
||||
<source>Remove All Files?</source>
|
||||
<translation>Kustutada kõik failid?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="689"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="706"/>
|
||||
<source>Remove all files</source>
|
||||
<translation>Kustutada kõik failid</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="690"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="707"/>
|
||||
<source>Keep files</source>
|
||||
<translation>Säilita failid</translation>
|
||||
</message>
|
||||
@@ -380,12 +380,12 @@ Oled kindel, et soovid seda operatsiooni teostada?</translation>
|
||||
<context>
|
||||
<name>Mirall::FolderMan</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/folderman.cpp" line="173"/>
|
||||
<location filename="../src/mirall/folderman.cpp" line="171"/>
|
||||
<source>Could not reset folder state</source>
|
||||
<translation>Ei suutnud tühistada kataloogi staatust</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folderman.cpp" line="174"/>
|
||||
<location filename="../src/mirall/folderman.cpp" line="172"/>
|
||||
<source>An old sync journal '%1' was found, but could not be removed. Please make sure that no application is currently using it.</source>
|
||||
<translation>Leiti vana sünkroniseeringu zurnaal '%1', kuid selle eemaldamine ebaõnnenstus. Palun veendu, et seda kasutaks ükski programm.</translation>
|
||||
</message>
|
||||
@@ -512,8 +512,8 @@ Oled kindel, et soovid seda operatsiooni teostada?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folderwizard.cpp" line="139"/>
|
||||
<source>The selected folder is a symbolic link. An already configuredfolder is contained in the folder this link is pointing to.</source>
|
||||
<translation>Valitud kataloog on sümboolne link. Juba eelnevalt seadistatud kataloog sisaldub kataloogis, millele antud link viitab.</translation>
|
||||
<source>The selected folder is a symbolic link. An already configured folder is contained in the folder this link is pointing to.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folderwizard.cpp" line="146"/>
|
||||
@@ -596,15 +596,20 @@ Oled kindel, et soovid seda operatsiooni teostada?</translation>
|
||||
<context>
|
||||
<name>Mirall::GETFileJob</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="381"/>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="393"/>
|
||||
<source>No E-Tag received from server, check Proxy/Gateway</source>
|
||||
<translation>Ühtegi E-Silti ei saabunud serverist, kontrolli puhverserverit/lüüsi.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="388"/>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="400"/>
|
||||
<source>We received a different E-Tag for resuming. Retrying next time.</source>
|
||||
<translation>Saime jätkamiseks erineva E-Sildi. Proovin järgmine kord uuesti.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="633"/>
|
||||
<source>Connection Timeout</source>
|
||||
<translation>Ühenduse aegumine</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Mirall::GeneralSettings</name>
|
||||
@@ -653,12 +658,12 @@ Oled kindel, et soovid seda operatsiooni teostada?</translation>
|
||||
<context>
|
||||
<name>Mirall::HttpCredentials</name>
|
||||
<message>
|
||||
<location filename="../src/creds/httpcredentials.cpp" line="278"/>
|
||||
<location filename="../src/creds/httpcredentials.cpp" line="282"/>
|
||||
<source>Enter Password</source>
|
||||
<translation>Sisesta parool</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/creds/httpcredentials.cpp" line="279"/>
|
||||
<location filename="../src/creds/httpcredentials.cpp" line="283"/>
|
||||
<source>Please enter %1 password for user '%2':</source>
|
||||
<translation>Palun sisesta %1 parool kasutajale '%2':</translation>
|
||||
</message>
|
||||
@@ -781,12 +786,12 @@ Checked items will also be deleted if they prevent a directory from being remove
|
||||
<context>
|
||||
<name>Mirall::Logger</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/logger.cpp" line="155"/>
|
||||
<location filename="../src/mirall/logger.cpp" line="146"/>
|
||||
<source>Error</source>
|
||||
<translation>Viga</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/logger.cpp" line="156"/>
|
||||
<location filename="../src/mirall/logger.cpp" line="147"/>
|
||||
<source><nobr>File '%1'<br/>cannot be opened for writing.<br/><br/>The log output can <b>not</b> be saved!</nobr></source>
|
||||
<translation><nobr>Faili '%1'<br/>ei saa kirjutamiseks avada.<br/><br/>Logi väljundit <b>ei saa</b> salvestada!</nobr></translation>
|
||||
</message>
|
||||
@@ -1079,18 +1084,18 @@ Selle kasutamine pole soovitatav.</translation>
|
||||
<context>
|
||||
<name>Mirall::OwncloudSetupWizard</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="357"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="360"/>
|
||||
<source>Folder rename failed</source>
|
||||
<translation>Kataloogi ümbernimetamine ebaõnnestus</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="412"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="421"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="415"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="424"/>
|
||||
<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>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="192"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="193"/>
|
||||
<source>Trying to connect to %1 at %2...</source>
|
||||
<translation>Püüan ühenduda %1 kohast %2</translation>
|
||||
</message>
|
||||
@@ -1100,32 +1105,32 @@ Selle kasutamine pole soovitatav.</translation>
|
||||
<translation><font color="green">Edukalt ühendatud %1: %2 versioon %3 (4)</font><br/><br/></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="215"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="218"/>
|
||||
<source>Error: Wrong credentials.</source>
|
||||
<translation>Viga: Valed kasutajaandmed.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="229"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="232"/>
|
||||
<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/mirall/owncloudsetupwizard.cpp" line="231"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="234"/>
|
||||
<source>Creating local sync folder %1... </source>
|
||||
<translation>Kohaliku kausta %1 sünkroonimise loomine ... </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="235"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="238"/>
|
||||
<source>ok</source>
|
||||
<translation>ok</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="237"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="240"/>
|
||||
<source>failed.</source>
|
||||
<translation>ebaõnnestus.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="239"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="242"/>
|
||||
<source>Could not create local folder %1</source>
|
||||
<translation>Ei suuda tekitada kohalikku kataloogi %1</translation>
|
||||
</message>
|
||||
@@ -1136,69 +1141,69 @@ Selle kasutamine pole soovitatav.</translation>
|
||||
<translation>Ühendumine ebaõnnestus %1 %2-st:<br/>%3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="264"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="267"/>
|
||||
<source>No remote folder specified!</source>
|
||||
<translation>Ühtegi võrgukataloogi pole määratletud!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="270"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="273"/>
|
||||
<source>Error: %1</source>
|
||||
<translation>Viga: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="283"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="286"/>
|
||||
<source>creating folder on ownCloud: %1</source>
|
||||
<translation>loon uue kataloogi ownCloudi: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="299"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="302"/>
|
||||
<source>Remote folder %1 created successfully.</source>
|
||||
<translation>Eemalolev kaust %1 on loodud.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="301"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="304"/>
|
||||
<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/mirall/owncloudsetupwizard.cpp" line="303"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="305"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="306"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="308"/>
|
||||
<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/mirall/owncloudsetupwizard.cpp" line="307"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="310"/>
|
||||
<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/mirall/owncloudsetupwizard.cpp" line="310"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="313"/>
|
||||
<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/mirall/owncloudsetupwizard.cpp" line="315"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="316"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="318"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="319"/>
|
||||
<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/mirall/owncloudsetupwizard.cpp" line="332"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="335"/>
|
||||
<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/mirall/owncloudsetupwizard.cpp" line="337"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="340"/>
|
||||
<source>Successfully connected to %1!</source>
|
||||
<translation>Edukalt ühendatud %1!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="344"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="347"/>
|
||||
<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/mirall/owncloudsetupwizard.cpp" line="358"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="361"/>
|
||||
<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>
|
||||
@@ -1239,6 +1244,14 @@ Selle kasutamine pole soovitatav.</translation>
|
||||
<translation>%1 kaust <i>%1</i> on sünkroniseeritud kohaliku kaustaga <i>%2</i></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Mirall::PUTFileJob</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="82"/>
|
||||
<source>Connection Timeout</source>
|
||||
<translation>Ühenduse aegumine</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Mirall::PropagateDownloadFileLegacy</name>
|
||||
<message>
|
||||
@@ -1256,11 +1269,24 @@ Selle kasutamine pole soovitatav.</translation>
|
||||
<source>We received a different E-Tag for resuming. Retrying next time.</source>
|
||||
<translation>Saime jätkamiseks erineva E-Sildi. Proovin järgmine kord uuesti.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_legacy.cpp" line="449"/>
|
||||
<source>File %1 can not be downloaded because of a local file name clash!</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Mirall::PropagateDownloadFileQNAM</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="443"/>
|
||||
<source>File %1 can not be downloaded because of a local file name clash!</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Mirall::PropagateItemJob</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudpropagator.cpp" line="150"/>
|
||||
<location filename="../src/mirall/owncloudpropagator.cpp" line="159"/>
|
||||
<source>A file or directory was removed from a read only share, but restoring failed: %1</source>
|
||||
<translation>Fail või kataloog oli eemaldatud kirjutamisõiguseta jagamisest, kuid taastamine ebaõnnestus: %1</translation>
|
||||
</message>
|
||||
@@ -1268,7 +1294,12 @@ Selle kasutamine pole soovitatav.</translation>
|
||||
<context>
|
||||
<name>Mirall::PropagateLocalMkdir</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="109"/>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="114"/>
|
||||
<source>Attention, possible case sensitivity clash with %1</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="119"/>
|
||||
<source>could not create directory %1</source>
|
||||
<translation>ei suuda luua kataloogi %1</translation>
|
||||
</message>
|
||||
@@ -1276,15 +1307,28 @@ Selle kasutamine pole soovitatav.</translation>
|
||||
<context>
|
||||
<name>Mirall::PropagateLocalRemove</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="86"/>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="80"/>
|
||||
<source>Could not remove %1 because of a local file name clash</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="87"/>
|
||||
<source>Could not remove directory %1</source>
|
||||
<translation>Kausta %1 ei saa eemaldada</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Mirall::PropagateLocalRename</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="196"/>
|
||||
<source>File %1 can not be renamed to %2 because of a local file name clash</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Mirall::PropagateRemoteRemove</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="129"/>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="139"/>
|
||||
<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>
|
||||
@@ -1292,17 +1336,17 @@ Selle kasutamine pole soovitatav.</translation>
|
||||
<context>
|
||||
<name>Mirall::PropagateRemoteRename</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="220"/>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="242"/>
|
||||
<source>This folder must not be renamed. It is renamed back to its original name.</source>
|
||||
<translation>Kausta ei tohi ümber nimetada. Kausta algne nimi taastati.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="222"/>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="244"/>
|
||||
<source>This folder must not be renamed. Please name it back to Shared.</source>
|
||||
<translation>Kausta nime ei tohi muuta. Palun pane selle nimeks tagasi Shared.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="237"/>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="259"/>
|
||||
<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>
|
||||
@@ -1329,19 +1373,19 @@ Selle kasutamine pole soovitatav.</translation>
|
||||
<context>
|
||||
<name>Mirall::PropagateUploadFileQNAM</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="241"/>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="247"/>
|
||||
<source>The file was edited locally but is part of a read only share. It is restored and your edit is in the conflict file.</source>
|
||||
<translation>Faili on lokaalselt muudetud, kuid see on osa kirjutamisõiguseta jagamisest. See on taastatud ning sinu muudatus on konfliktses failis.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="266"/>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="272"/>
|
||||
<source>Local file changed during sync.</source>
|
||||
<translation>Kohalik fail muutus sünkroniseeringu käigus.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="276"/>
|
||||
<source>The server did not aknoledge the last chunk. (No e-tag were present)</source>
|
||||
<translation>Server ei tunnistanud viimast tükki. (E-silt puudus).</translation>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="282"/>
|
||||
<source>The server did not acknowledge the last chunk. (No e-tag were present)</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@@ -1465,27 +1509,27 @@ Proovi neid uuesti sünkroniseerida.</translation>
|
||||
<context>
|
||||
<name>Mirall::SettingsDialogMac</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="30"/>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="28"/>
|
||||
<source>%1</source>
|
||||
<translation>%1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="34"/>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="32"/>
|
||||
<source>Account</source>
|
||||
<translation>Konto</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="38"/>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="36"/>
|
||||
<source>Activity</source>
|
||||
<translation>Toimingud</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="42"/>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="40"/>
|
||||
<source>General</source>
|
||||
<translation>Üldine</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="46"/>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="44"/>
|
||||
<source>Network</source>
|
||||
<translation>Võrk</translation>
|
||||
</message>
|
||||
@@ -1493,12 +1537,12 @@ Proovi neid uuesti sünkroniseerida.</translation>
|
||||
<context>
|
||||
<name>Mirall::ShibbolethCredentials</name>
|
||||
<message>
|
||||
<location filename="../src/creds/shibbolethcredentials.cpp" line="299"/>
|
||||
<location filename="../src/creds/shibbolethcredentials.cpp" line="259"/>
|
||||
<source>Login Error</source>
|
||||
<translation>Sisselogimise viga</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/creds/shibbolethcredentials.cpp" line="299"/>
|
||||
<location filename="../src/creds/shibbolethcredentials.cpp" line="259"/>
|
||||
<source>You must sign in as user %1</source>
|
||||
<translation>Pead sisse logima kui kasutaja %1</translation>
|
||||
</message>
|
||||
@@ -1506,12 +1550,22 @@ Proovi neid uuesti sünkroniseerida.</translation>
|
||||
<context>
|
||||
<name>Mirall::ShibbolethWebView</name>
|
||||
<message>
|
||||
<location filename="../src/creds/shibboleth/shibbolethwebview.cpp" line="58"/>
|
||||
<location filename="../src/creds/shibboleth/shibbolethwebview.cpp" line="56"/>
|
||||
<source>%1 - Authenticate</source>
|
||||
<translation>%1 - autentimine</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/creds/shibboleth/shibbolethwebview.cpp" line="119"/>
|
||||
<location filename="../src/creds/shibboleth/shibbolethwebview.cpp" line="62"/>
|
||||
<source>Reauthentication required</source>
|
||||
<translation>Vajalik on uuesti autentimine</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/creds/shibboleth/shibbolethwebview.cpp" line="62"/>
|
||||
<source>Your session has expired. You need to re-login to continue to use the client.</source>
|
||||
<translation>Sinu sessioon on aegunud. Sa pead kliendi kasutamiseks uuesti sisse logima.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/creds/shibboleth/shibbolethwebview.cpp" line="101"/>
|
||||
<source>%1 - %2</source>
|
||||
<translation>%1 - %2</translation>
|
||||
</message>
|
||||
@@ -1886,12 +1940,12 @@ Proovi neid uuesti sünkroniseerida.</translation>
|
||||
<translation>Fail sisaldab sobimatuid sümboleid, mida ei saa sünkroniseerida erinevate platvormide vahel.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/syncengine.cpp" line="451"/>
|
||||
<location filename="../src/mirall/syncengine.cpp" line="448"/>
|
||||
<source>Unable to initialize a sync journal.</source>
|
||||
<translation>Ei suuda lähtestada sünkroniseeringu zurnaali.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/syncengine.cpp" line="550"/>
|
||||
<location filename="../src/mirall/syncengine.cpp" line="545"/>
|
||||
<source>Cannot open the sync journal</source>
|
||||
<translation>Ei suuda avada sünkroniseeringu zurnaali</translation>
|
||||
</message>
|
||||
@@ -2262,12 +2316,12 @@ Proovi neid uuesti sünkroniseerida.</translation>
|
||||
<context>
|
||||
<name>main.cpp</name>
|
||||
<message>
|
||||
<location filename="../src/main.cpp" line="30"/>
|
||||
<location filename="../src/main.cpp" line="38"/>
|
||||
<source>System Tray not available</source>
|
||||
<translation>Süsteemisalv pole saadaval</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/main.cpp" line="31"/>
|
||||
<location filename="../src/main.cpp" line="39"/>
|
||||
<source>%1 requires on a working system tray. If you are running XFCE, please follow <a href="http://docs.xfce.org/xfce/xfce4-panel/systray">these instructions</a>. Otherwise, please install a system tray application such as 'trayer' and try again.</source>
|
||||
<translation>%1 vajab tööks süsteemisalve. Kui Sa kasutad XFCE-d, palun järgi <a href="http://docs.xfce.org/xfce/xfce4-panel/systray">neid juhiseid</a>. Muudel juhtudel palun paigalda süsteemisalve rakendus nagu näiteks 'trayer' ning proovi uuesti.</translation>
|
||||
</message>
|
||||
|
||||
@@ -89,7 +89,7 @@
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.ui" line="62"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="160"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="159"/>
|
||||
<source>Pause</source>
|
||||
<translation>Pausarazi</translation>
|
||||
</message>
|
||||
@@ -119,59 +119,59 @@
|
||||
<translation><b>Oharra:</b>Karpeta batzuk, sarekoa edo partekatutakoak, muga ezberdinak izan ditzazkete.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="162"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="161"/>
|
||||
<source>Resume</source>
|
||||
<translation>Berrekin</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="317"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="320"/>
|
||||
<source>Confirm Folder Remove</source>
|
||||
<translation>Baieztatu karpetaren ezabatzea</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="318"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="321"/>
|
||||
<source><p>Do you really want to stop syncing the folder <i>%1</i>?</p><p><b>Note:</b> This will not remove the files from your client.</p></source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="354"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="357"/>
|
||||
<source>Confirm Folder Reset</source>
|
||||
<translation>Baieztatu Karpetaren Leheneratzea</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="355"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="358"/>
|
||||
<source><p>Do you really want to reset folder <i>%1</i> and rebuild your client database?</p><p><b>Note:</b> This function is designed for maintenance purposes only. No files will be removed, but this can cause significant data traffic and take several minutes or hours to complete, depending on the size of the folder. Only use this option if advised by your administrator.</p></source>
|
||||
<translation><p>Benetan nahi duzu <i>%1</i> karpeta leheneratu eta zure bezeroaren datu basea berreraiki?</p><p><b>Oharra:</p> Funtzio hau mantenurako bakarrik diseinauta izan da. Ez da fitxategirik ezabatuko, baina honek datu trafiko handia sor dezake eta minutu edo ordu batzuk behar izango ditu burutzeko, karpetaren tamainaren arabera. Erabili aukera hau bakarrik zure kudeatzaileak esanez gero.</p></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="619"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="622"/>
|
||||
<source>%1 %2 (%3 of %4)</source>
|
||||
<extracomment>Example text: "uploading foobar.png (1MB of 2MB)"</extracomment>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="622"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="625"/>
|
||||
<source>%1 %2</source>
|
||||
<extracomment>Example text: "uploading foobar.png"</extracomment>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="717"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="721"/>
|
||||
<source>%1 (%3%) of %2 server space in use.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="756"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="760"/>
|
||||
<source>No connection to %1 at <a href="%2">%3</a>.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="763"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="767"/>
|
||||
<source>No %1 connection configured.</source>
|
||||
<translation>Ez dago %1 konexiorik konfiguratuta.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="466"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="469"/>
|
||||
<source>Sync Running</source>
|
||||
<translation>Sinkronizazioa martxan da</translation>
|
||||
</message>
|
||||
@@ -181,27 +181,27 @@
|
||||
<translation>Ez da konturik konfiguratu.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="467"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="470"/>
|
||||
<source>The syncing operation is running.<br/>Do you want to terminate it?</source>
|
||||
<translation>Sinkronizazio martxan da.<br/>Bukatu nahi al duzu?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="749"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="753"/>
|
||||
<source>Connected to <a href="%1">%2</a>.</source>
|
||||
<translation><a href="%1">%2</a>ra konektatuta.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="631"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="634"/>
|
||||
<source>%1 of %2, file %3 of %4</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="752"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="756"/>
|
||||
<source>Connected to <a href="%1">%2</a> as <i>%3</i>.</source>
|
||||
<translation> <a href="%1">%2</a>ra konektatuta <i>%3</i> erabiltzailearekin.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="721"/>
|
||||
<location filename="../src/mirall/accountsettings.cpp" line="725"/>
|
||||
<source>Currently there is no storage usage information available.</source>
|
||||
<translation>Orain ez dago eskuragarri biltegiratze erabileraren informazioa.</translation>
|
||||
</message>
|
||||
@@ -211,7 +211,7 @@
|
||||
<message>
|
||||
<location filename="../src/creds/shibboleth/authenticationdialog.cpp" line="29"/>
|
||||
<source>Authentication Required</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Autentikazioa beharrezkoa</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/creds/shibboleth/authenticationdialog.cpp" line="31"/>
|
||||
@@ -260,116 +260,116 @@
|
||||
<context>
|
||||
<name>Mirall::Folder</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="99"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="107"/>
|
||||
<source>Unable to create csync-context</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="157"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="165"/>
|
||||
<source>Local folder %1 does not exist.</source>
|
||||
<translation>Bertako %1 karpeta ez da existitzen.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="160"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="168"/>
|
||||
<source>%1 should be a directory but is not.</source>
|
||||
<translation>%1 karpeta bat izan behar zen baina ez da.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="163"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="171"/>
|
||||
<source>%1 is not readable.</source>
|
||||
<translation>%1 ezin da irakurri.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="316"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="323"/>
|
||||
<source>%1: %2</source>
|
||||
<translation>%1: %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="402"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="409"/>
|
||||
<source>%1 and %2 other files have been removed.</source>
|
||||
<comment>%1 names a file.</comment>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="404"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="411"/>
|
||||
<source>%1 has been removed.</source>
|
||||
<comment>%1 names a file.</comment>
|
||||
<translation type="unfinished"/>
|
||||
<translation>%1 ezabatua izan da.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="409"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="416"/>
|
||||
<source>%1 and %2 other files have been downloaded.</source>
|
||||
<comment>%1 names a file.</comment>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="411"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="418"/>
|
||||
<source>%1 has been downloaded.</source>
|
||||
<comment>%1 names a file.</comment>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="416"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="423"/>
|
||||
<source>%1 and %2 other files have been updated.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="418"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="425"/>
|
||||
<source>%1 has been updated.</source>
|
||||
<comment>%1 names a file.</comment>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="423"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="430"/>
|
||||
<source>%1 has been renamed to %2 and %3 other files have been renamed.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="425"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="432"/>
|
||||
<source>%1 has been renamed to %2.</source>
|
||||
<comment>%1 and %2 name files.</comment>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="430"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="437"/>
|
||||
<source>%1 has been moved to %2 and %3 other files have been moved.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="432"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="439"/>
|
||||
<source>%1 has been moved to %2.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>%1 %2-(e)ra mugitu da.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="440"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="447"/>
|
||||
<source>Sync Activity</source>
|
||||
<translation>Sinkronizazio Jarduerak</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="680"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="697"/>
|
||||
<source>This sync would remove all the files in the local sync folder '%1'.
|
||||
If you or your administrator have reset your account on the server, choose "Keep files". If you want your data to be removed, choose "Remove all files".</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="683"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="700"/>
|
||||
<source>This sync would remove all the files in the sync folder '%1'.
|
||||
This might be because the folder was silently reconfigured, or that all the file were manually removed.
|
||||
Are you sure you want to perform this operation?</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="687"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="704"/>
|
||||
<source>Remove All Files?</source>
|
||||
<translation>Ezabatu Fitxategi Guztiak?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="689"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="706"/>
|
||||
<source>Remove all files</source>
|
||||
<translation>Ezabatu fitxategi guztiak</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folder.cpp" line="690"/>
|
||||
<location filename="../src/mirall/folder.cpp" line="707"/>
|
||||
<source>Keep files</source>
|
||||
<translation>Mantendu fitxategiak</translation>
|
||||
</message>
|
||||
@@ -377,12 +377,12 @@ Are you sure you want to perform this operation?</source>
|
||||
<context>
|
||||
<name>Mirall::FolderMan</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/folderman.cpp" line="173"/>
|
||||
<location filename="../src/mirall/folderman.cpp" line="171"/>
|
||||
<source>Could not reset folder state</source>
|
||||
<translation>Ezin izan da karpetaren egoera berrezarri</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folderman.cpp" line="174"/>
|
||||
<location filename="../src/mirall/folderman.cpp" line="172"/>
|
||||
<source>An old sync journal '%1' was found, but could not be removed. Please make sure that no application is currently using it.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
@@ -509,7 +509,7 @@ Are you sure you want to perform this operation?</source>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/folderwizard.cpp" line="139"/>
|
||||
<source>The selected folder is a symbolic link. An already configuredfolder is contained in the folder this link is pointing to.</source>
|
||||
<source>The selected folder is a symbolic link. An already configured folder is contained in the folder this link is pointing to.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
@@ -593,15 +593,20 @@ Are you sure you want to perform this operation?</source>
|
||||
<context>
|
||||
<name>Mirall::GETFileJob</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="381"/>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="393"/>
|
||||
<source>No E-Tag received from server, check Proxy/Gateway</source>
|
||||
<translation>Ez da E-Tagik jaso zerbitzaritik, egiaztatu Proxy/Gateway</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="388"/>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="400"/>
|
||||
<source>We received a different E-Tag for resuming. Retrying next time.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="633"/>
|
||||
<source>Connection Timeout</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Mirall::GeneralSettings</name>
|
||||
@@ -650,12 +655,12 @@ Are you sure you want to perform this operation?</source>
|
||||
<context>
|
||||
<name>Mirall::HttpCredentials</name>
|
||||
<message>
|
||||
<location filename="../src/creds/httpcredentials.cpp" line="278"/>
|
||||
<location filename="../src/creds/httpcredentials.cpp" line="282"/>
|
||||
<source>Enter Password</source>
|
||||
<translation>Sartu Pasahitza</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/creds/httpcredentials.cpp" line="279"/>
|
||||
<location filename="../src/creds/httpcredentials.cpp" line="283"/>
|
||||
<source>Please enter %1 password for user '%2':</source>
|
||||
<translation>Mesedez sartu %1 pasahitza '%2' erabiltzailerako:</translation>
|
||||
</message>
|
||||
@@ -778,12 +783,12 @@ Markatutakoak ezabatuko dira karpeta bat ezabatzeko beharrezkoa bada. Hau meta d
|
||||
<context>
|
||||
<name>Mirall::Logger</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/logger.cpp" line="155"/>
|
||||
<location filename="../src/mirall/logger.cpp" line="146"/>
|
||||
<source>Error</source>
|
||||
<translation>Errorea</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/logger.cpp" line="156"/>
|
||||
<location filename="../src/mirall/logger.cpp" line="147"/>
|
||||
<source><nobr>File '%1'<br/>cannot be opened for writing.<br/><br/>The log output can <b>not</b> be saved!</nobr></source>
|
||||
<translation><nobr>'%1' Fitxategia<br/> ezin da idazteko ireki.<br/><br/>Egunkariaren irteera <b>ezin</b> da gorde!</nobr></translation>
|
||||
</message>
|
||||
@@ -1074,18 +1079,18 @@ It is not advisable to use it.</source>
|
||||
<context>
|
||||
<name>Mirall::OwncloudSetupWizard</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="357"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="360"/>
|
||||
<source>Folder rename failed</source>
|
||||
<translation>Karpetaren berrizendatzeak huts egin du</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="412"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="421"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="415"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="424"/>
|
||||
<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>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="192"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="193"/>
|
||||
<source>Trying to connect to %1 at %2...</source>
|
||||
<translation>%2 zerbitzarian dagoen %1 konektatzen...</translation>
|
||||
</message>
|
||||
@@ -1095,32 +1100,32 @@ It is not advisable to use it.</source>
|
||||
<translation><font color="green">Konexioa ongi burutu da %1 zerbitzarian: %2 bertsioa %3 (%4)</font><br/><br/></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="215"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="218"/>
|
||||
<source>Error: Wrong credentials.</source>
|
||||
<translation>Errorea: Kredentzial okerrak.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="229"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="232"/>
|
||||
<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/mirall/owncloudsetupwizard.cpp" line="231"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="234"/>
|
||||
<source>Creating local sync folder %1... </source>
|
||||
<translation>Bertako sinkronizazio %1 karpeta sortzen...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="235"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="238"/>
|
||||
<source>ok</source>
|
||||
<translation>ados</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="237"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="240"/>
|
||||
<source>failed.</source>
|
||||
<translation>huts egin du.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="239"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="242"/>
|
||||
<source>Could not create local folder %1</source>
|
||||
<translation>Ezin da %1 karpeta lokala sortu</translation>
|
||||
</message>
|
||||
@@ -1131,69 +1136,69 @@ It is not advisable to use it.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="264"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="267"/>
|
||||
<source>No remote folder specified!</source>
|
||||
<translation>Ez da urruneko karpeta zehaztu!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="270"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="273"/>
|
||||
<source>Error: %1</source>
|
||||
<translation>Errorea: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="283"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="286"/>
|
||||
<source>creating folder on ownCloud: %1</source>
|
||||
<translation>ownClouden karpeta sortzen: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="299"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="302"/>
|
||||
<source>Remote folder %1 created successfully.</source>
|
||||
<translation>Urruneko %1 karpeta ongi sortu da.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="301"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="304"/>
|
||||
<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/mirall/owncloudsetupwizard.cpp" line="303"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="305"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="306"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="308"/>
|
||||
<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/mirall/owncloudsetupwizard.cpp" line="307"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="310"/>
|
||||
<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/mirall/owncloudsetupwizard.cpp" line="310"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="313"/>
|
||||
<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/mirall/owncloudsetupwizard.cpp" line="315"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="316"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="318"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="319"/>
|
||||
<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/mirall/owncloudsetupwizard.cpp" line="332"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="335"/>
|
||||
<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/mirall/owncloudsetupwizard.cpp" line="337"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="340"/>
|
||||
<source>Successfully connected to %1!</source>
|
||||
<translation>%1-era ongi konektatu da!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="344"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="347"/>
|
||||
<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/mirall/owncloudsetupwizard.cpp" line="358"/>
|
||||
<location filename="../src/mirall/owncloudsetupwizard.cpp" line="361"/>
|
||||
<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>
|
||||
@@ -1234,6 +1239,14 @@ It is not advisable to use it.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Mirall::PUTFileJob</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="82"/>
|
||||
<source>Connection Timeout</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Mirall::PropagateDownloadFileLegacy</name>
|
||||
<message>
|
||||
@@ -1251,11 +1264,24 @@ It is not advisable to use it.</source>
|
||||
<source>We received a different E-Tag for resuming. Retrying next time.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_legacy.cpp" line="449"/>
|
||||
<source>File %1 can not be downloaded because of a local file name clash!</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Mirall::PropagateDownloadFileQNAM</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="443"/>
|
||||
<source>File %1 can not be downloaded because of a local file name clash!</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Mirall::PropagateItemJob</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudpropagator.cpp" line="150"/>
|
||||
<location filename="../src/mirall/owncloudpropagator.cpp" line="159"/>
|
||||
<source>A file or directory was removed from a read only share, but restoring failed: %1</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
@@ -1263,7 +1289,12 @@ It is not advisable to use it.</source>
|
||||
<context>
|
||||
<name>Mirall::PropagateLocalMkdir</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="109"/>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="114"/>
|
||||
<source>Attention, possible case sensitivity clash with %1</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="119"/>
|
||||
<source>could not create directory %1</source>
|
||||
<translation>Ezin izan da %1 karpeta sortu</translation>
|
||||
</message>
|
||||
@@ -1271,15 +1302,28 @@ It is not advisable to use it.</source>
|
||||
<context>
|
||||
<name>Mirall::PropagateLocalRemove</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="86"/>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="80"/>
|
||||
<source>Could not remove %1 because of a local file name clash</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="87"/>
|
||||
<source>Could not remove directory %1</source>
|
||||
<translation>Ezin izan da %1 karpeta ezabatu</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Mirall::PropagateLocalRename</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="196"/>
|
||||
<source>File %1 can not be renamed to %2 because of a local file name clash</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Mirall::PropagateRemoteRemove</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="129"/>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="139"/>
|
||||
<source>The file has been removed from a read only share. It was restored.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
@@ -1287,17 +1331,17 @@ It is not advisable to use it.</source>
|
||||
<context>
|
||||
<name>Mirall::PropagateRemoteRename</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="220"/>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="242"/>
|
||||
<source>This folder must not be renamed. It is renamed back to its original name.</source>
|
||||
<translation>Karpeta hau ezin da berrizendatu. Bere jatorrizko izenera berrizendatu da.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="222"/>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="244"/>
|
||||
<source>This folder must not be renamed. Please name it back to Shared.</source>
|
||||
<translation>Karpeta hau ezin da berrizendatu. Mesedez jarri berriz Shared izena.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="237"/>
|
||||
<location filename="../src/mirall/propagatorjobs.cpp" line="259"/>
|
||||
<source>The file was renamed but is part of a read only share. The original file was restored.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
@@ -1324,18 +1368,18 @@ It is not advisable to use it.</source>
|
||||
<context>
|
||||
<name>Mirall::PropagateUploadFileQNAM</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="241"/>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="247"/>
|
||||
<source>The file was edited locally but is part of a read only share. It is restored and your edit is in the conflict file.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="266"/>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="272"/>
|
||||
<source>Local file changed during sync.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="276"/>
|
||||
<source>The server did not aknoledge the last chunk. (No e-tag were present)</source>
|
||||
<location filename="../src/mirall/propagator_qnam.cpp" line="282"/>
|
||||
<source>The server did not acknowledge the last chunk. (No e-tag were present)</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
@@ -1460,27 +1504,27 @@ Saiatu horiek berriz sinkronizatzen.</translation>
|
||||
<context>
|
||||
<name>Mirall::SettingsDialogMac</name>
|
||||
<message>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="30"/>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="28"/>
|
||||
<source>%1</source>
|
||||
<translation>%1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="34"/>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="32"/>
|
||||
<source>Account</source>
|
||||
<translation>Kontua</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="38"/>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="36"/>
|
||||
<source>Activity</source>
|
||||
<translation>Jarduera</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="42"/>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="40"/>
|
||||
<source>General</source>
|
||||
<translation>Orokorra</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="46"/>
|
||||
<location filename="../src/mirall/settingsdialogmac.cpp" line="44"/>
|
||||
<source>Network</source>
|
||||
<translation>Sarea</translation>
|
||||
</message>
|
||||
@@ -1488,12 +1532,12 @@ Saiatu horiek berriz sinkronizatzen.</translation>
|
||||
<context>
|
||||
<name>Mirall::ShibbolethCredentials</name>
|
||||
<message>
|
||||
<location filename="../src/creds/shibbolethcredentials.cpp" line="299"/>
|
||||
<location filename="../src/creds/shibbolethcredentials.cpp" line="259"/>
|
||||
<source>Login Error</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/creds/shibbolethcredentials.cpp" line="299"/>
|
||||
<location filename="../src/creds/shibbolethcredentials.cpp" line="259"/>
|
||||
<source>You must sign in as user %1</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
@@ -1501,12 +1545,22 @@ Saiatu horiek berriz sinkronizatzen.</translation>
|
||||
<context>
|
||||
<name>Mirall::ShibbolethWebView</name>
|
||||
<message>
|
||||
<location filename="../src/creds/shibboleth/shibbolethwebview.cpp" line="58"/>
|
||||
<location filename="../src/creds/shibboleth/shibbolethwebview.cpp" line="56"/>
|
||||
<source>%1 - Authenticate</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/creds/shibboleth/shibbolethwebview.cpp" line="119"/>
|
||||
<location filename="../src/creds/shibboleth/shibbolethwebview.cpp" line="62"/>
|
||||
<source>Reauthentication required</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/creds/shibboleth/shibbolethwebview.cpp" line="62"/>
|
||||
<source>Your session has expired. You need to re-login to continue to use the client.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/creds/shibboleth/shibbolethwebview.cpp" line="101"/>
|
||||
<source>%1 - %2</source>
|
||||
<translation>%1 - %2</translation>
|
||||
</message>
|
||||
@@ -1521,7 +1575,7 @@ Saiatu horiek berriz sinkronizatzen.</translation>
|
||||
<message>
|
||||
<location filename="../src/mirall/sslbutton.cpp" line="99"/>
|
||||
<source>Common Name (CN):</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Izen Arrunta (IA):</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/sslbutton.cpp" line="100"/>
|
||||
@@ -1561,22 +1615,22 @@ Saiatu horiek berriz sinkronizatzen.</translation>
|
||||
<message>
|
||||
<location filename="../src/mirall/sslbutton.cpp" line="112"/>
|
||||
<source>Issuer:</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Jaulkitzailea:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/sslbutton.cpp" line="113"/>
|
||||
<source>Issued on:</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Jaulkitze-data:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/sslbutton.cpp" line="114"/>
|
||||
<source>Expires on:</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Iraungitze-data:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/sslbutton.cpp" line="117"/>
|
||||
<source><h3>Fingerprints</h3></source>
|
||||
<translation type="unfinished"/>
|
||||
<translation><h3>Hatz-markak</h3></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/sslbutton.cpp" line="121"/>
|
||||
@@ -1586,7 +1640,7 @@ Saiatu horiek berriz sinkronizatzen.</translation>
|
||||
<message>
|
||||
<location filename="../src/mirall/sslbutton.cpp" line="123"/>
|
||||
<source>SHA-256:</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>SHA-256:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/sslbutton.cpp" line="125"/>
|
||||
@@ -1617,7 +1671,7 @@ Saiatu horiek berriz sinkronizatzen.</translation>
|
||||
<message>
|
||||
<location filename="../src/mirall/sslbutton.cpp" line="185"/>
|
||||
<source>Certificate information:</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Ziurtagiriaren informazioa:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/sslbutton.cpp" line="214"/>
|
||||
@@ -1879,12 +1933,12 @@ Saiatu horiek berriz sinkronizatzen.</translation>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/syncengine.cpp" line="451"/>
|
||||
<location filename="../src/mirall/syncengine.cpp" line="448"/>
|
||||
<source>Unable to initialize a sync journal.</source>
|
||||
<translation>Ezin izan da sinkronizazio egunerokoa hasieratu.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/syncengine.cpp" line="550"/>
|
||||
<location filename="../src/mirall/syncengine.cpp" line="545"/>
|
||||
<source>Cannot open the sync journal</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
@@ -2020,7 +2074,7 @@ Saiatu horiek berriz sinkronizatzen.</translation>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudgui.cpp" line="426"/>
|
||||
<source>%1 (%2, %3)</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>%1 (%2, %3)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/owncloudgui.cpp" line="453"/>
|
||||
@@ -2255,12 +2309,12 @@ Saiatu horiek berriz sinkronizatzen.</translation>
|
||||
<context>
|
||||
<name>main.cpp</name>
|
||||
<message>
|
||||
<location filename="../src/main.cpp" line="30"/>
|
||||
<location filename="../src/main.cpp" line="38"/>
|
||||
<source>System Tray not available</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/main.cpp" line="31"/>
|
||||
<location filename="../src/main.cpp" line="39"/>
|
||||
<source>%1 requires on a working system tray. If you are running XFCE, please follow <a href="http://docs.xfce.org/xfce/xfce4-panel/systray">these instructions</a>. Otherwise, please install a system tray application such as 'trayer' and try again.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
@@ -2343,12 +2397,12 @@ Saiatu horiek berriz sinkronizatzen.</translation>
|
||||
<message>
|
||||
<location filename="../src/mirall/progressdispatcher.cpp" line="66"/>
|
||||
<source>deleting</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>ezabatzen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/progressdispatcher.cpp" line="69"/>
|
||||
<source>moving</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>mugitzen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/mirall/progressdispatcher.cpp" line="71"/>
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user