diff options
author | Sergio Bertolín <sbertolin@solidgear.es> | 2015-11-05 12:43:22 +0100 |
---|---|---|
committer | Sergio Bertolín <sbertolin@solidgear.es> | 2015-11-05 12:43:22 +0100 |
commit | eec7d2764c3248febe27d6b452a0ac5a47e83a69 (patch) | |
tree | da86fceef784620f16f958dded3fceb4bf44dfc0 | |
parent | 1a51d4c4c715a0f30d9a91793b78702f18cd94bc (diff) | |
parent | 8bffc847665a4f4891a5594896420e2be8c37394 (diff) | |
download | nextcloud-server-eec7d2764c3248febe27d6b452a0ac5a47e83a69.tar.gz nextcloud-server-eec7d2764c3248febe27d6b452a0ac5a47e83a69.zip |
Merge branch 'master' into sharing-api-adding-tests
94 files changed, 686 insertions, 294 deletions
diff --git a/README.md b/README.md index 7e1a9fbc78b..4dfa36237bb 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,7 @@ Git master: [](https://scrutinizer-ci.com/g/owncloud/core/) - CodeClimate: [](https://codeclimate.com/github/owncloud/core) + - Coverity: [](https://scan.coverity.com/projects/owncloud-core) Dependencies: diff --git a/apps/dav/lib/connector/sabre/tagsplugin.php b/apps/dav/lib/connector/sabre/tagsplugin.php index 7446d97790b..2f5937da25a 100644 --- a/apps/dav/lib/connector/sabre/tagsplugin.php +++ b/apps/dav/lib/connector/sabre/tagsplugin.php @@ -108,7 +108,7 @@ class TagsPlugin extends \Sabre\DAV\ServerPlugin public function initialize(\Sabre\DAV\Server $server) { $server->xmlNamespaces[self::NS_OWNCLOUD] = 'oc'; - $server->propertyMap[self::TAGS_PROPERTYNAME] = 'OC\\Connector\\Sabre\\TagList'; + $server->propertyMap[self::TAGS_PROPERTYNAME] = 'OCA\\DAV\\Connector\\Sabre\\TagList'; $this->server = $server; $this->server->on('propFind', array($this, 'handleGetProperties')); diff --git a/apps/encryption/l10n/el.js b/apps/encryption/l10n/el.js index d27098ddb04..509e217a806 100644 --- a/apps/encryption/l10n/el.js +++ b/apps/encryption/l10n/el.js @@ -32,6 +32,8 @@ OC.L10N.register( "The share will expire on %s." : "Ο διαμοιρασμός θα λήξει σε %s.", "Cheers!" : "Χαιρετισμούς!", "Hey there,<br><br>the admin enabled server-side-encryption. Your files were encrypted using the password <strong>%s</strong>.<br><br>Please login to the web interface, go to the section \"ownCloud basic encryption module\" of your personal settings and update your encryption password by entering this password into the \"old log-in password\" field and your current login-password.<br><br>" : "Χαίρετε,<br><br>ο διαχειριστής ενεργοποίησε την κρυπτογράφηση στο διακομιστή. Τα αρχεία σας κρυπτογραφήθηκαν με τον κωδικό <strong>%s</strong>.<br><br>Παρακαλούμε συνδεθείτε στη διεπαφή ιστού, πηγαίνετε στην ενότητα \"μονάδα βασικής κρυπτογράφησης ownCloud\" τωνπ ροσωπικών σας ρυθμίσεων και ενημερώστε τον κωδικό κρυπτογράφησης εισάγοντας αυτό τον κωδικό στο πεδίο \"παλιός κωδικός σύνδεσης\" και τον τωρινό σας κωδικό σύνδεσης.", + "Encrypt the home storage" : "Κρυπτογράφηση του κεντρικού χώρου αποθήκευσης", + "Enabling this option encrypts all files stored on the main storage, otherwise only files on external storage will be encrypted" : "Η ενεργοποίηση αυτή της επιλογής κρυπτογραφεί όλα τα αρχεία που βρίσκονται στον κύριο αποθηκευτικό χώρο, αλλιώς μόνο τα αρχεία σε εξωτερικούς αποθηκευτικούς χώρους θα κρυπτογραφηθούν.", "Enable recovery key" : "Ενεργοποίηση κλειδιού ανάκτησης", "Disable recovery key" : "Απενεργοποίηση κλειδιού ανάκτησης", "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "Το κλειδί ανάκτησης είναι ένα επιπλέον κλειδί κρυπτογράφησης που χρησιμοποιείται για να κρυπτογραφήσει αρχεία. Επιτρέπει την ανάκτηση των αρχείων ενός χρήστη αν αυτός/αυτή ξεχάσει τον κωδικό πρόσβασης.", diff --git a/apps/encryption/l10n/el.json b/apps/encryption/l10n/el.json index 3ed5e39b7c0..954d7490ce0 100644 --- a/apps/encryption/l10n/el.json +++ b/apps/encryption/l10n/el.json @@ -30,6 +30,8 @@ "The share will expire on %s." : "Ο διαμοιρασμός θα λήξει σε %s.", "Cheers!" : "Χαιρετισμούς!", "Hey there,<br><br>the admin enabled server-side-encryption. Your files were encrypted using the password <strong>%s</strong>.<br><br>Please login to the web interface, go to the section \"ownCloud basic encryption module\" of your personal settings and update your encryption password by entering this password into the \"old log-in password\" field and your current login-password.<br><br>" : "Χαίρετε,<br><br>ο διαχειριστής ενεργοποίησε την κρυπτογράφηση στο διακομιστή. Τα αρχεία σας κρυπτογραφήθηκαν με τον κωδικό <strong>%s</strong>.<br><br>Παρακαλούμε συνδεθείτε στη διεπαφή ιστού, πηγαίνετε στην ενότητα \"μονάδα βασικής κρυπτογράφησης ownCloud\" τωνπ ροσωπικών σας ρυθμίσεων και ενημερώστε τον κωδικό κρυπτογράφησης εισάγοντας αυτό τον κωδικό στο πεδίο \"παλιός κωδικός σύνδεσης\" και τον τωρινό σας κωδικό σύνδεσης.", + "Encrypt the home storage" : "Κρυπτογράφηση του κεντρικού χώρου αποθήκευσης", + "Enabling this option encrypts all files stored on the main storage, otherwise only files on external storage will be encrypted" : "Η ενεργοποίηση αυτή της επιλογής κρυπτογραφεί όλα τα αρχεία που βρίσκονται στον κύριο αποθηκευτικό χώρο, αλλιώς μόνο τα αρχεία σε εξωτερικούς αποθηκευτικούς χώρους θα κρυπτογραφηθούν.", "Enable recovery key" : "Ενεργοποίηση κλειδιού ανάκτησης", "Disable recovery key" : "Απενεργοποίηση κλειδιού ανάκτησης", "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "Το κλειδί ανάκτησης είναι ένα επιπλέον κλειδί κρυπτογράφησης που χρησιμοποιείται για να κρυπτογραφήσει αρχεία. Επιτρέπει την ανάκτηση των αρχείων ενός χρήστη αν αυτός/αυτή ξεχάσει τον κωδικό πρόσβασης.", diff --git a/apps/encryption/l10n/oc.js b/apps/encryption/l10n/oc.js index 8715fd378b8..db54a83db5e 100644 --- a/apps/encryption/l10n/oc.js +++ b/apps/encryption/l10n/oc.js @@ -2,7 +2,7 @@ OC.L10N.register( "encryption", { "Missing recovery key password" : "Senhal de la clau de recuperacion mancant", - "Please repeat the recovery key password" : "Répétez lo senhal de la clau de recuperacion", + "Please repeat the recovery key password" : "Repetètz lo senhal de la clau de recuperacion", "Repeated recovery key password does not match the provided recovery key password" : "Lo senhal de la clau de recuperacion e sa repeticion son pas identics.", "Recovery key successfully enabled" : "Clau de recuperacion activada amb succès", "Could not enable recovery key. Please check your recovery key password!" : "Impossible d'activar la clau de recuperacion. Verificatz lo senhal de vòstra clau de recuperacion !", @@ -25,10 +25,15 @@ OC.L10N.register( "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Vòstra clau privada pel chiframent es pas valida ! Metètz a jorn lo senhal de vòstra clau privada dins vòstres paramètres personals per recuperar l'accès a vòstres fichièrs chifrats.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'aplicacion de chiframent es activada mas vòstras claus son pas inicializadas. Desconnectatz-vos e puèi reconnectatz-vos.", "Encryption App is enabled and ready" : "L'aplicacion de chiframent es activada e prèsta", + "one-time password for server-side-encryption" : "Senhal d'usatge unic pel chiframent costat servidor", "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Impossible de deschifrar aqueste fichièr : s'agís probablament d'un fichièr partejat. Demandatz al proprietari del fichièr de lo partejar tornamai amb vos.", "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Impossible de legir aqueste fichièr, s'agís probablament d'un fichièr partejat. Demandatz al proprietari del fichièr de lo repartejar amb vos. ", + "Hey there,\n\nthe admin enabled server-side-encryption. Your files were encrypted using the password '%s'.\n\nPlease login to the web interface, go to the section 'ownCloud basic encryption module' of your personal settings and update your encryption password by entering this password into the 'old log-in password' field and your current login-password.\n\n" : "Bonjorn,\n\nL'administrator a activat lo chiframent sul servidor. Vòstres fichièrs son estats chifrats amb lo senhal seguent :\n\n%s\n\nSeguissètz aquelas instruccions :\n\n1. Connectatz-vos a l'interfàcia web e trobatz la seccion \"Modul de chiframent de basa d'ownCloud\" dins vòstres paramètres personals ;\n\n2. Entratz lo senhal provesit çaisús dins lo camp \"Ancian senhal de connexion\";\n\n3. Entratz lo senhal qu'utilizatz actualament per vos connectar dins lo camp \"Senhal de connexion actual\" ;\n\n4. Validatz en clicant sul boton \"Metre a jorn lo senhal de vòstra clau privada\".\n", "The share will expire on %s." : "Lo partiment expirarà lo %s.", "Cheers!" : "A lèu !", + "Hey there,<br><br>the admin enabled server-side-encryption. Your files were encrypted using the password <strong>%s</strong>.<br><br>Please login to the web interface, go to the section \"ownCloud basic encryption module\" of your personal settings and update your encryption password by entering this password into the \"old log-in password\" field and your current login-password.<br><br>" : "Bonjorn,\n<br><br>\nL'administrator a activat lo chiframent sul servidor. Vòstres fichièrs son estats chifrats amb lo senhal seguent :\n\n<p style=\"font-family: monospace;\"><b>%s</b></p>\n\n<p>\nSeguissètz aquelas instruccions :\n<ol>\n<li>Connectatz-vos a l'interfàcia web e trobatz la seccion <em>\"Modul de chiframent de basa d'ownCloud\"</em> dins vòstres paramètres personals;</li>\n<li>Entratz lo senhal provesit çaisús dins lo camp <em>\"Ancian senhal de connexion\"</em>;</li>\n<li>Entratz lo senhal qu'utilizatz actualament per vos connectar dins lo camp <em>\"Senhal de connexion actual\"</em>;</li>\n<li>Validatz en clicant sul boton <em>\"Metre a jorn lo senhal de vòstra clau privada\"</em>.</li>\n</ol>\n</p>", + "Encrypt the home storage" : "Chifrar l'espaci d'emmagazinatge principal", + "Enabling this option encrypts all files stored on the main storage, otherwise only files on external storage will be encrypted" : "L'activacion d'aquesta opcion chifra totes los fichièrs de l'emmagazinatge principal, siquenon sols los espacis d'emmagazinatge extèrnes seràn chifrats", "Enable recovery key" : "Activar la clau de recuperacion", "Disable recovery key" : "Desactivar la clau de recuperacion", "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "La clau de recuperacion es una clau suplementària utilizada per chifrar los fichièrs. Permet de recuperar los fichièrs dels utilizaires se doblidan lor senhal.", diff --git a/apps/encryption/l10n/oc.json b/apps/encryption/l10n/oc.json index ec4406dd77e..27e9a20f63d 100644 --- a/apps/encryption/l10n/oc.json +++ b/apps/encryption/l10n/oc.json @@ -1,6 +1,6 @@ { "translations": { "Missing recovery key password" : "Senhal de la clau de recuperacion mancant", - "Please repeat the recovery key password" : "Répétez lo senhal de la clau de recuperacion", + "Please repeat the recovery key password" : "Repetètz lo senhal de la clau de recuperacion", "Repeated recovery key password does not match the provided recovery key password" : "Lo senhal de la clau de recuperacion e sa repeticion son pas identics.", "Recovery key successfully enabled" : "Clau de recuperacion activada amb succès", "Could not enable recovery key. Please check your recovery key password!" : "Impossible d'activar la clau de recuperacion. Verificatz lo senhal de vòstra clau de recuperacion !", @@ -23,10 +23,15 @@ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Vòstra clau privada pel chiframent es pas valida ! Metètz a jorn lo senhal de vòstra clau privada dins vòstres paramètres personals per recuperar l'accès a vòstres fichièrs chifrats.", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'aplicacion de chiframent es activada mas vòstras claus son pas inicializadas. Desconnectatz-vos e puèi reconnectatz-vos.", "Encryption App is enabled and ready" : "L'aplicacion de chiframent es activada e prèsta", + "one-time password for server-side-encryption" : "Senhal d'usatge unic pel chiframent costat servidor", "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Impossible de deschifrar aqueste fichièr : s'agís probablament d'un fichièr partejat. Demandatz al proprietari del fichièr de lo partejar tornamai amb vos.", "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Impossible de legir aqueste fichièr, s'agís probablament d'un fichièr partejat. Demandatz al proprietari del fichièr de lo repartejar amb vos. ", + "Hey there,\n\nthe admin enabled server-side-encryption. Your files were encrypted using the password '%s'.\n\nPlease login to the web interface, go to the section 'ownCloud basic encryption module' of your personal settings and update your encryption password by entering this password into the 'old log-in password' field and your current login-password.\n\n" : "Bonjorn,\n\nL'administrator a activat lo chiframent sul servidor. Vòstres fichièrs son estats chifrats amb lo senhal seguent :\n\n%s\n\nSeguissètz aquelas instruccions :\n\n1. Connectatz-vos a l'interfàcia web e trobatz la seccion \"Modul de chiframent de basa d'ownCloud\" dins vòstres paramètres personals ;\n\n2. Entratz lo senhal provesit çaisús dins lo camp \"Ancian senhal de connexion\";\n\n3. Entratz lo senhal qu'utilizatz actualament per vos connectar dins lo camp \"Senhal de connexion actual\" ;\n\n4. Validatz en clicant sul boton \"Metre a jorn lo senhal de vòstra clau privada\".\n", "The share will expire on %s." : "Lo partiment expirarà lo %s.", "Cheers!" : "A lèu !", + "Hey there,<br><br>the admin enabled server-side-encryption. Your files were encrypted using the password <strong>%s</strong>.<br><br>Please login to the web interface, go to the section \"ownCloud basic encryption module\" of your personal settings and update your encryption password by entering this password into the \"old log-in password\" field and your current login-password.<br><br>" : "Bonjorn,\n<br><br>\nL'administrator a activat lo chiframent sul servidor. Vòstres fichièrs son estats chifrats amb lo senhal seguent :\n\n<p style=\"font-family: monospace;\"><b>%s</b></p>\n\n<p>\nSeguissètz aquelas instruccions :\n<ol>\n<li>Connectatz-vos a l'interfàcia web e trobatz la seccion <em>\"Modul de chiframent de basa d'ownCloud\"</em> dins vòstres paramètres personals;</li>\n<li>Entratz lo senhal provesit çaisús dins lo camp <em>\"Ancian senhal de connexion\"</em>;</li>\n<li>Entratz lo senhal qu'utilizatz actualament per vos connectar dins lo camp <em>\"Senhal de connexion actual\"</em>;</li>\n<li>Validatz en clicant sul boton <em>\"Metre a jorn lo senhal de vòstra clau privada\"</em>.</li>\n</ol>\n</p>", + "Encrypt the home storage" : "Chifrar l'espaci d'emmagazinatge principal", + "Enabling this option encrypts all files stored on the main storage, otherwise only files on external storage will be encrypted" : "L'activacion d'aquesta opcion chifra totes los fichièrs de l'emmagazinatge principal, siquenon sols los espacis d'emmagazinatge extèrnes seràn chifrats", "Enable recovery key" : "Activar la clau de recuperacion", "Disable recovery key" : "Desactivar la clau de recuperacion", "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "La clau de recuperacion es una clau suplementària utilizada per chifrar los fichièrs. Permet de recuperar los fichièrs dels utilizaires se doblidan lor senhal.", diff --git a/apps/encryption/lib/util.php b/apps/encryption/lib/util.php index 62c9dc6dc5f..62907f8a460 100644 --- a/apps/encryption/lib/util.php +++ b/apps/encryption/lib/util.php @@ -115,7 +115,7 @@ class Util { } /** - * check if the home storage should be encrypted + * set the home storage encryption on/off * * @param bool $encryptHomeStorage */ diff --git a/apps/files/l10n/da.js b/apps/files/l10n/da.js index 84d342e85d9..4f8cd7ab497 100644 --- a/apps/files/l10n/da.js +++ b/apps/files/l10n/da.js @@ -30,10 +30,10 @@ OC.L10N.register( "Favorites" : "Foretrukne", "Home" : "Hjemme", "Close" : "Luk", + "Upload cancelled." : "Upload afbrudt.", "Unable to upload {filename} as it is a directory or has 0 bytes" : "Kan ikke upload {filename} da det er enten en mappe eller indholder 0 bytes.", "Total file size {size1} exceeds upload limit {size2}" : "Den totale filstørrelse {size1} er større end uploadgrænsen {size2}", "Not enough free space, you are uploading {size1} but only {size2} is left" : "Der er ikke tilstrækkeligt friplads. Du uplaoder {size1} men der er kun {size2} tilbage", - "Upload cancelled." : "Upload afbrudt.", "Could not get result from server." : "Kunne ikke hente resultat fra server.", "File upload is in progress. Leaving the page now will cancel the upload." : "Fil upload kører. Hvis du forlader siden nu, vil uploadet blive annuleret.", "Actions" : "Handlinger", @@ -75,12 +75,12 @@ OC.L10N.register( "_%n byte_::_%n bytes_" : ["%n byte","%n bytes"], "Favorited" : "Gjort til foretrukken", "Favorite" : "Foretrukken", - "{newname} already exists" : "{newname} eksistere allerede", - "Upload" : "Upload", "Text file" : "Tekstfil", "New text file.txt" : "Ny tekst file.txt", "Folder" : "Mappe", "New folder" : "Ny Mappe", + "{newname} already exists" : "{newname} eksistere allerede", + "Upload" : "Upload", "An error occurred while trying to update the tags" : "Der opstod en fejl under forsøg på at opdatere mærkerne", "A new file or folder has been <strong>created</strong>" : "En ny fil eller mapper er blevet <strong>oprettet</strong>", "A file or folder has been <strong>changed</strong>" : "En fil eller mappe er blevet <strong>ændret</strong>", @@ -96,6 +96,9 @@ OC.L10N.register( "%2$s deleted %1$s" : "%2$s slettede %1$s", "You restored %1$s" : "Du gendannede %1$s", "%2$s restored %1$s" : "%2$s gendannede %1$s", + "Changed by %2$s" : "Ændret af %2$s", + "Deleted by %2$s" : "Slettet af %2$s", + "Restored by %2$s" : "Gendannet af %2$s", "%s could not be renamed as it has been deleted" : "%s kunne ikke omdøbes, da den er blevet slettet", "%s could not be renamed" : "%s kunne ikke omdøbes", "Upload (max. %s)" : "Upload (max. %s)", diff --git a/apps/files/l10n/da.json b/apps/files/l10n/da.json index 53de8656af2..d0fe2575d3e 100644 --- a/apps/files/l10n/da.json +++ b/apps/files/l10n/da.json @@ -28,10 +28,10 @@ "Favorites" : "Foretrukne", "Home" : "Hjemme", "Close" : "Luk", + "Upload cancelled." : "Upload afbrudt.", "Unable to upload {filename} as it is a directory or has 0 bytes" : "Kan ikke upload {filename} da det er enten en mappe eller indholder 0 bytes.", "Total file size {size1} exceeds upload limit {size2}" : "Den totale filstørrelse {size1} er større end uploadgrænsen {size2}", "Not enough free space, you are uploading {size1} but only {size2} is left" : "Der er ikke tilstrækkeligt friplads. Du uplaoder {size1} men der er kun {size2} tilbage", - "Upload cancelled." : "Upload afbrudt.", "Could not get result from server." : "Kunne ikke hente resultat fra server.", "File upload is in progress. Leaving the page now will cancel the upload." : "Fil upload kører. Hvis du forlader siden nu, vil uploadet blive annuleret.", "Actions" : "Handlinger", @@ -73,12 +73,12 @@ "_%n byte_::_%n bytes_" : ["%n byte","%n bytes"], "Favorited" : "Gjort til foretrukken", "Favorite" : "Foretrukken", - "{newname} already exists" : "{newname} eksistere allerede", - "Upload" : "Upload", "Text file" : "Tekstfil", "New text file.txt" : "Ny tekst file.txt", "Folder" : "Mappe", "New folder" : "Ny Mappe", + "{newname} already exists" : "{newname} eksistere allerede", + "Upload" : "Upload", "An error occurred while trying to update the tags" : "Der opstod en fejl under forsøg på at opdatere mærkerne", "A new file or folder has been <strong>created</strong>" : "En ny fil eller mapper er blevet <strong>oprettet</strong>", "A file or folder has been <strong>changed</strong>" : "En fil eller mappe er blevet <strong>ændret</strong>", @@ -94,6 +94,9 @@ "%2$s deleted %1$s" : "%2$s slettede %1$s", "You restored %1$s" : "Du gendannede %1$s", "%2$s restored %1$s" : "%2$s gendannede %1$s", + "Changed by %2$s" : "Ændret af %2$s", + "Deleted by %2$s" : "Slettet af %2$s", + "Restored by %2$s" : "Gendannet af %2$s", "%s could not be renamed as it has been deleted" : "%s kunne ikke omdøbes, da den er blevet slettet", "%s could not be renamed" : "%s kunne ikke omdøbes", "Upload (max. %s)" : "Upload (max. %s)", diff --git a/apps/files/l10n/lt_LT.js b/apps/files/l10n/lt_LT.js index 063789aae5b..f2ea62593c1 100644 --- a/apps/files/l10n/lt_LT.js +++ b/apps/files/l10n/lt_LT.js @@ -30,10 +30,10 @@ OC.L10N.register( "Favorites" : "Mėgstamiausi", "Home" : "Namų", "Close" : "Užverti", + "Upload cancelled." : "Įkėlimas atšauktas.", "Unable to upload {filename} as it is a directory or has 0 bytes" : "Nepavyksta įkelti {filename}, nes tai katalogas arba yra 0 baitų dydžio", "Total file size {size1} exceeds upload limit {size2}" : "Visas failo dydis {size1} viršyja įkėlimo limitą {size2}", "Not enough free space, you are uploading {size1} but only {size2} is left" : "Nepakanka laisvos vietos. Keliate {size1}, bet tik {size2} yra likę", - "Upload cancelled." : "Įkėlimas atšauktas.", "Could not get result from server." : "Nepavyko gauti rezultato iš serverio.", "File upload is in progress. Leaving the page now will cancel the upload." : "Failo įkėlimas pradėtas. Jei paliksite šį puslapį, įkėlimas nutrūks.", "Actions" : "Veiksmai", @@ -71,12 +71,16 @@ OC.L10N.register( "Storage of {owner} is almost full ({usedSpacePercent}%)" : "{owner} saugykla yra beveik pilna ({usedSpacePercent}%)", "Your storage is almost full ({usedSpacePercent}%)" : "Jūsų vieta serveryje beveik visa užimta ({usedSpacePercent}%)", "_matches '{filter}'_::_match '{filter}'_" : ["atitikmuo „{filter}“","atitikmenys „{filter}“","atitikmenų „{filter}“"], + "Path" : "Kelias", + "_%n byte_::_%n bytes_" : ["%n baitas","%n baitai","%n baitų"], "Favorited" : "Pažymėta mėgstamu", "Favorite" : "Mėgiamas", - "Upload" : "Įkelti", "Text file" : "Teksto failas", + "New text file.txt" : "Naujas tekstas file.txt", "Folder" : "Katalogas", "New folder" : "Naujas aplankas", + "{newname} already exists" : "{newname} jau egzistuoja", + "Upload" : "Įkelti", "An error occurred while trying to update the tags" : "Bandant atnaujinti žymes įvyko klaida", "A new file or folder has been <strong>created</strong>" : "Naujas failas ar aplankas buvo <strong>sukurtas</strong>", "A file or folder has been <strong>changed</strong>" : "Failas ar aplankas buvo <strong>pakeistas</strong>", @@ -92,12 +96,16 @@ OC.L10N.register( "%2$s deleted %1$s" : "%2$s ištrynė %1$s", "You restored %1$s" : "Jūs atkūrėte %1$s", "%2$s restored %1$s" : "%2$s atkurta %1$s", + "Changed by %2$s" : "Pakeitė %2$s", + "Deleted by %2$s" : "Ištrynė %2$s", + "Restored by %2$s" : "Atkūrė %2$s", "%s could not be renamed as it has been deleted" : "%s negalėjo būti pervadintas, nes buvo ištrintas", "%s could not be renamed" : "%s negali būti pervadintas", "Upload (max. %s)" : "Įkelti (maks. %s)", "File handling" : "Failų tvarkymas", "Maximum upload size" : "Maksimalus įkeliamo failo dydis", "max. possible: " : "maks. galima:", + "With PHP-FPM this value may take up to 5 minutes to take effect after saving." : "Su PHP-FPM reikšmės atnaujinimas gali užtrukti iki 5 minučių po pakeitimo.", "Save" : "Išsaugoti", "Can not be edited from here due to insufficient permissions." : "Negali būti redaguojamas iš čia dėl leidimų trūkumo.", "Settings" : "Nustatymai", diff --git a/apps/files/l10n/lt_LT.json b/apps/files/l10n/lt_LT.json index d7aa2cc9c35..56455896282 100644 --- a/apps/files/l10n/lt_LT.json +++ b/apps/files/l10n/lt_LT.json @@ -28,10 +28,10 @@ "Favorites" : "Mėgstamiausi", "Home" : "Namų", "Close" : "Užverti", + "Upload cancelled." : "Įkėlimas atšauktas.", "Unable to upload {filename} as it is a directory or has 0 bytes" : "Nepavyksta įkelti {filename}, nes tai katalogas arba yra 0 baitų dydžio", "Total file size {size1} exceeds upload limit {size2}" : "Visas failo dydis {size1} viršyja įkėlimo limitą {size2}", "Not enough free space, you are uploading {size1} but only {size2} is left" : "Nepakanka laisvos vietos. Keliate {size1}, bet tik {size2} yra likę", - "Upload cancelled." : "Įkėlimas atšauktas.", "Could not get result from server." : "Nepavyko gauti rezultato iš serverio.", "File upload is in progress. Leaving the page now will cancel the upload." : "Failo įkėlimas pradėtas. Jei paliksite šį puslapį, įkėlimas nutrūks.", "Actions" : "Veiksmai", @@ -69,12 +69,16 @@ "Storage of {owner} is almost full ({usedSpacePercent}%)" : "{owner} saugykla yra beveik pilna ({usedSpacePercent}%)", "Your storage is almost full ({usedSpacePercent}%)" : "Jūsų vieta serveryje beveik visa užimta ({usedSpacePercent}%)", "_matches '{filter}'_::_match '{filter}'_" : ["atitikmuo „{filter}“","atitikmenys „{filter}“","atitikmenų „{filter}“"], + "Path" : "Kelias", + "_%n byte_::_%n bytes_" : ["%n baitas","%n baitai","%n baitų"], "Favorited" : "Pažymėta mėgstamu", "Favorite" : "Mėgiamas", - "Upload" : "Įkelti", "Text file" : "Teksto failas", + "New text file.txt" : "Naujas tekstas file.txt", "Folder" : "Katalogas", "New folder" : "Naujas aplankas", + "{newname} already exists" : "{newname} jau egzistuoja", + "Upload" : "Įkelti", "An error occurred while trying to update the tags" : "Bandant atnaujinti žymes įvyko klaida", "A new file or folder has been <strong>created</strong>" : "Naujas failas ar aplankas buvo <strong>sukurtas</strong>", "A file or folder has been <strong>changed</strong>" : "Failas ar aplankas buvo <strong>pakeistas</strong>", @@ -90,12 +94,16 @@ "%2$s deleted %1$s" : "%2$s ištrynė %1$s", "You restored %1$s" : "Jūs atkūrėte %1$s", "%2$s restored %1$s" : "%2$s atkurta %1$s", + "Changed by %2$s" : "Pakeitė %2$s", + "Deleted by %2$s" : "Ištrynė %2$s", + "Restored by %2$s" : "Atkūrė %2$s", "%s could not be renamed as it has been deleted" : "%s negalėjo būti pervadintas, nes buvo ištrintas", "%s could not be renamed" : "%s negali būti pervadintas", "Upload (max. %s)" : "Įkelti (maks. %s)", "File handling" : "Failų tvarkymas", "Maximum upload size" : "Maksimalus įkeliamo failo dydis", "max. possible: " : "maks. galima:", + "With PHP-FPM this value may take up to 5 minutes to take effect after saving." : "Su PHP-FPM reikšmės atnaujinimas gali užtrukti iki 5 minučių po pakeitimo.", "Save" : "Išsaugoti", "Can not be edited from here due to insufficient permissions." : "Negali būti redaguojamas iš čia dėl leidimų trūkumo.", "Settings" : "Nustatymai", diff --git a/apps/files_external/l10n/cs_CZ.js b/apps/files_external/l10n/cs_CZ.js index 1c655bfc990..5ede97f70db 100644 --- a/apps/files_external/l10n/cs_CZ.js +++ b/apps/files_external/l10n/cs_CZ.js @@ -100,7 +100,7 @@ OC.L10N.register( "Advanced settings" : "Pokročilá nastavení", "Delete" : "Smazat", "Add storage" : "Přidat úložiště", - "Allow users to mount external storages" : "Povolit uživatelům připojení externích úložišť", + "Allow users to mount external storage" : "Povolit uživatelům připojení externího úložiště", "Allow users to mount the following external storage" : "Povolit uživatelů připojit následující externí úložiště" }, "nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"); diff --git a/apps/files_external/l10n/cs_CZ.json b/apps/files_external/l10n/cs_CZ.json index 50d12af8052..d15e2424bc7 100644 --- a/apps/files_external/l10n/cs_CZ.json +++ b/apps/files_external/l10n/cs_CZ.json @@ -98,7 +98,7 @@ "Advanced settings" : "Pokročilá nastavení", "Delete" : "Smazat", "Add storage" : "Přidat úložiště", - "Allow users to mount external storages" : "Povolit uživatelům připojení externích úložišť", + "Allow users to mount external storage" : "Povolit uživatelům připojení externího úložiště", "Allow users to mount the following external storage" : "Povolit uživatelů připojit následující externí úložiště" },"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;" }
\ No newline at end of file diff --git a/apps/files_external/l10n/el.js b/apps/files_external/l10n/el.js index 8b4d089a964..df3bdcedcfd 100644 --- a/apps/files_external/l10n/el.js +++ b/apps/files_external/l10n/el.js @@ -16,6 +16,7 @@ OC.L10N.register( "Not permitted to use authentication mechanism \"%s\"" : "Μη επιτρεπόμενος μηχανισμός πιστοποίησης \"%s\"", "Unsatisfied backend parameters" : "Ελλιπείς παράμετροι συστήματος", "Unsatisfied authentication mechanism parameters" : "Ελλιπείς παράμετροι μηχανισμού πιστοποίησης", + "Insufficient data: %s" : "Μη επαρκή δεδομένα: %s", "Personal" : "Προσωπικά", "System" : "Σύστημα", "Grant access" : "Παροχή πρόσβασης", diff --git a/apps/files_external/l10n/el.json b/apps/files_external/l10n/el.json index 74a9aa298ef..ee5131b9f64 100644 --- a/apps/files_external/l10n/el.json +++ b/apps/files_external/l10n/el.json @@ -14,6 +14,7 @@ "Not permitted to use authentication mechanism \"%s\"" : "Μη επιτρεπόμενος μηχανισμός πιστοποίησης \"%s\"", "Unsatisfied backend parameters" : "Ελλιπείς παράμετροι συστήματος", "Unsatisfied authentication mechanism parameters" : "Ελλιπείς παράμετροι μηχανισμού πιστοποίησης", + "Insufficient data: %s" : "Μη επαρκή δεδομένα: %s", "Personal" : "Προσωπικά", "System" : "Σύστημα", "Grant access" : "Παροχή πρόσβασης", diff --git a/apps/files_external/l10n/es.js b/apps/files_external/l10n/es.js index cb31cd7c53f..5415e8963cd 100644 --- a/apps/files_external/l10n/es.js +++ b/apps/files_external/l10n/es.js @@ -88,7 +88,6 @@ OC.L10N.register( "Advanced settings" : "Configuración avanzada", "Delete" : "Eliminar", "Add storage" : "Añadir almacenamiento", - "Allow users to mount external storages" : "Permitir a los usuarios montar almacenamientos externos", "Allow users to mount the following external storage" : "Permitir a los usuarios montar el siguiente almacenamiento externo" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files_external/l10n/es.json b/apps/files_external/l10n/es.json index d71effbd84a..10cbf0c974a 100644 --- a/apps/files_external/l10n/es.json +++ b/apps/files_external/l10n/es.json @@ -86,7 +86,6 @@ "Advanced settings" : "Configuración avanzada", "Delete" : "Eliminar", "Add storage" : "Añadir almacenamiento", - "Allow users to mount external storages" : "Permitir a los usuarios montar almacenamientos externos", "Allow users to mount the following external storage" : "Permitir a los usuarios montar el siguiente almacenamiento externo" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files_external/l10n/fi_FI.js b/apps/files_external/l10n/fi_FI.js index 18e4db069de..f91dec93310 100644 --- a/apps/files_external/l10n/fi_FI.js +++ b/apps/files_external/l10n/fi_FI.js @@ -62,6 +62,7 @@ OC.L10N.register( "Username as share" : "Käyttäjänimi jakona", "OpenStack Object Storage" : "OpenStack Object Storage", "Service name" : "Palvelun nimi", + "Request timeout (seconds)" : "Pyynnön aikakatkaisu (sekunneissa)", "<b>Note:</b> " : "<b>Huomio:</b> ", "<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Huomio:</b> PHP:n cURL-tuki ei ole käytössä tai sitä ei ole asennettu. Kohteen %s liittäminen ei ole mahdollista. Pyydä järjestelmän ylläpitäjää ottamaan cURL-tuki käyttöön.", "<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Huomio:</b> PHP:n FTP-tuki ei ole käytössä tai sitä ei ole asennettu. Kohteen %s liittäminen ei ole mahdollista. Pyydä järjestelmän ylläpitäjää ottamaan FTP-tuki käyttöön.", @@ -78,7 +79,7 @@ OC.L10N.register( "Advanced settings" : "Lisäasetukset", "Delete" : "Poista", "Add storage" : "Lisää tallennustila", - "Allow users to mount external storages" : "Salli käyttäjien liittää erillisiä tallennustiloja", + "Allow users to mount external storage" : "Salli käyttäjien liittää erillisiä tallennustiloja", "Allow users to mount the following external storage" : "Salli käyttäjien liittää seuraavat erilliset tallennusvälineet" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files_external/l10n/fi_FI.json b/apps/files_external/l10n/fi_FI.json index d879826f901..a2033b4c578 100644 --- a/apps/files_external/l10n/fi_FI.json +++ b/apps/files_external/l10n/fi_FI.json @@ -60,6 +60,7 @@ "Username as share" : "Käyttäjänimi jakona", "OpenStack Object Storage" : "OpenStack Object Storage", "Service name" : "Palvelun nimi", + "Request timeout (seconds)" : "Pyynnön aikakatkaisu (sekunneissa)", "<b>Note:</b> " : "<b>Huomio:</b> ", "<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Huomio:</b> PHP:n cURL-tuki ei ole käytössä tai sitä ei ole asennettu. Kohteen %s liittäminen ei ole mahdollista. Pyydä järjestelmän ylläpitäjää ottamaan cURL-tuki käyttöön.", "<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Huomio:</b> PHP:n FTP-tuki ei ole käytössä tai sitä ei ole asennettu. Kohteen %s liittäminen ei ole mahdollista. Pyydä järjestelmän ylläpitäjää ottamaan FTP-tuki käyttöön.", @@ -76,7 +77,7 @@ "Advanced settings" : "Lisäasetukset", "Delete" : "Poista", "Add storage" : "Lisää tallennustila", - "Allow users to mount external storages" : "Salli käyttäjien liittää erillisiä tallennustiloja", + "Allow users to mount external storage" : "Salli käyttäjien liittää erillisiä tallennustiloja", "Allow users to mount the following external storage" : "Salli käyttäjien liittää seuraavat erilliset tallennusvälineet" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files_external/l10n/fr.js b/apps/files_external/l10n/fr.js index b62896fae57..3358b36cf8e 100644 --- a/apps/files_external/l10n/fr.js +++ b/apps/files_external/l10n/fr.js @@ -102,7 +102,7 @@ OC.L10N.register( "Advanced settings" : "Paramètres avancés", "Delete" : "Supprimer", "Add storage" : "Ajouter un support de stockage", - "Allow users to mount external storages" : "Autoriser les utilisateurs à monter des espaces de stockage externes", + "Allow users to mount external storage" : "Autoriser les utilisateurs à monter l'espace de stockage externe", "Allow users to mount the following external storage" : "Autoriser les utilisateurs à monter les stockages externes suivants" }, "nplurals=2; plural=(n > 1);"); diff --git a/apps/files_external/l10n/fr.json b/apps/files_external/l10n/fr.json index ceb38a2ace6..684f2b51970 100644 --- a/apps/files_external/l10n/fr.json +++ b/apps/files_external/l10n/fr.json @@ -100,7 +100,7 @@ "Advanced settings" : "Paramètres avancés", "Delete" : "Supprimer", "Add storage" : "Ajouter un support de stockage", - "Allow users to mount external storages" : "Autoriser les utilisateurs à monter des espaces de stockage externes", + "Allow users to mount external storage" : "Autoriser les utilisateurs à monter l'espace de stockage externe", "Allow users to mount the following external storage" : "Autoriser les utilisateurs à monter les stockages externes suivants" },"pluralForm" :"nplurals=2; plural=(n > 1);" }
\ No newline at end of file diff --git a/apps/files_external/l10n/id.js b/apps/files_external/l10n/id.js index 29c08c0cbdf..b01e13e6085 100644 --- a/apps/files_external/l10n/id.js +++ b/apps/files_external/l10n/id.js @@ -101,7 +101,6 @@ OC.L10N.register( "Advanced settings" : "Pengaturan Lanjutan", "Delete" : "Hapus", "Add storage" : "Tambahkan penyimpanan", - "Allow users to mount external storages" : "Izinkan pengguna untuk me-mount penyimpanan eksternal", "Allow users to mount the following external storage" : "Izinkan pengguna untuk mengaitkan penyimpanan eksternal berikut" }, "nplurals=1; plural=0;"); diff --git a/apps/files_external/l10n/id.json b/apps/files_external/l10n/id.json index 81491e0f84e..383850199ac 100644 --- a/apps/files_external/l10n/id.json +++ b/apps/files_external/l10n/id.json @@ -99,7 +99,6 @@ "Advanced settings" : "Pengaturan Lanjutan", "Delete" : "Hapus", "Add storage" : "Tambahkan penyimpanan", - "Allow users to mount external storages" : "Izinkan pengguna untuk me-mount penyimpanan eksternal", "Allow users to mount the following external storage" : "Izinkan pengguna untuk mengaitkan penyimpanan eksternal berikut" },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file diff --git a/apps/files_external/l10n/it.js b/apps/files_external/l10n/it.js index 1727924f18e..8e126abe93b 100644 --- a/apps/files_external/l10n/it.js +++ b/apps/files_external/l10n/it.js @@ -102,7 +102,7 @@ OC.L10N.register( "Advanced settings" : "Impostazioni avanzate", "Delete" : "Elimina", "Add storage" : "Aggiungi archiviazione", - "Allow users to mount external storages" : "Consenti agli utenti di montare archiviazioni esterne", + "Allow users to mount external storage" : "Consenti agli utenti di montare archiviazioni esterne", "Allow users to mount the following external storage" : "Consenti agli utenti di montare la seguente archiviazione esterna" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files_external/l10n/it.json b/apps/files_external/l10n/it.json index 19d86a6196a..e21cf5973d2 100644 --- a/apps/files_external/l10n/it.json +++ b/apps/files_external/l10n/it.json @@ -100,7 +100,7 @@ "Advanced settings" : "Impostazioni avanzate", "Delete" : "Elimina", "Add storage" : "Aggiungi archiviazione", - "Allow users to mount external storages" : "Consenti agli utenti di montare archiviazioni esterne", + "Allow users to mount external storage" : "Consenti agli utenti di montare archiviazioni esterne", "Allow users to mount the following external storage" : "Consenti agli utenti di montare la seguente archiviazione esterna" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files_external/l10n/ja.js b/apps/files_external/l10n/ja.js index b766f3010e6..c9f489928cb 100644 --- a/apps/files_external/l10n/ja.js +++ b/apps/files_external/l10n/ja.js @@ -102,7 +102,6 @@ OC.L10N.register( "Advanced settings" : "詳細設定", "Delete" : "削除", "Add storage" : "ストレージを追加", - "Allow users to mount external storages" : "ユーザーに外部ストレージのマウントを許可する", "Allow users to mount the following external storage" : "ユーザーに以下の外部ストレージのマウントを許可する" }, "nplurals=1; plural=0;"); diff --git a/apps/files_external/l10n/ja.json b/apps/files_external/l10n/ja.json index b9a3eda0566..1e52d429a2c 100644 --- a/apps/files_external/l10n/ja.json +++ b/apps/files_external/l10n/ja.json @@ -100,7 +100,6 @@ "Advanced settings" : "詳細設定", "Delete" : "削除", "Add storage" : "ストレージを追加", - "Allow users to mount external storages" : "ユーザーに外部ストレージのマウントを許可する", "Allow users to mount the following external storage" : "ユーザーに以下の外部ストレージのマウントを許可する" },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file diff --git a/apps/files_external/l10n/nb_NO.js b/apps/files_external/l10n/nb_NO.js index 1859d5a7267..ecafac048c0 100644 --- a/apps/files_external/l10n/nb_NO.js +++ b/apps/files_external/l10n/nb_NO.js @@ -101,7 +101,6 @@ OC.L10N.register( "Advanced settings" : "Avanserte innstillinger", "Delete" : "Slett", "Add storage" : "Legg til lagringsplass", - "Allow users to mount external storages" : "Tillat at brukere kobler opp eksterne lagre", "Allow users to mount the following external storage" : "Tillat brukere å koble opp følgende eksterne lagring" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files_external/l10n/nb_NO.json b/apps/files_external/l10n/nb_NO.json index 669751aa00f..9a7a2ae6287 100644 --- a/apps/files_external/l10n/nb_NO.json +++ b/apps/files_external/l10n/nb_NO.json @@ -99,7 +99,6 @@ "Advanced settings" : "Avanserte innstillinger", "Delete" : "Slett", "Add storage" : "Legg til lagringsplass", - "Allow users to mount external storages" : "Tillat at brukere kobler opp eksterne lagre", "Allow users to mount the following external storage" : "Tillat brukere å koble opp følgende eksterne lagring" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files_external/l10n/nl.js b/apps/files_external/l10n/nl.js index d26f5595f1f..92f01018a61 100644 --- a/apps/files_external/l10n/nl.js +++ b/apps/files_external/l10n/nl.js @@ -102,7 +102,6 @@ OC.L10N.register( "Advanced settings" : "Geavanceerde instellingen", "Delete" : "Verwijder", "Add storage" : "Toevoegen opslag", - "Allow users to mount external storages" : "Sta gebruikers toe om een externe opslag aan te koppelen.", "Allow users to mount the following external storage" : "Sta gebruikers toe de volgende externe opslag aan te koppelen" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files_external/l10n/nl.json b/apps/files_external/l10n/nl.json index cb1db40e3c9..9d56dd127c3 100644 --- a/apps/files_external/l10n/nl.json +++ b/apps/files_external/l10n/nl.json @@ -100,7 +100,6 @@ "Advanced settings" : "Geavanceerde instellingen", "Delete" : "Verwijder", "Add storage" : "Toevoegen opslag", - "Allow users to mount external storages" : "Sta gebruikers toe om een externe opslag aan te koppelen.", "Allow users to mount the following external storage" : "Sta gebruikers toe de volgende externe opslag aan te koppelen" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files_external/l10n/oc.js b/apps/files_external/l10n/oc.js index 4771b564edb..4809cf92352 100644 --- a/apps/files_external/l10n/oc.js +++ b/apps/files_external/l10n/oc.js @@ -101,7 +101,6 @@ OC.L10N.register( "Advanced settings" : "Paramètres avançats", "Delete" : "Suprimir", "Add storage" : "Apondre un supòrt d'emmagazinatge", - "Allow users to mount external storages" : "Autorizar los utilizaires a montar los emmagazinatges extèrnes", "Allow users to mount the following external storage" : "Autorizar los utilizaires a montar los emmagazinatges extèrnes seguents" }, "nplurals=2; plural=(n > 1);"); diff --git a/apps/files_external/l10n/oc.json b/apps/files_external/l10n/oc.json index f89691dddde..30163f958fc 100644 --- a/apps/files_external/l10n/oc.json +++ b/apps/files_external/l10n/oc.json @@ -99,7 +99,6 @@ "Advanced settings" : "Paramètres avançats", "Delete" : "Suprimir", "Add storage" : "Apondre un supòrt d'emmagazinatge", - "Allow users to mount external storages" : "Autorizar los utilizaires a montar los emmagazinatges extèrnes", "Allow users to mount the following external storage" : "Autorizar los utilizaires a montar los emmagazinatges extèrnes seguents" },"pluralForm" :"nplurals=2; plural=(n > 1);" }
\ No newline at end of file diff --git a/apps/files_external/l10n/pt_BR.js b/apps/files_external/l10n/pt_BR.js index 1830ab1f993..92bc16355d3 100644 --- a/apps/files_external/l10n/pt_BR.js +++ b/apps/files_external/l10n/pt_BR.js @@ -102,7 +102,7 @@ OC.L10N.register( "Advanced settings" : "Configurações avançadas", "Delete" : "Excluir", "Add storage" : "Adicionar Armazenamento", - "Allow users to mount external storages" : "Permitir que usuários possam realizar armazenamentos externos", + "Allow users to mount external storage" : "Permitir que usuários montem armazenamento externo", "Allow users to mount the following external storage" : "Permitir que usuários montem o seguinte armazenamento externo" }, "nplurals=2; plural=(n > 1);"); diff --git a/apps/files_external/l10n/pt_BR.json b/apps/files_external/l10n/pt_BR.json index d33e4eba927..bb6e0a96cff 100644 --- a/apps/files_external/l10n/pt_BR.json +++ b/apps/files_external/l10n/pt_BR.json @@ -100,7 +100,7 @@ "Advanced settings" : "Configurações avançadas", "Delete" : "Excluir", "Add storage" : "Adicionar Armazenamento", - "Allow users to mount external storages" : "Permitir que usuários possam realizar armazenamentos externos", + "Allow users to mount external storage" : "Permitir que usuários montem armazenamento externo", "Allow users to mount the following external storage" : "Permitir que usuários montem o seguinte armazenamento externo" },"pluralForm" :"nplurals=2; plural=(n > 1);" }
\ No newline at end of file diff --git a/apps/files_external/l10n/pt_PT.js b/apps/files_external/l10n/pt_PT.js index ce816fa01d2..4e8b3245e66 100644 --- a/apps/files_external/l10n/pt_PT.js +++ b/apps/files_external/l10n/pt_PT.js @@ -95,7 +95,6 @@ OC.L10N.register( "Advanced settings" : "Definições avançadas", "Delete" : "Apagar", "Add storage" : "Adicionar armazenamento", - "Allow users to mount external storages" : "Permitir que os utilizadores montem armazenamentos externos", "Allow users to mount the following external storage" : "Permitir que os utilizadores montem o seguinte armazenamento externo" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files_external/l10n/pt_PT.json b/apps/files_external/l10n/pt_PT.json index 89926c0fe27..51333429106 100644 --- a/apps/files_external/l10n/pt_PT.json +++ b/apps/files_external/l10n/pt_PT.json @@ -93,7 +93,6 @@ "Advanced settings" : "Definições avançadas", "Delete" : "Apagar", "Add storage" : "Adicionar armazenamento", - "Allow users to mount external storages" : "Permitir que os utilizadores montem armazenamentos externos", "Allow users to mount the following external storage" : "Permitir que os utilizadores montem o seguinte armazenamento externo" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files_external/l10n/ru.js b/apps/files_external/l10n/ru.js index dd8f5c9bdf5..5550ea780ab 100644 --- a/apps/files_external/l10n/ru.js +++ b/apps/files_external/l10n/ru.js @@ -101,7 +101,6 @@ OC.L10N.register( "Advanced settings" : "Расширенные настройки", "Delete" : "Удалить", "Add storage" : "Добавить хранилище", - "Allow users to mount external storages" : "Разрешить пользователям подключать внешние хранилища", "Allow users to mount the following external storage" : "Разрешить пользователям монтировать следующие сервисы хранения данных" }, "nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"); diff --git a/apps/files_external/l10n/ru.json b/apps/files_external/l10n/ru.json index 04044274379..52792a3f09a 100644 --- a/apps/files_external/l10n/ru.json +++ b/apps/files_external/l10n/ru.json @@ -99,7 +99,6 @@ "Advanced settings" : "Расширенные настройки", "Delete" : "Удалить", "Add storage" : "Добавить хранилище", - "Allow users to mount external storages" : "Разрешить пользователям подключать внешние хранилища", "Allow users to mount the following external storage" : "Разрешить пользователям монтировать следующие сервисы хранения данных" },"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);" }
\ No newline at end of file diff --git a/apps/files_external/l10n/sq.js b/apps/files_external/l10n/sq.js index 85d8c251c89..f8e5c5a27dc 100644 --- a/apps/files_external/l10n/sq.js +++ b/apps/files_external/l10n/sq.js @@ -100,7 +100,7 @@ OC.L10N.register( "Advanced settings" : "Rregullime të mëtejshme", "Delete" : "Fshije", "Add storage" : "Shtoni depozitë", - "Allow users to mount external storages" : "Lejoju përdoruesve të montojnë depozita të jashtme", + "Allow users to mount external storage" : "Lejoju përdoruesve të montojnë depozita të jashtme", "Allow users to mount the following external storage" : "Lejoju përdoruesve të montojnë depozitën e jashtme vijuese" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files_external/l10n/sq.json b/apps/files_external/l10n/sq.json index c200be40d03..0da8e9406bb 100644 --- a/apps/files_external/l10n/sq.json +++ b/apps/files_external/l10n/sq.json @@ -98,7 +98,7 @@ "Advanced settings" : "Rregullime të mëtejshme", "Delete" : "Fshije", "Add storage" : "Shtoni depozitë", - "Allow users to mount external storages" : "Lejoju përdoruesve të montojnë depozita të jashtme", + "Allow users to mount external storage" : "Lejoju përdoruesve të montojnë depozita të jashtme", "Allow users to mount the following external storage" : "Lejoju përdoruesve të montojnë depozitën e jashtme vijuese" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files_external/l10n/th_TH.js b/apps/files_external/l10n/th_TH.js index 374725548ab..4f5eaa534eb 100644 --- a/apps/files_external/l10n/th_TH.js +++ b/apps/files_external/l10n/th_TH.js @@ -102,7 +102,6 @@ OC.L10N.register( "Advanced settings" : "ตั้งค่าขั้นสูง", "Delete" : "ลบ", "Add storage" : "เพิ่มพื้นที่จัดเก็บข้อมูล", - "Allow users to mount external storages" : "อนุญาตให้ผู้ใช้ติดตั้งพื้นที่จัดเก็บภายนอก", "Allow users to mount the following external storage" : "อนุญาตให้ผู้ใช้ติดตั้งจัดเก็บข้อมูลภายนอกต่อไปนี้" }, "nplurals=1; plural=0;"); diff --git a/apps/files_external/l10n/th_TH.json b/apps/files_external/l10n/th_TH.json index bf8dc67f1aa..bd070071705 100644 --- a/apps/files_external/l10n/th_TH.json +++ b/apps/files_external/l10n/th_TH.json @@ -100,7 +100,6 @@ "Advanced settings" : "ตั้งค่าขั้นสูง", "Delete" : "ลบ", "Add storage" : "เพิ่มพื้นที่จัดเก็บข้อมูล", - "Allow users to mount external storages" : "อนุญาตให้ผู้ใช้ติดตั้งพื้นที่จัดเก็บภายนอก", "Allow users to mount the following external storage" : "อนุญาตให้ผู้ใช้ติดตั้งจัดเก็บข้อมูลภายนอกต่อไปนี้" },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file diff --git a/apps/files_external/l10n/zh_TW.js b/apps/files_external/l10n/zh_TW.js index db7bf975017..61f224e4ffe 100644 --- a/apps/files_external/l10n/zh_TW.js +++ b/apps/files_external/l10n/zh_TW.js @@ -16,6 +16,7 @@ OC.L10N.register( "Not permitted to use authentication mechanism \"%s\"" : "不被允許使用驗證機制 \"%s\"", "Unsatisfied backend parameters" : "無法滿足後端所需的參數條件", "Unsatisfied authentication mechanism parameters" : "無法滿足驗證機制所需的參數條件", + "Insufficient data: %s" : "資料不足: %s", "Personal" : "個人", "System" : "系統", "Grant access" : "允許存取", @@ -95,7 +96,7 @@ OC.L10N.register( "Advanced settings" : "進階設定", "Delete" : "刪除", "Add storage" : "增加儲存區", - "Allow users to mount external storages" : "允許使用者能自行掛載外部儲存", + "Allow users to mount external storage" : "允許使用者能自行掛載外部儲存", "Allow users to mount the following external storage" : "允許使用者自行掛載以下的外部儲存" }, "nplurals=1; plural=0;"); diff --git a/apps/files_external/l10n/zh_TW.json b/apps/files_external/l10n/zh_TW.json index 760ff7f5841..b9aa234e89e 100644 --- a/apps/files_external/l10n/zh_TW.json +++ b/apps/files_external/l10n/zh_TW.json @@ -14,6 +14,7 @@ "Not permitted to use authentication mechanism \"%s\"" : "不被允許使用驗證機制 \"%s\"", "Unsatisfied backend parameters" : "無法滿足後端所需的參數條件", "Unsatisfied authentication mechanism parameters" : "無法滿足驗證機制所需的參數條件", + "Insufficient data: %s" : "資料不足: %s", "Personal" : "個人", "System" : "系統", "Grant access" : "允許存取", @@ -93,7 +94,7 @@ "Advanced settings" : "進階設定", "Delete" : "刪除", "Add storage" : "增加儲存區", - "Allow users to mount external storages" : "允許使用者能自行掛載外部儲存", + "Allow users to mount external storage" : "允許使用者能自行掛載外部儲存", "Allow users to mount the following external storage" : "允許使用者自行掛載以下的外部儲存" },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file diff --git a/apps/files_external/service/backendservice.php b/apps/files_external/service/backendservice.php index 1e90247b3e4..b325517e58a 100644 --- a/apps/files_external/service/backendservice.php +++ b/apps/files_external/service/backendservice.php @@ -72,6 +72,11 @@ class BackendService { $this->userMountingBackends = explode(',', $this->config->getAppValue('files_external', 'user_mounting_backends', '') ); + + // if no backend is in the list an empty string is in the array and user mounting is disabled + if ($this->userMountingBackends === ['']) { + $this->userMountingAllowed = false; + } } /** diff --git a/apps/files_sharing/l10n/da.js b/apps/files_sharing/l10n/da.js index d31acc37760..212e281b0d2 100644 --- a/apps/files_sharing/l10n/da.js +++ b/apps/files_sharing/l10n/da.js @@ -43,6 +43,14 @@ OC.L10N.register( "%2$s shared %1$s via link" : "%2$s delt %1$s via link", "%2$s shared %1$s with you" : "%2$s delt %1$s med dig", "You shared %1$s via link" : "Du delte %1$s via link", + "Downloaded via public link" : "Downloaded via et offentligt link", + "Shared with %2$s" : "Delt med %2$s", + "Shared with group %2$s" : "Delt med gruppen %2$s", + "Shared with %3$s by %2$s" : "Delt med %3$s af %2$s", + "Shared with group %3$s by %2$s" : "Delt med gruppen %3$s af %2$s", + "Shared via link by %2$s" : "Delt via link af %2$s", + "Shared by %2$s" : "Delt af %2$s", + "Shared via public link" : "Delt via offentligt link", "Shares" : "Delt", "You received %2$s as a remote share from %1$s" : "Du modtog %2$s som en ekstern deling fra %1$s", "Accept" : "Acceptér", diff --git a/apps/files_sharing/l10n/da.json b/apps/files_sharing/l10n/da.json index fe702de52e8..e13c671a005 100644 --- a/apps/files_sharing/l10n/da.json +++ b/apps/files_sharing/l10n/da.json @@ -41,6 +41,14 @@ "%2$s shared %1$s via link" : "%2$s delt %1$s via link", "%2$s shared %1$s with you" : "%2$s delt %1$s med dig", "You shared %1$s via link" : "Du delte %1$s via link", + "Downloaded via public link" : "Downloaded via et offentligt link", + "Shared with %2$s" : "Delt med %2$s", + "Shared with group %2$s" : "Delt med gruppen %2$s", + "Shared with %3$s by %2$s" : "Delt med %3$s af %2$s", + "Shared with group %3$s by %2$s" : "Delt med gruppen %3$s af %2$s", + "Shared via link by %2$s" : "Delt via link af %2$s", + "Shared by %2$s" : "Delt af %2$s", + "Shared via public link" : "Delt via offentligt link", "Shares" : "Delt", "You received %2$s as a remote share from %1$s" : "Du modtog %2$s som en ekstern deling fra %1$s", "Accept" : "Acceptér", diff --git a/apps/files_sharing/l10n/el.js b/apps/files_sharing/l10n/el.js index e4024492b65..62150bcc942 100644 --- a/apps/files_sharing/l10n/el.js +++ b/apps/files_sharing/l10n/el.js @@ -7,9 +7,9 @@ OC.L10N.register( "Could not authenticate to remote share, password might be wrong" : "Δεν ήταν δυνατή η πιστοποίηση στο απομακρυσμένο διαμοιρασμένο στοιχείο, μπορεί να είναι λάθος ο κωδικός πρόσβασης", "Storage not valid" : "Μη έγκυρος αποθηκευτικός χώρος", "Couldn't add remote share" : "Αδυναμία προσθήκης απομακρυσμένου κοινόχρηστου φακέλου", - "Shared with you" : "Διαμοιρασμένο με εσάς", - "Shared with others" : "Διαμοιρασμένο με άλλους", - "Shared by link" : "Διαμοιρασμένο μέσω συνδέσμου", + "Shared with you" : "Διαμοιρασμένα με εσάς", + "Shared with others" : "Διαμοιρασμένα με άλλους", + "Shared by link" : "Διαμοιρασμένα μέσω συνδέσμου", "Nothing shared with you yet" : "Κανένα αρχείο δεν έχει διαμοιραστεί ακόμα με εσάς.", "Files and folders others share with you will show up here" : "Τα αρχεία και οι φάκελοι που άλλοι διαμοιράζονται με εσάς θα εμφανιστούν εδώ", "Nothing shared yet" : "Δεν έχει διαμοιραστεί τίποτα μέχρι στιγμής", diff --git a/apps/files_sharing/l10n/el.json b/apps/files_sharing/l10n/el.json index 7bf5c00841e..5b23eaeedb5 100644 --- a/apps/files_sharing/l10n/el.json +++ b/apps/files_sharing/l10n/el.json @@ -5,9 +5,9 @@ "Could not authenticate to remote share, password might be wrong" : "Δεν ήταν δυνατή η πιστοποίηση στο απομακρυσμένο διαμοιρασμένο στοιχείο, μπορεί να είναι λάθος ο κωδικός πρόσβασης", "Storage not valid" : "Μη έγκυρος αποθηκευτικός χώρος", "Couldn't add remote share" : "Αδυναμία προσθήκης απομακρυσμένου κοινόχρηστου φακέλου", - "Shared with you" : "Διαμοιρασμένο με εσάς", - "Shared with others" : "Διαμοιρασμένο με άλλους", - "Shared by link" : "Διαμοιρασμένο μέσω συνδέσμου", + "Shared with you" : "Διαμοιρασμένα με εσάς", + "Shared with others" : "Διαμοιρασμένα με άλλους", + "Shared by link" : "Διαμοιρασμένα μέσω συνδέσμου", "Nothing shared with you yet" : "Κανένα αρχείο δεν έχει διαμοιραστεί ακόμα με εσάς.", "Files and folders others share with you will show up here" : "Τα αρχεία και οι φάκελοι που άλλοι διαμοιράζονται με εσάς θα εμφανιστούν εδώ", "Nothing shared yet" : "Δεν έχει διαμοιραστεί τίποτα μέχρι στιγμής", diff --git a/apps/files_sharing/l10n/lt_LT.js b/apps/files_sharing/l10n/lt_LT.js index 897bfe457d1..93848326605 100644 --- a/apps/files_sharing/l10n/lt_LT.js +++ b/apps/files_sharing/l10n/lt_LT.js @@ -1,27 +1,87 @@ OC.L10N.register( "files_sharing", { + "Server to server sharing is not enabled on this server" : "Serveris - serveris dalinimasis neįjungtas šiame serveryje", + "The mountpoint name contains invalid characters." : "Prijungimo taškas su neleistinais simboliais.", + "Invalid or untrusted SSL certificate" : "Netinkamas arba nepatikimas SSL sertifikatas", + "Could not authenticate to remote share, password might be wrong" : "Nepavyko identifikuotis serveryje, gal netinkamas slaptažodis", + "Storage not valid" : "Talpykla negalioja", + "Couldn't add remote share" : "Nepavyko pridėti nutolusio dalijimosi", + "Shared with you" : "Pasidalinta su tavimi", + "Shared with others" : "Pasidalinta su kitais", + "Shared by link" : "Pasidalinta su nuoroda", + "Nothing shared with you yet" : "Kol kas niekas su tavimi nesidalijama", + "Files and folders others share with you will show up here" : "Failai ir aplankai kurie dalinami ir tau, bus rodomi čia", + "Nothing shared yet" : "Niekas nepasidalinta", + "Files and folders you share will show up here" : "Failai ir aplankai kuriais daliniesi bus rodomi čia", + "No shared links" : "Nėra pasidalinimų nuoroda", + "Files and folders you share by link will show up here" : "Failai ir aplankai kuriais daliniesi su nuoroda bus rodomi čia", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "Ar nori pridėti nutolusį dalijimąsi {name} nuo {owner}@{remote}?", + "Remote share" : "Nutolęs dalinimasis", + "Remote share password" : "Nutolusio dalijimosi slaptažodis", "Cancel" : "Atšaukti", + "Add remote share" : "Pridėti nutolusi dalijimąsi", + "You can upload into this folder" : "Gali įkelti į šį aplanką", + "No ownCloud installation (7 or higher) found at {remote}" : "Nerastas ownCloud (7 ar aukštesnė versiją) {remote} serveryje.", + "Invalid ownCloud url" : "Neteisinga ownCloud nuoroda", "Shared by" : "Dalinasi", "Sharing" : "Dalijimasis", "A file or folder has been <strong>shared</strong>" : "Failas ar aplankas buvo <strong>pasidalintas</strong>", + "A file or folder was shared from <strong>another server</strong>" : "Failas ar aplankas buvo pasidalintas iš <strong>kito serverio</strong>", + "A public shared file or folder was <strong>downloaded</strong>" : "Viešai pasidalintas failas ar aplankas <strong>parsiųstas</strong>", + "You received a new remote share %2$s from %1$s" : "Gavote naują nutolusį dalijimąsi %2$s nuo %1$s", + "You received a new remote share from %s" : "Gavote naują nutolusį dalijimąsi nuo %s", + "%1$s accepted remote share %2$s" : "%1$s priėmė nutolusį dalijimąsi %2$s", + "%1$s declined remote share %2$s" : "%1$s atmetė nutolusį dalijimąsi %2$s", + "%1$s unshared %2$s from you" : "%1$s nebesidalina %2$s su tavimi", + "Public shared folder %1$s was downloaded" : "Viešas dalijimosi aplankas %1$s parsiųstas", + "Public shared file %1$s was downloaded" : "Viešai dalinamas failas %1$s parsiųstas", "You shared %1$s with %2$s" : "Jūs pasidalinote %1$s su %2$s", "You shared %1$s with group %2$s" : "Jūs pasidalinote %1$s su grupe %2$s", + "%2$s shared %1$s with %3$s" : "%2$s pasidalino %1$s su %3$s", + "%2$s shared %1$s with group %3$s" : "%2$s pasidalino %1$s su grupe %3$s", + "%2$s shared %1$s via link" : "%2$s pasidalino %1$s nuoroda", "%2$s shared %1$s with you" : "%2$s pasidalino %1$s su jumis", "You shared %1$s via link" : "Pasidalinote %1$s per nuorodą", + "Downloaded via public link" : "Atsiųsti per viešą nuorodą", + "Shared with %2$s" : "Pasidalinta su %2$s", + "Shared with group %2$s" : "Pasidalinta su grupe %2$s", + "Shared with %3$s by %2$s" : "%2$s pasidalino %3$s", + "Shared with group %3$s by %2$s" : "%2$s pasidalino su grupe %3$s", + "Shared via link by %2$s" : "%2$s pasidalino nuoroda", + "Shared by %2$s" : "Pasidalino %2$s", + "Shared via public link" : "Pasidalinta vieša nuoroda", "Shares" : "Dalijimaisi", + "You received %2$s as a remote share from %1$s" : "Gavai dalijimąsi %2$s nuo %1$s", + "Accept" : "Priimti", + "Decline" : "Atmesti", + "Share with me through my #ownCloud Federated Cloud ID, see %s" : "Pasidalink su manimi per #ownCloud padebesius, plačiau %s", + "Share with me through my #ownCloud Federated Cloud ID" : "Pasidalink su manimi per #ownCloud padebesius", "This share is password-protected" : "Turinys apsaugotas slaptažodžiu", "The password is wrong. Try again." : "Netinka slaptažodis: Bandykite dar kartą.", "Password" : "Slaptažodis", "No entries found in this folder" : "Nerasta įrašų šiame aplanke", "Name" : "Pavadinimas", + "Share time" : "Dalijimosi laikas", "Sorry, this link doesn’t seem to work anymore." : "Atleiskite, panašu, kad nuoroda yra neveiksni.", "Reasons might be:" : "Galimos priežastys:", "the item was removed" : "elementas buvo pašalintas", "the link expired" : "baigėsi nuorodos galiojimo laikas", "sharing is disabled" : "dalinimasis yra išjungtas", "For more info, please ask the person who sent this link." : "Dėl tikslesnės informacijos susisiekite su asmeniu atsiuntusiu nuorodą.", + "Add to your ownCloud" : "Pridėti prie tavo ownCloud", "Download" : "Atsisiųsti", - "Direct link" : "Tiesioginė nuoroda" + "Download %s" : "Atsiųsti %s", + "Direct link" : "Tiesioginė nuoroda", + "Federated Cloud Sharing" : "Viešas dalijimasis padebesiu", + "Open documentation" : "Atidaryti dokumentą", + "Allow users on this server to send shares to other servers" : "Leisti vartotojams šiame serveryje dalintis su kitais serveriais", + "Allow users on this server to receive shares from other servers" : "Leisti vartotojams šiame serveryje priimti dalijimusis iš kitų serverių", + "Federated Cloud" : "Viešas debesis", + "Your Federated Cloud ID:" : "Tavo debesies ID:", + "Share it:" : "Pasidalink:", + "Add to your website" : "Pridėti tavo puslapį", + "Share with me via ownCloud" : "Pasidalink su manimi per ownCloud", + "HTML Code:" : "HTML kodas:" }, "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);"); diff --git a/apps/files_sharing/l10n/lt_LT.json b/apps/files_sharing/l10n/lt_LT.json index c27668b24c7..6d777024052 100644 --- a/apps/files_sharing/l10n/lt_LT.json +++ b/apps/files_sharing/l10n/lt_LT.json @@ -1,25 +1,85 @@ { "translations": { + "Server to server sharing is not enabled on this server" : "Serveris - serveris dalinimasis neįjungtas šiame serveryje", + "The mountpoint name contains invalid characters." : "Prijungimo taškas su neleistinais simboliais.", + "Invalid or untrusted SSL certificate" : "Netinkamas arba nepatikimas SSL sertifikatas", + "Could not authenticate to remote share, password might be wrong" : "Nepavyko identifikuotis serveryje, gal netinkamas slaptažodis", + "Storage not valid" : "Talpykla negalioja", + "Couldn't add remote share" : "Nepavyko pridėti nutolusio dalijimosi", + "Shared with you" : "Pasidalinta su tavimi", + "Shared with others" : "Pasidalinta su kitais", + "Shared by link" : "Pasidalinta su nuoroda", + "Nothing shared with you yet" : "Kol kas niekas su tavimi nesidalijama", + "Files and folders others share with you will show up here" : "Failai ir aplankai kurie dalinami ir tau, bus rodomi čia", + "Nothing shared yet" : "Niekas nepasidalinta", + "Files and folders you share will show up here" : "Failai ir aplankai kuriais daliniesi bus rodomi čia", + "No shared links" : "Nėra pasidalinimų nuoroda", + "Files and folders you share by link will show up here" : "Failai ir aplankai kuriais daliniesi su nuoroda bus rodomi čia", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "Ar nori pridėti nutolusį dalijimąsi {name} nuo {owner}@{remote}?", + "Remote share" : "Nutolęs dalinimasis", + "Remote share password" : "Nutolusio dalijimosi slaptažodis", "Cancel" : "Atšaukti", + "Add remote share" : "Pridėti nutolusi dalijimąsi", + "You can upload into this folder" : "Gali įkelti į šį aplanką", + "No ownCloud installation (7 or higher) found at {remote}" : "Nerastas ownCloud (7 ar aukštesnė versiją) {remote} serveryje.", + "Invalid ownCloud url" : "Neteisinga ownCloud nuoroda", "Shared by" : "Dalinasi", "Sharing" : "Dalijimasis", "A file or folder has been <strong>shared</strong>" : "Failas ar aplankas buvo <strong>pasidalintas</strong>", + "A file or folder was shared from <strong>another server</strong>" : "Failas ar aplankas buvo pasidalintas iš <strong>kito serverio</strong>", + "A public shared file or folder was <strong>downloaded</strong>" : "Viešai pasidalintas failas ar aplankas <strong>parsiųstas</strong>", + "You received a new remote share %2$s from %1$s" : "Gavote naują nutolusį dalijimąsi %2$s nuo %1$s", + "You received a new remote share from %s" : "Gavote naują nutolusį dalijimąsi nuo %s", + "%1$s accepted remote share %2$s" : "%1$s priėmė nutolusį dalijimąsi %2$s", + "%1$s declined remote share %2$s" : "%1$s atmetė nutolusį dalijimąsi %2$s", + "%1$s unshared %2$s from you" : "%1$s nebesidalina %2$s su tavimi", + "Public shared folder %1$s was downloaded" : "Viešas dalijimosi aplankas %1$s parsiųstas", + "Public shared file %1$s was downloaded" : "Viešai dalinamas failas %1$s parsiųstas", "You shared %1$s with %2$s" : "Jūs pasidalinote %1$s su %2$s", "You shared %1$s with group %2$s" : "Jūs pasidalinote %1$s su grupe %2$s", + "%2$s shared %1$s with %3$s" : "%2$s pasidalino %1$s su %3$s", + "%2$s shared %1$s with group %3$s" : "%2$s pasidalino %1$s su grupe %3$s", + "%2$s shared %1$s via link" : "%2$s pasidalino %1$s nuoroda", "%2$s shared %1$s with you" : "%2$s pasidalino %1$s su jumis", "You shared %1$s via link" : "Pasidalinote %1$s per nuorodą", + "Downloaded via public link" : "Atsiųsti per viešą nuorodą", + "Shared with %2$s" : "Pasidalinta su %2$s", + "Shared with group %2$s" : "Pasidalinta su grupe %2$s", + "Shared with %3$s by %2$s" : "%2$s pasidalino %3$s", + "Shared with group %3$s by %2$s" : "%2$s pasidalino su grupe %3$s", + "Shared via link by %2$s" : "%2$s pasidalino nuoroda", + "Shared by %2$s" : "Pasidalino %2$s", + "Shared via public link" : "Pasidalinta vieša nuoroda", "Shares" : "Dalijimaisi", + "You received %2$s as a remote share from %1$s" : "Gavai dalijimąsi %2$s nuo %1$s", + "Accept" : "Priimti", + "Decline" : "Atmesti", + "Share with me through my #ownCloud Federated Cloud ID, see %s" : "Pasidalink su manimi per #ownCloud padebesius, plačiau %s", + "Share with me through my #ownCloud Federated Cloud ID" : "Pasidalink su manimi per #ownCloud padebesius", "This share is password-protected" : "Turinys apsaugotas slaptažodžiu", "The password is wrong. Try again." : "Netinka slaptažodis: Bandykite dar kartą.", "Password" : "Slaptažodis", "No entries found in this folder" : "Nerasta įrašų šiame aplanke", "Name" : "Pavadinimas", + "Share time" : "Dalijimosi laikas", "Sorry, this link doesn’t seem to work anymore." : "Atleiskite, panašu, kad nuoroda yra neveiksni.", "Reasons might be:" : "Galimos priežastys:", "the item was removed" : "elementas buvo pašalintas", "the link expired" : "baigėsi nuorodos galiojimo laikas", "sharing is disabled" : "dalinimasis yra išjungtas", "For more info, please ask the person who sent this link." : "Dėl tikslesnės informacijos susisiekite su asmeniu atsiuntusiu nuorodą.", + "Add to your ownCloud" : "Pridėti prie tavo ownCloud", "Download" : "Atsisiųsti", - "Direct link" : "Tiesioginė nuoroda" + "Download %s" : "Atsiųsti %s", + "Direct link" : "Tiesioginė nuoroda", + "Federated Cloud Sharing" : "Viešas dalijimasis padebesiu", + "Open documentation" : "Atidaryti dokumentą", + "Allow users on this server to send shares to other servers" : "Leisti vartotojams šiame serveryje dalintis su kitais serveriais", + "Allow users on this server to receive shares from other servers" : "Leisti vartotojams šiame serveryje priimti dalijimusis iš kitų serverių", + "Federated Cloud" : "Viešas debesis", + "Your Federated Cloud ID:" : "Tavo debesies ID:", + "Share it:" : "Pasidalink:", + "Add to your website" : "Pridėti tavo puslapį", + "Share with me via ownCloud" : "Pasidalink su manimi per ownCloud", + "HTML Code:" : "HTML kodas:" },"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/oc.js b/apps/files_sharing/l10n/oc.js index 54924e11121..6a1329bf5bd 100644 --- a/apps/files_sharing/l10n/oc.js +++ b/apps/files_sharing/l10n/oc.js @@ -43,6 +43,14 @@ OC.L10N.register( "%2$s shared %1$s via link" : "%2$s a partejat %1$s per ligam public", "%2$s shared %1$s with you" : "%2$s a partejat %1$s amb vos", "You shared %1$s via link" : "Avètz partejat %1$s per ligam public", + "Downloaded via public link" : "Telecargat per ligam public", + "Shared with %2$s" : "Partejat amb %2$s", + "Shared with group %2$s" : "Partejat amb lo grop %2$s", + "Shared with %3$s by %2$s" : "Partejat amb %3$s per %2$s", + "Shared with group %3$s by %2$s" : "Partejat amb lo grop %3$s per %2$s", + "Shared via link by %2$s" : "Partejat via ligam per %2$s", + "Shared by %2$s" : "Partejat per %2$s", + "Shared via public link" : "Partejat per ligam public", "Shares" : "Partiments", "You received %2$s as a remote share from %1$s" : "Avètz recebut %2$s en tant que partiment distant per %1$s", "Accept" : "Acceptar", diff --git a/apps/files_sharing/l10n/oc.json b/apps/files_sharing/l10n/oc.json index 2194f0aa1d2..591090742c6 100644 --- a/apps/files_sharing/l10n/oc.json +++ b/apps/files_sharing/l10n/oc.json @@ -41,6 +41,14 @@ "%2$s shared %1$s via link" : "%2$s a partejat %1$s per ligam public", "%2$s shared %1$s with you" : "%2$s a partejat %1$s amb vos", "You shared %1$s via link" : "Avètz partejat %1$s per ligam public", + "Downloaded via public link" : "Telecargat per ligam public", + "Shared with %2$s" : "Partejat amb %2$s", + "Shared with group %2$s" : "Partejat amb lo grop %2$s", + "Shared with %3$s by %2$s" : "Partejat amb %3$s per %2$s", + "Shared with group %3$s by %2$s" : "Partejat amb lo grop %3$s per %2$s", + "Shared via link by %2$s" : "Partejat via ligam per %2$s", + "Shared by %2$s" : "Partejat per %2$s", + "Shared via public link" : "Partejat per ligam public", "Shares" : "Partiments", "You received %2$s as a remote share from %1$s" : "Avètz recebut %2$s en tant que partiment distant per %1$s", "Accept" : "Acceptar", diff --git a/apps/files_sharing/l10n/zh_TW.js b/apps/files_sharing/l10n/zh_TW.js index eecbbf1f92e..58d0398a1d5 100644 --- a/apps/files_sharing/l10n/zh_TW.js +++ b/apps/files_sharing/l10n/zh_TW.js @@ -2,6 +2,7 @@ OC.L10N.register( "files_sharing", { "Server to server sharing is not enabled on this server" : "伺服器對伺服器共享在這台伺服器上面並未啟用", + "The mountpoint name contains invalid characters." : "掛載的名稱含有不合法的字元", "Invalid or untrusted SSL certificate" : "無效或是不信任的SSL憑證", "Could not authenticate to remote share, password might be wrong" : "無法驗證遠端分享,可能是密碼錯誤", "Storage not valid" : "儲存空間無法使用", @@ -32,6 +33,7 @@ OC.L10N.register( "You received a new remote share from %s" : "您收到了一個遠端分享來自於 %s", "%1$s accepted remote share %2$s" : "%1$s 接受了遠端分享 %2$s", "%1$s declined remote share %2$s" : "%1$s 拒絕了遠端分享 %2$s", + "%1$s unshared %2$s from you" : "%1$s 取消與你分享 %2$s", "Public shared folder %1$s was downloaded" : "共享資料夾 %1$s 已被下載", "Public shared file %1$s was downloaded" : "共享檔案 %1$s 已被下載", "You shared %1$s with %2$s" : "您與 %2$s 分享了 %1$s", @@ -50,6 +52,7 @@ OC.L10N.register( "Shared by %2$s" : "由 %2$s 分享", "Shared via public link" : "透過公用連結分享", "Shares" : "分享", + "You received %2$s as a remote share from %1$s" : "您收到了來自%1$s的一個遠端分享 %2$s ", "Accept" : "接受", "Decline" : "拒絕", "Share with me through my #ownCloud Federated Cloud ID, see %s" : "可透過我的 #ownCloud 聯合 ID,與我分享,請看 %s", diff --git a/apps/files_sharing/l10n/zh_TW.json b/apps/files_sharing/l10n/zh_TW.json index 14be4c11d55..e73bbfa6574 100644 --- a/apps/files_sharing/l10n/zh_TW.json +++ b/apps/files_sharing/l10n/zh_TW.json @@ -1,5 +1,6 @@ { "translations": { "Server to server sharing is not enabled on this server" : "伺服器對伺服器共享在這台伺服器上面並未啟用", + "The mountpoint name contains invalid characters." : "掛載的名稱含有不合法的字元", "Invalid or untrusted SSL certificate" : "無效或是不信任的SSL憑證", "Could not authenticate to remote share, password might be wrong" : "無法驗證遠端分享,可能是密碼錯誤", "Storage not valid" : "儲存空間無法使用", @@ -30,6 +31,7 @@ "You received a new remote share from %s" : "您收到了一個遠端分享來自於 %s", "%1$s accepted remote share %2$s" : "%1$s 接受了遠端分享 %2$s", "%1$s declined remote share %2$s" : "%1$s 拒絕了遠端分享 %2$s", + "%1$s unshared %2$s from you" : "%1$s 取消與你分享 %2$s", "Public shared folder %1$s was downloaded" : "共享資料夾 %1$s 已被下載", "Public shared file %1$s was downloaded" : "共享檔案 %1$s 已被下載", "You shared %1$s with %2$s" : "您與 %2$s 分享了 %1$s", @@ -48,6 +50,7 @@ "Shared by %2$s" : "由 %2$s 分享", "Shared via public link" : "透過公用連結分享", "Shares" : "分享", + "You received %2$s as a remote share from %1$s" : "您收到了來自%1$s的一個遠端分享 %2$s ", "Accept" : "接受", "Decline" : "拒絕", "Share with me through my #ownCloud Federated Cloud ID, see %s" : "可透過我的 #ownCloud 聯合 ID,與我分享,請看 %s", diff --git a/apps/files_sharing/lib/watcher.php b/apps/files_sharing/lib/watcher.php index dc95dde480e..3af6f733b51 100644 --- a/apps/files_sharing/lib/watcher.php +++ b/apps/files_sharing/lib/watcher.php @@ -29,41 +29,41 @@ namespace OC\Files\Cache; * check the storage backends for updates and change the cache accordingly */ class Shared_Watcher extends Watcher { + /** + * @var \OC\Files\Storage\Shared $storage + */ + protected $storage; /** - * check $path for updates + * Update the cache for changes to $path * * @param string $path - * @param array $cachedEntry - * @return boolean true if path was updated + * @param array $cachedData */ - public function checkUpdate($path, $cachedEntry = null) { - if (parent::checkUpdate($path, $cachedEntry) === true) { - // since checkUpdate() has already updated the size of the subdirs, - // only apply the update to the owner's parent dirs - - // find last parent before reaching the shared storage root, - // which is the actual shared dir from the owner - $sepPos = strpos($path, '/'); - if ($sepPos > 0) { - $baseDir = substr($path, 0, $sepPos); - } else { - $baseDir = $path; - } + public function update($path, $cachedData) { + parent::update($path, $cachedData); + // since parent::update() has already updated the size of the subdirs, + // only apply the update to the owner's parent dirs - // find the path relative to the data dir - $file = $this->storage->getFile($baseDir); - $view = new \OC\Files\View('/' . $file['fileOwner']); + // find last parent before reaching the shared storage root, + // which is the actual shared dir from the owner + $sepPos = strpos($path, '/'); + if ($sepPos > 0) { + $baseDir = substr($path, 0, $sepPos); + } else { + $baseDir = $path; + } - // find the owner's storage and path - list($storage, $internalPath) = $view->resolvePath($file['path']); + // find the path relative to the data dir + $file = $this->storage->getFile($baseDir); + $view = new \OC\Files\View('/' . $file['fileOwner']); - // update the parent dirs' sizes in the owner's cache - $storage->getCache()->correctFolderSize(dirname($internalPath)); + // find the owner's storage and path + /** @var \OC\Files\Storage\Storage $storage */ + list($storage, $internalPath) = $view->resolvePath($file['path']); - return true; - } - return false; + // update the parent dirs' sizes in the owner's cache + $storage->getCache()->correctFolderSize(dirname($internalPath)); } /** diff --git a/apps/user_ldap/l10n/de.js b/apps/user_ldap/l10n/de.js index 375b78b4526..8a944590c6d 100644 --- a/apps/user_ldap/l10n/de.js +++ b/apps/user_ldap/l10n/de.js @@ -110,9 +110,9 @@ OC.L10N.register( "Connection Settings" : "Verbindungseinstellungen", "Configuration Active" : "Konfiguration aktiv", "When unchecked, this configuration will be skipped." : "Konfiguration wird übersprungen wenn deaktiviert", - "Backup (Replica) Host" : "Backup von Host (Kopie) anlegen", - "Give an optional backup host. It must be a replica of the main LDAP/AD server." : "Gib einen optionalen Backup Host an. Es muss sich um eine Kopie des Haupt LDAP/AD Servers handeln.", - "Backup (Replica) Port" : "Backup Port", + "Backup (Replica) Host" : "Backup-Host (Kopie)", + "Give an optional backup host. It must be a replica of the main LDAP/AD server." : "Gib einen optionalen Backup-Host an. Es muss sich um eine Kopie des Haupt-LDAP/AD-Servers handeln.", + "Backup (Replica) Port" : "Port des Backup-Hosts (Kopie)", "Disable Main Server" : "Hauptserver deaktivieren", "Only connect to the replica server." : "Nur zum Replikat-Server verbinden.", "Turn off SSL certificate validation." : "Schalte die SSL-Zertifikatsprüfung aus.", diff --git a/apps/user_ldap/l10n/de.json b/apps/user_ldap/l10n/de.json index 17c0bf02c2d..99fa4b39151 100644 --- a/apps/user_ldap/l10n/de.json +++ b/apps/user_ldap/l10n/de.json @@ -108,9 +108,9 @@ "Connection Settings" : "Verbindungseinstellungen", "Configuration Active" : "Konfiguration aktiv", "When unchecked, this configuration will be skipped." : "Konfiguration wird übersprungen wenn deaktiviert", - "Backup (Replica) Host" : "Backup von Host (Kopie) anlegen", - "Give an optional backup host. It must be a replica of the main LDAP/AD server." : "Gib einen optionalen Backup Host an. Es muss sich um eine Kopie des Haupt LDAP/AD Servers handeln.", - "Backup (Replica) Port" : "Backup Port", + "Backup (Replica) Host" : "Backup-Host (Kopie)", + "Give an optional backup host. It must be a replica of the main LDAP/AD server." : "Gib einen optionalen Backup-Host an. Es muss sich um eine Kopie des Haupt-LDAP/AD-Servers handeln.", + "Backup (Replica) Port" : "Port des Backup-Hosts (Kopie)", "Disable Main Server" : "Hauptserver deaktivieren", "Only connect to the replica server." : "Nur zum Replikat-Server verbinden.", "Turn off SSL certificate validation." : "Schalte die SSL-Zertifikatsprüfung aus.", diff --git a/apps/user_ldap/l10n/de_DE.js b/apps/user_ldap/l10n/de_DE.js index 49fcd8c8c69..5a8903d574a 100644 --- a/apps/user_ldap/l10n/de_DE.js +++ b/apps/user_ldap/l10n/de_DE.js @@ -110,9 +110,9 @@ OC.L10N.register( "Connection Settings" : "Verbindungseinstellungen", "Configuration Active" : "Konfiguration aktiv", "When unchecked, this configuration will be skipped." : "Wenn nicht angehakt, wird diese Konfiguration übersprungen.", - "Backup (Replica) Host" : "Backup von Host (Kopie) anlegen", - "Give an optional backup host. It must be a replica of the main LDAP/AD server." : "Geben Sie einen optionalen Backup Host an. Es muss sich um eine Kopie des Haupt LDAP/AD Servers handeln.", - "Backup (Replica) Port" : "Backup Port", + "Backup (Replica) Host" : "Backup-Host (Kopie)", + "Give an optional backup host. It must be a replica of the main LDAP/AD server." : "Geben Sie einen optionalen Backup-Host an. Es muss sich um eine Kopie des Haupt-LDAP/AD-Servers handeln.", + "Backup (Replica) Port" : "Port des Backup-Hosts (Kopie)", "Disable Main Server" : "Hauptserver deaktivieren", "Only connect to the replica server." : "Nur zum Replikat-Server verbinden.", "Turn off SSL certificate validation." : "Schalten Sie die SSL-Zertifikatsprüfung aus.", diff --git a/apps/user_ldap/l10n/de_DE.json b/apps/user_ldap/l10n/de_DE.json index 61792d3704e..0485094c345 100644 --- a/apps/user_ldap/l10n/de_DE.json +++ b/apps/user_ldap/l10n/de_DE.json @@ -108,9 +108,9 @@ "Connection Settings" : "Verbindungseinstellungen", "Configuration Active" : "Konfiguration aktiv", "When unchecked, this configuration will be skipped." : "Wenn nicht angehakt, wird diese Konfiguration übersprungen.", - "Backup (Replica) Host" : "Backup von Host (Kopie) anlegen", - "Give an optional backup host. It must be a replica of the main LDAP/AD server." : "Geben Sie einen optionalen Backup Host an. Es muss sich um eine Kopie des Haupt LDAP/AD Servers handeln.", - "Backup (Replica) Port" : "Backup Port", + "Backup (Replica) Host" : "Backup-Host (Kopie)", + "Give an optional backup host. It must be a replica of the main LDAP/AD server." : "Geben Sie einen optionalen Backup-Host an. Es muss sich um eine Kopie des Haupt-LDAP/AD-Servers handeln.", + "Backup (Replica) Port" : "Port des Backup-Hosts (Kopie)", "Disable Main Server" : "Hauptserver deaktivieren", "Only connect to the replica server." : "Nur zum Replikat-Server verbinden.", "Turn off SSL certificate validation." : "Schalten Sie die SSL-Zertifikatsprüfung aus.", diff --git a/apps/user_ldap/l10n/zh_TW.js b/apps/user_ldap/l10n/zh_TW.js index 0ad20f3eae3..569cbf24128 100644 --- a/apps/user_ldap/l10n/zh_TW.js +++ b/apps/user_ldap/l10n/zh_TW.js @@ -12,6 +12,7 @@ OC.L10N.register( "No data specified" : "沒有指定資料", " Could not set configuration %s" : "無法設定 %s 為設定值", "Action does not exist" : "操作不存在", + "The Base DN appears to be wrong" : "Base DN 出現問題", "Configuration incorrect" : "設定不正確", "Configuration incomplete" : "設定未完成", "Configuration OK" : "設定完成", @@ -19,17 +20,28 @@ OC.L10N.register( "Select object classes" : "選擇物件", "Please check the credentials, they seem to be wrong." : "請檢查您的憑證,似乎出了點問題", "Please specify the port, it could not be auto-detected." : "請您指定您的連接阜,無法自動偵測", + "Base DN could not be auto-detected, please revise credentials, host and port." : "Base DN 無法被自動偵測,請重新設定主機,連接阜以及認證", + "Could not detect Base DN, please enter it manually." : "無法偵測到Base DN,請手動輸入", "{nthServer}. Server" : "{nthServer}. 伺服器", + "No object found in the given Base DN. Please revise." : "在Base DN中找不到物件,請重新修改", "More than 1.000 directory entries available." : "目前有超過 1.000 個資料夾項目是可以使用的", + "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "產生錯誤,請檢查Base DN,以及連線設定和驗證", "Do you really want to delete the current Server Configuration?" : "您真的要刪除現在的伺服器設定嗎?", "Confirm Deletion" : "確認刪除", + "Mappings cleared successfully!" : "Mappings清除成功", + "Error while clearing the mappings." : "清除Mappings發生錯誤", + "Anonymous bind is not allowed. Please provide a User DN and Password." : "匿名是不允許的,請提供使用者DN和密碼", + "LDAP Operations error. Anonymous bind might not be allowed." : "LDAP 錯誤,不允許匿名榜定", "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "存檔失敗,請確認資料庫運作中,請重新讀取一次然後再試一次", "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "切換模式會使LDAP自動抓取資訊,抓取資訊的時間依您的LDAP大小而定,可能會花一點時間,您確定要切換模式?", + "Mode switch" : "模式切換", "Select attributes" : "選擇屬性", "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command line validation): <br/>" : "找不到使用者,請檢查您的登入資料以及使用者名稱。驗證(複製貼上到命令提示位元做認證):<br/>", "User found and settings verified." : "使用者存在,設定值正確", "An unspecified error occurred. Please check the settings and the log." : "發生預期之外的錯誤,請檢查設定和記錄檔", + "A connection error to LDAP / AD occurred, please check host, port and credentials." : "連線到 LDAP/AD出現錯誤,請檢查主機,連接阜和驗證資訊", "Please provide a login name to test against" : "請提供登入姓名以便再次測試", + "The group box was disabled, because the LDAP / AD server does not support memberOf." : "群組盒已經停用,LDAP/AD 伺服器並不支援", "_%s group found_::_%s groups found_" : ["找到 %s 群組"], "_%s user found_::_%s users found_" : ["找到 %s 使用者"], "Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "無法偵測使用者的顯示名稱,請您自行在ldap設定中指定", @@ -45,19 +57,43 @@ OC.L10N.register( "Search groups" : "搜尋群組", "Available groups" : "可用的群組", "Selected groups" : "已選擇的群組", + "Edit LDAP Query" : "編輯LDAP Query", "LDAP Filter:" : "LDAP 過慮器:", + "Verify settings and count groups" : "驗證設定並計算群組數", + "When logging in, %s will find the user based on the following attributes:" : "當登入%s時,將會根據以下屬性找到使用者 :", + "LDAP / AD Username:" : "LDAP / AD 使用者名稱:", + "LDAP / AD Email Address:" : "LDAP / AD 電子郵件:", + "Other Attributes:" : "其他屬性:", + "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "試圖登入時會定義要套用的篩選器。登入過程中%%uid會取代使用者名稱。例如:\"uid=%%uid\"", + "Test Loginname" : "測試登入姓名", + "Verify settings" : "驗證設定", + "1. Server" : "1. 伺服器", + "%s. Server:" : "%s. 伺服器:", + "Add a new and blank configuration" : "新增一個空白的設定檔", + "Copy current configuration into new directory binding" : "複製目前的設定檔到新目錄", + "Delete the current configuration" : "刪除目前的設定檔", "Host" : "主機", "You can omit the protocol, except you require SSL. Then start with ldaps://" : "若您不需要 SSL 加密連線則不需輸入通訊協定,反之請輸入 ldaps://", "Port" : "連接埠", + "Detect Port" : "偵測連接阜", "User DN" : "User DN", "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "客戶端使用者的DN與特定字詞的連結需要完善,例如:uid=agent,dc=example,dc=com。若是匿名連接,則將DN與密碼欄位留白。", "Password" : "密碼", "For anonymous access, leave DN and Password empty." : "匿名連接時請將 DN 與密碼欄位留白", "One Base DN per line" : "一行一個 Base DN", "You can specify Base DN for users and groups in the Advanced tab" : "您可以在進階標籤頁裡面指定使用者及群組的 Base DN", + "Detect Base DN" : "偵測 Base DN", + "Test Base DN" : "測試 Base DN", + "Manually enter LDAP filters (recommended for large directories)" : "手動輸入 LDAP篩選器 (建議在大型的資料環境)", + "Limit %s access to users meeting these criteria:" : "當遇到以下標準時,限制%s存取使用者:", + "The filter specifies which LDAP users shall have access to the %s instance." : "篩選起指定哪些LDAP的使用者應該擁有存取%s的權限", + "Verify settings and count users" : "驗證設定並計算使用者數", + "Saving" : "儲存", "Back" : "返回", "Continue" : "繼續", + "LDAP" : "LDAP", "Advanced" : "進階", + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>警告:</b> 應用程式user_ldap和user_webdavauth互不相容。可能會造成無法預期的結果。請要求您的系統管理員將兩者其中之一停用。", "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>警告:</b>沒有安裝 PHP LDAP 模組,後端系統將無法運作,請要求您的系統管理員安裝模組。", "Connection Settings" : "連線設定", "Configuration Active" : "設定使用中", @@ -67,6 +103,7 @@ OC.L10N.register( "Backup (Replica) Port" : "備用(複本)連接埠", "Disable Main Server" : "停用主伺服器", "Turn off SSL certificate validation." : "關閉 SSL 憑證檢查", + "Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." : "不建議,請僅在測試時使用!如果連線只能在此設定下工作,請匯入LDAP伺服器的SSL認證到您的伺服器%s上", "Cache Time-To-Live" : "快取的存活時間", "in seconds. A change empties the cache." : "以秒為單位。變更後會清空快取。", "Directory Settings" : "目錄設定", @@ -87,6 +124,9 @@ OC.L10N.register( "Email Field" : "電郵欄位", "User Home Folder Naming Rule" : "使用者家目錄的命名規則", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." : "使用者名稱請留白(預設)。若不留白請指定一個LDAP/AD屬性。", - "Internal Username" : "內部使用者名稱" + "Internal Username" : "內部使用者名稱", + "Internal Username Attribute:" : "內部使用者名稱屬性:", + "UUID Attribute for Users:" : "使用者的UUID值:", + "UUID Attribute for Groups:" : "群組的UUID值:" }, "nplurals=1; plural=0;"); diff --git a/apps/user_ldap/l10n/zh_TW.json b/apps/user_ldap/l10n/zh_TW.json index a9b62f37b52..e012c3003ac 100644 --- a/apps/user_ldap/l10n/zh_TW.json +++ b/apps/user_ldap/l10n/zh_TW.json @@ -10,6 +10,7 @@ "No data specified" : "沒有指定資料", " Could not set configuration %s" : "無法設定 %s 為設定值", "Action does not exist" : "操作不存在", + "The Base DN appears to be wrong" : "Base DN 出現問題", "Configuration incorrect" : "設定不正確", "Configuration incomplete" : "設定未完成", "Configuration OK" : "設定完成", @@ -17,17 +18,28 @@ "Select object classes" : "選擇物件", "Please check the credentials, they seem to be wrong." : "請檢查您的憑證,似乎出了點問題", "Please specify the port, it could not be auto-detected." : "請您指定您的連接阜,無法自動偵測", + "Base DN could not be auto-detected, please revise credentials, host and port." : "Base DN 無法被自動偵測,請重新設定主機,連接阜以及認證", + "Could not detect Base DN, please enter it manually." : "無法偵測到Base DN,請手動輸入", "{nthServer}. Server" : "{nthServer}. 伺服器", + "No object found in the given Base DN. Please revise." : "在Base DN中找不到物件,請重新修改", "More than 1.000 directory entries available." : "目前有超過 1.000 個資料夾項目是可以使用的", + "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "產生錯誤,請檢查Base DN,以及連線設定和驗證", "Do you really want to delete the current Server Configuration?" : "您真的要刪除現在的伺服器設定嗎?", "Confirm Deletion" : "確認刪除", + "Mappings cleared successfully!" : "Mappings清除成功", + "Error while clearing the mappings." : "清除Mappings發生錯誤", + "Anonymous bind is not allowed. Please provide a User DN and Password." : "匿名是不允許的,請提供使用者DN和密碼", + "LDAP Operations error. Anonymous bind might not be allowed." : "LDAP 錯誤,不允許匿名榜定", "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "存檔失敗,請確認資料庫運作中,請重新讀取一次然後再試一次", "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "切換模式會使LDAP自動抓取資訊,抓取資訊的時間依您的LDAP大小而定,可能會花一點時間,您確定要切換模式?", + "Mode switch" : "模式切換", "Select attributes" : "選擇屬性", "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command line validation): <br/>" : "找不到使用者,請檢查您的登入資料以及使用者名稱。驗證(複製貼上到命令提示位元做認證):<br/>", "User found and settings verified." : "使用者存在,設定值正確", "An unspecified error occurred. Please check the settings and the log." : "發生預期之外的錯誤,請檢查設定和記錄檔", + "A connection error to LDAP / AD occurred, please check host, port and credentials." : "連線到 LDAP/AD出現錯誤,請檢查主機,連接阜和驗證資訊", "Please provide a login name to test against" : "請提供登入姓名以便再次測試", + "The group box was disabled, because the LDAP / AD server does not support memberOf." : "群組盒已經停用,LDAP/AD 伺服器並不支援", "_%s group found_::_%s groups found_" : ["找到 %s 群組"], "_%s user found_::_%s users found_" : ["找到 %s 使用者"], "Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "無法偵測使用者的顯示名稱,請您自行在ldap設定中指定", @@ -43,19 +55,43 @@ "Search groups" : "搜尋群組", "Available groups" : "可用的群組", "Selected groups" : "已選擇的群組", + "Edit LDAP Query" : "編輯LDAP Query", "LDAP Filter:" : "LDAP 過慮器:", + "Verify settings and count groups" : "驗證設定並計算群組數", + "When logging in, %s will find the user based on the following attributes:" : "當登入%s時,將會根據以下屬性找到使用者 :", + "LDAP / AD Username:" : "LDAP / AD 使用者名稱:", + "LDAP / AD Email Address:" : "LDAP / AD 電子郵件:", + "Other Attributes:" : "其他屬性:", + "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "試圖登入時會定義要套用的篩選器。登入過程中%%uid會取代使用者名稱。例如:\"uid=%%uid\"", + "Test Loginname" : "測試登入姓名", + "Verify settings" : "驗證設定", + "1. Server" : "1. 伺服器", + "%s. Server:" : "%s. 伺服器:", + "Add a new and blank configuration" : "新增一個空白的設定檔", + "Copy current configuration into new directory binding" : "複製目前的設定檔到新目錄", + "Delete the current configuration" : "刪除目前的設定檔", "Host" : "主機", "You can omit the protocol, except you require SSL. Then start with ldaps://" : "若您不需要 SSL 加密連線則不需輸入通訊協定,反之請輸入 ldaps://", "Port" : "連接埠", + "Detect Port" : "偵測連接阜", "User DN" : "User DN", "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "客戶端使用者的DN與特定字詞的連結需要完善,例如:uid=agent,dc=example,dc=com。若是匿名連接,則將DN與密碼欄位留白。", "Password" : "密碼", "For anonymous access, leave DN and Password empty." : "匿名連接時請將 DN 與密碼欄位留白", "One Base DN per line" : "一行一個 Base DN", "You can specify Base DN for users and groups in the Advanced tab" : "您可以在進階標籤頁裡面指定使用者及群組的 Base DN", + "Detect Base DN" : "偵測 Base DN", + "Test Base DN" : "測試 Base DN", + "Manually enter LDAP filters (recommended for large directories)" : "手動輸入 LDAP篩選器 (建議在大型的資料環境)", + "Limit %s access to users meeting these criteria:" : "當遇到以下標準時,限制%s存取使用者:", + "The filter specifies which LDAP users shall have access to the %s instance." : "篩選起指定哪些LDAP的使用者應該擁有存取%s的權限", + "Verify settings and count users" : "驗證設定並計算使用者數", + "Saving" : "儲存", "Back" : "返回", "Continue" : "繼續", + "LDAP" : "LDAP", "Advanced" : "進階", + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>警告:</b> 應用程式user_ldap和user_webdavauth互不相容。可能會造成無法預期的結果。請要求您的系統管理員將兩者其中之一停用。", "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>警告:</b>沒有安裝 PHP LDAP 模組,後端系統將無法運作,請要求您的系統管理員安裝模組。", "Connection Settings" : "連線設定", "Configuration Active" : "設定使用中", @@ -65,6 +101,7 @@ "Backup (Replica) Port" : "備用(複本)連接埠", "Disable Main Server" : "停用主伺服器", "Turn off SSL certificate validation." : "關閉 SSL 憑證檢查", + "Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." : "不建議,請僅在測試時使用!如果連線只能在此設定下工作,請匯入LDAP伺服器的SSL認證到您的伺服器%s上", "Cache Time-To-Live" : "快取的存活時間", "in seconds. A change empties the cache." : "以秒為單位。變更後會清空快取。", "Directory Settings" : "目錄設定", @@ -85,6 +122,9 @@ "Email Field" : "電郵欄位", "User Home Folder Naming Rule" : "使用者家目錄的命名規則", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." : "使用者名稱請留白(預設)。若不留白請指定一個LDAP/AD屬性。", - "Internal Username" : "內部使用者名稱" + "Internal Username" : "內部使用者名稱", + "Internal Username Attribute:" : "內部使用者名稱屬性:", + "UUID Attribute for Users:" : "使用者的UUID值:", + "UUID Attribute for Groups:" : "群組的UUID值:" },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file diff --git a/apps/user_ldap/lib/wizard.php b/apps/user_ldap/lib/wizard.php index 0c7fecfdb64..e53ff35cfd6 100644 --- a/apps/user_ldap/lib/wizard.php +++ b/apps/user_ldap/lib/wizard.php @@ -1290,9 +1290,13 @@ class Wizard extends LDAPUtility { if(!is_null($this->cr)) { return $this->cr; } - $cr = $this->ldap->connect( - $this->configuration->ldapHost.':'.$this->configuration->ldapPort, - $this->configuration->ldapPort); + + $host = $this->configuration->ldapHost; + if(strpos($host, '://') !== false) { + //ldap_connect ignores port parameter when URLs are passed + $host .= ':' . $this->configuration->ldapPort; + } + $cr = $this->ldap->connect($host, $this->configuration->ldapPort); $this->ldap->setOption($cr, LDAP_OPT_PROTOCOL_VERSION, 3); $this->ldap->setOption($cr, LDAP_OPT_REFERRALS, 0); diff --git a/core/css/global.css b/core/css/global.css new file mode 100644 index 00000000000..9511d4324fa --- /dev/null +++ b/core/css/global.css @@ -0,0 +1,50 @@ +/* Copyright (c) 2015, Raghu Nayyar, http://raghunayyar.com + This file is licensed under the Affero General Public License version 3 or later. + See the COPYING-README file. */ + +/* Global Components */ + +.pull-left { + float: left; +} + +.pull-right { + float: right; +} + +.clear-left { + clear: left; +} + +.clear-right { + clear: right; +} + +.clear-both { + clear: both; +} + +.hidden { + display: none; +} + +.hidden-visually { + position: absolute; + left:-10000px; + top: auto; + width: 1px; + height: 1px; + overflow: hidden; +} + +.bold { + font-weight:600; +} + +.center { + text-align:center; +} + +.inlineblock { + display: inline-block; +}
\ No newline at end of file diff --git a/core/css/styles.css b/core/css/styles.css index ddf72a34db5..15325eada33 100644 --- a/core/css/styles.css +++ b/core/css/styles.css @@ -860,26 +860,6 @@ html.ie8 #body-login form input[type="checkbox"] { height: 70px; } - - - -/* VARIOUS REUSABLE SELECTORS */ -.hidden { - display: none; -} -.hidden-visually { - position: absolute; - left:-10000px; - top: auto; - width: 1px; - height: 1px; - overflow: hidden; -} - -.bold { font-weight:600; } -.center { text-align:center; } -.inlineblock { display: inline-block; } - /* round profile photos */ .avatar, .avatar img, diff --git a/core/l10n/da.js b/core/l10n/da.js index cce52f15b05..795dc5cb7b9 100644 --- a/core/l10n/da.js +++ b/core/l10n/da.js @@ -6,14 +6,20 @@ OC.L10N.register( "Turned on maintenance mode" : "Startede vedligeholdelsestilstand", "Turned off maintenance mode" : "standsede vedligeholdelsestilstand", "Maintenance mode is kept active" : "Vedligeholdelsestilstanden holdes kørende", + "Updating database schema" : "Opdaterer database schema", "Updated database" : "Opdaterede database", + "Checking whether the database schema can be updated (this can take a long time depending on the database size)" : "Tjekker om database schema'et kan opdateres (dette kan tage lang tid afhængig af databasens størrelse)", "Checked database schema update" : "Tjekket database schema opdatering", + "Checking updates of apps" : "Tjekker opdatering af apps", + "Checking whether the database schema for %s can be updated (this can take a long time depending on the database size)" : "Tjekker om database schema'et for %s kan opdateres (dette kan tage lang tid afhængig af databasens størrelse)", "Checked database schema update for apps" : "Tjekkede databaseskemaets opdatering for apps", "Updated \"%s\" to %s" : "Opdaterede \"%s\" til %s", "Repair warning: " : "Reparationsadvarsel:", "Repair error: " : "Reparationsfejl:", "Set log level to debug - current level: \"%s\"" : "Sæt log niveau til fejlfinding - nuværende niveau: \"%s\"", "Reset log level to \"%s\"" : "Nulstil log niveau til \"%s\"", + "%s (3rdparty)" : "%s (3rdparty)", + "%s (incompatible)" : "%s (inkombatible)", "Following apps have been disabled: %s" : "Følgende apps er blevet deaktiveret: %s", "Already up to date" : "Allerede opdateret", "File is too big" : "Filen er for stor", @@ -21,6 +27,7 @@ OC.L10N.register( "No image or file provided" : "Ingen fil eller billede givet", "Unknown filetype" : "Ukendt filtype", "Invalid image" : "Ugyldigt billede", + "An error occurred. Please contact your admin." : "Der opstod et problem. Kontakt venligst administratoren.", "No temporary profile picture available, try again" : "Intet midlertidigt profilbillede tilgængeligt, prøv igen", "No crop data provided" : "Ingen beskæringsdata give", "No valid crop data provided" : "Der er ikke angivet gyldige data om beskæring", @@ -169,7 +176,9 @@ OC.L10N.register( "Hello {name}" : "Hej {name}", "_download %n file_::_download %n files_" : ["hent %n fil","hent %n filer"], "{version} is available. Get more information on how to update." : "{version} er tilgængelig. Få mere information om hvordan du opdaterer.", + "The upgrade is in progress, leaving this page might interrupt the process in some environments." : "Opgraderingen er i gang, forlader du denne side kan det afbryde processen.", "Updating {productName} to version {version}, this may take a while." : "Opdaterer {productName} til version {version}, det kan tage et stykke tid.", + "An error occurred." : "Der opstod en fejl.", "Please reload the page." : "Genindlæs venligst siden", "The update was unsuccessful. " : "Opdateringen blev ikke gennemført.", "The update was successful. There were warnings." : "Opdateringen blev gennemført. Der fremkom advarsler.", @@ -242,6 +251,7 @@ OC.L10N.register( "Finishing …" : "Færdigbehandler ...", "Need help?" : "Brug for hjælp?", "See the documentation" : "Se dokumentationen", + "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Hej med dig,<br><br>Dette er blot for at informere dig om, at %s har delt <strong>%s</strong> med dig.<br><a href=\"%s\">Se det her!</a><br><br>", "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Denne applikation kræver JavaScript for at fungere korrekt. {linkstart}Slå venligst JavaScript til{linkend} og genindlæs siden. ", "Log out" : "Log ud", "Search" : "Søg", @@ -251,8 +261,8 @@ OC.L10N.register( "Please try again or contact your administrator." : "Kontakt venligst din administrator.", "Log in" : "Log ind", "Wrong password. Reset it?" : "Forkert kodeord. Skal det nulstilles?", + "Stay logged in" : "Forbliv logget ind", "Alternative Logins" : "Alternative logins", - "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Hej med dig,<br><br>Dette er blot for at informere dig om, at %s har delt <strong>%s</strong> med dig.<br><a href=\"%s\">Se det her!</a><br><br>", "This ownCloud instance is currently in single user mode." : "Denne ownCloud instans er lige nu i enkeltbruger tilstand.", "This means only administrators can use the instance." : "Det betyder at det kun er administrator, som kan benytte ownCloud.", "Contact your system administrator if this message persists or appeared unexpectedly." : "Kontakt systemadministratoren, hvis denne meddelelse fortsætter eller optrådte uventet.", diff --git a/core/l10n/da.json b/core/l10n/da.json index 962743e0abf..f4f156a69be 100644 --- a/core/l10n/da.json +++ b/core/l10n/da.json @@ -4,14 +4,20 @@ "Turned on maintenance mode" : "Startede vedligeholdelsestilstand", "Turned off maintenance mode" : "standsede vedligeholdelsestilstand", "Maintenance mode is kept active" : "Vedligeholdelsestilstanden holdes kørende", + "Updating database schema" : "Opdaterer database schema", "Updated database" : "Opdaterede database", + "Checking whether the database schema can be updated (this can take a long time depending on the database size)" : "Tjekker om database schema'et kan opdateres (dette kan tage lang tid afhængig af databasens størrelse)", "Checked database schema update" : "Tjekket database schema opdatering", + "Checking updates of apps" : "Tjekker opdatering af apps", + "Checking whether the database schema for %s can be updated (this can take a long time depending on the database size)" : "Tjekker om database schema'et for %s kan opdateres (dette kan tage lang tid afhængig af databasens størrelse)", "Checked database schema update for apps" : "Tjekkede databaseskemaets opdatering for apps", "Updated \"%s\" to %s" : "Opdaterede \"%s\" til %s", "Repair warning: " : "Reparationsadvarsel:", "Repair error: " : "Reparationsfejl:", "Set log level to debug - current level: \"%s\"" : "Sæt log niveau til fejlfinding - nuværende niveau: \"%s\"", "Reset log level to \"%s\"" : "Nulstil log niveau til \"%s\"", + "%s (3rdparty)" : "%s (3rdparty)", + "%s (incompatible)" : "%s (inkombatible)", "Following apps have been disabled: %s" : "Følgende apps er blevet deaktiveret: %s", "Already up to date" : "Allerede opdateret", "File is too big" : "Filen er for stor", @@ -19,6 +25,7 @@ "No image or file provided" : "Ingen fil eller billede givet", "Unknown filetype" : "Ukendt filtype", "Invalid image" : "Ugyldigt billede", + "An error occurred. Please contact your admin." : "Der opstod et problem. Kontakt venligst administratoren.", "No temporary profile picture available, try again" : "Intet midlertidigt profilbillede tilgængeligt, prøv igen", "No crop data provided" : "Ingen beskæringsdata give", "No valid crop data provided" : "Der er ikke angivet gyldige data om beskæring", @@ -167,7 +174,9 @@ "Hello {name}" : "Hej {name}", "_download %n file_::_download %n files_" : ["hent %n fil","hent %n filer"], "{version} is available. Get more information on how to update." : "{version} er tilgængelig. Få mere information om hvordan du opdaterer.", + "The upgrade is in progress, leaving this page might interrupt the process in some environments." : "Opgraderingen er i gang, forlader du denne side kan det afbryde processen.", "Updating {productName} to version {version}, this may take a while." : "Opdaterer {productName} til version {version}, det kan tage et stykke tid.", + "An error occurred." : "Der opstod en fejl.", "Please reload the page." : "Genindlæs venligst siden", "The update was unsuccessful. " : "Opdateringen blev ikke gennemført.", "The update was successful. There were warnings." : "Opdateringen blev gennemført. Der fremkom advarsler.", @@ -240,6 +249,7 @@ "Finishing …" : "Færdigbehandler ...", "Need help?" : "Brug for hjælp?", "See the documentation" : "Se dokumentationen", + "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Hej med dig,<br><br>Dette er blot for at informere dig om, at %s har delt <strong>%s</strong> med dig.<br><a href=\"%s\">Se det her!</a><br><br>", "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Denne applikation kræver JavaScript for at fungere korrekt. {linkstart}Slå venligst JavaScript til{linkend} og genindlæs siden. ", "Log out" : "Log ud", "Search" : "Søg", @@ -249,8 +259,8 @@ "Please try again or contact your administrator." : "Kontakt venligst din administrator.", "Log in" : "Log ind", "Wrong password. Reset it?" : "Forkert kodeord. Skal det nulstilles?", + "Stay logged in" : "Forbliv logget ind", "Alternative Logins" : "Alternative logins", - "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Hej med dig,<br><br>Dette er blot for at informere dig om, at %s har delt <strong>%s</strong> med dig.<br><a href=\"%s\">Se det her!</a><br><br>", "This ownCloud instance is currently in single user mode." : "Denne ownCloud instans er lige nu i enkeltbruger tilstand.", "This means only administrators can use the instance." : "Det betyder at det kun er administrator, som kan benytte ownCloud.", "Contact your system administrator if this message persists or appeared unexpectedly." : "Kontakt systemadministratoren, hvis denne meddelelse fortsætter eller optrådte uventet.", diff --git a/core/l10n/el.js b/core/l10n/el.js index 10cbaf032ce..b0a8230e650 100644 --- a/core/l10n/el.js +++ b/core/l10n/el.js @@ -6,14 +6,20 @@ OC.L10N.register( "Turned on maintenance mode" : "Η κατάσταση συντήρησης ενεργοποιήθηκε", "Turned off maintenance mode" : "Η κατάσταση συντήρησης απενεργοποιήθηκε", "Maintenance mode is kept active" : "Η λειτουργία συντήρησης διατηρήθηκε ενεργή", + "Updating database schema" : "Ένημέρωση σχήματος βάσης δεδομένων", "Updated database" : "Ενημερωμένη βάση δεδομένων", + "Checking whether the database schema can be updated (this can take a long time depending on the database size)" : "Έλεγχος αν το σχήμα της βάσης δεδομένων μπορεί να ενημερωθεί (αυτό μπορεί να πάρει πολλή ώρα ανάλογα με το μέγεθος της βάσης δεδομένων)", "Checked database schema update" : "Έλεγχος ενημέρωσης σχήματος βάσης δεδομένων", + "Checking updates of apps" : "Έλεγχος ενημερώσεων εφαρμογών", + "Checking whether the database schema for %s can be updated (this can take a long time depending on the database size)" : "Έλεγχος αν το σχήμα της βάσης δεδομένων για %s μπορεί να ενημερωθεί (αυτό μπορεί να πάρει πολλή ώρα ανάλογα με το μέγεθος της βάσης δεδομένων)", "Checked database schema update for apps" : "Έλεγχος ενημέρωσης σχήματος βάσης δεδομένων για εφαρμογές", "Updated \"%s\" to %s" : "Αναβαθμίστηκε \"%s\" σε %s", "Repair warning: " : "Προειδοποίηση διόρθωσης:", "Repair error: " : "Σφάλμα διόρθωσης:", "Set log level to debug - current level: \"%s\"" : "Καθορισμός του επιπέδου καταγραφής σε αποσφαλμάτωση - τρέχον επίπεδο: \"%s\"", "Reset log level to \"%s\"" : "Επαναφορά επιπέδου καταγραφής σε \"%s\"", + "%s (3rdparty)" : "%s (3ου μέρους)", + "%s (incompatible)" : "%s (ασύμβατη)", "Following apps have been disabled: %s" : "Οι ακόλουθες εφαρμογές έχουν απενεργοποιηθεί: %s", "Already up to date" : "Ήδη ενημερωμένο", "File is too big" : "Το αρχείο είναι πολύ μεγάλο", @@ -171,6 +177,7 @@ OC.L10N.register( "Hello {name}" : "Γεια σου {name}", "_download %n file_::_download %n files_" : ["λήψη %n αρχείου","λήψη %n αρχείων"], "{version} is available. Get more information on how to update." : "Η έκδοση {version} είναι διαθέσιμη. Δείτε περισσότερες πληροφορίες για το πως να κάνετε την ενημέρωση.", + "The upgrade is in progress, leaving this page might interrupt the process in some environments." : "Η αναβάθμιση είναι σε εξέλιξη, αν φύγετε από αυτή τη σελίδα μπορεί να διακοπεί η διαδικασία σε ορισμένα περιβάλλοντα χρήσης.", "Updating {productName} to version {version}, this may take a while." : "Ενημέρωση του {productName} στην έκδοση {version}, αυτό μπορεί να διαρκέσει λίγη ώρα.", "An error occurred." : "Παρουσιάστηκε σφάλμα", "Please reload the page." : "Παρακαλώ επαναφορτώστε τη σελίδα.", @@ -255,6 +262,7 @@ OC.L10N.register( "Please try again or contact your administrator." : "Παρακαλώ δοκιμάστε ξανά ή επικοινωνήστε με τον διαχειριστή σας.", "Log in" : "Είσοδος", "Wrong password. Reset it?" : "Λάθος Κωδικός. Επαναφορά;", + "Stay logged in" : "Μείνετε συνδεδεμένος", "Alternative Logins" : "Εναλλακτικές Συνδέσεις", "This ownCloud instance is currently in single user mode." : "Αυτή η εγκατάσταση ownCloud είναι τώρα σε κατάσταση ενός χρήστη.", "This means only administrators can use the instance." : "Αυτό σημαίνει ότι μόνο διαχειριστές μπορούν να χρησιμοποιήσουν την εγκατάσταση.", diff --git a/core/l10n/el.json b/core/l10n/el.json index d2d7e7c4676..f2e4430f2db 100644 --- a/core/l10n/el.json +++ b/core/l10n/el.json @@ -4,14 +4,20 @@ "Turned on maintenance mode" : "Η κατάσταση συντήρησης ενεργοποιήθηκε", "Turned off maintenance mode" : "Η κατάσταση συντήρησης απενεργοποιήθηκε", "Maintenance mode is kept active" : "Η λειτουργία συντήρησης διατηρήθηκε ενεργή", + "Updating database schema" : "Ένημέρωση σχήματος βάσης δεδομένων", "Updated database" : "Ενημερωμένη βάση δεδομένων", + "Checking whether the database schema can be updated (this can take a long time depending on the database size)" : "Έλεγχος αν το σχήμα της βάσης δεδομένων μπορεί να ενημερωθεί (αυτό μπορεί να πάρει πολλή ώρα ανάλογα με το μέγεθος της βάσης δεδομένων)", "Checked database schema update" : "Έλεγχος ενημέρωσης σχήματος βάσης δεδομένων", + "Checking updates of apps" : "Έλεγχος ενημερώσεων εφαρμογών", + "Checking whether the database schema for %s can be updated (this can take a long time depending on the database size)" : "Έλεγχος αν το σχήμα της βάσης δεδομένων για %s μπορεί να ενημερωθεί (αυτό μπορεί να πάρει πολλή ώρα ανάλογα με το μέγεθος της βάσης δεδομένων)", "Checked database schema update for apps" : "Έλεγχος ενημέρωσης σχήματος βάσης δεδομένων για εφαρμογές", "Updated \"%s\" to %s" : "Αναβαθμίστηκε \"%s\" σε %s", "Repair warning: " : "Προειδοποίηση διόρθωσης:", "Repair error: " : "Σφάλμα διόρθωσης:", "Set log level to debug - current level: \"%s\"" : "Καθορισμός του επιπέδου καταγραφής σε αποσφαλμάτωση - τρέχον επίπεδο: \"%s\"", "Reset log level to \"%s\"" : "Επαναφορά επιπέδου καταγραφής σε \"%s\"", + "%s (3rdparty)" : "%s (3ου μέρους)", + "%s (incompatible)" : "%s (ασύμβατη)", "Following apps have been disabled: %s" : "Οι ακόλουθες εφαρμογές έχουν απενεργοποιηθεί: %s", "Already up to date" : "Ήδη ενημερωμένο", "File is too big" : "Το αρχείο είναι πολύ μεγάλο", @@ -169,6 +175,7 @@ "Hello {name}" : "Γεια σου {name}", "_download %n file_::_download %n files_" : ["λήψη %n αρχείου","λήψη %n αρχείων"], "{version} is available. Get more information on how to update." : "Η έκδοση {version} είναι διαθέσιμη. Δείτε περισσότερες πληροφορίες για το πως να κάνετε την ενημέρωση.", + "The upgrade is in progress, leaving this page might interrupt the process in some environments." : "Η αναβάθμιση είναι σε εξέλιξη, αν φύγετε από αυτή τη σελίδα μπορεί να διακοπεί η διαδικασία σε ορισμένα περιβάλλοντα χρήσης.", "Updating {productName} to version {version}, this may take a while." : "Ενημέρωση του {productName} στην έκδοση {version}, αυτό μπορεί να διαρκέσει λίγη ώρα.", "An error occurred." : "Παρουσιάστηκε σφάλμα", "Please reload the page." : "Παρακαλώ επαναφορτώστε τη σελίδα.", @@ -253,6 +260,7 @@ "Please try again or contact your administrator." : "Παρακαλώ δοκιμάστε ξανά ή επικοινωνήστε με τον διαχειριστή σας.", "Log in" : "Είσοδος", "Wrong password. Reset it?" : "Λάθος Κωδικός. Επαναφορά;", + "Stay logged in" : "Μείνετε συνδεδεμένος", "Alternative Logins" : "Εναλλακτικές Συνδέσεις", "This ownCloud instance is currently in single user mode." : "Αυτή η εγκατάσταση ownCloud είναι τώρα σε κατάσταση ενός χρήστη.", "This means only administrators can use the instance." : "Αυτό σημαίνει ότι μόνο διαχειριστές μπορούν να χρησιμοποιήσουν την εγκατάσταση.", diff --git a/db_structure.xml b/db_structure.xml index 6efcf497cf7..8135746233e 100644 --- a/db_structure.xml +++ b/db_structure.xml @@ -129,67 +129,6 @@ <table> - <name>*dbprefix*file_map</name> - - <declaration> - - <field> - <name>logic_path</name> - <type>text</type> - <default></default> - <notnull>true</notnull> - <length>512</length> - </field> - - <field> - <name>logic_path_hash</name> - <type>text</type> - <default></default> - <notnull>true</notnull> - <length>32</length> - </field> - - <field> - <name>physic_path</name> - <type>text</type> - <default></default> - <notnull>true</notnull> - <length>512</length> - </field> - - <field> - <name>physic_path_hash</name> - <type>text</type> - <default></default> - <notnull>true</notnull> - <length>32</length> - </field> - - <index> - <name>file_map_lp_index</name> - <primary>true</primary> - <unique>true</unique> - <field> - <name>logic_path_hash</name> - <sorting>ascending</sorting> - </field> - </index> - - <index> - <name>file_map_pp_index</name> - <unique>true</unique> - <field> - <name>physic_path_hash</name> - <sorting>ascending</sorting> - </field> - </index> - - </declaration> - - </table> - - <table> - <!-- Bidirectional Map for Mimetypes and Mimetype Id - Assigns each mimetype (and supertype) a unique mimetype id integer. diff --git a/lib/l10n/da.js b/lib/l10n/da.js index db939815143..928d2f11adb 100644 --- a/lib/l10n/da.js +++ b/lib/l10n/da.js @@ -87,6 +87,7 @@ OC.L10N.register( "Sharing %s failed, because the backend does not allow shares from type %i" : "Deling af %s mislykkedes, fordi backenden ikke tillader delinger fra typen %i", "Sharing %s failed, because the file does not exist" : "Deling af %s mislykkedes, fordi filen ikke eksisterer", "You are not allowed to share %s" : "Du har ikke tilladelse til at dele %s", + "Sharing %s failed, because you can not share with yourself" : "Deling af %s mislykkedes, fordi du ikke kan dele med dig selv", "Sharing %s failed, because the user %s does not exist" : "Der skete en fejl ved deling af %s, brugeren %s eksistere ikke", "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "Der skete en fejl ved deling af %s, brugeren %s er ikke medlem af nogle grupper som %s er medlem af", "Sharing %s failed, because this item is already shared with %s" : "Der skete en fejl ved deling af %s, objektet er allerede delt med %s", @@ -105,6 +106,7 @@ OC.L10N.register( "Sharing backend %s must implement the interface OCP\\Share_Backend" : "Delingsbackend'en %s skal implementere grænsefladen OCP\\Share_Backend", "Sharing backend %s not found" : "Delingsbackend'en %s blev ikke fundet", "Sharing backend for %s not found" : "Delingsbackend'en for %s blev ikke fundet", + "Sharing failed, because the user %s is the original sharer" : "Deling mislykkedes, fordi brugeren %s er den som delte oprindeligt", "Sharing %s failed, because the permissions exceed permissions granted to %s" : "Deling af %s mislykkedes, fordi tilladelserne overskred de tillaldelser som %s var tildelt", "Sharing %s failed, because resharing is not allowed" : "Deling af %s mislykkedes, fordi videredeling ikke er tilladt", "Sharing %s failed, because the sharing backend for %s could not find its source" : "Deling af %s mislykkedes, fordi back-enden ikke kunne finde kilden til %s", diff --git a/lib/l10n/da.json b/lib/l10n/da.json index e06ef9fcfc6..a157f4a21e1 100644 --- a/lib/l10n/da.json +++ b/lib/l10n/da.json @@ -85,6 +85,7 @@ "Sharing %s failed, because the backend does not allow shares from type %i" : "Deling af %s mislykkedes, fordi backenden ikke tillader delinger fra typen %i", "Sharing %s failed, because the file does not exist" : "Deling af %s mislykkedes, fordi filen ikke eksisterer", "You are not allowed to share %s" : "Du har ikke tilladelse til at dele %s", + "Sharing %s failed, because you can not share with yourself" : "Deling af %s mislykkedes, fordi du ikke kan dele med dig selv", "Sharing %s failed, because the user %s does not exist" : "Der skete en fejl ved deling af %s, brugeren %s eksistere ikke", "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "Der skete en fejl ved deling af %s, brugeren %s er ikke medlem af nogle grupper som %s er medlem af", "Sharing %s failed, because this item is already shared with %s" : "Der skete en fejl ved deling af %s, objektet er allerede delt med %s", @@ -103,6 +104,7 @@ "Sharing backend %s must implement the interface OCP\\Share_Backend" : "Delingsbackend'en %s skal implementere grænsefladen OCP\\Share_Backend", "Sharing backend %s not found" : "Delingsbackend'en %s blev ikke fundet", "Sharing backend for %s not found" : "Delingsbackend'en for %s blev ikke fundet", + "Sharing failed, because the user %s is the original sharer" : "Deling mislykkedes, fordi brugeren %s er den som delte oprindeligt", "Sharing %s failed, because the permissions exceed permissions granted to %s" : "Deling af %s mislykkedes, fordi tilladelserne overskred de tillaldelser som %s var tildelt", "Sharing %s failed, because resharing is not allowed" : "Deling af %s mislykkedes, fordi videredeling ikke er tilladt", "Sharing %s failed, because the sharing backend for %s could not find its source" : "Deling af %s mislykkedes, fordi back-enden ikke kunne finde kilden til %s", diff --git a/lib/l10n/el.js b/lib/l10n/el.js index 7b0dffa8bfb..841661842a4 100644 --- a/lib/l10n/el.js +++ b/lib/l10n/el.js @@ -84,6 +84,7 @@ OC.L10N.register( "Sharing %s failed, because the backend does not allow shares from type %i" : "Αποτυχία διαμοιρασμού %s, γιατί το σύστημα υποστήριξης δεν επιτρέπει κοινόχρηστα τύπου %i", "Sharing %s failed, because the file does not exist" : "Ο διαμοιρασμός του %s απέτυχε, γιατί το αρχείο δεν υπάρχει", "You are not allowed to share %s" : "Δεν επιτρέπεται να διαμοιράσετε τον πόρο %s", + "Sharing %s failed, because you can not share with yourself" : "Ο διαμοιρασμός του %s απέτυχε, γιατί δεν μπορείτε να διαμοιραστείτε με τον εαυτό σας.", "Sharing %s failed, because the user %s does not exist" : "Ο διαμοιρασμός του %s απέτυχε, γιατί ο χρήστης %s δεν υπάρχει", "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "Ο διαμοιρασμός του %s απέτυχε, γιατί ο χρήστης %s δεν είναι μέλος καμίας ομάδας στην οποία ο χρήστης %s είναι μέλος", "Sharing %s failed, because this item is already shared with %s" : "Ο διαμοιρασμός του %s απέτυχε, γιατί το αντικείμενο είναι διαμοιρασμένο ήδη με τον χρήστη %s", @@ -102,6 +103,7 @@ OC.L10N.register( "Sharing backend %s must implement the interface OCP\\Share_Backend" : "Το σύστημα διαμοιρασμού %s πρέπει να υλοποιεί την διεπαφή OCP\\Share_Backend", "Sharing backend %s not found" : "Το σύστημα διαμοιρασμού %s δεν βρέθηκε", "Sharing backend for %s not found" : "Το σύστημα διαμοιρασμού για το %s δεν βρέθηκε", + "Sharing failed, because the user %s is the original sharer" : "Ο διαμοιρασμός του %s απέτυχε, γιατί το αντικείμενο είναι διαμοιρασμένο αρχικά από τον ίδιο χρήστη.", "Sharing %s failed, because the permissions exceed permissions granted to %s" : "Ο διαμοιρασμός του %s απέτυχε, γιατί τα δικαιώματα υπερτερούν αυτά που είναι ορισμένα για το %s", "Sharing %s failed, because resharing is not allowed" : "Ο διαμοιρασμός του %s απέτυχε, γιατί δεν επιτρέπεται ο επαναδιαμοιρασμός", "Sharing %s failed, because the sharing backend for %s could not find its source" : "Ο διαμοιρασμός του %s απέτυχε, γιατί δεν ήταν δυνατό να εντοπίσει την πηγή το σύστημα διαμοιρασμού για το %s ", diff --git a/lib/l10n/el.json b/lib/l10n/el.json index 65524a490f3..9cc179382b7 100644 --- a/lib/l10n/el.json +++ b/lib/l10n/el.json @@ -82,6 +82,7 @@ "Sharing %s failed, because the backend does not allow shares from type %i" : "Αποτυχία διαμοιρασμού %s, γιατί το σύστημα υποστήριξης δεν επιτρέπει κοινόχρηστα τύπου %i", "Sharing %s failed, because the file does not exist" : "Ο διαμοιρασμός του %s απέτυχε, γιατί το αρχείο δεν υπάρχει", "You are not allowed to share %s" : "Δεν επιτρέπεται να διαμοιράσετε τον πόρο %s", + "Sharing %s failed, because you can not share with yourself" : "Ο διαμοιρασμός του %s απέτυχε, γιατί δεν μπορείτε να διαμοιραστείτε με τον εαυτό σας.", "Sharing %s failed, because the user %s does not exist" : "Ο διαμοιρασμός του %s απέτυχε, γιατί ο χρήστης %s δεν υπάρχει", "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "Ο διαμοιρασμός του %s απέτυχε, γιατί ο χρήστης %s δεν είναι μέλος καμίας ομάδας στην οποία ο χρήστης %s είναι μέλος", "Sharing %s failed, because this item is already shared with %s" : "Ο διαμοιρασμός του %s απέτυχε, γιατί το αντικείμενο είναι διαμοιρασμένο ήδη με τον χρήστη %s", @@ -100,6 +101,7 @@ "Sharing backend %s must implement the interface OCP\\Share_Backend" : "Το σύστημα διαμοιρασμού %s πρέπει να υλοποιεί την διεπαφή OCP\\Share_Backend", "Sharing backend %s not found" : "Το σύστημα διαμοιρασμού %s δεν βρέθηκε", "Sharing backend for %s not found" : "Το σύστημα διαμοιρασμού για το %s δεν βρέθηκε", + "Sharing failed, because the user %s is the original sharer" : "Ο διαμοιρασμός του %s απέτυχε, γιατί το αντικείμενο είναι διαμοιρασμένο αρχικά από τον ίδιο χρήστη.", "Sharing %s failed, because the permissions exceed permissions granted to %s" : "Ο διαμοιρασμός του %s απέτυχε, γιατί τα δικαιώματα υπερτερούν αυτά που είναι ορισμένα για το %s", "Sharing %s failed, because resharing is not allowed" : "Ο διαμοιρασμός του %s απέτυχε, γιατί δεν επιτρέπεται ο επαναδιαμοιρασμός", "Sharing %s failed, because the sharing backend for %s could not find its source" : "Ο διαμοιρασμός του %s απέτυχε, γιατί δεν ήταν δυνατό να εντοπίσει την πηγή το σύστημα διαμοιρασμού για το %s ", diff --git a/lib/private/encryption/file.php b/lib/private/encryption/file.php index 5a7357b9e28..6d261f46d0f 100644 --- a/lib/private/encryption/file.php +++ b/lib/private/encryption/file.php @@ -27,6 +27,13 @@ class File implements \OCP\Encryption\IFile { /** @var Util */ protected $util; + /** + * cache results of already checked folders + * + * @var array + */ + protected $cache; + public function __construct(Util $util) { $this->util = $util; } @@ -53,10 +60,24 @@ class File implements \OCP\Encryption\IFile { $ownerPath = substr($ownerPath, strlen('/files')); $ownerPath = $this->util->stripPartialFileExtension($ownerPath); + + // first get the shares for the parent and cache the result so that we don't + // need to check all parents for every file + $parent = dirname($ownerPath); + if (isset($this->cache[$parent])) { + $resultForParents = $this->cache[$parent]; + } else { + $resultForParents = \OCP\Share::getUsersSharingFile($parent, $owner); + $this->cache[$parent] = $resultForParents; + } + $userIds = \array_merge($userIds, $resultForParents['users']); + $public = $resultForParents['public'] || $resultForParents['remote']; + + // Find out who, if anyone, is sharing the file - $result = \OCP\Share::getUsersSharingFile($ownerPath, $owner); - $userIds = \array_merge($userIds, $result['users']); - $public = $result['public'] || $result['remote']; + $resultForFile = \OCP\Share::getUsersSharingFile($ownerPath, $owner, false, false, false); + $userIds = \array_merge($userIds, $resultForFile['users']); + $public = $resultForFile['public'] || $resultForFile['remote'] || $public; // check if it is a group mount if (\OCP\App::isEnabled("files_external")) { diff --git a/lib/private/files/cache/watcher.php b/lib/private/files/cache/watcher.php index ff97a1f9c01..e660e56bfee 100644 --- a/lib/private/files/cache/watcher.php +++ b/lib/private/files/cache/watcher.php @@ -74,37 +74,58 @@ class Watcher { } /** - * check $path for updates + * check $path for updates and update if needed * * @param string $path * @param array $cachedEntry * @return boolean true if path was updated */ public function checkUpdate($path, $cachedEntry = null) { - if ($this->watchPolicy === self::CHECK_ALWAYS or ($this->watchPolicy === self::CHECK_ONCE and array_search($path, $this->checkedPaths) === false)) { - if (is_null($cachedEntry)) { - $cachedEntry = $this->cache->get($path); - } - $this->checkedPaths[] = $path; - if ($this->storage->hasUpdated($path, $cachedEntry['storage_mtime'])) { - if ($this->storage->is_dir($path)) { - $this->scanner->scan($path, Scanner::SCAN_SHALLOW); - } else { - $this->scanner->scanFile($path); - } - if ($cachedEntry['mimetype'] === 'httpd/unix-directory') { - $this->cleanFolder($path); - } - $this->cache->correctFolderSize($path); - return true; - } - return false; + if (is_null($cachedEntry)) { + $cachedEntry = $this->cache->get($path); + } + if ($this->needsUpdate($path, $cachedEntry)) { + $this->update($path, $cachedEntry); + return true; } else { return false; } } /** + * Update the cache for changes to $path + * + * @param string $path + * @param array $cachedData + */ + public function update($path, $cachedData) { + if ($this->storage->is_dir($path)) { + $this->scanner->scan($path, Scanner::SCAN_SHALLOW); + } else { + $this->scanner->scanFile($path); + } + if ($cachedData['mimetype'] === 'httpd/unix-directory') { + $this->cleanFolder($path); + } + $this->cache->correctFolderSize($path); + } + + /** + * Check if the cache for $path needs to be updated + * + * @param string $path + * @param array $cachedData + * @return bool + */ + public function needsUpdate($path, $cachedData) { + if ($this->watchPolicy === self::CHECK_ALWAYS or ($this->watchPolicy === self::CHECK_ONCE and array_search($path, $this->checkedPaths) === false)) { + $this->checkedPaths[] = $path; + return $this->storage->hasUpdated($path, $cachedData['storage_mtime']); + } + return false; + } + + /** * remove deleted files in $path from the cache * * @param string $path diff --git a/lib/private/files/view.php b/lib/private/files/view.php index a11df53705c..887b18530d7 100644 --- a/lib/private/files/view.php +++ b/lib/private/files/view.php @@ -1191,13 +1191,13 @@ class View { if ($storage) { $cache = $storage->getCache($internalPath); - try { - $this->lockFile($relativePath, ILockingProvider::LOCK_SHARED); - $data = $cache->get($internalPath); - $watcher = $storage->getWatcher($internalPath); + $data = $cache->get($internalPath); + $watcher = $storage->getWatcher($internalPath); + try { // if the file is not in the cache or needs to be updated, trigger the scanner and reload the data if (!$data) { + $this->lockFile($relativePath, ILockingProvider::LOCK_SHARED); if (!$storage->file_exists($internalPath)) { $this->unlockFile($relativePath, ILockingProvider::LOCK_SHARED); return false; @@ -1205,14 +1205,16 @@ class View { $scanner = $storage->getScanner($internalPath); $scanner->scan($internalPath, Cache\Scanner::SCAN_SHALLOW); $data = $cache->get($internalPath); - } else if (!Cache\Scanner::isPartialFile($internalPath) && $watcher->checkUpdate($internalPath, $data)) { + $this->unlockFile($relativePath, ILockingProvider::LOCK_SHARED); + } else if (!Cache\Scanner::isPartialFile($internalPath) && $watcher->needsUpdate($internalPath, $data)) { + $this->lockFile($relativePath, ILockingProvider::LOCK_SHARED); + $watcher->update($internalPath, $data); $this->updater->propagate($path); $data = $cache->get($internalPath); + $this->unlockFile($relativePath, ILockingProvider::LOCK_SHARED); } - $this->unlockFile($relativePath, ILockingProvider::LOCK_SHARED); } catch (LockedException $e) { - // dont try to update the cache when the file is locked - $data = $cache->get($internalPath); + // if the file is locked we just use the old cache info } if ($data and isset($data['fileid'])) { @@ -1278,12 +1280,11 @@ class View { */ $files = array(); + $data = $cache->get($internalPath); + $watcher = $storage->getWatcher($internalPath); try { - $this->lockFile($directory, ILockingProvider::LOCK_SHARED); - - $data = $cache->get($internalPath); - $watcher = $storage->getWatcher($internalPath); if (!$data or $data['size'] === -1) { + $this->lockFile($directory, ILockingProvider::LOCK_SHARED); if (!$storage->file_exists($internalPath)) { $this->unlockFile($directory, ILockingProvider::LOCK_SHARED); return array(); @@ -1291,20 +1292,21 @@ class View { $scanner = $storage->getScanner($internalPath); $scanner->scan($internalPath, Cache\Scanner::SCAN_SHALLOW); $data = $cache->get($internalPath); - } else if ($watcher->checkUpdate($internalPath, $data)) { + $this->unlockFile($directory, ILockingProvider::LOCK_SHARED); + } else if ($watcher->needsUpdate($internalPath, $data)) { + $this->lockFile($directory, ILockingProvider::LOCK_SHARED); + $watcher->update($internalPath, $data); $this->updater->propagate($path); $data = $cache->get($internalPath); + $this->unlockFile($directory, ILockingProvider::LOCK_SHARED); } - - $folderId = $data['fileid']; - $contents = $cache->getFolderContentsById($folderId); //TODO: mimetype_filter - - $this->unlockFile($directory, ILockingProvider::LOCK_SHARED); } catch (LockedException $e) { - // dont try to update the cache when the file is locked - $contents = $cache->getFolderContents($internalPath); + // if the file is locked we just use the old cache info } + $folderId = $data['fileid']; + $contents = $cache->getFolderContentsById($folderId); //TODO: mimetype_filter + foreach ($contents as $content) { if ($content['permissions'] === 0) { $content['permissions'] = $storage->getPermissions($content['path']); diff --git a/lib/private/ocs/corecapabilities.php b/lib/private/ocs/corecapabilities.php index 0fba7bfd7d7..f2d530a8419 100644 --- a/lib/private/ocs/corecapabilities.php +++ b/lib/private/ocs/corecapabilities.php @@ -49,7 +49,8 @@ class CoreCapabilities implements ICapability { public function getCapabilities() { return [ 'core' => [ - 'pollinterval' => $this->config->getSystemValue('pollinterval', 60) + 'pollinterval' => $this->config->getSystemValue('pollinterval', 60), + 'webdav-root' => $this->config->getSystemValue('webdav-root', 'remote.php/webdav'), ] ]; } diff --git a/lib/private/share/share.php b/lib/private/share/share.php index e79b2204a6f..0693a9c08fb 100644 --- a/lib/private/share/share.php +++ b/lib/private/share/share.php @@ -122,11 +122,12 @@ class Share extends Constants { * @param string $ownerUser owner of the file * @param boolean $includeOwner include owner to the list of users with access to the file * @param boolean $returnUserPaths Return an array with the user => path map + * @param boolean $recursive take all parent folders into account (default true) * @return array * @note $path needs to be relative to user data dir, e.g. 'file.txt' * not '/admin/data/file.txt' */ - public static function getUsersSharingFile($path, $ownerUser, $includeOwner = false, $returnUserPaths = false) { + public static function getUsersSharingFile($path, $ownerUser, $includeOwner = false, $returnUserPaths = false, $recursive = true) { Filesystem::initMountPoints($ownerUser); $shares = $sharePaths = $fileTargets = array(); @@ -252,7 +253,7 @@ class Share extends Constants { // let's get the parent for the next round $meta = $cache->get((int)$source); - if($meta !== false) { + if ($recursive === true && $meta !== false) { $source = (int)$meta['parent']; } else { $source = -1; diff --git a/lib/private/template.php b/lib/private/template.php index 5a08e15d95b..38527cdc461 100644 --- a/lib/private/template.php +++ b/lib/private/template.php @@ -108,6 +108,7 @@ class OC_Template extends \OC\Template\Base { OC_Util::addVendorStyle('jquery-ui/themes/base/jquery-ui',null,true); OC_Util::addStyle("multiselect",null,true); OC_Util::addStyle("fixes",null,true); + OC_Util::addStyle("global",null,true); OC_Util::addStyle("apps",null,true); OC_Util::addStyle("fonts",null,true); OC_Util::addStyle("icons",null,true); diff --git a/lib/public/share.php b/lib/public/share.php index 68f278005ed..86d1ffc9be2 100644 --- a/lib/public/share.php +++ b/lib/public/share.php @@ -80,13 +80,14 @@ class Share extends \OC\Share\Constants { * @param string $ownerUser owner of the file * @param bool $includeOwner include owner to the list of users with access to the file * @param bool $returnUserPaths Return an array with the user => path map + * @param bool $recursive take parent folders into account * @return array * @note $path needs to be relative to user data dir, e.g. 'file.txt' - * not '/admin/data/file.txt' - * @since 5.0.0 + * not '/admin/files/file.txt' + * @since 5.0.0 - $recursive was added in 9.0.0 */ - public static function getUsersSharingFile($path, $ownerUser, $includeOwner = false, $returnUserPaths = false) { - return \OC\Share\Share::getUsersSharingFile($path, $ownerUser, $includeOwner, $returnUserPaths); + public static function getUsersSharingFile($path, $ownerUser, $includeOwner = false, $returnUserPaths = false, $recursive = true) { + return \OC\Share\Share::getUsersSharingFile($path, $ownerUser, $includeOwner, $returnUserPaths, $recursive); } /** diff --git a/lib/repair/dropoldtables.php b/lib/repair/dropoldtables.php index cfe0df6cb5b..e8b0eba61d4 100644 --- a/lib/repair/dropoldtables.php +++ b/lib/repair/dropoldtables.php @@ -74,6 +74,7 @@ class DropOldTables extends BasicEmitter implements RepairStep { 'calendar_objects', 'calendar_share_calendar', 'calendar_share_event', + 'file_map', 'foldersize', 'fscache', 'locks', @@ -85,6 +86,8 @@ class DropOldTables extends BasicEmitter implements RepairStep { 'media_users', 'permissions', 'pictures_images_cache', + 'principalgroups', + 'principals', 'queuedtasks', 'sharing', ]; diff --git a/settings/ajax/geteveryonecount.php b/settings/ajax/geteveryonecount.php deleted file mode 100644 index 002c849fd39..00000000000 --- a/settings/ajax/geteveryonecount.php +++ /dev/null @@ -1,55 +0,0 @@ -<?php -/** - * @author Clark Tomlinson <fallen013@gmail.com> - * @author Lukas Reschke <lukas@owncloud.com> - * @author Morris Jobke <hey@morrisjobke.de> - * - * @copyright Copyright (c) 2015, ownCloud, Inc. - * @license AGPL-3.0 - * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * 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 Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see <http://www.gnu.org/licenses/> - * - */ - -OC_JSON::callCheck(); -OC_JSON::checkSubAdminUser(); - -$userCount = 0; - -$currentUser = \OC::$server->getUserSession()->getUser()->getUID(); - -if (!OC_User::isAdminUser($currentUser)) { - $groups = \OC::$server->getGroupManager()->getSubAdmin()->getSubAdminsGroups(\OC::$server->getUserSession()->getUser()); - // New class returns IGroup[] so convert back - foreach ($groups as $key => $group) { - $groups[$key] = $group->getGID(); - } - - - foreach ($groups as $group) { - $userCount += count(OC_Group::usersInGroup($group)); - - } -} else { - - $userCountArray = \OC::$server->getUserManager()->countUsers(); - - if (!empty($userCountArray)) { - foreach ($userCountArray as $classname => $usercount) { - $userCount += $usercount; - } - } -} - - -OC_JSON::success(array('count' => $userCount)); diff --git a/settings/controller/userscontroller.php b/settings/controller/userscontroller.php index 8183bc4739b..82483a76245 100644 --- a/settings/controller/userscontroller.php +++ b/settings/controller/userscontroller.php @@ -548,4 +548,41 @@ class UsersController extends Controller { ); } + /** + * Count all unique users visible for the current admin/subadmin. + * + * @NoAdminRequired + * + * @return DataResponse + */ + public function stats() { + $userCount = 0; + if ($this->isAdmin) { + $countByBackend = $this->userManager->countUsers(); + + if (!empty($countByBackend)) { + foreach ($countByBackend as $count) { + $userCount += $count; + } + } + } else { + $groups = $this->groupManager->getSubAdmin()->getSubAdminsGroups($this->userSession->getUser()); + + $uniqueUsers = []; + foreach ($groups as $group) { + foreach($group->getUsers() as $uid => $displayName) { + $uniqueUsers[$uid] = true; + } + } + + $userCount = count($uniqueUsers); + } + + return new DataResponse( + [ + 'totalUsers' => $userCount + ] + ); + } + } diff --git a/settings/js/users/groups.js b/settings/js/users/groups.js index c8d2ef7c5b1..2639191d918 100644 --- a/settings/js/users/groups.js +++ b/settings/js/users/groups.js @@ -304,10 +304,10 @@ GroupList = { $.ajax({ type: "GET", dataType: "json", - url: OC.generateUrl('/settings/ajax/geteveryonecount') + url: OC.generateUrl('/settings/users/stats') }).success(function (data) { - $('#everyonegroup').data('usercount', data.count); - $('#everyonecount').text(data.count); + $('#everyonegroup').data('usercount', data.totalUsers); + $('#everyonecount').text(data.totalUsers); }); } }; diff --git a/settings/l10n/el.js b/settings/l10n/el.js index e5b03bde347..ab9b47b366c 100644 --- a/settings/l10n/el.js +++ b/settings/l10n/el.js @@ -80,6 +80,7 @@ OC.L10N.register( "Uninstall" : "Απεγκατάσταση", "The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Η εφαρμογή έχει ενεργοποιηθεί αλλά χρειάζεται ενημέρωση. Θα μεταφερθείτε στη σελίδα ενημέρωσης σε 5 δευτερόλεπτα.", "App update" : "Ενημέρωση εφαρμογής", + "No apps found for \"{query}\"" : "Δεν βρέθηκαν εφαρμογές για \"{query\"}", "An error occurred: {message}" : "Παρουσιάστηκε σφάλμα: {message}", "Select a profile picture" : "Επιλογή εικόνας προφίλ", "Very weak password" : "Πολύ αδύναμο συνθηματικό", diff --git a/settings/l10n/el.json b/settings/l10n/el.json index 70d23d3da19..c355f70dd82 100644 --- a/settings/l10n/el.json +++ b/settings/l10n/el.json @@ -78,6 +78,7 @@ "Uninstall" : "Απεγκατάσταση", "The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Η εφαρμογή έχει ενεργοποιηθεί αλλά χρειάζεται ενημέρωση. Θα μεταφερθείτε στη σελίδα ενημέρωσης σε 5 δευτερόλεπτα.", "App update" : "Ενημέρωση εφαρμογής", + "No apps found for \"{query}\"" : "Δεν βρέθηκαν εφαρμογές για \"{query\"}", "An error occurred: {message}" : "Παρουσιάστηκε σφάλμα: {message}", "Select a profile picture" : "Επιλογή εικόνας προφίλ", "Very weak password" : "Πολύ αδύναμο συνθηματικό", diff --git a/settings/l10n/lt_LT.js b/settings/l10n/lt_LT.js index 75a9eab3986..2b739db71c9 100644 --- a/settings/l10n/lt_LT.js +++ b/settings/l10n/lt_LT.js @@ -19,6 +19,7 @@ OC.L10N.register( "Wrong admin recovery password. Please check the password and try again." : "Netinkamas administratoriau atkūrimo slaptažodis. Prašome pasitikrinti ir bandyti vėl.", "Unable to change password" : "Nepavyksta pakeisti slaptažodžio", "Enabled" : "Įjungta", + "Federated Cloud Sharing" : "Viešas dalijimasis padebesiu", "Saved" : "Išsaugoti", "Email sent" : "Laiškas išsiųstas", "Email saved" : "El. paštas išsaugotas", @@ -51,6 +52,7 @@ OC.L10N.register( "None" : "Nieko", "Login" : "Prisijungti", "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "Trūksta PHP modulio „fileinfo“. Labai rekomenduojame įjungti šį modulį, kad gauti geriausius rezultatus nustatant mime-tipą.", + "Open documentation" : "Atidaryti dokumentą", "Allow apps to use the Share API" : "Leidžia programoms naudoti Share API", "Allow public uploads" : "Leisti viešus įkėlimus", "days" : "dienos", diff --git a/settings/l10n/lt_LT.json b/settings/l10n/lt_LT.json index ee3c7ff0747..a8cd70f7dd6 100644 --- a/settings/l10n/lt_LT.json +++ b/settings/l10n/lt_LT.json @@ -17,6 +17,7 @@ "Wrong admin recovery password. Please check the password and try again." : "Netinkamas administratoriau atkūrimo slaptažodis. Prašome pasitikrinti ir bandyti vėl.", "Unable to change password" : "Nepavyksta pakeisti slaptažodžio", "Enabled" : "Įjungta", + "Federated Cloud Sharing" : "Viešas dalijimasis padebesiu", "Saved" : "Išsaugoti", "Email sent" : "Laiškas išsiųstas", "Email saved" : "El. paštas išsaugotas", @@ -49,6 +50,7 @@ "None" : "Nieko", "Login" : "Prisijungti", "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "Trūksta PHP modulio „fileinfo“. Labai rekomenduojame įjungti šį modulį, kad gauti geriausius rezultatus nustatant mime-tipą.", + "Open documentation" : "Atidaryti dokumentą", "Allow apps to use the Share API" : "Leidžia programoms naudoti Share API", "Allow public uploads" : "Leisti viešus įkėlimus", "days" : "dienos", diff --git a/settings/routes.php b/settings/routes.php index 10c3117c183..6ba38388d3a 100644 --- a/settings/routes.php +++ b/settings/routes.php @@ -47,6 +47,7 @@ $application->registerRoutes($this, [ ['name' => 'AppSettings#changeExperimentalConfigState', 'url' => '/settings/apps/experimental', 'verb' => 'POST'], ['name' => 'SecuritySettings#trustedDomains', 'url' => '/settings/admin/security/trustedDomains', 'verb' => 'POST'], ['name' => 'Users#setMailAddress', 'url' => '/settings/users/{id}/mailAddress', 'verb' => 'PUT'], + ['name' => 'Users#stats', 'url' => '/settings/users/stats', 'verb' => 'GET'], ['name' => 'LogSettings#setLogLevel', 'url' => '/settings/admin/log/level', 'verb' => 'POST'], ['name' => 'LogSettings#getEntries', 'url' => '/settings/admin/log/entries', 'verb' => 'GET'], ['name' => 'LogSettings#download', 'url' => '/settings/admin/log/download', 'verb' => 'GET'], @@ -69,8 +70,6 @@ $this->create('settings_admin', '/settings/admin') ->actionInclude('settings/admin.php'); // Settings ajax actions // users -$this->create('settings_ajax_everyonecount', '/settings/ajax/geteveryonecount') - ->actionInclude('settings/ajax/geteveryonecount.php'); $this->create('settings_ajax_setquota', '/settings/ajax/setquota.php') ->actionInclude('settings/ajax/setquota.php'); $this->create('settings_ajax_togglegroups', '/settings/ajax/togglegroups.php') diff --git a/settings/users.php b/settings/users.php index dac649aa828..2795032a161 100644 --- a/settings/users.php +++ b/settings/users.php @@ -70,7 +70,7 @@ $recoveryAdminEnabled = OC_App::isEnabled('encryption') && $config->getAppValue( 'encryption', 'recoveryAdminEnabled', null ); if($isAdmin) { - $subadmins = \OC::$server->getGroupManager()->getSubAdmin()->getAllSubAdmins(); + $subAdmins = \OC::$server->getGroupManager()->getSubAdmin()->getAllSubAdmins(); // New class returns IUser[] so convert back $result = []; foreach ($subAdmins as $subAdmin) { @@ -79,7 +79,7 @@ if($isAdmin) { 'uid' => $subAdmin['user']->getUID(), ]; } - $subadmins = $result; + $subAdmins = $result; }else{ /* Retrieve group IDs from $groups array, so we can pass that information into OC_Group::displayNamesInGroups() */ $gids = array(); @@ -88,7 +88,7 @@ if($isAdmin) { $gids[] = $group['id']; } } - $subadmins = false; + $subAdmins = false; } // load preset quotas @@ -108,7 +108,7 @@ $tmpl->assign('groups', $groups); $tmpl->assign('sortGroups', $sortGroupsBy); $tmpl->assign('adminGroup', $adminGroup); $tmpl->assign('isAdmin', (int)$isAdmin); -$tmpl->assign('subadmins', $subadmins); +$tmpl->assign('subadmins', $subAdmins); $tmpl->assign('numofgroups', count($groups) + count($adminGroup)); $tmpl->assign('quota_preset', $quotaPreset); $tmpl->assign('default_quota', $defaultQuota); diff --git a/tests/settings/controller/userscontrollertest.php b/tests/settings/controller/userscontrollertest.php index e30a98447ae..f4b05671ce8 100644 --- a/tests/settings/controller/userscontrollertest.php +++ b/tests/settings/controller/userscontrollertest.php @@ -1677,4 +1677,73 @@ class UsersControllerTest extends \Test\TestCase { $this->assertSame($responseCode, $response->getStatus()); } + public function testStatsAdmin() { + $this->container['IsAdmin'] = true; + + $this->container['UserManager'] + ->expects($this->at(0)) + ->method('countUsers') + ->will($this->returnValue([128, 44])); + + $expectedResponse = new DataResponse( + [ + 'totalUsers' => 172 + ] + ); + $response = $this->container['UsersController']->stats(); + $this->assertEquals($expectedResponse, $response); + } + + /** + * Tests that the subadmin stats return unique users, even + * when a user appears in several groups. + */ + public function testStatsSubAdmin() { + $this->container['IsAdmin'] = false; + + $user = $this->getMockBuilder('\OC\User\User') + ->disableOriginalConstructor()->getMock(); + + $this->container['UserSession'] + ->expects($this->once()) + ->method('getUser') + ->will($this->returnValue($user)); + + $group1 = $this->getMockBuilder('\OC\Group\Group') + ->disableOriginalConstructor()->getMock(); + $group1 + ->expects($this->once()) + ->method('getUsers') + ->will($this->returnValue(['foo' => 'M. Foo', 'admin' => 'S. Admin'])); + + $group2 = $this->getMockBuilder('\OC\Group\Group') + ->disableOriginalConstructor()->getMock(); + $group2 + ->expects($this->once()) + ->method('getUsers') + ->will($this->returnValue(['bar' => 'B. Ar'])); + + $subadmin = $this->getMockBuilder('\OC\SubAdmin') + ->disableOriginalConstructor() + ->getMock(); + $subadmin + ->expects($this->at(0)) + ->method('getSubAdminsGroups') + ->will($this->returnValue([$group1, $group2])); + + $this->container['GroupManager'] + ->expects($this->any()) + ->method('getSubAdmin') + ->will($this->returnValue($subadmin)); + + $expectedResponse = new DataResponse( + [ + 'totalUsers' => 3 + ] + ); + + $response = $this->container['UsersController']->stats(); + $this->assertEquals($expectedResponse, $response); + } + } diff --git a/version.php b/version.php index dd499a8d1d8..7f45f5899e1 100644 --- a/version.php +++ b/version.php @@ -25,7 +25,7 @@ // We only can count up. The 4. digit is only for the internal patchlevel to trigger DB upgrades // between betas, final and RCs. This is _not_ the public version number. Reset minor/patchlevel // when updating major/minor version number. -$OC_Version = array(9, 0, 0, 1); +$OC_Version = array(9, 0, 0, 2); // The human readable string $OC_VersionString = '9.0 pre alpha'; |