diff options
164 files changed, 4777 insertions, 2477 deletions
diff --git a/apps/comments/l10n/ia.js b/apps/comments/l10n/ia.js index ff148a13b8d..40b43ffccbb 100644 --- a/apps/comments/l10n/ia.js +++ b/apps/comments/l10n/ia.js @@ -1,7 +1,39 @@ OC.L10N.register( "comments", { + "Comments" : "Commentarios", + "Unknown user" : "Usator incognite", + "New comment …" : "Nove commentario ...", + "Delete comment" : "Deler commentario", + "Post" : "Publicar", "Cancel" : "Cancellar", - "Save" : "Salveguardar" + "Edit comment" : "Modificar commentario", + "[Deleted user]" : "[Usator delite]", + "No comments yet, start the conversation!" : "Il ha nulle commentarios ancora, initia le conversation!", + "More comments …" : "Plus commentarios ...", + "Save" : "Salveguardar", + "Allowed characters {count} of {max}" : "{count} characteres permittite de {max}", + "Error occurred while retrieving comment with id {id}" : "Un error occurreva durante le recuperation del commentario identificate per {id}", + "Error occurred while updating comment with id {id}" : "Un error occurreva durante le actualisation del commentario identificate per {id}", + "Error occurred while posting comment" : "Un error occurreva durante le publication del commentario", + "_%n unread comment_::_%n unread comments_" : ["%n commentario non legite","%n commentarios non legite"], + "Comment" : "Commentario", + "You commented" : "Tu commentava", + "%1$s commented" : "%1$s commentava", + "{author} commented" : "{author} commentava", + "You commented on %1$s" : "Tu commentava in %1$s", + "You commented on {file}" : "Tu commentava in {file}", + "%1$s commented on %2$s" : "%1$s commentava in %2$s", + "{author} commented on {file}" : "{author} commentava in {file}", + "<strong>Comments</strong> for files" : "<strong>Commentarios</strong> pro files", + "A (now) deleted user mentioned you in a comment on “%s”" : "Un (ora) delite usator mentionava tu in un commentario in “%s”", + "A (now) deleted user mentioned you in a comment on “{file}”" : "Un (ora) delite usator mentionava tu in un commentario in “{file}”", + "%1$s mentioned you in a comment on “%2$s”" : "%1$s mentionava tu in un commentario in “%2$s”", + "{user} mentioned you in a comment on “{file}”" : "{user} mentionava tu in un commentario in “{file}”", + "Type in a new comment..." : "Scribe in un nove commentario...", + "No other comments available" : "Nulle altere commentarios disponibile", + "More comments..." : "Plus commentarios...", + "{count} unread comments" : "{count} commentarios non legite", + "You commented on %2$s" : "Tu commentava in %2$s" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/comments/l10n/ia.json b/apps/comments/l10n/ia.json index a71e73149f6..0555fbfaf98 100644 --- a/apps/comments/l10n/ia.json +++ b/apps/comments/l10n/ia.json @@ -1,5 +1,37 @@ { "translations": { + "Comments" : "Commentarios", + "Unknown user" : "Usator incognite", + "New comment …" : "Nove commentario ...", + "Delete comment" : "Deler commentario", + "Post" : "Publicar", "Cancel" : "Cancellar", - "Save" : "Salveguardar" + "Edit comment" : "Modificar commentario", + "[Deleted user]" : "[Usator delite]", + "No comments yet, start the conversation!" : "Il ha nulle commentarios ancora, initia le conversation!", + "More comments …" : "Plus commentarios ...", + "Save" : "Salveguardar", + "Allowed characters {count} of {max}" : "{count} characteres permittite de {max}", + "Error occurred while retrieving comment with id {id}" : "Un error occurreva durante le recuperation del commentario identificate per {id}", + "Error occurred while updating comment with id {id}" : "Un error occurreva durante le actualisation del commentario identificate per {id}", + "Error occurred while posting comment" : "Un error occurreva durante le publication del commentario", + "_%n unread comment_::_%n unread comments_" : ["%n commentario non legite","%n commentarios non legite"], + "Comment" : "Commentario", + "You commented" : "Tu commentava", + "%1$s commented" : "%1$s commentava", + "{author} commented" : "{author} commentava", + "You commented on %1$s" : "Tu commentava in %1$s", + "You commented on {file}" : "Tu commentava in {file}", + "%1$s commented on %2$s" : "%1$s commentava in %2$s", + "{author} commented on {file}" : "{author} commentava in {file}", + "<strong>Comments</strong> for files" : "<strong>Commentarios</strong> pro files", + "A (now) deleted user mentioned you in a comment on “%s”" : "Un (ora) delite usator mentionava tu in un commentario in “%s”", + "A (now) deleted user mentioned you in a comment on “{file}”" : "Un (ora) delite usator mentionava tu in un commentario in “{file}”", + "%1$s mentioned you in a comment on “%2$s”" : "%1$s mentionava tu in un commentario in “%2$s”", + "{user} mentioned you in a comment on “{file}”" : "{user} mentionava tu in un commentario in “{file}”", + "Type in a new comment..." : "Scribe in un nove commentario...", + "No other comments available" : "Nulle altere commentarios disponibile", + "More comments..." : "Plus commentarios...", + "{count} unread comments" : "{count} commentarios non legite", + "You commented on %2$s" : "Tu commentava in %2$s" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/dav/l10n/sq.js b/apps/dav/l10n/sq.js index e84a2e2354f..6a683d01712 100644 --- a/apps/dav/l10n/sq.js +++ b/apps/dav/l10n/sq.js @@ -28,9 +28,11 @@ OC.L10N.register( "{actor} created todo {todo} in list {calendar}" : "{actor} u krijua todo{todo} në listën {calendar}", "You created todo {todo} in list {calendar}" : "Ju krijuat todo {todo} në listën {calendar}", "{actor} deleted todo {todo} from list {calendar}" : "{actor} u fshi todo{ todo} nga lista{calendar}", + "You deleted todo {todo} from list {calendar}" : "Ju fshit todo{todo} nga lista {calendar}", "{actor} updated todo {todo} in list {calendar}" : "{actor} u përditësua todo{todo} në listën{calendar}", "A <strong>calendar</strong> was modified" : "Një <strong>kalendar</strong> u modifikua", "A calendar <strong>event</strong> was modified" : "Një <strong>event</strong> në kalendar u modifikua", + "A calendar <strong>todo</strong> was modified" : "Një kalendar <strong>todo<strong> u modifikua", "Personal" : "Personale", "Contacts" : "Kontaktet", "Technical details" : "Detaje teknike", diff --git a/apps/dav/l10n/sq.json b/apps/dav/l10n/sq.json index 922e7122069..f5a98e8845c 100644 --- a/apps/dav/l10n/sq.json +++ b/apps/dav/l10n/sq.json @@ -26,9 +26,11 @@ "{actor} created todo {todo} in list {calendar}" : "{actor} u krijua todo{todo} në listën {calendar}", "You created todo {todo} in list {calendar}" : "Ju krijuat todo {todo} në listën {calendar}", "{actor} deleted todo {todo} from list {calendar}" : "{actor} u fshi todo{ todo} nga lista{calendar}", + "You deleted todo {todo} from list {calendar}" : "Ju fshit todo{todo} nga lista {calendar}", "{actor} updated todo {todo} in list {calendar}" : "{actor} u përditësua todo{todo} në listën{calendar}", "A <strong>calendar</strong> was modified" : "Një <strong>kalendar</strong> u modifikua", "A calendar <strong>event</strong> was modified" : "Një <strong>event</strong> në kalendar u modifikua", + "A calendar <strong>todo</strong> was modified" : "Një kalendar <strong>todo<strong> u modifikua", "Personal" : "Personale", "Contacts" : "Kontaktet", "Technical details" : "Detaje teknike", diff --git a/apps/encryption/l10n/el.js b/apps/encryption/l10n/el.js index aa8dab6ec5b..346520235b3 100644 --- a/apps/encryption/l10n/el.js +++ b/apps/encryption/l10n/el.js @@ -22,8 +22,11 @@ OC.L10N.register( "The current log-in password was not correct, please try again." : "Το τρέχον συνθηματικό δεν είναι σωστό, παρακαλώ δοκιμάστε ξανά.", "Private key password successfully updated." : "Το Προσωπικό κλειδί πρόσβασης ενημερώθηκε επιτυχώς", "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please run 'occ encryption:migrate' or contact your administrator" : "Πρέπει να μεταφέρετε τα κλειδιά κρυπτογράφησής σας από την παλιά κρυπτογράφηση (ownCloud <= 8.0) στην καινούρια. Παρακαλούμε εκτελέστε την εντολή 'occ encryption:migrate' ή επικοινωνήστε με το διαχειριστή σας.", + "Invalid private key for encryption app. Please update your private key password in your personal settings to recover access to your encrypted files." : "Άκυρο προσωπικό κλειδί για την εφαρμογή κρυπτογράφησης. Παρακαλώ ενημερώστε τον κωδικό του προσωπικού κλειδιού σας στις προσωπικές ρυθμίσεις για να επανακτήσετε πρόσβαση στα κρυπτογραφημένα σας αρχεία.", + "Encryption app is enabled but your keys are not initialized, please log-out and log-in again" : "Η εφαρμογή κρυπτογράφησης είναι ενεργοποιημένη αλλά τα κλειδιά σας δεν έχουν καταγραφεί, παρακαλώ αποσυνδεθείτε και επανασυνδεθείτε.", "Encryption app is enabled and ready" : "Η εφαρμογή κρυπτογράφησης είναι ενεργοποιημένη και έτοιμη", "Bad Signature" : "Κακή υπογραφή", + "Missing Signature" : "Ελλιπής υπογραφή", "one-time password for server-side-encryption" : "κωδικός μιας χρήσης για κρυπτογράφηση στο διακομιστή", "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Δεν ήταν δυνατό να αποκρυπτογραφηθεί αυτό το αρχείο, πιθανόν πρόκειται για κοινόχρηστο αρχείο. Παρακαλώ ζητήστε από τον ιδιοκτήτη του αρχείου να το ξαναμοιραστεί μαζί σας.", "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Αδυναμία ανάγνωσης αυτού του αρχείου, πιθανό να είναι διαμοιραζόμενο αρχείο. Παρακαλώ ρωτήστε τον κάτοχο του αρχείου να το διαμοιράσει ξανά μαζί σας.", @@ -31,6 +34,7 @@ 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 \"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>Παρακαλούμε συνδεθείτε στη διεπαφή ιστού, πηγαίνετε στην ενότητα \"μονάδα βασικής κρυπτογράφησης\" τωνπ ροσωπικών σας ρυθμίσεων και ενημερώστε τον κωδικό κρυπτογράφησης εισάγοντας αυτό τον κωδικό στο πεδίο \"παλιός κωδικός σύνδεσης\" και τον τωρινό σας κωδικό σύνδεσης.", + "Default encryption module" : "Προεπιλεγμένη μονάδα κρυπτογράφησης", "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" : "Ενεργοποίηση κλειδιού ανάκτησης", @@ -43,6 +47,7 @@ OC.L10N.register( "New recovery key password" : "Νέος κωδικός κλειδιού ανάκτησης", "Repeat new recovery key password" : "Επαναλάβετε το νέο κωδικό κλειδιού ανάκτησης", "Change Password" : "Αλλαγή Κωδικού Πρόσβασης", + "Basic encryption module" : "Βασική μονάδα κρυπτογράφησης", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Η εφαρμογή κρυπτογράφησης είναι ενεργοποιημένη αλλά τα κλειδιά σας δεν έχουν καταγραφεί, παρακαλώ αποσυνδεθείτε και επανασυνδεθείτε.", "Your private key password no longer matches your log-in password." : "Ο κωδικός του ιδιωτικού κλειδιού σας δεν ταιριάζει πλέον με τον κωδικό σύνδεσής σας.", "Set your old private key password to your current log-in password:" : "Ορίστε τον παλιό σας κωδικό ιδιωτικού κλειδιού στον τρέχοντα κωδικό σύνδεσης.", diff --git a/apps/encryption/l10n/el.json b/apps/encryption/l10n/el.json index 348ee2e1ce6..c94d56a61f1 100644 --- a/apps/encryption/l10n/el.json +++ b/apps/encryption/l10n/el.json @@ -20,8 +20,11 @@ "The current log-in password was not correct, please try again." : "Το τρέχον συνθηματικό δεν είναι σωστό, παρακαλώ δοκιμάστε ξανά.", "Private key password successfully updated." : "Το Προσωπικό κλειδί πρόσβασης ενημερώθηκε επιτυχώς", "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please run 'occ encryption:migrate' or contact your administrator" : "Πρέπει να μεταφέρετε τα κλειδιά κρυπτογράφησής σας από την παλιά κρυπτογράφηση (ownCloud <= 8.0) στην καινούρια. Παρακαλούμε εκτελέστε την εντολή 'occ encryption:migrate' ή επικοινωνήστε με το διαχειριστή σας.", + "Invalid private key for encryption app. Please update your private key password in your personal settings to recover access to your encrypted files." : "Άκυρο προσωπικό κλειδί για την εφαρμογή κρυπτογράφησης. Παρακαλώ ενημερώστε τον κωδικό του προσωπικού κλειδιού σας στις προσωπικές ρυθμίσεις για να επανακτήσετε πρόσβαση στα κρυπτογραφημένα σας αρχεία.", + "Encryption app is enabled but your keys are not initialized, please log-out and log-in again" : "Η εφαρμογή κρυπτογράφησης είναι ενεργοποιημένη αλλά τα κλειδιά σας δεν έχουν καταγραφεί, παρακαλώ αποσυνδεθείτε και επανασυνδεθείτε.", "Encryption app is enabled and ready" : "Η εφαρμογή κρυπτογράφησης είναι ενεργοποιημένη και έτοιμη", "Bad Signature" : "Κακή υπογραφή", + "Missing Signature" : "Ελλιπής υπογραφή", "one-time password for server-side-encryption" : "κωδικός μιας χρήσης για κρυπτογράφηση στο διακομιστή", "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Δεν ήταν δυνατό να αποκρυπτογραφηθεί αυτό το αρχείο, πιθανόν πρόκειται για κοινόχρηστο αρχείο. Παρακαλώ ζητήστε από τον ιδιοκτήτη του αρχείου να το ξαναμοιραστεί μαζί σας.", "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Αδυναμία ανάγνωσης αυτού του αρχείου, πιθανό να είναι διαμοιραζόμενο αρχείο. Παρακαλώ ρωτήστε τον κάτοχο του αρχείου να το διαμοιράσει ξανά μαζί σας.", @@ -29,6 +32,7 @@ "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 \"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>Παρακαλούμε συνδεθείτε στη διεπαφή ιστού, πηγαίνετε στην ενότητα \"μονάδα βασικής κρυπτογράφησης\" τωνπ ροσωπικών σας ρυθμίσεων και ενημερώστε τον κωδικό κρυπτογράφησης εισάγοντας αυτό τον κωδικό στο πεδίο \"παλιός κωδικός σύνδεσης\" και τον τωρινό σας κωδικό σύνδεσης.", + "Default encryption module" : "Προεπιλεγμένη μονάδα κρυπτογράφησης", "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" : "Ενεργοποίηση κλειδιού ανάκτησης", @@ -41,6 +45,7 @@ "New recovery key password" : "Νέος κωδικός κλειδιού ανάκτησης", "Repeat new recovery key password" : "Επαναλάβετε το νέο κωδικό κλειδιού ανάκτησης", "Change Password" : "Αλλαγή Κωδικού Πρόσβασης", + "Basic encryption module" : "Βασική μονάδα κρυπτογράφησης", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Η εφαρμογή κρυπτογράφησης είναι ενεργοποιημένη αλλά τα κλειδιά σας δεν έχουν καταγραφεί, παρακαλώ αποσυνδεθείτε και επανασυνδεθείτε.", "Your private key password no longer matches your log-in password." : "Ο κωδικός του ιδιωτικού κλειδιού σας δεν ταιριάζει πλέον με τον κωδικό σύνδεσής σας.", "Set your old private key password to your current log-in password:" : "Ορίστε τον παλιό σας κωδικό ιδιωτικού κλειδιού στον τρέχοντα κωδικό σύνδεσης.", diff --git a/apps/encryption/l10n/ru.js b/apps/encryption/l10n/ru.js index a20e361bc61..c00007309fb 100644 --- a/apps/encryption/l10n/ru.js +++ b/apps/encryption/l10n/ru.js @@ -39,7 +39,7 @@ OC.L10N.register( "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." : "Ключ восстановления это дополнительный ключ, который используется для шифрования файлов. Он позволяет восстановить пользовательские файлы в случае утери пароля.", + "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." : "Ключ восстановления - это дополнительный ключ, который используется для шифрования файлов. Он позволяет восстановить пользовательские файлы в случае утери пароля.", "Recovery key password" : "Пароль ключа восстановления", "Repeat recovery key password" : "Повторите пароль ключа восстановления", "Change recovery key password:" : "Смена пароля ключа восстановления:", diff --git a/apps/encryption/l10n/ru.json b/apps/encryption/l10n/ru.json index 1c1c3abb0de..d9703f482f3 100644 --- a/apps/encryption/l10n/ru.json +++ b/apps/encryption/l10n/ru.json @@ -37,7 +37,7 @@ "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." : "Ключ восстановления это дополнительный ключ, который используется для шифрования файлов. Он позволяет восстановить пользовательские файлы в случае утери пароля.", + "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." : "Ключ восстановления - это дополнительный ключ, который используется для шифрования файлов. Он позволяет восстановить пользовательские файлы в случае утери пароля.", "Recovery key password" : "Пароль ключа восстановления", "Repeat recovery key password" : "Повторите пароль ключа восстановления", "Change recovery key password:" : "Смена пароля ключа восстановления:", diff --git a/apps/federatedfilesharing/l10n/de.js b/apps/federatedfilesharing/l10n/de.js index 1cf098f5b7e..f42561cd343 100644 --- a/apps/federatedfilesharing/l10n/de.js +++ b/apps/federatedfilesharing/l10n/de.js @@ -41,7 +41,7 @@ OC.L10N.register( "Open documentation" : "Dokumentation öffnen", "Allow users on this server to send shares to other servers" : "Benutzern auf diesem Server das Senden von Freigaben an andere Server erlauben", "Allow users on this server to receive shares from other servers" : "Benutzern auf diesem Server das Empfangen von Freigaben von anderen Servern erlauben", - "Search global and public address book for users" : "Globale Suche und ein öffentliches Adressbuch für Nutzer", + "Search global and public address book for users" : "Globale Suche und ein öffentliches Adressbuch für Benutzer", "Federated Cloud" : "Federated Cloud", "Your Federated Cloud ID:" : "Deine Federated-Cloud-ID:", "Share it:" : "Zum Teilen:", diff --git a/apps/federatedfilesharing/l10n/de.json b/apps/federatedfilesharing/l10n/de.json index 060aa326652..4535c57a301 100644 --- a/apps/federatedfilesharing/l10n/de.json +++ b/apps/federatedfilesharing/l10n/de.json @@ -39,7 +39,7 @@ "Open documentation" : "Dokumentation öffnen", "Allow users on this server to send shares to other servers" : "Benutzern auf diesem Server das Senden von Freigaben an andere Server erlauben", "Allow users on this server to receive shares from other servers" : "Benutzern auf diesem Server das Empfangen von Freigaben von anderen Servern erlauben", - "Search global and public address book for users" : "Globale Suche und ein öffentliches Adressbuch für Nutzer", + "Search global and public address book for users" : "Globale Suche und ein öffentliches Adressbuch für Benutzer", "Federated Cloud" : "Federated Cloud", "Your Federated Cloud ID:" : "Deine Federated-Cloud-ID:", "Share it:" : "Zum Teilen:", diff --git a/apps/federatedfilesharing/l10n/de_DE.js b/apps/federatedfilesharing/l10n/de_DE.js index 656cb507f24..a58332c630f 100644 --- a/apps/federatedfilesharing/l10n/de_DE.js +++ b/apps/federatedfilesharing/l10n/de_DE.js @@ -41,7 +41,7 @@ OC.L10N.register( "Open documentation" : "Dokumentation öffnen", "Allow users on this server to send shares to other servers" : "Benutzern auf diesem Server das Senden von Freigaben an andere Server erlauben", "Allow users on this server to receive shares from other servers" : "Benutzern auf diesem Server das Empfangen von Freigaben von anderen Servern erlauben", - "Search global and public address book for users" : "Globale Suche und ein öffentliches Adressbuch für Nutzer", + "Search global and public address book for users" : "Globale Suche und ein öffentliches Adressbuch für Benutzer", "Federated Cloud" : "Federated Cloud", "Your Federated Cloud ID:" : "Ihre Federated-Cloud-ID:", "Share it:" : "Zum Teilen:", diff --git a/apps/federatedfilesharing/l10n/de_DE.json b/apps/federatedfilesharing/l10n/de_DE.json index 3c4df1034ed..63136d92020 100644 --- a/apps/federatedfilesharing/l10n/de_DE.json +++ b/apps/federatedfilesharing/l10n/de_DE.json @@ -39,7 +39,7 @@ "Open documentation" : "Dokumentation öffnen", "Allow users on this server to send shares to other servers" : "Benutzern auf diesem Server das Senden von Freigaben an andere Server erlauben", "Allow users on this server to receive shares from other servers" : "Benutzern auf diesem Server das Empfangen von Freigaben von anderen Servern erlauben", - "Search global and public address book for users" : "Globale Suche und ein öffentliches Adressbuch für Nutzer", + "Search global and public address book for users" : "Globale Suche und ein öffentliches Adressbuch für Benutzer", "Federated Cloud" : "Federated Cloud", "Your Federated Cloud ID:" : "Ihre Federated-Cloud-ID:", "Share it:" : "Zum Teilen:", diff --git a/apps/federatedfilesharing/l10n/id.js b/apps/federatedfilesharing/l10n/id.js index be23cffaa42..66687b60102 100644 --- a/apps/federatedfilesharing/l10n/id.js +++ b/apps/federatedfilesharing/l10n/id.js @@ -7,6 +7,7 @@ OC.L10N.register( "Remote share password" : "Sandi berbagi remote", "Cancel" : "Batalkan", "Add remote share" : "Tambah berbagi remote", + "Copy" : "Salin", "Copied!" : "Tersalin!", "Not supported!" : "Tidak didukung!", "Press ⌘-C to copy." : "Tekan ⌘-C untuk menyalin.", @@ -26,7 +27,12 @@ OC.L10N.register( "Sharing %s failed, because this item is already shared with %s" : "Gagal membagkan %s, karena item ini sudah dibagikan dengan %s", "Not allowed to create a federated share with the same user" : "Tidak diizinkan membuat pembagian terfederasi dengan pengguna yang sama", "File is already shared with %s" : "Berkas sudah dibagikan dengan %s", + "Sharing %s failed, could not find %s, maybe the server is currently unreachable or uses a self-signed certificate." : "Berbagi %s gagal, tidak menemukan %s, mungkin peladen saat ini tidak dapat dicapai atau menggunakan sertifikat self-signed.", "Could not find share" : "Tidak dapat mencari pembagian", + "You received \"%3$s\" as a remote share from %1$s (on behalf of %2$s)" : "Anda menerima \"%3$s\" sebagai berbagi jauh dari %1$s (atas nama %2$s)", + "You received {share} as a remote share from {user} (on behalf of {behalf})" : "Anda menerima {share} sebagai berbagi jauh dari {user} (atas nama {behalf})", + "You received \"%3$s\" as a remote share from %1$s" : "Anda menerima \"%3$s\" sebagai berbagi jauh dari %1$s", + "You received {share} as a remote share from {user}" : "Anda menerima {share} sebagai berbagi jauh dari {user}", "Accept" : "Terima", "Decline" : "Tolak", "Share with me through my #Nextcloud Federated Cloud ID, see %s" : "Dibagikan pada saya melalui #Nextcloud Federated Cloud ID saya, lihat %s", @@ -35,6 +41,7 @@ OC.L10N.register( "Open documentation" : "Buka dokumentasi", "Allow users on this server to send shares to other servers" : "Izinkan para pengguna di server ini untuk mengirimkan berbagi ke server lainnya.", "Allow users on this server to receive shares from other servers" : "Izinkan para pengguna di server ini untuk menerima berbagi ke server lainnya.", + "Search global and public address book for users" : "Cari alamat buku global dan alamat publik untuk pengguna", "Federated Cloud" : "Federated Cloud", "Your Federated Cloud ID:" : "Federated Cloud ID Anda:", "Share it:" : "Bagikan:", diff --git a/apps/federatedfilesharing/l10n/id.json b/apps/federatedfilesharing/l10n/id.json index 2cdf8f8f50a..de1c8d4cba1 100644 --- a/apps/federatedfilesharing/l10n/id.json +++ b/apps/federatedfilesharing/l10n/id.json @@ -5,6 +5,7 @@ "Remote share password" : "Sandi berbagi remote", "Cancel" : "Batalkan", "Add remote share" : "Tambah berbagi remote", + "Copy" : "Salin", "Copied!" : "Tersalin!", "Not supported!" : "Tidak didukung!", "Press ⌘-C to copy." : "Tekan ⌘-C untuk menyalin.", @@ -24,7 +25,12 @@ "Sharing %s failed, because this item is already shared with %s" : "Gagal membagkan %s, karena item ini sudah dibagikan dengan %s", "Not allowed to create a federated share with the same user" : "Tidak diizinkan membuat pembagian terfederasi dengan pengguna yang sama", "File is already shared with %s" : "Berkas sudah dibagikan dengan %s", + "Sharing %s failed, could not find %s, maybe the server is currently unreachable or uses a self-signed certificate." : "Berbagi %s gagal, tidak menemukan %s, mungkin peladen saat ini tidak dapat dicapai atau menggunakan sertifikat self-signed.", "Could not find share" : "Tidak dapat mencari pembagian", + "You received \"%3$s\" as a remote share from %1$s (on behalf of %2$s)" : "Anda menerima \"%3$s\" sebagai berbagi jauh dari %1$s (atas nama %2$s)", + "You received {share} as a remote share from {user} (on behalf of {behalf})" : "Anda menerima {share} sebagai berbagi jauh dari {user} (atas nama {behalf})", + "You received \"%3$s\" as a remote share from %1$s" : "Anda menerima \"%3$s\" sebagai berbagi jauh dari %1$s", + "You received {share} as a remote share from {user}" : "Anda menerima {share} sebagai berbagi jauh dari {user}", "Accept" : "Terima", "Decline" : "Tolak", "Share with me through my #Nextcloud Federated Cloud ID, see %s" : "Dibagikan pada saya melalui #Nextcloud Federated Cloud ID saya, lihat %s", @@ -33,6 +39,7 @@ "Open documentation" : "Buka dokumentasi", "Allow users on this server to send shares to other servers" : "Izinkan para pengguna di server ini untuk mengirimkan berbagi ke server lainnya.", "Allow users on this server to receive shares from other servers" : "Izinkan para pengguna di server ini untuk menerima berbagi ke server lainnya.", + "Search global and public address book for users" : "Cari alamat buku global dan alamat publik untuk pengguna", "Federated Cloud" : "Federated Cloud", "Your Federated Cloud ID:" : "Federated Cloud ID Anda:", "Share it:" : "Bagikan:", diff --git a/apps/federatedfilesharing/l10n/pl.js b/apps/federatedfilesharing/l10n/pl.js index 8a51bfc13d2..282c7bbf129 100644 --- a/apps/federatedfilesharing/l10n/pl.js +++ b/apps/federatedfilesharing/l10n/pl.js @@ -41,6 +41,7 @@ OC.L10N.register( "Open documentation" : "Otwórz dokumentację", "Allow users on this server to send shares to other servers" : "Zezwalaj użytkownikom na tym serwerze wysłać udostępnienia do innych serwerów", "Allow users on this server to receive shares from other servers" : "Zezwalaj użytkownikom na tym serwerze do otrzymania udostępnień z innych serwerów", + "Search global and public address book for users" : "Szukaj użytkowników w globalnej i publicznej książce adresowej", "Federated Cloud" : "Stowarzyszona Chmura", "Your Federated Cloud ID:" : "Twoje ID Stowarzyszonej Chmury:", "Share it:" : "Udostępnij to:", diff --git a/apps/federatedfilesharing/l10n/pl.json b/apps/federatedfilesharing/l10n/pl.json index f84f2d02253..18c54c89d42 100644 --- a/apps/federatedfilesharing/l10n/pl.json +++ b/apps/federatedfilesharing/l10n/pl.json @@ -39,6 +39,7 @@ "Open documentation" : "Otwórz dokumentację", "Allow users on this server to send shares to other servers" : "Zezwalaj użytkownikom na tym serwerze wysłać udostępnienia do innych serwerów", "Allow users on this server to receive shares from other servers" : "Zezwalaj użytkownikom na tym serwerze do otrzymania udostępnień z innych serwerów", + "Search global and public address book for users" : "Szukaj użytkowników w globalnej i publicznej książce adresowej", "Federated Cloud" : "Stowarzyszona Chmura", "Your Federated Cloud ID:" : "Twoje ID Stowarzyszonej Chmury:", "Share it:" : "Udostępnij to:", diff --git a/apps/federatedfilesharing/l10n/sq.js b/apps/federatedfilesharing/l10n/sq.js index 4e55e171b81..a12e4470755 100644 --- a/apps/federatedfilesharing/l10n/sq.js +++ b/apps/federatedfilesharing/l10n/sq.js @@ -13,6 +13,7 @@ OC.L10N.register( "Press Ctrl-C to copy." : "Shtypni Ctrl-C për të kopjuar", "Invalid Federated Cloud ID" : "ID Federated Cloud e pavlefshme", "Server to server sharing is not enabled on this server" : "Shpërndarja server në server nuk është e mundësuar në këtë server", + "Invalid or untrusted SSL certificate" : "Çertifikatë SSL e pavlefshme ose e dyshimtë", "Storage not valid" : "memorja nuk është e vlefshme", "Couldn't add remote share" : "Nuk mund të shtohet ndarja në largësi", "Sharing %s failed, because this item is already shared with %s" : "Ndarja për %s dështoi, ngaqë ky objekt është ndarë një herë me %s", diff --git a/apps/federatedfilesharing/l10n/sq.json b/apps/federatedfilesharing/l10n/sq.json index 07858aa6434..b255001bd7f 100644 --- a/apps/federatedfilesharing/l10n/sq.json +++ b/apps/federatedfilesharing/l10n/sq.json @@ -11,6 +11,7 @@ "Press Ctrl-C to copy." : "Shtypni Ctrl-C për të kopjuar", "Invalid Federated Cloud ID" : "ID Federated Cloud e pavlefshme", "Server to server sharing is not enabled on this server" : "Shpërndarja server në server nuk është e mundësuar në këtë server", + "Invalid or untrusted SSL certificate" : "Çertifikatë SSL e pavlefshme ose e dyshimtë", "Storage not valid" : "memorja nuk është e vlefshme", "Couldn't add remote share" : "Nuk mund të shtohet ndarja në largësi", "Sharing %s failed, because this item is already shared with %s" : "Ndarja për %s dështoi, ngaqë ky objekt është ndarë një herë me %s", diff --git a/apps/federatedfilesharing/lib/AddressHandler.php b/apps/federatedfilesharing/lib/AddressHandler.php index 5fc41c2c804..6c59df06863 100644 --- a/apps/federatedfilesharing/lib/AddressHandler.php +++ b/apps/federatedfilesharing/lib/AddressHandler.php @@ -22,6 +22,7 @@ namespace OCA\FederatedFileSharing; use OC\HintException; +use OCP\Federation\ICloudIdManager; use OCP\IL10N; use OCP\IURLGenerator; @@ -38,18 +39,24 @@ class AddressHandler { /** @var IURLGenerator */ private $urlGenerator; + /** @var ICloudIdManager */ + private $cloudIdManager; + /** * AddressHandler constructor. * * @param IURLGenerator $urlGenerator * @param IL10N $il10n + * @param ICloudIdManager $cloudIdManager */ public function __construct( IURLGenerator $urlGenerator, - IL10N $il10n + IL10N $il10n, + ICloudIdManager $cloudIdManager ) { $this->l = $il10n; $this->urlGenerator = $urlGenerator; + $this->cloudIdManager = $cloudIdManager; } /** @@ -60,44 +67,13 @@ class AddressHandler { * @throws HintException */ public function splitUserRemote($address) { - if (strpos($address, '@') === false) { + try { + $cloudId = $this->cloudIdManager->resolveCloudId($address); + return [$cloudId->getUser(), $cloudId->getRemote()]; + } catch (\InvalidArgumentException $e) { $hint = $this->l->t('Invalid Federated Cloud ID'); - throw new HintException('Invalid Federated Cloud ID', $hint); - } - - // Find the first character that is not allowed in user names - $id = str_replace('\\', '/', $address); - $posSlash = strpos($id, '/'); - $posColon = strpos($id, ':'); - - if ($posSlash === false && $posColon === false) { - $invalidPos = strlen($id); - } else if ($posSlash === false) { - $invalidPos = $posColon; - } else if ($posColon === false) { - $invalidPos = $posSlash; - } else { - $invalidPos = min($posSlash, $posColon); - } - - // Find the last @ before $invalidPos - $pos = $lastAtPos = 0; - while ($lastAtPos !== false && $lastAtPos <= $invalidPos) { - $pos = $lastAtPos; - $lastAtPos = strpos($id, '@', $pos + 1); + throw new HintException('Invalid Federated Cloud ID', $hint, 0, $e); } - - if ($pos !== false) { - $user = substr($id, 0, $pos); - $remote = substr($id, $pos + 1); - $remote = $this->fixRemoteURL($remote); - if (!empty($user) && !empty($remote)) { - return array($user, $remote); - } - } - - $hint = $this->l->t('Invalid Federated Cloud ID'); - throw new HintException('Invalid Federated Cloud ID', $hint); } /** @@ -175,27 +151,4 @@ class AddressHandler { return false; } - - /** - * Strips away a potential file names and trailing slashes: - * - http://localhost - * - http://localhost/ - * - http://localhost/index.php - * - http://localhost/index.php/s/{shareToken} - * - * all return: http://localhost - * - * @param string $remote - * @return string - */ - protected function fixRemoteURL($remote) { - $remote = str_replace('\\', '/', $remote); - if ($fileNamePosition = strpos($remote, '/index.php')) { - $remote = substr($remote, 0, $fileNamePosition); - } - $remote = rtrim($remote, '/'); - - return $remote; - } - } diff --git a/apps/federatedfilesharing/lib/AppInfo/Application.php b/apps/federatedfilesharing/lib/AppInfo/Application.php index c37cb9b87bb..3e97edeada0 100644 --- a/apps/federatedfilesharing/lib/AppInfo/Application.php +++ b/apps/federatedfilesharing/lib/AppInfo/Application.php @@ -45,7 +45,8 @@ class Application extends App { $container->registerService('RequestHandlerController', function(SimpleContainer $c) use ($server) { $addressHandler = new AddressHandler( $server->getURLGenerator(), - $server->getL10N('federatedfilesharing') + $server->getL10N('federatedfilesharing'), + $server->getCloudIdManager() ); $notification = new Notifications( $addressHandler, @@ -64,7 +65,8 @@ class Application extends App { $server->getShareManager(), $notification, $addressHandler, - $server->getUserManager() + $server->getUserManager(), + $server->getCloudIdManager() ); }); } @@ -94,7 +96,8 @@ class Application extends App { protected function initFederatedShareProvider() { $addressHandler = new \OCA\FederatedFileSharing\AddressHandler( \OC::$server->getURLGenerator(), - \OC::$server->getL10N('federatedfilesharing') + \OC::$server->getL10N('federatedfilesharing'), + \OC::$server->getCloudIdManager() ); $discoveryManager = new \OCA\FederatedFileSharing\DiscoveryManager( \OC::$server->getMemCacheFactory(), @@ -119,7 +122,8 @@ class Application extends App { \OC::$server->getLogger(), \OC::$server->getLazyRootFolder(), \OC::$server->getConfig(), - \OC::$server->getUserManager() + \OC::$server->getUserManager(), + \OC::$server->getCloudIdManager() ); } diff --git a/apps/federatedfilesharing/lib/BackgroundJob/RetryJob.php b/apps/federatedfilesharing/lib/BackgroundJob/RetryJob.php index 26afcae32b7..2356c569d87 100644 --- a/apps/federatedfilesharing/lib/BackgroundJob/RetryJob.php +++ b/apps/federatedfilesharing/lib/BackgroundJob/RetryJob.php @@ -65,7 +65,8 @@ class RetryJob extends Job { } else { $addressHandler = new AddressHandler( \OC::$server->getURLGenerator(), - \OC::$server->getL10N('federatedfilesharing') + \OC::$server->getL10N('federatedfilesharing'), + \OC::$server->getCloudIdManager() ); $discoveryManager = new DiscoveryManager( \OC::$server->getMemCacheFactory(), diff --git a/apps/federatedfilesharing/lib/Controller/MountPublicLinkController.php b/apps/federatedfilesharing/lib/Controller/MountPublicLinkController.php index 3c399268124..dd2e88d2dae 100644 --- a/apps/federatedfilesharing/lib/Controller/MountPublicLinkController.php +++ b/apps/federatedfilesharing/lib/Controller/MountPublicLinkController.php @@ -35,6 +35,7 @@ use OCA\Files_Sharing\External\Manager; use OCP\AppFramework\Controller; use OCP\AppFramework\Http; use OCP\AppFramework\Http\JSONResponse; +use OCP\Federation\ICloudIdManager; use OCP\Files\StorageInvalidException; use OCP\Http\Client\IClientService; use OCP\IL10N; @@ -74,6 +75,9 @@ class MountPublicLinkController extends Controller { /** @var IClientService */ private $clientService; + /** @var ICloudIdManager */ + private $cloudIdManager; + /** * MountPublicLinkController constructor. * @@ -86,6 +90,7 @@ class MountPublicLinkController extends Controller { * @param IL10N $l * @param IUserSession $userSession * @param IClientService $clientService + * @param ICloudIdManager $cloudIdManager */ public function __construct($appName, IRequest $request, @@ -95,7 +100,8 @@ class MountPublicLinkController extends Controller { ISession $session, IL10N $l, IUserSession $userSession, - IClientService $clientService + IClientService $clientService, + ICloudIdManager $cloudIdManager ) { parent::__construct($appName, $request); @@ -106,6 +112,7 @@ class MountPublicLinkController extends Controller { $this->l = $l; $this->userSession = $userSession; $this->clientService = $clientService; + $this->cloudIdManager = $cloudIdManager; } /** @@ -177,7 +184,7 @@ class MountPublicLinkController extends Controller { return new JSONResponse(['message' => $this->l->t('Server to server sharing is not enabled on this server')], Http::STATUS_BAD_REQUEST); } - $shareWith = $this->userSession->getUser()->getUID() . '@' . $this->addressHandler->generateRemoteURL(); + $cloudId = $this->cloudIdManager->getCloudId($this->userSession->getUser()->getUID(), $this->addressHandler->generateRemoteURL()); $httpClient = $this->clientService->newClient(); @@ -187,7 +194,7 @@ class MountPublicLinkController extends Controller { 'body' => [ 'token' => $token, - 'shareWith' => rtrim($shareWith, '/'), + 'shareWith' => rtrim($cloudId->getId(), '/'), 'password' => $password ], 'connect_timeout' => 10, diff --git a/apps/federatedfilesharing/lib/Controller/RequestHandlerController.php b/apps/federatedfilesharing/lib/Controller/RequestHandlerController.php index 750415077a8..a5e75e145c8 100644 --- a/apps/federatedfilesharing/lib/Controller/RequestHandlerController.php +++ b/apps/federatedfilesharing/lib/Controller/RequestHandlerController.php @@ -38,6 +38,7 @@ use OCP\AppFramework\OCS\OCSForbiddenException; use OCP\AppFramework\OCS\OCSNotFoundException; use OCP\AppFramework\OCSController; use OCP\Constants; +use OCP\Federation\ICloudIdManager; use OCP\Files\NotFoundException; use OCP\IDBConnection; use OCP\IRequest; @@ -68,6 +69,9 @@ class RequestHandlerController extends OCSController { /** @var string */ private $shareTable = 'share'; + /** @var ICloudIdManager */ + private $cloudIdManager; + /** * Server2Server constructor. * @@ -79,6 +83,7 @@ class RequestHandlerController extends OCSController { * @param Notifications $notifications * @param AddressHandler $addressHandler * @param IUserManager $userManager + * @param ICloudIdManager $cloudIdManager */ public function __construct($appName, IRequest $request, @@ -87,7 +92,8 @@ class RequestHandlerController extends OCSController { Share\IManager $shareManager, Notifications $notifications, AddressHandler $addressHandler, - IUserManager $userManager + IUserManager $userManager, + ICloudIdManager $cloudIdManager ) { parent::__construct($appName, $request); @@ -97,6 +103,7 @@ class RequestHandlerController extends OCSController { $this->notifications = $notifications; $this->addressHandler = $addressHandler; $this->userManager = $userManager; + $this->cloudIdManager = $cloudIdManager; } /** @@ -164,7 +171,7 @@ class RequestHandlerController extends OCSController { $shareId = \OC::$server->getDatabaseConnection()->lastInsertId('*PREFIX*share_external'); if ($ownerFederatedId === null) { - $ownerFederatedId = $owner . '@' . $this->cleanupRemote($remote); + $ownerFederatedId = $this->cloudIdManager->getCloudId($owner, $this->cleanupRemote($remote))->getId(); } // if the owner of the share and the initiator are the same user // we also complete the federated share ID for the initiator @@ -424,7 +431,7 @@ class RequestHandlerController extends OCSController { $remote = $this->cleanupRemote($share['remote']); - $owner = $share['owner'] . '@' . $remote; + $owner = $this->cloudIdManager->getCloudId($share['owner'], $remote); $mountpoint = $share['mountpoint']; $user = $share['user']; diff --git a/apps/federatedfilesharing/lib/FederatedShareProvider.php b/apps/federatedfilesharing/lib/FederatedShareProvider.php index 61f1b1c8f18..fb49978b7af 100644 --- a/apps/federatedfilesharing/lib/FederatedShareProvider.php +++ b/apps/federatedfilesharing/lib/FederatedShareProvider.php @@ -27,6 +27,7 @@ namespace OCA\FederatedFileSharing; use OC\Share20\Share; +use OCP\Federation\ICloudIdManager; use OCP\Files\Folder; use OCP\Files\IRootFolder; use OCP\IConfig; @@ -80,6 +81,9 @@ class FederatedShareProvider implements IShareProvider { /** @var IUserManager */ private $userManager; + /** @var ICloudIdManager */ + private $cloudIdManager; + /** * DefaultShareProvider constructor. * @@ -92,6 +96,7 @@ class FederatedShareProvider implements IShareProvider { * @param IRootFolder $rootFolder * @param IConfig $config * @param IUserManager $userManager + * @param ICloudIdManager $cloudIdManager */ public function __construct( IDBConnection $connection, @@ -102,7 +107,8 @@ class FederatedShareProvider implements IShareProvider { ILogger $logger, IRootFolder $rootFolder, IConfig $config, - IUserManager $userManager + IUserManager $userManager, + ICloudIdManager $cloudIdManager ) { $this->dbConnection = $connection; $this->addressHandler = $addressHandler; @@ -113,6 +119,7 @@ class FederatedShareProvider implements IShareProvider { $this->rootFolder = $rootFolder; $this->config = $config; $this->userManager = $userManager; + $this->cloudIdManager = $cloudIdManager; } /** @@ -153,17 +160,18 @@ class FederatedShareProvider implements IShareProvider { // don't allow federated shares if source and target server are the same - list($user, $remote) = $this->addressHandler->splitUserRemote($shareWith); + $cloudId = $this->cloudIdManager->resolveCloudId($shareWith); $currentServer = $this->addressHandler->generateRemoteURL(); $currentUser = $sharedBy; - if ($this->addressHandler->compareAddresses($user, $remote, $currentUser, $currentServer)) { + if ($this->addressHandler->compareAddresses($cloudId->getUser(), $cloudId->getRemote(), $currentUser, $currentServer)) { $message = 'Not allowed to create a federated share with the same user.'; $message_t = $this->l->t('Not allowed to create a federated share with the same user'); $this->logger->debug($message, ['app' => 'Federated File Sharing']); throw new \Exception($message_t); } - $share->setSharedWith($user . '@' . $remote); + + $share->setSharedWith($cloudId->getId()); try { $remoteShare = $this->getShareFromExternalShareTable($share); @@ -173,8 +181,8 @@ class FederatedShareProvider implements IShareProvider { if ($remoteShare) { try { - $uidOwner = $remoteShare['owner'] . '@' . $remoteShare['remote']; - $shareId = $this->addShareToDB($itemSource, $itemType, $shareWith, $sharedBy, $uidOwner, $permissions, 'tmp_token_' . time()); + $ownerCloudId = $this->cloudIdManager->getCloudId($remoteShare['owner'], $remoteShare['remote']); + $shareId = $this->addShareToDB($itemSource, $itemType, $shareWith, $sharedBy, $ownerCloudId->getId(), $permissions, 'tmp_token_' . time()); $share->setId($shareId); list($token, $remoteId) = $this->askOwnerToReShare($shareWith, $share, $shareId); // remote share was create successfully if we get a valid token as return @@ -227,15 +235,17 @@ class FederatedShareProvider implements IShareProvider { try { $sharedByFederatedId = $share->getSharedBy(); if ($this->userManager->userExists($sharedByFederatedId)) { - $sharedByFederatedId = $sharedByFederatedId . '@' . $this->addressHandler->generateRemoteURL(); + $cloudId = $this->cloudIdManager->getCloudId($sharedByFederatedId, $this->addressHandler->generateRemoteURL()); + $sharedByFederatedId = $cloudId->getId(); } + $ownerCloudId = $this->cloudIdManager->getCloudId($share->getShareOwner(), $this->addressHandler->generateRemoteURL()); $send = $this->notifications->sendRemoteShare( $token, $share->getSharedWith(), $share->getNode()->getName(), $shareId, $share->getShareOwner(), - $share->getShareOwner() . '@' . $this->addressHandler->generateRemoteURL(), + $ownerCloudId->getId(), $share->getSharedBy(), $sharedByFederatedId ); diff --git a/apps/federatedfilesharing/lib/Notifier.php b/apps/federatedfilesharing/lib/Notifier.php index 507dd98330e..faf79480b7e 100644 --- a/apps/federatedfilesharing/lib/Notifier.php +++ b/apps/federatedfilesharing/lib/Notifier.php @@ -27,6 +27,8 @@ namespace OCA\FederatedFileSharing; use OC\HintException; use OC\Share\Helper; use OCP\Contacts\IManager; +use OCP\Federation\ICloudId; +use OCP\Federation\ICloudIdManager; use OCP\IURLGenerator; use OCP\L10N\IFactory; use OCP\Notification\INotification; @@ -41,16 +43,20 @@ class Notifier implements INotifier { protected $url; /** @var array */ protected $federatedContacts; + /** @var ICloudIdManager */ + protected $cloudIdManager; /** * @param IFactory $factory * @param IManager $contactsManager * @param IURLGenerator $url + * @param ICloudIdManager $cloudIdManager */ - public function __construct(IFactory $factory, IManager $contactsManager, IURLGenerator $url) { + public function __construct(IFactory $factory, IManager $contactsManager, IURLGenerator $url, ICloudIdManager $cloudIdManager) { $this->factory = $factory; $this->contactsManager = $contactsManager; $this->url = $url; + $this->cloudIdManager = $cloudIdManager; } /** @@ -140,8 +146,10 @@ class Notifier implements INotifier { protected function createRemoteUser($cloudId) { $displayName = $cloudId; try { - list($user, $server) = Helper::splitUserRemote($cloudId); - $displayName = $this->getDisplayName($user, $server); + $resolvedId = $this->cloudIdManager->resolveCloudId($cloudId); + $displayName = $this->getDisplayName($resolvedId); + $user = $resolvedId->getUser(); + $server = $resolvedId->getRemote(); } catch (HintException $e) { $user = $cloudId; $server = ''; @@ -158,14 +166,12 @@ class Notifier implements INotifier { /** * Try to find the user in the contacts * - * @param string $user - * @param string $server + * @param ICloudId $cloudId * @return string - * @throws \OutOfBoundsException when there is no contact for the id */ - protected function getDisplayName($user, $server) { - $server = strtolower(rtrim($server, '/')); - + protected function getDisplayName(ICloudId $cloudId) { + $server = $cloudId->getRemote(); + $user = $cloudId->getUser(); if (strpos($server, 'http://') === 0) { $server = substr($server, strlen('http://')); } else if (strpos($server, 'https://') === 0) { @@ -173,7 +179,7 @@ class Notifier implements INotifier { } try { - return $this->getDisplayNameFromContact($user . '@' . $server); + return $this->getDisplayNameFromContact($cloudId->getId()); } catch (\OutOfBoundsException $e) { } @@ -187,7 +193,7 @@ class Notifier implements INotifier { } catch (\OutOfBoundsException $e) { } - return $user . '@' . $server; + return $cloudId->getId(); } /** diff --git a/apps/federatedfilesharing/tests/AddressHandlerTest.php b/apps/federatedfilesharing/tests/AddressHandlerTest.php index f62f3b62e03..6d215d40156 100644 --- a/apps/federatedfilesharing/tests/AddressHandlerTest.php +++ b/apps/federatedfilesharing/tests/AddressHandlerTest.php @@ -25,6 +25,7 @@ namespace OCA\FederatedFileSharing\Tests; +use OC\Federation\CloudIdManager; use OCA\FederatedFileSharing\AddressHandler; use OCP\IL10N; use OCP\IURLGenerator; @@ -40,6 +41,9 @@ class AddressHandlerTest extends \Test\TestCase { /** @var IL10N | \PHPUnit_Framework_MockObject_MockObject */ private $il10n; + /** @var CloudIdManager */ + private $cloudIdManager; + public function setUp() { parent::setUp(); @@ -48,7 +52,9 @@ class AddressHandlerTest extends \Test\TestCase { $this->il10n = $this->getMockBuilder('OCP\IL10N') ->getMock(); - $this->addressHandler = new AddressHandler($this->urlGenerator, $this->il10n); + $this->cloudIdManager = new CloudIdManager(); + + $this->addressHandler = new AddressHandler($this->urlGenerator, $this->il10n, $this->cloudIdManager); } public function dataTestSplitUserRemote() { @@ -196,26 +202,4 @@ class AddressHandlerTest extends \Test\TestCase { ['httpserver.com', false], ]; } - - /** - * @dataProvider dataTestFixRemoteUrl - * - * @param string $url - * @param string $expected - */ - public function testFixRemoteUrl($url, $expected) { - $this->assertSame($expected, - $this->invokePrivate($this->addressHandler, 'fixRemoteURL', [$url]) - ); - } - - public function dataTestFixRemoteUrl() { - return [ - ['http://localhost', 'http://localhost'], - ['http://localhost/', 'http://localhost'], - ['http://localhost/index.php', 'http://localhost'], - ['http://localhost/index.php/s/AShareToken', 'http://localhost'], - ]; - } - } diff --git a/apps/federatedfilesharing/tests/Controller/MountPublicLinkControllerTest.php b/apps/federatedfilesharing/tests/Controller/MountPublicLinkControllerTest.php index bd091bed410..7714ff4731c 100644 --- a/apps/federatedfilesharing/tests/Controller/MountPublicLinkControllerTest.php +++ b/apps/federatedfilesharing/tests/Controller/MountPublicLinkControllerTest.php @@ -25,11 +25,13 @@ namespace OCA\FederatedFileSharing\Tests\Controller; +use OC\Federation\CloudIdManager; use OC\HintException; use OCA\FederatedFileSharing\AddressHandler; use OCA\FederatedFileSharing\Controller\MountPublicLinkController; use OCA\FederatedFileSharing\FederatedShareProvider; use OCP\AppFramework\Http; +use OCP\Federation\ICloudIdManager; use OCP\Files\IRootFolder; use OCP\Http\Client\IClientService; use OCP\IL10N; @@ -77,6 +79,9 @@ class MountPublicLinkControllerTest extends \Test\TestCase { /** @var IShare */ private $share; + /** @var ICloudIdManager */ + private $cloudIdManager; + public function setUp() { parent::setUp(); @@ -93,6 +98,7 @@ class MountPublicLinkControllerTest extends \Test\TestCase { $this->l10n = $this->getMockBuilder('OCP\IL10N')->disableOriginalConstructor()->getMock(); $this->userSession = $this->getMockBuilder('OCP\IUserSession')->disableOriginalConstructor()->getMock(); $this->clientService = $this->getMockBuilder('OCP\Http\Client\IClientService')->disableOriginalConstructor()->getMock(); + $this->cloudIdManager = new CloudIdManager(); $this->controller = new MountPublicLinkController( 'federatedfilesharing', $this->request, @@ -102,7 +108,8 @@ class MountPublicLinkControllerTest extends \Test\TestCase { $this->session, $this->l10n, $this->userSession, - $this->clientService + $this->clientService, + $this->cloudIdManager ); } diff --git a/apps/federatedfilesharing/tests/Controller/RequestHandlerControllerTest.php b/apps/federatedfilesharing/tests/Controller/RequestHandlerControllerTest.php index 18d698d398e..61f87e9ec67 100644 --- a/apps/federatedfilesharing/tests/Controller/RequestHandlerControllerTest.php +++ b/apps/federatedfilesharing/tests/Controller/RequestHandlerControllerTest.php @@ -27,10 +27,12 @@ namespace OCA\FederatedFileSharing\Tests; +use OC\Federation\CloudIdManager; use OC\Files\Filesystem; use OCA\FederatedFileSharing\DiscoveryManager; use OCA\FederatedFileSharing\FederatedShareProvider; use OCA\FederatedFileSharing\Controller\RequestHandlerController; +use OCP\Federation\ICloudIdManager; use OCP\Http\Client\IClient; use OCP\Http\Client\IClientService; use OCP\Http\Client\IResponse; @@ -72,6 +74,9 @@ class RequestHandlerControllerTest extends TestCase { /** @var IShare|\PHPUnit_Framework_MockObject_MockObject */ private $share; + /** @var ICloudIdManager */ + private $cloudIdManager; + protected function setUp() { parent::setUp(); @@ -100,6 +105,8 @@ class RequestHandlerControllerTest extends TestCase { $this->addressHandler = $this->getMockBuilder('OCA\FederatedFileSharing\AddressHandler') ->disableOriginalConstructor()->getMock(); $this->userManager = $this->getMockBuilder('OCP\IUserManager')->getMock(); + + $this->cloudIdManager = new CloudIdManager(); $this->registerHttpHelper($httpHelperMock); @@ -111,7 +118,8 @@ class RequestHandlerControllerTest extends TestCase { \OC::$server->getShareManager(), $this->notifications, $this->addressHandler, - $this->userManager + $this->userManager, + $this->cloudIdManager ); $this->connection = \OC::$server->getDatabaseConnection(); @@ -190,7 +198,8 @@ class RequestHandlerControllerTest extends TestCase { \OC::$server->getShareManager(), $this->notifications, $this->addressHandler, - $this->userManager + $this->userManager, + $this->cloudIdManager ] )->setMethods(['executeDeclineShare', 'verifyShare'])->getMock(); diff --git a/apps/federatedfilesharing/tests/FederatedShareProviderTest.php b/apps/federatedfilesharing/tests/FederatedShareProviderTest.php index 874d4b48a5c..97d8ccd65c3 100644 --- a/apps/federatedfilesharing/tests/FederatedShareProviderTest.php +++ b/apps/federatedfilesharing/tests/FederatedShareProviderTest.php @@ -25,10 +25,12 @@ namespace OCA\FederatedFileSharing\Tests; +use OC\Federation\CloudIdManager; use OCA\FederatedFileSharing\AddressHandler; use OCA\FederatedFileSharing\FederatedShareProvider; use OCA\FederatedFileSharing\Notifications; use OCA\FederatedFileSharing\TokenHandler; +use OCP\Federation\ICloudIdManager; use OCP\Files\IRootFolder; use OCP\IConfig; use OCP\IDBConnection; @@ -69,6 +71,9 @@ class FederatedShareProviderTest extends \Test\TestCase { /** @var FederatedShareProvider */ protected $provider; + /** @var ICloudIdManager */ + private $cloudIdManager; + public function setUp() { parent::setUp(); @@ -94,6 +99,8 @@ class FederatedShareProviderTest extends \Test\TestCase { $this->userManager->expects($this->any())->method('userExists')->willReturn(true); + $this->cloudIdManager = new CloudIdManager(); + $this->provider = new FederatedShareProvider( $this->connection, $this->addressHandler, @@ -103,7 +110,8 @@ class FederatedShareProviderTest extends \Test\TestCase { $this->logger, $this->rootFolder, $this->config, - $this->userManager + $this->userManager, + $this->cloudIdManager ); $this->shareManager = \OC::$server->getShareManager(); @@ -400,7 +408,8 @@ class FederatedShareProviderTest extends \Test\TestCase { $this->logger, $this->rootFolder, $this->config, - $this->userManager + $this->userManager, + $this->cloudIdManager ] )->setMethods(['sendPermissionUpdate'])->getMock(); diff --git a/apps/federation/l10n/de.js b/apps/federation/l10n/de.js index 2de94cdfca0..d9c6a3309b0 100644 --- a/apps/federation/l10n/de.js +++ b/apps/federation/l10n/de.js @@ -2,15 +2,15 @@ OC.L10N.register( "federation", { "Added to the list of trusted servers" : "Der Liste der vertrauenswürdigen Server hinzugefügt", - "Server is already in the list of trusted servers." : "Server ist bereits in der Liste der vertrauenswürdigen Servern.", - "No server to federate with found" : "Kein Server zum Verbinden gefunden", + "Server is already in the list of trusted servers." : "Der Server ist bereits in der Liste der vertrauenswürdigen Server.", + "No server to federate with found" : "Es wurde kein Server zum Verbinden per Federation gefunden", "Could not add server" : "Konnte Server nicht hinzufügen", "Federation" : "Federation", - "Federation allows you to connect with other trusted servers to exchange the user directory. For example this will be used to auto-complete external users for federated sharing." : "Federation erlaubt es Dir, dich mit anderen vertrauenswürdigen Servern zu verbinden um das Benutzerverzeichnis auszutauschen. Diese Funktion wird beispielsweise für die Autovervollständigung externer Benutzer genutzt und ermöglicht das Teilen von Inhalten mit ihnen (\"federated sharing\").", + "Federation allows you to connect with other trusted servers to exchange the user directory. For example this will be used to auto-complete external users for federated sharing." : "Federation erlaubt es Dir, Dich mit anderen vertrauenswürdigen Servern zu verbinden, um das Benutzerverzeichnis auszutauschen. Dies wird zum Beispiel für die automatische Vervollständigung externer Benutzernamen beim Federated-Sharing verwendet.", "Add server automatically once a federated share was created successfully" : "Einen mit ownCloud Federation verbundenen Server automatisch hinzufügen, sobald die Verbindung einmal erfolgreich erstellt wurde", "Trusted servers" : "Vertrauenswürdige Server", "+ Add trusted server" : "+ Vertrauenswürdigen Server hinzufügen", - "Trusted server" : "Vertauenswürdiger Server", + "Trusted server" : "Vertrauenswürdiger Server", "Add" : "Hinzufügen", "Trusted Servers" : "Vertrauenswürdige Server", "+ Add Nextcloud server" : "+ Nextcloud Server hinzufügen", diff --git a/apps/federation/l10n/de.json b/apps/federation/l10n/de.json index 9fde823f323..f037f51ce0a 100644 --- a/apps/federation/l10n/de.json +++ b/apps/federation/l10n/de.json @@ -1,14 +1,14 @@ { "translations": { "Added to the list of trusted servers" : "Der Liste der vertrauenswürdigen Server hinzugefügt", - "Server is already in the list of trusted servers." : "Server ist bereits in der Liste der vertrauenswürdigen Servern.", - "No server to federate with found" : "Kein Server zum Verbinden gefunden", + "Server is already in the list of trusted servers." : "Der Server ist bereits in der Liste der vertrauenswürdigen Server.", + "No server to federate with found" : "Es wurde kein Server zum Verbinden per Federation gefunden", "Could not add server" : "Konnte Server nicht hinzufügen", "Federation" : "Federation", - "Federation allows you to connect with other trusted servers to exchange the user directory. For example this will be used to auto-complete external users for federated sharing." : "Federation erlaubt es Dir, dich mit anderen vertrauenswürdigen Servern zu verbinden um das Benutzerverzeichnis auszutauschen. Diese Funktion wird beispielsweise für die Autovervollständigung externer Benutzer genutzt und ermöglicht das Teilen von Inhalten mit ihnen (\"federated sharing\").", + "Federation allows you to connect with other trusted servers to exchange the user directory. For example this will be used to auto-complete external users for federated sharing." : "Federation erlaubt es Dir, Dich mit anderen vertrauenswürdigen Servern zu verbinden, um das Benutzerverzeichnis auszutauschen. Dies wird zum Beispiel für die automatische Vervollständigung externer Benutzernamen beim Federated-Sharing verwendet.", "Add server automatically once a federated share was created successfully" : "Einen mit ownCloud Federation verbundenen Server automatisch hinzufügen, sobald die Verbindung einmal erfolgreich erstellt wurde", "Trusted servers" : "Vertrauenswürdige Server", "+ Add trusted server" : "+ Vertrauenswürdigen Server hinzufügen", - "Trusted server" : "Vertauenswürdiger Server", + "Trusted server" : "Vertrauenswürdiger Server", "Add" : "Hinzufügen", "Trusted Servers" : "Vertrauenswürdige Server", "+ Add Nextcloud server" : "+ Nextcloud Server hinzufügen", diff --git a/apps/federation/l10n/de_DE.js b/apps/federation/l10n/de_DE.js index fcba47740d3..852971d7b9c 100644 --- a/apps/federation/l10n/de_DE.js +++ b/apps/federation/l10n/de_DE.js @@ -3,14 +3,14 @@ OC.L10N.register( { "Added to the list of trusted servers" : "Der Liste der vertrauenswürdigen Server hinzugefügt", "Server is already in the list of trusted servers." : "Server ist bereits in der Liste der vertrauenswürdigen Servern.", - "No server to federate with found" : "Kein Server gefunden, der sich verbinden ließe", + "No server to federate with found" : "Es wurde kein Server zum Verbinden per Federation gefunden", "Could not add server" : "Konnte Server nicht hinzufügen", "Federation" : "Federation", - "Federation allows you to connect with other trusted servers to exchange the user directory. For example this will be used to auto-complete external users for federated sharing." : "Federation erlaubt es Ihnen sich mit anderen vertrauenswürdigen Servern zu verbinden um das Benutzerverzeichnis auszutauschen. Diese Funktion wird beispielsweise für die Autovervollständigung externer Benutzer genutzt und ermöglicht das Teilen von Inhalten mit Ihnen (\"federated sharing\").", + "Federation allows you to connect with other trusted servers to exchange the user directory. For example this will be used to auto-complete external users for federated sharing." : "Federation erlaubt es Ihnen, sich mit anderen vertrauenswürdigen Servern zu verbinden, um das Benutzerverzeichnis auszutauschen. Dies wird zum Beispiel für die automatische Vervollständigung externer Benutzernamen beim Federated-Sharing verwendet.", "Add server automatically once a federated share was created successfully" : "Server automatisch hinzufügen sobald eine federated Freigabe erstellt wurde", "Trusted servers" : "Vertrauenswürdige Server", "+ Add trusted server" : "+ Vertrauenswürdigen Server hinzufügen", - "Trusted server" : "Vertauenswürdiger Server", + "Trusted server" : "Vertrauenswürdiger Server", "Add" : "Hinzufügen", "Trusted Servers" : "Vertrauenswürdige Server", "+ Add Nextcloud server" : "+ Nextcloud Server hinzufügen", diff --git a/apps/federation/l10n/de_DE.json b/apps/federation/l10n/de_DE.json index 38eca8a0154..83c1066a950 100644 --- a/apps/federation/l10n/de_DE.json +++ b/apps/federation/l10n/de_DE.json @@ -1,14 +1,14 @@ { "translations": { "Added to the list of trusted servers" : "Der Liste der vertrauenswürdigen Server hinzugefügt", "Server is already in the list of trusted servers." : "Server ist bereits in der Liste der vertrauenswürdigen Servern.", - "No server to federate with found" : "Kein Server gefunden, der sich verbinden ließe", + "No server to federate with found" : "Es wurde kein Server zum Verbinden per Federation gefunden", "Could not add server" : "Konnte Server nicht hinzufügen", "Federation" : "Federation", - "Federation allows you to connect with other trusted servers to exchange the user directory. For example this will be used to auto-complete external users for federated sharing." : "Federation erlaubt es Ihnen sich mit anderen vertrauenswürdigen Servern zu verbinden um das Benutzerverzeichnis auszutauschen. Diese Funktion wird beispielsweise für die Autovervollständigung externer Benutzer genutzt und ermöglicht das Teilen von Inhalten mit Ihnen (\"federated sharing\").", + "Federation allows you to connect with other trusted servers to exchange the user directory. For example this will be used to auto-complete external users for federated sharing." : "Federation erlaubt es Ihnen, sich mit anderen vertrauenswürdigen Servern zu verbinden, um das Benutzerverzeichnis auszutauschen. Dies wird zum Beispiel für die automatische Vervollständigung externer Benutzernamen beim Federated-Sharing verwendet.", "Add server automatically once a federated share was created successfully" : "Server automatisch hinzufügen sobald eine federated Freigabe erstellt wurde", "Trusted servers" : "Vertrauenswürdige Server", "+ Add trusted server" : "+ Vertrauenswürdigen Server hinzufügen", - "Trusted server" : "Vertauenswürdiger Server", + "Trusted server" : "Vertrauenswürdiger Server", "Add" : "Hinzufügen", "Trusted Servers" : "Vertrauenswürdige Server", "+ Add Nextcloud server" : "+ Nextcloud Server hinzufügen", diff --git a/apps/federation/l10n/el.js b/apps/federation/l10n/el.js index b4404d94043..aa39c92851b 100644 --- a/apps/federation/l10n/el.js +++ b/apps/federation/l10n/el.js @@ -1,10 +1,16 @@ OC.L10N.register( "federation", { - "Server added to the list of trusted ownClouds" : "Ο διακομιστής προστέθηκε στην λίστα των έμπιστων ownCloud", + "Added to the list of trusted servers" : "Προσθήκη στην λίστα των έμπιστων διακομιστών", "Server is already in the list of trusted servers." : "Ο διακομιστής περιλαμβάνεται ήδη στην λίστα των έμπιστων ownCloud", - "No ownCloud server found" : "Δεν βρέθηκε διακομιστής ownCloud", "Could not add server" : "Αδυναμία προσθήκης διακομιστή", - "ownCloud Server" : "Διακομιστής ownCloud" + "Federation" : "Federation", + "Trusted servers" : "Έμπιστοι διακομιστές", + "+ Add trusted server" : "+Προσθήκη έμπιστων διακομιστών", + "Trusted server" : "Έμπιστοι διακομιστές", + "Add" : "Προσθήκη", + "Trusted Servers" : "Έμπιστοι διακομιστές", + "+ Add Nextcloud server" : "+ Προσθήκη διακομιστή Nextcloud", + "Nextcloud Server" : "Διακομιστής Nextcloud" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/federation/l10n/el.json b/apps/federation/l10n/el.json index 887b731cad0..6ddb3346e4e 100644 --- a/apps/federation/l10n/el.json +++ b/apps/federation/l10n/el.json @@ -1,8 +1,14 @@ { "translations": { - "Server added to the list of trusted ownClouds" : "Ο διακομιστής προστέθηκε στην λίστα των έμπιστων ownCloud", + "Added to the list of trusted servers" : "Προσθήκη στην λίστα των έμπιστων διακομιστών", "Server is already in the list of trusted servers." : "Ο διακομιστής περιλαμβάνεται ήδη στην λίστα των έμπιστων ownCloud", - "No ownCloud server found" : "Δεν βρέθηκε διακομιστής ownCloud", "Could not add server" : "Αδυναμία προσθήκης διακομιστή", - "ownCloud Server" : "Διακομιστής ownCloud" + "Federation" : "Federation", + "Trusted servers" : "Έμπιστοι διακομιστές", + "+ Add trusted server" : "+Προσθήκη έμπιστων διακομιστών", + "Trusted server" : "Έμπιστοι διακομιστές", + "Add" : "Προσθήκη", + "Trusted Servers" : "Έμπιστοι διακομιστές", + "+ Add Nextcloud server" : "+ Προσθήκη διακομιστή Nextcloud", + "Nextcloud Server" : "Διακομιστής Nextcloud" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/federation/l10n/ia.js b/apps/federation/l10n/ia.js new file mode 100644 index 00000000000..ed91ea8b76a --- /dev/null +++ b/apps/federation/l10n/ia.js @@ -0,0 +1,19 @@ +OC.L10N.register( + "federation", + { + "Added to the list of trusted servers" : "Addite al lista de servitores fiduciari.", + "Server is already in the list of trusted servers." : "Servitor ja es in le lista de servitores fiduciari.", + "No server to federate with found" : "Nulle servitor pro associar se per federation esseva trovate", + "Could not add server" : "Il non poteva adder le servitor", + "Federation" : "Federation", + "Federation allows you to connect with other trusted servers to exchange the user directory. For example this will be used to auto-complete external users for federated sharing." : "Le federation permitte te connecter con altere servitores fiduciari pro excambiar le directorio del usator. Per exemplo, iste attributo essera usate pro completar automaticamente usatores externe pro le compartimento federate.", + "Add server automatically once a federated share was created successfully" : "Le functionalitate de adder un servitor automaticamente un vice que un compartimento federate es associate esseva create con successo", + "Trusted servers" : "Servitores fiduciari", + "+ Add trusted server" : "+ Adder servitor fiduciari", + "Trusted server" : "Servitor fiduciari", + "Add" : "Adder", + "Trusted Servers" : "Servitores Fiduciari", + "+ Add Nextcloud server" : "+ Adder servitor Nextcloud", + "Nextcloud Server" : "Servitor Nextcloud" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/federation/l10n/ia.json b/apps/federation/l10n/ia.json new file mode 100644 index 00000000000..f4ac228b64b --- /dev/null +++ b/apps/federation/l10n/ia.json @@ -0,0 +1,17 @@ +{ "translations": { + "Added to the list of trusted servers" : "Addite al lista de servitores fiduciari.", + "Server is already in the list of trusted servers." : "Servitor ja es in le lista de servitores fiduciari.", + "No server to federate with found" : "Nulle servitor pro associar se per federation esseva trovate", + "Could not add server" : "Il non poteva adder le servitor", + "Federation" : "Federation", + "Federation allows you to connect with other trusted servers to exchange the user directory. For example this will be used to auto-complete external users for federated sharing." : "Le federation permitte te connecter con altere servitores fiduciari pro excambiar le directorio del usator. Per exemplo, iste attributo essera usate pro completar automaticamente usatores externe pro le compartimento federate.", + "Add server automatically once a federated share was created successfully" : "Le functionalitate de adder un servitor automaticamente un vice que un compartimento federate es associate esseva create con successo", + "Trusted servers" : "Servitores fiduciari", + "+ Add trusted server" : "+ Adder servitor fiduciari", + "Trusted server" : "Servitor fiduciari", + "Add" : "Adder", + "Trusted Servers" : "Servitores Fiduciari", + "+ Add Nextcloud server" : "+ Adder servitor Nextcloud", + "Nextcloud Server" : "Servitor Nextcloud" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/apps/files/css/mobile.css b/apps/files/css/mobile.css index 4a37bf15a4b..4a5abd2b73c 100644 --- a/apps/files/css/mobile.css +++ b/apps/files/css/mobile.css @@ -1,4 +1,7 @@ -@media only screen and (max-width: 768px) { +/* 938 = table min-width(688) + app-navigation width: 250 + 769 = size where app-navigation (768) is hidden +1 + 688 = table min-width */ +@media only screen and (max-width: 938px) and (min-width: 769px), only screen and (max-width: 688px) { .app-files #app-content.dir-drop{ background-color: rgba(255, 255, 255, 1)!important; diff --git a/apps/files/l10n/ca.js b/apps/files/l10n/ca.js index 7f03049ef40..5f461c3fb8a 100644 --- a/apps/files/l10n/ca.js +++ b/apps/files/l10n/ca.js @@ -1,9 +1,9 @@ OC.L10N.register( "files", { + "Storage is temporarily not available" : "Emmagatzemament temporalment no disponible", "Storage invalid" : "Emmagatzemament no vàlid", "Unknown error" : "Error desconegut", - "Files" : "Fitxers", "All files" : "Tots els fitxers", "Recent" : "Recent", "File could not be found" : "No s'ha pogut trobar el fitxer", @@ -17,13 +17,6 @@ OC.L10N.register( "Not enough free space" : "Espai lliure insuficient", "Uploading..." : "Pujant...", "..." : "...", - "{hours}:{minutes}h" : "{hours}:{minutes}h", - "{minutes}:{seconds} minute{plural_s} left" : "falten {minutes}:{seconds} minut{plural_s}", - "{minutes}:{seconds}m" : "{minutes}:{seconds}m", - "{seconds} second{plural_s} left" : "queden {seconds} segon{plural_s}", - "{seconds}s" : "{seconds}s", - "Soon..." : "Aviat...", - "File upload is in progress. Leaving the page now will cancel the upload." : "Hi ha una pujada en curs. Si abandoneu la pàgina la pujada es cancel·larà.", "Actions" : "Accions", "Download" : "Baixa", "Rename" : "Reanomena", @@ -32,11 +25,13 @@ OC.L10N.register( "Delete" : "Esborra", "Disconnect storage" : "Desonnecta l'emmagatzematge", "Unshare" : "Deixa de compartir", + "Files" : "Fitxers", "Details" : "Detalls", "Select" : "Selecciona", "Pending" : "Pendent", "Unable to determine date" : "No s'ha pogut determinar la data", "This operation is forbidden" : "Aquesta operació està prohibida", + "This directory is unavailable, please check the logs or contact the administrator" : "Aquesta carpeta no està disponible. Comproveu els registres o contacteu amb l'administrador.", "Could not move \"{file}\", target exists" : "No s'ha pugut moure \"{file}\", el destí ja existeix", "Could not move \"{file}\"" : "No s'ha pogut moure \"{file}\"", "{newName} already exists" : "{newName} ja existeix", @@ -62,31 +57,24 @@ OC.L10N.register( "Path" : "Ruta", "Favorited" : "Agregat a favorits", "Favorite" : "Preferits", - "Local link" : "Enllaç local", + "Copy local link" : "C", "Folder" : "Carpeta", "New folder" : "Carpeta nova", "Upload" : "Puja", "An error occurred while trying to update the tags" : "S'ha produït un error en tractar d'actualitzar les etiquetes", + "Added to favorites" : "Afegit a favorits", + "Removed from favorites" : "Esborra de preferits", + "You removed {file} from your favorites" : "Has esborrat {file} dels teus preferits", + "File changes" : "Canvis al fitxer", + "Created by {user}" : "Creat per {user}", + "Changed by {user}" : "Canviat per {user}", + "Deleted by {user}" : "Eliminat per {user}", + "Restored by {user}" : "Restaurat per {user}", + "Renamed by {user}" : "Renombrat per {user}", + "Moved by {user}" : "Mogut per {user}", + "You deleted {file}" : "Heu esborrat {fiel}", "A new file or folder has been <strong>created</strong>" : "S'ha <strong>creat</strong> un nou fitxer o una nova carpeta", "Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "Limitar les notificacions sobre la creació i canvis dels seus <strong>arxius favorits</strong><em>(solament Stream)</em>", - "A file or folder has been <strong>deleted</strong>" : "S'ha <strong>elminiat</strong> un fitxer o una carpeta", - "A file or folder has been <strong>restored</strong>" : "S'ha <strong>restaurat</strong> un fitxer o una carpeta", - "You created %1$s" : "Has creat %1$s", - "%2$s created %1$s" : "%2$s ha creat %1$s", - "%1$s was created in a public folder" : "Es va crear %1$s en una carpeta pública", - "You changed %1$s" : "Has canviat %1$s", - "%2$s changed %1$s" : "%2$s ha canviat %1$s", - "You deleted %1$s" : "Has esborrat %1$s", - "%2$s deleted %1$s" : "%2$s ha esborrat %1$s", - "You restored %1$s" : "Has restaurat %1$s", - "%2$s restored %1$s" : "%2$s ha restaurat %1$s", - "You moved %2$s to %1$s" : "Has mogut %2$s a %1$s", - "%2$s moved %3$s to %1$s" : "%2$s ha mogut %3$s a %1$s", - "Changed by %2$s" : "Modificat per %2$s", - "Deleted by %2$s" : "Esborrat per %2$s", - "Renamed by %2$s" : "Renombrat per %2$s", - "Moved by %2$s" : "Mogut per %2$s", - "File changes" : "Canvis al fitxer", "Upload (max. %s)" : "Pujada (màx. %s)", "File handling" : "Gestió de fitxers", "Maximum upload size" : "Mida màxima de pujada", @@ -105,6 +93,7 @@ OC.L10N.register( "Files and folders you mark as favorite will show up here" : "Aquí apareixeran els arxius i carpetes que vostè marqui com favorits", "Shared with you" : "Compartit amb tu", "Shared with others" : "Compartit amb altres", + "Shared by link" : "Comparteix per link", "Tags" : "Etiquetes", "Deleted files" : "Fitxers esborrats", "Text file" : "Fitxer de text", @@ -128,9 +117,29 @@ OC.L10N.register( "Total file size {size1} exceeds upload limit {size2}" : "Mida total del fitxer {size1} excedeix el límit de pujada {size2}", "Error uploading file \"{fileName}\": {message}" : "Error pujant el fitxer \"{fileName}\": {message}", "Could not get result from server." : "No hi ha resposta del servidor.", + "{hours}:{minutes}h" : "{hours}:{minutes}h", + "{minutes}:{seconds} minute{plural_s} left" : "falten {minutes}:{seconds} minut{plural_s}", + "{minutes}:{seconds}m" : "{minutes}:{seconds}m", + "{seconds} second{plural_s} left" : "queden {seconds} segon{plural_s}", + "{seconds}s" : "{seconds}s", + "Soon..." : "Aviat...", + "File upload is in progress. Leaving the page now will cancel the upload." : "Hi ha una pujada en curs. Si abandoneu la pàgina la pujada es cancel·larà.", "No entries in this folder match '{filter}'" : "No hi ha resultats que coincideixin amb '{filter}'", + "Local link" : "Enllaç local", "{newname} already exists" : "{newname} ja existeix", "A file or folder has been <strong>changed</strong>" : "S'ha <strong>canviat</strong> un fitxer o una carpeta", - "Cancel upload" : "Cancel·la la pujada" + "A file or folder has been <strong>deleted</strong>" : "S'ha <strong>elminiat</strong> un fitxer o una carpeta", + "A file or folder has been <strong>restored</strong>" : "S'ha <strong>restaurat</strong> un fitxer o una carpeta", + "You created %1$s" : "Has creat %1$s", + "%2$s created %1$s" : "%2$s ha creat %1$s", + "%1$s was created in a public folder" : "Es va crear %1$s en una carpeta pública", + "You changed %1$s" : "Has canviat %1$s", + "%2$s changed %1$s" : "%2$s ha canviat %1$s", + "You deleted %1$s" : "Has esborrat %1$s", + "%2$s deleted %1$s" : "%2$s ha esborrat %1$s", + "You restored %1$s" : "Has restaurat %1$s", + "%2$s restored %1$s" : "%2$s ha restaurat %1$s", + "Changed by %2$s" : "Modificat per %2$s", + "Deleted by %2$s" : "Esborrat per %2$s" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/ca.json b/apps/files/l10n/ca.json index 9cedb8be4b6..9cfc24b0f40 100644 --- a/apps/files/l10n/ca.json +++ b/apps/files/l10n/ca.json @@ -1,7 +1,7 @@ { "translations": { + "Storage is temporarily not available" : "Emmagatzemament temporalment no disponible", "Storage invalid" : "Emmagatzemament no vàlid", "Unknown error" : "Error desconegut", - "Files" : "Fitxers", "All files" : "Tots els fitxers", "Recent" : "Recent", "File could not be found" : "No s'ha pogut trobar el fitxer", @@ -15,13 +15,6 @@ "Not enough free space" : "Espai lliure insuficient", "Uploading..." : "Pujant...", "..." : "...", - "{hours}:{minutes}h" : "{hours}:{minutes}h", - "{minutes}:{seconds} minute{plural_s} left" : "falten {minutes}:{seconds} minut{plural_s}", - "{minutes}:{seconds}m" : "{minutes}:{seconds}m", - "{seconds} second{plural_s} left" : "queden {seconds} segon{plural_s}", - "{seconds}s" : "{seconds}s", - "Soon..." : "Aviat...", - "File upload is in progress. Leaving the page now will cancel the upload." : "Hi ha una pujada en curs. Si abandoneu la pàgina la pujada es cancel·larà.", "Actions" : "Accions", "Download" : "Baixa", "Rename" : "Reanomena", @@ -30,11 +23,13 @@ "Delete" : "Esborra", "Disconnect storage" : "Desonnecta l'emmagatzematge", "Unshare" : "Deixa de compartir", + "Files" : "Fitxers", "Details" : "Detalls", "Select" : "Selecciona", "Pending" : "Pendent", "Unable to determine date" : "No s'ha pogut determinar la data", "This operation is forbidden" : "Aquesta operació està prohibida", + "This directory is unavailable, please check the logs or contact the administrator" : "Aquesta carpeta no està disponible. Comproveu els registres o contacteu amb l'administrador.", "Could not move \"{file}\", target exists" : "No s'ha pugut moure \"{file}\", el destí ja existeix", "Could not move \"{file}\"" : "No s'ha pogut moure \"{file}\"", "{newName} already exists" : "{newName} ja existeix", @@ -60,31 +55,24 @@ "Path" : "Ruta", "Favorited" : "Agregat a favorits", "Favorite" : "Preferits", - "Local link" : "Enllaç local", + "Copy local link" : "C", "Folder" : "Carpeta", "New folder" : "Carpeta nova", "Upload" : "Puja", "An error occurred while trying to update the tags" : "S'ha produït un error en tractar d'actualitzar les etiquetes", + "Added to favorites" : "Afegit a favorits", + "Removed from favorites" : "Esborra de preferits", + "You removed {file} from your favorites" : "Has esborrat {file} dels teus preferits", + "File changes" : "Canvis al fitxer", + "Created by {user}" : "Creat per {user}", + "Changed by {user}" : "Canviat per {user}", + "Deleted by {user}" : "Eliminat per {user}", + "Restored by {user}" : "Restaurat per {user}", + "Renamed by {user}" : "Renombrat per {user}", + "Moved by {user}" : "Mogut per {user}", + "You deleted {file}" : "Heu esborrat {fiel}", "A new file or folder has been <strong>created</strong>" : "S'ha <strong>creat</strong> un nou fitxer o una nova carpeta", "Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "Limitar les notificacions sobre la creació i canvis dels seus <strong>arxius favorits</strong><em>(solament Stream)</em>", - "A file or folder has been <strong>deleted</strong>" : "S'ha <strong>elminiat</strong> un fitxer o una carpeta", - "A file or folder has been <strong>restored</strong>" : "S'ha <strong>restaurat</strong> un fitxer o una carpeta", - "You created %1$s" : "Has creat %1$s", - "%2$s created %1$s" : "%2$s ha creat %1$s", - "%1$s was created in a public folder" : "Es va crear %1$s en una carpeta pública", - "You changed %1$s" : "Has canviat %1$s", - "%2$s changed %1$s" : "%2$s ha canviat %1$s", - "You deleted %1$s" : "Has esborrat %1$s", - "%2$s deleted %1$s" : "%2$s ha esborrat %1$s", - "You restored %1$s" : "Has restaurat %1$s", - "%2$s restored %1$s" : "%2$s ha restaurat %1$s", - "You moved %2$s to %1$s" : "Has mogut %2$s a %1$s", - "%2$s moved %3$s to %1$s" : "%2$s ha mogut %3$s a %1$s", - "Changed by %2$s" : "Modificat per %2$s", - "Deleted by %2$s" : "Esborrat per %2$s", - "Renamed by %2$s" : "Renombrat per %2$s", - "Moved by %2$s" : "Mogut per %2$s", - "File changes" : "Canvis al fitxer", "Upload (max. %s)" : "Pujada (màx. %s)", "File handling" : "Gestió de fitxers", "Maximum upload size" : "Mida màxima de pujada", @@ -103,6 +91,7 @@ "Files and folders you mark as favorite will show up here" : "Aquí apareixeran els arxius i carpetes que vostè marqui com favorits", "Shared with you" : "Compartit amb tu", "Shared with others" : "Compartit amb altres", + "Shared by link" : "Comparteix per link", "Tags" : "Etiquetes", "Deleted files" : "Fitxers esborrats", "Text file" : "Fitxer de text", @@ -126,9 +115,29 @@ "Total file size {size1} exceeds upload limit {size2}" : "Mida total del fitxer {size1} excedeix el límit de pujada {size2}", "Error uploading file \"{fileName}\": {message}" : "Error pujant el fitxer \"{fileName}\": {message}", "Could not get result from server." : "No hi ha resposta del servidor.", + "{hours}:{minutes}h" : "{hours}:{minutes}h", + "{minutes}:{seconds} minute{plural_s} left" : "falten {minutes}:{seconds} minut{plural_s}", + "{minutes}:{seconds}m" : "{minutes}:{seconds}m", + "{seconds} second{plural_s} left" : "queden {seconds} segon{plural_s}", + "{seconds}s" : "{seconds}s", + "Soon..." : "Aviat...", + "File upload is in progress. Leaving the page now will cancel the upload." : "Hi ha una pujada en curs. Si abandoneu la pàgina la pujada es cancel·larà.", "No entries in this folder match '{filter}'" : "No hi ha resultats que coincideixin amb '{filter}'", + "Local link" : "Enllaç local", "{newname} already exists" : "{newname} ja existeix", "A file or folder has been <strong>changed</strong>" : "S'ha <strong>canviat</strong> un fitxer o una carpeta", - "Cancel upload" : "Cancel·la la pujada" + "A file or folder has been <strong>deleted</strong>" : "S'ha <strong>elminiat</strong> un fitxer o una carpeta", + "A file or folder has been <strong>restored</strong>" : "S'ha <strong>restaurat</strong> un fitxer o una carpeta", + "You created %1$s" : "Has creat %1$s", + "%2$s created %1$s" : "%2$s ha creat %1$s", + "%1$s was created in a public folder" : "Es va crear %1$s en una carpeta pública", + "You changed %1$s" : "Has canviat %1$s", + "%2$s changed %1$s" : "%2$s ha canviat %1$s", + "You deleted %1$s" : "Has esborrat %1$s", + "%2$s deleted %1$s" : "%2$s ha esborrat %1$s", + "You restored %1$s" : "Has restaurat %1$s", + "%2$s restored %1$s" : "%2$s ha restaurat %1$s", + "Changed by %2$s" : "Modificat per %2$s", + "Deleted by %2$s" : "Esborrat per %2$s" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files/l10n/el.js b/apps/files/l10n/el.js index e9f493c869a..b6ff894b521 100644 --- a/apps/files/l10n/el.js +++ b/apps/files/l10n/el.js @@ -1,9 +1,9 @@ OC.L10N.register( "files", { + "Storage is temporarily not available" : "Μη διαθέσιμος χώρος αποθήκευσης προσωρινά", "Storage invalid" : "Μη έγκυρος αποθηκευτικός χώρος", "Unknown error" : "Άγνωστο σφάλμα", - "Files" : "Αρχεία", "All files" : "Όλα τα αρχεία", "Recent" : "Τελευταία", "File could not be found" : "Δεν μπορεί να βρεθεί το αρχείο", @@ -17,13 +17,14 @@ OC.L10N.register( "Not enough free space" : "Δεν υπάρχει αρκετός ελεύθερος χώρος.", "Uploading..." : "Μεταφόρτωση...", "..." : "...", - "File upload is in progress. Leaving the page now will cancel the upload." : "Η αποστολή του αρχείου βρίσκεται σε εξέλιξη. Το κλείσιμο της σελίδας θα ακυρώσει την αποστολή.", "Actions" : "Ενέργειες", "Download" : "Λήψη", "Rename" : "Μετονομασία", + "Move" : "Μετακίνηση", "Delete" : "Διαγραφή", "Disconnect storage" : "Αποσυνδεδεμένος αποθηκευτικός χώρος", "Unshare" : "Διακοπή διαμοιρασμού", + "Files" : "Αρχεία", "Details" : "Λεπτομέρειες", "Select" : "Επιλογή", "Pending" : "Εκκρεμεί", @@ -57,27 +58,20 @@ OC.L10N.register( "_%n byte_::_%n bytes_" : ["%n byte","%n bytes"], "Favorited" : "Προτιμώμενα", "Favorite" : "Αγαπημένο", - "Local link" : "Τοπικός σύνδεσμος", + "Copy local link" : "Αντιγραφή τοπικού συνδέσμου", "Folder" : "Φάκελος", "New folder" : "Νέος φάκελος", "Upload" : "Μεταφόρτωση", "An error occurred while trying to update the tags" : "Ένα σφάλμα προέκυψε κατά τη διάρκεια ενημέρωσης των ετικετών", + "Added to favorites" : "Προσθήκη στα αγαπημένα", + "Removed from favorites" : "Αφαίρεση από τα αγαπημένα", + "File changes" : "Αλλαγές αρχείου", + "Created by {user}" : "Δημιουργήθηκε από τον/την {user}", + "You deleted {file}" : "Διαγράψτε το {file}", + "{user} deleted {file}" : "ο {user} διέγραψε το {file}", "A new file or folder has been <strong>created</strong>" : "Ένα νέο αρχείο ή κατάλογος έχουν <strong>δημιουργηθεί</strong>", + "A new file or folder has been <strong>deleted</strong>" : "Ένα νέο αρχείο ή φάκελος έχει <strong>διαγραφεί</strong>", "Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "Βάλτε όριο στις ειδοποιήσεις για τη δημιουργία και αλλαγές στα <strong>αγαπημένα σας αρχεία</strong> <em>(Μόνο Stream)</em>", - "A file or folder has been <strong>deleted</strong>" : "Ένα αρχείο ή κατάλογος έχουν <strong>διαγραφεί</strong>", - "A file or folder has been <strong>restored</strong>" : "Ένα αρχείο ή φάκελος <strong>επαναφέρθηκε</ strong>", - "You created %1$s" : "Δημιουργήσατε το %1$s", - "%2$s created %1$s" : "Ο χρήστης %2$s δημιούργησε το %1$s", - "%1$s was created in a public folder" : "Το %1$s δημιουργήθηκε σε έναν δημόσιο φάκελο", - "You changed %1$s" : "Αλλάξατε το %1$s", - "%2$s changed %1$s" : "Ο χρήστης %2$s άλλαξε το %1$s", - "You deleted %1$s" : "Διαγράψατε το %1$s", - "%2$s deleted %1$s" : "Ο χρήστης %2$s διέγραψε το %1$s", - "You restored %1$s" : "Επαναφέρατε το %1$s", - "%2$s restored %1$s" : "Ο χρήστης %2$s επανέφερε το %1$s", - "Changed by %2$s" : "Άλλαξε από το χρήστη %2$s", - "Deleted by %2$s" : "Διαγράφηκε από το χρήστη %2$s", - "Restored by %2$s" : "Επαναφορά από το χρήστη %2$s", "Upload (max. %s)" : "Διαμοιρασμός (max. %s)", "File handling" : "Διαχείριση αρχείων", "Maximum upload size" : "Μέγιστο μέγεθος αποστολής", @@ -86,8 +80,9 @@ OC.L10N.register( "With PHP-FPM it might take 5 minutes for changes to be applied." : "Με PHP-FPM μπορεί να χρειαστούν μέχρι και 5 λεπτά για να ενεργοποιηθούν οι αλλαγές.", "Missing permissions to edit from here." : "Δεν υπάρχουν τα απαραίτητα δικαιώματα για να γίνει τροποποιήση σε αυτό το σημείο.", "Settings" : "Ρυθμίσεις", - "Show hidden files" : "Προβολή κρυφών αρχείων", + "Show hidden files" : "Εμφάνιση κρυφών αρχείων", "WebDAV" : "WebDAV", + "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Χρησιμοποιήστε αυτή τη διεύθυνση για να έχετε <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">πρόσβαση στα Αρχεία σας μέσω WebDAV</a>", "No files in here" : "Δεν υπάρχουν αρχεία", "Upload some content or sync with your devices!" : "Μεταφόρτωση περιεχομένου ή συγχρονισμός με τις συσκευές σας!", "No entries found in this folder" : "Δεν βρέθηκαν καταχωρήσεις σε αυτόν το φάκελο", @@ -96,6 +91,11 @@ OC.L10N.register( "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Τα αρχεία που προσπαθείτε να ανεβάσετε υπερβαίνουν το μέγιστο μέγεθος αποστολής αρχείων σε αυτόν τον διακομιστή.", "No favorites" : "Δεν υπάρχουν αγαπημένα", "Files and folders you mark as favorite will show up here" : "Τα αρχεία και οι φάκελοι που σημειώνονται ως αγαπημένα θα εμφανιστούν εδώ ", + "Shared with you" : "Διαμοιρασμένα με εσάς", + "Shared with others" : "Διαμοιρασμένα με άλλους", + "Shared by link" : "Διαμοιρασμένα μέσω συνδέσμου", + "Tags" : "Ετικέτες", + "Deleted files" : "Διεγραμμένα αρχεία", "Text file" : "Αρχείο κειμένου", "New text file.txt" : "Νέο αρχείο κειμένου.txt", "Storage not available" : "Μη διαθέσιμος αποθηκευτικός χώρος", @@ -116,9 +116,25 @@ OC.L10N.register( "Invalid directory." : "Μη έγκυρος φάκελος.", "Total file size {size1} exceeds upload limit {size2}" : "Το συνολικό μέγεθος αρχείου {size1} υπερβαίνει το όριο μεταφόρτωσης {size2}", "Could not get result from server." : "Αδυναμία λήψης αποτελέσματος από το διακομιστή.", + "Soon..." : "Σύντομα...", + "File upload is in progress. Leaving the page now will cancel the upload." : "Η αποστολή του αρχείου βρίσκεται σε εξέλιξη. Το κλείσιμο της σελίδας θα ακυρώσει την αποστολή.", "No entries in this folder match '{filter}'" : "Δεν ταιριάζουν καταχωρήσεις σε αυτόν το φάκελο '{filter}'", + "Local link" : "Τοπικός σύνδεσμος", "{newname} already exists" : "το {newname} υπάρχει ήδη", "A file or folder has been <strong>changed</strong>" : "Ένα αρχείο ή κατάλογος έχουν <strong>αλλάξει</strong>", - "Cancel upload" : "Ακύρωση αποστολής" + "A file or folder has been <strong>deleted</strong>" : "Ένα αρχείο ή κατάλογος έχουν <strong>διαγραφεί</strong>", + "A file or folder has been <strong>restored</strong>" : "Ένα αρχείο ή φάκελος <strong>επαναφέρθηκε</ strong>", + "You created %1$s" : "Δημιουργήσατε το %1$s", + "%2$s created %1$s" : "Ο χρήστης %2$s δημιούργησε το %1$s", + "%1$s was created in a public folder" : "Το %1$s δημιουργήθηκε σε έναν δημόσιο φάκελο", + "You changed %1$s" : "Αλλάξατε το %1$s", + "%2$s changed %1$s" : "Ο χρήστης %2$s άλλαξε το %1$s", + "You deleted %1$s" : "Διαγράψατε το %1$s", + "%2$s deleted %1$s" : "Ο χρήστης %2$s διέγραψε το %1$s", + "You restored %1$s" : "Επαναφέρατε το %1$s", + "%2$s restored %1$s" : "Ο χρήστης %2$s επανέφερε το %1$s", + "Changed by %2$s" : "Άλλαξε από το χρήστη %2$s", + "Deleted by %2$s" : "Διαγράφηκε από το χρήστη %2$s", + "Restored by %2$s" : "Επαναφορά από το χρήστη %2$s" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/el.json b/apps/files/l10n/el.json index 0cc22446e91..4c265bade98 100644 --- a/apps/files/l10n/el.json +++ b/apps/files/l10n/el.json @@ -1,7 +1,7 @@ { "translations": { + "Storage is temporarily not available" : "Μη διαθέσιμος χώρος αποθήκευσης προσωρινά", "Storage invalid" : "Μη έγκυρος αποθηκευτικός χώρος", "Unknown error" : "Άγνωστο σφάλμα", - "Files" : "Αρχεία", "All files" : "Όλα τα αρχεία", "Recent" : "Τελευταία", "File could not be found" : "Δεν μπορεί να βρεθεί το αρχείο", @@ -15,13 +15,14 @@ "Not enough free space" : "Δεν υπάρχει αρκετός ελεύθερος χώρος.", "Uploading..." : "Μεταφόρτωση...", "..." : "...", - "File upload is in progress. Leaving the page now will cancel the upload." : "Η αποστολή του αρχείου βρίσκεται σε εξέλιξη. Το κλείσιμο της σελίδας θα ακυρώσει την αποστολή.", "Actions" : "Ενέργειες", "Download" : "Λήψη", "Rename" : "Μετονομασία", + "Move" : "Μετακίνηση", "Delete" : "Διαγραφή", "Disconnect storage" : "Αποσυνδεδεμένος αποθηκευτικός χώρος", "Unshare" : "Διακοπή διαμοιρασμού", + "Files" : "Αρχεία", "Details" : "Λεπτομέρειες", "Select" : "Επιλογή", "Pending" : "Εκκρεμεί", @@ -55,27 +56,20 @@ "_%n byte_::_%n bytes_" : ["%n byte","%n bytes"], "Favorited" : "Προτιμώμενα", "Favorite" : "Αγαπημένο", - "Local link" : "Τοπικός σύνδεσμος", + "Copy local link" : "Αντιγραφή τοπικού συνδέσμου", "Folder" : "Φάκελος", "New folder" : "Νέος φάκελος", "Upload" : "Μεταφόρτωση", "An error occurred while trying to update the tags" : "Ένα σφάλμα προέκυψε κατά τη διάρκεια ενημέρωσης των ετικετών", + "Added to favorites" : "Προσθήκη στα αγαπημένα", + "Removed from favorites" : "Αφαίρεση από τα αγαπημένα", + "File changes" : "Αλλαγές αρχείου", + "Created by {user}" : "Δημιουργήθηκε από τον/την {user}", + "You deleted {file}" : "Διαγράψτε το {file}", + "{user} deleted {file}" : "ο {user} διέγραψε το {file}", "A new file or folder has been <strong>created</strong>" : "Ένα νέο αρχείο ή κατάλογος έχουν <strong>δημιουργηθεί</strong>", + "A new file or folder has been <strong>deleted</strong>" : "Ένα νέο αρχείο ή φάκελος έχει <strong>διαγραφεί</strong>", "Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "Βάλτε όριο στις ειδοποιήσεις για τη δημιουργία και αλλαγές στα <strong>αγαπημένα σας αρχεία</strong> <em>(Μόνο Stream)</em>", - "A file or folder has been <strong>deleted</strong>" : "Ένα αρχείο ή κατάλογος έχουν <strong>διαγραφεί</strong>", - "A file or folder has been <strong>restored</strong>" : "Ένα αρχείο ή φάκελος <strong>επαναφέρθηκε</ strong>", - "You created %1$s" : "Δημιουργήσατε το %1$s", - "%2$s created %1$s" : "Ο χρήστης %2$s δημιούργησε το %1$s", - "%1$s was created in a public folder" : "Το %1$s δημιουργήθηκε σε έναν δημόσιο φάκελο", - "You changed %1$s" : "Αλλάξατε το %1$s", - "%2$s changed %1$s" : "Ο χρήστης %2$s άλλαξε το %1$s", - "You deleted %1$s" : "Διαγράψατε το %1$s", - "%2$s deleted %1$s" : "Ο χρήστης %2$s διέγραψε το %1$s", - "You restored %1$s" : "Επαναφέρατε το %1$s", - "%2$s restored %1$s" : "Ο χρήστης %2$s επανέφερε το %1$s", - "Changed by %2$s" : "Άλλαξε από το χρήστη %2$s", - "Deleted by %2$s" : "Διαγράφηκε από το χρήστη %2$s", - "Restored by %2$s" : "Επαναφορά από το χρήστη %2$s", "Upload (max. %s)" : "Διαμοιρασμός (max. %s)", "File handling" : "Διαχείριση αρχείων", "Maximum upload size" : "Μέγιστο μέγεθος αποστολής", @@ -84,8 +78,9 @@ "With PHP-FPM it might take 5 minutes for changes to be applied." : "Με PHP-FPM μπορεί να χρειαστούν μέχρι και 5 λεπτά για να ενεργοποιηθούν οι αλλαγές.", "Missing permissions to edit from here." : "Δεν υπάρχουν τα απαραίτητα δικαιώματα για να γίνει τροποποιήση σε αυτό το σημείο.", "Settings" : "Ρυθμίσεις", - "Show hidden files" : "Προβολή κρυφών αρχείων", + "Show hidden files" : "Εμφάνιση κρυφών αρχείων", "WebDAV" : "WebDAV", + "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Χρησιμοποιήστε αυτή τη διεύθυνση για να έχετε <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">πρόσβαση στα Αρχεία σας μέσω WebDAV</a>", "No files in here" : "Δεν υπάρχουν αρχεία", "Upload some content or sync with your devices!" : "Μεταφόρτωση περιεχομένου ή συγχρονισμός με τις συσκευές σας!", "No entries found in this folder" : "Δεν βρέθηκαν καταχωρήσεις σε αυτόν το φάκελο", @@ -94,6 +89,11 @@ "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Τα αρχεία που προσπαθείτε να ανεβάσετε υπερβαίνουν το μέγιστο μέγεθος αποστολής αρχείων σε αυτόν τον διακομιστή.", "No favorites" : "Δεν υπάρχουν αγαπημένα", "Files and folders you mark as favorite will show up here" : "Τα αρχεία και οι φάκελοι που σημειώνονται ως αγαπημένα θα εμφανιστούν εδώ ", + "Shared with you" : "Διαμοιρασμένα με εσάς", + "Shared with others" : "Διαμοιρασμένα με άλλους", + "Shared by link" : "Διαμοιρασμένα μέσω συνδέσμου", + "Tags" : "Ετικέτες", + "Deleted files" : "Διεγραμμένα αρχεία", "Text file" : "Αρχείο κειμένου", "New text file.txt" : "Νέο αρχείο κειμένου.txt", "Storage not available" : "Μη διαθέσιμος αποθηκευτικός χώρος", @@ -114,9 +114,25 @@ "Invalid directory." : "Μη έγκυρος φάκελος.", "Total file size {size1} exceeds upload limit {size2}" : "Το συνολικό μέγεθος αρχείου {size1} υπερβαίνει το όριο μεταφόρτωσης {size2}", "Could not get result from server." : "Αδυναμία λήψης αποτελέσματος από το διακομιστή.", + "Soon..." : "Σύντομα...", + "File upload is in progress. Leaving the page now will cancel the upload." : "Η αποστολή του αρχείου βρίσκεται σε εξέλιξη. Το κλείσιμο της σελίδας θα ακυρώσει την αποστολή.", "No entries in this folder match '{filter}'" : "Δεν ταιριάζουν καταχωρήσεις σε αυτόν το φάκελο '{filter}'", + "Local link" : "Τοπικός σύνδεσμος", "{newname} already exists" : "το {newname} υπάρχει ήδη", "A file or folder has been <strong>changed</strong>" : "Ένα αρχείο ή κατάλογος έχουν <strong>αλλάξει</strong>", - "Cancel upload" : "Ακύρωση αποστολής" + "A file or folder has been <strong>deleted</strong>" : "Ένα αρχείο ή κατάλογος έχουν <strong>διαγραφεί</strong>", + "A file or folder has been <strong>restored</strong>" : "Ένα αρχείο ή φάκελος <strong>επαναφέρθηκε</ strong>", + "You created %1$s" : "Δημιουργήσατε το %1$s", + "%2$s created %1$s" : "Ο χρήστης %2$s δημιούργησε το %1$s", + "%1$s was created in a public folder" : "Το %1$s δημιουργήθηκε σε έναν δημόσιο φάκελο", + "You changed %1$s" : "Αλλάξατε το %1$s", + "%2$s changed %1$s" : "Ο χρήστης %2$s άλλαξε το %1$s", + "You deleted %1$s" : "Διαγράψατε το %1$s", + "%2$s deleted %1$s" : "Ο χρήστης %2$s διέγραψε το %1$s", + "You restored %1$s" : "Επαναφέρατε το %1$s", + "%2$s restored %1$s" : "Ο χρήστης %2$s επανέφερε το %1$s", + "Changed by %2$s" : "Άλλαξε από το χρήστη %2$s", + "Deleted by %2$s" : "Διαγράφηκε από το χρήστη %2$s", + "Restored by %2$s" : "Επαναφορά από το χρήστη %2$s" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files/l10n/pt_BR.js b/apps/files/l10n/pt_BR.js index b31977f2774..34fca8819b6 100644 --- a/apps/files/l10n/pt_BR.js +++ b/apps/files/l10n/pt_BR.js @@ -62,7 +62,7 @@ OC.L10N.register( "Your storage is full, files can not be updated or synced anymore!" : "Seu armazenamento está cheio, arquivos não podem mais ser atualizados ou sincronizados!", "Storage of {owner} is almost full ({usedSpacePercent}%)" : "Armazenamento do {owner} está quase cheio ({usedSpacePercent}%)", "Your storage is almost full ({usedSpacePercent}%)" : "Seu armazenamento está quase cheio ({usedSpacePercent}%)", - "_matches '{filter}'_::_match '{filter}'_" : ["coincide com '{filter}'","coincide com '{filter}'"], + "_matches '{filter}'_::_match '{filter}'_" : ["coincide com '{filter}'","coincidem com '{filter}'"], "View in folder" : "Exibir na pasta", "Path" : "Caminho", "_%n byte_::_%n bytes_" : ["%n byte","%n bytes"], diff --git a/apps/files/l10n/pt_BR.json b/apps/files/l10n/pt_BR.json index f5481c8ab0d..aa783480953 100644 --- a/apps/files/l10n/pt_BR.json +++ b/apps/files/l10n/pt_BR.json @@ -60,7 +60,7 @@ "Your storage is full, files can not be updated or synced anymore!" : "Seu armazenamento está cheio, arquivos não podem mais ser atualizados ou sincronizados!", "Storage of {owner} is almost full ({usedSpacePercent}%)" : "Armazenamento do {owner} está quase cheio ({usedSpacePercent}%)", "Your storage is almost full ({usedSpacePercent}%)" : "Seu armazenamento está quase cheio ({usedSpacePercent}%)", - "_matches '{filter}'_::_match '{filter}'_" : ["coincide com '{filter}'","coincide com '{filter}'"], + "_matches '{filter}'_::_match '{filter}'_" : ["coincide com '{filter}'","coincidem com '{filter}'"], "View in folder" : "Exibir na pasta", "Path" : "Caminho", "_%n byte_::_%n bytes_" : ["%n byte","%n bytes"], diff --git a/apps/files/l10n/sk_SK.js b/apps/files/l10n/sk_SK.js index 22b909669de..370bb0626f5 100644 --- a/apps/files/l10n/sk_SK.js +++ b/apps/files/l10n/sk_SK.js @@ -27,6 +27,7 @@ OC.L10N.register( "Delete" : "Zmazať", "Disconnect storage" : "Odpojiť úložisko", "Unshare" : "Zneprístupniť", + "Could not load info for file \"{file}\"" : "Nebolo možné načítať informácie súboru \"{file}\"", "Files" : "Súbory", "Details" : "Podrobnosti", "Select" : "Vybrať", @@ -107,6 +108,8 @@ OC.L10N.register( "Maximum upload size" : "Maximálna veľkosť odosielaného súboru", "max. possible: " : "najväčšie možné:", "Save" : "Uložiť", + "With PHP-FPM it might take 5 minutes for changes to be applied." : "Použitím PHP-FPM môžu byť zmeny vykonané do 5 minút.", + "Missing permissions to edit from here." : "Chýbajú orávnenia pre možnosť tu upravovať.", "Settings" : "Nastavenia", "Show hidden files" : "Zobraziť skryté súbory", "WebDAV" : "WebDAV", @@ -122,6 +125,7 @@ OC.L10N.register( "Shared with you" : "Vám sprístupnené", "Shared with others" : "Sprístupnené ostatným", "Shared by link" : "Sprístupnené prostredníctvom odkazu", + "Tags" : "Štítky", "Deleted files" : "Zmazané súbory", "Text file" : "Textový súbor", "New text file.txt" : "Nový text file.txt", @@ -144,6 +148,12 @@ OC.L10N.register( "Total file size {size1} exceeds upload limit {size2}" : "Celková veľkosť súboru {size1} prekračuje upload limit {size2}", "Error uploading file \"{fileName}\": {message}" : "Chyba pri nahrávaní súboru \"{fileName}\": {message}", "Could not get result from server." : "Nepodarilo sa dostať výsledky zo servera.", + "{hours}:{minutes}:{seconds} hour{plural_s} left" : "zostáva {hours}:{minutes}:{seconds} hodín", + "{hours}:{minutes}h" : "{hours}:{minutes}h", + "{minutes}:{seconds} minute{plural_s} left" : "zostáva {minutes}:{seconds} minút", + "{minutes}:{seconds}m" : "{minutes}:{seconds}m", + "{seconds} second{plural_s} left" : "zostáva {seconds} sekúnd", + "{seconds}s" : "{seconds}s", "Any moment now..." : "Už každú chvíľu…", "Soon..." : "Čoskoro…", "File upload is in progress. Leaving the page now will cancel the upload." : "Opustenie stránky zruší práve prebiehajúce odosielanie súboru.", diff --git a/apps/files/l10n/sk_SK.json b/apps/files/l10n/sk_SK.json index ee43d8edc83..9a548bdc382 100644 --- a/apps/files/l10n/sk_SK.json +++ b/apps/files/l10n/sk_SK.json @@ -25,6 +25,7 @@ "Delete" : "Zmazať", "Disconnect storage" : "Odpojiť úložisko", "Unshare" : "Zneprístupniť", + "Could not load info for file \"{file}\"" : "Nebolo možné načítať informácie súboru \"{file}\"", "Files" : "Súbory", "Details" : "Podrobnosti", "Select" : "Vybrať", @@ -105,6 +106,8 @@ "Maximum upload size" : "Maximálna veľkosť odosielaného súboru", "max. possible: " : "najväčšie možné:", "Save" : "Uložiť", + "With PHP-FPM it might take 5 minutes for changes to be applied." : "Použitím PHP-FPM môžu byť zmeny vykonané do 5 minút.", + "Missing permissions to edit from here." : "Chýbajú orávnenia pre možnosť tu upravovať.", "Settings" : "Nastavenia", "Show hidden files" : "Zobraziť skryté súbory", "WebDAV" : "WebDAV", @@ -120,6 +123,7 @@ "Shared with you" : "Vám sprístupnené", "Shared with others" : "Sprístupnené ostatným", "Shared by link" : "Sprístupnené prostredníctvom odkazu", + "Tags" : "Štítky", "Deleted files" : "Zmazané súbory", "Text file" : "Textový súbor", "New text file.txt" : "Nový text file.txt", @@ -142,6 +146,12 @@ "Total file size {size1} exceeds upload limit {size2}" : "Celková veľkosť súboru {size1} prekračuje upload limit {size2}", "Error uploading file \"{fileName}\": {message}" : "Chyba pri nahrávaní súboru \"{fileName}\": {message}", "Could not get result from server." : "Nepodarilo sa dostať výsledky zo servera.", + "{hours}:{minutes}:{seconds} hour{plural_s} left" : "zostáva {hours}:{minutes}:{seconds} hodín", + "{hours}:{minutes}h" : "{hours}:{minutes}h", + "{minutes}:{seconds} minute{plural_s} left" : "zostáva {minutes}:{seconds} minút", + "{minutes}:{seconds}m" : "{minutes}:{seconds}m", + "{seconds} second{plural_s} left" : "zostáva {seconds} sekúnd", + "{seconds}s" : "{seconds}s", "Any moment now..." : "Už každú chvíľu…", "Soon..." : "Čoskoro…", "File upload is in progress. Leaving the page now will cancel the upload." : "Opustenie stránky zruší práve prebiehajúce odosielanie súboru.", diff --git a/apps/files/lib/Activity/FavoriteProvider.php b/apps/files/lib/Activity/FavoriteProvider.php index ed00d50f221..941579e730d 100644 --- a/apps/files/lib/Activity/FavoriteProvider.php +++ b/apps/files/lib/Activity/FavoriteProvider.php @@ -138,12 +138,21 @@ class FavoriteProvider implements IProvider { * @param string $subject */ protected function setSubjects(IEvent $event, $subject) { + $subjectParams = $event->getSubjectParameters(); + if (empty($subjectParams)) { + // Try to fall back to the old way, but this does not work for emails. + // But at least old activities still work. + $subjectParams = [ + 'id' => $event->getObjectId(), + 'path' => $event->getObjectName(), + ]; + } $parameter = [ 'type' => 'file', - 'id' => $event->getObjectId(), - 'name' => basename($event->getObjectName()), - 'path' => trim($event->getObjectName(), '/'), - 'link' => $this->url->linkToRouteAbsolute('files.viewcontroller.showFile', ['fileid' => $event->getObjectId()]), + 'id' => $subjectParams['id'], + 'name' => basename($subjectParams['path']), + 'path' => trim($subjectParams['path'], '/'), + 'link' => $this->url->linkToRouteAbsolute('files.viewcontroller.showFile', ['fileid' => $subjectParams['id']]), ]; $event->setParsedSubject(str_replace('{file}', $parameter['path'], $subject)) diff --git a/apps/files/lib/Activity/Provider.php b/apps/files/lib/Activity/Provider.php index ae303034610..3efab382640 100644 --- a/apps/files/lib/Activity/Provider.php +++ b/apps/files/lib/Activity/Provider.php @@ -103,7 +103,7 @@ class Provider implements IProvider { * @since 11.0.0 */ public function parseShortVersion(IEvent $event, IEvent $previousEvent = null) { - $parsedParameters = $this->getParameters($event->getSubject(), $event->getSubjectParameters()); + $parsedParameters = $this->getParameters($event); if ($event->getSubject() === 'created_by') { $subject = $this->l->t('Created by {user}'); @@ -128,9 +128,7 @@ class Provider implements IProvider { $this->setSubjects($event, $subject, $parsedParameters); - $event = $this->eventMerger->mergeEvents('user', $event, $previousEvent); - - return $event; + return $this->eventMerger->mergeEvents('user', $event, $previousEvent); } /** @@ -141,7 +139,7 @@ class Provider implements IProvider { * @since 11.0.0 */ public function parseLongVersion(IEvent $event, IEvent $previousEvent = null) { - $parsedParameters = $this->getParameters($event->getSubject(), $event->getSubjectParameters()); + $parsedParameters = $this->getParameters($event); if ($event->getSubject() === 'created_self') { $subject = $this->l->t('You created {file}'); @@ -211,44 +209,65 @@ class Provider implements IProvider { ->setRichSubject($subject, $parameters); } - protected function getParameters($subject, array $parameters) { - switch ($subject) { + /** + * @param IEvent $event + * @return array + * @throws \InvalidArgumentException + */ + protected function getParameters(IEvent $event) { + $parameters = $event->getSubjectParameters(); + switch ($event->getSubject()) { case 'created_self': case 'created_public': case 'changed_self': case 'deleted_self': case 'restored_self': return [ - 'file' => $this->getRichFileParameter($parameters[0]), + 'file' => $this->getFile($parameters[0], $event), ]; case 'created_by': case 'changed_by': case 'deleted_by': case 'restored_by': return [ - 'file' => $this->getRichFileParameter($parameters[0]), - 'user' => $this->getRichUserParameter($parameters[1]), + 'file' => $this->getFile($parameters[0], $event), + 'user' => $this->getUser($parameters[1]), ]; case 'renamed_self': case 'moved_self': return [ - 'newfile' => $this->getRichFileParameter($parameters[0]), - 'oldfile' => $this->getRichFileParameter($parameters[1]), + 'newfile' => $this->getFile($parameters[0]), + 'oldfile' => $this->getFile($parameters[1]), ]; case 'renamed_by': case 'moved_by': return [ - 'newfile' => $this->getRichFileParameter($parameters[0]), - 'user' => $this->getRichUserParameter($parameters[1]), - 'oldfile' => $this->getRichFileParameter($parameters[2]), + 'newfile' => $this->getFile($parameters[0]), + 'user' => $this->getUser($parameters[1]), + 'oldfile' => $this->getFile($parameters[2]), ]; } return []; } - protected function getRichFileParameter($parameter) { - $path = reset($parameter); - $id = key($parameter); + /** + * @param array|string $parameter + * @param IEvent|null $event + * @return array + * @throws \InvalidArgumentException + */ + protected function getFile($parameter, IEvent $event = null) { + if (is_array($parameter)) { + $path = reset($parameter); + $id = (string) key($parameter); + } else if ($event !== null) { + // Legacy from before ownCloud 8.2 + $path = $parameter; + $id = $event->getObjectId(); + } else { + throw new \InvalidArgumentException('Could not generate file parameter'); + } + return [ 'type' => 'file', 'id' => $id, @@ -258,7 +277,11 @@ class Provider implements IProvider { ]; } - protected function getRichUserParameter($uid) { + /** + * @param string $uid + * @return array + */ + protected function getUser($uid) { if (!isset($this->displayNames[$uid])) { $this->displayNames[$uid] = $this->getDisplayName($uid); } diff --git a/apps/files/lib/Service/TagService.php b/apps/files/lib/Service/TagService.php index cf80d780eaf..cea26d26d16 100644 --- a/apps/files/lib/Service/TagService.php +++ b/apps/files/lib/Service/TagService.php @@ -116,14 +116,21 @@ class TagService { } $event = $this->activityManager->generateEvent(); - $event->setApp('files') - ->setObject('files', $fileId, $path) - ->setType('favorite') - ->setAuthor($user->getUID()) - ->setAffectedUser($user->getUID()) - ->setTimestamp(time()) - ->setSubject($addToFavorite ? FavoriteProvider::SUBJECT_ADDED : FavoriteProvider::SUBJECT_REMOVED); - $this->activityManager->publish($event); + try { + $event->setApp('files') + ->setObject('files', $fileId, $path) + ->setType('favorite') + ->setAuthor($user->getUID()) + ->setAffectedUser($user->getUID()) + ->setTimestamp(time()) + ->setSubject( + $addToFavorite ? FavoriteProvider::SUBJECT_ADDED : FavoriteProvider::SUBJECT_REMOVED, + ['id' => $fileId, 'path' => $path] + ); + $this->activityManager->publish($event); + } catch (\InvalidArgumentException $e) { + } catch (\BadMethodCallException $e) { + } } } diff --git a/apps/files/tests/Activity/ProviderTest.php b/apps/files/tests/Activity/ProviderTest.php new file mode 100644 index 00000000000..6cb89961a1b --- /dev/null +++ b/apps/files/tests/Activity/ProviderTest.php @@ -0,0 +1,208 @@ +<?php +/** + * @copyright Copyright (c) 2017 Joas Schilling <coding@schilljs.com> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace OCA\Files\Tests\Activity; + + +use OCA\Files\Activity\Provider; +use OCP\Activity\IEvent; +use OCP\Activity\IEventMerger; +use OCP\Activity\IManager; +use OCP\IURLGenerator; +use OCP\IUser; +use OCP\IUserManager; +use OCP\L10N\IFactory; +use Test\TestCase; + +/** + * Class ProviderTest + * + * @package OCA\Files\Tests\Activity + */ +class ProviderTest extends TestCase { + + /** @var IFactory|\PHPUnit_Framework_MockObject_MockObject */ + protected $l10nFactory; + /** @var IURLGenerator|\PHPUnit_Framework_MockObject_MockObject */ + protected $url; + /** @var IManager|\PHPUnit_Framework_MockObject_MockObject */ + protected $activityManager; + /** @var IUserManager|\PHPUnit_Framework_MockObject_MockObject */ + protected $userManager; + /** @var IEventMerger|\PHPUnit_Framework_MockObject_MockObject */ + protected $eventMerger; + + public function setUp() { + parent::setUp(); + + $this->l10nFactory = $this->createMock(IFactory::class); + $this->url = $this->createMock(IURLGenerator::class); + $this->activityManager = $this->createMock(IManager::class); + $this->userManager = $this->createMock(IUserManager::class); + $this->eventMerger = $this->createMock(IEventMerger::class); + } + + /** + * @param string[] $methods + * @return Provider|\PHPUnit_Framework_MockObject_MockObject + */ + protected function getProvider(array $methods = []) { + if (!empty($methods)) { + return $this->getMockBuilder(Provider::class) + ->setConstructorArgs([ + $this->l10nFactory, + $this->url, + $this->activityManager, + $this->userManager, + $this->eventMerger, + ]) + ->setMethods($methods) + ->getMock(); + } + return new Provider( + $this->l10nFactory, + $this->url, + $this->activityManager, + $this->userManager, + $this->eventMerger + ); + } + + public function dataGetFile() { + return [ + [[42 => '/FortyTwo.txt'], null, '42', 'FortyTwo.txt', 'FortyTwo.txt'], + [['23' => '/Twenty/Three.txt'], null, '23', 'Three.txt', 'Twenty/Three.txt'], + ['/Foo/Bar.txt', '128', '128', 'Bar.txt', 'Foo/Bar.txt'], // Legacy from ownCloud 8.2 and before + ]; + } + + /** + * @dataProvider dataGetFile + * @param mixed $parameter + * @param mixed $eventId + * @param int $id + * @param string $name + * @param string $path + */ + public function testGetFile($parameter, $eventId, $id, $name, $path) { + $provider = $this->getProvider(); + + if ($eventId !== null) { + $event = $this->createMock(IEvent::class); + $event->expects($this->once()) + ->method('getObjectId') + ->willReturn($eventId); + } else { + $event = null; + } + + $this->url->expects($this->once()) + ->method('linkToRouteAbsolute') + ->with('files.viewcontroller.showFile', ['fileid' => $id]) + ->willReturn('link-' . $id); + + $result = self::invokePrivate($provider, 'getFile', [$parameter, $event]); + + $this->assertSame('file', $result['type']); + $this->assertSame($id, $result['id']); + $this->assertSame($name, $result['name']); + $this->assertSame($path, $result['path']); + $this->assertSame('link-' . $id, $result['link']); + } + + /** + * @expectedException \InvalidArgumentException + */ + public function testGetFileThrows() { + $provider = $this->getProvider(); + self::invokePrivate($provider, 'getFile', ['/Foo/Bar.txt', null]); + } + + public function dataGetUser() { + return [ + ['test', [], false, 'Test'], + ['foo', ['admin' => 'Admin'], false, 'Bar'], + ['admin', ['admin' => 'Administrator'], true, 'Administrator'], + ]; + } + + /** + * @dataProvider dataGetUser + * @param string $uid + * @param array $cache + * @param bool $cacheHit + * @param string $name + */ + public function testGetUser($uid, $cache, $cacheHit, $name) { + $provider = $this->getProvider(['getDisplayName']); + + self::invokePrivate($provider, 'displayNames', [$cache]); + + if (!$cacheHit) { + $provider->expects($this->once()) + ->method('getDisplayName') + ->with($uid) + ->willReturn($name); + } else { + $provider->expects($this->never()) + ->method('getDisplayName'); + } + + $result = self::invokePrivate($provider, 'getUser', [$uid]); + $this->assertSame('user', $result['type']); + $this->assertSame($uid, $result['id']); + $this->assertSame($name, $result['name']); + } + + public function dataGetDisplayName() { + return [ + ['test', true, 'Test'], + ['foo', false, 'foo'], + ]; + } + + /** + * @dataProvider dataGetDisplayName + * @param string $uid + * @param string $name + */ + public function testGetDisplayNamer($uid, $validUser, $name) { + $provider = $this->getProvider(); + + if ($validUser) { + $user = $this->createMock(IUser::class); + $user->expects($this->once()) + ->method('getDisplayName') + ->willReturn($name); + $this->userManager->expects($this->once()) + ->method('get') + ->with($uid) + ->willReturn($user); + } else { + $this->userManager->expects($this->once()) + ->method('get') + ->with($uid) + ->willReturn(null); + } + + $this->assertSame($name, self::invokePrivate($provider, 'getDisplayName', [$uid])); + } +} diff --git a/apps/files_external/l10n/el.js b/apps/files_external/l10n/el.js index b5af26264ac..94a295bce7c 100644 --- a/apps/files_external/l10n/el.js +++ b/apps/files_external/l10n/el.js @@ -97,6 +97,7 @@ OC.L10N.register( "Scope" : "Εύρος", "Enable encryption" : "Ενεργοποίηση κρυπτογράφησης", "Enable previews" : "Ενεργοποίηση προεπισκοπήσεων", + "Enable sharing" : "Ενεργοποίηση διαμοιρασμού", "Check for changes" : "Έλεγχος για αλλαγές", "Never" : "Ποτέ", "Once every direct access" : "Σε κάθε απευθείας πρόσβαση", diff --git a/apps/files_external/l10n/el.json b/apps/files_external/l10n/el.json index 03e56cfba5c..db584e776ef 100644 --- a/apps/files_external/l10n/el.json +++ b/apps/files_external/l10n/el.json @@ -95,6 +95,7 @@ "Scope" : "Εύρος", "Enable encryption" : "Ενεργοποίηση κρυπτογράφησης", "Enable previews" : "Ενεργοποίηση προεπισκοπήσεων", + "Enable sharing" : "Ενεργοποίηση διαμοιρασμού", "Check for changes" : "Έλεγχος για αλλαγές", "Never" : "Ποτέ", "Once every direct access" : "Σε κάθε απευθείας πρόσβαση", diff --git a/apps/files_sharing/l10n/cs_CZ.js b/apps/files_sharing/l10n/cs_CZ.js index 4dff7b988e4..9e09cb63a11 100644 --- a/apps/files_sharing/l10n/cs_CZ.js +++ b/apps/files_sharing/l10n/cs_CZ.js @@ -20,76 +20,42 @@ OC.L10N.register( "Sharing" : "Sdílení", "File shares" : "Sdílení souboru", "Downloaded via public link" : "Staženo pomocí veřejného odkazu", - "Downloaded by %1$s" : "Stáhnul(o) %1$s", "Downloaded by {email}" : "Stáhl {email}", - "%1$s downloaded via public link" : "%1$s stažen pomocí veřejného odkazu", "{file} downloaded via public link" : "{file} stažen pomocí veřejného odkazu", - "%1$s downloaded %2$s" : "%1$s stáhl(a) %2$s", "{email} downloaded {file}" : "{email} stáhnul {file}", - "Shared with group %1$s" : "Sdíleno se skupinou %1$s", "Shared with group {group}" : "Sdíleno se skupinou {group}", - "Removed share for group %1$s" : "Odstraněno sdílení pro skupinu %1$s", "Removed share for group {group}" : "Odstranil sdílení pro skupinu {group}", - "%2$s shared with group %1$s" : "%2$s sdílel se skupinou %1$s", "{actor} shared with group {group}" : "{actor} sdílel(a) se skupinou {group}", - "%2$s removed share for group %1$s" : "%2$s odstranil(a) sdílení pro skupinu %1$s", "{actor} removed share for group {group}" : "{actor} odstranil(a) sdílení pro skupinu {group}", - "You shared %1$s with group %2$s" : "Sdílíte %1$s se skupinou %2$s", "You shared {file} with group {group}" : "Se skupinou {group} jste nasdílel(a) {file}", - "You removed group %2$s from %1$s" : "Z %1$s jste odstranil(a) skupinu %2$s", "You removed group {group} from {file}" : "Z {file} jste odstranil(a) skupinu {group}", - "%3$s shared %1$s with group %2$s" : "%3$s sdílel %1$s se skupinou %2$s", "{actor} shared {file} with group {group}" : "{actor} sdílel(a) {file} se skupinou {group}", - "%3$s removed group %2$s from %1$s" : "%3$s odstranil(a) z %1$s skupinu %2$s", "{actor} removed group {group} from {file}" : "{actor} odstranil(a) skupinu {group} z {file}", "Shared as public link" : "Sdíleno jako veřejný odkaz", "Removed public link" : "Odstranil(a) veřejný odkaz", - "%1$s shared as public link" : "%1$s sdílen jako veřejný odkaz", + "Public link expired" : "Veřejný odkaz vypršel", "{actor} shared as public link" : "{actor} sdílel(a) jako veřejný odkaz", - "%1$s removed public link" : "%1$s odstranil(a) veřejný odkaz", "{actor} removed public link" : "{actor} odstranil(a) veřejný odkaz", - "You shared %1$s as public link" : "Sdílel(a) jste %1$s jako veřejný odkaz", "You shared {file} as public link" : "Sdílel(a) jste {file} jako veřejný odkaz", - "You removed public link for %1$s" : "Odstranil(a) jste veřejný odkaz pro %1$s", "You removed public link for {file}" : "Odstranil(a) jste veřejný odkaz pro {file}", - "%2$s shared %1$s as public link" : "%2$s sdílel(a) %1$s jako veřejný odkaz", "{actor} shared {file} as public link" : "{actor} sdílel(a) {file} jako veřejný odkaz", - "%2$s removed public link for %1$s" : "%2$s odstranil veřejný odkaz z %1$s", "{actor} removed public link for {file}" : "{actor} odstranil(a) veřejný odkaz pro {file}", - "%1$s accepted the remote share" : "%1$s přijal(a) vzdálené sdílení", "{user} accepted the remote share" : "{user} přijal(a) vzdálené sdílení", - "%1$s declined the remote share" : "%1$s odmítl(a) vzdálené sdílení", "{user} declined the remote share" : "{user} odmítl vzdálené sdílení", - "You received a new remote share %1$s from %2$s" : "Obdržel(a) jste nové vzdálené sdílení %1$s z %2$s", "You received a new remote share {file} from {user}" : "Obdržel(a) jste nové vzdálené sdílení souboru {file} od {user}", - "%2$s accepted the remote share of %1$s" : "%2$s přijal(a) vzdálené sdílení %1$s", "{user} accepted the remote share of {file}" : "{user} přijal vzdálené sdílení souboru {file}", - "%2$s declined the remote share of %1$s" : "%2$s odmítl vzdálené sdílení %1$s", "{user} declined the remote share of {file}" : "{user} odmítl(a) vzdálené sdílení {file}", - "%2$s unshared %1$s from you" : "%2$s s vámi přestal(a) sdílet %1$s", "{user} unshared {file} from you" : "{user} s vámi již nesdílí soubor {file}", - "Shared with %1$s" : "Sdíleno s %1$s", "Shared with {user}" : "Sdíleno s {user}", - "Removed share for %1$s" : "Odstraněno sdílení %1$s", "Removed share for {user}" : "Odstraněno sdílení pro {user}", - "%2$s shared with %1$s" : "%2$s sdíleno s %1$s", "{actor} shared with {user}" : "{actor} sdílel(a) s {user}", - "%2$s removed share for %1$s" : "%2$s odstranil(a) sdílení pro %1$s", "{actor} removed share for {user}" : "{actor} odstranil(a) sdílení pro {user}", - "Shared by %1$s" : "Sdíleno %1$s", "Shared by {actor}" : "Sdílel {actor}", - "%1$s removed share" : "%1$s odstranil(a) sdílení", "{actor} removed share" : "{actor} odebral(a) sdílení", - "You shared %1$s with %2$s" : "Sdílíte %1$s s %2$s", "You shared {file} with {user}" : "Sdílel(a) jste {file} s {user}", - "You removed %2$s from %1$s" : "Odstranil(a) jste %2$s z %1$s", "You removed {user} from {file}" : "Odstranil(a) jste uživatele {user} z {file}", - "%3$s shared %1$s with %2$s" : "%3$s s %2$s sdílel(a) %1$s", "{actor} removed {user} from {file}" : "{actor} odstranil(a) uživatele {user} z {file}", - "%3$s removed %2$s from %1$s" : "%3$s odstranil(a) %2$s z %1$s", - "%2$s shared %1$s with you" : "%2$s s vámi sdílí %1$s", "{actor} shared {file} with you" : "{actor} s vámi sdílel(a) soubor {file}", - "%2$s removed you from %1$s" : "%2$s vás odstranil(a) z %1$s", "{actor} removed you from {file}" : "{actor} vás odstranil(a) ze souboru {file}", "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Byl <strong>stažen</strong> soubor nebo adresář sdílený jako veřejný odkaz", "A file or folder was shared from <strong>another server</strong>" : "Soubor nebo adresář byl nasdílen z <strong>jiného serveru</strong>", @@ -146,9 +112,11 @@ OC.L10N.register( "%1$s unshared %2$s from you" : "%1$s již více nesdílí %2$s", "Public shared folder %1$s was downloaded" : "Byl stažen veřejně sdílený adresář %1$s ", "Public shared file %1$s was downloaded" : "Byl stažen veřejně sdílený soubor %1$s ", + "You shared %1$s with %2$s" : "Sdílíte %1$s s %2$s", "%2$s shared %1$s with %3$s" : "%2$s nasdílel(a) %1$s s %3$s", "You removed the share of %2$s for %1$s" : "Odstranil(a) jsi sdílení %2$s pro %1$s", "%2$s removed the share of %3$s for %1$s" : "%2$s odstranil(a) sdílení %3$s pro %1$s", + "You shared %1$s with group %2$s" : "Sdílíte %1$s se skupinou %2$s", "%2$s shared %1$s with group %3$s" : "%2$s nasdílel(a) %1$s se skupinou %3$s", "You removed the share of group %2$s for %1$s" : "Odstranil(a) jsi sdílení skupině %2$s pro %1$s", "%2$s removed the share of group %3$s for %1$s" : "%2$s odstranil(a) sdílení skupině %3$s pro %1$s", @@ -158,6 +126,7 @@ OC.L10N.register( "%2$s removed the public link for %1$s" : "%2$s odstranil(a) veřejný odkaz na %1$s", "Your public link for %1$s expired" : "Veřejný odkaz pro %1$s vypršel", "The public link of %2$s for %1$s expired" : "Veřejný odkaz na %2$s pro %1$s vypršel", + "%2$s shared %1$s with you" : "%2$s s vámi sdílí %1$s", "%2$s removed the share for %1$s" : "%2$s odstranil(a) sdílení pro %1$s", "Shared with %2$s" : "Sdíleno s %2$s", "Shared with %3$s by %2$s" : "%2$s sdílí s %3$s", @@ -170,9 +139,40 @@ OC.L10N.register( "Shared via link by %2$s" : "%2$s sdílel(a) jako odkaz", "Shared via public link" : "Sdíleno jako veřejný odkaz", "%2$s removed public link" : "%2$s odstranil(a) veřejný odkaz", - "Public link expired" : "Veřejný odkaz vypršel", "Public link of %2$s expired" : "Veřejný odkaz %2$s vypršel", "Shared by %2$s" : "%2$s sdílel(a)", - "Shares" : "Sdílení" + "Shares" : "Sdílení", + "Downloaded by %1$s" : "Stáhnul(o) %1$s", + "%1$s downloaded via public link" : "%1$s stažen pomocí veřejného odkazu", + "%1$s downloaded %2$s" : "%1$s stáhl(a) %2$s", + "Shared with group %1$s" : "Sdíleno se skupinou %1$s", + "Removed share for group %1$s" : "Odstraněno sdílení pro skupinu %1$s", + "%2$s shared with group %1$s" : "%2$s sdílel se skupinou %1$s", + "%2$s removed share for group %1$s" : "%2$s odstranil(a) sdílení pro skupinu %1$s", + "You removed group %2$s from %1$s" : "Z %1$s jste odstranil(a) skupinu %2$s", + "%3$s shared %1$s with group %2$s" : "%3$s sdílel %1$s se skupinou %2$s", + "%3$s removed group %2$s from %1$s" : "%3$s odstranil(a) z %1$s skupinu %2$s", + "%1$s shared as public link" : "%1$s sdílen jako veřejný odkaz", + "%1$s removed public link" : "%1$s odstranil(a) veřejný odkaz", + "You shared %1$s as public link" : "Sdílel(a) jste %1$s jako veřejný odkaz", + "You removed public link for %1$s" : "Odstranil(a) jste veřejný odkaz pro %1$s", + "%2$s shared %1$s as public link" : "%2$s sdílel(a) %1$s jako veřejný odkaz", + "%2$s removed public link for %1$s" : "%2$s odstranil veřejný odkaz z %1$s", + "%1$s accepted the remote share" : "%1$s přijal(a) vzdálené sdílení", + "%1$s declined the remote share" : "%1$s odmítl(a) vzdálené sdílení", + "You received a new remote share %1$s from %2$s" : "Obdržel(a) jste nové vzdálené sdílení %1$s z %2$s", + "%2$s accepted the remote share of %1$s" : "%2$s přijal(a) vzdálené sdílení %1$s", + "%2$s declined the remote share of %1$s" : "%2$s odmítl vzdálené sdílení %1$s", + "%2$s unshared %1$s from you" : "%2$s s vámi přestal(a) sdílet %1$s", + "Shared with %1$s" : "Sdíleno s %1$s", + "Removed share for %1$s" : "Odstraněno sdílení %1$s", + "%2$s shared with %1$s" : "%2$s sdíleno s %1$s", + "%2$s removed share for %1$s" : "%2$s odstranil(a) sdílení pro %1$s", + "Shared by %1$s" : "Sdíleno %1$s", + "%1$s removed share" : "%1$s odstranil(a) sdílení", + "You removed %2$s from %1$s" : "Odstranil(a) jste %2$s z %1$s", + "%3$s shared %1$s with %2$s" : "%3$s s %2$s sdílel(a) %1$s", + "%3$s removed %2$s from %1$s" : "%3$s odstranil(a) %2$s z %1$s", + "%2$s removed you from %1$s" : "%2$s vás odstranil(a) z %1$s" }, "nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"); diff --git a/apps/files_sharing/l10n/cs_CZ.json b/apps/files_sharing/l10n/cs_CZ.json index a96d2fd6f7e..9d86d08a921 100644 --- a/apps/files_sharing/l10n/cs_CZ.json +++ b/apps/files_sharing/l10n/cs_CZ.json @@ -18,76 +18,42 @@ "Sharing" : "Sdílení", "File shares" : "Sdílení souboru", "Downloaded via public link" : "Staženo pomocí veřejného odkazu", - "Downloaded by %1$s" : "Stáhnul(o) %1$s", "Downloaded by {email}" : "Stáhl {email}", - "%1$s downloaded via public link" : "%1$s stažen pomocí veřejného odkazu", "{file} downloaded via public link" : "{file} stažen pomocí veřejného odkazu", - "%1$s downloaded %2$s" : "%1$s stáhl(a) %2$s", "{email} downloaded {file}" : "{email} stáhnul {file}", - "Shared with group %1$s" : "Sdíleno se skupinou %1$s", "Shared with group {group}" : "Sdíleno se skupinou {group}", - "Removed share for group %1$s" : "Odstraněno sdílení pro skupinu %1$s", "Removed share for group {group}" : "Odstranil sdílení pro skupinu {group}", - "%2$s shared with group %1$s" : "%2$s sdílel se skupinou %1$s", "{actor} shared with group {group}" : "{actor} sdílel(a) se skupinou {group}", - "%2$s removed share for group %1$s" : "%2$s odstranil(a) sdílení pro skupinu %1$s", "{actor} removed share for group {group}" : "{actor} odstranil(a) sdílení pro skupinu {group}", - "You shared %1$s with group %2$s" : "Sdílíte %1$s se skupinou %2$s", "You shared {file} with group {group}" : "Se skupinou {group} jste nasdílel(a) {file}", - "You removed group %2$s from %1$s" : "Z %1$s jste odstranil(a) skupinu %2$s", "You removed group {group} from {file}" : "Z {file} jste odstranil(a) skupinu {group}", - "%3$s shared %1$s with group %2$s" : "%3$s sdílel %1$s se skupinou %2$s", "{actor} shared {file} with group {group}" : "{actor} sdílel(a) {file} se skupinou {group}", - "%3$s removed group %2$s from %1$s" : "%3$s odstranil(a) z %1$s skupinu %2$s", "{actor} removed group {group} from {file}" : "{actor} odstranil(a) skupinu {group} z {file}", "Shared as public link" : "Sdíleno jako veřejný odkaz", "Removed public link" : "Odstranil(a) veřejný odkaz", - "%1$s shared as public link" : "%1$s sdílen jako veřejný odkaz", + "Public link expired" : "Veřejný odkaz vypršel", "{actor} shared as public link" : "{actor} sdílel(a) jako veřejný odkaz", - "%1$s removed public link" : "%1$s odstranil(a) veřejný odkaz", "{actor} removed public link" : "{actor} odstranil(a) veřejný odkaz", - "You shared %1$s as public link" : "Sdílel(a) jste %1$s jako veřejný odkaz", "You shared {file} as public link" : "Sdílel(a) jste {file} jako veřejný odkaz", - "You removed public link for %1$s" : "Odstranil(a) jste veřejný odkaz pro %1$s", "You removed public link for {file}" : "Odstranil(a) jste veřejný odkaz pro {file}", - "%2$s shared %1$s as public link" : "%2$s sdílel(a) %1$s jako veřejný odkaz", "{actor} shared {file} as public link" : "{actor} sdílel(a) {file} jako veřejný odkaz", - "%2$s removed public link for %1$s" : "%2$s odstranil veřejný odkaz z %1$s", "{actor} removed public link for {file}" : "{actor} odstranil(a) veřejný odkaz pro {file}", - "%1$s accepted the remote share" : "%1$s přijal(a) vzdálené sdílení", "{user} accepted the remote share" : "{user} přijal(a) vzdálené sdílení", - "%1$s declined the remote share" : "%1$s odmítl(a) vzdálené sdílení", "{user} declined the remote share" : "{user} odmítl vzdálené sdílení", - "You received a new remote share %1$s from %2$s" : "Obdržel(a) jste nové vzdálené sdílení %1$s z %2$s", "You received a new remote share {file} from {user}" : "Obdržel(a) jste nové vzdálené sdílení souboru {file} od {user}", - "%2$s accepted the remote share of %1$s" : "%2$s přijal(a) vzdálené sdílení %1$s", "{user} accepted the remote share of {file}" : "{user} přijal vzdálené sdílení souboru {file}", - "%2$s declined the remote share of %1$s" : "%2$s odmítl vzdálené sdílení %1$s", "{user} declined the remote share of {file}" : "{user} odmítl(a) vzdálené sdílení {file}", - "%2$s unshared %1$s from you" : "%2$s s vámi přestal(a) sdílet %1$s", "{user} unshared {file} from you" : "{user} s vámi již nesdílí soubor {file}", - "Shared with %1$s" : "Sdíleno s %1$s", "Shared with {user}" : "Sdíleno s {user}", - "Removed share for %1$s" : "Odstraněno sdílení %1$s", "Removed share for {user}" : "Odstraněno sdílení pro {user}", - "%2$s shared with %1$s" : "%2$s sdíleno s %1$s", "{actor} shared with {user}" : "{actor} sdílel(a) s {user}", - "%2$s removed share for %1$s" : "%2$s odstranil(a) sdílení pro %1$s", "{actor} removed share for {user}" : "{actor} odstranil(a) sdílení pro {user}", - "Shared by %1$s" : "Sdíleno %1$s", "Shared by {actor}" : "Sdílel {actor}", - "%1$s removed share" : "%1$s odstranil(a) sdílení", "{actor} removed share" : "{actor} odebral(a) sdílení", - "You shared %1$s with %2$s" : "Sdílíte %1$s s %2$s", "You shared {file} with {user}" : "Sdílel(a) jste {file} s {user}", - "You removed %2$s from %1$s" : "Odstranil(a) jste %2$s z %1$s", "You removed {user} from {file}" : "Odstranil(a) jste uživatele {user} z {file}", - "%3$s shared %1$s with %2$s" : "%3$s s %2$s sdílel(a) %1$s", "{actor} removed {user} from {file}" : "{actor} odstranil(a) uživatele {user} z {file}", - "%3$s removed %2$s from %1$s" : "%3$s odstranil(a) %2$s z %1$s", - "%2$s shared %1$s with you" : "%2$s s vámi sdílí %1$s", "{actor} shared {file} with you" : "{actor} s vámi sdílel(a) soubor {file}", - "%2$s removed you from %1$s" : "%2$s vás odstranil(a) z %1$s", "{actor} removed you from {file}" : "{actor} vás odstranil(a) ze souboru {file}", "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Byl <strong>stažen</strong> soubor nebo adresář sdílený jako veřejný odkaz", "A file or folder was shared from <strong>another server</strong>" : "Soubor nebo adresář byl nasdílen z <strong>jiného serveru</strong>", @@ -144,9 +110,11 @@ "%1$s unshared %2$s from you" : "%1$s již více nesdílí %2$s", "Public shared folder %1$s was downloaded" : "Byl stažen veřejně sdílený adresář %1$s ", "Public shared file %1$s was downloaded" : "Byl stažen veřejně sdílený soubor %1$s ", + "You shared %1$s with %2$s" : "Sdílíte %1$s s %2$s", "%2$s shared %1$s with %3$s" : "%2$s nasdílel(a) %1$s s %3$s", "You removed the share of %2$s for %1$s" : "Odstranil(a) jsi sdílení %2$s pro %1$s", "%2$s removed the share of %3$s for %1$s" : "%2$s odstranil(a) sdílení %3$s pro %1$s", + "You shared %1$s with group %2$s" : "Sdílíte %1$s se skupinou %2$s", "%2$s shared %1$s with group %3$s" : "%2$s nasdílel(a) %1$s se skupinou %3$s", "You removed the share of group %2$s for %1$s" : "Odstranil(a) jsi sdílení skupině %2$s pro %1$s", "%2$s removed the share of group %3$s for %1$s" : "%2$s odstranil(a) sdílení skupině %3$s pro %1$s", @@ -156,6 +124,7 @@ "%2$s removed the public link for %1$s" : "%2$s odstranil(a) veřejný odkaz na %1$s", "Your public link for %1$s expired" : "Veřejný odkaz pro %1$s vypršel", "The public link of %2$s for %1$s expired" : "Veřejný odkaz na %2$s pro %1$s vypršel", + "%2$s shared %1$s with you" : "%2$s s vámi sdílí %1$s", "%2$s removed the share for %1$s" : "%2$s odstranil(a) sdílení pro %1$s", "Shared with %2$s" : "Sdíleno s %2$s", "Shared with %3$s by %2$s" : "%2$s sdílí s %3$s", @@ -168,9 +137,40 @@ "Shared via link by %2$s" : "%2$s sdílel(a) jako odkaz", "Shared via public link" : "Sdíleno jako veřejný odkaz", "%2$s removed public link" : "%2$s odstranil(a) veřejný odkaz", - "Public link expired" : "Veřejný odkaz vypršel", "Public link of %2$s expired" : "Veřejný odkaz %2$s vypršel", "Shared by %2$s" : "%2$s sdílel(a)", - "Shares" : "Sdílení" + "Shares" : "Sdílení", + "Downloaded by %1$s" : "Stáhnul(o) %1$s", + "%1$s downloaded via public link" : "%1$s stažen pomocí veřejného odkazu", + "%1$s downloaded %2$s" : "%1$s stáhl(a) %2$s", + "Shared with group %1$s" : "Sdíleno se skupinou %1$s", + "Removed share for group %1$s" : "Odstraněno sdílení pro skupinu %1$s", + "%2$s shared with group %1$s" : "%2$s sdílel se skupinou %1$s", + "%2$s removed share for group %1$s" : "%2$s odstranil(a) sdílení pro skupinu %1$s", + "You removed group %2$s from %1$s" : "Z %1$s jste odstranil(a) skupinu %2$s", + "%3$s shared %1$s with group %2$s" : "%3$s sdílel %1$s se skupinou %2$s", + "%3$s removed group %2$s from %1$s" : "%3$s odstranil(a) z %1$s skupinu %2$s", + "%1$s shared as public link" : "%1$s sdílen jako veřejný odkaz", + "%1$s removed public link" : "%1$s odstranil(a) veřejný odkaz", + "You shared %1$s as public link" : "Sdílel(a) jste %1$s jako veřejný odkaz", + "You removed public link for %1$s" : "Odstranil(a) jste veřejný odkaz pro %1$s", + "%2$s shared %1$s as public link" : "%2$s sdílel(a) %1$s jako veřejný odkaz", + "%2$s removed public link for %1$s" : "%2$s odstranil veřejný odkaz z %1$s", + "%1$s accepted the remote share" : "%1$s přijal(a) vzdálené sdílení", + "%1$s declined the remote share" : "%1$s odmítl(a) vzdálené sdílení", + "You received a new remote share %1$s from %2$s" : "Obdržel(a) jste nové vzdálené sdílení %1$s z %2$s", + "%2$s accepted the remote share of %1$s" : "%2$s přijal(a) vzdálené sdílení %1$s", + "%2$s declined the remote share of %1$s" : "%2$s odmítl vzdálené sdílení %1$s", + "%2$s unshared %1$s from you" : "%2$s s vámi přestal(a) sdílet %1$s", + "Shared with %1$s" : "Sdíleno s %1$s", + "Removed share for %1$s" : "Odstraněno sdílení %1$s", + "%2$s shared with %1$s" : "%2$s sdíleno s %1$s", + "%2$s removed share for %1$s" : "%2$s odstranil(a) sdílení pro %1$s", + "Shared by %1$s" : "Sdíleno %1$s", + "%1$s removed share" : "%1$s odstranil(a) sdílení", + "You removed %2$s from %1$s" : "Odstranil(a) jste %2$s z %1$s", + "%3$s shared %1$s with %2$s" : "%3$s s %2$s sdílel(a) %1$s", + "%3$s removed %2$s from %1$s" : "%3$s odstranil(a) %2$s z %1$s", + "%2$s removed you from %1$s" : "%2$s vás odstranil(a) z %1$s" },"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/de.js b/apps/files_sharing/l10n/de.js index 3505b3b07ab..edd9d757be9 100644 --- a/apps/files_sharing/l10n/de.js +++ b/apps/files_sharing/l10n/de.js @@ -20,76 +20,45 @@ OC.L10N.register( "Sharing" : "Teilen", "File shares" : "Dateifreigaben", "Downloaded via public link" : "Heruntergeladen mittels öffentlichen Link", - "Downloaded by %1$s" : "Heruntergeladen von %1$s", "Downloaded by {email}" : "Heruntergeladen von {email}", - "%1$s downloaded via public link" : "%1$s heruntergeladen mittels öffentlichen Link", "{file} downloaded via public link" : "{file} heruntergeladen mittels öffentlichen Link", - "%1$s downloaded %2$s" : "%1$s hat %2$s heruntergeladen", "{email} downloaded {file}" : "{email} hat {file} heruntergeladen", - "Shared with group %1$s" : "Geteilt mit der Gruppe %1$s", "Shared with group {group}" : "Geteilt mit der Gruppe {group}", - "Removed share for group %1$s" : "Freigabe für die Gruppe %1$s entfernt", "Removed share for group {group}" : "Freigabe für die Gruppe {group} entfernt", - "%2$s shared with group %1$s" : "%2$s geteilt mit der Gruppe %1$s", "{actor} shared with group {group}" : "{actor} geteilt mit der Gruppe {group}", - "%2$s removed share for group %1$s" : "%2$s hat die Freigabe für die Gruppe %1$s entfernt", "{actor} removed share for group {group}" : "{actor} hat die Freigabe für die Gruppe {group} entfernt", - "You shared %1$s with group %2$s" : "Du hast %1$s mit der Gruppe %2$s geteilt", "You shared {file} with group {group}" : "Du hast {file} mit der Gruppe {group} geteilt", - "You removed group %2$s from %1$s" : "Du hast die Gruppe %2$s von %1$s entfernt", "You removed group {group} from {file}" : "Du hast die Gruppe {group} von {file} entfernt", - "%3$s shared %1$s with group %2$s" : "%3$s hat %1$s mit der Gruppe %2$s geteilt", "{actor} shared {file} with group {group}" : "{actor} hat {file} mit der Gruppe {group} geteilt", - "%3$s removed group %2$s from %1$s" : "%3$s hat die Gruppe %2$s von %1$s entfernt", "{actor} removed group {group} from {file}" : "{actor} hat die Gruppe {group} von {file} entfernt", "Shared as public link" : "Als öffentlichen Link geteilt", "Removed public link" : "Öffentlichen Link entfernt", - "%1$s shared as public link" : "%1$s hat einen öffentlichen Link geteilt", + "Public link expired" : "öffentlicher Link ist abgelaufen", "{actor} shared as public link" : "{actor} hat einen öffentlichen Link geteilt", - "%1$s removed public link" : "%1$s hat einen öffentlichen Link entfernt", "{actor} removed public link" : "{actor} hat einen öffentlichen Link entfernt", - "You shared %1$s as public link" : "Du hast %1$s über einen öffentlichen Link geteilt", + "Public link of {actor} expired" : "Öffentlicher Link von {actor} ist abgelaufen", "You shared {file} as public link" : "Du hast {file} über einen öffentlichen Link geteilt", - "You removed public link for %1$s" : "Du hast die öffentliche Freigabe für %1$s entfernt", "You removed public link for {file}" : "Du hast die öffentliche Freigabe für {file} entfernt", - "%2$s shared %1$s as public link" : "%2$s hat %1$s über einen öffentlichen Link geteilt", + "Public link expired for {file}" : "Öffentlicher Link für {file} ist abgelaufen", "{actor} shared {file} as public link" : "{actor} hat {file} über einen öffentlichen Link geteilt", - "%2$s removed public link for %1$s" : "%2$s hat den öffentlichen Link für %1$s entfernt", "{actor} removed public link for {file}" : "{actor} hat einen öffentlichen Link {file} entfernt", - "%1$s accepted the remote share" : "%1$s hat die Remotefreigabe akzeptiert", + "Public link of {actor} for {file} expired" : "Öffentlicher Link von {actor} für {file} ist abgelaufen", "{user} accepted the remote share" : "{user} hat die Remotefreigabe akzeptiert", - "%1$s declined the remote share" : "%1$s hat die Remotefreigabe abgelehnt", "{user} declined the remote share" : "{user} hat die Remotefreigabe abgelehnt", - "You received a new remote share %1$s from %2$s" : "Du hast eine neue Remotefreigabe %1$s von %2$s erhalten", "You received a new remote share {file} from {user}" : "Du hast eine neue Remotefreigabe {file} von {user} erhalten", - "%2$s accepted the remote share of %1$s" : "%2$s hat die Remotefreigabe von %1$s akzeptiert", "{user} accepted the remote share of {file}" : "{user} hat die Remotefreigabe von {file} akzeptiert", - "%2$s declined the remote share of %1$s" : "%2$s hat die Remotefreigabe von %1$s abgelehnt", "{user} declined the remote share of {file}" : "{user} hat die Remotefreigabe von {file} abgelehnt", - "%2$s unshared %1$s from you" : "%2$s teilt %1$s nicht mehr mit dir", "{user} unshared {file} from you" : "{user} teilt {file} nicht mehr mit dir", - "Shared with %1$s" : "Geteilt mit %1$s", "Shared with {user}" : "Geteilt mit {user}", - "Removed share for %1$s" : "Freigabe für %1$s entfernt", "Removed share for {user}" : "Freigabe für {user} entfernt", - "%2$s shared with %1$s" : "%2$s hat mit %1$s geteilt", "{actor} shared with {user}" : "{actor} hat mit {user} geteilt", - "%2$s removed share for %1$s" : "%2$s hat die Freigabe für %1$s entfernt", "{actor} removed share for {user}" : "{actor} hat die Freigabe für {user} entfernt", - "Shared by %1$s" : "Geteilt von %1$s", "Shared by {actor}" : "Geteilt von {actor}", - "%1$s removed share" : "%1$s hat die Freigabe entfernt", "{actor} removed share" : "{actor} hat die Freigabe entfernt", - "You shared %1$s with %2$s" : "Du hast %1$s mit %2$s geteilt", "You shared {file} with {user}" : "Du hast {file} mit {user} geteilt", - "You removed %2$s from %1$s" : "Sie haben die %2$s von %1$s entfernt", "You removed {user} from {file}" : "Sie haben die {user} von {file} entfernt", - "%3$s shared %1$s with %2$s" : "%3$s geteilt %1$s mit %2$s", "{actor} removed {user} from {file}" : "{actor} hat {user} von {file} entfernt", - "%3$s removed %2$s from %1$s" : "%3$s hat %2$s von %1$s entfernt", - "%2$s shared %1$s with you" : "%2$s hat %1$s mit dir geteilt", "{actor} shared {file} with you" : "{actor} hat {file} mit dir geteilt", - "%2$s removed you from %1$s" : "Du wurdest durch %2$s von %1$s entfernt", "{actor} removed you from {file}" : "Du wurdest durch {actor} von {file} entfernt", "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Öffentlich oder per E-Mail geteilte Datei / Ordner wurde <strong>heruntergeladen</strong>", "A file or folder was shared from <strong>another server</strong>" : "Eine Datei oder ein Ordner wurde von <strong>einem anderen Server</strong> geteilt", @@ -146,9 +115,11 @@ OC.L10N.register( "%1$s unshared %2$s from you" : "%1$s hat die Freigabe von %2$s für Dich entfernt", "Public shared folder %1$s was downloaded" : "Der öffentliche geteilte Ordner %1$s wurde heruntergeladen", "Public shared file %1$s was downloaded" : "Die öffentliche geteilte Datei %1$s wurde heruntergeladen", + "You shared %1$s with %2$s" : "Du hast %1$s mit %2$s geteilt", "%2$s shared %1$s with %3$s" : "%2$s geteilt %1$s mit %3$s", "You removed the share of %2$s for %1$s" : "Du hast die Freigabe von %2$s für %1$s entfernt", "%2$s removed the share of %3$s for %1$s" : "%2$s hat die Freigabe der %3$s für %1$s entfernt", + "You shared %1$s with group %2$s" : "Du hast %1$s mit der Gruppe %2$s geteilt", "%2$s shared %1$s with group %3$s" : "%2$s hat %1$s mit Gruppe %3$s geteilt", "You removed the share of group %2$s for %1$s" : "Du hast die Freigabe der Gruppe %2$s für %1$s entfernt", "%2$s removed the share of group %3$s for %1$s" : "%2$s hat die Freigabe der Gruppe %3$s für %1$s entfernt", @@ -158,6 +129,7 @@ OC.L10N.register( "%2$s removed the public link for %1$s" : "%2$s hat den öffentlichen Link für %1$s entfernt", "Your public link for %1$s expired" : "Dein öffentlicher Link für %1$s ist abgelaufen", "The public link of %2$s for %1$s expired" : "Der öffentliche Link von %2$s für %1$s ist abgelaufen", + "%2$s shared %1$s with you" : "%2$s hat %1$s mit dir geteilt", "%2$s removed the share for %1$s" : "%2$s hat die Freigabe für %1$s entfernt", "Shared with %2$s" : "Geteilt mit %2$s", "Shared with %3$s by %2$s" : "Geteilt mit %3$s von %2$s", @@ -170,9 +142,40 @@ OC.L10N.register( "Shared via link by %2$s" : "Geteilt mittels Link von %2$s", "Shared via public link" : "Geteilt mittels öffentlichem Link", "%2$s removed public link" : "%2$s hat den öffentlichen Link entfernt", - "Public link expired" : "öffentlicher Link ist abgelaufen", "Public link of %2$s expired" : "Öffentlicher Link von %2$s ist abgelaufen", "Shared by %2$s" : "Geteilt von %2$s", - "Shares" : "Freigaben" + "Shares" : "Freigaben", + "Downloaded by %1$s" : "Heruntergeladen von %1$s", + "%1$s downloaded via public link" : "%1$s heruntergeladen mittels öffentlichen Link", + "%1$s downloaded %2$s" : "%1$s hat %2$s heruntergeladen", + "Shared with group %1$s" : "Geteilt mit der Gruppe %1$s", + "Removed share for group %1$s" : "Freigabe für die Gruppe %1$s entfernt", + "%2$s shared with group %1$s" : "%2$s geteilt mit der Gruppe %1$s", + "%2$s removed share for group %1$s" : "%2$s hat die Freigabe für die Gruppe %1$s entfernt", + "You removed group %2$s from %1$s" : "Du hast die Gruppe %2$s von %1$s entfernt", + "%3$s shared %1$s with group %2$s" : "%3$s hat %1$s mit der Gruppe %2$s geteilt", + "%3$s removed group %2$s from %1$s" : "%3$s hat die Gruppe %2$s von %1$s entfernt", + "%1$s shared as public link" : "%1$s hat einen öffentlichen Link geteilt", + "%1$s removed public link" : "%1$s hat einen öffentlichen Link entfernt", + "You shared %1$s as public link" : "Du hast %1$s über einen öffentlichen Link geteilt", + "You removed public link for %1$s" : "Du hast die öffentliche Freigabe für %1$s entfernt", + "%2$s shared %1$s as public link" : "%2$s hat %1$s über einen öffentlichen Link geteilt", + "%2$s removed public link for %1$s" : "%2$s hat den öffentlichen Link für %1$s entfernt", + "%1$s accepted the remote share" : "%1$s hat die Remotefreigabe akzeptiert", + "%1$s declined the remote share" : "%1$s hat die Remotefreigabe abgelehnt", + "You received a new remote share %1$s from %2$s" : "Du hast eine neue Remotefreigabe %1$s von %2$s erhalten", + "%2$s accepted the remote share of %1$s" : "%2$s hat die Remotefreigabe von %1$s akzeptiert", + "%2$s declined the remote share of %1$s" : "%2$s hat die Remotefreigabe von %1$s abgelehnt", + "%2$s unshared %1$s from you" : "%2$s teilt %1$s nicht mehr mit dir", + "Shared with %1$s" : "Geteilt mit %1$s", + "Removed share for %1$s" : "Freigabe für %1$s entfernt", + "%2$s shared with %1$s" : "%2$s hat mit %1$s geteilt", + "%2$s removed share for %1$s" : "%2$s hat die Freigabe für %1$s entfernt", + "Shared by %1$s" : "Geteilt von %1$s", + "%1$s removed share" : "%1$s hat die Freigabe entfernt", + "You removed %2$s from %1$s" : "Sie haben die %2$s von %1$s entfernt", + "%3$s shared %1$s with %2$s" : "%3$s geteilt %1$s mit %2$s", + "%3$s removed %2$s from %1$s" : "%3$s hat %2$s von %1$s entfernt", + "%2$s removed you from %1$s" : "Du wurdest durch %2$s von %1$s entfernt" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/de.json b/apps/files_sharing/l10n/de.json index 95c3f5dd72e..487722d420d 100644 --- a/apps/files_sharing/l10n/de.json +++ b/apps/files_sharing/l10n/de.json @@ -18,76 +18,45 @@ "Sharing" : "Teilen", "File shares" : "Dateifreigaben", "Downloaded via public link" : "Heruntergeladen mittels öffentlichen Link", - "Downloaded by %1$s" : "Heruntergeladen von %1$s", "Downloaded by {email}" : "Heruntergeladen von {email}", - "%1$s downloaded via public link" : "%1$s heruntergeladen mittels öffentlichen Link", "{file} downloaded via public link" : "{file} heruntergeladen mittels öffentlichen Link", - "%1$s downloaded %2$s" : "%1$s hat %2$s heruntergeladen", "{email} downloaded {file}" : "{email} hat {file} heruntergeladen", - "Shared with group %1$s" : "Geteilt mit der Gruppe %1$s", "Shared with group {group}" : "Geteilt mit der Gruppe {group}", - "Removed share for group %1$s" : "Freigabe für die Gruppe %1$s entfernt", "Removed share for group {group}" : "Freigabe für die Gruppe {group} entfernt", - "%2$s shared with group %1$s" : "%2$s geteilt mit der Gruppe %1$s", "{actor} shared with group {group}" : "{actor} geteilt mit der Gruppe {group}", - "%2$s removed share for group %1$s" : "%2$s hat die Freigabe für die Gruppe %1$s entfernt", "{actor} removed share for group {group}" : "{actor} hat die Freigabe für die Gruppe {group} entfernt", - "You shared %1$s with group %2$s" : "Du hast %1$s mit der Gruppe %2$s geteilt", "You shared {file} with group {group}" : "Du hast {file} mit der Gruppe {group} geteilt", - "You removed group %2$s from %1$s" : "Du hast die Gruppe %2$s von %1$s entfernt", "You removed group {group} from {file}" : "Du hast die Gruppe {group} von {file} entfernt", - "%3$s shared %1$s with group %2$s" : "%3$s hat %1$s mit der Gruppe %2$s geteilt", "{actor} shared {file} with group {group}" : "{actor} hat {file} mit der Gruppe {group} geteilt", - "%3$s removed group %2$s from %1$s" : "%3$s hat die Gruppe %2$s von %1$s entfernt", "{actor} removed group {group} from {file}" : "{actor} hat die Gruppe {group} von {file} entfernt", "Shared as public link" : "Als öffentlichen Link geteilt", "Removed public link" : "Öffentlichen Link entfernt", - "%1$s shared as public link" : "%1$s hat einen öffentlichen Link geteilt", + "Public link expired" : "öffentlicher Link ist abgelaufen", "{actor} shared as public link" : "{actor} hat einen öffentlichen Link geteilt", - "%1$s removed public link" : "%1$s hat einen öffentlichen Link entfernt", "{actor} removed public link" : "{actor} hat einen öffentlichen Link entfernt", - "You shared %1$s as public link" : "Du hast %1$s über einen öffentlichen Link geteilt", + "Public link of {actor} expired" : "Öffentlicher Link von {actor} ist abgelaufen", "You shared {file} as public link" : "Du hast {file} über einen öffentlichen Link geteilt", - "You removed public link for %1$s" : "Du hast die öffentliche Freigabe für %1$s entfernt", "You removed public link for {file}" : "Du hast die öffentliche Freigabe für {file} entfernt", - "%2$s shared %1$s as public link" : "%2$s hat %1$s über einen öffentlichen Link geteilt", + "Public link expired for {file}" : "Öffentlicher Link für {file} ist abgelaufen", "{actor} shared {file} as public link" : "{actor} hat {file} über einen öffentlichen Link geteilt", - "%2$s removed public link for %1$s" : "%2$s hat den öffentlichen Link für %1$s entfernt", "{actor} removed public link for {file}" : "{actor} hat einen öffentlichen Link {file} entfernt", - "%1$s accepted the remote share" : "%1$s hat die Remotefreigabe akzeptiert", + "Public link of {actor} for {file} expired" : "Öffentlicher Link von {actor} für {file} ist abgelaufen", "{user} accepted the remote share" : "{user} hat die Remotefreigabe akzeptiert", - "%1$s declined the remote share" : "%1$s hat die Remotefreigabe abgelehnt", "{user} declined the remote share" : "{user} hat die Remotefreigabe abgelehnt", - "You received a new remote share %1$s from %2$s" : "Du hast eine neue Remotefreigabe %1$s von %2$s erhalten", "You received a new remote share {file} from {user}" : "Du hast eine neue Remotefreigabe {file} von {user} erhalten", - "%2$s accepted the remote share of %1$s" : "%2$s hat die Remotefreigabe von %1$s akzeptiert", "{user} accepted the remote share of {file}" : "{user} hat die Remotefreigabe von {file} akzeptiert", - "%2$s declined the remote share of %1$s" : "%2$s hat die Remotefreigabe von %1$s abgelehnt", "{user} declined the remote share of {file}" : "{user} hat die Remotefreigabe von {file} abgelehnt", - "%2$s unshared %1$s from you" : "%2$s teilt %1$s nicht mehr mit dir", "{user} unshared {file} from you" : "{user} teilt {file} nicht mehr mit dir", - "Shared with %1$s" : "Geteilt mit %1$s", "Shared with {user}" : "Geteilt mit {user}", - "Removed share for %1$s" : "Freigabe für %1$s entfernt", "Removed share for {user}" : "Freigabe für {user} entfernt", - "%2$s shared with %1$s" : "%2$s hat mit %1$s geteilt", "{actor} shared with {user}" : "{actor} hat mit {user} geteilt", - "%2$s removed share for %1$s" : "%2$s hat die Freigabe für %1$s entfernt", "{actor} removed share for {user}" : "{actor} hat die Freigabe für {user} entfernt", - "Shared by %1$s" : "Geteilt von %1$s", "Shared by {actor}" : "Geteilt von {actor}", - "%1$s removed share" : "%1$s hat die Freigabe entfernt", "{actor} removed share" : "{actor} hat die Freigabe entfernt", - "You shared %1$s with %2$s" : "Du hast %1$s mit %2$s geteilt", "You shared {file} with {user}" : "Du hast {file} mit {user} geteilt", - "You removed %2$s from %1$s" : "Sie haben die %2$s von %1$s entfernt", "You removed {user} from {file}" : "Sie haben die {user} von {file} entfernt", - "%3$s shared %1$s with %2$s" : "%3$s geteilt %1$s mit %2$s", "{actor} removed {user} from {file}" : "{actor} hat {user} von {file} entfernt", - "%3$s removed %2$s from %1$s" : "%3$s hat %2$s von %1$s entfernt", - "%2$s shared %1$s with you" : "%2$s hat %1$s mit dir geteilt", "{actor} shared {file} with you" : "{actor} hat {file} mit dir geteilt", - "%2$s removed you from %1$s" : "Du wurdest durch %2$s von %1$s entfernt", "{actor} removed you from {file}" : "Du wurdest durch {actor} von {file} entfernt", "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Öffentlich oder per E-Mail geteilte Datei / Ordner wurde <strong>heruntergeladen</strong>", "A file or folder was shared from <strong>another server</strong>" : "Eine Datei oder ein Ordner wurde von <strong>einem anderen Server</strong> geteilt", @@ -144,9 +113,11 @@ "%1$s unshared %2$s from you" : "%1$s hat die Freigabe von %2$s für Dich entfernt", "Public shared folder %1$s was downloaded" : "Der öffentliche geteilte Ordner %1$s wurde heruntergeladen", "Public shared file %1$s was downloaded" : "Die öffentliche geteilte Datei %1$s wurde heruntergeladen", + "You shared %1$s with %2$s" : "Du hast %1$s mit %2$s geteilt", "%2$s shared %1$s with %3$s" : "%2$s geteilt %1$s mit %3$s", "You removed the share of %2$s for %1$s" : "Du hast die Freigabe von %2$s für %1$s entfernt", "%2$s removed the share of %3$s for %1$s" : "%2$s hat die Freigabe der %3$s für %1$s entfernt", + "You shared %1$s with group %2$s" : "Du hast %1$s mit der Gruppe %2$s geteilt", "%2$s shared %1$s with group %3$s" : "%2$s hat %1$s mit Gruppe %3$s geteilt", "You removed the share of group %2$s for %1$s" : "Du hast die Freigabe der Gruppe %2$s für %1$s entfernt", "%2$s removed the share of group %3$s for %1$s" : "%2$s hat die Freigabe der Gruppe %3$s für %1$s entfernt", @@ -156,6 +127,7 @@ "%2$s removed the public link for %1$s" : "%2$s hat den öffentlichen Link für %1$s entfernt", "Your public link for %1$s expired" : "Dein öffentlicher Link für %1$s ist abgelaufen", "The public link of %2$s for %1$s expired" : "Der öffentliche Link von %2$s für %1$s ist abgelaufen", + "%2$s shared %1$s with you" : "%2$s hat %1$s mit dir geteilt", "%2$s removed the share for %1$s" : "%2$s hat die Freigabe für %1$s entfernt", "Shared with %2$s" : "Geteilt mit %2$s", "Shared with %3$s by %2$s" : "Geteilt mit %3$s von %2$s", @@ -168,9 +140,40 @@ "Shared via link by %2$s" : "Geteilt mittels Link von %2$s", "Shared via public link" : "Geteilt mittels öffentlichem Link", "%2$s removed public link" : "%2$s hat den öffentlichen Link entfernt", - "Public link expired" : "öffentlicher Link ist abgelaufen", "Public link of %2$s expired" : "Öffentlicher Link von %2$s ist abgelaufen", "Shared by %2$s" : "Geteilt von %2$s", - "Shares" : "Freigaben" + "Shares" : "Freigaben", + "Downloaded by %1$s" : "Heruntergeladen von %1$s", + "%1$s downloaded via public link" : "%1$s heruntergeladen mittels öffentlichen Link", + "%1$s downloaded %2$s" : "%1$s hat %2$s heruntergeladen", + "Shared with group %1$s" : "Geteilt mit der Gruppe %1$s", + "Removed share for group %1$s" : "Freigabe für die Gruppe %1$s entfernt", + "%2$s shared with group %1$s" : "%2$s geteilt mit der Gruppe %1$s", + "%2$s removed share for group %1$s" : "%2$s hat die Freigabe für die Gruppe %1$s entfernt", + "You removed group %2$s from %1$s" : "Du hast die Gruppe %2$s von %1$s entfernt", + "%3$s shared %1$s with group %2$s" : "%3$s hat %1$s mit der Gruppe %2$s geteilt", + "%3$s removed group %2$s from %1$s" : "%3$s hat die Gruppe %2$s von %1$s entfernt", + "%1$s shared as public link" : "%1$s hat einen öffentlichen Link geteilt", + "%1$s removed public link" : "%1$s hat einen öffentlichen Link entfernt", + "You shared %1$s as public link" : "Du hast %1$s über einen öffentlichen Link geteilt", + "You removed public link for %1$s" : "Du hast die öffentliche Freigabe für %1$s entfernt", + "%2$s shared %1$s as public link" : "%2$s hat %1$s über einen öffentlichen Link geteilt", + "%2$s removed public link for %1$s" : "%2$s hat den öffentlichen Link für %1$s entfernt", + "%1$s accepted the remote share" : "%1$s hat die Remotefreigabe akzeptiert", + "%1$s declined the remote share" : "%1$s hat die Remotefreigabe abgelehnt", + "You received a new remote share %1$s from %2$s" : "Du hast eine neue Remotefreigabe %1$s von %2$s erhalten", + "%2$s accepted the remote share of %1$s" : "%2$s hat die Remotefreigabe von %1$s akzeptiert", + "%2$s declined the remote share of %1$s" : "%2$s hat die Remotefreigabe von %1$s abgelehnt", + "%2$s unshared %1$s from you" : "%2$s teilt %1$s nicht mehr mit dir", + "Shared with %1$s" : "Geteilt mit %1$s", + "Removed share for %1$s" : "Freigabe für %1$s entfernt", + "%2$s shared with %1$s" : "%2$s hat mit %1$s geteilt", + "%2$s removed share for %1$s" : "%2$s hat die Freigabe für %1$s entfernt", + "Shared by %1$s" : "Geteilt von %1$s", + "%1$s removed share" : "%1$s hat die Freigabe entfernt", + "You removed %2$s from %1$s" : "Sie haben die %2$s von %1$s entfernt", + "%3$s shared %1$s with %2$s" : "%3$s geteilt %1$s mit %2$s", + "%3$s removed %2$s from %1$s" : "%3$s hat %2$s von %1$s entfernt", + "%2$s removed you from %1$s" : "Du wurdest durch %2$s von %1$s entfernt" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/de_DE.js b/apps/files_sharing/l10n/de_DE.js index 01bcc8ccbe8..b52fb1e2941 100644 --- a/apps/files_sharing/l10n/de_DE.js +++ b/apps/files_sharing/l10n/de_DE.js @@ -20,76 +20,45 @@ OC.L10N.register( "Sharing" : "Teilen", "File shares" : "Dateifreigaben", "Downloaded via public link" : "Über den öffentlichen Link heruntergeladen", - "Downloaded by %1$s" : "Heruntergeladen von %1$s", "Downloaded by {email}" : "Heruntergeladen von {email}", - "%1$s downloaded via public link" : "%1$s heruntergeladen mittels öffentlichen Link", "{file} downloaded via public link" : "{file} heruntergeladen mittels öffentlichen Link", - "%1$s downloaded %2$s" : "%1$s hat %2$s heruntergeladen", "{email} downloaded {file}" : "{email} hat {file} heruntergeladen", - "Shared with group %1$s" : "Geteilt mit der Gruppe %1$s", "Shared with group {group}" : "Geteilt mit der Gruppe {group}", - "Removed share for group %1$s" : "Freigabe für die Gruppe %1$s entfernt", "Removed share for group {group}" : "Freigabe für die Gruppe {group} entfernt", - "%2$s shared with group %1$s" : "%2$s geteilt mit der Gruppe %1$s", "{actor} shared with group {group}" : "{actor} geteilt mit der Gruppe {group}", - "%2$s removed share for group %1$s" : "%2$s hat die Freigabe für die Gruppe %1$s entfernt", "{actor} removed share for group {group}" : "{actor} hat die Freigabe für die Gruppe {group} entfernt", - "You shared %1$s with group %2$s" : "Sie haben %1$s mit der Gruppe %2$s geteilt", "You shared {file} with group {group}" : "Sie haben {file} mit der Gruppe {group} geteilt", - "You removed group %2$s from %1$s" : "Sie haben die Gruppe %2$s von %1$s entfernt", "You removed group {group} from {file}" : "Sie haben die Gruppe {group} von {file} entfernt", - "%3$s shared %1$s with group %2$s" : "%3$s hat %1$s mit der Gruppe %2$s geteilt", "{actor} shared {file} with group {group}" : "{actor} hat {file} mit der Gruppe {group} geteilt", - "%3$s removed group %2$s from %1$s" : "%3$s hat die Gruppe %2$s von %1$s entfernt", "{actor} removed group {group} from {file}" : "{actor} hat die Gruppe {group} von {file} entfernt", "Shared as public link" : "Als öffentlichen Link geteilt", "Removed public link" : "Öffentlichen Link entfernt", - "%1$s shared as public link" : "%1$s hat einen öffentlichen Link geteilt", + "Public link expired" : "öffentlicher Link ist abgelaufen", "{actor} shared as public link" : "{actor} hat einen öffentlichen Link geteilt", - "%1$s removed public link" : "%1$s hat einen öffentlichen Link entfernt", "{actor} removed public link" : "{actor} hat einen öffentlichen Link entfernt", - "You shared %1$s as public link" : "Sie haben %1$s über einen öffentlichen Link geteilt", + "Public link of {actor} expired" : "Öffentlicher Link von {actor} ist abgelaufen", "You shared {file} as public link" : "Sie haben {file} über einen öffentlichen Link geteilt", - "You removed public link for %1$s" : "Sie haben die öffentliche Freigabe für %1$s entfernt", "You removed public link for {file}" : "Sie haben die öffentliche Freigabe für {file} entfernt", - "%2$s shared %1$s as public link" : "%2$s hat %1$s über einen öffentlichen Link geteilt", + "Public link expired for {file}" : "Öffentlicher Link für {file} ist abgelaufen", "{actor} shared {file} as public link" : "{actor} hat {file} über einen öffentlichen Link geteilt", - "%2$s removed public link for %1$s" : "%2$s hat den öffentlichen Link für %1$s entfernt", "{actor} removed public link for {file}" : "{actor} hat einen öffentlichen Link {file} entfernt", - "%1$s accepted the remote share" : "%1$s hat die Remotefreigabe akzeptiert", + "Public link of {actor} for {file} expired" : "Öffentlicher Link von {actor} für {file} ist abgelaufen", "{user} accepted the remote share" : "{user} hat die Remotefreigabe akzeptiert", - "%1$s declined the remote share" : "%1$s hat die Remotefreigabe abgelehnt", "{user} declined the remote share" : "{user} hat die Remotefreigabe abgelehnt", - "You received a new remote share %1$s from %2$s" : "Du hast eine neue Remotefreigabe %1$s von %2$s erhalten", "You received a new remote share {file} from {user}" : "Du hast eine neue Remotefreigabe {file} von {user} erhalten", - "%2$s accepted the remote share of %1$s" : "%2$s hat die Remotefreigabe von %1$s akzeptiert", "{user} accepted the remote share of {file}" : "{user} hat die Remotefreigabe von {file} akzeptiert", - "%2$s declined the remote share of %1$s" : "%2$s hat die Remotefreigabe von %1$s abgelehnt", "{user} declined the remote share of {file}" : "{user} hat die Remotefreigabe von {file} abgelehnt", - "%2$s unshared %1$s from you" : "%2$s teilt %1$s nicht mehr mit Ihnen", "{user} unshared {file} from you" : "{user} teilt {file} nicht mehr mit Ihnen", - "Shared with %1$s" : "Geteilt mit %1$s", "Shared with {user}" : "Geteilt mit {user}", - "Removed share for %1$s" : "Freigabe für %1$s entfernt", "Removed share for {user}" : "Freigabe für {user} entfernt", - "%2$s shared with %1$s" : "%2$s hat mit %1$s geteilt", "{actor} shared with {user}" : "{actor} hat mit {user} geteilt", - "%2$s removed share for %1$s" : "%2$s hat die Freigabe für %1$s entfernt", "{actor} removed share for {user}" : "{actor} hat die Freigabe für {user} entfernt", - "Shared by %1$s" : "Geteilt von %1$s", "Shared by {actor}" : "Geteilt von {actor}", - "%1$s removed share" : "%1$s hat die Freigabe entfernt", "{actor} removed share" : "{actor} hat die Freigabe entfernt", - "You shared %1$s with %2$s" : "Sie haben %1$s mit %2$s geteilt", "You shared {file} with {user}" : "Sie haben {file} mit {user} geteilt", - "You removed %2$s from %1$s" : "Sie haben %2$s von %1$s entfernt", "You removed {user} from {file}" : "Sie haben {user} von {file} entfernt", - "%3$s shared %1$s with %2$s" : "%3$s hat %1$s mit %2$s geteilt", "{actor} removed {user} from {file}" : "{actor} hat {user} von {file} entfernt", - "%3$s removed %2$s from %1$s" : "%3$s hat %2$s von %1$s entfernt", - "%2$s shared %1$s with you" : "%2$s hat %1$s mit Ihnen geteilt", "{actor} shared {file} with you" : "{actor} hat {file} mit Ihnen geteilt", - "%2$s removed you from %1$s" : "Sie wurden durch %2$s von %1$s entfernt", "{actor} removed you from {file}" : "Sie wurden durch {actor} von {file} entfernt", "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Eine Datei oder ein Ordner der per E-Mail oder öffentlich geteilt ist wurde <strong>heruntergeladen</strong>", "A file or folder was shared from <strong>another server</strong>" : "Eine Datei oder ein Ordner wurde von <strong>einem anderen Server</strong> geteilt", @@ -146,9 +115,11 @@ OC.L10N.register( "%1$s unshared %2$s from you" : "%1$s hat die Freigabe von %2$s für Sie entfernt", "Public shared folder %1$s was downloaded" : "Der öffentlich geteilte Ordner %1$s wurde heruntergeladen", "Public shared file %1$s was downloaded" : "Die öffentlich geteilte Datei %1$s wurde heruntergeladen", + "You shared %1$s with %2$s" : "Sie haben %1$s mit %2$s geteilt", "%2$s shared %1$s with %3$s" : "%2$s hat %1$s mit %3$s geteilt", "You removed the share of %2$s for %1$s" : "Sie haben die Freigabe von %2$s für %1$s entfernt", "%2$s removed the share of %3$s for %1$s" : "%2$s hat die Freigabe von %3$s für %1$s entfernt", + "You shared %1$s with group %2$s" : "Sie haben %1$s mit der Gruppe %2$s geteilt", "%2$s shared %1$s with group %3$s" : "%2$s hat %1$s mit der Gruppe %3$s geteilt", "You removed the share of group %2$s for %1$s" : "Sie haben die Freigabe der Gruppe %2$s für %1$s entfernt", "%2$s removed the share of group %3$s for %1$s" : "%2$s hat die Freigabe der Gruppe %3$s für %1$s entfernt", @@ -158,6 +129,7 @@ OC.L10N.register( "%2$s removed the public link for %1$s" : "%2$s hat den öffentlichen Link für %1$s entfernt", "Your public link for %1$s expired" : "Ihre Freigabe als Link für %1$s ist abgelaufen", "The public link of %2$s for %1$s expired" : "Die Freigabe als Link von %2$s für %1$s ist abgelaufen", + "%2$s shared %1$s with you" : "%2$s hat %1$s mit Ihnen geteilt", "%2$s removed the share for %1$s" : "%2$s hat die Freigabe für %1$s entfernt", "Shared with %2$s" : "Geteilt mit %2$s", "Shared with %3$s by %2$s" : "Geteilt mit %3$s von %2$s", @@ -170,9 +142,40 @@ OC.L10N.register( "Shared via link by %2$s" : "Geteilt durch einen Link von %2$s", "Shared via public link" : "Durch einen öffentlichen Link geteilt", "%2$s removed public link" : "%2$s hat die Freigabe als öffentlichen Link entfernt", - "Public link expired" : "öffentlicher Link ist abgelaufen", "Public link of %2$s expired" : "Öffentlicher Link von %2$s ist abgelaufen", "Shared by %2$s" : "Geteilt von %2$s", - "Shares" : "Geteiltes" + "Shares" : "Geteiltes", + "Downloaded by %1$s" : "Heruntergeladen von %1$s", + "%1$s downloaded via public link" : "%1$s heruntergeladen mittels öffentlichen Link", + "%1$s downloaded %2$s" : "%1$s hat %2$s heruntergeladen", + "Shared with group %1$s" : "Geteilt mit der Gruppe %1$s", + "Removed share for group %1$s" : "Freigabe für die Gruppe %1$s entfernt", + "%2$s shared with group %1$s" : "%2$s geteilt mit der Gruppe %1$s", + "%2$s removed share for group %1$s" : "%2$s hat die Freigabe für die Gruppe %1$s entfernt", + "You removed group %2$s from %1$s" : "Sie haben die Gruppe %2$s von %1$s entfernt", + "%3$s shared %1$s with group %2$s" : "%3$s hat %1$s mit der Gruppe %2$s geteilt", + "%3$s removed group %2$s from %1$s" : "%3$s hat die Gruppe %2$s von %1$s entfernt", + "%1$s shared as public link" : "%1$s hat einen öffentlichen Link geteilt", + "%1$s removed public link" : "%1$s hat einen öffentlichen Link entfernt", + "You shared %1$s as public link" : "Sie haben %1$s über einen öffentlichen Link geteilt", + "You removed public link for %1$s" : "Sie haben die öffentliche Freigabe für %1$s entfernt", + "%2$s shared %1$s as public link" : "%2$s hat %1$s über einen öffentlichen Link geteilt", + "%2$s removed public link for %1$s" : "%2$s hat den öffentlichen Link für %1$s entfernt", + "%1$s accepted the remote share" : "%1$s hat die Remotefreigabe akzeptiert", + "%1$s declined the remote share" : "%1$s hat die Remotefreigabe abgelehnt", + "You received a new remote share %1$s from %2$s" : "Du hast eine neue Remotefreigabe %1$s von %2$s erhalten", + "%2$s accepted the remote share of %1$s" : "%2$s hat die Remotefreigabe von %1$s akzeptiert", + "%2$s declined the remote share of %1$s" : "%2$s hat die Remotefreigabe von %1$s abgelehnt", + "%2$s unshared %1$s from you" : "%2$s teilt %1$s nicht mehr mit Ihnen", + "Shared with %1$s" : "Geteilt mit %1$s", + "Removed share for %1$s" : "Freigabe für %1$s entfernt", + "%2$s shared with %1$s" : "%2$s hat mit %1$s geteilt", + "%2$s removed share for %1$s" : "%2$s hat die Freigabe für %1$s entfernt", + "Shared by %1$s" : "Geteilt von %1$s", + "%1$s removed share" : "%1$s hat die Freigabe entfernt", + "You removed %2$s from %1$s" : "Sie haben %2$s von %1$s entfernt", + "%3$s shared %1$s with %2$s" : "%3$s hat %1$s mit %2$s geteilt", + "%3$s removed %2$s from %1$s" : "%3$s hat %2$s von %1$s entfernt", + "%2$s removed you from %1$s" : "Sie wurden durch %2$s von %1$s entfernt" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/de_DE.json b/apps/files_sharing/l10n/de_DE.json index 5c5d6b815b7..6870a2b7d4d 100644 --- a/apps/files_sharing/l10n/de_DE.json +++ b/apps/files_sharing/l10n/de_DE.json @@ -18,76 +18,45 @@ "Sharing" : "Teilen", "File shares" : "Dateifreigaben", "Downloaded via public link" : "Über den öffentlichen Link heruntergeladen", - "Downloaded by %1$s" : "Heruntergeladen von %1$s", "Downloaded by {email}" : "Heruntergeladen von {email}", - "%1$s downloaded via public link" : "%1$s heruntergeladen mittels öffentlichen Link", "{file} downloaded via public link" : "{file} heruntergeladen mittels öffentlichen Link", - "%1$s downloaded %2$s" : "%1$s hat %2$s heruntergeladen", "{email} downloaded {file}" : "{email} hat {file} heruntergeladen", - "Shared with group %1$s" : "Geteilt mit der Gruppe %1$s", "Shared with group {group}" : "Geteilt mit der Gruppe {group}", - "Removed share for group %1$s" : "Freigabe für die Gruppe %1$s entfernt", "Removed share for group {group}" : "Freigabe für die Gruppe {group} entfernt", - "%2$s shared with group %1$s" : "%2$s geteilt mit der Gruppe %1$s", "{actor} shared with group {group}" : "{actor} geteilt mit der Gruppe {group}", - "%2$s removed share for group %1$s" : "%2$s hat die Freigabe für die Gruppe %1$s entfernt", "{actor} removed share for group {group}" : "{actor} hat die Freigabe für die Gruppe {group} entfernt", - "You shared %1$s with group %2$s" : "Sie haben %1$s mit der Gruppe %2$s geteilt", "You shared {file} with group {group}" : "Sie haben {file} mit der Gruppe {group} geteilt", - "You removed group %2$s from %1$s" : "Sie haben die Gruppe %2$s von %1$s entfernt", "You removed group {group} from {file}" : "Sie haben die Gruppe {group} von {file} entfernt", - "%3$s shared %1$s with group %2$s" : "%3$s hat %1$s mit der Gruppe %2$s geteilt", "{actor} shared {file} with group {group}" : "{actor} hat {file} mit der Gruppe {group} geteilt", - "%3$s removed group %2$s from %1$s" : "%3$s hat die Gruppe %2$s von %1$s entfernt", "{actor} removed group {group} from {file}" : "{actor} hat die Gruppe {group} von {file} entfernt", "Shared as public link" : "Als öffentlichen Link geteilt", "Removed public link" : "Öffentlichen Link entfernt", - "%1$s shared as public link" : "%1$s hat einen öffentlichen Link geteilt", + "Public link expired" : "öffentlicher Link ist abgelaufen", "{actor} shared as public link" : "{actor} hat einen öffentlichen Link geteilt", - "%1$s removed public link" : "%1$s hat einen öffentlichen Link entfernt", "{actor} removed public link" : "{actor} hat einen öffentlichen Link entfernt", - "You shared %1$s as public link" : "Sie haben %1$s über einen öffentlichen Link geteilt", + "Public link of {actor} expired" : "Öffentlicher Link von {actor} ist abgelaufen", "You shared {file} as public link" : "Sie haben {file} über einen öffentlichen Link geteilt", - "You removed public link for %1$s" : "Sie haben die öffentliche Freigabe für %1$s entfernt", "You removed public link for {file}" : "Sie haben die öffentliche Freigabe für {file} entfernt", - "%2$s shared %1$s as public link" : "%2$s hat %1$s über einen öffentlichen Link geteilt", + "Public link expired for {file}" : "Öffentlicher Link für {file} ist abgelaufen", "{actor} shared {file} as public link" : "{actor} hat {file} über einen öffentlichen Link geteilt", - "%2$s removed public link for %1$s" : "%2$s hat den öffentlichen Link für %1$s entfernt", "{actor} removed public link for {file}" : "{actor} hat einen öffentlichen Link {file} entfernt", - "%1$s accepted the remote share" : "%1$s hat die Remotefreigabe akzeptiert", + "Public link of {actor} for {file} expired" : "Öffentlicher Link von {actor} für {file} ist abgelaufen", "{user} accepted the remote share" : "{user} hat die Remotefreigabe akzeptiert", - "%1$s declined the remote share" : "%1$s hat die Remotefreigabe abgelehnt", "{user} declined the remote share" : "{user} hat die Remotefreigabe abgelehnt", - "You received a new remote share %1$s from %2$s" : "Du hast eine neue Remotefreigabe %1$s von %2$s erhalten", "You received a new remote share {file} from {user}" : "Du hast eine neue Remotefreigabe {file} von {user} erhalten", - "%2$s accepted the remote share of %1$s" : "%2$s hat die Remotefreigabe von %1$s akzeptiert", "{user} accepted the remote share of {file}" : "{user} hat die Remotefreigabe von {file} akzeptiert", - "%2$s declined the remote share of %1$s" : "%2$s hat die Remotefreigabe von %1$s abgelehnt", "{user} declined the remote share of {file}" : "{user} hat die Remotefreigabe von {file} abgelehnt", - "%2$s unshared %1$s from you" : "%2$s teilt %1$s nicht mehr mit Ihnen", "{user} unshared {file} from you" : "{user} teilt {file} nicht mehr mit Ihnen", - "Shared with %1$s" : "Geteilt mit %1$s", "Shared with {user}" : "Geteilt mit {user}", - "Removed share for %1$s" : "Freigabe für %1$s entfernt", "Removed share for {user}" : "Freigabe für {user} entfernt", - "%2$s shared with %1$s" : "%2$s hat mit %1$s geteilt", "{actor} shared with {user}" : "{actor} hat mit {user} geteilt", - "%2$s removed share for %1$s" : "%2$s hat die Freigabe für %1$s entfernt", "{actor} removed share for {user}" : "{actor} hat die Freigabe für {user} entfernt", - "Shared by %1$s" : "Geteilt von %1$s", "Shared by {actor}" : "Geteilt von {actor}", - "%1$s removed share" : "%1$s hat die Freigabe entfernt", "{actor} removed share" : "{actor} hat die Freigabe entfernt", - "You shared %1$s with %2$s" : "Sie haben %1$s mit %2$s geteilt", "You shared {file} with {user}" : "Sie haben {file} mit {user} geteilt", - "You removed %2$s from %1$s" : "Sie haben %2$s von %1$s entfernt", "You removed {user} from {file}" : "Sie haben {user} von {file} entfernt", - "%3$s shared %1$s with %2$s" : "%3$s hat %1$s mit %2$s geteilt", "{actor} removed {user} from {file}" : "{actor} hat {user} von {file} entfernt", - "%3$s removed %2$s from %1$s" : "%3$s hat %2$s von %1$s entfernt", - "%2$s shared %1$s with you" : "%2$s hat %1$s mit Ihnen geteilt", "{actor} shared {file} with you" : "{actor} hat {file} mit Ihnen geteilt", - "%2$s removed you from %1$s" : "Sie wurden durch %2$s von %1$s entfernt", "{actor} removed you from {file}" : "Sie wurden durch {actor} von {file} entfernt", "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Eine Datei oder ein Ordner der per E-Mail oder öffentlich geteilt ist wurde <strong>heruntergeladen</strong>", "A file or folder was shared from <strong>another server</strong>" : "Eine Datei oder ein Ordner wurde von <strong>einem anderen Server</strong> geteilt", @@ -144,9 +113,11 @@ "%1$s unshared %2$s from you" : "%1$s hat die Freigabe von %2$s für Sie entfernt", "Public shared folder %1$s was downloaded" : "Der öffentlich geteilte Ordner %1$s wurde heruntergeladen", "Public shared file %1$s was downloaded" : "Die öffentlich geteilte Datei %1$s wurde heruntergeladen", + "You shared %1$s with %2$s" : "Sie haben %1$s mit %2$s geteilt", "%2$s shared %1$s with %3$s" : "%2$s hat %1$s mit %3$s geteilt", "You removed the share of %2$s for %1$s" : "Sie haben die Freigabe von %2$s für %1$s entfernt", "%2$s removed the share of %3$s for %1$s" : "%2$s hat die Freigabe von %3$s für %1$s entfernt", + "You shared %1$s with group %2$s" : "Sie haben %1$s mit der Gruppe %2$s geteilt", "%2$s shared %1$s with group %3$s" : "%2$s hat %1$s mit der Gruppe %3$s geteilt", "You removed the share of group %2$s for %1$s" : "Sie haben die Freigabe der Gruppe %2$s für %1$s entfernt", "%2$s removed the share of group %3$s for %1$s" : "%2$s hat die Freigabe der Gruppe %3$s für %1$s entfernt", @@ -156,6 +127,7 @@ "%2$s removed the public link for %1$s" : "%2$s hat den öffentlichen Link für %1$s entfernt", "Your public link for %1$s expired" : "Ihre Freigabe als Link für %1$s ist abgelaufen", "The public link of %2$s for %1$s expired" : "Die Freigabe als Link von %2$s für %1$s ist abgelaufen", + "%2$s shared %1$s with you" : "%2$s hat %1$s mit Ihnen geteilt", "%2$s removed the share for %1$s" : "%2$s hat die Freigabe für %1$s entfernt", "Shared with %2$s" : "Geteilt mit %2$s", "Shared with %3$s by %2$s" : "Geteilt mit %3$s von %2$s", @@ -168,9 +140,40 @@ "Shared via link by %2$s" : "Geteilt durch einen Link von %2$s", "Shared via public link" : "Durch einen öffentlichen Link geteilt", "%2$s removed public link" : "%2$s hat die Freigabe als öffentlichen Link entfernt", - "Public link expired" : "öffentlicher Link ist abgelaufen", "Public link of %2$s expired" : "Öffentlicher Link von %2$s ist abgelaufen", "Shared by %2$s" : "Geteilt von %2$s", - "Shares" : "Geteiltes" + "Shares" : "Geteiltes", + "Downloaded by %1$s" : "Heruntergeladen von %1$s", + "%1$s downloaded via public link" : "%1$s heruntergeladen mittels öffentlichen Link", + "%1$s downloaded %2$s" : "%1$s hat %2$s heruntergeladen", + "Shared with group %1$s" : "Geteilt mit der Gruppe %1$s", + "Removed share for group %1$s" : "Freigabe für die Gruppe %1$s entfernt", + "%2$s shared with group %1$s" : "%2$s geteilt mit der Gruppe %1$s", + "%2$s removed share for group %1$s" : "%2$s hat die Freigabe für die Gruppe %1$s entfernt", + "You removed group %2$s from %1$s" : "Sie haben die Gruppe %2$s von %1$s entfernt", + "%3$s shared %1$s with group %2$s" : "%3$s hat %1$s mit der Gruppe %2$s geteilt", + "%3$s removed group %2$s from %1$s" : "%3$s hat die Gruppe %2$s von %1$s entfernt", + "%1$s shared as public link" : "%1$s hat einen öffentlichen Link geteilt", + "%1$s removed public link" : "%1$s hat einen öffentlichen Link entfernt", + "You shared %1$s as public link" : "Sie haben %1$s über einen öffentlichen Link geteilt", + "You removed public link for %1$s" : "Sie haben die öffentliche Freigabe für %1$s entfernt", + "%2$s shared %1$s as public link" : "%2$s hat %1$s über einen öffentlichen Link geteilt", + "%2$s removed public link for %1$s" : "%2$s hat den öffentlichen Link für %1$s entfernt", + "%1$s accepted the remote share" : "%1$s hat die Remotefreigabe akzeptiert", + "%1$s declined the remote share" : "%1$s hat die Remotefreigabe abgelehnt", + "You received a new remote share %1$s from %2$s" : "Du hast eine neue Remotefreigabe %1$s von %2$s erhalten", + "%2$s accepted the remote share of %1$s" : "%2$s hat die Remotefreigabe von %1$s akzeptiert", + "%2$s declined the remote share of %1$s" : "%2$s hat die Remotefreigabe von %1$s abgelehnt", + "%2$s unshared %1$s from you" : "%2$s teilt %1$s nicht mehr mit Ihnen", + "Shared with %1$s" : "Geteilt mit %1$s", + "Removed share for %1$s" : "Freigabe für %1$s entfernt", + "%2$s shared with %1$s" : "%2$s hat mit %1$s geteilt", + "%2$s removed share for %1$s" : "%2$s hat die Freigabe für %1$s entfernt", + "Shared by %1$s" : "Geteilt von %1$s", + "%1$s removed share" : "%1$s hat die Freigabe entfernt", + "You removed %2$s from %1$s" : "Sie haben %2$s von %1$s entfernt", + "%3$s shared %1$s with %2$s" : "%3$s hat %1$s mit %2$s geteilt", + "%3$s removed %2$s from %1$s" : "%3$s hat %2$s von %1$s entfernt", + "%2$s removed you from %1$s" : "Sie wurden durch %2$s von %1$s entfernt" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/es.js b/apps/files_sharing/l10n/es.js index abada5b6efb..40bdeafee29 100644 --- a/apps/files_sharing/l10n/es.js +++ b/apps/files_sharing/l10n/es.js @@ -1,7 +1,7 @@ OC.L10N.register( "files_sharing", { - "Shared with you" : "Compartido con usted", + "Shared with you" : "Compartido contigo", "Shared with others" : "Compartido con otros", "Shared by link" : "Compartido por medio de enlaces", "Nothing shared with you yet" : "Todavía no han compartido nada contigo", @@ -20,76 +20,45 @@ OC.L10N.register( "Sharing" : "Compartiendo", "File shares" : "Archivos compartidos", "Downloaded via public link" : "Descargado vía enlace público", - "Downloaded by %1$s" : "Descargado por %1$s", "Downloaded by {email}" : "Descargado por {email}", - "%1$s downloaded via public link" : "%1$s descargado por vía enlace público", "{file} downloaded via public link" : "{file} descargado vía enlace público", - "%1$s downloaded %2$s" : "%1$s descargó %2$s", "{email} downloaded {file}" : "{email} descargó {file}", - "Shared with group %1$s" : "Compartido con el grupo %1$s", "Shared with group {group}" : "Compartido con el grupo {grupo}", - "Removed share for group %1$s" : "Eliminado el compartido para el grupo %1$s", "Removed share for group {group}" : "Eliminado el compartido para el grupo {group}", - "%2$s shared with group %1$s" : "%2$s compartido con el grupo %1$s", "{actor} shared with group {group}" : "{actor} compartió con el grupo {group}", - "%2$s removed share for group %1$s" : "%2$s removió archivo del grupo %1$s", "{actor} removed share for group {group}" : "{actor} eliminó el compartido para el grupo {group}", - "You shared %1$s with group %2$s" : "Usted ha compartido %1$s con el grupo %2$s", "You shared {file} with group {group}" : "Ha compartido {file} con el grupo {group}", - "You removed group %2$s from %1$s" : "Ha eliminado el grupo %2$s de %1$s", "You removed group {group} from {file}" : "Ha eliminado el grupo {group} del {file}", - "%3$s shared %1$s with group %2$s" : "%3$s compartió %1$s con el grupo %2$s", "{actor} shared {file} with group {group}" : "{actor} compartió {file} con el grupo {group}", - "%3$s removed group %2$s from %1$s" : "%3$s eliminó el grupo %2$s de %1$s", "{actor} removed group {group} from {file}" : "{actor} eliminó grupo {group} de {file}", "Shared as public link" : "Compartido como enlace público", "Removed public link" : "Eliminado enlace público", - "%1$s shared as public link" : "%1$s compartido como enlace público", + "Public link expired" : "El enlace público ha expirado", "{actor} shared as public link" : "{actor} compartió como enlace público", - "%1$s removed public link" : "%1$s eliminó el enlace público", "{actor} removed public link" : "{actor} eliminó el enlace público", - "You shared %1$s as public link" : "Compartió %1$s como un enlace público", + "Public link of {actor} expired" : "Enlace público de {actor} caducado", "You shared {file} as public link" : "Compartió {file} como un enlace público", - "You removed public link for %1$s" : "Eliminó el enlace público para %1$s", "You removed public link for {file}" : "Eliminó el enlace público para {file}", - "%2$s shared %1$s as public link" : "%2$s compartió %1$s como un enlace público", + "Public link expired for {file}" : "Enlace público caducado para {file}", "{actor} shared {file} as public link" : "{actor} compartió {file} como enlace público", - "%2$s removed public link for %1$s" : "%2$s eliminó el enlace público para %1$s", "{actor} removed public link for {file}" : "{actor} eliminó el enlace público para {file}", - "%1$s accepted the remote share" : "%1$s aceptó el recurso compartido remotamente", + "Public link of {actor} for {file} expired" : "Enlace público de {actor} para {file} caducado", "{user} accepted the remote share" : "{user} aceptó el recurso compartido remotamente", - "%1$s declined the remote share" : "%1$s rechazó el recurso compartido", "{user} declined the remote share" : "{user} rechazó el recurso compartido", - "You received a new remote share %1$s from %2$s" : "Ha recibido un nuevo recurso compartido remoto %1$s de %2$s", "You received a new remote share {file} from {user}" : "Ha recibido un nuevo recurso compartido remoto {file} de {user}", - "%2$s accepted the remote share of %1$s" : "%2$s aceptó el recurso compartido de %1$s", "{user} accepted the remote share of {file}" : "{user} aceptó la compartición remota de {file}", - "%2$s declined the remote share of %1$s" : "%2$s rechazó el recurso compartido de %1$s", "{user} declined the remote share of {file}" : "{user} rechazó el recurso compartido de {file}", - "%2$s unshared %1$s from you" : "%2$s dejó de compartir %1$s contigo", "{user} unshared {file} from you" : "{user} dejó de compartir {file} contigo", - "Shared with %1$s" : "Compartido con %1$s", "Shared with {user}" : "Compartido con {user}", - "Removed share for %1$s" : "Eliminó el recurso compartido a %1$s", "Removed share for {user}" : "Eliminó el recurso compartido a {user}", - "%2$s shared with %1$s" : "%2$s compartió con %1$s", "{actor} shared with {user}" : "{actor} compartió con {user}", - "%2$s removed share for %1$s" : "%2$s eliminó recurso compartido para %1$s", "{actor} removed share for {user}" : "{actor} eliminó recurso compartido para {user}", - "Shared by %1$s" : "Compartido por %1$s", "Shared by {actor}" : "Compartido por {actor}", - "%1$s removed share" : "%1$s eliminó el recurso compartido", "{actor} removed share" : "{actor} eliminó el recurso compartido", - "You shared %1$s with %2$s" : "Usted compartió %1$s con %2$s", "You shared {file} with {user}" : "Ha compartido {file} con {user}", - "You removed %2$s from %1$s" : "Ha eliminado %2$s de %1$s", "You removed {user} from {file}" : "Ha eliminado {user} de {file}", - "%3$s shared %1$s with %2$s" : "%3$s compartió %1$s con %2$s", "{actor} removed {user} from {file}" : "{actor} eliminó a {user} de {file}", - "%3$s removed %2$s from %1$s" : "%3$s eliminó a %2$s de %1$s", - "%2$s shared %1$s with you" : "%2$s ha compartido %1$s con usted", "{actor} shared {file} with you" : "{actor} compartió {file} contigo", - "%2$s removed you from %1$s" : "%2$s lo ha eliminado de %1$s", "{actor} removed you from {file}" : "{actor} lo ha eliminado de {file}", "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta compartida por correo o enlace público fue <strong>descargado</strong>", "A file or folder was shared from <strong>another server</strong>" : "Se ha compartido un archivo o carpeta desde <strong>otro servidor</strong>", @@ -146,9 +115,11 @@ OC.L10N.register( "%1$s unshared %2$s from you" : "%1$s dejó de compartirse %2$s por ti", "Public shared folder %1$s was downloaded" : "Se descargó la carpeta pública compartida %1$s", "Public shared file %1$s was downloaded" : "Se descargó el archivo público compartido %1$s", + "You shared %1$s with %2$s" : "Usted compartió %1$s con %2$s", "%2$s shared %1$s with %3$s" : "%2$s compartó %1$s con %3$s", "You removed the share of %2$s for %1$s" : "Ha cambiado el compartido %2$s por %1$s", "%2$s removed the share of %3$s for %1$s" : "%2$s eliminó la compartición de %3$s con %1$s", + "You shared %1$s with group %2$s" : "Usted ha compartido %1$s con el grupo %2$s", "%2$s shared %1$s with group %3$s" : "%2$s compartió %1$s con el grupo %3$s", "You removed the share of group %2$s for %1$s" : "Ha cambiado el compartido del grupo %2$s por %1$s", "%2$s removed the share of group %3$s for %1$s" : "%2$s ha cambiado el compartido del grupo %3$s por %1$s", @@ -158,6 +129,7 @@ OC.L10N.register( "%2$s removed the public link for %1$s" : "%2$s ha eliminado el enlace público de %1$s", "Your public link for %1$s expired" : "Su enlace público %1$s ha expirado", "The public link of %2$s for %1$s expired" : "El enlace público de %2$s para %1$s ha expirado", + "%2$s shared %1$s with you" : "%2$s ha compartido %1$s con usted", "%2$s removed the share for %1$s" : "%2$s ha borrado el compartido %1$s", "Shared with %2$s" : "Compartido con %2$s", "Shared with %3$s by %2$s" : "Compartido con %3$s por %2$s", @@ -170,9 +142,40 @@ OC.L10N.register( "Shared via link by %2$s" : "Compartido vía enlace por %2$s", "Shared via public link" : "Compartido vía enlace público", "%2$s removed public link" : "%2$s ha borrado el enlace público", - "Public link expired" : "El enlace público ha expirado", "Public link of %2$s expired" : "El enlace público %2$s ha expirado", "Shared by %2$s" : "Compartido por %2$s", - "Shares" : "Compartidos" + "Shares" : "Compartidos", + "Downloaded by %1$s" : "Descargado por %1$s", + "%1$s downloaded via public link" : "%1$s descargado por vía enlace público", + "%1$s downloaded %2$s" : "%1$s descargó %2$s", + "Shared with group %1$s" : "Compartido con el grupo %1$s", + "Removed share for group %1$s" : "Eliminado el compartido para el grupo %1$s", + "%2$s shared with group %1$s" : "%2$s compartido con el grupo %1$s", + "%2$s removed share for group %1$s" : "%2$s removió archivo del grupo %1$s", + "You removed group %2$s from %1$s" : "Ha eliminado el grupo %2$s de %1$s", + "%3$s shared %1$s with group %2$s" : "%3$s compartió %1$s con el grupo %2$s", + "%3$s removed group %2$s from %1$s" : "%3$s eliminó el grupo %2$s de %1$s", + "%1$s shared as public link" : "%1$s compartido como enlace público", + "%1$s removed public link" : "%1$s eliminó el enlace público", + "You shared %1$s as public link" : "Compartió %1$s como un enlace público", + "You removed public link for %1$s" : "Eliminó el enlace público para %1$s", + "%2$s shared %1$s as public link" : "%2$s compartió %1$s como un enlace público", + "%2$s removed public link for %1$s" : "%2$s eliminó el enlace público para %1$s", + "%1$s accepted the remote share" : "%1$s aceptó el recurso compartido remotamente", + "%1$s declined the remote share" : "%1$s rechazó el recurso compartido", + "You received a new remote share %1$s from %2$s" : "Ha recibido un nuevo recurso compartido remoto %1$s de %2$s", + "%2$s accepted the remote share of %1$s" : "%2$s aceptó el recurso compartido de %1$s", + "%2$s declined the remote share of %1$s" : "%2$s rechazó el recurso compartido de %1$s", + "%2$s unshared %1$s from you" : "%2$s dejó de compartir %1$s contigo", + "Shared with %1$s" : "Compartido con %1$s", + "Removed share for %1$s" : "Eliminó el recurso compartido a %1$s", + "%2$s shared with %1$s" : "%2$s compartió con %1$s", + "%2$s removed share for %1$s" : "%2$s eliminó recurso compartido para %1$s", + "Shared by %1$s" : "Compartido por %1$s", + "%1$s removed share" : "%1$s eliminó el recurso compartido", + "You removed %2$s from %1$s" : "Ha eliminado %2$s de %1$s", + "%3$s shared %1$s with %2$s" : "%3$s compartió %1$s con %2$s", + "%3$s removed %2$s from %1$s" : "%3$s eliminó a %2$s de %1$s", + "%2$s removed you from %1$s" : "%2$s lo ha eliminado de %1$s" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/es.json b/apps/files_sharing/l10n/es.json index 64463b90054..5df6c6331ec 100644 --- a/apps/files_sharing/l10n/es.json +++ b/apps/files_sharing/l10n/es.json @@ -1,5 +1,5 @@ { "translations": { - "Shared with you" : "Compartido con usted", + "Shared with you" : "Compartido contigo", "Shared with others" : "Compartido con otros", "Shared by link" : "Compartido por medio de enlaces", "Nothing shared with you yet" : "Todavía no han compartido nada contigo", @@ -18,76 +18,45 @@ "Sharing" : "Compartiendo", "File shares" : "Archivos compartidos", "Downloaded via public link" : "Descargado vía enlace público", - "Downloaded by %1$s" : "Descargado por %1$s", "Downloaded by {email}" : "Descargado por {email}", - "%1$s downloaded via public link" : "%1$s descargado por vía enlace público", "{file} downloaded via public link" : "{file} descargado vía enlace público", - "%1$s downloaded %2$s" : "%1$s descargó %2$s", "{email} downloaded {file}" : "{email} descargó {file}", - "Shared with group %1$s" : "Compartido con el grupo %1$s", "Shared with group {group}" : "Compartido con el grupo {grupo}", - "Removed share for group %1$s" : "Eliminado el compartido para el grupo %1$s", "Removed share for group {group}" : "Eliminado el compartido para el grupo {group}", - "%2$s shared with group %1$s" : "%2$s compartido con el grupo %1$s", "{actor} shared with group {group}" : "{actor} compartió con el grupo {group}", - "%2$s removed share for group %1$s" : "%2$s removió archivo del grupo %1$s", "{actor} removed share for group {group}" : "{actor} eliminó el compartido para el grupo {group}", - "You shared %1$s with group %2$s" : "Usted ha compartido %1$s con el grupo %2$s", "You shared {file} with group {group}" : "Ha compartido {file} con el grupo {group}", - "You removed group %2$s from %1$s" : "Ha eliminado el grupo %2$s de %1$s", "You removed group {group} from {file}" : "Ha eliminado el grupo {group} del {file}", - "%3$s shared %1$s with group %2$s" : "%3$s compartió %1$s con el grupo %2$s", "{actor} shared {file} with group {group}" : "{actor} compartió {file} con el grupo {group}", - "%3$s removed group %2$s from %1$s" : "%3$s eliminó el grupo %2$s de %1$s", "{actor} removed group {group} from {file}" : "{actor} eliminó grupo {group} de {file}", "Shared as public link" : "Compartido como enlace público", "Removed public link" : "Eliminado enlace público", - "%1$s shared as public link" : "%1$s compartido como enlace público", + "Public link expired" : "El enlace público ha expirado", "{actor} shared as public link" : "{actor} compartió como enlace público", - "%1$s removed public link" : "%1$s eliminó el enlace público", "{actor} removed public link" : "{actor} eliminó el enlace público", - "You shared %1$s as public link" : "Compartió %1$s como un enlace público", + "Public link of {actor} expired" : "Enlace público de {actor} caducado", "You shared {file} as public link" : "Compartió {file} como un enlace público", - "You removed public link for %1$s" : "Eliminó el enlace público para %1$s", "You removed public link for {file}" : "Eliminó el enlace público para {file}", - "%2$s shared %1$s as public link" : "%2$s compartió %1$s como un enlace público", + "Public link expired for {file}" : "Enlace público caducado para {file}", "{actor} shared {file} as public link" : "{actor} compartió {file} como enlace público", - "%2$s removed public link for %1$s" : "%2$s eliminó el enlace público para %1$s", "{actor} removed public link for {file}" : "{actor} eliminó el enlace público para {file}", - "%1$s accepted the remote share" : "%1$s aceptó el recurso compartido remotamente", + "Public link of {actor} for {file} expired" : "Enlace público de {actor} para {file} caducado", "{user} accepted the remote share" : "{user} aceptó el recurso compartido remotamente", - "%1$s declined the remote share" : "%1$s rechazó el recurso compartido", "{user} declined the remote share" : "{user} rechazó el recurso compartido", - "You received a new remote share %1$s from %2$s" : "Ha recibido un nuevo recurso compartido remoto %1$s de %2$s", "You received a new remote share {file} from {user}" : "Ha recibido un nuevo recurso compartido remoto {file} de {user}", - "%2$s accepted the remote share of %1$s" : "%2$s aceptó el recurso compartido de %1$s", "{user} accepted the remote share of {file}" : "{user} aceptó la compartición remota de {file}", - "%2$s declined the remote share of %1$s" : "%2$s rechazó el recurso compartido de %1$s", "{user} declined the remote share of {file}" : "{user} rechazó el recurso compartido de {file}", - "%2$s unshared %1$s from you" : "%2$s dejó de compartir %1$s contigo", "{user} unshared {file} from you" : "{user} dejó de compartir {file} contigo", - "Shared with %1$s" : "Compartido con %1$s", "Shared with {user}" : "Compartido con {user}", - "Removed share for %1$s" : "Eliminó el recurso compartido a %1$s", "Removed share for {user}" : "Eliminó el recurso compartido a {user}", - "%2$s shared with %1$s" : "%2$s compartió con %1$s", "{actor} shared with {user}" : "{actor} compartió con {user}", - "%2$s removed share for %1$s" : "%2$s eliminó recurso compartido para %1$s", "{actor} removed share for {user}" : "{actor} eliminó recurso compartido para {user}", - "Shared by %1$s" : "Compartido por %1$s", "Shared by {actor}" : "Compartido por {actor}", - "%1$s removed share" : "%1$s eliminó el recurso compartido", "{actor} removed share" : "{actor} eliminó el recurso compartido", - "You shared %1$s with %2$s" : "Usted compartió %1$s con %2$s", "You shared {file} with {user}" : "Ha compartido {file} con {user}", - "You removed %2$s from %1$s" : "Ha eliminado %2$s de %1$s", "You removed {user} from {file}" : "Ha eliminado {user} de {file}", - "%3$s shared %1$s with %2$s" : "%3$s compartió %1$s con %2$s", "{actor} removed {user} from {file}" : "{actor} eliminó a {user} de {file}", - "%3$s removed %2$s from %1$s" : "%3$s eliminó a %2$s de %1$s", - "%2$s shared %1$s with you" : "%2$s ha compartido %1$s con usted", "{actor} shared {file} with you" : "{actor} compartió {file} contigo", - "%2$s removed you from %1$s" : "%2$s lo ha eliminado de %1$s", "{actor} removed you from {file}" : "{actor} lo ha eliminado de {file}", "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta compartida por correo o enlace público fue <strong>descargado</strong>", "A file or folder was shared from <strong>another server</strong>" : "Se ha compartido un archivo o carpeta desde <strong>otro servidor</strong>", @@ -144,9 +113,11 @@ "%1$s unshared %2$s from you" : "%1$s dejó de compartirse %2$s por ti", "Public shared folder %1$s was downloaded" : "Se descargó la carpeta pública compartida %1$s", "Public shared file %1$s was downloaded" : "Se descargó el archivo público compartido %1$s", + "You shared %1$s with %2$s" : "Usted compartió %1$s con %2$s", "%2$s shared %1$s with %3$s" : "%2$s compartó %1$s con %3$s", "You removed the share of %2$s for %1$s" : "Ha cambiado el compartido %2$s por %1$s", "%2$s removed the share of %3$s for %1$s" : "%2$s eliminó la compartición de %3$s con %1$s", + "You shared %1$s with group %2$s" : "Usted ha compartido %1$s con el grupo %2$s", "%2$s shared %1$s with group %3$s" : "%2$s compartió %1$s con el grupo %3$s", "You removed the share of group %2$s for %1$s" : "Ha cambiado el compartido del grupo %2$s por %1$s", "%2$s removed the share of group %3$s for %1$s" : "%2$s ha cambiado el compartido del grupo %3$s por %1$s", @@ -156,6 +127,7 @@ "%2$s removed the public link for %1$s" : "%2$s ha eliminado el enlace público de %1$s", "Your public link for %1$s expired" : "Su enlace público %1$s ha expirado", "The public link of %2$s for %1$s expired" : "El enlace público de %2$s para %1$s ha expirado", + "%2$s shared %1$s with you" : "%2$s ha compartido %1$s con usted", "%2$s removed the share for %1$s" : "%2$s ha borrado el compartido %1$s", "Shared with %2$s" : "Compartido con %2$s", "Shared with %3$s by %2$s" : "Compartido con %3$s por %2$s", @@ -168,9 +140,40 @@ "Shared via link by %2$s" : "Compartido vía enlace por %2$s", "Shared via public link" : "Compartido vía enlace público", "%2$s removed public link" : "%2$s ha borrado el enlace público", - "Public link expired" : "El enlace público ha expirado", "Public link of %2$s expired" : "El enlace público %2$s ha expirado", "Shared by %2$s" : "Compartido por %2$s", - "Shares" : "Compartidos" + "Shares" : "Compartidos", + "Downloaded by %1$s" : "Descargado por %1$s", + "%1$s downloaded via public link" : "%1$s descargado por vía enlace público", + "%1$s downloaded %2$s" : "%1$s descargó %2$s", + "Shared with group %1$s" : "Compartido con el grupo %1$s", + "Removed share for group %1$s" : "Eliminado el compartido para el grupo %1$s", + "%2$s shared with group %1$s" : "%2$s compartido con el grupo %1$s", + "%2$s removed share for group %1$s" : "%2$s removió archivo del grupo %1$s", + "You removed group %2$s from %1$s" : "Ha eliminado el grupo %2$s de %1$s", + "%3$s shared %1$s with group %2$s" : "%3$s compartió %1$s con el grupo %2$s", + "%3$s removed group %2$s from %1$s" : "%3$s eliminó el grupo %2$s de %1$s", + "%1$s shared as public link" : "%1$s compartido como enlace público", + "%1$s removed public link" : "%1$s eliminó el enlace público", + "You shared %1$s as public link" : "Compartió %1$s como un enlace público", + "You removed public link for %1$s" : "Eliminó el enlace público para %1$s", + "%2$s shared %1$s as public link" : "%2$s compartió %1$s como un enlace público", + "%2$s removed public link for %1$s" : "%2$s eliminó el enlace público para %1$s", + "%1$s accepted the remote share" : "%1$s aceptó el recurso compartido remotamente", + "%1$s declined the remote share" : "%1$s rechazó el recurso compartido", + "You received a new remote share %1$s from %2$s" : "Ha recibido un nuevo recurso compartido remoto %1$s de %2$s", + "%2$s accepted the remote share of %1$s" : "%2$s aceptó el recurso compartido de %1$s", + "%2$s declined the remote share of %1$s" : "%2$s rechazó el recurso compartido de %1$s", + "%2$s unshared %1$s from you" : "%2$s dejó de compartir %1$s contigo", + "Shared with %1$s" : "Compartido con %1$s", + "Removed share for %1$s" : "Eliminó el recurso compartido a %1$s", + "%2$s shared with %1$s" : "%2$s compartió con %1$s", + "%2$s removed share for %1$s" : "%2$s eliminó recurso compartido para %1$s", + "Shared by %1$s" : "Compartido por %1$s", + "%1$s removed share" : "%1$s eliminó el recurso compartido", + "You removed %2$s from %1$s" : "Ha eliminado %2$s de %1$s", + "%3$s shared %1$s with %2$s" : "%3$s compartió %1$s con %2$s", + "%3$s removed %2$s from %1$s" : "%3$s eliminó a %2$s de %1$s", + "%2$s removed you from %1$s" : "%2$s lo ha eliminado de %1$s" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/fr.js b/apps/files_sharing/l10n/fr.js index 2f9b6c522f5..16b68eaa37a 100644 --- a/apps/files_sharing/l10n/fr.js +++ b/apps/files_sharing/l10n/fr.js @@ -20,76 +20,42 @@ OC.L10N.register( "Sharing" : "Partage", "File shares" : "Partages de fichiers", "Downloaded via public link" : "Téléchargé par lien public", - "Downloaded by %1$s" : "Téléchargé par %1$s", "Downloaded by {email}" : "Téléchargé par {email}", - "%1$s downloaded via public link" : "%1$s téléchargé par lien public", "{file} downloaded via public link" : "{file} téléchargé par lien public", - "%1$s downloaded %2$s" : "%1$s a téléchargé %2$s", "{email} downloaded {file}" : "{email} a téléchargé {file}", - "Shared with group %1$s" : "Partagé avec le groupe %1$s", "Shared with group {group}" : "Partagé avec le groupe {group}", - "Removed share for group %1$s" : "Partage supprimé avec le groupe %1$s", "Removed share for group {group}" : "Partage supprimé avec le groupe {group}", - "%2$s shared with group %1$s" : "%2$s a partagé avec le groupe %1$s", "{actor} shared with group {group}" : "{actor} a partagé avec le groupe {group}", - "%2$s removed share for group %1$s" : "%2$s a supprimé le partage avec le groupe %1$s", "{actor} removed share for group {group}" : "{actor} a supprimé le partage avec le groupe {group}", - "You shared %1$s with group %2$s" : "Vous avez partagé %1$s avec le groupe %2$s", "You shared {file} with group {group}" : "Vous avez partagé {file} avec le groupe {group}", - "You removed group %2$s from %1$s" : "Vous avez supprimé le group %2$s de %1$s", "You removed group {group} from {file}" : "Vous avez supprimé le groupe {group} de {file}", - "%3$s shared %1$s with group %2$s" : "%3$s a partagé %1$s avec le groupe %2$s", "{actor} shared {file} with group {group}" : "{actor} a partagé {file} avec le groupe {group}", - "%3$s removed group %2$s from %1$s" : "%3$s a supprimé le groupe %2$s de %1$s", "{actor} removed group {group} from {file}" : "{actor} a supprimé le groupe {group} de {file}", "Shared as public link" : "Partagé avec un lien public", "Removed public link" : "Lien public supprimé", - "%1$s shared as public link" : "%1$s a partagé avec un lien public", + "Public link expired" : "Lien public expiré", "{actor} shared as public link" : "{actor} a partagé avec un lien public", - "%1$s removed public link" : "%1$s a supprimé le lien public", "{actor} removed public link" : "{actor} a supprimé le lien public", - "You shared %1$s as public link" : "Vous avez partagé %1$s avec un lien public", "You shared {file} as public link" : "Vous avez partagé {file} avec un lien public", - "You removed public link for %1$s" : "Vous avez supprimé le lien public pour %1$s", "You removed public link for {file}" : "Vous avez supprimé le lien public pour {file}", - "%2$s shared %1$s as public link" : "%2$s a partagé %1$s avec un lien public", "{actor} shared {file} as public link" : "{actor} a partagé {file} avec un lien public", - "%2$s removed public link for %1$s" : "%2$s a supprimé le lien public pour %1$s", "{actor} removed public link for {file}" : "{actor} a supprimé le lien public pour {file}", - "%1$s accepted the remote share" : "%1$s a accepté le partage distant", "{user} accepted the remote share" : "{user} a accepté le partage distant", - "%1$s declined the remote share" : "%1$s a refusé le partage distant", "{user} declined the remote share" : "{user} a refusé le partage distant", - "You received a new remote share %1$s from %2$s" : "L'utilisateur %2$s a partagé la ressource distante %1$s avec vous", "You received a new remote share {file} from {user}" : "Vous avez reçu le partage distant {file} de {user}", - "%2$s accepted the remote share of %1$s" : "%2$s a accepté le partage distant de %1$s", "{user} accepted the remote share of {file}" : "{user} a accepté le partage distant de {file}", - "%2$s declined the remote share of %1$s" : "%2$s a refusé le partage distant de %1$s", "{user} declined the remote share of {file}" : "{user} a refusé le partage distant de {file}", - "%2$s unshared %1$s from you" : "%2$s a cessé de partager %1$s avec vous", "{user} unshared {file} from you" : "{user} a cessé de partager {file} avec vous", - "Shared with %1$s" : "Partagé avec %1$s", "Shared with {user}" : "Partagé avec {user}", - "Removed share for %1$s" : "Partage supprimé pour %1$s", "Removed share for {user}" : "Partage supprimé pour {user}", - "%2$s shared with %1$s" : "%2$s a partagé avec %1$s", "{actor} shared with {user}" : "{actor} a partagé avec {user}", - "%2$s removed share for %1$s" : "%2$s a supprimé le partage pour %1$s", "{actor} removed share for {user}" : "{actor} a supprimé le partage pour {user}", - "Shared by %1$s" : "Partagé par %1$s", "Shared by {actor}" : "Partagé par {actor}", - "%1$s removed share" : "%1$s a supprimé le partage", "{actor} removed share" : "{actor} a supprimé le partage", - "You shared %1$s with %2$s" : "Vous avez partagé %1$s avec %2$s", "You shared {file} with {user}" : "Vous avez partagé {file} avec {user}", - "You removed %2$s from %1$s" : "Vous avez supprimé %2$s de %1$s", "You removed {user} from {file}" : "Vous avez supprimé {user} de {file}", - "%3$s shared %1$s with %2$s" : "%3$s a partagé %1$s avec %2$s", "{actor} removed {user} from {file}" : "{actor} a supprimé {user} de {file}", - "%3$s removed %2$s from %1$s" : "%3$s a supprimé %2$s de %1$s", - "%2$s shared %1$s with you" : "%2$s a partagé %1$s avec vous", "{actor} shared {file} with you" : "{actor} a partagé {file} avec vous", - "%2$s removed you from %1$s" : "%2$s vous a supprimé de %1$s", "{actor} removed you from {file}" : "{actor} vous a supprimé de {file}", "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un fichier ou un dossier partagé par mail ou par lien public a été <strong>téléchargé</strong>", "A file or folder was shared from <strong>another server</strong>" : "Un fichier ou un répertoire a été partagé depuis <strong>un autre serveur</strong>", @@ -146,9 +112,11 @@ OC.L10N.register( "%1$s unshared %2$s from you" : "%1$s a cessé de partager %2$s avec vous", "Public shared folder %1$s was downloaded" : "Le dossier public %1$s a été téléchargé", "Public shared file %1$s was downloaded" : "Le fichier public %1$s a été téléchargé", + "You shared %1$s with %2$s" : "Vous avez partagé %1$s avec %2$s", "%2$s shared %1$s with %3$s" : "%2$s a partagé %1$s avec %3$s", "You removed the share of %2$s for %1$s" : "Vous avez supprimé le partage de %2$s pour %1$s", "%2$s removed the share of %3$s for %1$s" : "%2$s a supprimé votre partage de %3$s pour %1$s", + "You shared %1$s with group %2$s" : "Vous avez partagé %1$s avec le groupe %2$s", "%2$s shared %1$s with group %3$s" : "%2$s partagé %1$s avec le groupe %3$s", "You removed the share of group %2$s for %1$s" : "Vous avez supprimé le partage du groupe %2$s pour %1$s", "%2$s removed the share of group %3$s for %1$s" : "%2$s a supprimé le partage du groupe %3$s pour %1$s", @@ -158,6 +126,7 @@ OC.L10N.register( "%2$s removed the public link for %1$s" : "%2$s a supprimé le lien public pour %1$s", "Your public link for %1$s expired" : "Le lien public pour %1$s a expiré", "The public link of %2$s for %1$s expired" : "Le lien public de %2$s pour %1$s a expiré", + "%2$s shared %1$s with you" : "%2$s a partagé %1$s avec vous", "%2$s removed the share for %1$s" : "%2$s a supprimé le partage pour %1$s", "Shared with %2$s" : "Partagé avec %2$s", "Shared with %3$s by %2$s" : "Partagé avec %3$s par %2$s", @@ -170,9 +139,40 @@ OC.L10N.register( "Shared via link by %2$s" : "Partagé via lien par %2$s", "Shared via public link" : "Partagé par lien public", "%2$s removed public link" : "%2$s a supprimé le lien public", - "Public link expired" : "Lien public expiré", "Public link of %2$s expired" : "Le lien public de %2$s a expiré", "Shared by %2$s" : "Partagé par %2$s", - "Shares" : "Partages" + "Shares" : "Partages", + "Downloaded by %1$s" : "Téléchargé par %1$s", + "%1$s downloaded via public link" : "%1$s téléchargé par lien public", + "%1$s downloaded %2$s" : "%1$s a téléchargé %2$s", + "Shared with group %1$s" : "Partagé avec le groupe %1$s", + "Removed share for group %1$s" : "Partage supprimé avec le groupe %1$s", + "%2$s shared with group %1$s" : "%2$s a partagé avec le groupe %1$s", + "%2$s removed share for group %1$s" : "%2$s a supprimé le partage avec le groupe %1$s", + "You removed group %2$s from %1$s" : "Vous avez supprimé le group %2$s de %1$s", + "%3$s shared %1$s with group %2$s" : "%3$s a partagé %1$s avec le groupe %2$s", + "%3$s removed group %2$s from %1$s" : "%3$s a supprimé le groupe %2$s de %1$s", + "%1$s shared as public link" : "%1$s a partagé avec un lien public", + "%1$s removed public link" : "%1$s a supprimé le lien public", + "You shared %1$s as public link" : "Vous avez partagé %1$s avec un lien public", + "You removed public link for %1$s" : "Vous avez supprimé le lien public pour %1$s", + "%2$s shared %1$s as public link" : "%2$s a partagé %1$s avec un lien public", + "%2$s removed public link for %1$s" : "%2$s a supprimé le lien public pour %1$s", + "%1$s accepted the remote share" : "%1$s a accepté le partage distant", + "%1$s declined the remote share" : "%1$s a refusé le partage distant", + "You received a new remote share %1$s from %2$s" : "L'utilisateur %2$s a partagé la ressource distante %1$s avec vous", + "%2$s accepted the remote share of %1$s" : "%2$s a accepté le partage distant de %1$s", + "%2$s declined the remote share of %1$s" : "%2$s a refusé le partage distant de %1$s", + "%2$s unshared %1$s from you" : "%2$s a cessé de partager %1$s avec vous", + "Shared with %1$s" : "Partagé avec %1$s", + "Removed share for %1$s" : "Partage supprimé pour %1$s", + "%2$s shared with %1$s" : "%2$s a partagé avec %1$s", + "%2$s removed share for %1$s" : "%2$s a supprimé le partage pour %1$s", + "Shared by %1$s" : "Partagé par %1$s", + "%1$s removed share" : "%1$s a supprimé le partage", + "You removed %2$s from %1$s" : "Vous avez supprimé %2$s de %1$s", + "%3$s shared %1$s with %2$s" : "%3$s a partagé %1$s avec %2$s", + "%3$s removed %2$s from %1$s" : "%3$s a supprimé %2$s de %1$s", + "%2$s removed you from %1$s" : "%2$s vous a supprimé de %1$s" }, "nplurals=2; plural=(n > 1);"); diff --git a/apps/files_sharing/l10n/fr.json b/apps/files_sharing/l10n/fr.json index 85a2eae4870..f9450eac166 100644 --- a/apps/files_sharing/l10n/fr.json +++ b/apps/files_sharing/l10n/fr.json @@ -18,76 +18,42 @@ "Sharing" : "Partage", "File shares" : "Partages de fichiers", "Downloaded via public link" : "Téléchargé par lien public", - "Downloaded by %1$s" : "Téléchargé par %1$s", "Downloaded by {email}" : "Téléchargé par {email}", - "%1$s downloaded via public link" : "%1$s téléchargé par lien public", "{file} downloaded via public link" : "{file} téléchargé par lien public", - "%1$s downloaded %2$s" : "%1$s a téléchargé %2$s", "{email} downloaded {file}" : "{email} a téléchargé {file}", - "Shared with group %1$s" : "Partagé avec le groupe %1$s", "Shared with group {group}" : "Partagé avec le groupe {group}", - "Removed share for group %1$s" : "Partage supprimé avec le groupe %1$s", "Removed share for group {group}" : "Partage supprimé avec le groupe {group}", - "%2$s shared with group %1$s" : "%2$s a partagé avec le groupe %1$s", "{actor} shared with group {group}" : "{actor} a partagé avec le groupe {group}", - "%2$s removed share for group %1$s" : "%2$s a supprimé le partage avec le groupe %1$s", "{actor} removed share for group {group}" : "{actor} a supprimé le partage avec le groupe {group}", - "You shared %1$s with group %2$s" : "Vous avez partagé %1$s avec le groupe %2$s", "You shared {file} with group {group}" : "Vous avez partagé {file} avec le groupe {group}", - "You removed group %2$s from %1$s" : "Vous avez supprimé le group %2$s de %1$s", "You removed group {group} from {file}" : "Vous avez supprimé le groupe {group} de {file}", - "%3$s shared %1$s with group %2$s" : "%3$s a partagé %1$s avec le groupe %2$s", "{actor} shared {file} with group {group}" : "{actor} a partagé {file} avec le groupe {group}", - "%3$s removed group %2$s from %1$s" : "%3$s a supprimé le groupe %2$s de %1$s", "{actor} removed group {group} from {file}" : "{actor} a supprimé le groupe {group} de {file}", "Shared as public link" : "Partagé avec un lien public", "Removed public link" : "Lien public supprimé", - "%1$s shared as public link" : "%1$s a partagé avec un lien public", + "Public link expired" : "Lien public expiré", "{actor} shared as public link" : "{actor} a partagé avec un lien public", - "%1$s removed public link" : "%1$s a supprimé le lien public", "{actor} removed public link" : "{actor} a supprimé le lien public", - "You shared %1$s as public link" : "Vous avez partagé %1$s avec un lien public", "You shared {file} as public link" : "Vous avez partagé {file} avec un lien public", - "You removed public link for %1$s" : "Vous avez supprimé le lien public pour %1$s", "You removed public link for {file}" : "Vous avez supprimé le lien public pour {file}", - "%2$s shared %1$s as public link" : "%2$s a partagé %1$s avec un lien public", "{actor} shared {file} as public link" : "{actor} a partagé {file} avec un lien public", - "%2$s removed public link for %1$s" : "%2$s a supprimé le lien public pour %1$s", "{actor} removed public link for {file}" : "{actor} a supprimé le lien public pour {file}", - "%1$s accepted the remote share" : "%1$s a accepté le partage distant", "{user} accepted the remote share" : "{user} a accepté le partage distant", - "%1$s declined the remote share" : "%1$s a refusé le partage distant", "{user} declined the remote share" : "{user} a refusé le partage distant", - "You received a new remote share %1$s from %2$s" : "L'utilisateur %2$s a partagé la ressource distante %1$s avec vous", "You received a new remote share {file} from {user}" : "Vous avez reçu le partage distant {file} de {user}", - "%2$s accepted the remote share of %1$s" : "%2$s a accepté le partage distant de %1$s", "{user} accepted the remote share of {file}" : "{user} a accepté le partage distant de {file}", - "%2$s declined the remote share of %1$s" : "%2$s a refusé le partage distant de %1$s", "{user} declined the remote share of {file}" : "{user} a refusé le partage distant de {file}", - "%2$s unshared %1$s from you" : "%2$s a cessé de partager %1$s avec vous", "{user} unshared {file} from you" : "{user} a cessé de partager {file} avec vous", - "Shared with %1$s" : "Partagé avec %1$s", "Shared with {user}" : "Partagé avec {user}", - "Removed share for %1$s" : "Partage supprimé pour %1$s", "Removed share for {user}" : "Partage supprimé pour {user}", - "%2$s shared with %1$s" : "%2$s a partagé avec %1$s", "{actor} shared with {user}" : "{actor} a partagé avec {user}", - "%2$s removed share for %1$s" : "%2$s a supprimé le partage pour %1$s", "{actor} removed share for {user}" : "{actor} a supprimé le partage pour {user}", - "Shared by %1$s" : "Partagé par %1$s", "Shared by {actor}" : "Partagé par {actor}", - "%1$s removed share" : "%1$s a supprimé le partage", "{actor} removed share" : "{actor} a supprimé le partage", - "You shared %1$s with %2$s" : "Vous avez partagé %1$s avec %2$s", "You shared {file} with {user}" : "Vous avez partagé {file} avec {user}", - "You removed %2$s from %1$s" : "Vous avez supprimé %2$s de %1$s", "You removed {user} from {file}" : "Vous avez supprimé {user} de {file}", - "%3$s shared %1$s with %2$s" : "%3$s a partagé %1$s avec %2$s", "{actor} removed {user} from {file}" : "{actor} a supprimé {user} de {file}", - "%3$s removed %2$s from %1$s" : "%3$s a supprimé %2$s de %1$s", - "%2$s shared %1$s with you" : "%2$s a partagé %1$s avec vous", "{actor} shared {file} with you" : "{actor} a partagé {file} avec vous", - "%2$s removed you from %1$s" : "%2$s vous a supprimé de %1$s", "{actor} removed you from {file}" : "{actor} vous a supprimé de {file}", "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un fichier ou un dossier partagé par mail ou par lien public a été <strong>téléchargé</strong>", "A file or folder was shared from <strong>another server</strong>" : "Un fichier ou un répertoire a été partagé depuis <strong>un autre serveur</strong>", @@ -144,9 +110,11 @@ "%1$s unshared %2$s from you" : "%1$s a cessé de partager %2$s avec vous", "Public shared folder %1$s was downloaded" : "Le dossier public %1$s a été téléchargé", "Public shared file %1$s was downloaded" : "Le fichier public %1$s a été téléchargé", + "You shared %1$s with %2$s" : "Vous avez partagé %1$s avec %2$s", "%2$s shared %1$s with %3$s" : "%2$s a partagé %1$s avec %3$s", "You removed the share of %2$s for %1$s" : "Vous avez supprimé le partage de %2$s pour %1$s", "%2$s removed the share of %3$s for %1$s" : "%2$s a supprimé votre partage de %3$s pour %1$s", + "You shared %1$s with group %2$s" : "Vous avez partagé %1$s avec le groupe %2$s", "%2$s shared %1$s with group %3$s" : "%2$s partagé %1$s avec le groupe %3$s", "You removed the share of group %2$s for %1$s" : "Vous avez supprimé le partage du groupe %2$s pour %1$s", "%2$s removed the share of group %3$s for %1$s" : "%2$s a supprimé le partage du groupe %3$s pour %1$s", @@ -156,6 +124,7 @@ "%2$s removed the public link for %1$s" : "%2$s a supprimé le lien public pour %1$s", "Your public link for %1$s expired" : "Le lien public pour %1$s a expiré", "The public link of %2$s for %1$s expired" : "Le lien public de %2$s pour %1$s a expiré", + "%2$s shared %1$s with you" : "%2$s a partagé %1$s avec vous", "%2$s removed the share for %1$s" : "%2$s a supprimé le partage pour %1$s", "Shared with %2$s" : "Partagé avec %2$s", "Shared with %3$s by %2$s" : "Partagé avec %3$s par %2$s", @@ -168,9 +137,40 @@ "Shared via link by %2$s" : "Partagé via lien par %2$s", "Shared via public link" : "Partagé par lien public", "%2$s removed public link" : "%2$s a supprimé le lien public", - "Public link expired" : "Lien public expiré", "Public link of %2$s expired" : "Le lien public de %2$s a expiré", "Shared by %2$s" : "Partagé par %2$s", - "Shares" : "Partages" + "Shares" : "Partages", + "Downloaded by %1$s" : "Téléchargé par %1$s", + "%1$s downloaded via public link" : "%1$s téléchargé par lien public", + "%1$s downloaded %2$s" : "%1$s a téléchargé %2$s", + "Shared with group %1$s" : "Partagé avec le groupe %1$s", + "Removed share for group %1$s" : "Partage supprimé avec le groupe %1$s", + "%2$s shared with group %1$s" : "%2$s a partagé avec le groupe %1$s", + "%2$s removed share for group %1$s" : "%2$s a supprimé le partage avec le groupe %1$s", + "You removed group %2$s from %1$s" : "Vous avez supprimé le group %2$s de %1$s", + "%3$s shared %1$s with group %2$s" : "%3$s a partagé %1$s avec le groupe %2$s", + "%3$s removed group %2$s from %1$s" : "%3$s a supprimé le groupe %2$s de %1$s", + "%1$s shared as public link" : "%1$s a partagé avec un lien public", + "%1$s removed public link" : "%1$s a supprimé le lien public", + "You shared %1$s as public link" : "Vous avez partagé %1$s avec un lien public", + "You removed public link for %1$s" : "Vous avez supprimé le lien public pour %1$s", + "%2$s shared %1$s as public link" : "%2$s a partagé %1$s avec un lien public", + "%2$s removed public link for %1$s" : "%2$s a supprimé le lien public pour %1$s", + "%1$s accepted the remote share" : "%1$s a accepté le partage distant", + "%1$s declined the remote share" : "%1$s a refusé le partage distant", + "You received a new remote share %1$s from %2$s" : "L'utilisateur %2$s a partagé la ressource distante %1$s avec vous", + "%2$s accepted the remote share of %1$s" : "%2$s a accepté le partage distant de %1$s", + "%2$s declined the remote share of %1$s" : "%2$s a refusé le partage distant de %1$s", + "%2$s unshared %1$s from you" : "%2$s a cessé de partager %1$s avec vous", + "Shared with %1$s" : "Partagé avec %1$s", + "Removed share for %1$s" : "Partage supprimé pour %1$s", + "%2$s shared with %1$s" : "%2$s a partagé avec %1$s", + "%2$s removed share for %1$s" : "%2$s a supprimé le partage pour %1$s", + "Shared by %1$s" : "Partagé par %1$s", + "%1$s removed share" : "%1$s a supprimé le partage", + "You removed %2$s from %1$s" : "Vous avez supprimé %2$s de %1$s", + "%3$s shared %1$s with %2$s" : "%3$s a partagé %1$s avec %2$s", + "%3$s removed %2$s from %1$s" : "%3$s a supprimé %2$s de %1$s", + "%2$s removed you from %1$s" : "%2$s vous a supprimé de %1$s" },"pluralForm" :"nplurals=2; plural=(n > 1);" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/hu_HU.js b/apps/files_sharing/l10n/hu_HU.js index debb82f3254..028837deba5 100644 --- a/apps/files_sharing/l10n/hu_HU.js +++ b/apps/files_sharing/l10n/hu_HU.js @@ -20,76 +20,42 @@ OC.L10N.register( "Sharing" : "Megosztás", "File shares" : "Fájl megosztások", "Downloaded via public link" : "Letöltve nyilvános hivatkozással", - "Downloaded by %1$s" : "Letöltötte: %1$s", "Downloaded by {email}" : "Letöltötte: {email}", - "%1$s downloaded via public link" : "%1$s letöltve nyilvános hibatkozással", "{file} downloaded via public link" : "{file} letöltve nyilvános hibatkozással", - "%1$s downloaded %2$s" : "%1$s letöltötte ezt: %2$s", "{email} downloaded {file}" : "{email} letöltötte ezt: {file}", - "Shared with group %1$s" : "Megosztva ezzel a csoporttal: %1$s", "Shared with group {group}" : "Megosztva ezzel a csoporttal: {group}", - "Removed share for group %1$s" : "%1$s csoport megosztása eltávolítva", "Removed share for group {group}" : "{group} csoport megosztása eltávolítva", - "%2$s shared with group %1$s" : "%2$s megosztva ezzel a csoporttal: %1$s", "{actor} shared with group {group}" : "{actor} megosztva ezzel a csoporttal: {group}", - "%2$s removed share for group %1$s" : "%2$s eltávolította %1$s csoport megosztását", "{actor} removed share for group {group}" : "{actor} eltávolította {group} csoport megosztását", - "You shared %1$s with group %2$s" : "Megosztottad ezt: %1$s ezzel a csoporttal: %2$s", "You shared {file} with group {group}" : "Megosztottad ezt: {file} ezzel a csoporttal: {group}", - "You removed group %2$s from %1$s" : "Eltávolítottad ezt csoportot: %2$s innen: %1$s", "You removed group {group} from {file}" : "Eltávolítottad ezt csoportot: {group} innen: {file}", - "%3$s shared %1$s with group %2$s" : "%3$s megosztotta ezt: %1$s, ezzel a csoporttal: %2$s", "{actor} shared {file} with group {group}" : "{actor} megosztotta ezt: {file} ezzel a csoporttal: {group}", - "%3$s removed group %2$s from %1$s" : "%3$s eltávolította ezt a csoportot: %2$s innen: %1$s", "{actor} removed group {group} from {file}" : "{actor} eltávolította ezt a csoportot {group} innen: {file}", "Shared as public link" : "Megosztva nyilvános hivatkozásként", "Removed public link" : "Eltávolított nyilvános hivatkozás", - "%1$s shared as public link" : "%1$s megosztva nyilvános hivatkozásként", + "Public link expired" : "Nyilvános hivatkozás lejárt", "{actor} shared as public link" : "{actor} megosztva nyilvános hivatkozásként", - "%1$s removed public link" : "%1$s eltávolított egy nyilvános hivatkozást", "{actor} removed public link" : "{actor} eltávolított egy nyilvános hivatkozást", - "You shared %1$s as public link" : "Nyilvános hivatkozáskánt megosztottad ezt: %1$s", "You shared {file} as public link" : "Nyilvános hivatkozáskánt megosztottad ezt: {file}", - "You removed public link for %1$s" : "Eltávolítottad %1$s nyilvános hivatkozását", "You removed public link for {file}" : "Eltávolítottad {file} nyilvános hivatkozását", - "%2$s shared %1$s as public link" : "%2$s nyilvános hivatkozásként megosztotta ezt: %1$s", "{actor} shared {file} as public link" : "{actor} nyilvános hivatkozásként megosztotta ezt: {file}", - "%2$s removed public link for %1$s" : "%2$s eltávolította %1$s nyilvános hivatkozását", "{actor} removed public link for {file}" : "{actor} eltávolította {file} nyilvános hivatkozását", - "%1$s accepted the remote share" : "%1$s elfogadta a távoli megosztást", "{user} accepted the remote share" : "{user} elfogadta a távoli megosztást", - "%1$s declined the remote share" : "%1$s visszautasította a távoli megosztást", "{user} declined the remote share" : "{user} visszautasította a távoli megosztást", - "You received a new remote share %1$s from %2$s" : "Egy új távoli megosztást kaptál ehhez: %1$s tőle: %2$s", "You received a new remote share {file} from {user}" : "Egy új távoli megosztást kaptál ehhez: {file} tőle: {user}", - "%2$s accepted the remote share of %1$s" : "%2$s elfogadta %1$s távoli megosztását", "{user} accepted the remote share of {file}" : "{user} elfogadta {file} távoli megosztását", - "%2$s declined the remote share of %1$s" : "%2$s visszautasította %1$s távoli megosztását", "{user} declined the remote share of {file}" : "{user} visszautasította {file} távoli megosztását", - "%2$s unshared %1$s from you" : "%2$s visszavonta tőled %1$s megosztását", "{user} unshared {file} from you" : "{user} visszavonta tőled {file} megosztását", - "Shared with %1$s" : "Megosztva vele: %1$s", "Shared with {user}" : "Megosztva vele: {user}", - "Removed share for %1$s" : "%1$s megosztása eltávolítva", "Removed share for {user}" : "{user} megosztása eltávolítva", - "%2$s shared with %1$s" : "%2$s megosztotta vele: %1$s", "{actor} shared with {user}" : "{actor} megosztotta vele: {user}", - "%2$s removed share for %1$s" : "%2$s eltávolította %1$s megosztását", "{actor} removed share for {user}" : "{actor} eltávolította {user} megosztását", - "Shared by %1$s" : "Megosztotta: %1$s", "Shared by {actor}" : "Megosztotta: {actor}", - "%1$s removed share" : "%1$s eltávolította a megosztást", "{actor} removed share" : "{actor} eltávolította a megosztást", - "You shared %1$s with %2$s" : "Megosztottad ezt: %1$s vele: %2$s", "You shared {file} with {user}" : "Megosztottad ezt: {file} vele: {user}", - "You removed %2$s from %1$s" : "Eltávolítottad ezt: %2$s tőle: %1$s", "You removed {user} from {file}" : "Eltávolítottad ezt: {user} tőle: {file}", - "%3$s shared %1$s with %2$s" : "%3$s megosztotta ezt: %1$s vele: %2$s", "{actor} removed {user} from {file}" : "{actor} eltávolította ezt: {user} innen: {file}", - "%3$s removed %2$s from %1$s" : "%3$s eltávolította ezt: %2$s innen: %1$s", - "%2$s shared %1$s with you" : "%2$s megosztotta velem ezt: %1$s", "{actor} shared {file} with you" : "{actor} megosztotta veled ezt: {file}", - "%2$s removed you from %1$s" : "%2$s eltívolított innen: %1$s", "{actor} removed you from {file}" : "{actor} eltávolított innen: {file}", "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Egy e-mailben vagy nyilvános hivatkozással megosztott fájl vagy mappa <strong>letöltve</strong>", "A file or folder was shared from <strong>another server</strong>" : "Egy fájl vagy mappa meg lett osztva egy <strong>másik szerverről</strong>", @@ -146,9 +112,11 @@ OC.L10N.register( "%1$s unshared %2$s from you" : "%1$s megosztás visszavonva %2$s által", "Public shared folder %1$s was downloaded" : "%1$s nyilvánosan megosztott mappa le lett töltve", "Public shared file %1$s was downloaded" : "Nyilvánosan megosztott fálj %1$s le lett töltve", + "You shared %1$s with %2$s" : "Megosztottad ezt: %1$s vele: %2$s", "%2$s shared %1$s with %3$s" : "%2$s megosztotta ezt: %1$s, ővele: %3$s", "You removed the share of %2$s for %1$s" : "Eltávolítottad %2$s következő megosztását: %1$s", "%2$s removed the share of %3$s for %1$s" : "%2$s eltávolította %3$s következő megosztását: %1$s", + "You shared %1$s with group %2$s" : "Megosztottad ezt: %1$s ezzel a csoporttal: %2$s", "%2$s shared %1$s with group %3$s" : "%2$s megosztotta ezt: %1$s, ezzel a csoporttal: %3$s", "You removed the share of group %2$s for %1$s" : "Eltávolítottad %2$s csoport %1$s megosztását", "%2$s removed the share of group %3$s for %1$s" : "%2$s eltávolította %3$s csoport %1$s megosztását", @@ -158,6 +126,7 @@ OC.L10N.register( "%2$s removed the public link for %1$s" : "%2$s eltávolította %1$s nyilvános hivatkozását", "Your public link for %1$s expired" : "%1$s nyilvános hivatkozásod lejárt", "The public link of %2$s for %1$s expired" : "%2$s %1$s nyilvános hivatkozása lejárt", + "%2$s shared %1$s with you" : "%2$s megosztotta velem ezt: %1$s", "%2$s removed the share for %1$s" : "%2$s eltávolította %1$s megosztását", "Shared with %2$s" : "Megosztva vele: %2$s", "Shared with %3$s by %2$s" : "Megosztva vele: %3$s, megosztó: %2$s", @@ -170,9 +139,40 @@ OC.L10N.register( "Shared via link by %2$s" : "Megosztva hivatkozással: %2$s", "Shared via public link" : "Megosztva nyilvános hivatkozással", "%2$s removed public link" : "%2$s eltávolított egy nyilvános hivatkozást", - "Public link expired" : "Nyilvános hivatkozás lejárt", "Public link of %2$s expired" : "%2$s nyilvános hivatkozása lejárt", "Shared by %2$s" : "Megosztó: %2$s", - "Shares" : "Megosztások" + "Shares" : "Megosztások", + "Downloaded by %1$s" : "Letöltötte: %1$s", + "%1$s downloaded via public link" : "%1$s letöltve nyilvános hibatkozással", + "%1$s downloaded %2$s" : "%1$s letöltötte ezt: %2$s", + "Shared with group %1$s" : "Megosztva ezzel a csoporttal: %1$s", + "Removed share for group %1$s" : "%1$s csoport megosztása eltávolítva", + "%2$s shared with group %1$s" : "%2$s megosztva ezzel a csoporttal: %1$s", + "%2$s removed share for group %1$s" : "%2$s eltávolította %1$s csoport megosztását", + "You removed group %2$s from %1$s" : "Eltávolítottad ezt csoportot: %2$s innen: %1$s", + "%3$s shared %1$s with group %2$s" : "%3$s megosztotta ezt: %1$s, ezzel a csoporttal: %2$s", + "%3$s removed group %2$s from %1$s" : "%3$s eltávolította ezt a csoportot: %2$s innen: %1$s", + "%1$s shared as public link" : "%1$s megosztva nyilvános hivatkozásként", + "%1$s removed public link" : "%1$s eltávolított egy nyilvános hivatkozást", + "You shared %1$s as public link" : "Nyilvános hivatkozáskánt megosztottad ezt: %1$s", + "You removed public link for %1$s" : "Eltávolítottad %1$s nyilvános hivatkozását", + "%2$s shared %1$s as public link" : "%2$s nyilvános hivatkozásként megosztotta ezt: %1$s", + "%2$s removed public link for %1$s" : "%2$s eltávolította %1$s nyilvános hivatkozását", + "%1$s accepted the remote share" : "%1$s elfogadta a távoli megosztást", + "%1$s declined the remote share" : "%1$s visszautasította a távoli megosztást", + "You received a new remote share %1$s from %2$s" : "Egy új távoli megosztást kaptál ehhez: %1$s tőle: %2$s", + "%2$s accepted the remote share of %1$s" : "%2$s elfogadta %1$s távoli megosztását", + "%2$s declined the remote share of %1$s" : "%2$s visszautasította %1$s távoli megosztását", + "%2$s unshared %1$s from you" : "%2$s visszavonta tőled %1$s megosztását", + "Shared with %1$s" : "Megosztva vele: %1$s", + "Removed share for %1$s" : "%1$s megosztása eltávolítva", + "%2$s shared with %1$s" : "%2$s megosztotta vele: %1$s", + "%2$s removed share for %1$s" : "%2$s eltávolította %1$s megosztását", + "Shared by %1$s" : "Megosztotta: %1$s", + "%1$s removed share" : "%1$s eltávolította a megosztást", + "You removed %2$s from %1$s" : "Eltávolítottad ezt: %2$s tőle: %1$s", + "%3$s shared %1$s with %2$s" : "%3$s megosztotta ezt: %1$s vele: %2$s", + "%3$s removed %2$s from %1$s" : "%3$s eltávolította ezt: %2$s innen: %1$s", + "%2$s removed you from %1$s" : "%2$s eltívolított innen: %1$s" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/hu_HU.json b/apps/files_sharing/l10n/hu_HU.json index 75ec4969e69..650d631e365 100644 --- a/apps/files_sharing/l10n/hu_HU.json +++ b/apps/files_sharing/l10n/hu_HU.json @@ -18,76 +18,42 @@ "Sharing" : "Megosztás", "File shares" : "Fájl megosztások", "Downloaded via public link" : "Letöltve nyilvános hivatkozással", - "Downloaded by %1$s" : "Letöltötte: %1$s", "Downloaded by {email}" : "Letöltötte: {email}", - "%1$s downloaded via public link" : "%1$s letöltve nyilvános hibatkozással", "{file} downloaded via public link" : "{file} letöltve nyilvános hibatkozással", - "%1$s downloaded %2$s" : "%1$s letöltötte ezt: %2$s", "{email} downloaded {file}" : "{email} letöltötte ezt: {file}", - "Shared with group %1$s" : "Megosztva ezzel a csoporttal: %1$s", "Shared with group {group}" : "Megosztva ezzel a csoporttal: {group}", - "Removed share for group %1$s" : "%1$s csoport megosztása eltávolítva", "Removed share for group {group}" : "{group} csoport megosztása eltávolítva", - "%2$s shared with group %1$s" : "%2$s megosztva ezzel a csoporttal: %1$s", "{actor} shared with group {group}" : "{actor} megosztva ezzel a csoporttal: {group}", - "%2$s removed share for group %1$s" : "%2$s eltávolította %1$s csoport megosztását", "{actor} removed share for group {group}" : "{actor} eltávolította {group} csoport megosztását", - "You shared %1$s with group %2$s" : "Megosztottad ezt: %1$s ezzel a csoporttal: %2$s", "You shared {file} with group {group}" : "Megosztottad ezt: {file} ezzel a csoporttal: {group}", - "You removed group %2$s from %1$s" : "Eltávolítottad ezt csoportot: %2$s innen: %1$s", "You removed group {group} from {file}" : "Eltávolítottad ezt csoportot: {group} innen: {file}", - "%3$s shared %1$s with group %2$s" : "%3$s megosztotta ezt: %1$s, ezzel a csoporttal: %2$s", "{actor} shared {file} with group {group}" : "{actor} megosztotta ezt: {file} ezzel a csoporttal: {group}", - "%3$s removed group %2$s from %1$s" : "%3$s eltávolította ezt a csoportot: %2$s innen: %1$s", "{actor} removed group {group} from {file}" : "{actor} eltávolította ezt a csoportot {group} innen: {file}", "Shared as public link" : "Megosztva nyilvános hivatkozásként", "Removed public link" : "Eltávolított nyilvános hivatkozás", - "%1$s shared as public link" : "%1$s megosztva nyilvános hivatkozásként", + "Public link expired" : "Nyilvános hivatkozás lejárt", "{actor} shared as public link" : "{actor} megosztva nyilvános hivatkozásként", - "%1$s removed public link" : "%1$s eltávolított egy nyilvános hivatkozást", "{actor} removed public link" : "{actor} eltávolított egy nyilvános hivatkozást", - "You shared %1$s as public link" : "Nyilvános hivatkozáskánt megosztottad ezt: %1$s", "You shared {file} as public link" : "Nyilvános hivatkozáskánt megosztottad ezt: {file}", - "You removed public link for %1$s" : "Eltávolítottad %1$s nyilvános hivatkozását", "You removed public link for {file}" : "Eltávolítottad {file} nyilvános hivatkozását", - "%2$s shared %1$s as public link" : "%2$s nyilvános hivatkozásként megosztotta ezt: %1$s", "{actor} shared {file} as public link" : "{actor} nyilvános hivatkozásként megosztotta ezt: {file}", - "%2$s removed public link for %1$s" : "%2$s eltávolította %1$s nyilvános hivatkozását", "{actor} removed public link for {file}" : "{actor} eltávolította {file} nyilvános hivatkozását", - "%1$s accepted the remote share" : "%1$s elfogadta a távoli megosztást", "{user} accepted the remote share" : "{user} elfogadta a távoli megosztást", - "%1$s declined the remote share" : "%1$s visszautasította a távoli megosztást", "{user} declined the remote share" : "{user} visszautasította a távoli megosztást", - "You received a new remote share %1$s from %2$s" : "Egy új távoli megosztást kaptál ehhez: %1$s tőle: %2$s", "You received a new remote share {file} from {user}" : "Egy új távoli megosztást kaptál ehhez: {file} tőle: {user}", - "%2$s accepted the remote share of %1$s" : "%2$s elfogadta %1$s távoli megosztását", "{user} accepted the remote share of {file}" : "{user} elfogadta {file} távoli megosztását", - "%2$s declined the remote share of %1$s" : "%2$s visszautasította %1$s távoli megosztását", "{user} declined the remote share of {file}" : "{user} visszautasította {file} távoli megosztását", - "%2$s unshared %1$s from you" : "%2$s visszavonta tőled %1$s megosztását", "{user} unshared {file} from you" : "{user} visszavonta tőled {file} megosztását", - "Shared with %1$s" : "Megosztva vele: %1$s", "Shared with {user}" : "Megosztva vele: {user}", - "Removed share for %1$s" : "%1$s megosztása eltávolítva", "Removed share for {user}" : "{user} megosztása eltávolítva", - "%2$s shared with %1$s" : "%2$s megosztotta vele: %1$s", "{actor} shared with {user}" : "{actor} megosztotta vele: {user}", - "%2$s removed share for %1$s" : "%2$s eltávolította %1$s megosztását", "{actor} removed share for {user}" : "{actor} eltávolította {user} megosztását", - "Shared by %1$s" : "Megosztotta: %1$s", "Shared by {actor}" : "Megosztotta: {actor}", - "%1$s removed share" : "%1$s eltávolította a megosztást", "{actor} removed share" : "{actor} eltávolította a megosztást", - "You shared %1$s with %2$s" : "Megosztottad ezt: %1$s vele: %2$s", "You shared {file} with {user}" : "Megosztottad ezt: {file} vele: {user}", - "You removed %2$s from %1$s" : "Eltávolítottad ezt: %2$s tőle: %1$s", "You removed {user} from {file}" : "Eltávolítottad ezt: {user} tőle: {file}", - "%3$s shared %1$s with %2$s" : "%3$s megosztotta ezt: %1$s vele: %2$s", "{actor} removed {user} from {file}" : "{actor} eltávolította ezt: {user} innen: {file}", - "%3$s removed %2$s from %1$s" : "%3$s eltávolította ezt: %2$s innen: %1$s", - "%2$s shared %1$s with you" : "%2$s megosztotta velem ezt: %1$s", "{actor} shared {file} with you" : "{actor} megosztotta veled ezt: {file}", - "%2$s removed you from %1$s" : "%2$s eltívolított innen: %1$s", "{actor} removed you from {file}" : "{actor} eltávolított innen: {file}", "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Egy e-mailben vagy nyilvános hivatkozással megosztott fájl vagy mappa <strong>letöltve</strong>", "A file or folder was shared from <strong>another server</strong>" : "Egy fájl vagy mappa meg lett osztva egy <strong>másik szerverről</strong>", @@ -144,9 +110,11 @@ "%1$s unshared %2$s from you" : "%1$s megosztás visszavonva %2$s által", "Public shared folder %1$s was downloaded" : "%1$s nyilvánosan megosztott mappa le lett töltve", "Public shared file %1$s was downloaded" : "Nyilvánosan megosztott fálj %1$s le lett töltve", + "You shared %1$s with %2$s" : "Megosztottad ezt: %1$s vele: %2$s", "%2$s shared %1$s with %3$s" : "%2$s megosztotta ezt: %1$s, ővele: %3$s", "You removed the share of %2$s for %1$s" : "Eltávolítottad %2$s következő megosztását: %1$s", "%2$s removed the share of %3$s for %1$s" : "%2$s eltávolította %3$s következő megosztását: %1$s", + "You shared %1$s with group %2$s" : "Megosztottad ezt: %1$s ezzel a csoporttal: %2$s", "%2$s shared %1$s with group %3$s" : "%2$s megosztotta ezt: %1$s, ezzel a csoporttal: %3$s", "You removed the share of group %2$s for %1$s" : "Eltávolítottad %2$s csoport %1$s megosztását", "%2$s removed the share of group %3$s for %1$s" : "%2$s eltávolította %3$s csoport %1$s megosztását", @@ -156,6 +124,7 @@ "%2$s removed the public link for %1$s" : "%2$s eltávolította %1$s nyilvános hivatkozását", "Your public link for %1$s expired" : "%1$s nyilvános hivatkozásod lejárt", "The public link of %2$s for %1$s expired" : "%2$s %1$s nyilvános hivatkozása lejárt", + "%2$s shared %1$s with you" : "%2$s megosztotta velem ezt: %1$s", "%2$s removed the share for %1$s" : "%2$s eltávolította %1$s megosztását", "Shared with %2$s" : "Megosztva vele: %2$s", "Shared with %3$s by %2$s" : "Megosztva vele: %3$s, megosztó: %2$s", @@ -168,9 +137,40 @@ "Shared via link by %2$s" : "Megosztva hivatkozással: %2$s", "Shared via public link" : "Megosztva nyilvános hivatkozással", "%2$s removed public link" : "%2$s eltávolított egy nyilvános hivatkozást", - "Public link expired" : "Nyilvános hivatkozás lejárt", "Public link of %2$s expired" : "%2$s nyilvános hivatkozása lejárt", "Shared by %2$s" : "Megosztó: %2$s", - "Shares" : "Megosztások" + "Shares" : "Megosztások", + "Downloaded by %1$s" : "Letöltötte: %1$s", + "%1$s downloaded via public link" : "%1$s letöltve nyilvános hibatkozással", + "%1$s downloaded %2$s" : "%1$s letöltötte ezt: %2$s", + "Shared with group %1$s" : "Megosztva ezzel a csoporttal: %1$s", + "Removed share for group %1$s" : "%1$s csoport megosztása eltávolítva", + "%2$s shared with group %1$s" : "%2$s megosztva ezzel a csoporttal: %1$s", + "%2$s removed share for group %1$s" : "%2$s eltávolította %1$s csoport megosztását", + "You removed group %2$s from %1$s" : "Eltávolítottad ezt csoportot: %2$s innen: %1$s", + "%3$s shared %1$s with group %2$s" : "%3$s megosztotta ezt: %1$s, ezzel a csoporttal: %2$s", + "%3$s removed group %2$s from %1$s" : "%3$s eltávolította ezt a csoportot: %2$s innen: %1$s", + "%1$s shared as public link" : "%1$s megosztva nyilvános hivatkozásként", + "%1$s removed public link" : "%1$s eltávolított egy nyilvános hivatkozást", + "You shared %1$s as public link" : "Nyilvános hivatkozáskánt megosztottad ezt: %1$s", + "You removed public link for %1$s" : "Eltávolítottad %1$s nyilvános hivatkozását", + "%2$s shared %1$s as public link" : "%2$s nyilvános hivatkozásként megosztotta ezt: %1$s", + "%2$s removed public link for %1$s" : "%2$s eltávolította %1$s nyilvános hivatkozását", + "%1$s accepted the remote share" : "%1$s elfogadta a távoli megosztást", + "%1$s declined the remote share" : "%1$s visszautasította a távoli megosztást", + "You received a new remote share %1$s from %2$s" : "Egy új távoli megosztást kaptál ehhez: %1$s tőle: %2$s", + "%2$s accepted the remote share of %1$s" : "%2$s elfogadta %1$s távoli megosztását", + "%2$s declined the remote share of %1$s" : "%2$s visszautasította %1$s távoli megosztását", + "%2$s unshared %1$s from you" : "%2$s visszavonta tőled %1$s megosztását", + "Shared with %1$s" : "Megosztva vele: %1$s", + "Removed share for %1$s" : "%1$s megosztása eltávolítva", + "%2$s shared with %1$s" : "%2$s megosztotta vele: %1$s", + "%2$s removed share for %1$s" : "%2$s eltávolította %1$s megosztását", + "Shared by %1$s" : "Megosztotta: %1$s", + "%1$s removed share" : "%1$s eltávolította a megosztást", + "You removed %2$s from %1$s" : "Eltávolítottad ezt: %2$s tőle: %1$s", + "%3$s shared %1$s with %2$s" : "%3$s megosztotta ezt: %1$s vele: %2$s", + "%3$s removed %2$s from %1$s" : "%3$s eltávolította ezt: %2$s innen: %1$s", + "%2$s removed you from %1$s" : "%2$s eltívolított innen: %1$s" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/it.js b/apps/files_sharing/l10n/it.js index b216a0ccacc..3b8d4e47d94 100644 --- a/apps/files_sharing/l10n/it.js +++ b/apps/files_sharing/l10n/it.js @@ -20,76 +20,42 @@ OC.L10N.register( "Sharing" : "Condivisione", "File shares" : "Condivisioni dei file", "Downloaded via public link" : "Scaricata tramite collegamento pubblico", - "Downloaded by %1$s" : "Scaricato da %1$s", "Downloaded by {email}" : "Scaricato da {email}", - "%1$s downloaded via public link" : "%1$s scaricato tramite collegamento pubblico", "{file} downloaded via public link" : "{file} scaricato tramite collegamento pubblico", - "%1$s downloaded %2$s" : "%1$s ha scaricato %2$s", "{email} downloaded {file}" : "{email} ha scaricato {file}", - "Shared with group %1$s" : "Condivisa con il gruppo %1$s", "Shared with group {group}" : "Condivisa con il gruppo {group}", - "Removed share for group %1$s" : "Condivisione rimossa per %1$s", "Removed share for group {group}" : "Condivisione rimossa per il gruppo {group}", - "%2$s shared with group %1$s" : "%2$s ha condiviso con il gruppo %1$s", "{actor} shared with group {group}" : "{actor} ha condiviso con il gruppo {group}", - "%2$s removed share for group %1$s" : "%2$s ha rimosso la condivisione del gruppo %1$s", "{actor} removed share for group {group}" : "{actor} ha rimosso la condivisione del gruppo {group}", - "You shared %1$s with group %2$s" : "Hai condiviso %1$s con il gruppo %2$s", "You shared {file} with group {group}" : "Hai condiviso {file} con il gruppo {group}", - "You removed group %2$s from %1$s" : "Hai rimosso il gruppo %2$s da %1$s", "You removed group {group} from {file}" : "Hai rimosso il gruppo {group} da {file}", - "%3$s shared %1$s with group %2$s" : "%3$s ha condiviso %1$s con il gruppo %2$s", "{actor} shared {file} with group {group}" : "{actor} ha condiviso {file} con il gruppo {group}", - "%3$s removed group %2$s from %1$s" : "%3$s ha rimosso il gruppo %2$s da %1$s", "{actor} removed group {group} from {file}" : "{actor} ha ti rimosso il gruppo {group} da {file}", "Shared as public link" : "Condivisa tramite collegamento pubblico", "Removed public link" : "Collegamento pubblico rimosso", - "%1$s shared as public link" : "%1$s condivisa tramite collegamento pubblico", + "Public link expired" : "Collegamento pubblico scaduto", "{actor} shared as public link" : "{actor} ha condiviso tramite collegamento pubblico", - "%1$s removed public link" : "%1$s ha rimosso il collegamento pubblico", "{actor} removed public link" : "{actor} ha rimosso il collegamento pubblico", - "You shared %1$s as public link" : "Hai condiviso %1$s tramite collegamento", "You shared {file} as public link" : "Hai condiviso {file} tramite collegamento", - "You removed public link for %1$s" : "Hai rimosso il collegamento pubblico per %1$s", "You removed public link for {file}" : "Hai rimosso il collegamento pubblico per {file}", - "%2$s shared %1$s as public link" : "%2$s ha condiviso %1$s tramite collegamento pubblico", "{actor} shared {file} as public link" : "{actor} ha condiviso {file} tramite collegamento pubblico", - "%2$s removed public link for %1$s" : "%2$s ha rimosso il collegamento pubblico per %1$s", "{actor} removed public link for {file}" : "{actor} ha rimosso il collegamento pubblico per {file}", - "%1$s accepted the remote share" : "%1$s ha accettato la condivisione remota", "{user} accepted the remote share" : "{user} ha accettato la condivisione remota", - "%1$s declined the remote share" : "%1$s ha rifiutato la condivisione remota", "{user} declined the remote share" : "{user} ha rifiutato la condivisione remota", - "You received a new remote share %1$s from %2$s" : "Hai ricevuto una nuova condivisione remota %1$s da %2$s", "You received a new remote share {file} from {user}" : "Hai ricevuto una nuova condivisione remota {file} da {user}", - "%2$s accepted the remote share of %1$s" : "%2$s ha accettato la condivisione remota di %1$s", "{user} accepted the remote share of {file}" : "{user} ha accettato la condivisione remota di {file}", - "%2$s declined the remote share of %1$s" : "%2$s ha rifiutato la condivisione remota %1$s", "{user} declined the remote share of {file}" : "{user} ha rifiutato la condivisione remota di {file}", - "%2$s unshared %1$s from you" : "%2$s ha rimosso la condivisione %1$s con te", "{user} unshared {file} from you" : "{user} ha rimosso la condivisione {file} con te", - "Shared with %1$s" : "Condivisa con %1$s", "Shared with {user}" : "Condivisa con {user}", - "Removed share for %1$s" : "Condivisione rimossa per %1$s", "Removed share for {user}" : "Condivisione rimossa per {user}", - "%2$s shared with %1$s" : "%2$s condivisa con %1$s", "{actor} shared with {user}" : "{actor} ha condiviso con {user}", - "%2$s removed share for %1$s" : "%2$s ha rimosso la condivisione per %1$s", "{actor} removed share for {user}" : "{actor} ha rimosso la condivisione con {user}", - "Shared by %1$s" : "Condivisa da %1$s", "Shared by {actor}" : "Condiviso da {actor}", - "%1$s removed share" : "%1$s ha rimosso la condivisione", "{actor} removed share" : "{actor} ha rimosso la condivisione", - "You shared %1$s with %2$s" : "Hai condiviso %1$s con %2$s", "You shared {file} with {user}" : "Hai condiviso {file} con {user}", - "You removed %2$s from %1$s" : "Hai rimosso %2$s da %1$s", "You removed {user} from {file}" : "Hai rimosso {user} da {file}", - "%3$s shared %1$s with %2$s" : "%3$s ha condiviso %1$s con %2$s", "{actor} removed {user} from {file}" : "{actor} ha rimosso {user} da {file}", - "%3$s removed %2$s from %1$s" : "%3$s ha rimosso %2$s da %1$s", - "%2$s shared %1$s with you" : "%2$s ha condiviso %1$s con te", "{actor} shared {file} with you" : "{actor} ha condiviso {file} con te", - "%2$s removed you from %1$s" : "%2$s ti ha rimosso da %1$s", "{actor} removed you from {file}" : "{actor} ha ti rimosso da {file}", "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un file o una cartella condiviso via posta elettronica o collegamento pubblico è stato <strong>scaricato</strong>", "A file or folder was shared from <strong>another server</strong>" : "Un file o una cartella è stato condiviso da <strong>un altro server</strong>", @@ -146,9 +112,11 @@ OC.L10N.register( "%1$s unshared %2$s from you" : "%1$s ha rimosso la condivisione %2$s con te", "Public shared folder %1$s was downloaded" : "La cartella condivisa pubblicamente %1$s è stata scaricata", "Public shared file %1$s was downloaded" : "Il file condiviso pubblicamente %1$s è stato scaricato", + "You shared %1$s with %2$s" : "Hai condiviso %1$s con %2$s", "%2$s shared %1$s with %3$s" : "%2$s ha condiviso %1$s con %3$s", "You removed the share of %2$s for %1$s" : "Hai rimosso la condivisione di %2$s per %1$s", "%2$s removed the share of %3$s for %1$s" : "%2$s ha rimosso la condivisione di %3$s per %1$s", + "You shared %1$s with group %2$s" : "Hai condiviso %1$s con il gruppo %2$s", "%2$s shared %1$s with group %3$s" : "%2$s ha condiviso %1$s con il gruppo %3$s", "You removed the share of group %2$s for %1$s" : "Hai rimosso la condivisione del gruppo %2$s per %1$s", "%2$s removed the share of group %3$s for %1$s" : "%2$s ha rimosso la condivisione del gruppo %3$s per %1$s", @@ -158,6 +126,7 @@ OC.L10N.register( "%2$s removed the public link for %1$s" : "%2$s ha rimosso il collegamento pubblico per %1$s", "Your public link for %1$s expired" : "il tuo collegamento pubblico per %1$s è scaduto", "The public link of %2$s for %1$s expired" : "il collegamento pubblico di %2$s per %1$s è scaduto", + "%2$s shared %1$s with you" : "%2$s ha condiviso %1$s con te", "%2$s removed the share for %1$s" : "%2$s ha rimosso la condivisione per %1$s", "Shared with %2$s" : "Condivisa con %2$s", "Shared with %3$s by %2$s" : "Condivisa con %3$s da %2$s", @@ -170,9 +139,40 @@ OC.L10N.register( "Shared via link by %2$s" : "Condivisa tramite collegamento da %2$s", "Shared via public link" : "Condivisa tramite collegamento pubblico", "%2$s removed public link" : "%2$s ha rimosso il collegamento pubblico", - "Public link expired" : "Collegamento pubblico scaduto", "Public link of %2$s expired" : "il collegamento pubblico di %2$s è scaduto", "Shared by %2$s" : "Condivisa da %2$s", - "Shares" : "Condivisioni" + "Shares" : "Condivisioni", + "Downloaded by %1$s" : "Scaricato da %1$s", + "%1$s downloaded via public link" : "%1$s scaricato tramite collegamento pubblico", + "%1$s downloaded %2$s" : "%1$s ha scaricato %2$s", + "Shared with group %1$s" : "Condivisa con il gruppo %1$s", + "Removed share for group %1$s" : "Condivisione rimossa per %1$s", + "%2$s shared with group %1$s" : "%2$s ha condiviso con il gruppo %1$s", + "%2$s removed share for group %1$s" : "%2$s ha rimosso la condivisione del gruppo %1$s", + "You removed group %2$s from %1$s" : "Hai rimosso il gruppo %2$s da %1$s", + "%3$s shared %1$s with group %2$s" : "%3$s ha condiviso %1$s con il gruppo %2$s", + "%3$s removed group %2$s from %1$s" : "%3$s ha rimosso il gruppo %2$s da %1$s", + "%1$s shared as public link" : "%1$s condivisa tramite collegamento pubblico", + "%1$s removed public link" : "%1$s ha rimosso il collegamento pubblico", + "You shared %1$s as public link" : "Hai condiviso %1$s tramite collegamento", + "You removed public link for %1$s" : "Hai rimosso il collegamento pubblico per %1$s", + "%2$s shared %1$s as public link" : "%2$s ha condiviso %1$s tramite collegamento pubblico", + "%2$s removed public link for %1$s" : "%2$s ha rimosso il collegamento pubblico per %1$s", + "%1$s accepted the remote share" : "%1$s ha accettato la condivisione remota", + "%1$s declined the remote share" : "%1$s ha rifiutato la condivisione remota", + "You received a new remote share %1$s from %2$s" : "Hai ricevuto una nuova condivisione remota %1$s da %2$s", + "%2$s accepted the remote share of %1$s" : "%2$s ha accettato la condivisione remota di %1$s", + "%2$s declined the remote share of %1$s" : "%2$s ha rifiutato la condivisione remota %1$s", + "%2$s unshared %1$s from you" : "%2$s ha rimosso la condivisione %1$s con te", + "Shared with %1$s" : "Condivisa con %1$s", + "Removed share for %1$s" : "Condivisione rimossa per %1$s", + "%2$s shared with %1$s" : "%2$s condivisa con %1$s", + "%2$s removed share for %1$s" : "%2$s ha rimosso la condivisione per %1$s", + "Shared by %1$s" : "Condivisa da %1$s", + "%1$s removed share" : "%1$s ha rimosso la condivisione", + "You removed %2$s from %1$s" : "Hai rimosso %2$s da %1$s", + "%3$s shared %1$s with %2$s" : "%3$s ha condiviso %1$s con %2$s", + "%3$s removed %2$s from %1$s" : "%3$s ha rimosso %2$s da %1$s", + "%2$s removed you from %1$s" : "%2$s ti ha rimosso da %1$s" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/it.json b/apps/files_sharing/l10n/it.json index dc2f25f1676..b1243cb8a77 100644 --- a/apps/files_sharing/l10n/it.json +++ b/apps/files_sharing/l10n/it.json @@ -18,76 +18,42 @@ "Sharing" : "Condivisione", "File shares" : "Condivisioni dei file", "Downloaded via public link" : "Scaricata tramite collegamento pubblico", - "Downloaded by %1$s" : "Scaricato da %1$s", "Downloaded by {email}" : "Scaricato da {email}", - "%1$s downloaded via public link" : "%1$s scaricato tramite collegamento pubblico", "{file} downloaded via public link" : "{file} scaricato tramite collegamento pubblico", - "%1$s downloaded %2$s" : "%1$s ha scaricato %2$s", "{email} downloaded {file}" : "{email} ha scaricato {file}", - "Shared with group %1$s" : "Condivisa con il gruppo %1$s", "Shared with group {group}" : "Condivisa con il gruppo {group}", - "Removed share for group %1$s" : "Condivisione rimossa per %1$s", "Removed share for group {group}" : "Condivisione rimossa per il gruppo {group}", - "%2$s shared with group %1$s" : "%2$s ha condiviso con il gruppo %1$s", "{actor} shared with group {group}" : "{actor} ha condiviso con il gruppo {group}", - "%2$s removed share for group %1$s" : "%2$s ha rimosso la condivisione del gruppo %1$s", "{actor} removed share for group {group}" : "{actor} ha rimosso la condivisione del gruppo {group}", - "You shared %1$s with group %2$s" : "Hai condiviso %1$s con il gruppo %2$s", "You shared {file} with group {group}" : "Hai condiviso {file} con il gruppo {group}", - "You removed group %2$s from %1$s" : "Hai rimosso il gruppo %2$s da %1$s", "You removed group {group} from {file}" : "Hai rimosso il gruppo {group} da {file}", - "%3$s shared %1$s with group %2$s" : "%3$s ha condiviso %1$s con il gruppo %2$s", "{actor} shared {file} with group {group}" : "{actor} ha condiviso {file} con il gruppo {group}", - "%3$s removed group %2$s from %1$s" : "%3$s ha rimosso il gruppo %2$s da %1$s", "{actor} removed group {group} from {file}" : "{actor} ha ti rimosso il gruppo {group} da {file}", "Shared as public link" : "Condivisa tramite collegamento pubblico", "Removed public link" : "Collegamento pubblico rimosso", - "%1$s shared as public link" : "%1$s condivisa tramite collegamento pubblico", + "Public link expired" : "Collegamento pubblico scaduto", "{actor} shared as public link" : "{actor} ha condiviso tramite collegamento pubblico", - "%1$s removed public link" : "%1$s ha rimosso il collegamento pubblico", "{actor} removed public link" : "{actor} ha rimosso il collegamento pubblico", - "You shared %1$s as public link" : "Hai condiviso %1$s tramite collegamento", "You shared {file} as public link" : "Hai condiviso {file} tramite collegamento", - "You removed public link for %1$s" : "Hai rimosso il collegamento pubblico per %1$s", "You removed public link for {file}" : "Hai rimosso il collegamento pubblico per {file}", - "%2$s shared %1$s as public link" : "%2$s ha condiviso %1$s tramite collegamento pubblico", "{actor} shared {file} as public link" : "{actor} ha condiviso {file} tramite collegamento pubblico", - "%2$s removed public link for %1$s" : "%2$s ha rimosso il collegamento pubblico per %1$s", "{actor} removed public link for {file}" : "{actor} ha rimosso il collegamento pubblico per {file}", - "%1$s accepted the remote share" : "%1$s ha accettato la condivisione remota", "{user} accepted the remote share" : "{user} ha accettato la condivisione remota", - "%1$s declined the remote share" : "%1$s ha rifiutato la condivisione remota", "{user} declined the remote share" : "{user} ha rifiutato la condivisione remota", - "You received a new remote share %1$s from %2$s" : "Hai ricevuto una nuova condivisione remota %1$s da %2$s", "You received a new remote share {file} from {user}" : "Hai ricevuto una nuova condivisione remota {file} da {user}", - "%2$s accepted the remote share of %1$s" : "%2$s ha accettato la condivisione remota di %1$s", "{user} accepted the remote share of {file}" : "{user} ha accettato la condivisione remota di {file}", - "%2$s declined the remote share of %1$s" : "%2$s ha rifiutato la condivisione remota %1$s", "{user} declined the remote share of {file}" : "{user} ha rifiutato la condivisione remota di {file}", - "%2$s unshared %1$s from you" : "%2$s ha rimosso la condivisione %1$s con te", "{user} unshared {file} from you" : "{user} ha rimosso la condivisione {file} con te", - "Shared with %1$s" : "Condivisa con %1$s", "Shared with {user}" : "Condivisa con {user}", - "Removed share for %1$s" : "Condivisione rimossa per %1$s", "Removed share for {user}" : "Condivisione rimossa per {user}", - "%2$s shared with %1$s" : "%2$s condivisa con %1$s", "{actor} shared with {user}" : "{actor} ha condiviso con {user}", - "%2$s removed share for %1$s" : "%2$s ha rimosso la condivisione per %1$s", "{actor} removed share for {user}" : "{actor} ha rimosso la condivisione con {user}", - "Shared by %1$s" : "Condivisa da %1$s", "Shared by {actor}" : "Condiviso da {actor}", - "%1$s removed share" : "%1$s ha rimosso la condivisione", "{actor} removed share" : "{actor} ha rimosso la condivisione", - "You shared %1$s with %2$s" : "Hai condiviso %1$s con %2$s", "You shared {file} with {user}" : "Hai condiviso {file} con {user}", - "You removed %2$s from %1$s" : "Hai rimosso %2$s da %1$s", "You removed {user} from {file}" : "Hai rimosso {user} da {file}", - "%3$s shared %1$s with %2$s" : "%3$s ha condiviso %1$s con %2$s", "{actor} removed {user} from {file}" : "{actor} ha rimosso {user} da {file}", - "%3$s removed %2$s from %1$s" : "%3$s ha rimosso %2$s da %1$s", - "%2$s shared %1$s with you" : "%2$s ha condiviso %1$s con te", "{actor} shared {file} with you" : "{actor} ha condiviso {file} con te", - "%2$s removed you from %1$s" : "%2$s ti ha rimosso da %1$s", "{actor} removed you from {file}" : "{actor} ha ti rimosso da {file}", "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un file o una cartella condiviso via posta elettronica o collegamento pubblico è stato <strong>scaricato</strong>", "A file or folder was shared from <strong>another server</strong>" : "Un file o una cartella è stato condiviso da <strong>un altro server</strong>", @@ -144,9 +110,11 @@ "%1$s unshared %2$s from you" : "%1$s ha rimosso la condivisione %2$s con te", "Public shared folder %1$s was downloaded" : "La cartella condivisa pubblicamente %1$s è stata scaricata", "Public shared file %1$s was downloaded" : "Il file condiviso pubblicamente %1$s è stato scaricato", + "You shared %1$s with %2$s" : "Hai condiviso %1$s con %2$s", "%2$s shared %1$s with %3$s" : "%2$s ha condiviso %1$s con %3$s", "You removed the share of %2$s for %1$s" : "Hai rimosso la condivisione di %2$s per %1$s", "%2$s removed the share of %3$s for %1$s" : "%2$s ha rimosso la condivisione di %3$s per %1$s", + "You shared %1$s with group %2$s" : "Hai condiviso %1$s con il gruppo %2$s", "%2$s shared %1$s with group %3$s" : "%2$s ha condiviso %1$s con il gruppo %3$s", "You removed the share of group %2$s for %1$s" : "Hai rimosso la condivisione del gruppo %2$s per %1$s", "%2$s removed the share of group %3$s for %1$s" : "%2$s ha rimosso la condivisione del gruppo %3$s per %1$s", @@ -156,6 +124,7 @@ "%2$s removed the public link for %1$s" : "%2$s ha rimosso il collegamento pubblico per %1$s", "Your public link for %1$s expired" : "il tuo collegamento pubblico per %1$s è scaduto", "The public link of %2$s for %1$s expired" : "il collegamento pubblico di %2$s per %1$s è scaduto", + "%2$s shared %1$s with you" : "%2$s ha condiviso %1$s con te", "%2$s removed the share for %1$s" : "%2$s ha rimosso la condivisione per %1$s", "Shared with %2$s" : "Condivisa con %2$s", "Shared with %3$s by %2$s" : "Condivisa con %3$s da %2$s", @@ -168,9 +137,40 @@ "Shared via link by %2$s" : "Condivisa tramite collegamento da %2$s", "Shared via public link" : "Condivisa tramite collegamento pubblico", "%2$s removed public link" : "%2$s ha rimosso il collegamento pubblico", - "Public link expired" : "Collegamento pubblico scaduto", "Public link of %2$s expired" : "il collegamento pubblico di %2$s è scaduto", "Shared by %2$s" : "Condivisa da %2$s", - "Shares" : "Condivisioni" + "Shares" : "Condivisioni", + "Downloaded by %1$s" : "Scaricato da %1$s", + "%1$s downloaded via public link" : "%1$s scaricato tramite collegamento pubblico", + "%1$s downloaded %2$s" : "%1$s ha scaricato %2$s", + "Shared with group %1$s" : "Condivisa con il gruppo %1$s", + "Removed share for group %1$s" : "Condivisione rimossa per %1$s", + "%2$s shared with group %1$s" : "%2$s ha condiviso con il gruppo %1$s", + "%2$s removed share for group %1$s" : "%2$s ha rimosso la condivisione del gruppo %1$s", + "You removed group %2$s from %1$s" : "Hai rimosso il gruppo %2$s da %1$s", + "%3$s shared %1$s with group %2$s" : "%3$s ha condiviso %1$s con il gruppo %2$s", + "%3$s removed group %2$s from %1$s" : "%3$s ha rimosso il gruppo %2$s da %1$s", + "%1$s shared as public link" : "%1$s condivisa tramite collegamento pubblico", + "%1$s removed public link" : "%1$s ha rimosso il collegamento pubblico", + "You shared %1$s as public link" : "Hai condiviso %1$s tramite collegamento", + "You removed public link for %1$s" : "Hai rimosso il collegamento pubblico per %1$s", + "%2$s shared %1$s as public link" : "%2$s ha condiviso %1$s tramite collegamento pubblico", + "%2$s removed public link for %1$s" : "%2$s ha rimosso il collegamento pubblico per %1$s", + "%1$s accepted the remote share" : "%1$s ha accettato la condivisione remota", + "%1$s declined the remote share" : "%1$s ha rifiutato la condivisione remota", + "You received a new remote share %1$s from %2$s" : "Hai ricevuto una nuova condivisione remota %1$s da %2$s", + "%2$s accepted the remote share of %1$s" : "%2$s ha accettato la condivisione remota di %1$s", + "%2$s declined the remote share of %1$s" : "%2$s ha rifiutato la condivisione remota %1$s", + "%2$s unshared %1$s from you" : "%2$s ha rimosso la condivisione %1$s con te", + "Shared with %1$s" : "Condivisa con %1$s", + "Removed share for %1$s" : "Condivisione rimossa per %1$s", + "%2$s shared with %1$s" : "%2$s condivisa con %1$s", + "%2$s removed share for %1$s" : "%2$s ha rimosso la condivisione per %1$s", + "Shared by %1$s" : "Condivisa da %1$s", + "%1$s removed share" : "%1$s ha rimosso la condivisione", + "You removed %2$s from %1$s" : "Hai rimosso %2$s da %1$s", + "%3$s shared %1$s with %2$s" : "%3$s ha condiviso %1$s con %2$s", + "%3$s removed %2$s from %1$s" : "%3$s ha rimosso %2$s da %1$s", + "%2$s removed you from %1$s" : "%2$s ti ha rimosso da %1$s" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/nb_NO.js b/apps/files_sharing/l10n/nb_NO.js index c9e842c5d8b..07692b58fe9 100644 --- a/apps/files_sharing/l10n/nb_NO.js +++ b/apps/files_sharing/l10n/nb_NO.js @@ -20,76 +20,42 @@ OC.L10N.register( "Sharing" : "Deling", "File shares" : "Fildelinger", "Downloaded via public link" : "Nedlastet via offentlig lenke", - "Downloaded by %1$s" : "Lastet ned av %1$s", "Downloaded by {email}" : "Lastet ned av {email}", - "%1$s downloaded via public link" : "%1$s lastet ned via offentlig lenke", "{file} downloaded via public link" : "{file} lastet ned via offentlig lenke", - "%1$s downloaded %2$s" : "%1$s lastet ned %2$s", "{email} downloaded {file}" : "{email} lastet ned {file}", - "Shared with group %1$s" : "Delt med gruppen %1$s", "Shared with group {group}" : "Delt med gruppen {group}", - "Removed share for group %1$s" : "Fjernet deling for gruppen %1$s", "Removed share for group {group}" : "Fjernet deling for gruppen {group}", - "%2$s shared with group %1$s" : "%2$s delt med gruppen %1$s", "{actor} shared with group {group}" : "{actor} delt med gruppen {group}", - "%2$s removed share for group %1$s" : "%2$s fjernet deling for gruppen %1$s", "{actor} removed share for group {group}" : "{actor} fjernet deling for gruppen {group}", - "You shared %1$s with group %2$s" : "Du delte %1$s med gruppe %2$s", "You shared {file} with group {group}" : "Du delte {file} med gruppen {group}", - "You removed group %2$s from %1$s" : "Du fjernet gruppen %2$s fra %1$s", "You removed group {group} from {file}" : "Du fjernet gruppen {group} fra {file}", - "%3$s shared %1$s with group %2$s" : "%3$s delte %1$s med gruppen %2$s", "{actor} shared {file} with group {group}" : "{actor} delte {file} med gruppen {group}", - "%3$s removed group %2$s from %1$s" : "%3$s fjernet gruppen %2$s fra %1$s", "{actor} removed group {group} from {file}" : "{actor} fjernet gruppen {group} fra {file}", "Shared as public link" : "Delt som offentlig lenke", "Removed public link" : "Fjernet offentlig lenke", - "%1$s shared as public link" : "%1$s delt som offentlig lenke", + "Public link expired" : "Offentlig lenke er utløpt", "{actor} shared as public link" : "{actor} delte som offentlig lenke", - "%1$s removed public link" : "%1$s fjernet offentlig lenke", "{actor} removed public link" : "{actor} fjernet offentlig lenke", - "You shared %1$s as public link" : "Du delte %1$s som offentlig lenke", "You shared {file} as public link" : "Du delte {file} som offentlig lenke", - "You removed public link for %1$s" : "Du fjernet offentlig lenke for %1$s", "You removed public link for {file}" : "Du fjernet offentlig lenke for {file}", - "%2$s shared %1$s as public link" : "%2$s delte %1$s som offentlig lenke", "{actor} shared {file} as public link" : "{actor} delte {file} som offentlig lenke", - "%2$s removed public link for %1$s" : "%2$s fjernet offentlig lenke for %1$s", "{actor} removed public link for {file}" : "{actor} fjernet offentlig lenke for {file}", - "%1$s accepted the remote share" : "%1$s godtok den offentlige delingen", "{user} accepted the remote share" : "{user} godtok fjerndelingen", - "%1$s declined the remote share" : "%1$s avslo fjerndelingen", "{user} declined the remote share" : "{user} avslo fjerndelingen", - "You received a new remote share %1$s from %2$s" : "Du har mottatt en ny fjerndeling %1$s fra %2$s", "You received a new remote share {file} from {user}" : "Du har mottatt en ny fjerndeling {file} fra {user}", - "%2$s accepted the remote share of %1$s" : "%2$s godtok fjerndelingen av %1$s", "{user} accepted the remote share of {file}" : "{user} godtok fjerndelingen av {file}", - "%2$s declined the remote share of %1$s" : "%2$s avslo fjerndelingen av %1$s", "{user} declined the remote share of {file}" : "{user} avslo fjerndelingen av {file}", - "%2$s unshared %1$s from you" : "%2$s fjernet deling av %1$s med deg", "{user} unshared {file} from you" : "{user} fjernet deling av {file} med deg", - "Shared with %1$s" : "Delt med %1$s", "Shared with {user}" : "Delt med {user}", - "Removed share for %1$s" : "Fjernet deling med %1$s", "Removed share for {user}" : "Fjernet deling med {user}", - "%2$s shared with %1$s" : "%2$s delt med %1$s", "{actor} shared with {user}" : "{actor} delte med {user}", - "%2$s removed share for %1$s" : "%2$s fjernet deling med %1$s", "{actor} removed share for {user}" : "{actor} fjernet deling med {user}", - "Shared by %1$s" : "Delt av %1$s", "Shared by {actor}" : "Delt av {actor}", - "%1$s removed share" : "%1$s fjernet deling", "{actor} removed share" : "{actor} fjernet deling", - "You shared %1$s with %2$s" : "Du delte %1$s med %2$s", "You shared {file} with {user}" : "Du delte {file} med {user}", - "You removed %2$s from %1$s" : "Du fjernet %2$s fra %1$s", "You removed {user} from {file}" : "Du fjernet {user} fra {file}", - "%3$s shared %1$s with %2$s" : "%3$s delte %1$s med %2$s", "{actor} removed {user} from {file}" : "{actor} fjernet {user} fra {file}", - "%3$s removed %2$s from %1$s" : "%3$s fjernet %2$s fra %1$s", - "%2$s shared %1$s with you" : "%2$s delte %1$s med deg", "{actor} shared {file} with you" : "{actor} delte {file} med deg", - "%2$s removed you from %1$s" : "%2$s fjernet deg fra %1$s", "{actor} removed you from {file}" : "{actor} fjernet deg fra {file}", "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "En fil eller mappe delt via e-post eller offentlig lenke ble <strong>lastet ned</strong>", "A file or folder was shared from <strong>another server</strong>" : "En fil eller mappe ble delt fra <strong>en annen tjener</strong>", @@ -146,9 +112,11 @@ OC.L10N.register( "%1$s unshared %2$s from you" : "%1$s fjernet deling %2$s fra deg", "Public shared folder %1$s was downloaded" : "Offentlig delt mappe %1$s ble lastet ned", "Public shared file %1$s was downloaded" : "Offentlig delt fil %1$s ble lastet ned", + "You shared %1$s with %2$s" : "Du delte %1$s med %2$s", "%2$s shared %1$s with %3$s" : "%2$s delte %1$s med %3$s", "You removed the share of %2$s for %1$s" : "Du fjernet deling av %2$s for %1$s", "%2$s removed the share of %3$s for %1$s" : "%2$s fjernet deling av %3$s for %1$s", + "You shared %1$s with group %2$s" : "Du delte %1$s med gruppe %2$s", "%2$s shared %1$s with group %3$s" : "%2$s delte %1$s med gruppe %3$s", "You removed the share of group %2$s for %1$s" : "Du fjernet deling av gruppe %2$s for %1$s", "%2$s removed the share of group %3$s for %1$s" : "%2$s fjernet deling av gruppe %3$s for %1$s", @@ -158,6 +126,7 @@ OC.L10N.register( "%2$s removed the public link for %1$s" : "%2$s fjernet den offentlige lenken for %1$s", "Your public link for %1$s expired" : "Din offentlige lenke for %1$s er utløpt", "The public link of %2$s for %1$s expired" : "Den offentlige lenken til %2$s for %1$s er utløpt", + "%2$s shared %1$s with you" : "%2$s delte %1$s med deg", "%2$s removed the share for %1$s" : "%2$s fjernet delingen for %1$s", "Shared with %2$s" : "Delt med %2$s", "Shared with %3$s by %2$s" : "Delt med %3$s av %2$s", @@ -170,9 +139,40 @@ OC.L10N.register( "Shared via link by %2$s" : "Delt via lenke av %2$s", "Shared via public link" : "Delt via offentlig lenke", "%2$s removed public link" : "%2$s fjernet offentlig lenke", - "Public link expired" : "Offentlig lenke er utløpt", "Public link of %2$s expired" : "Offentlig lenke til %2$s er utløpt", "Shared by %2$s" : "Delt av %2$s", - "Shares" : "Delinger" + "Shares" : "Delinger", + "Downloaded by %1$s" : "Lastet ned av %1$s", + "%1$s downloaded via public link" : "%1$s lastet ned via offentlig lenke", + "%1$s downloaded %2$s" : "%1$s lastet ned %2$s", + "Shared with group %1$s" : "Delt med gruppen %1$s", + "Removed share for group %1$s" : "Fjernet deling for gruppen %1$s", + "%2$s shared with group %1$s" : "%2$s delt med gruppen %1$s", + "%2$s removed share for group %1$s" : "%2$s fjernet deling for gruppen %1$s", + "You removed group %2$s from %1$s" : "Du fjernet gruppen %2$s fra %1$s", + "%3$s shared %1$s with group %2$s" : "%3$s delte %1$s med gruppen %2$s", + "%3$s removed group %2$s from %1$s" : "%3$s fjernet gruppen %2$s fra %1$s", + "%1$s shared as public link" : "%1$s delt som offentlig lenke", + "%1$s removed public link" : "%1$s fjernet offentlig lenke", + "You shared %1$s as public link" : "Du delte %1$s som offentlig lenke", + "You removed public link for %1$s" : "Du fjernet offentlig lenke for %1$s", + "%2$s shared %1$s as public link" : "%2$s delte %1$s som offentlig lenke", + "%2$s removed public link for %1$s" : "%2$s fjernet offentlig lenke for %1$s", + "%1$s accepted the remote share" : "%1$s godtok den offentlige delingen", + "%1$s declined the remote share" : "%1$s avslo fjerndelingen", + "You received a new remote share %1$s from %2$s" : "Du har mottatt en ny fjerndeling %1$s fra %2$s", + "%2$s accepted the remote share of %1$s" : "%2$s godtok fjerndelingen av %1$s", + "%2$s declined the remote share of %1$s" : "%2$s avslo fjerndelingen av %1$s", + "%2$s unshared %1$s from you" : "%2$s fjernet deling av %1$s med deg", + "Shared with %1$s" : "Delt med %1$s", + "Removed share for %1$s" : "Fjernet deling med %1$s", + "%2$s shared with %1$s" : "%2$s delt med %1$s", + "%2$s removed share for %1$s" : "%2$s fjernet deling med %1$s", + "Shared by %1$s" : "Delt av %1$s", + "%1$s removed share" : "%1$s fjernet deling", + "You removed %2$s from %1$s" : "Du fjernet %2$s fra %1$s", + "%3$s shared %1$s with %2$s" : "%3$s delte %1$s med %2$s", + "%3$s removed %2$s from %1$s" : "%3$s fjernet %2$s fra %1$s", + "%2$s removed you from %1$s" : "%2$s fjernet deg fra %1$s" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/nb_NO.json b/apps/files_sharing/l10n/nb_NO.json index bc829079db6..7dac9de24af 100644 --- a/apps/files_sharing/l10n/nb_NO.json +++ b/apps/files_sharing/l10n/nb_NO.json @@ -18,76 +18,42 @@ "Sharing" : "Deling", "File shares" : "Fildelinger", "Downloaded via public link" : "Nedlastet via offentlig lenke", - "Downloaded by %1$s" : "Lastet ned av %1$s", "Downloaded by {email}" : "Lastet ned av {email}", - "%1$s downloaded via public link" : "%1$s lastet ned via offentlig lenke", "{file} downloaded via public link" : "{file} lastet ned via offentlig lenke", - "%1$s downloaded %2$s" : "%1$s lastet ned %2$s", "{email} downloaded {file}" : "{email} lastet ned {file}", - "Shared with group %1$s" : "Delt med gruppen %1$s", "Shared with group {group}" : "Delt med gruppen {group}", - "Removed share for group %1$s" : "Fjernet deling for gruppen %1$s", "Removed share for group {group}" : "Fjernet deling for gruppen {group}", - "%2$s shared with group %1$s" : "%2$s delt med gruppen %1$s", "{actor} shared with group {group}" : "{actor} delt med gruppen {group}", - "%2$s removed share for group %1$s" : "%2$s fjernet deling for gruppen %1$s", "{actor} removed share for group {group}" : "{actor} fjernet deling for gruppen {group}", - "You shared %1$s with group %2$s" : "Du delte %1$s med gruppe %2$s", "You shared {file} with group {group}" : "Du delte {file} med gruppen {group}", - "You removed group %2$s from %1$s" : "Du fjernet gruppen %2$s fra %1$s", "You removed group {group} from {file}" : "Du fjernet gruppen {group} fra {file}", - "%3$s shared %1$s with group %2$s" : "%3$s delte %1$s med gruppen %2$s", "{actor} shared {file} with group {group}" : "{actor} delte {file} med gruppen {group}", - "%3$s removed group %2$s from %1$s" : "%3$s fjernet gruppen %2$s fra %1$s", "{actor} removed group {group} from {file}" : "{actor} fjernet gruppen {group} fra {file}", "Shared as public link" : "Delt som offentlig lenke", "Removed public link" : "Fjernet offentlig lenke", - "%1$s shared as public link" : "%1$s delt som offentlig lenke", + "Public link expired" : "Offentlig lenke er utløpt", "{actor} shared as public link" : "{actor} delte som offentlig lenke", - "%1$s removed public link" : "%1$s fjernet offentlig lenke", "{actor} removed public link" : "{actor} fjernet offentlig lenke", - "You shared %1$s as public link" : "Du delte %1$s som offentlig lenke", "You shared {file} as public link" : "Du delte {file} som offentlig lenke", - "You removed public link for %1$s" : "Du fjernet offentlig lenke for %1$s", "You removed public link for {file}" : "Du fjernet offentlig lenke for {file}", - "%2$s shared %1$s as public link" : "%2$s delte %1$s som offentlig lenke", "{actor} shared {file} as public link" : "{actor} delte {file} som offentlig lenke", - "%2$s removed public link for %1$s" : "%2$s fjernet offentlig lenke for %1$s", "{actor} removed public link for {file}" : "{actor} fjernet offentlig lenke for {file}", - "%1$s accepted the remote share" : "%1$s godtok den offentlige delingen", "{user} accepted the remote share" : "{user} godtok fjerndelingen", - "%1$s declined the remote share" : "%1$s avslo fjerndelingen", "{user} declined the remote share" : "{user} avslo fjerndelingen", - "You received a new remote share %1$s from %2$s" : "Du har mottatt en ny fjerndeling %1$s fra %2$s", "You received a new remote share {file} from {user}" : "Du har mottatt en ny fjerndeling {file} fra {user}", - "%2$s accepted the remote share of %1$s" : "%2$s godtok fjerndelingen av %1$s", "{user} accepted the remote share of {file}" : "{user} godtok fjerndelingen av {file}", - "%2$s declined the remote share of %1$s" : "%2$s avslo fjerndelingen av %1$s", "{user} declined the remote share of {file}" : "{user} avslo fjerndelingen av {file}", - "%2$s unshared %1$s from you" : "%2$s fjernet deling av %1$s med deg", "{user} unshared {file} from you" : "{user} fjernet deling av {file} med deg", - "Shared with %1$s" : "Delt med %1$s", "Shared with {user}" : "Delt med {user}", - "Removed share for %1$s" : "Fjernet deling med %1$s", "Removed share for {user}" : "Fjernet deling med {user}", - "%2$s shared with %1$s" : "%2$s delt med %1$s", "{actor} shared with {user}" : "{actor} delte med {user}", - "%2$s removed share for %1$s" : "%2$s fjernet deling med %1$s", "{actor} removed share for {user}" : "{actor} fjernet deling med {user}", - "Shared by %1$s" : "Delt av %1$s", "Shared by {actor}" : "Delt av {actor}", - "%1$s removed share" : "%1$s fjernet deling", "{actor} removed share" : "{actor} fjernet deling", - "You shared %1$s with %2$s" : "Du delte %1$s med %2$s", "You shared {file} with {user}" : "Du delte {file} med {user}", - "You removed %2$s from %1$s" : "Du fjernet %2$s fra %1$s", "You removed {user} from {file}" : "Du fjernet {user} fra {file}", - "%3$s shared %1$s with %2$s" : "%3$s delte %1$s med %2$s", "{actor} removed {user} from {file}" : "{actor} fjernet {user} fra {file}", - "%3$s removed %2$s from %1$s" : "%3$s fjernet %2$s fra %1$s", - "%2$s shared %1$s with you" : "%2$s delte %1$s med deg", "{actor} shared {file} with you" : "{actor} delte {file} med deg", - "%2$s removed you from %1$s" : "%2$s fjernet deg fra %1$s", "{actor} removed you from {file}" : "{actor} fjernet deg fra {file}", "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "En fil eller mappe delt via e-post eller offentlig lenke ble <strong>lastet ned</strong>", "A file or folder was shared from <strong>another server</strong>" : "En fil eller mappe ble delt fra <strong>en annen tjener</strong>", @@ -144,9 +110,11 @@ "%1$s unshared %2$s from you" : "%1$s fjernet deling %2$s fra deg", "Public shared folder %1$s was downloaded" : "Offentlig delt mappe %1$s ble lastet ned", "Public shared file %1$s was downloaded" : "Offentlig delt fil %1$s ble lastet ned", + "You shared %1$s with %2$s" : "Du delte %1$s med %2$s", "%2$s shared %1$s with %3$s" : "%2$s delte %1$s med %3$s", "You removed the share of %2$s for %1$s" : "Du fjernet deling av %2$s for %1$s", "%2$s removed the share of %3$s for %1$s" : "%2$s fjernet deling av %3$s for %1$s", + "You shared %1$s with group %2$s" : "Du delte %1$s med gruppe %2$s", "%2$s shared %1$s with group %3$s" : "%2$s delte %1$s med gruppe %3$s", "You removed the share of group %2$s for %1$s" : "Du fjernet deling av gruppe %2$s for %1$s", "%2$s removed the share of group %3$s for %1$s" : "%2$s fjernet deling av gruppe %3$s for %1$s", @@ -156,6 +124,7 @@ "%2$s removed the public link for %1$s" : "%2$s fjernet den offentlige lenken for %1$s", "Your public link for %1$s expired" : "Din offentlige lenke for %1$s er utløpt", "The public link of %2$s for %1$s expired" : "Den offentlige lenken til %2$s for %1$s er utløpt", + "%2$s shared %1$s with you" : "%2$s delte %1$s med deg", "%2$s removed the share for %1$s" : "%2$s fjernet delingen for %1$s", "Shared with %2$s" : "Delt med %2$s", "Shared with %3$s by %2$s" : "Delt med %3$s av %2$s", @@ -168,9 +137,40 @@ "Shared via link by %2$s" : "Delt via lenke av %2$s", "Shared via public link" : "Delt via offentlig lenke", "%2$s removed public link" : "%2$s fjernet offentlig lenke", - "Public link expired" : "Offentlig lenke er utløpt", "Public link of %2$s expired" : "Offentlig lenke til %2$s er utløpt", "Shared by %2$s" : "Delt av %2$s", - "Shares" : "Delinger" + "Shares" : "Delinger", + "Downloaded by %1$s" : "Lastet ned av %1$s", + "%1$s downloaded via public link" : "%1$s lastet ned via offentlig lenke", + "%1$s downloaded %2$s" : "%1$s lastet ned %2$s", + "Shared with group %1$s" : "Delt med gruppen %1$s", + "Removed share for group %1$s" : "Fjernet deling for gruppen %1$s", + "%2$s shared with group %1$s" : "%2$s delt med gruppen %1$s", + "%2$s removed share for group %1$s" : "%2$s fjernet deling for gruppen %1$s", + "You removed group %2$s from %1$s" : "Du fjernet gruppen %2$s fra %1$s", + "%3$s shared %1$s with group %2$s" : "%3$s delte %1$s med gruppen %2$s", + "%3$s removed group %2$s from %1$s" : "%3$s fjernet gruppen %2$s fra %1$s", + "%1$s shared as public link" : "%1$s delt som offentlig lenke", + "%1$s removed public link" : "%1$s fjernet offentlig lenke", + "You shared %1$s as public link" : "Du delte %1$s som offentlig lenke", + "You removed public link for %1$s" : "Du fjernet offentlig lenke for %1$s", + "%2$s shared %1$s as public link" : "%2$s delte %1$s som offentlig lenke", + "%2$s removed public link for %1$s" : "%2$s fjernet offentlig lenke for %1$s", + "%1$s accepted the remote share" : "%1$s godtok den offentlige delingen", + "%1$s declined the remote share" : "%1$s avslo fjerndelingen", + "You received a new remote share %1$s from %2$s" : "Du har mottatt en ny fjerndeling %1$s fra %2$s", + "%2$s accepted the remote share of %1$s" : "%2$s godtok fjerndelingen av %1$s", + "%2$s declined the remote share of %1$s" : "%2$s avslo fjerndelingen av %1$s", + "%2$s unshared %1$s from you" : "%2$s fjernet deling av %1$s med deg", + "Shared with %1$s" : "Delt med %1$s", + "Removed share for %1$s" : "Fjernet deling med %1$s", + "%2$s shared with %1$s" : "%2$s delt med %1$s", + "%2$s removed share for %1$s" : "%2$s fjernet deling med %1$s", + "Shared by %1$s" : "Delt av %1$s", + "%1$s removed share" : "%1$s fjernet deling", + "You removed %2$s from %1$s" : "Du fjernet %2$s fra %1$s", + "%3$s shared %1$s with %2$s" : "%3$s delte %1$s med %2$s", + "%3$s removed %2$s from %1$s" : "%3$s fjernet %2$s fra %1$s", + "%2$s removed you from %1$s" : "%2$s fjernet deg fra %1$s" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/nl.js b/apps/files_sharing/l10n/nl.js index e5ba0ad7c21..5bda54d67f0 100644 --- a/apps/files_sharing/l10n/nl.js +++ b/apps/files_sharing/l10n/nl.js @@ -20,76 +20,42 @@ OC.L10N.register( "Sharing" : "Delen", "File shares" : "File shares", "Downloaded via public link" : "Gedownload via een openbare link", - "Downloaded by %1$s" : "Gedownload door %1$s", "Downloaded by {email}" : "Gedownload via {email}", - "%1$s downloaded via public link" : "%1$s gedownload via openbare link", "{file} downloaded via public link" : "{file} gedownload via openbare link", - "%1$s downloaded %2$s" : "%1$s downloadde %2$s", "{email} downloaded {file}" : "{email} downloadde {file}", - "Shared with group %1$s" : "Deelde met groep %1$s", "Shared with group {group}" : "Deelde met groep {group}", - "Removed share for group %1$s" : "Share van de groep %1$s verwijderd", "Removed share for group {group}" : "Share van de groep {group} verwijderd", - "%2$s shared with group %1$s" : "%2$s deelde met groep %1$s", "{actor} shared with group {group}" : "{actor} deelde met groep {group}", - "%2$s removed share for group %1$s" : "%2$s verwijderde share voor groep %1$s", "{actor} removed share for group {group}" : "{actor} verwijderde de share voor groep {group}", - "You shared %1$s with group %2$s" : "Je deelde %1$s met groep %2$s", "You shared {file} with group {group}" : "Je deelde {file} met groep {group}", - "You removed group %2$s from %1$s" : "Je verwijderde groep %2$s van %1$s", "You removed group {group} from {file}" : "Je verwijderde groep {group} van {file}", - "%3$s shared %1$s with group %2$s" : "%3$s deelde %1$s met groep %2$s", "{actor} shared {file} with group {group}" : "{actor} deelde {file} met groep {group}", - "%3$s removed group %2$s from %1$s" : "%3$s verwijderde groep %2$s van %1$s", "{actor} removed group {group} from {file}" : "{actor} verwijderde groep {group} van {file}", "Shared as public link" : "Gedeeld als een openbare link", "Removed public link" : "Openbare link verwijderd", - "%1$s shared as public link" : "%1$s deelde als een openbare link", + "Public link expired" : "Openbare link is verlopen", "{actor} shared as public link" : "{actor} deelde als een openbare link", - "%1$s removed public link" : "%1$s verwijderde openbare link", "{actor} removed public link" : "{actor} verwijderde openbare link", - "You shared %1$s as public link" : "Je deelde %1$s als openbare link", "You shared {file} as public link" : "Je deelde {file} als openbare link", - "You removed public link for %1$s" : "Je verwijderde de openbare link voor %1$s", "You removed public link for {file}" : "Je verwijderde de openbare link voor {file}", - "%2$s shared %1$s as public link" : "%2$s deelde %1$s als een openbare link", "{actor} shared {file} as public link" : "{actor} deelde {file} als openbare link", - "%2$s removed public link for %1$s" : "%2$s verwijderde openbare link voor %1$s", "{actor} removed public link for {file}" : "{actor} verwijderde openbare link voor {file}", - "%1$s accepted the remote share" : "%1$s accepteerde externe share", "{user} accepted the remote share" : "{user} accepteerde externe share", - "%1$s declined the remote share" : "%1$s weigerde externe share", "{user} declined the remote share" : "{user} weigerde externe share", - "You received a new remote share %1$s from %2$s" : "Je ontving een nieuwe externe share voor %1$s van %2$s", "You received a new remote share {file} from {user}" : "Je ontving een nieuwe externe share voor {file} van {user}", - "%2$s accepted the remote share of %1$s" : "%2$s accepteerde externe share van %1$s", "{user} accepted the remote share of {file}" : "{user} accepteerde externe share van {file}", - "%2$s declined the remote share of %1$s" : "%2$s weigerde de externe share van %1$s", "{user} declined the remote share of {file}" : "{user} weigerde de externe share van {file}", - "%2$s unshared %1$s from you" : "%2$s stopte met delen van %1$s met jou", "{user} unshared {file} from you" : "{user} stopte met delen van {file} met jou", - "Shared with %1$s" : "Gedeeld met %1$s", "Shared with {user}" : "Gedeeld met {user}", - "Removed share for %1$s" : "Verwijderde share voor %1$s", "Removed share for {user}" : "Verwijderde share voor {user}", - "%2$s shared with %1$s" : "%2$s deelde met %1$s", "{actor} shared with {user}" : "{actor} deelde met {user}", - "%2$s removed share for %1$s" : "%2$s verwijderde de share voor %1$s", "{actor} removed share for {user}" : "{actor} verwijderde de share voor {user}", - "Shared by %1$s" : "Gedeeld door %1$s", "Shared by {actor}" : "Gedeeld door {actor}", - "%1$s removed share" : "%1$s verwijderde de share", "{actor} removed share" : "{actor} verwijderde de share", - "You shared %1$s with %2$s" : "Je deelde %1$s met %2$s", "You shared {file} with {user}" : "Je deelde {file} mey {user}", - "You removed %2$s from %1$s" : "Je verwijderde %2$s van %1$s", "You removed {user} from {file}" : "Je verwijderde {user} van {file}", - "%3$s shared %1$s with %2$s" : "%3$s deelde %1$s met %2$s", "{actor} removed {user} from {file}" : "{actor} verwijderde {user} van {file}", - "%3$s removed %2$s from %1$s" : "%3$s verwijderde %2$s van %1$s", - "%2$s shared %1$s with you" : "%2$s deelde %1$s met u", "{actor} shared {file} with you" : "{actor} deelde {file} met jou", - "%2$s removed you from %1$s" : "%2$s verwijderde jou van %1$s", "{actor} removed you from {file}" : "{actor} verwijderde jou van {file}", "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Een bestand of map gedeeld via mail of publieke link werd <strong>gedownload</strong>", "A file or folder was shared from <strong>another server</strong>" : "Een bestand of map werd gedeeld vanaf <strong>een andere server</strong>", @@ -146,9 +112,11 @@ OC.L10N.register( "%1$s unshared %2$s from you" : "%1$s stopte met delen van %2$s met je", "Public shared folder %1$s was downloaded" : "Openbaar gedeelde map %1$s werd gedownloaded", "Public shared file %1$s was downloaded" : "Openbaar gedeeld bestand %1$s werd gedownloaded", + "You shared %1$s with %2$s" : "Je deelde %1$s met %2$s", "%2$s shared %1$s with %3$s" : "%2$s deelde %1$s met %3$s", "You removed the share of %2$s for %1$s" : "Je hebt de share van %1$s met %2$s verwijderd", "%2$s removed the share of %3$s for %1$s" : "%2$s heeft de share van %1$s met %3$s verwijderd", + "You shared %1$s with group %2$s" : "Je deelde %1$s met groep %2$s", "%2$s shared %1$s with group %3$s" : "%2$s deelde %1$s met groep %3$s", "You removed the share of group %2$s for %1$s" : "Je hebt de share van %1$s met de groep %2$s verwijderd", "%2$s removed the share of group %3$s for %1$s" : "%2$s heeft de share van %1$s met de groep %3$s verwijderd", @@ -158,6 +126,7 @@ OC.L10N.register( "%2$s removed the public link for %1$s" : "%2$s heeft de openbare link voor %1$s verwijderd", "Your public link for %1$s expired" : "Je openbare link voor %1$s is verlopen", "The public link of %2$s for %1$s expired" : "De openbare link van %2$s voor %1$s is verlopen", + "%2$s shared %1$s with you" : "%2$s deelde %1$s met u", "%2$s removed the share for %1$s" : "%2$s heeft de share van %1$s verwijderd", "Shared with %2$s" : "Gedeeld met %2$s", "Shared with %3$s by %2$s" : "Gedeeld met %3$s door %2$s", @@ -170,9 +139,40 @@ OC.L10N.register( "Shared via link by %2$s" : "Gedeeld via link door %2$s", "Shared via public link" : "Gedeeld via een openbare link", "%2$s removed public link" : "%2$s verwijderede openbare link", - "Public link expired" : "Openbare link is verlopen", "Public link of %2$s expired" : "Openbare link van %2$s is verlopen", "Shared by %2$s" : "Gedeeld door %2$s", - "Shares" : "Gedeeld" + "Shares" : "Gedeeld", + "Downloaded by %1$s" : "Gedownload door %1$s", + "%1$s downloaded via public link" : "%1$s gedownload via openbare link", + "%1$s downloaded %2$s" : "%1$s downloadde %2$s", + "Shared with group %1$s" : "Deelde met groep %1$s", + "Removed share for group %1$s" : "Share van de groep %1$s verwijderd", + "%2$s shared with group %1$s" : "%2$s deelde met groep %1$s", + "%2$s removed share for group %1$s" : "%2$s verwijderde share voor groep %1$s", + "You removed group %2$s from %1$s" : "Je verwijderde groep %2$s van %1$s", + "%3$s shared %1$s with group %2$s" : "%3$s deelde %1$s met groep %2$s", + "%3$s removed group %2$s from %1$s" : "%3$s verwijderde groep %2$s van %1$s", + "%1$s shared as public link" : "%1$s deelde als een openbare link", + "%1$s removed public link" : "%1$s verwijderde openbare link", + "You shared %1$s as public link" : "Je deelde %1$s als openbare link", + "You removed public link for %1$s" : "Je verwijderde de openbare link voor %1$s", + "%2$s shared %1$s as public link" : "%2$s deelde %1$s als een openbare link", + "%2$s removed public link for %1$s" : "%2$s verwijderde openbare link voor %1$s", + "%1$s accepted the remote share" : "%1$s accepteerde externe share", + "%1$s declined the remote share" : "%1$s weigerde externe share", + "You received a new remote share %1$s from %2$s" : "Je ontving een nieuwe externe share voor %1$s van %2$s", + "%2$s accepted the remote share of %1$s" : "%2$s accepteerde externe share van %1$s", + "%2$s declined the remote share of %1$s" : "%2$s weigerde de externe share van %1$s", + "%2$s unshared %1$s from you" : "%2$s stopte met delen van %1$s met jou", + "Shared with %1$s" : "Gedeeld met %1$s", + "Removed share for %1$s" : "Verwijderde share voor %1$s", + "%2$s shared with %1$s" : "%2$s deelde met %1$s", + "%2$s removed share for %1$s" : "%2$s verwijderde de share voor %1$s", + "Shared by %1$s" : "Gedeeld door %1$s", + "%1$s removed share" : "%1$s verwijderde de share", + "You removed %2$s from %1$s" : "Je verwijderde %2$s van %1$s", + "%3$s shared %1$s with %2$s" : "%3$s deelde %1$s met %2$s", + "%3$s removed %2$s from %1$s" : "%3$s verwijderde %2$s van %1$s", + "%2$s removed you from %1$s" : "%2$s verwijderde jou van %1$s" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/nl.json b/apps/files_sharing/l10n/nl.json index b3ceedff6be..78895e4b7f9 100644 --- a/apps/files_sharing/l10n/nl.json +++ b/apps/files_sharing/l10n/nl.json @@ -18,76 +18,42 @@ "Sharing" : "Delen", "File shares" : "File shares", "Downloaded via public link" : "Gedownload via een openbare link", - "Downloaded by %1$s" : "Gedownload door %1$s", "Downloaded by {email}" : "Gedownload via {email}", - "%1$s downloaded via public link" : "%1$s gedownload via openbare link", "{file} downloaded via public link" : "{file} gedownload via openbare link", - "%1$s downloaded %2$s" : "%1$s downloadde %2$s", "{email} downloaded {file}" : "{email} downloadde {file}", - "Shared with group %1$s" : "Deelde met groep %1$s", "Shared with group {group}" : "Deelde met groep {group}", - "Removed share for group %1$s" : "Share van de groep %1$s verwijderd", "Removed share for group {group}" : "Share van de groep {group} verwijderd", - "%2$s shared with group %1$s" : "%2$s deelde met groep %1$s", "{actor} shared with group {group}" : "{actor} deelde met groep {group}", - "%2$s removed share for group %1$s" : "%2$s verwijderde share voor groep %1$s", "{actor} removed share for group {group}" : "{actor} verwijderde de share voor groep {group}", - "You shared %1$s with group %2$s" : "Je deelde %1$s met groep %2$s", "You shared {file} with group {group}" : "Je deelde {file} met groep {group}", - "You removed group %2$s from %1$s" : "Je verwijderde groep %2$s van %1$s", "You removed group {group} from {file}" : "Je verwijderde groep {group} van {file}", - "%3$s shared %1$s with group %2$s" : "%3$s deelde %1$s met groep %2$s", "{actor} shared {file} with group {group}" : "{actor} deelde {file} met groep {group}", - "%3$s removed group %2$s from %1$s" : "%3$s verwijderde groep %2$s van %1$s", "{actor} removed group {group} from {file}" : "{actor} verwijderde groep {group} van {file}", "Shared as public link" : "Gedeeld als een openbare link", "Removed public link" : "Openbare link verwijderd", - "%1$s shared as public link" : "%1$s deelde als een openbare link", + "Public link expired" : "Openbare link is verlopen", "{actor} shared as public link" : "{actor} deelde als een openbare link", - "%1$s removed public link" : "%1$s verwijderde openbare link", "{actor} removed public link" : "{actor} verwijderde openbare link", - "You shared %1$s as public link" : "Je deelde %1$s als openbare link", "You shared {file} as public link" : "Je deelde {file} als openbare link", - "You removed public link for %1$s" : "Je verwijderde de openbare link voor %1$s", "You removed public link for {file}" : "Je verwijderde de openbare link voor {file}", - "%2$s shared %1$s as public link" : "%2$s deelde %1$s als een openbare link", "{actor} shared {file} as public link" : "{actor} deelde {file} als openbare link", - "%2$s removed public link for %1$s" : "%2$s verwijderde openbare link voor %1$s", "{actor} removed public link for {file}" : "{actor} verwijderde openbare link voor {file}", - "%1$s accepted the remote share" : "%1$s accepteerde externe share", "{user} accepted the remote share" : "{user} accepteerde externe share", - "%1$s declined the remote share" : "%1$s weigerde externe share", "{user} declined the remote share" : "{user} weigerde externe share", - "You received a new remote share %1$s from %2$s" : "Je ontving een nieuwe externe share voor %1$s van %2$s", "You received a new remote share {file} from {user}" : "Je ontving een nieuwe externe share voor {file} van {user}", - "%2$s accepted the remote share of %1$s" : "%2$s accepteerde externe share van %1$s", "{user} accepted the remote share of {file}" : "{user} accepteerde externe share van {file}", - "%2$s declined the remote share of %1$s" : "%2$s weigerde de externe share van %1$s", "{user} declined the remote share of {file}" : "{user} weigerde de externe share van {file}", - "%2$s unshared %1$s from you" : "%2$s stopte met delen van %1$s met jou", "{user} unshared {file} from you" : "{user} stopte met delen van {file} met jou", - "Shared with %1$s" : "Gedeeld met %1$s", "Shared with {user}" : "Gedeeld met {user}", - "Removed share for %1$s" : "Verwijderde share voor %1$s", "Removed share for {user}" : "Verwijderde share voor {user}", - "%2$s shared with %1$s" : "%2$s deelde met %1$s", "{actor} shared with {user}" : "{actor} deelde met {user}", - "%2$s removed share for %1$s" : "%2$s verwijderde de share voor %1$s", "{actor} removed share for {user}" : "{actor} verwijderde de share voor {user}", - "Shared by %1$s" : "Gedeeld door %1$s", "Shared by {actor}" : "Gedeeld door {actor}", - "%1$s removed share" : "%1$s verwijderde de share", "{actor} removed share" : "{actor} verwijderde de share", - "You shared %1$s with %2$s" : "Je deelde %1$s met %2$s", "You shared {file} with {user}" : "Je deelde {file} mey {user}", - "You removed %2$s from %1$s" : "Je verwijderde %2$s van %1$s", "You removed {user} from {file}" : "Je verwijderde {user} van {file}", - "%3$s shared %1$s with %2$s" : "%3$s deelde %1$s met %2$s", "{actor} removed {user} from {file}" : "{actor} verwijderde {user} van {file}", - "%3$s removed %2$s from %1$s" : "%3$s verwijderde %2$s van %1$s", - "%2$s shared %1$s with you" : "%2$s deelde %1$s met u", "{actor} shared {file} with you" : "{actor} deelde {file} met jou", - "%2$s removed you from %1$s" : "%2$s verwijderde jou van %1$s", "{actor} removed you from {file}" : "{actor} verwijderde jou van {file}", "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Een bestand of map gedeeld via mail of publieke link werd <strong>gedownload</strong>", "A file or folder was shared from <strong>another server</strong>" : "Een bestand of map werd gedeeld vanaf <strong>een andere server</strong>", @@ -144,9 +110,11 @@ "%1$s unshared %2$s from you" : "%1$s stopte met delen van %2$s met je", "Public shared folder %1$s was downloaded" : "Openbaar gedeelde map %1$s werd gedownloaded", "Public shared file %1$s was downloaded" : "Openbaar gedeeld bestand %1$s werd gedownloaded", + "You shared %1$s with %2$s" : "Je deelde %1$s met %2$s", "%2$s shared %1$s with %3$s" : "%2$s deelde %1$s met %3$s", "You removed the share of %2$s for %1$s" : "Je hebt de share van %1$s met %2$s verwijderd", "%2$s removed the share of %3$s for %1$s" : "%2$s heeft de share van %1$s met %3$s verwijderd", + "You shared %1$s with group %2$s" : "Je deelde %1$s met groep %2$s", "%2$s shared %1$s with group %3$s" : "%2$s deelde %1$s met groep %3$s", "You removed the share of group %2$s for %1$s" : "Je hebt de share van %1$s met de groep %2$s verwijderd", "%2$s removed the share of group %3$s for %1$s" : "%2$s heeft de share van %1$s met de groep %3$s verwijderd", @@ -156,6 +124,7 @@ "%2$s removed the public link for %1$s" : "%2$s heeft de openbare link voor %1$s verwijderd", "Your public link for %1$s expired" : "Je openbare link voor %1$s is verlopen", "The public link of %2$s for %1$s expired" : "De openbare link van %2$s voor %1$s is verlopen", + "%2$s shared %1$s with you" : "%2$s deelde %1$s met u", "%2$s removed the share for %1$s" : "%2$s heeft de share van %1$s verwijderd", "Shared with %2$s" : "Gedeeld met %2$s", "Shared with %3$s by %2$s" : "Gedeeld met %3$s door %2$s", @@ -168,9 +137,40 @@ "Shared via link by %2$s" : "Gedeeld via link door %2$s", "Shared via public link" : "Gedeeld via een openbare link", "%2$s removed public link" : "%2$s verwijderede openbare link", - "Public link expired" : "Openbare link is verlopen", "Public link of %2$s expired" : "Openbare link van %2$s is verlopen", "Shared by %2$s" : "Gedeeld door %2$s", - "Shares" : "Gedeeld" + "Shares" : "Gedeeld", + "Downloaded by %1$s" : "Gedownload door %1$s", + "%1$s downloaded via public link" : "%1$s gedownload via openbare link", + "%1$s downloaded %2$s" : "%1$s downloadde %2$s", + "Shared with group %1$s" : "Deelde met groep %1$s", + "Removed share for group %1$s" : "Share van de groep %1$s verwijderd", + "%2$s shared with group %1$s" : "%2$s deelde met groep %1$s", + "%2$s removed share for group %1$s" : "%2$s verwijderde share voor groep %1$s", + "You removed group %2$s from %1$s" : "Je verwijderde groep %2$s van %1$s", + "%3$s shared %1$s with group %2$s" : "%3$s deelde %1$s met groep %2$s", + "%3$s removed group %2$s from %1$s" : "%3$s verwijderde groep %2$s van %1$s", + "%1$s shared as public link" : "%1$s deelde als een openbare link", + "%1$s removed public link" : "%1$s verwijderde openbare link", + "You shared %1$s as public link" : "Je deelde %1$s als openbare link", + "You removed public link for %1$s" : "Je verwijderde de openbare link voor %1$s", + "%2$s shared %1$s as public link" : "%2$s deelde %1$s als een openbare link", + "%2$s removed public link for %1$s" : "%2$s verwijderde openbare link voor %1$s", + "%1$s accepted the remote share" : "%1$s accepteerde externe share", + "%1$s declined the remote share" : "%1$s weigerde externe share", + "You received a new remote share %1$s from %2$s" : "Je ontving een nieuwe externe share voor %1$s van %2$s", + "%2$s accepted the remote share of %1$s" : "%2$s accepteerde externe share van %1$s", + "%2$s declined the remote share of %1$s" : "%2$s weigerde de externe share van %1$s", + "%2$s unshared %1$s from you" : "%2$s stopte met delen van %1$s met jou", + "Shared with %1$s" : "Gedeeld met %1$s", + "Removed share for %1$s" : "Verwijderde share voor %1$s", + "%2$s shared with %1$s" : "%2$s deelde met %1$s", + "%2$s removed share for %1$s" : "%2$s verwijderde de share voor %1$s", + "Shared by %1$s" : "Gedeeld door %1$s", + "%1$s removed share" : "%1$s verwijderde de share", + "You removed %2$s from %1$s" : "Je verwijderde %2$s van %1$s", + "%3$s shared %1$s with %2$s" : "%3$s deelde %1$s met %2$s", + "%3$s removed %2$s from %1$s" : "%3$s verwijderde %2$s van %1$s", + "%2$s removed you from %1$s" : "%2$s verwijderde jou van %1$s" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/pl.js b/apps/files_sharing/l10n/pl.js index 0e2339b6581..515f15fd091 100644 --- a/apps/files_sharing/l10n/pl.js +++ b/apps/files_sharing/l10n/pl.js @@ -20,76 +20,42 @@ OC.L10N.register( "Sharing" : "Udostępnianie", "File shares" : "Udziały", "Downloaded via public link" : "Pobierane poprzez link publiczny", - "Downloaded by %1$s" : "Pobierane przez %1$s", "Downloaded by {email}" : "Pobierane przez {email}", - "%1$s downloaded via public link" : "%1$s pobierane za pośrednictwem łącza publicznego", "{file} downloaded via public link" : "{file} pobierane za pośrednictwem łącza publicznego", - "%1$s downloaded %2$s" : "%1$s pobierane %2$s", "{email} downloaded {file}" : "{email} pobierane {file}", - "Shared with group %1$s" : "Udostępnione grupie %1$s", "Shared with group {group}" : "Udostępnione grupie {group}", - "Removed share for group %1$s" : "Zakończono udostępnianie grupie %1$s", "Removed share for group {group}" : "Zakończono udostępnianie grupie {group}", - "%2$s shared with group %1$s" : "%2$s jest udostępniane grupie %1$s", "{actor} shared with group {group}" : "{actor} udostępnił grupie {group}", - "%2$s removed share for group %1$s" : "%2$s zakończył udostępnianie grupie %1$s", "{actor} removed share for group {group}" : "{actor} zakończył udostępnianie grupie {group}", - "You shared %1$s with group %2$s" : "Współdzielisz %1$s z grupą %2$s", "You shared {file} with group {group}" : "Udostępniasz {file} grupie {group}", - "You removed group %2$s from %1$s" : "Usunąłeś grupę %2$s z %1$s", - "You removed group {group} from {file}" : "Usunąłeś grupę {group} z {file}", - "%3$s shared %1$s with group %2$s" : "%3$s udostępnił %1$s grupie %2$s", + "You removed group {group} from {file}" : "Usunięto grupę {group} z {file}", "{actor} shared {file} with group {group}" : "{actor} udostępnił {file} grupie {group}", - "%3$s removed group %2$s from %1$s" : "%3$s usunął grupę %2$s z %1$s", "{actor} removed group {group} from {file}" : "{actor} usunął grupę {group} z {file}", "Shared as public link" : "Udostępnione jako publiczny link", "Removed public link" : "Usunięto link publiczny", - "%1$s shared as public link" : "%1$s udostępnione jako publiczny link", + "Public link expired" : "Link publiczny wygasł", "{actor} shared as public link" : "{actor} udostępniony jako publiczny link", - "%1$s removed public link" : "%1$s usunąłeś publiczny link", "{actor} removed public link" : "{actor} usunął publiczny link", - "You shared %1$s as public link" : "Udostępniasz %1$s jako publiczny link", "You shared {file} as public link" : "Udostępniasz {file} jako publiczny link", - "You removed public link for %1$s" : "Usuwasz link publiczny dla %1$s", "You removed public link for {file}" : "Usuwasz link publiczny dla {file}", - "%2$s shared %1$s as public link" : "%2$s udostępnił %1$s jako publiczne łącze", "{actor} shared {file} as public link" : "{actor} udostępnił {file} jako publiczne łącze", - "%2$s removed public link for %1$s" : "%2$s usunął publiczne łącze do %1$s", "{actor} removed public link for {file}" : "{actor} usunął publiczne łącze do {file}", - "%1$s accepted the remote share" : "%1$s zaakceptował zdalny udział", "{user} accepted the remote share" : "{user} zaakceptował zdalny udział", - "%1$s declined the remote share" : "%1$s odrzucił zdalny udział", "{user} declined the remote share" : "{user} odrzucił zdalny udział", - "You received a new remote share %1$s from %2$s" : "Otrzymałeś nowy zdalny udział %1$s od użytkownika %2$s", "You received a new remote share {file} from {user}" : "Otrzymałeś nowy zdalny udział {file} od użytkownika {user}", - "%2$s accepted the remote share of %1$s" : "%2$s zaakceptował zdalny udział %1$s", "{user} accepted the remote share of {file}" : "{user} zaakceptował zdalny udział {file}", - "%2$s declined the remote share of %1$s" : "%2$s odrzucił zdalny udział %1$s", "{user} declined the remote share of {file}" : "{user} odrzucił zadalny udział {file}", - "%2$s unshared %1$s from you" : "%2$s przestał ci udostępniać %1$s", "{user} unshared {file} from you" : "{user} przestał ci udostępniać {file}", - "Shared with %1$s" : "Udostępnione %1$s", "Shared with {user}" : "Udostępnione użytkownikowi {user}", - "Removed share for %1$s" : "Zakończono udostępnianie użytkownikowi %1$s", "Removed share for {user}" : "Zakończono udostępnianie użytkownikowi {user}", - "%2$s shared with %1$s" : "%2$s udostępnia użytkownikowi %1$s", "{actor} shared with {user}" : "{actor} udostępnia użytkownikowi {user}", - "%2$s removed share for %1$s" : "%2$s usuwa udostępnienie dla użytkownika %1$s", "{actor} removed share for {user}" : "{actor} usuwa udostępnienie dla użytkownika {user}", - "Shared by %1$s" : "Udostępnione przez użytkownika %1$s", "Shared by {actor}" : "Udostępnione przez użytkownika {actor}", - "%1$s removed share" : "%1$s usunął udostępnienie", "{actor} removed share" : "{actor} usunął udostępnienie", - "You shared %1$s with %2$s" : "Współdzielisz %1$s z %2$s", "You shared {file} with {user}" : "Współdzielisz {file} z {user}", - "You removed %2$s from %1$s" : "Usunąłeś użytkownika %2$s z %1$s", "You removed {user} from {file}" : "Usunąłeś użytkownika {user} z {file}", - "%3$s shared %1$s with %2$s" : "%3$s udostępnił %1$s użytkownikowi %2$s", "{actor} removed {user} from {file}" : "{actor} usunął użytkownika {user} z {file}", - "%3$s removed %2$s from %1$s" : "%3$s usunął użytkownika %2$s z %1$s", - "%2$s shared %1$s with you" : "%2$s współdzieli %1$s z Tobą", "{actor} shared {file} with you" : "{actor} udostępnił ci {file}", - "%2$s removed you from %1$s" : "%2$s usunął cię z %1$s", "{actor} removed you from {file}" : "{actor} usunął cie z {file}", "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Plik lub folder udostępniony za pomocą maila lub publicznego łącza został <strong>pobrany</strong>", "A file or folder was shared from <strong>another server</strong>" : "Plik lub folder został udostępniony z <strong>innego serwera</strong>", @@ -146,23 +112,59 @@ OC.L10N.register( "%1$s unshared %2$s from you" : "%1$s zakończył udostępnianie Ci %2$s", "Public shared folder %1$s was downloaded" : "Udostępniony publicznie folder %1$s został pobrany", "Public shared file %1$s was downloaded" : "Udostępniony publicznie plik %1$s został pobrany", + "You shared %1$s with %2$s" : "Współdzielisz %1$s z %2$s", "%2$s shared %1$s with %3$s" : "%2$s udostępnił %1$s użytkownikowi %3$s", "You removed the share of %2$s for %1$s" : "Zakończyłeś udostępnianie %2$s użytkownikowi %1$s", "%2$s removed the share of %3$s for %1$s" : "%2$s zakończył udostępnianie %3$s użytkownikowi %1$s", + "You shared %1$s with group %2$s" : "Współdzielisz %1$s z grupą %2$s", "%2$s shared %1$s with group %3$s" : "%2$s udostępnił %1$s grupie %3$s", "%2$s shared %1$s via link" : "%2$s udostępnił %1$s poprzez łącze", "You shared %1$s via link" : "Udostępniasz %1$s przez link", "Your public link for %1$s expired" : "Twoje publiczne łącze do %1$s wygasło", + "%2$s shared %1$s with you" : "%2$s współdzieli %1$s z Tobą", "%2$s removed the share for %1$s" : "%2$s usunął udział dla %1$s", "Shared with %2$s" : "Współdzielone z %2$s", "Shared with %3$s by %2$s" : "Udostępniono użytkownikowi %3$s przez %2$s", "Shared with group %2$s" : "Udostępniono grupie %2$s", "Shared with group %3$s by %2$s" : "Udostępniono grupie %3$s przez użytkownika %2$s", + "%2$s removed share of group %3$s" : "%2$s usunął(-ęła) udostępnianie grupie %3$s", "Shared via link by %2$s" : "Udostępniono za pomocą łącza przez użytkownika %2$s", "Shared via public link" : "Udostępniono przez publiczne łącze", "%2$s removed public link" : "%2$s usunął publiczne łącze", - "Public link expired" : "Link publiczny wygasł", + "Public link of %2$s expired" : "Publiczne łącze użytkownika %2$s wygasło", "Shared by %2$s" : "Udostępniane przez %2$s", - "Shares" : "Udziały" + "Shares" : "Udziały", + "Downloaded by %1$s" : "Pobierane przez %1$s", + "%1$s downloaded via public link" : "%1$s pobierane za pośrednictwem łącza publicznego", + "%1$s downloaded %2$s" : "%1$s pobierane %2$s", + "Shared with group %1$s" : "Udostępnione grupie %1$s", + "Removed share for group %1$s" : "Zakończono udostępnianie grupie %1$s", + "%2$s shared with group %1$s" : "%2$s jest udostępniane grupie %1$s", + "%2$s removed share for group %1$s" : "%2$s zakończył udostępnianie grupie %1$s", + "You removed group %2$s from %1$s" : "Usunąłeś grupę %2$s z %1$s", + "%3$s shared %1$s with group %2$s" : "%3$s udostępnił %1$s grupie %2$s", + "%3$s removed group %2$s from %1$s" : "%3$s usunął grupę %2$s z %1$s", + "%1$s shared as public link" : "%1$s udostępnione jako publiczny link", + "%1$s removed public link" : "%1$s usunąłeś publiczny link", + "You shared %1$s as public link" : "Udostępniasz %1$s jako publiczny link", + "You removed public link for %1$s" : "Usuwasz link publiczny dla %1$s", + "%2$s shared %1$s as public link" : "%2$s udostępnił %1$s jako publiczne łącze", + "%2$s removed public link for %1$s" : "%2$s usunął publiczne łącze do %1$s", + "%1$s accepted the remote share" : "%1$s zaakceptował zdalny udział", + "%1$s declined the remote share" : "%1$s odrzucił zdalny udział", + "You received a new remote share %1$s from %2$s" : "Otrzymałeś nowy zdalny udział %1$s od użytkownika %2$s", + "%2$s accepted the remote share of %1$s" : "%2$s zaakceptował zdalny udział %1$s", + "%2$s declined the remote share of %1$s" : "%2$s odrzucił zdalny udział %1$s", + "%2$s unshared %1$s from you" : "%2$s przestał ci udostępniać %1$s", + "Shared with %1$s" : "Udostępnione %1$s", + "Removed share for %1$s" : "Zakończono udostępnianie użytkownikowi %1$s", + "%2$s shared with %1$s" : "%2$s udostępnia użytkownikowi %1$s", + "%2$s removed share for %1$s" : "%2$s usuwa udostępnienie dla użytkownika %1$s", + "Shared by %1$s" : "Udostępnione przez użytkownika %1$s", + "%1$s removed share" : "%1$s usunął udostępnienie", + "You removed %2$s from %1$s" : "Usunąłeś użytkownika %2$s z %1$s", + "%3$s shared %1$s with %2$s" : "%3$s udostępnił %1$s użytkownikowi %2$s", + "%3$s removed %2$s from %1$s" : "%3$s usunął użytkownika %2$s z %1$s", + "%2$s removed you from %1$s" : "%2$s usunął cię z %1$s" }, "nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); diff --git a/apps/files_sharing/l10n/pl.json b/apps/files_sharing/l10n/pl.json index 955222647b3..14db7d9b38f 100644 --- a/apps/files_sharing/l10n/pl.json +++ b/apps/files_sharing/l10n/pl.json @@ -18,76 +18,42 @@ "Sharing" : "Udostępnianie", "File shares" : "Udziały", "Downloaded via public link" : "Pobierane poprzez link publiczny", - "Downloaded by %1$s" : "Pobierane przez %1$s", "Downloaded by {email}" : "Pobierane przez {email}", - "%1$s downloaded via public link" : "%1$s pobierane za pośrednictwem łącza publicznego", "{file} downloaded via public link" : "{file} pobierane za pośrednictwem łącza publicznego", - "%1$s downloaded %2$s" : "%1$s pobierane %2$s", "{email} downloaded {file}" : "{email} pobierane {file}", - "Shared with group %1$s" : "Udostępnione grupie %1$s", "Shared with group {group}" : "Udostępnione grupie {group}", - "Removed share for group %1$s" : "Zakończono udostępnianie grupie %1$s", "Removed share for group {group}" : "Zakończono udostępnianie grupie {group}", - "%2$s shared with group %1$s" : "%2$s jest udostępniane grupie %1$s", "{actor} shared with group {group}" : "{actor} udostępnił grupie {group}", - "%2$s removed share for group %1$s" : "%2$s zakończył udostępnianie grupie %1$s", "{actor} removed share for group {group}" : "{actor} zakończył udostępnianie grupie {group}", - "You shared %1$s with group %2$s" : "Współdzielisz %1$s z grupą %2$s", "You shared {file} with group {group}" : "Udostępniasz {file} grupie {group}", - "You removed group %2$s from %1$s" : "Usunąłeś grupę %2$s z %1$s", - "You removed group {group} from {file}" : "Usunąłeś grupę {group} z {file}", - "%3$s shared %1$s with group %2$s" : "%3$s udostępnił %1$s grupie %2$s", + "You removed group {group} from {file}" : "Usunięto grupę {group} z {file}", "{actor} shared {file} with group {group}" : "{actor} udostępnił {file} grupie {group}", - "%3$s removed group %2$s from %1$s" : "%3$s usunął grupę %2$s z %1$s", "{actor} removed group {group} from {file}" : "{actor} usunął grupę {group} z {file}", "Shared as public link" : "Udostępnione jako publiczny link", "Removed public link" : "Usunięto link publiczny", - "%1$s shared as public link" : "%1$s udostępnione jako publiczny link", + "Public link expired" : "Link publiczny wygasł", "{actor} shared as public link" : "{actor} udostępniony jako publiczny link", - "%1$s removed public link" : "%1$s usunąłeś publiczny link", "{actor} removed public link" : "{actor} usunął publiczny link", - "You shared %1$s as public link" : "Udostępniasz %1$s jako publiczny link", "You shared {file} as public link" : "Udostępniasz {file} jako publiczny link", - "You removed public link for %1$s" : "Usuwasz link publiczny dla %1$s", "You removed public link for {file}" : "Usuwasz link publiczny dla {file}", - "%2$s shared %1$s as public link" : "%2$s udostępnił %1$s jako publiczne łącze", "{actor} shared {file} as public link" : "{actor} udostępnił {file} jako publiczne łącze", - "%2$s removed public link for %1$s" : "%2$s usunął publiczne łącze do %1$s", "{actor} removed public link for {file}" : "{actor} usunął publiczne łącze do {file}", - "%1$s accepted the remote share" : "%1$s zaakceptował zdalny udział", "{user} accepted the remote share" : "{user} zaakceptował zdalny udział", - "%1$s declined the remote share" : "%1$s odrzucił zdalny udział", "{user} declined the remote share" : "{user} odrzucił zdalny udział", - "You received a new remote share %1$s from %2$s" : "Otrzymałeś nowy zdalny udział %1$s od użytkownika %2$s", "You received a new remote share {file} from {user}" : "Otrzymałeś nowy zdalny udział {file} od użytkownika {user}", - "%2$s accepted the remote share of %1$s" : "%2$s zaakceptował zdalny udział %1$s", "{user} accepted the remote share of {file}" : "{user} zaakceptował zdalny udział {file}", - "%2$s declined the remote share of %1$s" : "%2$s odrzucił zdalny udział %1$s", "{user} declined the remote share of {file}" : "{user} odrzucił zadalny udział {file}", - "%2$s unshared %1$s from you" : "%2$s przestał ci udostępniać %1$s", "{user} unshared {file} from you" : "{user} przestał ci udostępniać {file}", - "Shared with %1$s" : "Udostępnione %1$s", "Shared with {user}" : "Udostępnione użytkownikowi {user}", - "Removed share for %1$s" : "Zakończono udostępnianie użytkownikowi %1$s", "Removed share for {user}" : "Zakończono udostępnianie użytkownikowi {user}", - "%2$s shared with %1$s" : "%2$s udostępnia użytkownikowi %1$s", "{actor} shared with {user}" : "{actor} udostępnia użytkownikowi {user}", - "%2$s removed share for %1$s" : "%2$s usuwa udostępnienie dla użytkownika %1$s", "{actor} removed share for {user}" : "{actor} usuwa udostępnienie dla użytkownika {user}", - "Shared by %1$s" : "Udostępnione przez użytkownika %1$s", "Shared by {actor}" : "Udostępnione przez użytkownika {actor}", - "%1$s removed share" : "%1$s usunął udostępnienie", "{actor} removed share" : "{actor} usunął udostępnienie", - "You shared %1$s with %2$s" : "Współdzielisz %1$s z %2$s", "You shared {file} with {user}" : "Współdzielisz {file} z {user}", - "You removed %2$s from %1$s" : "Usunąłeś użytkownika %2$s z %1$s", "You removed {user} from {file}" : "Usunąłeś użytkownika {user} z {file}", - "%3$s shared %1$s with %2$s" : "%3$s udostępnił %1$s użytkownikowi %2$s", "{actor} removed {user} from {file}" : "{actor} usunął użytkownika {user} z {file}", - "%3$s removed %2$s from %1$s" : "%3$s usunął użytkownika %2$s z %1$s", - "%2$s shared %1$s with you" : "%2$s współdzieli %1$s z Tobą", "{actor} shared {file} with you" : "{actor} udostępnił ci {file}", - "%2$s removed you from %1$s" : "%2$s usunął cię z %1$s", "{actor} removed you from {file}" : "{actor} usunął cie z {file}", "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Plik lub folder udostępniony za pomocą maila lub publicznego łącza został <strong>pobrany</strong>", "A file or folder was shared from <strong>another server</strong>" : "Plik lub folder został udostępniony z <strong>innego serwera</strong>", @@ -144,23 +110,59 @@ "%1$s unshared %2$s from you" : "%1$s zakończył udostępnianie Ci %2$s", "Public shared folder %1$s was downloaded" : "Udostępniony publicznie folder %1$s został pobrany", "Public shared file %1$s was downloaded" : "Udostępniony publicznie plik %1$s został pobrany", + "You shared %1$s with %2$s" : "Współdzielisz %1$s z %2$s", "%2$s shared %1$s with %3$s" : "%2$s udostępnił %1$s użytkownikowi %3$s", "You removed the share of %2$s for %1$s" : "Zakończyłeś udostępnianie %2$s użytkownikowi %1$s", "%2$s removed the share of %3$s for %1$s" : "%2$s zakończył udostępnianie %3$s użytkownikowi %1$s", + "You shared %1$s with group %2$s" : "Współdzielisz %1$s z grupą %2$s", "%2$s shared %1$s with group %3$s" : "%2$s udostępnił %1$s grupie %3$s", "%2$s shared %1$s via link" : "%2$s udostępnił %1$s poprzez łącze", "You shared %1$s via link" : "Udostępniasz %1$s przez link", "Your public link for %1$s expired" : "Twoje publiczne łącze do %1$s wygasło", + "%2$s shared %1$s with you" : "%2$s współdzieli %1$s z Tobą", "%2$s removed the share for %1$s" : "%2$s usunął udział dla %1$s", "Shared with %2$s" : "Współdzielone z %2$s", "Shared with %3$s by %2$s" : "Udostępniono użytkownikowi %3$s przez %2$s", "Shared with group %2$s" : "Udostępniono grupie %2$s", "Shared with group %3$s by %2$s" : "Udostępniono grupie %3$s przez użytkownika %2$s", + "%2$s removed share of group %3$s" : "%2$s usunął(-ęła) udostępnianie grupie %3$s", "Shared via link by %2$s" : "Udostępniono za pomocą łącza przez użytkownika %2$s", "Shared via public link" : "Udostępniono przez publiczne łącze", "%2$s removed public link" : "%2$s usunął publiczne łącze", - "Public link expired" : "Link publiczny wygasł", + "Public link of %2$s expired" : "Publiczne łącze użytkownika %2$s wygasło", "Shared by %2$s" : "Udostępniane przez %2$s", - "Shares" : "Udziały" + "Shares" : "Udziały", + "Downloaded by %1$s" : "Pobierane przez %1$s", + "%1$s downloaded via public link" : "%1$s pobierane za pośrednictwem łącza publicznego", + "%1$s downloaded %2$s" : "%1$s pobierane %2$s", + "Shared with group %1$s" : "Udostępnione grupie %1$s", + "Removed share for group %1$s" : "Zakończono udostępnianie grupie %1$s", + "%2$s shared with group %1$s" : "%2$s jest udostępniane grupie %1$s", + "%2$s removed share for group %1$s" : "%2$s zakończył udostępnianie grupie %1$s", + "You removed group %2$s from %1$s" : "Usunąłeś grupę %2$s z %1$s", + "%3$s shared %1$s with group %2$s" : "%3$s udostępnił %1$s grupie %2$s", + "%3$s removed group %2$s from %1$s" : "%3$s usunął grupę %2$s z %1$s", + "%1$s shared as public link" : "%1$s udostępnione jako publiczny link", + "%1$s removed public link" : "%1$s usunąłeś publiczny link", + "You shared %1$s as public link" : "Udostępniasz %1$s jako publiczny link", + "You removed public link for %1$s" : "Usuwasz link publiczny dla %1$s", + "%2$s shared %1$s as public link" : "%2$s udostępnił %1$s jako publiczne łącze", + "%2$s removed public link for %1$s" : "%2$s usunął publiczne łącze do %1$s", + "%1$s accepted the remote share" : "%1$s zaakceptował zdalny udział", + "%1$s declined the remote share" : "%1$s odrzucił zdalny udział", + "You received a new remote share %1$s from %2$s" : "Otrzymałeś nowy zdalny udział %1$s od użytkownika %2$s", + "%2$s accepted the remote share of %1$s" : "%2$s zaakceptował zdalny udział %1$s", + "%2$s declined the remote share of %1$s" : "%2$s odrzucił zdalny udział %1$s", + "%2$s unshared %1$s from you" : "%2$s przestał ci udostępniać %1$s", + "Shared with %1$s" : "Udostępnione %1$s", + "Removed share for %1$s" : "Zakończono udostępnianie użytkownikowi %1$s", + "%2$s shared with %1$s" : "%2$s udostępnia użytkownikowi %1$s", + "%2$s removed share for %1$s" : "%2$s usuwa udostępnienie dla użytkownika %1$s", + "Shared by %1$s" : "Udostępnione przez użytkownika %1$s", + "%1$s removed share" : "%1$s usunął udostępnienie", + "You removed %2$s from %1$s" : "Usunąłeś użytkownika %2$s z %1$s", + "%3$s shared %1$s with %2$s" : "%3$s udostępnił %1$s użytkownikowi %2$s", + "%3$s removed %2$s from %1$s" : "%3$s usunął użytkownika %2$s z %1$s", + "%2$s removed you from %1$s" : "%2$s usunął cię z %1$s" },"pluralForm" :"nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/pt_BR.js b/apps/files_sharing/l10n/pt_BR.js index 6fe2b4ce50b..5bf4da4924d 100644 --- a/apps/files_sharing/l10n/pt_BR.js +++ b/apps/files_sharing/l10n/pt_BR.js @@ -20,76 +20,45 @@ OC.L10N.register( "Sharing" : "Compartilhamento", "File shares" : "Compartilhamentos de arquivos", "Downloaded via public link" : "Baixar via link público", - "Downloaded by %1$s" : "Baixado por %1$s", "Downloaded by {email}" : "Baixado por {email}", - "%1$s downloaded via public link" : "%1$s baixado via link público", "{file} downloaded via public link" : "{file} baixado via link público", - "%1$s downloaded %2$s" : "%1$s baixado %2$s", "{email} downloaded {file}" : "{email} baixado {file}", - "Shared with group %1$s" : "Compartilhado com o grupo %1$s", "Shared with group {group}" : "Compartilhado com o grupo {group}", - "Removed share for group %1$s" : "Compartilhamento removido para o grupo %1$s", "Removed share for group {group}" : "Compartilhamento removido para o grupo {group}", - "%2$s shared with group %1$s" : "%2$s compartilhado do o grupo %1$s", "{actor} shared with group {group}" : "{actor} compartilhado com o grupo {group}", - "%2$s removed share for group %1$s" : "%2$s compartilhamento removido para o grupo %1$s", "{actor} removed share for group {group}" : "{actor} removeu compartilhamento para o grupo {group}", - "You shared %1$s with group %2$s" : "Você compartilhou %1$s com o grupo %2$s", "You shared {file} with group {group}" : "Você compartilhou {file} com o grupo {group} ", - "You removed group %2$s from %1$s" : "Voce removeu o grupo %2$s de %1$s", "You removed group {group} from {file}" : "Voce removeu o grupo {group} de {file}", - "%3$s shared %1$s with group %2$s" : "%3$s compartilhado %1$s com o grupo %2$s", "{actor} shared {file} with group {group}" : "{actor} compartilhado {file} com o grupo {group}", - "%3$s removed group %2$s from %1$s" : "%3$s removido grupo %2$s de %1$s", "{actor} removed group {group} from {file}" : "{actor} removido grupo {group} de {file}", "Shared as public link" : "Compartilhado como um link publico", "Removed public link" : "Removido o link público", - "%1$s shared as public link" : "%1$s compartilhado como um link publico", + "Public link expired" : "O link público expirou", "{actor} shared as public link" : "{actor} compartilhado como um link publico", - "%1$s removed public link" : "%1$s removido link publico", "{actor} removed public link" : "{actor} removido link publico", - "You shared %1$s as public link" : "Voce compartilhou %1$s como um link publico", + "Public link of {actor} expired" : "O Link público de {actor} expirou.", "You shared {file} as public link" : "Voce compartilhou {file} como um link publico", - "You removed public link for %1$s" : "Voce removeu o link publico para %1$s", "You removed public link for {file}" : "Voce removeu o link publico para {file}", - "%2$s shared %1$s as public link" : "%2$s compartilhado %1$s como um link publico", + "Public link expired for {file}" : "O Link Público para {file} expirou", "{actor} shared {file} as public link" : "{actor} compartilhado {file} como um link publico", - "%2$s removed public link for %1$s" : "%2$s removido link publico para %1$s", "{actor} removed public link for {file}" : "{actor} removido link publico para {file}", - "%1$s accepted the remote share" : "%1$s aceitou o compartilhamento remoto", + "Public link of {actor} for {file} expired" : "O Link Público de {actor} para {file} espirou", "{user} accepted the remote share" : "{user} aceitou o compartilhamento remoto", - "%1$s declined the remote share" : "%1$s declinou do compartilhamento remoto", "{user} declined the remote share" : "{user} declinou do compartilhamento remoto", - "You received a new remote share %1$s from %2$s" : "Voce recebeu um novo compartilhamento remoto %1$s de %2$s", "You received a new remote share {file} from {user}" : "Voce recebeu um novo compartilhamento remoto {file} de {user}", - "%2$s accepted the remote share of %1$s" : "%2$s aceitou o compartilhamento remoto de %1$s", "{user} accepted the remote share of {file}" : "{user} aceitou o compartilhamento remoto de {file}", - "%2$s declined the remote share of %1$s" : "%2$s declinou o compartilhamento remoto de %1$s", "{user} declined the remote share of {file}" : "{user} declinou o compartilhamento remoto de {file}", - "%2$s unshared %1$s from you" : "%2$s descompartilhou %1$s de voce", "{user} unshared {file} from you" : "{user} descompartilhou {file} de voce", - "Shared with %1$s" : "Compartilhado com %1$s", "Shared with {user}" : "Compartilhado com {user}", - "Removed share for %1$s" : "Compartilhamento removido para %1$s", "Removed share for {user}" : "Compartilhamento removido para {user}", - "%2$s shared with %1$s" : "%2$s compartilhado com %1$s", "{actor} shared with {user}" : "{actor} compartilhado com {user}", - "%2$s removed share for %1$s" : "%2$s compartilhamento removido para %1$s", "{actor} removed share for {user}" : "{actor} compartilhamento removido para {user}", - "Shared by %1$s" : "Compartilhado por %1$s", "Shared by {actor}" : "Compartilhado por {actor}", - "%1$s removed share" : "%1$s compartilhamento removido", "{actor} removed share" : "{actor} compartilhamento removido", - "You shared %1$s with %2$s" : "Você compartilhou %1$s com %2$s", "You shared {file} with {user}" : "Voce compartilhou {arquivo} com {user}", - "You removed %2$s from %1$s" : "Voce removeu %2$s de %1$s", "You removed {user} from {file}" : "Voce removeu {user} de {file}", - "%3$s shared %1$s with %2$s" : "%3$s compartilhado %1$s com %2$s", "{actor} removed {user} from {file}" : "{actor} removido {user} de {file}", - "%3$s removed %2$s from %1$s" : "%3$s removido %2$s de %1$s", - "%2$s shared %1$s with you" : "%2$s compartilhou %1$s com você", "{actor} shared {file} with you" : "{actor} compartilhado {file} com voce", - "%2$s removed you from %1$s" : "%2$s removeu voce de %1$s", "{actor} removed you from {file}" : "{actor} removeu voce de {file}", "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Um arquivo ou pasta compartilhado por email ou por link publico foi <strong>baixado</strong>", "A file or folder was shared from <strong>another server</strong>" : "Um arquivo ou pasta foi compartilhado a partir de <strong>outro servidor</strong>", @@ -146,9 +115,11 @@ OC.L10N.register( "%1$s unshared %2$s from you" : "%1$s não compartilhados %2$s de você", "Public shared folder %1$s was downloaded" : "A pasta %1$s compartilhada publicamente foi baixada", "Public shared file %1$s was downloaded" : "O arquivo %1$s compartilhado publicamente foi baixado", + "You shared %1$s with %2$s" : "Você compartilhou %1$s com %2$s", "%2$s shared %1$s with %3$s" : "%2$s compartilhado %1$s com %3$s", "You removed the share of %2$s for %1$s" : "Você removeu o compartilhamento de %2$s para %1$s", "%2$s removed the share of %3$s for %1$s" : "%2$s removido o compartilhamento de %3$s para %1$s", + "You shared %1$s with group %2$s" : "Você compartilhou %1$s com o grupo %2$s", "%2$s shared %1$s with group %3$s" : "%2$s compartilhado %1$s com o grupo %3$s", "You removed the share of group %2$s for %1$s" : "Você removeu o compartilhamento de %2$s para %1$s", "%2$s removed the share of group %3$s for %1$s" : "%2$s removido o compartilhamento do grupo %3$s para %1$s", @@ -158,6 +129,7 @@ OC.L10N.register( "%2$s removed the public link for %1$s" : "%2$s removeu o link público de %1$s", "Your public link for %1$s expired" : "O seu link público para %1$s expirou", "The public link of %2$s for %1$s expired" : "O link público de %2$s para %1$s expirou", + "%2$s shared %1$s with you" : "%2$s compartilhou %1$s com você", "%2$s removed the share for %1$s" : "%2$s removeu o compartilhamento para %1$s", "Shared with %2$s" : "Compartilhado com %2$s", "Shared with %3$s by %2$s" : "Compartilhado com %3$s por %2$s", @@ -170,9 +142,40 @@ OC.L10N.register( "Shared via link by %2$s" : "Compartilhado via link por %2$s", "Shared via public link" : "Compartilhado via link público", "%2$s removed public link" : "%2$s removeu o link público", - "Public link expired" : "O link público expirou", "Public link of %2$s expired" : "O link público de %2$s expirou", "Shared by %2$s" : "Compartilhado por %2$s", - "Shares" : "Compartilhamentos" + "Shares" : "Compartilhamentos", + "Downloaded by %1$s" : "Baixado por %1$s", + "%1$s downloaded via public link" : "%1$s baixado via link público", + "%1$s downloaded %2$s" : "%1$s baixado %2$s", + "Shared with group %1$s" : "Compartilhado com o grupo %1$s", + "Removed share for group %1$s" : "Compartilhamento removido para o grupo %1$s", + "%2$s shared with group %1$s" : "%2$s compartilhado do o grupo %1$s", + "%2$s removed share for group %1$s" : "%2$s compartilhamento removido para o grupo %1$s", + "You removed group %2$s from %1$s" : "Voce removeu o grupo %2$s de %1$s", + "%3$s shared %1$s with group %2$s" : "%3$s compartilhado %1$s com o grupo %2$s", + "%3$s removed group %2$s from %1$s" : "%3$s removido grupo %2$s de %1$s", + "%1$s shared as public link" : "%1$s compartilhado como um link publico", + "%1$s removed public link" : "%1$s removido link publico", + "You shared %1$s as public link" : "Voce compartilhou %1$s como um link publico", + "You removed public link for %1$s" : "Voce removeu o link publico para %1$s", + "%2$s shared %1$s as public link" : "%2$s compartilhado %1$s como um link publico", + "%2$s removed public link for %1$s" : "%2$s removido link publico para %1$s", + "%1$s accepted the remote share" : "%1$s aceitou o compartilhamento remoto", + "%1$s declined the remote share" : "%1$s declinou do compartilhamento remoto", + "You received a new remote share %1$s from %2$s" : "Voce recebeu um novo compartilhamento remoto %1$s de %2$s", + "%2$s accepted the remote share of %1$s" : "%2$s aceitou o compartilhamento remoto de %1$s", + "%2$s declined the remote share of %1$s" : "%2$s declinou o compartilhamento remoto de %1$s", + "%2$s unshared %1$s from you" : "%2$s descompartilhou %1$s de voce", + "Shared with %1$s" : "Compartilhado com %1$s", + "Removed share for %1$s" : "Compartilhamento removido para %1$s", + "%2$s shared with %1$s" : "%2$s compartilhado com %1$s", + "%2$s removed share for %1$s" : "%2$s compartilhamento removido para %1$s", + "Shared by %1$s" : "Compartilhado por %1$s", + "%1$s removed share" : "%1$s compartilhamento removido", + "You removed %2$s from %1$s" : "Voce removeu %2$s de %1$s", + "%3$s shared %1$s with %2$s" : "%3$s compartilhado %1$s com %2$s", + "%3$s removed %2$s from %1$s" : "%3$s removido %2$s de %1$s", + "%2$s removed you from %1$s" : "%2$s removeu voce de %1$s" }, "nplurals=2; plural=(n > 1);"); diff --git a/apps/files_sharing/l10n/pt_BR.json b/apps/files_sharing/l10n/pt_BR.json index 59536fa6e15..8019c841685 100644 --- a/apps/files_sharing/l10n/pt_BR.json +++ b/apps/files_sharing/l10n/pt_BR.json @@ -18,76 +18,45 @@ "Sharing" : "Compartilhamento", "File shares" : "Compartilhamentos de arquivos", "Downloaded via public link" : "Baixar via link público", - "Downloaded by %1$s" : "Baixado por %1$s", "Downloaded by {email}" : "Baixado por {email}", - "%1$s downloaded via public link" : "%1$s baixado via link público", "{file} downloaded via public link" : "{file} baixado via link público", - "%1$s downloaded %2$s" : "%1$s baixado %2$s", "{email} downloaded {file}" : "{email} baixado {file}", - "Shared with group %1$s" : "Compartilhado com o grupo %1$s", "Shared with group {group}" : "Compartilhado com o grupo {group}", - "Removed share for group %1$s" : "Compartilhamento removido para o grupo %1$s", "Removed share for group {group}" : "Compartilhamento removido para o grupo {group}", - "%2$s shared with group %1$s" : "%2$s compartilhado do o grupo %1$s", "{actor} shared with group {group}" : "{actor} compartilhado com o grupo {group}", - "%2$s removed share for group %1$s" : "%2$s compartilhamento removido para o grupo %1$s", "{actor} removed share for group {group}" : "{actor} removeu compartilhamento para o grupo {group}", - "You shared %1$s with group %2$s" : "Você compartilhou %1$s com o grupo %2$s", "You shared {file} with group {group}" : "Você compartilhou {file} com o grupo {group} ", - "You removed group %2$s from %1$s" : "Voce removeu o grupo %2$s de %1$s", "You removed group {group} from {file}" : "Voce removeu o grupo {group} de {file}", - "%3$s shared %1$s with group %2$s" : "%3$s compartilhado %1$s com o grupo %2$s", "{actor} shared {file} with group {group}" : "{actor} compartilhado {file} com o grupo {group}", - "%3$s removed group %2$s from %1$s" : "%3$s removido grupo %2$s de %1$s", "{actor} removed group {group} from {file}" : "{actor} removido grupo {group} de {file}", "Shared as public link" : "Compartilhado como um link publico", "Removed public link" : "Removido o link público", - "%1$s shared as public link" : "%1$s compartilhado como um link publico", + "Public link expired" : "O link público expirou", "{actor} shared as public link" : "{actor} compartilhado como um link publico", - "%1$s removed public link" : "%1$s removido link publico", "{actor} removed public link" : "{actor} removido link publico", - "You shared %1$s as public link" : "Voce compartilhou %1$s como um link publico", + "Public link of {actor} expired" : "O Link público de {actor} expirou.", "You shared {file} as public link" : "Voce compartilhou {file} como um link publico", - "You removed public link for %1$s" : "Voce removeu o link publico para %1$s", "You removed public link for {file}" : "Voce removeu o link publico para {file}", - "%2$s shared %1$s as public link" : "%2$s compartilhado %1$s como um link publico", + "Public link expired for {file}" : "O Link Público para {file} expirou", "{actor} shared {file} as public link" : "{actor} compartilhado {file} como um link publico", - "%2$s removed public link for %1$s" : "%2$s removido link publico para %1$s", "{actor} removed public link for {file}" : "{actor} removido link publico para {file}", - "%1$s accepted the remote share" : "%1$s aceitou o compartilhamento remoto", + "Public link of {actor} for {file} expired" : "O Link Público de {actor} para {file} espirou", "{user} accepted the remote share" : "{user} aceitou o compartilhamento remoto", - "%1$s declined the remote share" : "%1$s declinou do compartilhamento remoto", "{user} declined the remote share" : "{user} declinou do compartilhamento remoto", - "You received a new remote share %1$s from %2$s" : "Voce recebeu um novo compartilhamento remoto %1$s de %2$s", "You received a new remote share {file} from {user}" : "Voce recebeu um novo compartilhamento remoto {file} de {user}", - "%2$s accepted the remote share of %1$s" : "%2$s aceitou o compartilhamento remoto de %1$s", "{user} accepted the remote share of {file}" : "{user} aceitou o compartilhamento remoto de {file}", - "%2$s declined the remote share of %1$s" : "%2$s declinou o compartilhamento remoto de %1$s", "{user} declined the remote share of {file}" : "{user} declinou o compartilhamento remoto de {file}", - "%2$s unshared %1$s from you" : "%2$s descompartilhou %1$s de voce", "{user} unshared {file} from you" : "{user} descompartilhou {file} de voce", - "Shared with %1$s" : "Compartilhado com %1$s", "Shared with {user}" : "Compartilhado com {user}", - "Removed share for %1$s" : "Compartilhamento removido para %1$s", "Removed share for {user}" : "Compartilhamento removido para {user}", - "%2$s shared with %1$s" : "%2$s compartilhado com %1$s", "{actor} shared with {user}" : "{actor} compartilhado com {user}", - "%2$s removed share for %1$s" : "%2$s compartilhamento removido para %1$s", "{actor} removed share for {user}" : "{actor} compartilhamento removido para {user}", - "Shared by %1$s" : "Compartilhado por %1$s", "Shared by {actor}" : "Compartilhado por {actor}", - "%1$s removed share" : "%1$s compartilhamento removido", "{actor} removed share" : "{actor} compartilhamento removido", - "You shared %1$s with %2$s" : "Você compartilhou %1$s com %2$s", "You shared {file} with {user}" : "Voce compartilhou {arquivo} com {user}", - "You removed %2$s from %1$s" : "Voce removeu %2$s de %1$s", "You removed {user} from {file}" : "Voce removeu {user} de {file}", - "%3$s shared %1$s with %2$s" : "%3$s compartilhado %1$s com %2$s", "{actor} removed {user} from {file}" : "{actor} removido {user} de {file}", - "%3$s removed %2$s from %1$s" : "%3$s removido %2$s de %1$s", - "%2$s shared %1$s with you" : "%2$s compartilhou %1$s com você", "{actor} shared {file} with you" : "{actor} compartilhado {file} com voce", - "%2$s removed you from %1$s" : "%2$s removeu voce de %1$s", "{actor} removed you from {file}" : "{actor} removeu voce de {file}", "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Um arquivo ou pasta compartilhado por email ou por link publico foi <strong>baixado</strong>", "A file or folder was shared from <strong>another server</strong>" : "Um arquivo ou pasta foi compartilhado a partir de <strong>outro servidor</strong>", @@ -144,9 +113,11 @@ "%1$s unshared %2$s from you" : "%1$s não compartilhados %2$s de você", "Public shared folder %1$s was downloaded" : "A pasta %1$s compartilhada publicamente foi baixada", "Public shared file %1$s was downloaded" : "O arquivo %1$s compartilhado publicamente foi baixado", + "You shared %1$s with %2$s" : "Você compartilhou %1$s com %2$s", "%2$s shared %1$s with %3$s" : "%2$s compartilhado %1$s com %3$s", "You removed the share of %2$s for %1$s" : "Você removeu o compartilhamento de %2$s para %1$s", "%2$s removed the share of %3$s for %1$s" : "%2$s removido o compartilhamento de %3$s para %1$s", + "You shared %1$s with group %2$s" : "Você compartilhou %1$s com o grupo %2$s", "%2$s shared %1$s with group %3$s" : "%2$s compartilhado %1$s com o grupo %3$s", "You removed the share of group %2$s for %1$s" : "Você removeu o compartilhamento de %2$s para %1$s", "%2$s removed the share of group %3$s for %1$s" : "%2$s removido o compartilhamento do grupo %3$s para %1$s", @@ -156,6 +127,7 @@ "%2$s removed the public link for %1$s" : "%2$s removeu o link público de %1$s", "Your public link for %1$s expired" : "O seu link público para %1$s expirou", "The public link of %2$s for %1$s expired" : "O link público de %2$s para %1$s expirou", + "%2$s shared %1$s with you" : "%2$s compartilhou %1$s com você", "%2$s removed the share for %1$s" : "%2$s removeu o compartilhamento para %1$s", "Shared with %2$s" : "Compartilhado com %2$s", "Shared with %3$s by %2$s" : "Compartilhado com %3$s por %2$s", @@ -168,9 +140,40 @@ "Shared via link by %2$s" : "Compartilhado via link por %2$s", "Shared via public link" : "Compartilhado via link público", "%2$s removed public link" : "%2$s removeu o link público", - "Public link expired" : "O link público expirou", "Public link of %2$s expired" : "O link público de %2$s expirou", "Shared by %2$s" : "Compartilhado por %2$s", - "Shares" : "Compartilhamentos" + "Shares" : "Compartilhamentos", + "Downloaded by %1$s" : "Baixado por %1$s", + "%1$s downloaded via public link" : "%1$s baixado via link público", + "%1$s downloaded %2$s" : "%1$s baixado %2$s", + "Shared with group %1$s" : "Compartilhado com o grupo %1$s", + "Removed share for group %1$s" : "Compartilhamento removido para o grupo %1$s", + "%2$s shared with group %1$s" : "%2$s compartilhado do o grupo %1$s", + "%2$s removed share for group %1$s" : "%2$s compartilhamento removido para o grupo %1$s", + "You removed group %2$s from %1$s" : "Voce removeu o grupo %2$s de %1$s", + "%3$s shared %1$s with group %2$s" : "%3$s compartilhado %1$s com o grupo %2$s", + "%3$s removed group %2$s from %1$s" : "%3$s removido grupo %2$s de %1$s", + "%1$s shared as public link" : "%1$s compartilhado como um link publico", + "%1$s removed public link" : "%1$s removido link publico", + "You shared %1$s as public link" : "Voce compartilhou %1$s como um link publico", + "You removed public link for %1$s" : "Voce removeu o link publico para %1$s", + "%2$s shared %1$s as public link" : "%2$s compartilhado %1$s como um link publico", + "%2$s removed public link for %1$s" : "%2$s removido link publico para %1$s", + "%1$s accepted the remote share" : "%1$s aceitou o compartilhamento remoto", + "%1$s declined the remote share" : "%1$s declinou do compartilhamento remoto", + "You received a new remote share %1$s from %2$s" : "Voce recebeu um novo compartilhamento remoto %1$s de %2$s", + "%2$s accepted the remote share of %1$s" : "%2$s aceitou o compartilhamento remoto de %1$s", + "%2$s declined the remote share of %1$s" : "%2$s declinou o compartilhamento remoto de %1$s", + "%2$s unshared %1$s from you" : "%2$s descompartilhou %1$s de voce", + "Shared with %1$s" : "Compartilhado com %1$s", + "Removed share for %1$s" : "Compartilhamento removido para %1$s", + "%2$s shared with %1$s" : "%2$s compartilhado com %1$s", + "%2$s removed share for %1$s" : "%2$s compartilhamento removido para %1$s", + "Shared by %1$s" : "Compartilhado por %1$s", + "%1$s removed share" : "%1$s compartilhamento removido", + "You removed %2$s from %1$s" : "Voce removeu %2$s de %1$s", + "%3$s shared %1$s with %2$s" : "%3$s compartilhado %1$s com %2$s", + "%3$s removed %2$s from %1$s" : "%3$s removido %2$s de %1$s", + "%2$s removed you from %1$s" : "%2$s removeu voce de %1$s" },"pluralForm" :"nplurals=2; plural=(n > 1);" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/ru.js b/apps/files_sharing/l10n/ru.js index e12622cd00e..71f1c6f92f3 100644 --- a/apps/files_sharing/l10n/ru.js +++ b/apps/files_sharing/l10n/ru.js @@ -20,76 +20,42 @@ OC.L10N.register( "Sharing" : "Общий доступ", "File shares" : "Файловые ресурсы общего доступа", "Downloaded via public link" : "Скачано по открытой ссылке", - "Downloaded by %1$s" : "Скачано %1$s", "Downloaded by {email}" : "Скачано {email}", - "%1$s downloaded via public link" : "%1$s скачано по общедоступной ссылке", "{file} downloaded via public link" : "{file} скачан по общедоступной ссылке", - "%1$s downloaded %2$s" : "%1$s скачан %2$s", "{email} downloaded {file}" : "{email} скачал {file}", - "Shared with group %1$s" : "Поделился с группой %1$s", "Shared with group {group}" : "Поделился с группой {group}", - "Removed share for group %1$s" : "Закрыт общий доступ для группы %1$s", "Removed share for group {group}" : "Закрыт общий доступ для группы {group}", - "%2$s shared with group %1$s" : "%2$s поделился с группой %1$s", "{actor} shared with group {group}" : "{actor} поделился с группой {group}", - "%2$s removed share for group %1$s" : "%2$s удалил общий доступ для группы %1$s", "{actor} removed share for group {group}" : "{actor} закрыл общий доступ для группы {group}", - "You shared %1$s with group %2$s" : "Вы поделились %1$s с группой %2$s", "You shared {file} with group {group}" : "Вы поделились {file} с группой {group}", - "You removed group %2$s from %1$s" : "Вы удалили группу %2$s из %1$s", "You removed group {group} from {file}" : "Вы удалили группу {group} из {file}", - "%3$s shared %1$s with group %2$s" : "%3$s поделился %1$s с группой %2$s", "{actor} shared {file} with group {group}" : "{actor} поделился {file} с группой {group}", - "%3$s removed group %2$s from %1$s" : "%3$s удалил группу %2$s из %1$s", "{actor} removed group {group} from {file}" : "{actor} удалил группу {group} из {file}", "Shared as public link" : "Поделился общедоступной ссылкой", "Removed public link" : "Удалена общедоступная ссылка", - "%1$s shared as public link" : "%1$s поделился общедоступной ссылкой", + "Public link expired" : "Срок действия общедоступнной ссылки закончился", "{actor} shared as public link" : "{actor} поделился общедоступной ссылкой", - "%1$s removed public link" : "%1$s удалил общедоступной сслыку", "{actor} removed public link" : "{actor} удалил общедоступной ссылку", - "You shared %1$s as public link" : "Вы поделись %1$s в виде общедоступной ссылки", "You shared {file} as public link" : "Вы поделись {file} в виде общедоступной ссылки", - "You removed public link for %1$s" : "Вы удалили общедоступную ссылку к %1$s", "You removed public link for {file}" : "Вы удалили общедоступную ссылку к {file}", - "%2$s shared %1$s as public link" : "%2$s поделился %1$s в виде общедоступной ссылки", "{actor} shared {file} as public link" : "{actor} поделился {file} в виде общедоступной ссылки", - "%2$s removed public link for %1$s" : "%2$s удалил общедоступную ссылку к %1$s", "{actor} removed public link for {file}" : "{actor} удалил общедоступную ссылку к {file}", - "%1$s accepted the remote share" : "%1$s принял удаленный общий ресурс", "{user} accepted the remote share" : "{user} принял удаленный общий ресурс", - "%1$s declined the remote share" : "%1$s отклонил удаленный общий ресурс", "{user} declined the remote share" : "{user} отклонил удаленный общий ресурс", - "You received a new remote share %1$s from %2$s" : "Вы получили новый удаленный общий ресурс %1$s от %2$s", "You received a new remote share {file} from {user}" : "Вы получили новый удаленный общий ресурс {file} от {user}", - "%2$s accepted the remote share of %1$s" : "%2$s принял удаленный общий ресурс %1$s", "{user} accepted the remote share of {file}" : "{user} принял удаленный общий ресурс {file}", - "%2$s declined the remote share of %1$s" : "%2$s отклонил удаленный общий ресурс %1$s", "{user} declined the remote share of {file}" : "{user} отклонил удаленный общий ресурс {file}", - "%2$s unshared %1$s from you" : "%2$s закрыл для вас доступ к %1$s ", "{user} unshared {file} from you" : "{user} закрыл для вас доступ к {file}", - "Shared with %1$s" : "Поделился с %1$s", "Shared with {user}" : "Поделился с {user}", - "Removed share for %1$s" : "Закрыт общий доступ для %1$s", "Removed share for {user}" : "Закрыт общий доступ для {user}", - "%2$s shared with %1$s" : "%2$s поделился с %1$s", "{actor} shared with {user}" : "{actor} поделился с {user}", - "%2$s removed share for %1$s" : "%2$s закрыл общий доступ к %1$s", "{actor} removed share for {user}" : "{actor} закрыл общий доступ для {user}", - "Shared by %1$s" : "Поделился через %1$s", "Shared by {actor}" : "Поделился через {actor}", - "%1$s removed share" : "%1$s закрыл общий доступ", "{actor} removed share" : "{actor} закрыл общий доступ", - "You shared %1$s with %2$s" : "Вы поделились %1$s с %2$s", "You shared {file} with {user}" : "Вы поделились {file} с {user}", - "You removed %2$s from %1$s" : "Вы удалили %2$s из %1$s", "You removed {user} from {file}" : "Вы удалили {user} из {file}", - "%3$s shared %1$s with %2$s" : "%3$s поделился %1$s с %2$s", "{actor} removed {user} from {file}" : "{actor} удалил {user} из {file}", - "%3$s removed %2$s from %1$s" : "%3$s удалил %2$s из %1$s", - "%2$s shared %1$s with you" : "%2$s поделился с вами %1$s", "{actor} shared {file} with you" : "{actor} поделился {file} с вами", - "%2$s removed you from %1$s" : "%2$s удалил вас из %1$s", "{actor} removed you from {file}" : "{actor} удалил вас из {file}", "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Файл или папка, которыми поделились по электронной почте или общедоступной ссылке, были <strong>скачаны</strong>", "A file or folder was shared from <strong>another server</strong>" : "Файлом или каталогом поделились с <strong>удаленного сервера</strong>", @@ -146,9 +112,11 @@ OC.L10N.register( "%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" : "Вы поделились %1$s с %2$s", "%2$s shared %1$s with %3$s" : "%2$s поделился %1$s с %3$s", "You removed the share of %2$s for %1$s" : "Вы удалили общий доступ к %2$s для %1$s", "%2$s removed the share of %3$s for %1$s" : "%2$s удалил общий доступ к %3$s для %1$s", + "You shared %1$s with group %2$s" : "Вы поделились %1$s с группой %2$s", "%2$s shared %1$s with group %3$s" : "%2$s поделился %1$s с группой %3$s", "You removed the share of group %2$s for %1$s" : "Вы удалили общий доступ к группе %2$s для %1$s", "%2$s removed the share of group %3$s for %1$s" : "%2$s удалил общий доступ к группе %3$s для %1$s", @@ -158,6 +126,7 @@ OC.L10N.register( "%2$s removed the public link for %1$s" : "%2$s удалил общедоступную ссылку к %1$s", "Your public link for %1$s expired" : "Срок действия Вашей общедоступной ссылки к %1$s закончился", "The public link of %2$s for %1$s expired" : "Срок действия общедоступной ссылки к %2$s для %1$s закончился", + "%2$s shared %1$s with you" : "%2$s поделился с вами %1$s", "%2$s removed the share for %1$s" : "%2$s удалил общий доступ к %1$s", "Shared with %2$s" : "Поделился с %2$s", "Shared with %3$s by %2$s" : "Поделился %2$s с %3$s", @@ -170,9 +139,40 @@ OC.L10N.register( "Shared via link by %2$s" : "Поделился ссылкой %2$s", "Shared via public link" : "Поделился открытой ссылкой", "%2$s removed public link" : "%2$s удалил общедоступную ссылку", - "Public link expired" : "Срок действия общедоступнной ссылки закончился", "Public link of %2$s expired" : "Срок действия общедоступной ссылки к %2$s закончился", "Shared by %2$s" : "Поделился %2$s", - "Shares" : "События обмена файлами" + "Shares" : "События обмена файлами", + "Downloaded by %1$s" : "Скачано %1$s", + "%1$s downloaded via public link" : "%1$s скачано по общедоступной ссылке", + "%1$s downloaded %2$s" : "%1$s скачан %2$s", + "Shared with group %1$s" : "Поделился с группой %1$s", + "Removed share for group %1$s" : "Закрыт общий доступ для группы %1$s", + "%2$s shared with group %1$s" : "%2$s поделился с группой %1$s", + "%2$s removed share for group %1$s" : "%2$s удалил общий доступ для группы %1$s", + "You removed group %2$s from %1$s" : "Вы удалили группу %2$s из %1$s", + "%3$s shared %1$s with group %2$s" : "%3$s поделился %1$s с группой %2$s", + "%3$s removed group %2$s from %1$s" : "%3$s удалил группу %2$s из %1$s", + "%1$s shared as public link" : "%1$s поделился общедоступной ссылкой", + "%1$s removed public link" : "%1$s удалил общедоступной сслыку", + "You shared %1$s as public link" : "Вы поделись %1$s в виде общедоступной ссылки", + "You removed public link for %1$s" : "Вы удалили общедоступную ссылку к %1$s", + "%2$s shared %1$s as public link" : "%2$s поделился %1$s в виде общедоступной ссылки", + "%2$s removed public link for %1$s" : "%2$s удалил общедоступную ссылку к %1$s", + "%1$s accepted the remote share" : "%1$s принял удаленный общий ресурс", + "%1$s declined the remote share" : "%1$s отклонил удаленный общий ресурс", + "You received a new remote share %1$s from %2$s" : "Вы получили новый удаленный общий ресурс %1$s от %2$s", + "%2$s accepted the remote share of %1$s" : "%2$s принял удаленный общий ресурс %1$s", + "%2$s declined the remote share of %1$s" : "%2$s отклонил удаленный общий ресурс %1$s", + "%2$s unshared %1$s from you" : "%2$s закрыл для вас доступ к %1$s ", + "Shared with %1$s" : "Поделился с %1$s", + "Removed share for %1$s" : "Закрыт общий доступ для %1$s", + "%2$s shared with %1$s" : "%2$s поделился с %1$s", + "%2$s removed share for %1$s" : "%2$s закрыл общий доступ к %1$s", + "Shared by %1$s" : "Поделился через %1$s", + "%1$s removed share" : "%1$s закрыл общий доступ", + "You removed %2$s from %1$s" : "Вы удалили %2$s из %1$s", + "%3$s shared %1$s with %2$s" : "%3$s поделился %1$s с %2$s", + "%3$s removed %2$s from %1$s" : "%3$s удалил %2$s из %1$s", + "%2$s removed you from %1$s" : "%2$s удалил вас из %1$s" }, "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_sharing/l10n/ru.json b/apps/files_sharing/l10n/ru.json index fe9b1660292..d159503041e 100644 --- a/apps/files_sharing/l10n/ru.json +++ b/apps/files_sharing/l10n/ru.json @@ -18,76 +18,42 @@ "Sharing" : "Общий доступ", "File shares" : "Файловые ресурсы общего доступа", "Downloaded via public link" : "Скачано по открытой ссылке", - "Downloaded by %1$s" : "Скачано %1$s", "Downloaded by {email}" : "Скачано {email}", - "%1$s downloaded via public link" : "%1$s скачано по общедоступной ссылке", "{file} downloaded via public link" : "{file} скачан по общедоступной ссылке", - "%1$s downloaded %2$s" : "%1$s скачан %2$s", "{email} downloaded {file}" : "{email} скачал {file}", - "Shared with group %1$s" : "Поделился с группой %1$s", "Shared with group {group}" : "Поделился с группой {group}", - "Removed share for group %1$s" : "Закрыт общий доступ для группы %1$s", "Removed share for group {group}" : "Закрыт общий доступ для группы {group}", - "%2$s shared with group %1$s" : "%2$s поделился с группой %1$s", "{actor} shared with group {group}" : "{actor} поделился с группой {group}", - "%2$s removed share for group %1$s" : "%2$s удалил общий доступ для группы %1$s", "{actor} removed share for group {group}" : "{actor} закрыл общий доступ для группы {group}", - "You shared %1$s with group %2$s" : "Вы поделились %1$s с группой %2$s", "You shared {file} with group {group}" : "Вы поделились {file} с группой {group}", - "You removed group %2$s from %1$s" : "Вы удалили группу %2$s из %1$s", "You removed group {group} from {file}" : "Вы удалили группу {group} из {file}", - "%3$s shared %1$s with group %2$s" : "%3$s поделился %1$s с группой %2$s", "{actor} shared {file} with group {group}" : "{actor} поделился {file} с группой {group}", - "%3$s removed group %2$s from %1$s" : "%3$s удалил группу %2$s из %1$s", "{actor} removed group {group} from {file}" : "{actor} удалил группу {group} из {file}", "Shared as public link" : "Поделился общедоступной ссылкой", "Removed public link" : "Удалена общедоступная ссылка", - "%1$s shared as public link" : "%1$s поделился общедоступной ссылкой", + "Public link expired" : "Срок действия общедоступнной ссылки закончился", "{actor} shared as public link" : "{actor} поделился общедоступной ссылкой", - "%1$s removed public link" : "%1$s удалил общедоступной сслыку", "{actor} removed public link" : "{actor} удалил общедоступной ссылку", - "You shared %1$s as public link" : "Вы поделись %1$s в виде общедоступной ссылки", "You shared {file} as public link" : "Вы поделись {file} в виде общедоступной ссылки", - "You removed public link for %1$s" : "Вы удалили общедоступную ссылку к %1$s", "You removed public link for {file}" : "Вы удалили общедоступную ссылку к {file}", - "%2$s shared %1$s as public link" : "%2$s поделился %1$s в виде общедоступной ссылки", "{actor} shared {file} as public link" : "{actor} поделился {file} в виде общедоступной ссылки", - "%2$s removed public link for %1$s" : "%2$s удалил общедоступную ссылку к %1$s", "{actor} removed public link for {file}" : "{actor} удалил общедоступную ссылку к {file}", - "%1$s accepted the remote share" : "%1$s принял удаленный общий ресурс", "{user} accepted the remote share" : "{user} принял удаленный общий ресурс", - "%1$s declined the remote share" : "%1$s отклонил удаленный общий ресурс", "{user} declined the remote share" : "{user} отклонил удаленный общий ресурс", - "You received a new remote share %1$s from %2$s" : "Вы получили новый удаленный общий ресурс %1$s от %2$s", "You received a new remote share {file} from {user}" : "Вы получили новый удаленный общий ресурс {file} от {user}", - "%2$s accepted the remote share of %1$s" : "%2$s принял удаленный общий ресурс %1$s", "{user} accepted the remote share of {file}" : "{user} принял удаленный общий ресурс {file}", - "%2$s declined the remote share of %1$s" : "%2$s отклонил удаленный общий ресурс %1$s", "{user} declined the remote share of {file}" : "{user} отклонил удаленный общий ресурс {file}", - "%2$s unshared %1$s from you" : "%2$s закрыл для вас доступ к %1$s ", "{user} unshared {file} from you" : "{user} закрыл для вас доступ к {file}", - "Shared with %1$s" : "Поделился с %1$s", "Shared with {user}" : "Поделился с {user}", - "Removed share for %1$s" : "Закрыт общий доступ для %1$s", "Removed share for {user}" : "Закрыт общий доступ для {user}", - "%2$s shared with %1$s" : "%2$s поделился с %1$s", "{actor} shared with {user}" : "{actor} поделился с {user}", - "%2$s removed share for %1$s" : "%2$s закрыл общий доступ к %1$s", "{actor} removed share for {user}" : "{actor} закрыл общий доступ для {user}", - "Shared by %1$s" : "Поделился через %1$s", "Shared by {actor}" : "Поделился через {actor}", - "%1$s removed share" : "%1$s закрыл общий доступ", "{actor} removed share" : "{actor} закрыл общий доступ", - "You shared %1$s with %2$s" : "Вы поделились %1$s с %2$s", "You shared {file} with {user}" : "Вы поделились {file} с {user}", - "You removed %2$s from %1$s" : "Вы удалили %2$s из %1$s", "You removed {user} from {file}" : "Вы удалили {user} из {file}", - "%3$s shared %1$s with %2$s" : "%3$s поделился %1$s с %2$s", "{actor} removed {user} from {file}" : "{actor} удалил {user} из {file}", - "%3$s removed %2$s from %1$s" : "%3$s удалил %2$s из %1$s", - "%2$s shared %1$s with you" : "%2$s поделился с вами %1$s", "{actor} shared {file} with you" : "{actor} поделился {file} с вами", - "%2$s removed you from %1$s" : "%2$s удалил вас из %1$s", "{actor} removed you from {file}" : "{actor} удалил вас из {file}", "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Файл или папка, которыми поделились по электронной почте или общедоступной ссылке, были <strong>скачаны</strong>", "A file or folder was shared from <strong>another server</strong>" : "Файлом или каталогом поделились с <strong>удаленного сервера</strong>", @@ -144,9 +110,11 @@ "%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" : "Вы поделились %1$s с %2$s", "%2$s shared %1$s with %3$s" : "%2$s поделился %1$s с %3$s", "You removed the share of %2$s for %1$s" : "Вы удалили общий доступ к %2$s для %1$s", "%2$s removed the share of %3$s for %1$s" : "%2$s удалил общий доступ к %3$s для %1$s", + "You shared %1$s with group %2$s" : "Вы поделились %1$s с группой %2$s", "%2$s shared %1$s with group %3$s" : "%2$s поделился %1$s с группой %3$s", "You removed the share of group %2$s for %1$s" : "Вы удалили общий доступ к группе %2$s для %1$s", "%2$s removed the share of group %3$s for %1$s" : "%2$s удалил общий доступ к группе %3$s для %1$s", @@ -156,6 +124,7 @@ "%2$s removed the public link for %1$s" : "%2$s удалил общедоступную ссылку к %1$s", "Your public link for %1$s expired" : "Срок действия Вашей общедоступной ссылки к %1$s закончился", "The public link of %2$s for %1$s expired" : "Срок действия общедоступной ссылки к %2$s для %1$s закончился", + "%2$s shared %1$s with you" : "%2$s поделился с вами %1$s", "%2$s removed the share for %1$s" : "%2$s удалил общий доступ к %1$s", "Shared with %2$s" : "Поделился с %2$s", "Shared with %3$s by %2$s" : "Поделился %2$s с %3$s", @@ -168,9 +137,40 @@ "Shared via link by %2$s" : "Поделился ссылкой %2$s", "Shared via public link" : "Поделился открытой ссылкой", "%2$s removed public link" : "%2$s удалил общедоступную ссылку", - "Public link expired" : "Срок действия общедоступнной ссылки закончился", "Public link of %2$s expired" : "Срок действия общедоступной ссылки к %2$s закончился", "Shared by %2$s" : "Поделился %2$s", - "Shares" : "События обмена файлами" + "Shares" : "События обмена файлами", + "Downloaded by %1$s" : "Скачано %1$s", + "%1$s downloaded via public link" : "%1$s скачано по общедоступной ссылке", + "%1$s downloaded %2$s" : "%1$s скачан %2$s", + "Shared with group %1$s" : "Поделился с группой %1$s", + "Removed share for group %1$s" : "Закрыт общий доступ для группы %1$s", + "%2$s shared with group %1$s" : "%2$s поделился с группой %1$s", + "%2$s removed share for group %1$s" : "%2$s удалил общий доступ для группы %1$s", + "You removed group %2$s from %1$s" : "Вы удалили группу %2$s из %1$s", + "%3$s shared %1$s with group %2$s" : "%3$s поделился %1$s с группой %2$s", + "%3$s removed group %2$s from %1$s" : "%3$s удалил группу %2$s из %1$s", + "%1$s shared as public link" : "%1$s поделился общедоступной ссылкой", + "%1$s removed public link" : "%1$s удалил общедоступной сслыку", + "You shared %1$s as public link" : "Вы поделись %1$s в виде общедоступной ссылки", + "You removed public link for %1$s" : "Вы удалили общедоступную ссылку к %1$s", + "%2$s shared %1$s as public link" : "%2$s поделился %1$s в виде общедоступной ссылки", + "%2$s removed public link for %1$s" : "%2$s удалил общедоступную ссылку к %1$s", + "%1$s accepted the remote share" : "%1$s принял удаленный общий ресурс", + "%1$s declined the remote share" : "%1$s отклонил удаленный общий ресурс", + "You received a new remote share %1$s from %2$s" : "Вы получили новый удаленный общий ресурс %1$s от %2$s", + "%2$s accepted the remote share of %1$s" : "%2$s принял удаленный общий ресурс %1$s", + "%2$s declined the remote share of %1$s" : "%2$s отклонил удаленный общий ресурс %1$s", + "%2$s unshared %1$s from you" : "%2$s закрыл для вас доступ к %1$s ", + "Shared with %1$s" : "Поделился с %1$s", + "Removed share for %1$s" : "Закрыт общий доступ для %1$s", + "%2$s shared with %1$s" : "%2$s поделился с %1$s", + "%2$s removed share for %1$s" : "%2$s закрыл общий доступ к %1$s", + "Shared by %1$s" : "Поделился через %1$s", + "%1$s removed share" : "%1$s закрыл общий доступ", + "You removed %2$s from %1$s" : "Вы удалили %2$s из %1$s", + "%3$s shared %1$s with %2$s" : "%3$s поделился %1$s с %2$s", + "%3$s removed %2$s from %1$s" : "%3$s удалил %2$s из %1$s", + "%2$s removed you from %1$s" : "%2$s удалил вас из %1$s" },"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_sharing/l10n/sq.js b/apps/files_sharing/l10n/sq.js index b4872abb55b..64c49392735 100644 --- a/apps/files_sharing/l10n/sq.js +++ b/apps/files_sharing/l10n/sq.js @@ -20,76 +20,42 @@ OC.L10N.register( "Sharing" : "Ndarje", "File shares" : "Ndarja e skedarëve", "Downloaded via public link" : "Shkarkuar përmes një lidhjeje publike", - "Downloaded by %1$s" : "Shkarkuar nga %1$s", "Downloaded by {email}" : "Shkarkuar nga {email}", - "%1$s downloaded via public link" : "%1$s shkarkuar nga një lidhje publike", "{file} downloaded via public link" : "{file} shkarkuar përmes një lidhjeje publike", - "%1$s downloaded %2$s" : "%1$s shkarkuar nga %2$s", "{email} downloaded {file}" : "{email} shkarkuar {file}", - "Shared with group %1$s" : "U nda me grupin %1$s", "Shared with group {group}" : "U nda me grupin {group}", - "Removed share for group %1$s" : "Hoqi ndarjen për grupin %1$s", "Removed share for group {group}" : "Hoqi ndarjen për grupin {group}", - "%2$s shared with group %1$s" : "%2$s u nda e grupin %1$s", "{actor} shared with group {group}" : "{actor} u nda me grupin {group}", - "%2$s removed share for group %1$s" : "%2$s hoqi ndarjen për grupin %1$s", "{actor} removed share for group {group}" : "{actor} hoqi ndarjen për grupin {group}", - "You shared %1$s with group %2$s" : "Ndatë %1$s me grupin %2$s", "You shared {file} with group {group}" : "Ndatë {file} me grupin {group}", - "You removed group %2$s from %1$s" : "Hoqët grupin %2$s nga %1$s", "You removed group {group} from {file}" : "Hoqët grupin {group} nga {file}", - "%3$s shared %1$s with group %2$s" : "%3$s ndau %1$s me grupin %2$s", "{actor} shared {file} with group {group}" : "{actor} ndau {file} me grupin {group}", - "%3$s removed group %2$s from %1$s" : "%3$s hoqi grupin %2$s nga %1$s", "{actor} removed group {group} from {file}" : "{actor} hoqi grupin {group} nga {file}", "Shared as public link" : "U nda si një lidhje publike", "Removed public link" : "Hoqi lidhje publike", - "%1$s shared as public link" : "%1$s u nda si një lidhje publike", + "Public link expired" : "Lidhja publike skadoi", "{actor} shared as public link" : "{actor} u nda si një lidhje publike", - "%1$s removed public link" : "%1$s hoqi lidhje publike", "{actor} removed public link" : "{actor} hoqi lidhje publike", - "You shared %1$s as public link" : "Ndatë %1$s si një lidhje publike", "You shared {file} as public link" : "Ndatë {file} si një lidhje publike", - "You removed public link for %1$s" : "Hoqët lidhje publike për %1$s", "You removed public link for {file}" : "Hoqët lidhje publike për {file}", - "%2$s shared %1$s as public link" : "%2$s u nda %1$s si një lidhje publike", "{actor} shared {file} as public link" : "{actor} u nda {file} si një lidhje publike", - "%2$s removed public link for %1$s" : "%2$s hoqi lidhje publike për %1$s", "{actor} removed public link for {file}" : "{actor} hoqi lidhje publike për {file}", - "%1$s accepted the remote share" : "%1$s pranoi ndarjen e largët", "{user} accepted the remote share" : "{user} pranoi ndarjen e largët", - "%1$s declined the remote share" : "%1$s hodhi tej ndarjen e largët", "{user} declined the remote share" : "{user} hodhi tej ndarjen e largët", - "You received a new remote share %1$s from %2$s" : "Morët një ndarje të largët %1$s nga %2$s", "You received a new remote share {file} from {user}" : "Morët një ndarje të largët {file} nga {user}", - "%2$s accepted the remote share of %1$s" : "%2$s pranoi ndarjen e largët e %1$s", "{user} accepted the remote share of {file}" : "{user} pranoi ndarjen e largët të {file}", - "%2$s declined the remote share of %1$s" : "%2$s hodhi tej ndarjen e largët të %1$s", "{user} declined the remote share of {file}" : "{user} hodhi tej ndarjen e largët të {file}", - "%2$s unshared %1$s from you" : "%2$s nuk ndau %1$s nga ju", "{user} unshared {file} from you" : "{user} nuk ndau {file} nga ju", - "Shared with %1$s" : "Ndarë me %1$s", "Shared with {user}" : "Ndarë me {user}", - "Removed share for %1$s" : "Hoqi ndarjen për %1$s", "Removed share for {user}" : "Hoqi ndarjen për {user}", - "%2$s shared with %1$s" : "%2$s ndau me %1$s", "{actor} shared with {user}" : "{actor} ndau me {user}", - "%2$s removed share for %1$s" : "%2$s hoqi ndarjen për %1$s", "{actor} removed share for {user}" : "{actor} hoqi ndarjen për {user}", - "Shared by %1$s" : "U nda nga %1$s", "Shared by {actor}" : "U nda nga {actor}", - "%1$s removed share" : "%1$s hoqi ndarjen", "{actor} removed share" : "{actor} hoqi ndarjen", - "You shared %1$s with %2$s" : "Ndatë %1$s me %2$s", "You shared {file} with {user}" : "Ndatë {file} me {user}", - "You removed %2$s from %1$s" : "Hoqët %2$s nga %1$s ", "You removed {user} from {file}" : "Hoqët {user} nga {file}", - "%3$s shared %1$s with %2$s" : "%3$s ndau %1$s me %2$s", "{actor} removed {user} from {file}" : "{actor} hoqi {user} nga {file}", - "%3$s removed %2$s from %1$s" : "%3$s hoqi %2$s nga %1$s", - "%2$s shared %1$s with you" : "%2$s ndau %1$s me ju", "{actor} shared {file} with you" : "{actor} ndau {file} me ju", - "%2$s removed you from %1$s" : "%2$s iu hoqi nga %1$s", "{actor} removed you from {file}" : "{actor} iu hoqi nga {file}", "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Një skedar ose dosje e ndarë nga posta ose lidhja publike ishte <strong> shkarkuar</strong>", "A file or folder was shared from <strong>another server</strong>" : "Një kartelë ose dosje u nda prej një <strong>shërbyesi tjetër</strong>", @@ -146,9 +112,11 @@ OC.L10N.register( "%1$s unshared %2$s from you" : "%1$s shndau me ju %2$s", "Public shared folder %1$s was downloaded" : "U shkarkua dosja e ndarë publikisht %1$s", "Public shared file %1$s was downloaded" : "U shkarkua kartela e ndarë publikisht %1$s", + "You shared %1$s with %2$s" : "Ndatë %1$s me %2$s", "%2$s shared %1$s with %3$s" : "%2$s ndau %1$s me %3$s", "You removed the share of %2$s for %1$s" : "Hoqët ndarjen e %2$s për %1$s", "%2$s removed the share of %3$s for %1$s" : "%2$s hoqi ndarjen e %3$s për %1$s", + "You shared %1$s with group %2$s" : "Ndatë %1$s me grupin %2$s", "%2$s shared %1$s with group %3$s" : "%2$s ndau %1$s me grupin %3$s", "You removed the share of group %2$s for %1$s" : "Hoqët ndarjen e grupit %2$s për %1$s", "%2$s removed the share of group %3$s for %1$s" : "%2$s hoqi ndarjen e grupit %3$s për %1$s", @@ -158,6 +126,7 @@ OC.L10N.register( "%2$s removed the public link for %1$s" : "%2$s hoqi lidhjen publike për %1$s", "Your public link for %1$s expired" : "Lidhja juaj publike për %1$s skadoi", "The public link of %2$s for %1$s expired" : "Lidhja publike e %2$s për %1$s skadoi", + "%2$s shared %1$s with you" : "%2$s ndau %1$s me ju", "%2$s removed the share for %1$s" : "%2$s hoqi ndarjen për %1$s", "Shared with %2$s" : "U nda me %2$s", "Shared with %3$s by %2$s" : "U nda me %3$s nga %2$s", @@ -170,9 +139,40 @@ OC.L10N.register( "Shared via link by %2$s" : "U nda përmes një lidhje nga %2$s", "Shared via public link" : "U nda përmes një lidhje publike", "%2$s removed public link" : "%2$s hoqi lidhje publike", - "Public link expired" : "Lidhja publike skadoi", "Public link of %2$s expired" : "Lidhja publike e %2$s skadoi", "Shared by %2$s" : "U nda nga %2$s", - "Shares" : "Ndarje" + "Shares" : "Ndarje", + "Downloaded by %1$s" : "Shkarkuar nga %1$s", + "%1$s downloaded via public link" : "%1$s shkarkuar nga një lidhje publike", + "%1$s downloaded %2$s" : "%1$s shkarkuar nga %2$s", + "Shared with group %1$s" : "U nda me grupin %1$s", + "Removed share for group %1$s" : "Hoqi ndarjen për grupin %1$s", + "%2$s shared with group %1$s" : "%2$s u nda e grupin %1$s", + "%2$s removed share for group %1$s" : "%2$s hoqi ndarjen për grupin %1$s", + "You removed group %2$s from %1$s" : "Hoqët grupin %2$s nga %1$s", + "%3$s shared %1$s with group %2$s" : "%3$s ndau %1$s me grupin %2$s", + "%3$s removed group %2$s from %1$s" : "%3$s hoqi grupin %2$s nga %1$s", + "%1$s shared as public link" : "%1$s u nda si një lidhje publike", + "%1$s removed public link" : "%1$s hoqi lidhje publike", + "You shared %1$s as public link" : "Ndatë %1$s si një lidhje publike", + "You removed public link for %1$s" : "Hoqët lidhje publike për %1$s", + "%2$s shared %1$s as public link" : "%2$s u nda %1$s si një lidhje publike", + "%2$s removed public link for %1$s" : "%2$s hoqi lidhje publike për %1$s", + "%1$s accepted the remote share" : "%1$s pranoi ndarjen e largët", + "%1$s declined the remote share" : "%1$s hodhi tej ndarjen e largët", + "You received a new remote share %1$s from %2$s" : "Morët një ndarje të largët %1$s nga %2$s", + "%2$s accepted the remote share of %1$s" : "%2$s pranoi ndarjen e largët e %1$s", + "%2$s declined the remote share of %1$s" : "%2$s hodhi tej ndarjen e largët të %1$s", + "%2$s unshared %1$s from you" : "%2$s nuk ndau %1$s nga ju", + "Shared with %1$s" : "Ndarë me %1$s", + "Removed share for %1$s" : "Hoqi ndarjen për %1$s", + "%2$s shared with %1$s" : "%2$s ndau me %1$s", + "%2$s removed share for %1$s" : "%2$s hoqi ndarjen për %1$s", + "Shared by %1$s" : "U nda nga %1$s", + "%1$s removed share" : "%1$s hoqi ndarjen", + "You removed %2$s from %1$s" : "Hoqët %2$s nga %1$s ", + "%3$s shared %1$s with %2$s" : "%3$s ndau %1$s me %2$s", + "%3$s removed %2$s from %1$s" : "%3$s hoqi %2$s nga %1$s", + "%2$s removed you from %1$s" : "%2$s iu hoqi nga %1$s" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/sq.json b/apps/files_sharing/l10n/sq.json index c1323784cf1..2206d5019a3 100644 --- a/apps/files_sharing/l10n/sq.json +++ b/apps/files_sharing/l10n/sq.json @@ -18,76 +18,42 @@ "Sharing" : "Ndarje", "File shares" : "Ndarja e skedarëve", "Downloaded via public link" : "Shkarkuar përmes një lidhjeje publike", - "Downloaded by %1$s" : "Shkarkuar nga %1$s", "Downloaded by {email}" : "Shkarkuar nga {email}", - "%1$s downloaded via public link" : "%1$s shkarkuar nga një lidhje publike", "{file} downloaded via public link" : "{file} shkarkuar përmes një lidhjeje publike", - "%1$s downloaded %2$s" : "%1$s shkarkuar nga %2$s", "{email} downloaded {file}" : "{email} shkarkuar {file}", - "Shared with group %1$s" : "U nda me grupin %1$s", "Shared with group {group}" : "U nda me grupin {group}", - "Removed share for group %1$s" : "Hoqi ndarjen për grupin %1$s", "Removed share for group {group}" : "Hoqi ndarjen për grupin {group}", - "%2$s shared with group %1$s" : "%2$s u nda e grupin %1$s", "{actor} shared with group {group}" : "{actor} u nda me grupin {group}", - "%2$s removed share for group %1$s" : "%2$s hoqi ndarjen për grupin %1$s", "{actor} removed share for group {group}" : "{actor} hoqi ndarjen për grupin {group}", - "You shared %1$s with group %2$s" : "Ndatë %1$s me grupin %2$s", "You shared {file} with group {group}" : "Ndatë {file} me grupin {group}", - "You removed group %2$s from %1$s" : "Hoqët grupin %2$s nga %1$s", "You removed group {group} from {file}" : "Hoqët grupin {group} nga {file}", - "%3$s shared %1$s with group %2$s" : "%3$s ndau %1$s me grupin %2$s", "{actor} shared {file} with group {group}" : "{actor} ndau {file} me grupin {group}", - "%3$s removed group %2$s from %1$s" : "%3$s hoqi grupin %2$s nga %1$s", "{actor} removed group {group} from {file}" : "{actor} hoqi grupin {group} nga {file}", "Shared as public link" : "U nda si një lidhje publike", "Removed public link" : "Hoqi lidhje publike", - "%1$s shared as public link" : "%1$s u nda si një lidhje publike", + "Public link expired" : "Lidhja publike skadoi", "{actor} shared as public link" : "{actor} u nda si një lidhje publike", - "%1$s removed public link" : "%1$s hoqi lidhje publike", "{actor} removed public link" : "{actor} hoqi lidhje publike", - "You shared %1$s as public link" : "Ndatë %1$s si një lidhje publike", "You shared {file} as public link" : "Ndatë {file} si një lidhje publike", - "You removed public link for %1$s" : "Hoqët lidhje publike për %1$s", "You removed public link for {file}" : "Hoqët lidhje publike për {file}", - "%2$s shared %1$s as public link" : "%2$s u nda %1$s si një lidhje publike", "{actor} shared {file} as public link" : "{actor} u nda {file} si një lidhje publike", - "%2$s removed public link for %1$s" : "%2$s hoqi lidhje publike për %1$s", "{actor} removed public link for {file}" : "{actor} hoqi lidhje publike për {file}", - "%1$s accepted the remote share" : "%1$s pranoi ndarjen e largët", "{user} accepted the remote share" : "{user} pranoi ndarjen e largët", - "%1$s declined the remote share" : "%1$s hodhi tej ndarjen e largët", "{user} declined the remote share" : "{user} hodhi tej ndarjen e largët", - "You received a new remote share %1$s from %2$s" : "Morët një ndarje të largët %1$s nga %2$s", "You received a new remote share {file} from {user}" : "Morët një ndarje të largët {file} nga {user}", - "%2$s accepted the remote share of %1$s" : "%2$s pranoi ndarjen e largët e %1$s", "{user} accepted the remote share of {file}" : "{user} pranoi ndarjen e largët të {file}", - "%2$s declined the remote share of %1$s" : "%2$s hodhi tej ndarjen e largët të %1$s", "{user} declined the remote share of {file}" : "{user} hodhi tej ndarjen e largët të {file}", - "%2$s unshared %1$s from you" : "%2$s nuk ndau %1$s nga ju", "{user} unshared {file} from you" : "{user} nuk ndau {file} nga ju", - "Shared with %1$s" : "Ndarë me %1$s", "Shared with {user}" : "Ndarë me {user}", - "Removed share for %1$s" : "Hoqi ndarjen për %1$s", "Removed share for {user}" : "Hoqi ndarjen për {user}", - "%2$s shared with %1$s" : "%2$s ndau me %1$s", "{actor} shared with {user}" : "{actor} ndau me {user}", - "%2$s removed share for %1$s" : "%2$s hoqi ndarjen për %1$s", "{actor} removed share for {user}" : "{actor} hoqi ndarjen për {user}", - "Shared by %1$s" : "U nda nga %1$s", "Shared by {actor}" : "U nda nga {actor}", - "%1$s removed share" : "%1$s hoqi ndarjen", "{actor} removed share" : "{actor} hoqi ndarjen", - "You shared %1$s with %2$s" : "Ndatë %1$s me %2$s", "You shared {file} with {user}" : "Ndatë {file} me {user}", - "You removed %2$s from %1$s" : "Hoqët %2$s nga %1$s ", "You removed {user} from {file}" : "Hoqët {user} nga {file}", - "%3$s shared %1$s with %2$s" : "%3$s ndau %1$s me %2$s", "{actor} removed {user} from {file}" : "{actor} hoqi {user} nga {file}", - "%3$s removed %2$s from %1$s" : "%3$s hoqi %2$s nga %1$s", - "%2$s shared %1$s with you" : "%2$s ndau %1$s me ju", "{actor} shared {file} with you" : "{actor} ndau {file} me ju", - "%2$s removed you from %1$s" : "%2$s iu hoqi nga %1$s", "{actor} removed you from {file}" : "{actor} iu hoqi nga {file}", "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Një skedar ose dosje e ndarë nga posta ose lidhja publike ishte <strong> shkarkuar</strong>", "A file or folder was shared from <strong>another server</strong>" : "Një kartelë ose dosje u nda prej një <strong>shërbyesi tjetër</strong>", @@ -144,9 +110,11 @@ "%1$s unshared %2$s from you" : "%1$s shndau me ju %2$s", "Public shared folder %1$s was downloaded" : "U shkarkua dosja e ndarë publikisht %1$s", "Public shared file %1$s was downloaded" : "U shkarkua kartela e ndarë publikisht %1$s", + "You shared %1$s with %2$s" : "Ndatë %1$s me %2$s", "%2$s shared %1$s with %3$s" : "%2$s ndau %1$s me %3$s", "You removed the share of %2$s for %1$s" : "Hoqët ndarjen e %2$s për %1$s", "%2$s removed the share of %3$s for %1$s" : "%2$s hoqi ndarjen e %3$s për %1$s", + "You shared %1$s with group %2$s" : "Ndatë %1$s me grupin %2$s", "%2$s shared %1$s with group %3$s" : "%2$s ndau %1$s me grupin %3$s", "You removed the share of group %2$s for %1$s" : "Hoqët ndarjen e grupit %2$s për %1$s", "%2$s removed the share of group %3$s for %1$s" : "%2$s hoqi ndarjen e grupit %3$s për %1$s", @@ -156,6 +124,7 @@ "%2$s removed the public link for %1$s" : "%2$s hoqi lidhjen publike për %1$s", "Your public link for %1$s expired" : "Lidhja juaj publike për %1$s skadoi", "The public link of %2$s for %1$s expired" : "Lidhja publike e %2$s për %1$s skadoi", + "%2$s shared %1$s with you" : "%2$s ndau %1$s me ju", "%2$s removed the share for %1$s" : "%2$s hoqi ndarjen për %1$s", "Shared with %2$s" : "U nda me %2$s", "Shared with %3$s by %2$s" : "U nda me %3$s nga %2$s", @@ -168,9 +137,40 @@ "Shared via link by %2$s" : "U nda përmes një lidhje nga %2$s", "Shared via public link" : "U nda përmes një lidhje publike", "%2$s removed public link" : "%2$s hoqi lidhje publike", - "Public link expired" : "Lidhja publike skadoi", "Public link of %2$s expired" : "Lidhja publike e %2$s skadoi", "Shared by %2$s" : "U nda nga %2$s", - "Shares" : "Ndarje" + "Shares" : "Ndarje", + "Downloaded by %1$s" : "Shkarkuar nga %1$s", + "%1$s downloaded via public link" : "%1$s shkarkuar nga një lidhje publike", + "%1$s downloaded %2$s" : "%1$s shkarkuar nga %2$s", + "Shared with group %1$s" : "U nda me grupin %1$s", + "Removed share for group %1$s" : "Hoqi ndarjen për grupin %1$s", + "%2$s shared with group %1$s" : "%2$s u nda e grupin %1$s", + "%2$s removed share for group %1$s" : "%2$s hoqi ndarjen për grupin %1$s", + "You removed group %2$s from %1$s" : "Hoqët grupin %2$s nga %1$s", + "%3$s shared %1$s with group %2$s" : "%3$s ndau %1$s me grupin %2$s", + "%3$s removed group %2$s from %1$s" : "%3$s hoqi grupin %2$s nga %1$s", + "%1$s shared as public link" : "%1$s u nda si një lidhje publike", + "%1$s removed public link" : "%1$s hoqi lidhje publike", + "You shared %1$s as public link" : "Ndatë %1$s si një lidhje publike", + "You removed public link for %1$s" : "Hoqët lidhje publike për %1$s", + "%2$s shared %1$s as public link" : "%2$s u nda %1$s si një lidhje publike", + "%2$s removed public link for %1$s" : "%2$s hoqi lidhje publike për %1$s", + "%1$s accepted the remote share" : "%1$s pranoi ndarjen e largët", + "%1$s declined the remote share" : "%1$s hodhi tej ndarjen e largët", + "You received a new remote share %1$s from %2$s" : "Morët një ndarje të largët %1$s nga %2$s", + "%2$s accepted the remote share of %1$s" : "%2$s pranoi ndarjen e largët e %1$s", + "%2$s declined the remote share of %1$s" : "%2$s hodhi tej ndarjen e largët të %1$s", + "%2$s unshared %1$s from you" : "%2$s nuk ndau %1$s nga ju", + "Shared with %1$s" : "Ndarë me %1$s", + "Removed share for %1$s" : "Hoqi ndarjen për %1$s", + "%2$s shared with %1$s" : "%2$s ndau me %1$s", + "%2$s removed share for %1$s" : "%2$s hoqi ndarjen për %1$s", + "Shared by %1$s" : "U nda nga %1$s", + "%1$s removed share" : "%1$s hoqi ndarjen", + "You removed %2$s from %1$s" : "Hoqët %2$s nga %1$s ", + "%3$s shared %1$s with %2$s" : "%3$s ndau %1$s me %2$s", + "%3$s removed %2$s from %1$s" : "%3$s hoqi %2$s nga %1$s", + "%2$s removed you from %1$s" : "%2$s iu hoqi nga %1$s" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/sv.js b/apps/files_sharing/l10n/sv.js index fb6d04c52c2..8c8e16de8d0 100644 --- a/apps/files_sharing/l10n/sv.js +++ b/apps/files_sharing/l10n/sv.js @@ -20,76 +20,42 @@ OC.L10N.register( "Sharing" : "Delning", "File shares" : "Fildelningar", "Downloaded via public link" : "Nedladdad via offentlig länk", - "Downloaded by %1$s" : "Nedladdad av %1$s", "Downloaded by {email}" : "Nedladdad av {email}", - "%1$s downloaded via public link" : "%1$s nedladdad via offentlig länk", "{file} downloaded via public link" : "{file} nedladdad via offentlig länk", - "%1$s downloaded %2$s" : "%1$s laddade ned %2$s", "{email} downloaded {file}" : "{email} laddade ned {file}", - "Shared with group %1$s" : "Delad med grupp %1$s", "Shared with group {group}" : "Delad med grupp {group}", - "Removed share for group %1$s" : "Tog bort delning för grupp %1$s", "Removed share for group {group}" : "Tog bort delning för grupp {group}", - "%2$s shared with group %1$s" : "%2$s delad med grupp %1$s", "{actor} shared with group {group}" : "{actor} delade med gruppen {group}", - "%2$s removed share for group %1$s" : "%2$s tog bort delningen för gruppen %1$s", "{actor} removed share for group {group}" : "{actor} tog bort delningen för gruppen {group}", - "You shared %1$s with group %2$s" : "Du delade %1$s med grupp %2$s", "You shared {file} with group {group}" : "Du delade {file} med gruppen {group}", - "You removed group %2$s from %1$s" : "Du tog bort gruppen %2$s från %1$s", "You removed group {group} from {file}" : "Du tog bort gruppen {group} från {file}", - "%3$s shared %1$s with group %2$s" : "%3$s delade %1$s med gruppen %2$s", "{actor} shared {file} with group {group}" : "{actor} delade {file} med gruppen {group}", - "%3$s removed group %2$s from %1$s" : "%3$s tog bort gruppen %2$s från %1$s", "{actor} removed group {group} from {file}" : "{actor} tog bort gruppen {group} från {file}", "Shared as public link" : "Delades offentligt", "Removed public link" : "Tog bort offentlig länk", - "%1$s shared as public link" : "%1$s delade offentligt", + "Public link expired" : "Tidsgräns för offentlig länk har löpt ut", "{actor} shared as public link" : "{actor} delade offentligt", - "%1$s removed public link" : "%1$s tog bort offentlig länk", "{actor} removed public link" : "{actor} tog bort offentlig länk", - "You shared %1$s as public link" : "Du delade %1$s offentligt", "You shared {file} as public link" : "Du delade {file} offentligt", - "You removed public link for %1$s" : "Du tog bort den offentliga länken för %1$s", "You removed public link for {file}" : "Du tog bort den offentliga länken för {file}", - "%2$s shared %1$s as public link" : "%2$s delade %1$s offentligt", "{actor} shared {file} as public link" : "{actor} delade {file} offentligt", - "%2$s removed public link for %1$s" : "%2$s tog bort den offentliga länken för %1$s", "{actor} removed public link for {file}" : "{actor} tog bort den offentliga länken för {file}", - "%1$s accepted the remote share" : "%1$s accepterade extern delning", "{user} accepted the remote share" : "{user} accepterade extern delning", - "%1$s declined the remote share" : "%1$s nekade extern delning", "{user} declined the remote share" : "{user} nekade extern delning", - "You received a new remote share %1$s from %2$s" : "Du har fått en ny extern delning %1$s från %2$s", "You received a new remote share {file} from {user}" : "Du har fått en ny extern delning {file} från {user}", - "%2$s accepted the remote share of %1$s" : "%2$s accepterade extern delning av %1$s", "{user} accepted the remote share of {file}" : "{user} accepterade extern delning av {file}", - "%2$s declined the remote share of %1$s" : "%2$s nekade extern delning av %1$s", "{user} declined the remote share of {file}" : "{user} nekade extern delning av {file}", - "%2$s unshared %1$s from you" : "%2$s slutade dela %1$s med dig", "{user} unshared {file} from you" : "{user} slutade dela {file} med dig", - "Shared with %1$s" : "Delade med %1$s", "Shared with {user}" : "Delade med {user}", - "Removed share for %1$s" : "Tog bort delningen för %1$s", "Removed share for {user}" : "Tog bort delningen för {user}", - "%2$s shared with %1$s" : "%2$s delade med %1$s", "{actor} shared with {user}" : "{actor} delade med {user}", - "%2$s removed share for %1$s" : "%2$s tog bort delningen för %1$s", "{actor} removed share for {user}" : "{actor} tog bort delningen för {user}", - "Shared by %1$s" : "Delad av %1$s", "Shared by {actor}" : "Delad av {actor}", - "%1$s removed share" : "%1$s tog bort delning", "{actor} removed share" : "{actor} tog bort delning", - "You shared %1$s with %2$s" : "Du delade %1$s med %2$s", "You shared {file} with {user}" : "Du delade {file} med {user}", - "You removed %2$s from %1$s" : "Du tog bort %2$s från %1$s", "You removed {user} from {file}" : "Du tog bort {user} från {file}", - "%3$s shared %1$s with %2$s" : "%3$s delade %1$s med %2$s", "{actor} removed {user} from {file}" : "{actor} tog bort {user} från {file}", - "%3$s removed %2$s from %1$s" : "%3$s tog bort %2$s från %1$s", - "%2$s shared %1$s with you" : "%2$s delade %1$s med dig", "{actor} shared {file} with you" : "{actor} delade {file} med dig", - "%2$s removed you from %1$s" : "%2$s tog bort dig från %1$s", "{actor} removed you from {file}" : "{actor} tog bort dig från {file}", "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "En fil eller mapp som delats via mejl eller offentlig länk har blivit <strong>nedladdad</strong>", "A file or folder was shared from <strong>another server</strong>" : "En fil eller mapp delades från <strong>en annan server</strong>", @@ -146,9 +112,11 @@ OC.L10N.register( "%1$s unshared %2$s from you" : "%1$s tog bort delningen %2$s från dig", "Public shared folder %1$s was downloaded" : "Offentligt delad mapp %1$s blev nedladdad", "Public shared file %1$s was downloaded" : "Offentligt delad fil %1$s blev nedladdad", + "You shared %1$s with %2$s" : "Du delade %1$s med %2$s", "%2$s shared %1$s with %3$s" : "%2$s delade %1$s med %3$s", "You removed the share of %2$s for %1$s" : "Du tog bort delning av %2$s för %1$s", "%2$s removed the share of %3$s for %1$s" : "%2$s tog bort delningen av %3$s för %1$s", + "You shared %1$s with group %2$s" : "Du delade %1$s med grupp %2$s", "%2$s shared %1$s with group %3$s" : "%2$s delade %1$s med gruppen %3$s", "You removed the share of group %2$s for %1$s" : "Du tog bort delningen av gruppen %2$s för %1$s", "%2$s removed the share of group %3$s for %1$s" : "%2$s tog bort delningen av grupp %3$s för %1$s", @@ -158,6 +126,7 @@ OC.L10N.register( "%2$s removed the public link for %1$s" : "%2$s tog bort den offentliga länken för %1$s", "Your public link for %1$s expired" : "Din offentliga länk för %1$s har löpt ut", "The public link of %2$s for %1$s expired" : "Den offentliga länken för %2$s av %1$s har löpt ut", + "%2$s shared %1$s with you" : "%2$s delade %1$s med dig", "%2$s removed the share for %1$s" : "%2$s tog bort delningen av %1$s", "Shared with %2$s" : "Delad med %2$s", "Shared with %3$s by %2$s" : "Delad med %3$s av %2$s", @@ -170,9 +139,40 @@ OC.L10N.register( "Shared via link by %2$s" : "Delad via länk av %2$s", "Shared via public link" : "Delad via offentlig länk", "%2$s removed public link" : "%2$s tog bort offentlig länk", - "Public link expired" : "Tidsgräns för offentlig länk har löpt ut", "Public link of %2$s expired" : "Tidsgräns för offentlig länk för %2$s har löpt ut", "Shared by %2$s" : "Delad av %2$s", - "Shares" : "Delningar" + "Shares" : "Delningar", + "Downloaded by %1$s" : "Nedladdad av %1$s", + "%1$s downloaded via public link" : "%1$s nedladdad via offentlig länk", + "%1$s downloaded %2$s" : "%1$s laddade ned %2$s", + "Shared with group %1$s" : "Delad med grupp %1$s", + "Removed share for group %1$s" : "Tog bort delning för grupp %1$s", + "%2$s shared with group %1$s" : "%2$s delad med grupp %1$s", + "%2$s removed share for group %1$s" : "%2$s tog bort delningen för gruppen %1$s", + "You removed group %2$s from %1$s" : "Du tog bort gruppen %2$s från %1$s", + "%3$s shared %1$s with group %2$s" : "%3$s delade %1$s med gruppen %2$s", + "%3$s removed group %2$s from %1$s" : "%3$s tog bort gruppen %2$s från %1$s", + "%1$s shared as public link" : "%1$s delade offentligt", + "%1$s removed public link" : "%1$s tog bort offentlig länk", + "You shared %1$s as public link" : "Du delade %1$s offentligt", + "You removed public link for %1$s" : "Du tog bort den offentliga länken för %1$s", + "%2$s shared %1$s as public link" : "%2$s delade %1$s offentligt", + "%2$s removed public link for %1$s" : "%2$s tog bort den offentliga länken för %1$s", + "%1$s accepted the remote share" : "%1$s accepterade extern delning", + "%1$s declined the remote share" : "%1$s nekade extern delning", + "You received a new remote share %1$s from %2$s" : "Du har fått en ny extern delning %1$s från %2$s", + "%2$s accepted the remote share of %1$s" : "%2$s accepterade extern delning av %1$s", + "%2$s declined the remote share of %1$s" : "%2$s nekade extern delning av %1$s", + "%2$s unshared %1$s from you" : "%2$s slutade dela %1$s med dig", + "Shared with %1$s" : "Delade med %1$s", + "Removed share for %1$s" : "Tog bort delningen för %1$s", + "%2$s shared with %1$s" : "%2$s delade med %1$s", + "%2$s removed share for %1$s" : "%2$s tog bort delningen för %1$s", + "Shared by %1$s" : "Delad av %1$s", + "%1$s removed share" : "%1$s tog bort delning", + "You removed %2$s from %1$s" : "Du tog bort %2$s från %1$s", + "%3$s shared %1$s with %2$s" : "%3$s delade %1$s med %2$s", + "%3$s removed %2$s from %1$s" : "%3$s tog bort %2$s från %1$s", + "%2$s removed you from %1$s" : "%2$s tog bort dig från %1$s" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/sv.json b/apps/files_sharing/l10n/sv.json index 84a1e4a83bf..dfe0cf3f25a 100644 --- a/apps/files_sharing/l10n/sv.json +++ b/apps/files_sharing/l10n/sv.json @@ -18,76 +18,42 @@ "Sharing" : "Delning", "File shares" : "Fildelningar", "Downloaded via public link" : "Nedladdad via offentlig länk", - "Downloaded by %1$s" : "Nedladdad av %1$s", "Downloaded by {email}" : "Nedladdad av {email}", - "%1$s downloaded via public link" : "%1$s nedladdad via offentlig länk", "{file} downloaded via public link" : "{file} nedladdad via offentlig länk", - "%1$s downloaded %2$s" : "%1$s laddade ned %2$s", "{email} downloaded {file}" : "{email} laddade ned {file}", - "Shared with group %1$s" : "Delad med grupp %1$s", "Shared with group {group}" : "Delad med grupp {group}", - "Removed share for group %1$s" : "Tog bort delning för grupp %1$s", "Removed share for group {group}" : "Tog bort delning för grupp {group}", - "%2$s shared with group %1$s" : "%2$s delad med grupp %1$s", "{actor} shared with group {group}" : "{actor} delade med gruppen {group}", - "%2$s removed share for group %1$s" : "%2$s tog bort delningen för gruppen %1$s", "{actor} removed share for group {group}" : "{actor} tog bort delningen för gruppen {group}", - "You shared %1$s with group %2$s" : "Du delade %1$s med grupp %2$s", "You shared {file} with group {group}" : "Du delade {file} med gruppen {group}", - "You removed group %2$s from %1$s" : "Du tog bort gruppen %2$s från %1$s", "You removed group {group} from {file}" : "Du tog bort gruppen {group} från {file}", - "%3$s shared %1$s with group %2$s" : "%3$s delade %1$s med gruppen %2$s", "{actor} shared {file} with group {group}" : "{actor} delade {file} med gruppen {group}", - "%3$s removed group %2$s from %1$s" : "%3$s tog bort gruppen %2$s från %1$s", "{actor} removed group {group} from {file}" : "{actor} tog bort gruppen {group} från {file}", "Shared as public link" : "Delades offentligt", "Removed public link" : "Tog bort offentlig länk", - "%1$s shared as public link" : "%1$s delade offentligt", + "Public link expired" : "Tidsgräns för offentlig länk har löpt ut", "{actor} shared as public link" : "{actor} delade offentligt", - "%1$s removed public link" : "%1$s tog bort offentlig länk", "{actor} removed public link" : "{actor} tog bort offentlig länk", - "You shared %1$s as public link" : "Du delade %1$s offentligt", "You shared {file} as public link" : "Du delade {file} offentligt", - "You removed public link for %1$s" : "Du tog bort den offentliga länken för %1$s", "You removed public link for {file}" : "Du tog bort den offentliga länken för {file}", - "%2$s shared %1$s as public link" : "%2$s delade %1$s offentligt", "{actor} shared {file} as public link" : "{actor} delade {file} offentligt", - "%2$s removed public link for %1$s" : "%2$s tog bort den offentliga länken för %1$s", "{actor} removed public link for {file}" : "{actor} tog bort den offentliga länken för {file}", - "%1$s accepted the remote share" : "%1$s accepterade extern delning", "{user} accepted the remote share" : "{user} accepterade extern delning", - "%1$s declined the remote share" : "%1$s nekade extern delning", "{user} declined the remote share" : "{user} nekade extern delning", - "You received a new remote share %1$s from %2$s" : "Du har fått en ny extern delning %1$s från %2$s", "You received a new remote share {file} from {user}" : "Du har fått en ny extern delning {file} från {user}", - "%2$s accepted the remote share of %1$s" : "%2$s accepterade extern delning av %1$s", "{user} accepted the remote share of {file}" : "{user} accepterade extern delning av {file}", - "%2$s declined the remote share of %1$s" : "%2$s nekade extern delning av %1$s", "{user} declined the remote share of {file}" : "{user} nekade extern delning av {file}", - "%2$s unshared %1$s from you" : "%2$s slutade dela %1$s med dig", "{user} unshared {file} from you" : "{user} slutade dela {file} med dig", - "Shared with %1$s" : "Delade med %1$s", "Shared with {user}" : "Delade med {user}", - "Removed share for %1$s" : "Tog bort delningen för %1$s", "Removed share for {user}" : "Tog bort delningen för {user}", - "%2$s shared with %1$s" : "%2$s delade med %1$s", "{actor} shared with {user}" : "{actor} delade med {user}", - "%2$s removed share for %1$s" : "%2$s tog bort delningen för %1$s", "{actor} removed share for {user}" : "{actor} tog bort delningen för {user}", - "Shared by %1$s" : "Delad av %1$s", "Shared by {actor}" : "Delad av {actor}", - "%1$s removed share" : "%1$s tog bort delning", "{actor} removed share" : "{actor} tog bort delning", - "You shared %1$s with %2$s" : "Du delade %1$s med %2$s", "You shared {file} with {user}" : "Du delade {file} med {user}", - "You removed %2$s from %1$s" : "Du tog bort %2$s från %1$s", "You removed {user} from {file}" : "Du tog bort {user} från {file}", - "%3$s shared %1$s with %2$s" : "%3$s delade %1$s med %2$s", "{actor} removed {user} from {file}" : "{actor} tog bort {user} från {file}", - "%3$s removed %2$s from %1$s" : "%3$s tog bort %2$s från %1$s", - "%2$s shared %1$s with you" : "%2$s delade %1$s med dig", "{actor} shared {file} with you" : "{actor} delade {file} med dig", - "%2$s removed you from %1$s" : "%2$s tog bort dig från %1$s", "{actor} removed you from {file}" : "{actor} tog bort dig från {file}", "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "En fil eller mapp som delats via mejl eller offentlig länk har blivit <strong>nedladdad</strong>", "A file or folder was shared from <strong>another server</strong>" : "En fil eller mapp delades från <strong>en annan server</strong>", @@ -144,9 +110,11 @@ "%1$s unshared %2$s from you" : "%1$s tog bort delningen %2$s från dig", "Public shared folder %1$s was downloaded" : "Offentligt delad mapp %1$s blev nedladdad", "Public shared file %1$s was downloaded" : "Offentligt delad fil %1$s blev nedladdad", + "You shared %1$s with %2$s" : "Du delade %1$s med %2$s", "%2$s shared %1$s with %3$s" : "%2$s delade %1$s med %3$s", "You removed the share of %2$s for %1$s" : "Du tog bort delning av %2$s för %1$s", "%2$s removed the share of %3$s for %1$s" : "%2$s tog bort delningen av %3$s för %1$s", + "You shared %1$s with group %2$s" : "Du delade %1$s med grupp %2$s", "%2$s shared %1$s with group %3$s" : "%2$s delade %1$s med gruppen %3$s", "You removed the share of group %2$s for %1$s" : "Du tog bort delningen av gruppen %2$s för %1$s", "%2$s removed the share of group %3$s for %1$s" : "%2$s tog bort delningen av grupp %3$s för %1$s", @@ -156,6 +124,7 @@ "%2$s removed the public link for %1$s" : "%2$s tog bort den offentliga länken för %1$s", "Your public link for %1$s expired" : "Din offentliga länk för %1$s har löpt ut", "The public link of %2$s for %1$s expired" : "Den offentliga länken för %2$s av %1$s har löpt ut", + "%2$s shared %1$s with you" : "%2$s delade %1$s med dig", "%2$s removed the share for %1$s" : "%2$s tog bort delningen av %1$s", "Shared with %2$s" : "Delad med %2$s", "Shared with %3$s by %2$s" : "Delad med %3$s av %2$s", @@ -168,9 +137,40 @@ "Shared via link by %2$s" : "Delad via länk av %2$s", "Shared via public link" : "Delad via offentlig länk", "%2$s removed public link" : "%2$s tog bort offentlig länk", - "Public link expired" : "Tidsgräns för offentlig länk har löpt ut", "Public link of %2$s expired" : "Tidsgräns för offentlig länk för %2$s har löpt ut", "Shared by %2$s" : "Delad av %2$s", - "Shares" : "Delningar" + "Shares" : "Delningar", + "Downloaded by %1$s" : "Nedladdad av %1$s", + "%1$s downloaded via public link" : "%1$s nedladdad via offentlig länk", + "%1$s downloaded %2$s" : "%1$s laddade ned %2$s", + "Shared with group %1$s" : "Delad med grupp %1$s", + "Removed share for group %1$s" : "Tog bort delning för grupp %1$s", + "%2$s shared with group %1$s" : "%2$s delad med grupp %1$s", + "%2$s removed share for group %1$s" : "%2$s tog bort delningen för gruppen %1$s", + "You removed group %2$s from %1$s" : "Du tog bort gruppen %2$s från %1$s", + "%3$s shared %1$s with group %2$s" : "%3$s delade %1$s med gruppen %2$s", + "%3$s removed group %2$s from %1$s" : "%3$s tog bort gruppen %2$s från %1$s", + "%1$s shared as public link" : "%1$s delade offentligt", + "%1$s removed public link" : "%1$s tog bort offentlig länk", + "You shared %1$s as public link" : "Du delade %1$s offentligt", + "You removed public link for %1$s" : "Du tog bort den offentliga länken för %1$s", + "%2$s shared %1$s as public link" : "%2$s delade %1$s offentligt", + "%2$s removed public link for %1$s" : "%2$s tog bort den offentliga länken för %1$s", + "%1$s accepted the remote share" : "%1$s accepterade extern delning", + "%1$s declined the remote share" : "%1$s nekade extern delning", + "You received a new remote share %1$s from %2$s" : "Du har fått en ny extern delning %1$s från %2$s", + "%2$s accepted the remote share of %1$s" : "%2$s accepterade extern delning av %1$s", + "%2$s declined the remote share of %1$s" : "%2$s nekade extern delning av %1$s", + "%2$s unshared %1$s from you" : "%2$s slutade dela %1$s med dig", + "Shared with %1$s" : "Delade med %1$s", + "Removed share for %1$s" : "Tog bort delningen för %1$s", + "%2$s shared with %1$s" : "%2$s delade med %1$s", + "%2$s removed share for %1$s" : "%2$s tog bort delningen för %1$s", + "Shared by %1$s" : "Delad av %1$s", + "%1$s removed share" : "%1$s tog bort delning", + "You removed %2$s from %1$s" : "Du tog bort %2$s från %1$s", + "%3$s shared %1$s with %2$s" : "%3$s delade %1$s med %2$s", + "%3$s removed %2$s from %1$s" : "%3$s tog bort %2$s från %1$s", + "%2$s removed you from %1$s" : "%2$s tog bort dig från %1$s" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/zh_CN.js b/apps/files_sharing/l10n/zh_CN.js index 93bed366572..f79d080f907 100644 --- a/apps/files_sharing/l10n/zh_CN.js +++ b/apps/files_sharing/l10n/zh_CN.js @@ -20,40 +20,24 @@ OC.L10N.register( "Sharing" : "共享", "File shares" : "文件共享", "Downloaded via public link" : "通过公开链接下载", - "Downloaded by %1$s" : "已被 %1$s 下载", "Downloaded by {email}" : "已被 {email} 下载", - "%1$s downloaded via public link" : "已被 %1$s 通过公开链接下载", "{file} downloaded via public link" : "{file} 被通过公开链接下载", - "%1$s downloaded %2$s" : "%1$s 已下载 %2$s", "{email} downloaded {file}" : "{email} 已下载 {file}", - "Shared with group %1$s" : "分享到群组 %1$s", "Shared with group {group}" : "分享到群组 {group}", - "Removed share for group %1$s" : "到群组 %1$s 的分享已被移除", "Removed share for group {group}" : "到群组 {group} 的分享已被移除 ", - "%2$s shared with group %1$s" : "%2$s 被分享到群组 %1$s", "{actor} shared with group {group}" : "{actor} 被分享到群组 {group}", - "You shared %1$s with group %2$s" : "您把 %1$s 分享给了 %2$s 组", - "You removed group %2$s from %1$s" : "你移除了群组 %2$s 在 %1$s", "Shared as public link" : "共享为公开链接", "Removed public link" : "移除公开链接", - "%1$s shared as public link" : "%1$s 公共链接分享", + "Public link expired" : "公开链接已过期", "{actor} shared as public link" : "{actor} 公共链接分享", - "%1$s removed public link" : "%1$s 删除公共链接", "{actor} removed public link" : "{actor} 删除公共链接", - "You shared %1$s as public link" : "你共享了 %1$s 为公开链接", "You shared {file} as public link" : "你共享了 {file} 为公开链接", - "You removed public link for %1$s" : "你移除了 %1$s 的公开链接", "You removed public link for {file}" : "你移除了 {file} 的公开链接", "{user} accepted the remote share" : "{user} 接受了远程共享", - "Shared with %1$s" : "与 %1$s 分享", "Shared with {user}" : "与 {user} 分享", "Removed share for {user}" : "移除给 {user} 的共享", - "Shared by %1$s" : "由 %1$s 共享", "Shared by {actor}" : "由 {actor} 共享", - "%1$s removed share" : "%1$s 移除共享", - "You shared %1$s with %2$s" : "您把 %1$s分享给了 %2$s", "{actor} removed {user} from {file}" : "{actor} 移除 {user} 从 {file}", - "%2$s shared %1$s with you" : "%2$s 把 %1$s 分享给了您", "A file or folder was shared from <strong>another server</strong>" : "<strong>其它服务器</strong> 中一个文件或者文件夹被共享 ", "A file or folder has been <strong>shared</strong>" : "一个文件或文件夹已<strong>共享</strong>。", "Wrong share ID, share doesn't exist" : "错误的共享 ID,共享不存在", @@ -108,9 +92,11 @@ OC.L10N.register( "%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" : "您把 %1$s分享给了 %2$s", "%2$s shared %1$s with %3$s" : "%2$s 共享 %1$s 给 %3$s", "You removed the share of %2$s for %1$s" : "你移除了 %2$s 的共享 %1$s", "%2$s removed the share of %3$s for %1$s" : "%2$s 移除了 %3$s 的共享 %1$s", + "You shared %1$s with group %2$s" : "您把 %1$s 分享给了 %2$s 组", "%2$s shared %1$s with group %3$s" : "%2$s 共享 %1$s 给群组 %3$s", "You removed the share of group %2$s for %1$s" : "你移除了组 %2$s 的共享 %1$s", "%2$s removed the share of group %3$s for %1$s" : "%2$s 移除了组 %3$s 的共享 %1$s", @@ -120,6 +106,7 @@ OC.L10N.register( "%2$s removed the public link for %1$s" : "%2$s 移除了公共链接 %1$s", "Your public link for %1$s expired" : "你的公开链接 %1$s 已过期", "The public link of %2$s for %1$s expired" : "%2$s 的公开链接 %1$s 已过期", + "%2$s shared %1$s with you" : "%2$s 把 %1$s 分享给了您", "%2$s removed the share for %1$s" : "%2$s 移除了共享 %1$s", "Shared with %2$s" : "共享给 %2$s", "Shared with %3$s by %2$s" : "由 %2$s 共享给 %3$s", @@ -132,9 +119,22 @@ OC.L10N.register( "Shared via link by %2$s" : "%2$s 以链接方式共享", "Shared via public link" : "通过公开链接共享", "%2$s removed public link" : "%2$s 移除了公共链接", - "Public link expired" : "公开链接已过期", "Public link of %2$s expired" : "%2$s 的公开链接已过期", "Shared by %2$s" : "由 %2$s 共享", - "Shares" : "共享" + "Shares" : "共享", + "Downloaded by %1$s" : "已被 %1$s 下载", + "%1$s downloaded via public link" : "已被 %1$s 通过公开链接下载", + "%1$s downloaded %2$s" : "%1$s 已下载 %2$s", + "Shared with group %1$s" : "分享到群组 %1$s", + "Removed share for group %1$s" : "到群组 %1$s 的分享已被移除", + "%2$s shared with group %1$s" : "%2$s 被分享到群组 %1$s", + "You removed group %2$s from %1$s" : "你移除了群组 %2$s 在 %1$s", + "%1$s shared as public link" : "%1$s 公共链接分享", + "%1$s removed public link" : "%1$s 删除公共链接", + "You shared %1$s as public link" : "你共享了 %1$s 为公开链接", + "You removed public link for %1$s" : "你移除了 %1$s 的公开链接", + "Shared with %1$s" : "与 %1$s 分享", + "Shared by %1$s" : "由 %1$s 共享", + "%1$s removed share" : "%1$s 移除共享" }, "nplurals=1; plural=0;"); diff --git a/apps/files_sharing/l10n/zh_CN.json b/apps/files_sharing/l10n/zh_CN.json index 38e3b36040e..a630bb5b77e 100644 --- a/apps/files_sharing/l10n/zh_CN.json +++ b/apps/files_sharing/l10n/zh_CN.json @@ -18,40 +18,24 @@ "Sharing" : "共享", "File shares" : "文件共享", "Downloaded via public link" : "通过公开链接下载", - "Downloaded by %1$s" : "已被 %1$s 下载", "Downloaded by {email}" : "已被 {email} 下载", - "%1$s downloaded via public link" : "已被 %1$s 通过公开链接下载", "{file} downloaded via public link" : "{file} 被通过公开链接下载", - "%1$s downloaded %2$s" : "%1$s 已下载 %2$s", "{email} downloaded {file}" : "{email} 已下载 {file}", - "Shared with group %1$s" : "分享到群组 %1$s", "Shared with group {group}" : "分享到群组 {group}", - "Removed share for group %1$s" : "到群组 %1$s 的分享已被移除", "Removed share for group {group}" : "到群组 {group} 的分享已被移除 ", - "%2$s shared with group %1$s" : "%2$s 被分享到群组 %1$s", "{actor} shared with group {group}" : "{actor} 被分享到群组 {group}", - "You shared %1$s with group %2$s" : "您把 %1$s 分享给了 %2$s 组", - "You removed group %2$s from %1$s" : "你移除了群组 %2$s 在 %1$s", "Shared as public link" : "共享为公开链接", "Removed public link" : "移除公开链接", - "%1$s shared as public link" : "%1$s 公共链接分享", + "Public link expired" : "公开链接已过期", "{actor} shared as public link" : "{actor} 公共链接分享", - "%1$s removed public link" : "%1$s 删除公共链接", "{actor} removed public link" : "{actor} 删除公共链接", - "You shared %1$s as public link" : "你共享了 %1$s 为公开链接", "You shared {file} as public link" : "你共享了 {file} 为公开链接", - "You removed public link for %1$s" : "你移除了 %1$s 的公开链接", "You removed public link for {file}" : "你移除了 {file} 的公开链接", "{user} accepted the remote share" : "{user} 接受了远程共享", - "Shared with %1$s" : "与 %1$s 分享", "Shared with {user}" : "与 {user} 分享", "Removed share for {user}" : "移除给 {user} 的共享", - "Shared by %1$s" : "由 %1$s 共享", "Shared by {actor}" : "由 {actor} 共享", - "%1$s removed share" : "%1$s 移除共享", - "You shared %1$s with %2$s" : "您把 %1$s分享给了 %2$s", "{actor} removed {user} from {file}" : "{actor} 移除 {user} 从 {file}", - "%2$s shared %1$s with you" : "%2$s 把 %1$s 分享给了您", "A file or folder was shared from <strong>another server</strong>" : "<strong>其它服务器</strong> 中一个文件或者文件夹被共享 ", "A file or folder has been <strong>shared</strong>" : "一个文件或文件夹已<strong>共享</strong>。", "Wrong share ID, share doesn't exist" : "错误的共享 ID,共享不存在", @@ -106,9 +90,11 @@ "%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" : "您把 %1$s分享给了 %2$s", "%2$s shared %1$s with %3$s" : "%2$s 共享 %1$s 给 %3$s", "You removed the share of %2$s for %1$s" : "你移除了 %2$s 的共享 %1$s", "%2$s removed the share of %3$s for %1$s" : "%2$s 移除了 %3$s 的共享 %1$s", + "You shared %1$s with group %2$s" : "您把 %1$s 分享给了 %2$s 组", "%2$s shared %1$s with group %3$s" : "%2$s 共享 %1$s 给群组 %3$s", "You removed the share of group %2$s for %1$s" : "你移除了组 %2$s 的共享 %1$s", "%2$s removed the share of group %3$s for %1$s" : "%2$s 移除了组 %3$s 的共享 %1$s", @@ -118,6 +104,7 @@ "%2$s removed the public link for %1$s" : "%2$s 移除了公共链接 %1$s", "Your public link for %1$s expired" : "你的公开链接 %1$s 已过期", "The public link of %2$s for %1$s expired" : "%2$s 的公开链接 %1$s 已过期", + "%2$s shared %1$s with you" : "%2$s 把 %1$s 分享给了您", "%2$s removed the share for %1$s" : "%2$s 移除了共享 %1$s", "Shared with %2$s" : "共享给 %2$s", "Shared with %3$s by %2$s" : "由 %2$s 共享给 %3$s", @@ -130,9 +117,22 @@ "Shared via link by %2$s" : "%2$s 以链接方式共享", "Shared via public link" : "通过公开链接共享", "%2$s removed public link" : "%2$s 移除了公共链接", - "Public link expired" : "公开链接已过期", "Public link of %2$s expired" : "%2$s 的公开链接已过期", "Shared by %2$s" : "由 %2$s 共享", - "Shares" : "共享" + "Shares" : "共享", + "Downloaded by %1$s" : "已被 %1$s 下载", + "%1$s downloaded via public link" : "已被 %1$s 通过公开链接下载", + "%1$s downloaded %2$s" : "%1$s 已下载 %2$s", + "Shared with group %1$s" : "分享到群组 %1$s", + "Removed share for group %1$s" : "到群组 %1$s 的分享已被移除", + "%2$s shared with group %1$s" : "%2$s 被分享到群组 %1$s", + "You removed group %2$s from %1$s" : "你移除了群组 %2$s 在 %1$s", + "%1$s shared as public link" : "%1$s 公共链接分享", + "%1$s removed public link" : "%1$s 删除公共链接", + "You shared %1$s as public link" : "你共享了 %1$s 为公开链接", + "You removed public link for %1$s" : "你移除了 %1$s 的公开链接", + "Shared with %1$s" : "与 %1$s 分享", + "Shared by %1$s" : "由 %1$s 共享", + "%1$s removed share" : "%1$s 移除共享" },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file diff --git a/apps/files_sharing/lib/Activity/Providers/Base.php b/apps/files_sharing/lib/Activity/Providers/Base.php new file mode 100644 index 00000000000..3b73c23786e --- /dev/null +++ b/apps/files_sharing/lib/Activity/Providers/Base.php @@ -0,0 +1,184 @@ +<?php +/** + * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace OCA\Files_Sharing\Activity\Providers; + +use OCP\Activity\IEvent; +use OCP\Activity\IManager; +use OCP\Activity\IProvider; +use OCP\IL10N; +use OCP\IURLGenerator; +use OCP\IUser; +use OCP\IUserManager; +use OCP\L10N\IFactory; + +abstract class Base implements IProvider { + + /** @var IFactory */ + protected $languageFactory; + + /** @var IL10N */ + protected $l; + + /** @var IURLGenerator */ + protected $url; + + /** @var IManager */ + protected $activityManager; + + /** @var IUserManager */ + protected $userManager; + + /** @var array */ + protected $displayNames = []; + + /** + * @param IFactory $languageFactory + * @param IURLGenerator $url + * @param IManager $activityManager + * @param IUserManager $userManager + */ + public function __construct(IFactory $languageFactory, IURLGenerator $url, IManager $activityManager, IUserManager $userManager) { + $this->languageFactory = $languageFactory; + $this->url = $url; + $this->activityManager = $activityManager; + $this->userManager = $userManager; + } + + /** + * @param string $language + * @param IEvent $event + * @param IEvent|null $previousEvent + * @return IEvent + * @throws \InvalidArgumentException + * @since 11.0.0 + */ + public function parse($language, IEvent $event, IEvent $previousEvent = null) { + if ($event->getApp() !== 'files_sharing') { + throw new \InvalidArgumentException(); + } + + $this->l = $this->languageFactory->get('files_sharing', $language); + + if ($this->activityManager->isFormattingFilteredObject()) { + try { + return $this->parseShortVersion($event); + } catch (\InvalidArgumentException $e) { + // Ignore and simply use the long version... + } + } + + return $this->parseLongVersion($event); + } + + /** + * @param IEvent $event + * @return IEvent + * @throws \InvalidArgumentException + * @since 11.0.0 + */ + abstract protected function parseShortVersion(IEvent $event); + + /** + * @param IEvent $event + * @return IEvent + * @throws \InvalidArgumentException + * @since 11.0.0 + */ + abstract protected function parseLongVersion(IEvent $event); + + /** + * @param IEvent $event + * @param string $subject + * @param array $parameters + * @throws \InvalidArgumentException + */ + protected function setSubjects(IEvent $event, $subject, array $parameters) { + $placeholders = $replacements = []; + foreach ($parameters as $placeholder => $parameter) { + $placeholders[] = '{' . $placeholder . '}'; + if ($parameter['type'] === 'file') { + $replacements[] = $parameter['path']; + } else { + $replacements[] = $parameter['name']; + } + } + + $event->setParsedSubject(str_replace($placeholders, $replacements, $subject)) + ->setRichSubject($subject, $parameters); + } + + /** + * @param array|string $parameter + * @param IEvent|null $event + * @return array + * @throws \InvalidArgumentException + */ + protected function getFile($parameter, IEvent $event = null) { + if (is_array($parameter)) { + $path = reset($parameter); + $id = (string) key($parameter); + } else if ($event !== null) { + // Legacy from before ownCloud 8.2 + $path = $parameter; + $id = $event->getObjectId(); + } else { + throw new \InvalidArgumentException('Could not generate file parameter'); + } + + return [ + 'type' => 'file', + 'id' => $id, + 'name' => basename($path), + 'path' => trim($path, '/'), + 'link' => $this->url->linkToRouteAbsolute('files.viewcontroller.showFile', ['fileid' => $id]), + ]; + } + + /** + * @param string $uid + * @return array + */ + protected function getUser($uid) { + if (!isset($this->displayNames[$uid])) { + $this->displayNames[$uid] = $this->getDisplayName($uid); + } + + return [ + 'type' => 'user', + 'id' => $uid, + 'name' => $this->displayNames[$uid], + ]; + } + + /** + * @param string $uid + * @return string + */ + protected function getDisplayName($uid) { + $user = $this->userManager->get($uid); + if ($user instanceof IUser) { + return $user->getDisplayName(); + } else { + return $uid; + } + } +} diff --git a/apps/files_sharing/lib/Activity/Providers/Downloads.php b/apps/files_sharing/lib/Activity/Providers/Downloads.php index 01012e4785b..eb14c16266c 100644 --- a/apps/files_sharing/lib/Activity/Providers/Downloads.php +++ b/apps/files_sharing/lib/Activity/Providers/Downloads.php @@ -22,25 +22,9 @@ namespace OCA\Files_Sharing\Activity\Providers; use OCP\Activity\IEvent; -use OCP\Activity\IManager; -use OCP\Activity\IProvider; -use OCP\IL10N; -use OCP\IURLGenerator; -use OCP\L10N\IFactory; -class Downloads implements IProvider { +class Downloads extends Base { - /** @var IFactory */ - protected $languageFactory; - - /** @var IL10N */ - protected $l; - - /** @var IURLGenerator */ - protected $url; - - /** @var IManager */ - protected $activityManager; const SUBJECT_PUBLIC_SHARED_FILE_DOWNLOADED = 'public_shared_file_downloaded'; const SUBJECT_PUBLIC_SHARED_FOLDER_DOWNLOADED = 'public_shared_folder_downloaded'; @@ -49,43 +33,6 @@ class Downloads implements IProvider { const SUBJECT_SHARED_FOLDER_BY_EMAIL_DOWNLOADED = 'folder_shared_with_email_downloaded'; /** - * @param IFactory $languageFactory - * @param IURLGenerator $url - * @param IManager $activityManager - */ - public function __construct(IFactory $languageFactory, IURLGenerator $url, IManager $activityManager) { - $this->languageFactory = $languageFactory; - $this->url = $url; - $this->activityManager = $activityManager; - } - - /** - * @param string $language - * @param IEvent $event - * @param IEvent|null $previousEvent - * @return IEvent - * @throws \InvalidArgumentException - * @since 11.0.0 - */ - public function parse($language, IEvent $event, IEvent $previousEvent = null) { - if ($event->getApp() !== 'files_sharing') { - throw new \InvalidArgumentException(); - } - - $this->l = $this->languageFactory->get('files_sharing', $language); - - if ($this->activityManager->isFormattingFilteredObject()) { - try { - return $this->parseShortVersion($event); - } catch (\InvalidArgumentException $e) { - // Ignore and simply use the long version... - } - } - - return $this->parseLongVersion($event); - } - - /** * @param IEvent $event * @return IEvent * @throws \InvalidArgumentException @@ -96,19 +43,17 @@ class Downloads implements IProvider { if ($event->getSubject() === self::SUBJECT_PUBLIC_SHARED_FILE_DOWNLOADED || $event->getSubject() === self::SUBJECT_PUBLIC_SHARED_FOLDER_DOWNLOADED) { - $event->setParsedSubject($this->l->t('Downloaded via public link')) - ->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/download.svg'))); + $subject = $this->l->t('Downloaded via public link'); } else if ($event->getSubject() === self::SUBJECT_SHARED_FILE_BY_EMAIL_DOWNLOADED || $event->getSubject() === self::SUBJECT_SHARED_FOLDER_BY_EMAIL_DOWNLOADED) { - $event->setParsedSubject($this->l->t('Downloaded by %1$s', $parsedParameters['email']['name'])) - ->setRichSubject($this->l->t('Downloaded by {email}'), [ - 'email' => $parsedParameters['email'], - ]) - ->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/download.svg'))); + $subject = $this->l->t('Downloaded by {email}'); } else { throw new \InvalidArgumentException(); } + $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/download.svg'))); + $this->setSubjects($event, $subject, $parsedParameters); + return $event; } @@ -123,34 +68,24 @@ class Downloads implements IProvider { if ($event->getSubject() === self::SUBJECT_PUBLIC_SHARED_FILE_DOWNLOADED || $event->getSubject() === self::SUBJECT_PUBLIC_SHARED_FOLDER_DOWNLOADED) { - $event->setParsedSubject($this->l->t('%1$s downloaded via public link', [ - $parsedParameters['file']['path'], - ])) - ->setRichSubject($this->l->t('{file} downloaded via public link'), [ - 'file' => $parsedParameters['file'], - ]) - ->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/download.svg'))); + $subject = $this->l->t('{file} downloaded via public link'); } else if ($event->getSubject() === self::SUBJECT_SHARED_FILE_BY_EMAIL_DOWNLOADED || $event->getSubject() === self::SUBJECT_SHARED_FOLDER_BY_EMAIL_DOWNLOADED) { - $event->setParsedSubject($this->l->t('%1$s downloaded %2$s', [ - $parsedParameters['email']['name'], - $parsedParameters['file']['path'], - ])) - ->setRichSubject($this->l->t('{email} downloaded {file}'), [ - 'email' => $parsedParameters['email'], - 'file' => $parsedParameters['file'], - ]) - ->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/download.svg'))); + $subject = $this->l->t('{email} downloaded {file}'); } else { throw new \InvalidArgumentException(); } + $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/download.svg'))); + $this->setSubjects($event, $subject, $parsedParameters); + return $event; } /** * @param IEvent $event * @return array + * @throws \InvalidArgumentException */ protected function getParsedParameters(IEvent $event) { $subject = $event->getSubject(); @@ -160,12 +95,12 @@ class Downloads implements IProvider { case self::SUBJECT_PUBLIC_SHARED_FILE_DOWNLOADED: case self::SUBJECT_PUBLIC_SHARED_FOLDER_DOWNLOADED: return [ - 'file' => $this->generateFileParameter($event->getObjectId(), $parameters[0]), + 'file' => $this->getFile($parameters[0], $event), ]; case self::SUBJECT_SHARED_FILE_BY_EMAIL_DOWNLOADED: case self::SUBJECT_SHARED_FOLDER_BY_EMAIL_DOWNLOADED: return [ - 'file' => $this->generateFileParameter($event->getObjectId(), $parameters[0]), + 'file' => $this->getFile($parameters[0], $event), 'email' => [ 'type' => 'email', 'id' => $parameters[1], @@ -176,19 +111,4 @@ class Downloads implements IProvider { throw new \InvalidArgumentException(); } - - /** - * @param int $id - * @param string $path - * @return array - */ - protected function generateFileParameter($id, $path) { - return [ - 'type' => 'file', - 'id' => $id, - 'name' => basename($path), - 'path' => trim($path, '/'), - 'link' => $this->url->linkToRouteAbsolute('files.viewcontroller.showFile', ['fileid' => $id]), - ]; - } } diff --git a/apps/files_sharing/lib/Activity/Providers/Groups.php b/apps/files_sharing/lib/Activity/Providers/Groups.php index 6c25572d0d4..06ccdaa98b3 100644 --- a/apps/files_sharing/lib/Activity/Providers/Groups.php +++ b/apps/files_sharing/lib/Activity/Providers/Groups.php @@ -22,79 +22,14 @@ namespace OCA\Files_Sharing\Activity\Providers; use OCP\Activity\IEvent; -use OCP\Activity\IManager; -use OCP\Activity\IProvider; -use OCP\IL10N; -use OCP\IURLGenerator; -use OCP\IUser; -use OCP\IUserManager; -use OCP\L10N\IFactory; -class Groups implements IProvider { - - /** @var IFactory */ - protected $languageFactory; - - /** @var IL10N */ - protected $l; - - /** @var IURLGenerator */ - protected $url; - - /** @var IManager */ - protected $activityManager; - - /** @var IUserManager */ - protected $userManager; - - /** @var array */ - protected $displayNames = []; +class Groups extends Base { const SUBJECT_SHARED_GROUP_SELF = 'shared_group_self'; const SUBJECT_RESHARED_GROUP_BY = 'reshared_group_by'; const SUBJECT_UNSHARED_GROUP_SELF = 'unshared_group_self'; const SUBJECT_UNSHARED_GROUP_BY = 'unshared_group_by'; - - /** - * @param IFactory $languageFactory - * @param IURLGenerator $url - * @param IManager $activityManager - * @param IUserManager $userManager - */ - public function __construct(IFactory $languageFactory, IURLGenerator $url, IManager $activityManager, IUserManager $userManager) { - $this->languageFactory = $languageFactory; - $this->url = $url; - $this->activityManager = $activityManager; - $this->userManager = $userManager; - } - - /** - * @param string $language - * @param IEvent $event - * @param IEvent|null $previousEvent - * @return IEvent - * @throws \InvalidArgumentException - * @since 11.0.0 - */ - public function parse($language, IEvent $event, IEvent $previousEvent = null) { - if ($event->getApp() !== 'files_sharing') { - throw new \InvalidArgumentException(); - } - - $this->l = $this->languageFactory->get('files_sharing', $language); - - if ($this->activityManager->isFormattingFilteredObject()) { - try { - return $this->parseShortVersion($event); - } catch (\InvalidArgumentException $e) { - // Ignore and simply use the long version... - } - } - - return $this->parseLongVersion($event); - } - /** * @param IEvent $event * @return IEvent @@ -105,42 +40,20 @@ class Groups implements IProvider { $parsedParameters = $this->getParsedParameters($event); if ($event->getSubject() === self::SUBJECT_SHARED_GROUP_SELF) { - $event->setParsedSubject($this->l->t('Shared with group %1$s', [$parsedParameters['group']['name']])) - ->setRichSubject($this->l->t('Shared with group {group}'), [ - 'group' => $parsedParameters['group'], - ]) - ->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg'))); + $subject = $this->l->t('Shared with group {group}'); } else if ($event->getSubject() === self::SUBJECT_UNSHARED_GROUP_SELF) { - $event->setParsedSubject($this->l->t('Removed share for group %1$s', [$parsedParameters['group']['name']])) - ->setRichSubject($this->l->t('Removed share for group {group}'), [ - 'group' => $parsedParameters['group'], - ]) - ->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg'))); + $subject = $this->l->t('Removed share for group {group}'); } else if ($event->getSubject() === self::SUBJECT_RESHARED_GROUP_BY) { - $event->setParsedSubject($this->l->t('%2$s shared with group %1$s', [ - $parsedParameters['group']['name'], - $parsedParameters['actor']['name'], - ])) - ->setRichSubject($this->l->t('{actor} shared with group {group}'), [ - 'group' => $parsedParameters['group'], - 'actor' => $parsedParameters['actor'], - ]) - ->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg'))); + $subject = $this->l->t('{actor} shared with group {group}'); } else if ($event->getSubject() === self::SUBJECT_UNSHARED_GROUP_BY) { - $event->setParsedSubject($this->l->t('%2$s removed share for group %1$s', [ - $parsedParameters['group']['name'], - $parsedParameters['actor']['name'], - ])) - ->setRichSubject($this->l->t('{actor} removed share for group {group}'), [ - 'group' => $parsedParameters['group'], - 'actor' => $parsedParameters['actor'], - ]) - ->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg'))); - + $subject = $this->l->t('{actor} removed share for group {group}'); } else { throw new \InvalidArgumentException(); } + $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg'))); + $this->setSubjects($event, $subject, $parsedParameters); + return $event; } @@ -154,39 +67,20 @@ class Groups implements IProvider { $parsedParameters = $this->getParsedParameters($event); if ($event->getSubject() === self::SUBJECT_SHARED_GROUP_SELF) { - $event->setParsedSubject($this->l->t('You shared %1$s with group %2$s', [ - $parsedParameters['file']['path'], - $parsedParameters['group']['name'], - ])) - ->setRichSubject($this->l->t('You shared {file} with group {group}'), $parsedParameters) - ->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg'))); + $subject = $this->l->t('You shared {file} with group {group}'); } else if ($event->getSubject() === self::SUBJECT_UNSHARED_GROUP_SELF) { - $event->setParsedSubject($this->l->t('You removed group %2$s from %1$s', [ - $parsedParameters['file']['path'], - $parsedParameters['group']['name'], - ])) - ->setRichSubject($this->l->t('You removed group {group} from {file}'), $parsedParameters) - ->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg'))); + $subject = $this->l->t('You removed group {group} from {file}'); } else if ($event->getSubject() === self::SUBJECT_RESHARED_GROUP_BY) { - $event->setParsedSubject($this->l->t('%3$s shared %1$s with group %2$s', [ - $parsedParameters['file']['path'], - $parsedParameters['group']['name'], - $parsedParameters['actor']['name'], - ])) - ->setRichSubject($this->l->t('{actor} shared {file} with group {group}'), $parsedParameters) - ->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg'))); + $subject = $this->l->t('{actor} shared {file} with group {group}'); } else if ($event->getSubject() === self::SUBJECT_UNSHARED_GROUP_BY) { - $event->setParsedSubject($this->l->t('%3$s removed group %2$s from %1$s', [ - $parsedParameters['file']['path'], - $parsedParameters['group']['name'], - $parsedParameters['actor']['name'], - ])) - ->setRichSubject($this->l->t('{actor} removed group {group} from {file}'), $parsedParameters) - ->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg'))); + $subject = $this->l->t('{actor} removed group {group} from {file}'); } else { throw new \InvalidArgumentException(); } + $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg'))); + $this->setSubjects($event, $subject, $parsedParameters); + return $event; } @@ -197,21 +91,19 @@ class Groups implements IProvider { switch ($subject) { case self::SUBJECT_RESHARED_GROUP_BY: case self::SUBJECT_UNSHARED_GROUP_BY: - $id = key($parameters[0]); return [ - 'file' => $this->generateFileParameter($id, $parameters[0][$id]), + 'file' => $this->getFile($parameters[0], $event), 'group' => [ 'type' => 'group', 'id' => $parameters[2], 'name' => $parameters[2], ], - 'actor' => $this->generateUserParameter($parameters[1]), + 'actor' => $this->getUser($parameters[1]), ]; case self::SUBJECT_SHARED_GROUP_SELF: case self::SUBJECT_UNSHARED_GROUP_SELF: - $id = key($parameters[0]); return [ - 'file' => $this->generateFileParameter($id, $parameters[0][$id]), + 'file' => $this->getFile($parameters[0], $event), 'group' => [ 'type' => 'group', 'id' => $parameters[1], @@ -221,48 +113,4 @@ class Groups implements IProvider { } return []; } - - /** - * @param int $id - * @param string $path - * @return array - */ - protected function generateFileParameter($id, $path) { - return [ - 'type' => 'file', - 'id' => $id, - 'name' => basename($path), - 'path' => trim($path, '/'), - 'link' => $this->url->linkToRouteAbsolute('files.viewcontroller.showFile', ['fileid' => $id]), - ]; - } - - /** - * @param string $uid - * @return array - */ - protected function generateUserParameter($uid) { - if (!isset($this->displayNames[$uid])) { - $this->displayNames[$uid] = $this->getDisplayName($uid); - } - - return [ - 'type' => 'user', - 'id' => $uid, - 'name' => $this->displayNames[$uid], - ]; - } - - /** - * @param string $uid - * @return string - */ - protected function getDisplayName($uid) { - $user = $this->userManager->get($uid); - if ($user instanceof IUser) { - return $user->getDisplayName(); - } else { - return $uid; - } - } } diff --git a/apps/files_sharing/lib/Activity/Providers/PublicLinks.php b/apps/files_sharing/lib/Activity/Providers/PublicLinks.php index 20070970bca..b22ae0aa9b5 100644 --- a/apps/files_sharing/lib/Activity/Providers/PublicLinks.php +++ b/apps/files_sharing/lib/Activity/Providers/PublicLinks.php @@ -22,33 +22,8 @@ namespace OCA\Files_Sharing\Activity\Providers; use OCP\Activity\IEvent; -use OCP\Activity\IManager; -use OCP\Activity\IProvider; -use OCP\IL10N; -use OCP\IURLGenerator; -use OCP\IUser; -use OCP\IUserManager; -use OCP\L10N\IFactory; -class PublicLinks implements IProvider { - - /** @var IFactory */ - protected $languageFactory; - - /** @var IL10N */ - protected $l; - - /** @var IURLGenerator */ - protected $url; - - /** @var IManager */ - protected $activityManager; - - /** @var IUserManager */ - protected $userManager; - - /** @var array */ - protected $displayNames = []; +class PublicLinks extends Base { const SUBJECT_SHARED_LINK_SELF = 'shared_link_self'; const SUBJECT_RESHARED_LINK_BY = 'reshared_link_by'; @@ -57,46 +32,6 @@ class PublicLinks implements IProvider { const SUBJECT_LINK_EXPIRED = 'link_expired'; const SUBJECT_LINK_BY_EXPIRED = 'link_by_expired'; - - /** - * @param IFactory $languageFactory - * @param IURLGenerator $url - * @param IManager $activityManager - * @param IUserManager $userManager - */ - public function __construct(IFactory $languageFactory, IURLGenerator $url, IManager $activityManager, IUserManager $userManager) { - $this->languageFactory = $languageFactory; - $this->url = $url; - $this->activityManager = $activityManager; - $this->userManager = $userManager; - } - - /** - * @param string $language - * @param IEvent $event - * @param IEvent|null $previousEvent - * @return IEvent - * @throws \InvalidArgumentException - * @since 11.0.0 - */ - public function parse($language, IEvent $event, IEvent $previousEvent = null) { - if ($event->getApp() !== 'files_sharing') { - throw new \InvalidArgumentException(); - } - - $this->l = $this->languageFactory->get('files_sharing', $language); - - if ($this->activityManager->isFormattingFilteredObject()) { - try { - return $this->parseShortVersion($event); - } catch (\InvalidArgumentException $e) { - // Ignore and simply use the long version... - } - } - - return $this->parseLongVersion($event); - } - /** * @param IEvent $event * @return IEvent @@ -107,46 +42,25 @@ class PublicLinks implements IProvider { $parsedParameters = $this->getParsedParameters($event); if ($event->getSubject() === self::SUBJECT_SHARED_LINK_SELF) { - $event->setParsedSubject($this->l->t('Shared as public link')) - ->setRichSubject($this->l->t('Shared as public link')) - ->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg'))); + $subject = $this->l->t('Shared as public link'); } else if ($event->getSubject() === self::SUBJECT_UNSHARED_LINK_SELF) { - $event->setParsedSubject($this->l->t('Removed public link')) - ->setRichSubject($this->l->t('Removed public link')) - ->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg'))); -// } else if ($event->getSubject() === self::SUBJECT_LINK_EXPIRED) { -// $event->setParsedSubject($this->l->t('Public link expired')) -// ->setRichSubject($this->l->t('Public link expired')) -// ->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg'))); + $subject = $this->l->t('Removed public link'); + } else if ($event->getSubject() === self::SUBJECT_LINK_EXPIRED) { + $subject = $this->l->t('Public link expired'); } else if ($event->getSubject() === self::SUBJECT_RESHARED_LINK_BY) { - $event->setParsedSubject($this->l->t('%1$s shared as public link', [ - $parsedParameters['actor']['name'], - ])) - ->setRichSubject($this->l->t('{actor} shared as public link'), [ - 'actor' => $parsedParameters['actor'], - ]) - ->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg'))); + $subject = $this->l->t('{actor} shared as public link'); } else if ($event->getSubject() === self::SUBJECT_UNSHARED_LINK_BY) { - $event->setParsedSubject($this->l->t('%1$s removed public link', [ - $parsedParameters['actor']['name'], - ])) - ->setRichSubject($this->l->t('{actor} removed public link'), [ - 'actor' => $parsedParameters['actor'], - ]) - ->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg'))); -// } else if ($event->getSubject() === self::SUBJECT_LINK_BY_EXPIRED) { -// $event->setParsedSubject($this->l->t('Public link of %1$s expired', [ -// $parsedParameters['actor']['name'], -// ])) -// ->setRichSubject($this->l->t('Public link of {actor} expired',[ -// 'actor' => $parsedParameters['actor'], -// ])) -// ->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg'))); + $subject = $this->l->t('{actor} removed public link'); + } else if ($event->getSubject() === self::SUBJECT_LINK_BY_EXPIRED) { + $subject = $this->l->t('Public link of {actor} expired'); } else { throw new \InvalidArgumentException(); } + $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg'))); + $this->setSubjects($event, $subject, $parsedParameters); + return $event; } @@ -160,48 +74,25 @@ class PublicLinks implements IProvider { $parsedParameters = $this->getParsedParameters($event); if ($event->getSubject() === self::SUBJECT_SHARED_LINK_SELF) { - $event->setParsedSubject($this->l->t('You shared %1$s as public link', [ - $parsedParameters['file']['path'], - ])) - ->setRichSubject($this->l->t('You shared {file} as public link'), $parsedParameters) - ->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg'))); + $subject = $this->l->t('You shared {file} as public link'); } else if ($event->getSubject() === self::SUBJECT_UNSHARED_LINK_SELF) { - $event->setParsedSubject($this->l->t('You removed public link for %1$s', [ - $parsedParameters['file']['path'], - ])) - ->setRichSubject($this->l->t('You removed public link for {file}'), $parsedParameters) - ->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg'))); -// } else if ($event->getSubject() === self::SUBJECT_LINK_EXPIRED) { -// $event->setParsedSubject($this->l->t('Public link expired')) -// ->setRichSubject($this->l->t('Public link expired')) -// ->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg'))); + $subject = $this->l->t('You removed public link for {file}'); + } else if ($event->getSubject() === self::SUBJECT_LINK_EXPIRED) { + $subject = $this->l->t('Public link expired for {file}'); } else if ($event->getSubject() === self::SUBJECT_RESHARED_LINK_BY) { - $event->setParsedSubject($this->l->t('%2$s shared %1$s as public link', [ - $parsedParameters['file']['path'], - $parsedParameters['actor']['name'], - ])) - ->setRichSubject($this->l->t('{actor} shared {file} as public link'), $parsedParameters) - ->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg'))); + $subject = $this->l->t('{actor} shared {file} as public link'); } else if ($event->getSubject() === self::SUBJECT_UNSHARED_LINK_BY) { - $event->setParsedSubject($this->l->t('%2$s removed public link for %1$s', [ - $parsedParameters['file']['path'], - $parsedParameters['actor']['name'], - ])) - ->setRichSubject($this->l->t('{actor} removed public link for {file}'), $parsedParameters) - ->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg'))); -// } else if ($event->getSubject() === self::SUBJECT_LINK_BY_EXPIRED) { -// $event->setParsedSubject($this->l->t('Public link of %1$s expired', [ -// $parsedParameters['actor']['name'], -// ])) -// ->setRichSubject($this->l->t('Public link of {actor} expired',[ -// 'actor' => $parsedParameters['actor'], -// ])) -// ->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg'))); + $subject = $this->l->t('{actor} removed public link for {file}'); + } else if ($event->getSubject() === self::SUBJECT_LINK_BY_EXPIRED) { + $subject = $this->l->t('Public link of {actor} for {file} expired'); } else { throw new \InvalidArgumentException(); } + $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg'))); + $this->setSubjects($event, $subject, $parsedParameters); + return $event; } @@ -213,63 +104,18 @@ class PublicLinks implements IProvider { case self::SUBJECT_SHARED_LINK_SELF: case self::SUBJECT_UNSHARED_LINK_SELF: case self::SUBJECT_LINK_EXPIRED: - $id = key($parameters[0]); return [ - 'file' => $this->generateFileParameter($id, $parameters[0][$id]), + 'file' => $this->getFile($parameters[0], $event), ]; case self::SUBJECT_RESHARED_LINK_BY: case self::SUBJECT_UNSHARED_LINK_BY: case self::SUBJECT_LINK_BY_EXPIRED: - $id = key($parameters[0]); return [ - 'file' => $this->generateFileParameter($id, $parameters[0][$id]), - 'actor' => $this->generateUserParameter($parameters[1]), + 'file' => $this->getFile($parameters[0], $event), + 'actor' => $this->getUser($parameters[1]), ]; } return []; } - /** - * @param int $id - * @param string $path - * @return array - */ - protected function generateFileParameter($id, $path) { - return [ - 'type' => 'file', - 'id' => $id, - 'name' => basename($path), - 'path' => trim($path, '/'), - 'link' => $this->url->linkToRouteAbsolute('files.viewcontroller.showFile', ['fileid' => $id]), - ]; - } - - /** - * @param string $uid - * @return array - */ - protected function generateUserParameter($uid) { - if (!isset($this->displayNames[$uid])) { - $this->displayNames[$uid] = $this->getDisplayName($uid); - } - - return [ - 'type' => 'user', - 'id' => $uid, - 'name' => $this->displayNames[$uid], - ]; - } - - /** - * @param string $uid - * @return string - */ - protected function getDisplayName($uid) { - $user = $this->userManager->get($uid); - if ($user instanceof IUser) { - return $user->getDisplayName(); - } else { - return $uid; - } - } } diff --git a/apps/files_sharing/lib/Activity/Providers/RemoteShares.php b/apps/files_sharing/lib/Activity/Providers/RemoteShares.php index 3ee5d82e932..4e7d8ef3e27 100644 --- a/apps/files_sharing/lib/Activity/Providers/RemoteShares.php +++ b/apps/files_sharing/lib/Activity/Providers/RemoteShares.php @@ -24,23 +24,15 @@ namespace OCA\Files_Sharing\Activity\Providers; use OCP\Activity\IEvent; use OCP\Activity\IManager; use OCP\Activity\IProvider; +use OCP\Federation\ICloudIdManager; use OCP\IL10N; use OCP\IURLGenerator; +use OCP\IUserManager; use OCP\L10N\IFactory; -class RemoteShares implements IProvider { +class RemoteShares extends Base { - /** @var IFactory */ - protected $languageFactory; - - /** @var IL10N */ - protected $l; - - /** @var IURLGenerator */ - protected $url; - - /** @var IManager */ - protected $activityManager; + protected $cloudIdManager; const SUBJECT_REMOTE_SHARE_ACCEPTED = 'remote_share_accepted'; const SUBJECT_REMOTE_SHARE_DECLINED = 'remote_share_declined'; @@ -51,37 +43,17 @@ class RemoteShares implements IProvider { * @param IFactory $languageFactory * @param IURLGenerator $url * @param IManager $activityManager + * @param IUserManager $userManager + * @param ICloudIdManager $cloudIdManager */ - public function __construct(IFactory $languageFactory, IURLGenerator $url, IManager $activityManager) { - $this->languageFactory = $languageFactory; - $this->url = $url; - $this->activityManager = $activityManager; - } - - /** - * @param string $language - * @param IEvent $event - * @param IEvent|null $previousEvent - * @return IEvent - * @throws \InvalidArgumentException - * @since 11.0.0 - */ - public function parse($language, IEvent $event, IEvent $previousEvent = null) { - if ($event->getApp() !== 'files_sharing') { - throw new \InvalidArgumentException(); - } - - $this->l = $this->languageFactory->get('files_sharing', $language); - - if ($this->activityManager->isFormattingFilteredObject()) { - try { - return $this->parseShortVersion($event); - } catch (\InvalidArgumentException $e) { - // Ignore and simply use the long version... - } - } - - return $this->parseLongVersion($event); + public function __construct(IFactory $languageFactory, + IURLGenerator $url, + IManager $activityManager, + IUserManager $userManager, + ICloudIdManager $cloudIdManager + ) { + parent::__construct($languageFactory, $url, $activityManager, $userManager); + $this->cloudIdManager = $cloudIdManager; } /** @@ -94,25 +66,16 @@ class RemoteShares implements IProvider { $parsedParameters = $this->getParsedParameters($event); if ($event->getSubject() === self::SUBJECT_REMOTE_SHARE_ACCEPTED) { - $event->setParsedSubject($this->l->t('%1$s accepted the remote share', [ - $parsedParameters['user']['name'], - ])) - ->setRichSubject($this->l->t('{user} accepted the remote share'), [ - 'user' => $parsedParameters['user'] - ]) - ->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg'))); + $subject = $this->l->t('{user} accepted the remote share'); } else if ($event->getSubject() === self::SUBJECT_REMOTE_SHARE_DECLINED) { - $event->setParsedSubject($this->l->t('%1$s declined the remote share', [ - $parsedParameters['user']['name'], - ])) - ->setRichSubject($this->l->t('{user} declined the remote share'), [ - 'user' => $parsedParameters['user'] - ]) - ->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg'))); + $subject = $this->l->t('{user} declined the remote share'); } else { throw new \InvalidArgumentException(); } + $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg'))); + $this->setSubjects($event, $subject, $parsedParameters); + return $event; } @@ -126,37 +89,20 @@ class RemoteShares implements IProvider { $parsedParameters = $this->getParsedParameters($event); if ($event->getSubject() === self::SUBJECT_REMOTE_SHARE_RECEIVED) { - $event->setParsedSubject($this->l->t('You received a new remote share %1$s from %2$s', [ - $parsedParameters['file']['name'], - $parsedParameters['user']['name'], - ])) - ->setRichSubject($this->l->t('You received a new remote share {file} from {user}'), $parsedParameters) - ->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg'))); + $subject = $this->l->t('You received a new remote share {file} from {user}'); } else if ($event->getSubject() === self::SUBJECT_REMOTE_SHARE_ACCEPTED) { - $event->setParsedSubject($this->l->t('%2$s accepted the remote share of %1$s', [ - $parsedParameters['file']['name'], - $parsedParameters['user']['name'], - ])) - ->setRichSubject($this->l->t('{user} accepted the remote share of {file}'), $parsedParameters) - ->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg'))); + $subject = $this->l->t('{user} accepted the remote share of {file}'); } else if ($event->getSubject() === self::SUBJECT_REMOTE_SHARE_DECLINED) { - $event->setParsedSubject($this->l->t('%2$s declined the remote share of %1$s', [ - $parsedParameters['file']['name'], - $parsedParameters['user']['name'], - ])) - ->setRichSubject($this->l->t('{user} declined the remote share of {file}'), $parsedParameters) - ->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg'))); + $subject = $this->l->t('{user} declined the remote share of {file}'); } else if ($event->getSubject() === self::SUBJECT_REMOTE_SHARE_UNSHARED) { - $event->setParsedSubject($this->l->t('%2$s unshared %1$s from you', [ - $parsedParameters['file']['name'], - $parsedParameters['user']['name'], - ])) - ->setRichSubject($this->l->t('{user} unshared {file} from you'), $parsedParameters) - ->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg'))); + $subject = $this->l->t('{user} unshared {file} from you'); } else { throw new \InvalidArgumentException(); } + $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg'))); + $this->setSubjects($event, $subject, $parsedParameters); + return $event; } @@ -167,48 +113,35 @@ class RemoteShares implements IProvider { switch ($subject) { case self::SUBJECT_REMOTE_SHARE_RECEIVED: case self::SUBJECT_REMOTE_SHARE_UNSHARED: - $remoteUser = explode('@', $parameters[0], 2); return [ 'file' => [ 'type' => 'pending-federated-share', 'id' => $parameters[1], 'name' => $parameters[1], ], - 'user' => [ - 'type' => 'user', - 'id' => $remoteUser[0], - 'name' => $parameters[0],// Todo display name from contacts - 'server' => $remoteUser[1], - ], + 'user' => $this->getFederatedUser($parameters[0]), ]; case self::SUBJECT_REMOTE_SHARE_ACCEPTED: case self::SUBJECT_REMOTE_SHARE_DECLINED: - $remoteUser = explode('@', $parameters[0], 2); return [ - 'file' => $this->generateFileParameter($event->getObjectId(), $event->getObjectName()), - 'user' => [ - 'type' => 'user', - 'id' => $remoteUser[0], - 'name' => $parameters[0],// Todo display name from contacts - 'server' => $remoteUser[1], - ], + 'file' => $this->getFile([$event->getObjectId() => $event->getObjectName()]), + 'user' => $this->getFederatedUser($parameters[0]), ]; } throw new \InvalidArgumentException(); } /** - * @param int $id - * @param string $path + * @param string $cloudId * @return array */ - protected function generateFileParameter($id, $path) { + protected function getFederatedUser($cloudId) { + $remoteUser = $this->cloudIdManager->resolveCloudId($cloudId); return [ - 'type' => 'file', - 'id' => $id, - 'name' => basename($path), - 'path' => $path, - 'link' => $this->url->linkToRouteAbsolute('files.viewcontroller.showFile', ['fileid' => $id]), + 'type' => 'user', + 'id' => $remoteUser->getUser(), + 'name' => $cloudId,// Todo display name from contacts + 'server' => $remoteUser->getRemote(), ]; } } diff --git a/apps/files_sharing/lib/Activity/Providers/Users.php b/apps/files_sharing/lib/Activity/Providers/Users.php index 4db72136a85..f5cd4e8bfe3 100644 --- a/apps/files_sharing/lib/Activity/Providers/Users.php +++ b/apps/files_sharing/lib/Activity/Providers/Users.php @@ -22,33 +22,9 @@ namespace OCA\Files_Sharing\Activity\Providers; use OCP\Activity\IEvent; -use OCP\Activity\IManager; -use OCP\Activity\IProvider; -use OCP\IL10N; -use OCP\IURLGenerator; -use OCP\IUser; -use OCP\IUserManager; -use OCP\L10N\IFactory; -class Users implements IProvider { +class Users extends Base { - /** @var IFactory */ - protected $languageFactory; - - /** @var IL10N */ - protected $l; - - /** @var IURLGenerator */ - protected $url; - - /** @var IManager */ - protected $activityManager; - - /** @var IUserManager */ - protected $userManager; - - /** @var array */ - protected $displayNames = []; const SUBJECT_SHARED_USER_SELF = 'shared_user_self'; const SUBJECT_RESHARED_USER_BY = 'reshared_user_by'; @@ -59,45 +35,6 @@ class Users implements IProvider { const SUBJECT_UNSHARED_BY = 'unshared_by'; /** - * @param IFactory $languageFactory - * @param IURLGenerator $url - * @param IManager $activityManager - * @param IUserManager $userManager - */ - public function __construct(IFactory $languageFactory, IURLGenerator $url, IManager $activityManager, IUserManager $userManager) { - $this->languageFactory = $languageFactory; - $this->url = $url; - $this->activityManager = $activityManager; - $this->userManager = $userManager; - } - - /** - * @param string $language - * @param IEvent $event - * @param IEvent|null $previousEvent - * @return IEvent - * @throws \InvalidArgumentException - * @since 11.0.0 - */ - public function parse($language, IEvent $event, IEvent $previousEvent = null) { - if ($event->getApp() !== 'files_sharing') { - throw new \InvalidArgumentException(); - } - - $this->l = $this->languageFactory->get('files_sharing', $language); - - if ($this->activityManager->isFormattingFilteredObject()) { - try { - return $this->parseShortVersion($event); - } catch (\InvalidArgumentException $e) { - // Ignore and simply use the long version... - } - } - - return $this->parseLongVersion($event); - } - - /** * @param IEvent $event * @return IEvent * @throws \InvalidArgumentException @@ -107,54 +44,25 @@ class Users implements IProvider { $parsedParameters = $this->getParsedParameters($event); if ($event->getSubject() === self::SUBJECT_SHARED_USER_SELF) { - $event->setParsedSubject($this->l->t('Shared with %1$s', [$parsedParameters['user']['name']])) - ->setRichSubject($this->l->t('Shared with {user}'), [ - 'user' => $parsedParameters['user'], - ]) - ->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg'))); + $subject = $this->l->t('Shared with {user}'); } else if ($event->getSubject() === self::SUBJECT_UNSHARED_USER_SELF) { - $event->setParsedSubject($this->l->t('Removed share for %1$s', [$parsedParameters['user']['name']])) - ->setRichSubject($this->l->t('Removed share for {user}'), [ - 'user' => $parsedParameters['user'], - ]) - ->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg'))); + $subject = $this->l->t('Removed share for {user}'); } else if ($event->getSubject() === self::SUBJECT_RESHARED_USER_BY) { - $event->setParsedSubject($this->l->t('%2$s shared with %1$s', [ - $parsedParameters['user']['name'], - $parsedParameters['actor']['name'], - ])) - ->setRichSubject($this->l->t('{actor} shared with {user}'), [ - 'user' => $parsedParameters['user'], - 'actor' => $parsedParameters['actor'], - ]) - ->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg'))); + $subject = $this->l->t('{actor} shared with {user}'); } else if ($event->getSubject() === self::SUBJECT_UNSHARED_USER_BY) { - $event->setParsedSubject($this->l->t('%2$s removed share for %1$s', [ - $parsedParameters['user']['name'], - $parsedParameters['actor']['name'], - ])) - ->setRichSubject($this->l->t('{actor} removed share for {user}'), [ - 'user' => $parsedParameters['user'], - 'actor' => $parsedParameters['actor'], - ]) - ->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg'))); + $subject = $this->l->t('{actor} removed share for {user}'); } else if ($event->getSubject() === self::SUBJECT_SHARED_WITH_BY) { - $event->setParsedSubject($this->l->t('Shared by %1$s', [$parsedParameters['actor']['name']])) - ->setRichSubject($this->l->t('Shared by {actor}'), [ - 'actor' => $parsedParameters['actor'], - ]) - ->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg'))); + $subject = $this->l->t('Shared by {actor}'); } else if ($event->getSubject() === self::SUBJECT_UNSHARED_BY) { - $event->setParsedSubject($this->l->t('%1$s removed share', [$parsedParameters['actor']['name']])) - ->setRichSubject($this->l->t('{actor} removed share'), [ - 'actor' => $parsedParameters['actor'], - ]) - ->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg'))); + $subject = $this->l->t('{actor} removed share'); } else { throw new \InvalidArgumentException(); } + $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg'))); + $this->setSubjects($event, $subject, $parsedParameters); + return $event; } @@ -168,54 +76,25 @@ class Users implements IProvider { $parsedParameters = $this->getParsedParameters($event); if ($event->getSubject() === self::SUBJECT_SHARED_USER_SELF) { - $event->setParsedSubject($this->l->t('You shared %1$s with %2$s', [ - $parsedParameters['file']['path'], - $parsedParameters['user']['name'], - ])) - ->setRichSubject($this->l->t('You shared {file} with {user}'), $parsedParameters) - ->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg'))); + $subject = $this->l->t('You shared {file} with {user}'); } else if ($event->getSubject() === self::SUBJECT_UNSHARED_USER_SELF) { - $event->setParsedSubject($this->l->t('You removed %2$s from %1$s', [ - $parsedParameters['file']['path'], - $parsedParameters['user']['name'], - ])) - ->setRichSubject($this->l->t('You removed {user} from {file}'), $parsedParameters) - ->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg'))); + $subject = $this->l->t('You removed {user} from {file}'); } else if ($event->getSubject() === self::SUBJECT_RESHARED_USER_BY) { - $event->setParsedSubject($this->l->t('%3$s shared %1$s with %2$s', [ - $parsedParameters['file']['path'], - $parsedParameters['user']['name'], - $parsedParameters['actor']['name'], - ])) - ->setRichSubject($this->l->t('{actor} removed {user} from {file}'), $parsedParameters) - ->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg'))); + $subject = $this->l->t('{actor} removed {user} from {file}'); } else if ($event->getSubject() === self::SUBJECT_UNSHARED_USER_BY) { - $event->setParsedSubject($this->l->t('%3$s removed %2$s from %1$s', [ - $parsedParameters['file']['path'], - $parsedParameters['user']['name'], - $parsedParameters['actor']['name'], - ])) - ->setRichSubject($this->l->t('{actor} removed {user} from {file}'), $parsedParameters) - ->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg'))); + $subject = $this->l->t('{actor} removed {user} from {file}'); } else if ($event->getSubject() === self::SUBJECT_SHARED_WITH_BY) { - $event->setParsedSubject($this->l->t('%2$s shared %1$s with you', [ - $parsedParameters['file']['path'], - $parsedParameters['actor']['name'], - ])) - ->setRichSubject($this->l->t('{actor} shared {file} with you'), $parsedParameters) - ->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg'))); + $subject = $this->l->t('{actor} shared {file} with you'); } else if ($event->getSubject() === self::SUBJECT_UNSHARED_BY) { - $event->setParsedSubject($this->l->t('%2$s removed you from %1$s', [ - $parsedParameters['file']['path'], - $parsedParameters['actor']['name'], - ])) - ->setRichSubject($this->l->t('{actor} removed you from {file}'), $parsedParameters) - ->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg'))); + $subject = $this->l->t('{actor} removed you from {file}'); } else { throw new \InvalidArgumentException(); } + $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg'))); + $this->setSubjects($event, $subject, $parsedParameters); + return $event; } @@ -226,71 +105,24 @@ class Users implements IProvider { switch ($subject) { case self::SUBJECT_SHARED_USER_SELF: case self::SUBJECT_UNSHARED_USER_SELF: - $id = key($parameters[0]); return [ - 'file' => $this->generateFileParameter($id, $parameters[0][$id]), - 'user' => $this->generateUserParameter($parameters[1]), + 'file' => $this->getFile($parameters[0], $event), + 'user' => $this->getUser($parameters[1]), ]; case self::SUBJECT_SHARED_WITH_BY: case self::SUBJECT_UNSHARED_BY: - $id = key($parameters[0]); return [ - 'file' => $this->generateFileParameter($id, $parameters[0][$id]), - 'actor' => $this->generateUserParameter($parameters[1]), + 'file' => $this->getFile($parameters[0], $event), + 'actor' => $this->getUser($parameters[1]), ]; case self::SUBJECT_RESHARED_USER_BY: case self::SUBJECT_UNSHARED_USER_BY: - $id = key($parameters[0]); return [ - 'file' => $this->generateFileParameter($id, $parameters[0][$id]), - 'user' => $this->generateUserParameter($parameters[2]), - 'actor' => $this->generateUserParameter($parameters[1]), + 'file' => $this->getFile($parameters[0], $event), + 'user' => $this->getUser($parameters[2]), + 'actor' => $this->getUser($parameters[1]), ]; } return []; } - - /** - * @param int $id - * @param string $path - * @return array - */ - protected function generateFileParameter($id, $path) { - return [ - 'type' => 'file', - 'id' => $id, - 'name' => basename($path), - 'path' => trim($path, '/'), - 'link' => $this->url->linkToRouteAbsolute('files.viewcontroller.showFile', ['fileid' => $id]), - ]; - } - - /** - * @param string $uid - * @return array - */ - protected function generateUserParameter($uid) { - if (!isset($this->displayNames[$uid])) { - $this->displayNames[$uid] = $this->getDisplayName($uid); - } - - return [ - 'type' => 'user', - 'id' => $uid, - 'name' => $this->displayNames[$uid], - ]; - } - - /** - * @param string $uid - * @return string - */ - protected function getDisplayName($uid) { - $user = $this->userManager->get($uid); - if ($user instanceof IUser) { - return $user->getDisplayName(); - } else { - return $uid; - } - } } diff --git a/apps/files_sharing/lib/AppInfo/Application.php b/apps/files_sharing/lib/AppInfo/Application.php index 403d30ae2e6..c8cf723630b 100644 --- a/apps/files_sharing/lib/AppInfo/Application.php +++ b/apps/files_sharing/lib/AppInfo/Application.php @@ -35,6 +35,7 @@ use OC\AppFramework\Utility\SimpleContainer; use OCA\Files_Sharing\Controller\ExternalSharesController; use OCA\Files_Sharing\Controller\ShareController; use OCA\Files_Sharing\Middleware\SharingCheckMiddleware; +use OCP\Federation\ICloudIdManager; use \OCP\IContainer; use OCP\IServerContainer; @@ -84,6 +85,9 @@ class Application extends App { $container->registerService('HttpClientService', function (SimpleContainer $c) use ($server) { return $server->getHTTPClientService(); }); + $container->registerService(ICloudIdManager::class, function (SimpleContainer $c) use ($server) { + return $server->getCloudIdManager(); + }); $container->registerService('ExternalManager', function (SimpleContainer $c) use ($server) { $user = $server->getUserSession()->getUser(); $uid = $user ? $user->getUID() : null; @@ -145,7 +149,8 @@ class Application extends App { $server->getDatabaseConnection(), function() use ($c) { return $c->query('ExternalManager'); - } + }, + $server->getCloudIdManager() ); }); diff --git a/apps/files_sharing/lib/Controller/ShareesAPIController.php b/apps/files_sharing/lib/Controller/ShareesAPIController.php index cd5139693cf..40a9b272bc8 100644 --- a/apps/files_sharing/lib/Controller/ShareesAPIController.php +++ b/apps/files_sharing/lib/Controller/ShareesAPIController.php @@ -28,6 +28,7 @@ use OCP\AppFramework\Http; use OCP\AppFramework\OCS\OCSBadRequestException; use OCP\AppFramework\OCSController; use OCP\Contacts\IManager; +use OCP\Federation\ICloudIdManager; use OCP\Http\Client\IClientService; use OCP\IGroup; use OCP\IGroupManager; @@ -69,6 +70,9 @@ class ShareesAPIController extends OCSController { /** @var IClientService */ protected $clientService; + /** @var ICloudIdManager */ + protected $cloudIdManager; + /** @var bool */ protected $shareWithGroupOnly = false; @@ -110,6 +114,7 @@ class ShareesAPIController extends OCSController { * @param ILogger $logger * @param \OCP\Share\IManager $shareManager * @param IClientService $clientService + * @param ICloudIdManager $cloudIdManager */ public function __construct($appName, IRequest $request, @@ -121,7 +126,9 @@ class ShareesAPIController extends OCSController { IURLGenerator $urlGenerator, ILogger $logger, \OCP\Share\IManager $shareManager, - IClientService $clientService) { + IClientService $clientService, + ICloudIdManager $cloudIdManager + ) { parent::__construct($appName, $request); $this->groupManager = $groupManager; @@ -133,6 +140,7 @@ class ShareesAPIController extends OCSController { $this->logger = $logger; $this->shareManager = $shareManager; $this->clientService = $clientService; + $this->cloudIdManager = $cloudIdManager; } /** @@ -339,7 +347,7 @@ class ShareesAPIController extends OCSController { $result['results'] = []; } - if (!$result['exactIdMatch'] && substr_count($search, '@') >= 1 && $this->offset === 0) { + if (!$result['exactIdMatch'] && $this->cloudIdManager->isValidCloudId($search) && $this->offset === 0) { $result['exact'][] = [ 'label' => $search, 'value' => [ @@ -362,42 +370,12 @@ class ShareesAPIController extends OCSController { * @throws \Exception */ public function splitUserRemote($address) { - if (strpos($address, '@') === false) { - throw new \Exception('Invalid Federated Cloud ID'); - } - - // Find the first character that is not allowed in user names - $id = str_replace('\\', '/', $address); - $posSlash = strpos($id, '/'); - $posColon = strpos($id, ':'); - - if ($posSlash === false && $posColon === false) { - $invalidPos = strlen($id); - } else if ($posSlash === false) { - $invalidPos = $posColon; - } else if ($posColon === false) { - $invalidPos = $posSlash; - } else { - $invalidPos = min($posSlash, $posColon); - } - - // Find the last @ before $invalidPos - $pos = $lastAtPos = 0; - while ($lastAtPos !== false && $lastAtPos <= $invalidPos) { - $pos = $lastAtPos; - $lastAtPos = strpos($id, '@', $pos + 1); - } - - if ($pos !== false) { - $user = substr($id, 0, $pos); - $remote = substr($id, $pos + 1); - $remote = $this->fixRemoteURL($remote); - if (!empty($user) && !empty($remote)) { - return array($user, $remote); - } + try { + $cloudId = $this->cloudIdManager->resolveCloudId($address); + return [$cloudId->getUser(), $cloudId->getRemote()]; + } catch (\InvalidArgumentException $e) { + throw new \Exception('Invalid Federated Cloud ID', 0, $e); } - - throw new \Exception('Invalid Federated Cloud ID'); } /** diff --git a/apps/files_sharing/lib/External/Cache.php b/apps/files_sharing/lib/External/Cache.php index eaf8e0c4acf..c7793cf0595 100644 --- a/apps/files_sharing/lib/External/Cache.php +++ b/apps/files_sharing/lib/External/Cache.php @@ -24,21 +24,25 @@ namespace OCA\Files_Sharing\External; +use OCP\Federation\ICloudId; + class Cache extends \OC\Files\Cache\Cache { + /** @var ICloudId */ + private $cloudId; private $remote; private $remoteUser; private $storage; /** * @param \OCA\Files_Sharing\External\Storage $storage - * @param string $remote - * @param string $remoteUser + * @param ICloudId $cloudId */ - public function __construct($storage, $remote, $remoteUser) { + public function __construct($storage, ICloudId $cloudId) { + $this->cloudId = $cloudId; $this->storage = $storage; - list(, $remote) = explode('://', $remote, 2); + list(, $remote) = explode('://', $cloudId->getRemote(), 2); $this->remote = $remote; - $this->remoteUser = $remoteUser; + $this->remoteUser = $cloudId->getUser(); parent::__construct($storage); } @@ -47,7 +51,7 @@ class Cache extends \OC\Files\Cache\Cache { if (!$result) { return false; } - $result['displayname_owner'] = $this->remoteUser . '@' . $this->remote; + $result['displayname_owner'] = $this->cloudId->getDisplayId(); if (!$file || $file === '') { $result['is_share_mount_point'] = true; $mountPoint = rtrim($this->storage->getMountPoint()); @@ -59,7 +63,7 @@ class Cache extends \OC\Files\Cache\Cache { public function getFolderContentsById($id) { $results = parent::getFolderContentsById($id); foreach ($results as &$file) { - $file['displayname_owner'] = $this->remoteUser . '@' . $this->remote; + $file['displayname_owner'] = $this->cloudId->getDisplayId(); } return $results; } diff --git a/apps/files_sharing/lib/External/MountProvider.php b/apps/files_sharing/lib/External/MountProvider.php index 3f2f39a74f7..27ee9fcb46b 100644 --- a/apps/files_sharing/lib/External/MountProvider.php +++ b/apps/files_sharing/lib/External/MountProvider.php @@ -22,6 +22,7 @@ namespace OCA\Files_Sharing\External; +use OCP\Federation\ICloudIdManager; use OCP\Files\Config\IMountProvider; use OCP\Files\Storage\IStorageFactory; use OCP\IDBConnection; @@ -41,12 +42,19 @@ class MountProvider implements IMountProvider { private $managerProvider; /** + * @var ICloudIdManager + */ + private $cloudIdManager; + + /** * @param \OCP\IDBConnection $connection * @param callable $managerProvider due to setup order we need a callable that return the manager instead of the manager itself + * @param ICloudIdManager $cloudIdManager */ - public function __construct(IDBConnection $connection, callable $managerProvider) { + public function __construct(IDBConnection $connection, callable $managerProvider, ICloudIdManager $cloudIdManager) { $this->connection = $connection; $this->managerProvider = $managerProvider; + $this->cloudIdManager = $cloudIdManager; } public function getMount(IUser $user, $data, IStorageFactory $storageFactory) { @@ -55,6 +63,7 @@ class MountProvider implements IMountProvider { $data['manager'] = $manager; $mountPoint = '/' . $user->getUID() . '/files/' . ltrim($data['mountpoint'], '/'); $data['mountpoint'] = $mountPoint; + $data['cloudId'] = $this->cloudIdManager->getCloudId($data['owner'], $data['remote']); $data['certificateManager'] = \OC::$server->getCertificateManager($user->getUID()); $data['HttpClientService'] = \OC::$server->getHTTPClientService(); return new Mount(self::STORAGE, $mountPoint, $data, $manager, $storageFactory); diff --git a/apps/files_sharing/lib/External/Storage.php b/apps/files_sharing/lib/External/Storage.php index 93f3571e803..51d97388db7 100644 --- a/apps/files_sharing/lib/External/Storage.php +++ b/apps/files_sharing/lib/External/Storage.php @@ -35,15 +35,14 @@ use OC\ForbiddenException; use OCA\FederatedFileSharing\DiscoveryManager; use OCA\Files_Sharing\ISharedStorage; use OCP\AppFramework\Http; +use OCP\Federation\ICloudId; use OCP\Files\NotFoundException; use OCP\Files\StorageInvalidException; use OCP\Files\StorageNotAvailableException; class Storage extends DAV implements ISharedStorage { - /** @var string */ - private $remoteUser; - /** @var string */ - private $remote; + /** @var ICloudId */ + private $cloudId; /** @var string */ private $mountPoint; /** @var string */ @@ -72,9 +71,8 @@ class Storage extends DAV implements ISharedStorage { $this->manager = $options['manager']; $this->certificateManager = $options['certificateManager']; - $this->remote = $options['remote']; - $this->remoteUser = $options['owner']; - list($protocol, $remote) = explode('://', $this->remote); + $this->cloudId = $options['cloudId']; + list($protocol, $remote) = explode('://', $this->cloudId->getRemote()); if (strpos($remote, '/')) { list($host, $root) = explode('/', $remote, 2); } else { @@ -82,7 +80,7 @@ class Storage extends DAV implements ISharedStorage { $root = ''; } $secure = $protocol === 'https'; - $root = rtrim($root, '/') . $discoveryManager->getWebDavEndpoint($this->remote); + $root = rtrim($root, '/') . $discoveryManager->getWebDavEndpoint($this->cloudId->getRemote()); $this->mountPoint = $options['mountpoint']; $this->token = $options['token']; parent::__construct(array( @@ -106,11 +104,11 @@ class Storage extends DAV implements ISharedStorage { } public function getRemoteUser() { - return $this->remoteUser; + return $this->cloudId->getUser(); } public function getRemote() { - return $this->remote; + return $this->cloudId->getRemote(); } public function getMountPoint() { @@ -130,12 +128,12 @@ class Storage extends DAV implements ISharedStorage { * @return string */ public function getId() { - return 'shared::' . md5($this->token . '@' . $this->remote); + return 'shared::' . md5($this->token . '@' . $this->getRemote()); } public function getCache($path = '', $storage = null) { if (is_null($this->cache)) { - $this->cache = new Cache($this, $this->remote, $this->remoteUser); + $this->cache = new Cache($this, $this->cloudId); } return $this->cache; } @@ -251,9 +249,9 @@ class Storage extends DAV implements ISharedStorage { */ protected function testRemote() { try { - return $this->testRemoteUrl($this->remote . '/ocs-provider/index.php') - || $this->testRemoteUrl($this->remote . '/ocs-provider/') - || $this->testRemoteUrl($this->remote . '/status.php'); + return $this->testRemoteUrl($this->getRemote() . '/ocs-provider/index.php') + || $this->testRemoteUrl($this->getRemote() . '/ocs-provider/') + || $this->testRemoteUrl($this->getRemote() . '/status.php'); } catch (\Exception $e) { return false; } @@ -343,8 +341,7 @@ class Storage extends DAV implements ISharedStorage { } public function getOwner($path) { - list(, $remote) = explode('://', $this->remote, 2); - return $this->remoteUser . '@' . $remote; + return $this->cloudId->getDisplayId(); } public function isSharable($path) { diff --git a/apps/files_sharing/tests/Controller/ShareesAPIControllerTest.php b/apps/files_sharing/tests/Controller/ShareesAPIControllerTest.php index c68e2304743..035085d811a 100644 --- a/apps/files_sharing/tests/Controller/ShareesAPIControllerTest.php +++ b/apps/files_sharing/tests/Controller/ShareesAPIControllerTest.php @@ -25,10 +25,12 @@ namespace OCA\Files_Sharing\Tests\Controller; +use OC\Federation\CloudIdManager; use OCA\Files_Sharing\Controller\ShareesAPIController; use OCA\Files_Sharing\Tests\TestCase; use OCP\AppFramework\Http; use OCP\AppFramework\OCS\OCSBadRequestException; +use OCP\Federation\ICloudIdManager; use OCP\Http\Client\IClientService; use OCP\Share; @@ -64,6 +66,9 @@ class ShareesAPIControllerTest extends TestCase { /** @var IClientService|\PHPUnit_Framework_MockObject_MockObject */ private $clientService; + /** @var ICloudIdManager */ + private $cloudIdManager; + protected function setUp() { parent::setUp(); @@ -93,6 +98,8 @@ class ShareesAPIControllerTest extends TestCase { $this->clientService = $this->createMock(IClientService::class); + $this->cloudIdManager = new CloudIdManager(); + $this->sharees = new ShareesAPIController( 'files_sharing', $this->request, @@ -104,7 +111,8 @@ class ShareesAPIControllerTest extends TestCase { $this->getMockBuilder('OCP\IURLGenerator')->disableOriginalConstructor()->getMock(), $this->getMockBuilder('OCP\ILogger')->disableOriginalConstructor()->getMock(), $this->shareManager, - $this->clientService + $this->clientService, + $this->cloudIdManager ); } @@ -1434,7 +1442,8 @@ class ShareesAPIControllerTest extends TestCase { $this->getMockBuilder('OCP\IURLGenerator')->disableOriginalConstructor()->getMock(), $this->getMockBuilder('OCP\ILogger')->disableOriginalConstructor()->getMock(), $this->shareManager, - $this->clientService + $this->clientService, + $this->cloudIdManager ]) ->setMethods(array('searchSharees', 'isRemoteSharingAllowed', 'shareProviderExists')) ->getMock(); @@ -1526,7 +1535,8 @@ class ShareesAPIControllerTest extends TestCase { $this->getMockBuilder('OCP\IURLGenerator')->disableOriginalConstructor()->getMock(), $this->getMockBuilder('OCP\ILogger')->disableOriginalConstructor()->getMock(), $this->shareManager, - $this->clientService + $this->clientService, + $this->cloudIdManager ]) ->setMethods(array('searchSharees', 'isRemoteSharingAllowed')) ->getMock(); @@ -1692,7 +1702,8 @@ class ShareesAPIControllerTest extends TestCase { $this->getMockBuilder('OCP\IURLGenerator')->disableOriginalConstructor()->getMock(), $this->getMockBuilder('OCP\ILogger')->disableOriginalConstructor()->getMock(), $this->shareManager, - $this->clientService + $this->clientService, + $this->cloudIdManager ]) ->setMethods(array('getShareesForShareIds', 'getUsers', 'getGroups', 'getRemote')) ->getMock(); diff --git a/apps/files_sharing/tests/External/CacheTest.php b/apps/files_sharing/tests/External/CacheTest.php index a31a748a69b..0129e760648 100644 --- a/apps/files_sharing/tests/External/CacheTest.php +++ b/apps/files_sharing/tests/External/CacheTest.php @@ -24,7 +24,9 @@ */ namespace OCA\Files_Sharing\Tests\External; +use OC\Federation\CloudIdManager; use OCA\Files_Sharing\Tests\TestCase; +use OCP\Federation\ICloudIdManager; /** * Class Cache @@ -50,9 +52,13 @@ class CacheTest extends TestCase { */ private $remoteUser; + /** @var ICloudIdManager */ + private $cloudIdManager; + protected function setUp() { parent::setUp(); + $this->cloudIdManager = new CloudIdManager(); $this->remoteUser = $this->getUniqueID('remoteuser'); $this->storage = $this->getMockBuilder('\OCA\Files_Sharing\External\Storage') @@ -64,8 +70,7 @@ class CacheTest extends TestCase { ->will($this->returnValue('dummystorage::')); $this->cache = new \OCA\Files_Sharing\External\Cache( $this->storage, - 'http://example.com/owncloud', - $this->remoteUser + $this->cloudIdManager->getCloudId($this->remoteUser, 'http://example.com/owncloud') ); $this->cache->put( 'test.txt', diff --git a/apps/files_sharing/tests/External/ManagerTest.php b/apps/files_sharing/tests/External/ManagerTest.php index 48476888bdd..f2a55babcc7 100644 --- a/apps/files_sharing/tests/External/ManagerTest.php +++ b/apps/files_sharing/tests/External/ManagerTest.php @@ -25,6 +25,7 @@ namespace OCA\Files_Sharing\Tests\External; +use OC\Federation\CloudIdManager; use OC\Files\Storage\StorageFactory; use OCA\FederatedFileSharing\DiscoveryManager; use OCA\Files_Sharing\External\Manager; @@ -84,7 +85,7 @@ class ManagerTest extends TestCase { ); $this->testMountProvider = new MountProvider(\OC::$server->getDatabaseConnection(), function() { return $this->manager; - }); + }, new CloudIdManager()); } private function setupMounts() { diff --git a/apps/files_sharing/tests/ExternalStorageTest.php b/apps/files_sharing/tests/ExternalStorageTest.php index 49b72be1391..1246b0edb98 100644 --- a/apps/files_sharing/tests/ExternalStorageTest.php +++ b/apps/files_sharing/tests/ExternalStorageTest.php @@ -25,6 +25,7 @@ */ namespace OCA\Files_Sharing\Tests; +use OC\Federation\CloudId; use OCP\Http\Client\IClient; use OCP\Http\Client\IClientService; use OCP\Http\Client\IResponse; @@ -90,6 +91,7 @@ class ExternalStorageTest extends \Test\TestCase { return new TestSharingExternalStorage( array( + 'cloudId' => new CloudId('testOwner@' . $uri, 'testOwner', $uri), 'remote' => $uri, 'owner' => 'testOwner', 'mountpoint' => 'remoteshare', diff --git a/apps/sharebymail/l10n/.gitkeep b/apps/sharebymail/l10n/.gitkeep new file mode 100644 index 00000000000..e69de29bb2d --- /dev/null +++ b/apps/sharebymail/l10n/.gitkeep diff --git a/apps/systemtags/l10n/sq.js b/apps/systemtags/l10n/sq.js index 3c1c1b4f039..424c221d3e8 100644 --- a/apps/systemtags/l10n/sq.js +++ b/apps/systemtags/l10n/sq.js @@ -34,6 +34,7 @@ OC.L10N.register( "%s (invisible)" : "%s (e padukshme)", "<strong>System tags</strong> for a file have been modified" : "U ndryshyan <strong>etiketa sistemi</strong>për një kartelë", "Name" : "Emër", + "Invisible" : "I padukshëm", "No files in here" : "S’ka kartela këtu", "No entries found in this folder" : "S’u gjetën zëra në këtë dosje", "Size" : "Madhësi", diff --git a/apps/systemtags/l10n/sq.json b/apps/systemtags/l10n/sq.json index 31b30a1ffa3..9e9f5789040 100644 --- a/apps/systemtags/l10n/sq.json +++ b/apps/systemtags/l10n/sq.json @@ -32,6 +32,7 @@ "%s (invisible)" : "%s (e padukshme)", "<strong>System tags</strong> for a file have been modified" : "U ndryshyan <strong>etiketa sistemi</strong>për një kartelë", "Name" : "Emër", + "Invisible" : "I padukshëm", "No files in here" : "S’ka kartela këtu", "No entries found in this folder" : "S’u gjetën zëra në këtë dosje", "Size" : "Madhësi", diff --git a/apps/twofactor_backupcodes/l10n/pl.js b/apps/twofactor_backupcodes/l10n/pl.js index 2fdb0332e7a..152e6ba1554 100644 --- a/apps/twofactor_backupcodes/l10n/pl.js +++ b/apps/twofactor_backupcodes/l10n/pl.js @@ -3,11 +3,11 @@ OC.L10N.register( { "Generate backup codes" : "Generowanie kodów zapasowych", "Backup codes have been generated. {{used}} of {{total}} codes have been used." : "Kody zapasowe zostały wygenerowane. {{used}} z {{total}} kodów zostało wykorzystanych.", - "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "To są kody zapasowe. Proszę zapisać i / lub wydrukować, ponieważ później nie będzie można je ponownie przeczytać", - "Save backup codes" : "Zapis kodów zapasowych", + "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "To są kody zapasowe. Proszę je zapisać i/lub wydrukować, ponieważ później nie będzie można ich ponownie odczytać", + "Save backup codes" : "Zapisz kody zapasowe", "Print backup codes" : "Drukuj kody zapasowe", "Regenerate backup codes" : "Ponownie generuj kody zapasowe", - "If you regenerate backup codes, you automatically invalidate old codes." : "Jeśli generujesz kody zapasowe ponownie, automatycznie unieważnia stare kody.", + "If you regenerate backup codes, you automatically invalidate old codes." : "Jeśli generujesz kody zapasowe ponownie, automatycznie unieważniasz stare kody.", "An error occurred while generating your backup codes" : "Wystąpił błąd podczas generowania kodów zapasowych.", "Nextcloud backup codes" : "Kody zapasowe Nextcloud", "Two-factor authentication" : "Uwierzytelnienie dwuetapowe", @@ -16,6 +16,6 @@ OC.L10N.register( "You created two-factor backup codes for your account" : "Stworzyłeś zapasowe kody uwierzytelnienia dwuetapowego swojego konta", "Backup code" : "Kopia zapasowa kodów", "Use backup code" : "Użyj kodu zapasowego", - "Second-factor backup codes" : "Druga opcja kodów zapasowych" + "Second-factor backup codes" : "Drugi składnik kodów zapasowych" }, "nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); diff --git a/apps/twofactor_backupcodes/l10n/pl.json b/apps/twofactor_backupcodes/l10n/pl.json index 5662387446c..035bdf1514f 100644 --- a/apps/twofactor_backupcodes/l10n/pl.json +++ b/apps/twofactor_backupcodes/l10n/pl.json @@ -1,11 +1,11 @@ { "translations": { "Generate backup codes" : "Generowanie kodów zapasowych", "Backup codes have been generated. {{used}} of {{total}} codes have been used." : "Kody zapasowe zostały wygenerowane. {{used}} z {{total}} kodów zostało wykorzystanych.", - "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "To są kody zapasowe. Proszę zapisać i / lub wydrukować, ponieważ później nie będzie można je ponownie przeczytać", - "Save backup codes" : "Zapis kodów zapasowych", + "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "To są kody zapasowe. Proszę je zapisać i/lub wydrukować, ponieważ później nie będzie można ich ponownie odczytać", + "Save backup codes" : "Zapisz kody zapasowe", "Print backup codes" : "Drukuj kody zapasowe", "Regenerate backup codes" : "Ponownie generuj kody zapasowe", - "If you regenerate backup codes, you automatically invalidate old codes." : "Jeśli generujesz kody zapasowe ponownie, automatycznie unieważnia stare kody.", + "If you regenerate backup codes, you automatically invalidate old codes." : "Jeśli generujesz kody zapasowe ponownie, automatycznie unieważniasz stare kody.", "An error occurred while generating your backup codes" : "Wystąpił błąd podczas generowania kodów zapasowych.", "Nextcloud backup codes" : "Kody zapasowe Nextcloud", "Two-factor authentication" : "Uwierzytelnienie dwuetapowe", @@ -14,6 +14,6 @@ "You created two-factor backup codes for your account" : "Stworzyłeś zapasowe kody uwierzytelnienia dwuetapowego swojego konta", "Backup code" : "Kopia zapasowa kodów", "Use backup code" : "Użyj kodu zapasowego", - "Second-factor backup codes" : "Druga opcja kodów zapasowych" + "Second-factor backup codes" : "Drugi składnik kodów zapasowych" },"pluralForm" :"nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" }
\ No newline at end of file diff --git a/apps/user_ldap/l10n/pl.js b/apps/user_ldap/l10n/pl.js index 37ebe04de02..a7732731cab 100644 --- a/apps/user_ldap/l10n/pl.js +++ b/apps/user_ldap/l10n/pl.js @@ -40,6 +40,7 @@ OC.L10N.register( "User found and settings verified." : "Użytkownik nie znalazł ustawienia zweryfikowanego.", "Settings verified, but more than one user found. Only the first will be able to login. Consider a more narrow filter." : "Ustawienia są poprawne, ale znaleziono więcej niż jednego użytkownika. Tylko pierwszy będzie mógł się zalogować. Rozważ większe zawężenie filtrami.", "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Błąd połączenia do LDAP / AD, proszę sprawdzić adres hosta, port i poświadczenia.", + "Please provide a login name to test against" : "Wprowadź nazwę użytkownika, aby wykonać test ponownie", "Password change rejected. Hint: " : "Zmiana hasła odrzucona: Wskazówka:", "LDAP / AD integration" : "Integracja z LDAP / AD", "_%s group found_::_%s groups found_" : ["%s znaleziona grupa","%s znalezionych grup","%s znalezionych grup","%s znalezionych grup"], diff --git a/apps/user_ldap/l10n/pl.json b/apps/user_ldap/l10n/pl.json index 6c9f4d2aeef..9aa9e4e478e 100644 --- a/apps/user_ldap/l10n/pl.json +++ b/apps/user_ldap/l10n/pl.json @@ -38,6 +38,7 @@ "User found and settings verified." : "Użytkownik nie znalazł ustawienia zweryfikowanego.", "Settings verified, but more than one user found. Only the first will be able to login. Consider a more narrow filter." : "Ustawienia są poprawne, ale znaleziono więcej niż jednego użytkownika. Tylko pierwszy będzie mógł się zalogować. Rozważ większe zawężenie filtrami.", "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Błąd połączenia do LDAP / AD, proszę sprawdzić adres hosta, port i poświadczenia.", + "Please provide a login name to test against" : "Wprowadź nazwę użytkownika, aby wykonać test ponownie", "Password change rejected. Hint: " : "Zmiana hasła odrzucona: Wskazówka:", "LDAP / AD integration" : "Integracja z LDAP / AD", "_%s group found_::_%s groups found_" : ["%s znaleziona grupa","%s znalezionych grup","%s znalezionych grup","%s znalezionych grup"], diff --git a/apps/workflowengine/l10n/pl.js b/apps/workflowengine/l10n/pl.js index 84e63e01890..ebec68bd463 100644 --- a/apps/workflowengine/l10n/pl.js +++ b/apps/workflowengine/l10n/pl.js @@ -1,8 +1,8 @@ OC.L10N.register( "workflowengine", { - "Successfully saved" : "Zapisywanie powiodło się", - "Saving failed:" : "Zapisywanie nie powiodło się:", + "Successfully saved" : "Zapis się powiódł", + "Saving failed:" : "Zapis się nie udał:", "File mime type" : "Typ MIME pliku", "is" : "jest", "is not" : "nie jest", @@ -17,13 +17,13 @@ OC.L10N.register( "File system tag" : "Etykieta systemu plików", "is tagged with" : "jest oznaczony", "is not tagged with" : "Nie jest oznaczony", - "Select tag…" : "Wybierz etykietę ...", + "Select tag…" : "Wybierz etykietę...", "Request remote address" : "Uzyskaj zdalny adres", "matches IPv4" : "pasuje IPv4", "does not match IPv4" : "nie pasuje IPv4", "matches IPv6" : "pasuje IPv6", "does not match IPv6" : "nie pasuje IPv6", - "Request time" : "Przekroczono czas odpowiedzi", + "Request time" : "Czas odpowiedzi", "between" : "pomiędzy", "not between" : "nie pomiędzy", "Start" : "Start", @@ -38,8 +38,8 @@ OC.L10N.register( "iOS client" : "Klient iOS", "Desktop client" : "Klient na komputer", "User group membership" : "Członkostwo grupy użytkownika", - "is member of" : "Jest członkiem z", - "is not member of" : "Nie jest członkiem z", + "is member of" : "jest członkiem w", + "is not member of" : "nie jest członkiem w", "The given operator is invalid" : "Dana operacja jest nieprawidłowa", "The given regular expression is invalid" : "Podane wyrażenie regularne jest błędne", "The given file size is invalid" : "Podany rozmiar pliku jest nieprawidłowy", @@ -60,10 +60,10 @@ OC.L10N.register( "Check #%s does not exist" : "Sprawdź, czy #%s nie istnieje", "Workflow" : "Wpływ na pracę", "Open documentation" : "Otwórz dokumentację", - "Add rule group" : "Dodaj regułę grupy", + "Add rule group" : "Dodaj grupę reguł", "Short rule description" : "Krótki opis reguły", "Add rule" : "Dodaj regułę", - "Reset" : "Reset", + "Reset" : "Zresetuj", "Save" : "Zapisz", "Saving…" : "Zapisywanie...", "Loading…" : "Wczytywanie..." diff --git a/apps/workflowengine/l10n/pl.json b/apps/workflowengine/l10n/pl.json index 31bcd2aca3e..9c0c69f914e 100644 --- a/apps/workflowengine/l10n/pl.json +++ b/apps/workflowengine/l10n/pl.json @@ -1,6 +1,6 @@ { "translations": { - "Successfully saved" : "Zapisywanie powiodło się", - "Saving failed:" : "Zapisywanie nie powiodło się:", + "Successfully saved" : "Zapis się powiódł", + "Saving failed:" : "Zapis się nie udał:", "File mime type" : "Typ MIME pliku", "is" : "jest", "is not" : "nie jest", @@ -15,13 +15,13 @@ "File system tag" : "Etykieta systemu plików", "is tagged with" : "jest oznaczony", "is not tagged with" : "Nie jest oznaczony", - "Select tag…" : "Wybierz etykietę ...", + "Select tag…" : "Wybierz etykietę...", "Request remote address" : "Uzyskaj zdalny adres", "matches IPv4" : "pasuje IPv4", "does not match IPv4" : "nie pasuje IPv4", "matches IPv6" : "pasuje IPv6", "does not match IPv6" : "nie pasuje IPv6", - "Request time" : "Przekroczono czas odpowiedzi", + "Request time" : "Czas odpowiedzi", "between" : "pomiędzy", "not between" : "nie pomiędzy", "Start" : "Start", @@ -36,8 +36,8 @@ "iOS client" : "Klient iOS", "Desktop client" : "Klient na komputer", "User group membership" : "Członkostwo grupy użytkownika", - "is member of" : "Jest członkiem z", - "is not member of" : "Nie jest członkiem z", + "is member of" : "jest członkiem w", + "is not member of" : "nie jest członkiem w", "The given operator is invalid" : "Dana operacja jest nieprawidłowa", "The given regular expression is invalid" : "Podane wyrażenie regularne jest błędne", "The given file size is invalid" : "Podany rozmiar pliku jest nieprawidłowy", @@ -58,10 +58,10 @@ "Check #%s does not exist" : "Sprawdź, czy #%s nie istnieje", "Workflow" : "Wpływ na pracę", "Open documentation" : "Otwórz dokumentację", - "Add rule group" : "Dodaj regułę grupy", + "Add rule group" : "Dodaj grupę reguł", "Short rule description" : "Krótki opis reguły", "Add rule" : "Dodaj regułę", - "Reset" : "Reset", + "Reset" : "Zresetuj", "Save" : "Zapisz", "Saving…" : "Zapisywanie...", "Loading…" : "Wczytywanie..." diff --git a/core/Command/User/Setting.php b/core/Command/User/Setting.php index 368a0c15dcd..d7bb436783f 100644 --- a/core/Command/User/Setting.php +++ b/core/Command/User/Setting.php @@ -25,6 +25,7 @@ namespace OC\Core\Command\User; use OC\Core\Command\Base; use OCP\IConfig; use OCP\IDBConnection; +use OCP\IUser; use OCP\IUserManager; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Input\InputOption; @@ -174,6 +175,14 @@ class Setting extends Base { return 1; } + if ($app === 'settings' && $key === 'email') { + $user = $this->userManager->get($uid); + if ($user instanceof IUser) { + $user->setEMailAddress($input->getArgument('value')); + return 0; + } + } + $this->config->setUserValue($uid, $app, $key, $input->getArgument('value')); return 0; @@ -183,6 +192,14 @@ class Setting extends Base { return 1; } + if ($app === 'settings' && $key === 'email') { + $user = $this->userManager->get($uid); + if ($user instanceof IUser) { + $user->setEMailAddress(''); + return 0; + } + } + $this->config->deleteUserValue($uid, $app, $key); return 0; diff --git a/core/Controller/LoginController.php b/core/Controller/LoginController.php index 52bd2213954..954a18e8778 100644 --- a/core/Controller/LoginController.php +++ b/core/Controller/LoginController.php @@ -98,7 +98,7 @@ class LoginController extends Controller { * @return RedirectResponse */ public function logout() { - $loginToken = $this->request->getCookie('oc_token'); + $loginToken = $this->request->getCookie('nc_token'); if (!is_null($loginToken)) { $this->config->deleteUserValue($this->userSession->getUser()->getUID(), 'login_token', $loginToken); } @@ -169,8 +169,6 @@ class LoginController extends Controller { $parameters['user_autofocus'] = true; } - \OC_Util::addStyle('guest'); - return new TemplateResponse( $this->appName, 'login', $parameters, 'guest' ); diff --git a/core/Controller/SetupController.php b/core/Controller/SetupController.php index 87508423cd3..bb7c8c4969d 100644 --- a/core/Controller/SetupController.php +++ b/core/Controller/SetupController.php @@ -92,7 +92,6 @@ class SetupController { \OC_Util::addVendorScript('strengthify/jquery.strengthify'); \OC_Util::addVendorStyle('strengthify/strengthify'); - \OC_Util::addStyle('guest'); \OC_Util::addScript('setup'); \OC_Template::printGuestPage('', 'installation', $parameters); } diff --git a/core/css/guest.css b/core/css/guest.css index 3223e764ac0..292ae40e8d6 100644 --- a/core/css/guest.css +++ b/core/css/guest.css @@ -37,11 +37,8 @@ p.info a, color: #fff; } #remember_login:hover+label, -#remember_login:focus+label, #forgot-password:hover, -#forgot-password:focus, -p.info a:hover, -p.info a:focus { +p.info a:hover { opacity: .6; } em { @@ -68,7 +65,7 @@ h3 { padding-top: 100px; } #header .logo { - background-image: url(../img/logo-icon.svg?v=1); + background-image: url('../img/logo-icon.svg?v=1'); background-repeat: no-repeat; background-size: 175px; background-position: center; @@ -180,113 +177,63 @@ button.primary { color: #fff; } -/* Radio and Checkbox */ -input[type="checkbox"].checkbox { - position: absolute; +/* Checkboxes */ +input[type='checkbox'].checkbox { + height:1px; left:-10000px; - top: auto; - width: 1px; - height: 1px; - overflow: hidden; -} -input[type="checkbox"].checkbox + label:before { - content: ""; - display: inline-block; - - height: 20px; - width: 20px; - vertical-align: middle; - - background: url('../img/actions/checkbox.svg') left top no-repeat; -} -input[type="checkbox"].checkbox:disabled +label:before { opacity: .6; } -input[type="checkbox"].checkbox.u-left +label:before { float: left; } -input[type="checkbox"].checkbox.u-hidden + label:before { display: none; } -input[type="checkbox"].checkbox:checked + label:before { - background-image: url('../img/actions/checkbox-checked.svg'); -} -input[type="checkbox"].checkbox:indeterminate + label:before { - background-image: url('../img/actions/checkbox-mixed.svg'); -} -input[type="checkbox"].checkbox:disabled + label:before { - background-image: url('../img/actions/checkbox-disabled.svg'); -} -input[type="checkbox"].checkbox:checked:disabled + label:before { - background-image: url('../img/actions/checkbox-checked-disabled.svg'); -} -input[type="checkbox"].checkbox:indeterminate:disabled + label:before { - background-image: url('../img/actions/checkbox-mixed-disabled.svg'); -} -input[type="checkbox"].checkbox--white + label:before { - background-image: url('../img/actions/checkbox-white.svg'); -} -input[type="checkbox"].checkbox--white:checked + label:before { - background-image: url('../img/actions/checkbox-checked-white.svg'); -} -input[type="checkbox"].checkbox--white:indeterminate + label:before { - background-image: url('../img/actions/checkbox-mixed-white.svg'); -} -input[type="checkbox"].checkbox--white:disabled + label:before { - background-image: url('../img/actions/checkbox-disabled-white.svg'); -} -input[type="checkbox"].checkbox--white:checked:disabled + label:before { - background-image: url('../img/actions/checkbox-checked-disabled.svg'); -} -input[type="checkbox"].checkbox--white:indeterminate:disabled + label:before { - background-image: url('../img/actions/checkbox-mixed-disabled.svg'); -} -input[type="checkbox"].checkbox:hover+label:before, input[type="checkbox"]:focus+label:before { - color:#111 !important; -} -input[type="checkbox"]+label { - position: relative; - margin: 0; - padding: 14px; - vertical-align: middle; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -input[type="radio"].radio { - position: absolute; - left:-10000px; - top: auto; - width: 1px; - height: 1px; - overflow: hidden; -} -input[type="radio"].radio + label:before { - content: ""; - display: inline-block; - - height: 20px; - width: 20px; - vertical-align: middle; - - background: url('../img/actions/radio.svg') left top no-repeat; -} -input[type="radio"].radio:checked + label:before { - background-image: url('../img/actions/radio-checked.svg'); -} -input[type="radio"].radio:disabled + label:before { - background-image: url('../img/actions/radio-disabled.svg'); -} -input[type="radio"].radio:checked:disabled + label:before { - background-image: url('../img/actions/radio-checked-disabled.svg'); -} -input[type="radio"].radio--white + label:before { - background-image: url('../img/actions/radio-white.svg'); -} -input[type="radio"].radio--white:checked + label:before { - background-image: url('../img/actions/radio-checked-white.svg'); -} -input[type="radio"].radio--white:disabled + label:before { - background-image: url('../img/actions/radio-disabled.svg'); -} -input[type="radio"].radio--white:checked:disabled + label:before { - background-image: url('../img/actions/radio-checked-disabled.svg'); + overflow:hidden; + position:absolute; + top:auto; + width:1px; +} +input[type='checkbox'].checkbox + label { + user-select:none; +} +input[type='checkbox'].checkbox:disabled + label, +input[type='checkbox'].checkbox:disabled + label:before { + cursor:default; +} +input[type='checkbox'].checkbox + label:before { + background-position:center; + border:1px solid #888; + border-radius:1px; + content:''; + display:inline-block; + height:10px; + margin:3px; + margin-top:1px; + vertical-align:middle; + width:10px; +} +input[type='checkbox'].checkbox--white:not(:disabled):not(:checked) + label:hover:before, +input[type='checkbox'].checkbox--white:focus + label:before { + border-color:#fff; +} +input[type='checkbox'].checkbox--white:checked + label:before, +input[type='checkbox'].checkbox--white.checkbox:indeterminate + label:before { + border-color:#fff; + background-color: #eee; +} +input[type='checkbox'].checkbox--white:disabled + label:before { + background-color:#666; + border-color:#999; +} +input[type='checkbox'].checkbox--white:checked:disabled + label:before { + border-color:#666; +} +input[type='checkbox'].checkbox--white:checked + label:before { + background-image:url('../img/actions/checkbox-mark-white.svg'); +} +input[type='checkbox'].checkbox--white:indeterminate + label:before { + background-image:url('../img/actions/checkbox-mixed-white.svg'); +} +input[type='checkbox'].checkbox--white:indeterminate:disabled + label:after { + background-color:#aaa; + border-color:#888; +} +input[type='checkbox'].checkbox--white + label:before, +input[type='checkbox'].checkbox--white:checked:disabled + label:after { + border-color:#aaa; } /* keep the labels for screen readers but hide them since we use placeholders */ @@ -310,26 +257,26 @@ label.infield { } /* Show password toggle */ -#show, #dbpassword { +#show, #dbpassword-toggle { position: absolute; right: 1em; top: .8em; float: right; } -#show, #dbpassword, #personal-show { +#show, #dbpassword-toggle, #personal-show { display: none; } -#show + label, #dbpassword + label { +#show + label, #dbpassword-toggle + label { right: 21px; top: 15px !important; margin: -14px !important; padding: 14px !important; } -#show:checked + label, #dbpassword:checked + label, #personal-show:checked + label { +#show:checked + label, #dbpassword-toggle:checked + label, #personal-show:checked + label { -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=80)"; opacity: .8; } -#show + label, #dbpassword + label, #personal-show + label { +#show + label, #dbpassword-toggle + label, #personal-show + label { position: absolute !important; height: 20px; width: 24px; @@ -339,7 +286,7 @@ label.infield { -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=30)"; opacity: .3; } -#show + label:before, #dbpassword + label:before, #personal-show + label:before { +#show + label:before, #dbpassword-toggle + label:before, #personal-show + label:before { display: none; } #pass2, input[name="personal-password-clone"] { @@ -372,6 +319,24 @@ form .warning input[type="checkbox"]+label { color: #fff !important; } +/* TOTP */ +.two-factor-header { + text-align: center; +} +.two-factor-provider { + text-align: center; + width: 258px !important; + display: inline-block; + margin-bottom: 0 !important; + background-color: rgba(0, 0, 0, 0.3) !important; + border: none !important; +} +.two-factor-link { + display: inline-block; + padding: 12px; + color: rgba(255, 255, 255, 0.75); +} + /* Additional login options */ #remember_login { margin: 18px 5px 0 16px !important; @@ -573,8 +538,15 @@ p.info { /* Icons */ .icon-info-white { - background-image: url(../img/actions/info-white.svg?v=1); + background-image: url('../img/actions/info-white.svg?v=2'); } +.icon-confirm { + background-image: url('../img/actions/confirm.svg?v=2'); +} +.icon-confirm-white { + background-image: url('../img/actions/confirm-white.svg?v=2'); +} + /* Loading */ .float-spinner { diff --git a/core/l10n/ca.js b/core/l10n/ca.js new file mode 100644 index 00000000000..d907297a45d --- /dev/null +++ b/core/l10n/ca.js @@ -0,0 +1,288 @@ +OC.L10N.register( + "core", + { + "Please select a file." : "Seleccioneu un fitxer.", + "File is too big" : "El fitxer és massa gran", + "The selected file is not an image." : "El fitxer seleccionat no és una imatge", + "The selected file cannot be read." : "El fitxer seleccionat no es pot llegir.", + "Invalid file provided" : "El fitxer proporcionat no és vàlid", + "No image or file provided" : "No s'han proporcionat imatges o fitxers", + "Unknown filetype" : "Tipus de fitxer desconegut", + "Invalid image" : "Imatge no vàlida", + "An error occurred. Please contact your admin." : "Hi ha hagut un error. Contacteu amb l'administrador.", + "No temporary profile picture available, try again" : "No hi ha imatge temporal de perfil disponible, torneu a intentar-ho", + "No crop data provided" : "No heu proporcionat dades del retall", + "No valid crop data provided" : "Les dades del retall proporcionades no són vàlides", + "Crop is not square" : "El retall no és quadrat", + "Couldn't reset password because the token is invalid" : "No es pot restablir la contrasenya perquè el testimoni no és vàlid", + "Couldn't reset password because the token is expired" : "No es pot restablir la contrasenya perquè el testimoni ha vençut", + "Couldn't send reset email. Please make sure your username is correct." : "No s'ha pogut enviar el correu de restabliment. Assegureu-vos que el vostre nom d'usuari és correcte.", + "Could not send reset email because there is no email address for this username. Please contact your administrator." : "No s'ha pogut enviar correu de restabliment. No hi ha correu per aquest compte. Contacteu amb l'administrador.", + "%s password reset" : "restableix la contrasenya %s", + "Couldn't send reset email. Please contact your administrator." : "No s'ha pogut restablir el correu. Contacteu amb l'administrador.", + "Preparing update" : "Preparant l'actualització", + "[%d / %d]: %s" : "[%d / %d]: %s", + "Repair warning: " : "Advertiment de reparació:", + "Repair error: " : "Error de reparació:", + "Turned on maintenance mode" : "Activat el mode de manteniment", + "Turned off maintenance mode" : "Desactivat el mode de manteniment", + "Maintenance mode is kept active" : "El mode de manteniment es manté activat", + "Updated database" : "Actualitzada la base de dades", + "Checked database schema update" : "S'ha comprobat l'actualització de l'esquema de la base de dades", + "Checked database schema update for apps" : "S'ha comprobat l'actualització de l'esquema de la base de dades per les apps", + "Updated \"%s\" to %s" : "Actualitzat \"%s\" a %s", + "Following apps have been disabled: %s" : "Les aplicacions següents s'han deshabilitat: %s", + "Already up to date" : "Ja actualitzat", + "Settings" : "Configuració", + "Saving..." : "Desant...", + "Dismiss" : "Rebutja", + "Authentication required" : "Es requereix autenticació", + "Password" : "Contrasenya", + "Cancel" : "Cancel·la", + "Confirm" : "Confirma", + "seconds ago" : "segons enrere", + "Logging in …" : "Accedint a...", + "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "L'enllaç per reiniciar la vostra contrasenya s'ha enviat al vostre correu. Si no el rebeu en un temps raonable comproveu les carpetes de spam. <br>Si no és allà, pregunteu a l'administrador local.", + "I know what I'm doing" : "Sé el que faig", + "Password can not be changed. Please contact your administrator." : "La contrasenya no es pot canviar. Contacteu amb l'administrador.", + "No" : "No", + "Yes" : "Sí", + "No files in here" : "No hi ha arxius aquí", + "Choose" : "Escull", + "Error loading file picker template: {error}" : "Error en carregar la plantilla de càrrega de fitxers: {error}", + "Ok" : "D'acord", + "Error loading message template: {error}" : "Error en carregar la plantilla de missatge: {error}", + "read-only" : "Només de lectura", + "_{count} file conflict_::_{count} file conflicts_" : ["{count} conflicte de fitxer","{count} conflictes de fitxer"], + "One file conflict" : "Un fitxer en conflicte", + "New Files" : "Fitxers nous", + "Already existing files" : "Fitxers que ja existeixen", + "Which files do you want to keep?" : "Quin fitxer voleu conservar?", + "If you select both versions, the copied file will have a number added to its name." : "Si seleccioneu les dues versions, el fitxer copiat tindrà un número afegit al seu nom.", + "Continue" : "Continua", + "(all selected)" : "(selecciona-ho tot)", + "({count} selected)" : "({count} seleccionats)", + "Error loading file exists template" : "Error en carregar la plantilla de fitxer existent", + "Pending" : "Pendent", + "Very weak password" : "Contrasenya massa feble", + "Weak password" : "Contrasenya feble", + "So-so password" : "Contrasenya passable", + "Good password" : "Contrasenya bona", + "Strong password" : "Contrasenya forta", + "Your web server is not yet set up properly to allow file synchronization because the WebDAV interface seems to be broken." : "El servidor web no està configurat correctament per permetre la sincronització de fitxers perquè la interfície WebDAV sembla no funcionar correctament.", + "Error occurred while checking server setup" : "Hi ha hagut un error en comprovar la configuració del servidor", + "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. We strongly suggest that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "La carpeta de dades i els vostres fitxers probablement són accessibles des d'Internet. El fitxer .htaccess no funciona. Us recomanem que configureu el servidor web de tal manera que la carpeta de dades no sigui accessible o que moveu la carpeta de dades fora de l'arrel de documents del servidor web.", + "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Esteu accedint aquesta web a través de HTTP. Us recomanem que configureu el servidor per requerir HTTPS tal i com es descriu als <a href=\"{docUrl}\">consells de seguretat</a>", + "Shared" : "Compartit", + "Shared with {recipients}" : "Compartit amb {recipients}", + "Error" : "Error", + "Error while sharing" : "Error en compartir", + "Error while unsharing" : "Error en deixar de compartir", + "Error setting expiration date" : "Error en establir la data de venciment", + "The public link will expire no later than {days} days after it is created" : "L'enllaç públic tindrà venciment abans de {days} dies després de crear-lo", + "Set expiration date" : "Estableix la data de venciment", + "Expiration" : "Expiració", + "Expiration date" : "Data de venciment", + "Choose a password for the public link" : "Escolliu una contrasenya per l'enllaç públic", + "Copied!" : "Copiat!", + "Copy" : "Copia", + "Not supported!" : "No soportat!", + "Press ⌘-C to copy." : "Prem ⌘-C per copiar.", + "Press Ctrl-C to copy." : "Prem Ctrl-C per copiar.", + "Resharing is not allowed" : "No es permet compartir de nou", + "Share link" : "Enllaç de compartició", + "Link" : "Enllaç", + "Password protect" : "Protegir amb contrasenya", + "Allow editing" : "Permetre edició", + "Email link to person" : "Enllaç per correu electrónic amb la persona", + "Send" : "Envia", + "Shared with you and the group {group} by {owner}" : "Compartit amb vos i amb el grup {group} per {owner}", + "Shared with you by {owner}" : "Compartit amb vos per {owner}", + "group" : "grup", + "remote" : "remot", + "email" : "email", + "Unshare" : "Deixa de compartir", + "can edit" : "pot editar", + "can create" : "pot crear", + "can change" : "pot canviar", + "can delete" : "Pot esborrar", + "access control" : "control d'accés", + "No users found for {search}" : "No s'han trobat usuaris per {search}", + "An error occurred. Please try again" : "S'ha produït un error. Si us plau, torni a intentar-ho.", + "Share" : "Comparteix", + "invisible" : "invisible", + "({scope})" : "({scope})", + "Delete" : "Esborra", + "Rename" : "Reanomena", + "Collaborative tags" : "Etiquetes col·laboratives", + "No tags found" : "No s'han trobat etiquetes", + "The object type is not specified." : "No s'ha especificat el tipus d'objecte.", + "Enter new" : "Escriu nou", + "Add" : "Afegeix", + "Edit tags" : "Edita etiquetes", + "Error loading dialog template: {error}" : "Error en carregar la plantilla de diàleg: {error}", + "No tags selected for deletion." : "No heu seleccionat les etiquetes a eliminar.", + "unknown text" : "text desconegut", + "Hello world!" : "Hola món!", + "sunny" : "asolellat", + "Hello {name}, the weather is {weather}" : "Hola {name}, el temps és {weather}", + "Hello {name}" : "Hola {name}", + "new" : "Nou", + "_download %n file_::_download %n files_" : ["descarregar l'arxiu %n","descarregar arxius %n "], + "Update to {version}" : "Actualitza a {version}", + "An error occurred." : "S'ha produït un error", + "Please reload the page." : "Carregueu la pàgina de nou.", + "Continue to Nextcloud" : "Continua a Nextcloud", + "Searching other places" : "Buscant altres ubicacions", + "Personal" : "Personal", + "Users" : "Usuaris", + "Apps" : "Aplicacions", + "Admin" : "Administració", + "Help" : "Ajuda", + "Access forbidden" : "Accés prohibit", + "File not found" : "No s'ha trobat l'arxiu", + "The specified document has not been found on the server." : "El document especificat no s'ha trobat al servidor.", + "You can click here to return to %s." : "Pots clicar aquí per tornar a %s.", + "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Ei,\n\nnomés fer-te saber que %s ha compartit %s amb tu.\nMira-ho a: %s\n\n", + "The share will expire on %s." : "La compartició venç el %s.", + "Cheers!" : "Salut!", + "Internal Server Error" : "Error Intern del Servidor", + "The server encountered an internal error and was unable to complete your request." : "El servidor ha trobat un error intern i no pot finalitzar la teva petició.", + "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Per favor, posi's en contacte amb l'administrador del servidor si aquest error torna a aparèixer diverses vegades, per favor inclogui els detalls tècnics de baix en el seu informe.", + "More details can be found in the server log." : "Pots trobar més detalls al llistat del servidor.", + "Technical details" : "Detalls tècnics", + "Remote Address: %s" : "Adreça remota: %s", + "Request ID: %s" : "Sol·licitud ID: %s ", + "Type: %s" : "Tipus: %s", + "Code: %s" : "Codi: %s", + "Message: %s" : "Missatge: %s", + "File: %s" : "Fitxer: %s", + "Line: %s" : "Línia: %s", + "Trace" : "Traça", + "Security warning" : "Advertiment de seguretat", + "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "La carpeta de dades i els seus fitxers probablement són accessibles des d'internet perquè el fitxer .htaccess no funciona.", + "Create an <strong>admin account</strong>" : "Crea un <strong>compte d'administrador</strong>", + "Username" : "Nom d'usuari", + "Storage & database" : "Emmagatzematge i base de dades", + "Data folder" : "Carpeta de dades", + "Configure the database" : "Configura la base de dades", + "Only %s is available." : "Només hi ha disponible %s", + "Install and activate additional PHP modules to choose other database types." : "Instal·la i activa mòduls PHP addicionals per seleccionar altres tipus de bases de dades.", + "For more details check out the documentation." : "Per més detalls consulteu la documentació.", + "Database user" : "Usuari de la base de dades", + "Database password" : "Contrasenya de la base de dades", + "Database name" : "Nom de la base de dades", + "Database tablespace" : "Espai de taula de la base de dades", + "Database host" : "Ordinador central de la base de dades", + "Performance warning" : "Alerta de rendiment", + "SQLite will be used as database." : "SQLite s'utilitzarà com a base de dades.", + "For larger installations we recommend to choose a different database backend." : "Per a instal·lacions més grans es recomana triar una base de dades diferent.", + "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "L'ús de SQLite està desaconsellat especialment quan s'usa el client d'escriptori per sincronitzar els fitxers.", + "Finish setup" : "Acaba la configuració", + "Finishing …" : "Acabant...", + "Need help?" : "Necessites ajuda?", + "See the documentation" : "Consulti la documentació", + "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Aquesta aplicació requereix Javascript per al seu correcte funcionament . Per favor, {linkstart}habiliti Javascript{linkend} i torni a carregar la pàgina.", + "Search" : "Cerca", + "Log out" : "Surt", + "Confirm your password" : "Confirma la teva contrasenya", + "Server side authentication failed!" : "L'autenticació del servidor ha fallat!", + "Please contact your administrator." : "Contacteu amb l'administrador.", + "Please try again or contact your administrator." : "Intenti-ho de nou o posi's en contacte amb el seu administrador.", + "Username or email" : "Nom d'usuari o correu electrònic", + "Wrong password. Reset it?" : "Contrasenya incorrecta. Voleu restablir-la?", + "Wrong password." : "Contrasenya incorrecta.", + "Log in" : "Inici de sessió", + "Stay logged in" : "Mantén la sessió connectada", + "Alternative Logins" : "Acreditacions alternatives", + "Use the following link to reset your password: {link}" : "Useu l'enllaç següent per restablir la contrasenya: {link}", + "New password" : "Contrasenya nova", + "New Password" : "Contrasenya nova", + "Reset password" : "Reinicialitza la contrasenya", + "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>" : "Ei, <br><br>només fer-vos saber que %s us ha comparti <strong>%s</strong>. <br><a href=\"%s\">Mireu-ho!</a>", + "This Nextcloud instance is currently in single user mode." : "La instància Nextcloud està en mode d'usuari únic.", + "This means only administrators can use the instance." : "Això significa que només els administradors poden usar la instància.", + "Contact your system administrator if this message persists or appeared unexpectedly." : "Contacteu amb l'administrador del sistema si aquest missatge persisteix o apareix inesperadament.", + "Thank you for your patience." : "Gràcies per la paciència.", + "Two-factor authentication" : "Segon factor d'autenticació", + "Cancel log in" : "Cancel·la l'accés a", + "Use backup code" : "Utilitza un codi de copia de seguretat", + "You are accessing the server from an untrusted domain." : "Esteu accedint al servidor des d'un domini no fiable", + "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "En funció de la teva configuració, com a administrador podries utilitzar el botó d'abaix per confiar en aquest domini.", + "Add \"%s\" as trusted domain" : "Afegeix \"%s\" com a domini de confiança", + "App update required" : "Cal que actualitzeu la aplicació", + "%s will be updated to version %s" : "%s s'actualitzarà a la versió %s", + "These apps will be updated:" : "Aquestes aplicacions s'actualitzaran:", + "These incompatible apps will be disabled:" : "Aquestes aplicacions incompatibles es desactivaran:", + "The theme %s has been disabled." : "S'ha desactivat el tema %s", + "Please make sure that the database, the config folder and the data folder have been backed up before proceeding." : "Assegureu-vos que heu fet una còpia de seguretat de la base de dades, del fitxer de configuració i de la carpeta de dades abans de continuar.", + "Start update" : "Inicia l'actualització", + "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" : "Per evitar que s'esgoti el temps d'espera en instalacions grans, pots en el seu lloc fer córrer la següent comanda en el directori d'instalació. ", + "Update needed" : "Actualització necessaria", + "This %s instance is currently in maintenance mode, which may take a while." : "Aquesta instància %s està actualment en manteniment i podria trigar una estona.", + "This page will refresh itself when the %s instance is available again." : "Aquesta pàgina s'actualitzarà automàticament quan la instància %s estigui disponible de nou.", + "Error loading tags" : "Error en carregar les etiquetes", + "Tag already exists" : "L'etiqueta ja existeix", + "Error deleting tag(s)" : "Error en eliminar etiqueta(s)", + "Error tagging" : "Error en etiquetar", + "Error untagging" : "Error en treure les etiquetes", + "Error favoriting" : "Error en posar a preferits", + "Error unfavoriting" : "Error en treure de preferits", + "Couldn't send mail to following users: %s " : "No s'ha pogut enviar correu als usuaris següents: %s", + "Sunday" : "Diumenge", + "Monday" : "Dilluns", + "Tuesday" : "Dimarts", + "Wednesday" : "Dimecres", + "Thursday" : "Dijous", + "Friday" : "Divendres", + "Saturday" : "Dissabte", + "Sun." : "Dg.", + "Mon." : "Dl.", + "Tue." : "Dm.", + "Wed." : "Dc.", + "Thu." : "Dj.", + "Fri." : "Dv.", + "Sat." : "Ds.", + "Su" : "Dg", + "Mo" : "Dl", + "Tu" : "Dm", + "We" : "Dc", + "Th" : "Dj", + "Fr" : "Dv", + "Sa" : "Ds", + "January" : "Gener", + "February" : "Febrer", + "March" : "Març", + "April" : "Abril", + "May" : "Maig", + "June" : "Juny", + "July" : "Juliol", + "August" : "Agost", + "September" : "Setembre", + "October" : "Octubre", + "November" : "Novembre", + "December" : "Desembre", + "Jan." : "Gen.", + "Feb." : "Febr.", + "Mar." : "Març", + "Apr." : "Abr.", + "May." : "Maig", + "Jun." : "Juny", + "Jul." : "Jul.", + "Aug." : "Ag.", + "Sep." : "Set.", + "Oct." : "Oct.", + "Nov." : "Nov.", + "Dec." : "Des.", + "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Els vostres fitxers estan encriptats. Si no heu habilitat la clau de recuperació no hi haurà manera de recuperar les dades després que reestabliu la contrasenya. <br />Si sabeu què fer, contacteu amb l'administrador abans de continuar.<br />Voleu continuar?", + "Sending ..." : "Enviant...", + "Email sent" : "El correu electrónic s'ha enviat", + "notify by email" : "notifica per correu electrònic", + "can share" : "pot compartir", + "create" : "crea", + "change" : "canvi", + "delete" : "elimina", + "Warning" : "Avís", + "Cancel login" : "Cancel·la l'inici de sessió" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/core/l10n/ca.json b/core/l10n/ca.json new file mode 100644 index 00000000000..49c17f21b63 --- /dev/null +++ b/core/l10n/ca.json @@ -0,0 +1,286 @@ +{ "translations": { + "Please select a file." : "Seleccioneu un fitxer.", + "File is too big" : "El fitxer és massa gran", + "The selected file is not an image." : "El fitxer seleccionat no és una imatge", + "The selected file cannot be read." : "El fitxer seleccionat no es pot llegir.", + "Invalid file provided" : "El fitxer proporcionat no és vàlid", + "No image or file provided" : "No s'han proporcionat imatges o fitxers", + "Unknown filetype" : "Tipus de fitxer desconegut", + "Invalid image" : "Imatge no vàlida", + "An error occurred. Please contact your admin." : "Hi ha hagut un error. Contacteu amb l'administrador.", + "No temporary profile picture available, try again" : "No hi ha imatge temporal de perfil disponible, torneu a intentar-ho", + "No crop data provided" : "No heu proporcionat dades del retall", + "No valid crop data provided" : "Les dades del retall proporcionades no són vàlides", + "Crop is not square" : "El retall no és quadrat", + "Couldn't reset password because the token is invalid" : "No es pot restablir la contrasenya perquè el testimoni no és vàlid", + "Couldn't reset password because the token is expired" : "No es pot restablir la contrasenya perquè el testimoni ha vençut", + "Couldn't send reset email. Please make sure your username is correct." : "No s'ha pogut enviar el correu de restabliment. Assegureu-vos que el vostre nom d'usuari és correcte.", + "Could not send reset email because there is no email address for this username. Please contact your administrator." : "No s'ha pogut enviar correu de restabliment. No hi ha correu per aquest compte. Contacteu amb l'administrador.", + "%s password reset" : "restableix la contrasenya %s", + "Couldn't send reset email. Please contact your administrator." : "No s'ha pogut restablir el correu. Contacteu amb l'administrador.", + "Preparing update" : "Preparant l'actualització", + "[%d / %d]: %s" : "[%d / %d]: %s", + "Repair warning: " : "Advertiment de reparació:", + "Repair error: " : "Error de reparació:", + "Turned on maintenance mode" : "Activat el mode de manteniment", + "Turned off maintenance mode" : "Desactivat el mode de manteniment", + "Maintenance mode is kept active" : "El mode de manteniment es manté activat", + "Updated database" : "Actualitzada la base de dades", + "Checked database schema update" : "S'ha comprobat l'actualització de l'esquema de la base de dades", + "Checked database schema update for apps" : "S'ha comprobat l'actualització de l'esquema de la base de dades per les apps", + "Updated \"%s\" to %s" : "Actualitzat \"%s\" a %s", + "Following apps have been disabled: %s" : "Les aplicacions següents s'han deshabilitat: %s", + "Already up to date" : "Ja actualitzat", + "Settings" : "Configuració", + "Saving..." : "Desant...", + "Dismiss" : "Rebutja", + "Authentication required" : "Es requereix autenticació", + "Password" : "Contrasenya", + "Cancel" : "Cancel·la", + "Confirm" : "Confirma", + "seconds ago" : "segons enrere", + "Logging in …" : "Accedint a...", + "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "L'enllaç per reiniciar la vostra contrasenya s'ha enviat al vostre correu. Si no el rebeu en un temps raonable comproveu les carpetes de spam. <br>Si no és allà, pregunteu a l'administrador local.", + "I know what I'm doing" : "Sé el que faig", + "Password can not be changed. Please contact your administrator." : "La contrasenya no es pot canviar. Contacteu amb l'administrador.", + "No" : "No", + "Yes" : "Sí", + "No files in here" : "No hi ha arxius aquí", + "Choose" : "Escull", + "Error loading file picker template: {error}" : "Error en carregar la plantilla de càrrega de fitxers: {error}", + "Ok" : "D'acord", + "Error loading message template: {error}" : "Error en carregar la plantilla de missatge: {error}", + "read-only" : "Només de lectura", + "_{count} file conflict_::_{count} file conflicts_" : ["{count} conflicte de fitxer","{count} conflictes de fitxer"], + "One file conflict" : "Un fitxer en conflicte", + "New Files" : "Fitxers nous", + "Already existing files" : "Fitxers que ja existeixen", + "Which files do you want to keep?" : "Quin fitxer voleu conservar?", + "If you select both versions, the copied file will have a number added to its name." : "Si seleccioneu les dues versions, el fitxer copiat tindrà un número afegit al seu nom.", + "Continue" : "Continua", + "(all selected)" : "(selecciona-ho tot)", + "({count} selected)" : "({count} seleccionats)", + "Error loading file exists template" : "Error en carregar la plantilla de fitxer existent", + "Pending" : "Pendent", + "Very weak password" : "Contrasenya massa feble", + "Weak password" : "Contrasenya feble", + "So-so password" : "Contrasenya passable", + "Good password" : "Contrasenya bona", + "Strong password" : "Contrasenya forta", + "Your web server is not yet set up properly to allow file synchronization because the WebDAV interface seems to be broken." : "El servidor web no està configurat correctament per permetre la sincronització de fitxers perquè la interfície WebDAV sembla no funcionar correctament.", + "Error occurred while checking server setup" : "Hi ha hagut un error en comprovar la configuració del servidor", + "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. We strongly suggest that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "La carpeta de dades i els vostres fitxers probablement són accessibles des d'Internet. El fitxer .htaccess no funciona. Us recomanem que configureu el servidor web de tal manera que la carpeta de dades no sigui accessible o que moveu la carpeta de dades fora de l'arrel de documents del servidor web.", + "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Esteu accedint aquesta web a través de HTTP. Us recomanem que configureu el servidor per requerir HTTPS tal i com es descriu als <a href=\"{docUrl}\">consells de seguretat</a>", + "Shared" : "Compartit", + "Shared with {recipients}" : "Compartit amb {recipients}", + "Error" : "Error", + "Error while sharing" : "Error en compartir", + "Error while unsharing" : "Error en deixar de compartir", + "Error setting expiration date" : "Error en establir la data de venciment", + "The public link will expire no later than {days} days after it is created" : "L'enllaç públic tindrà venciment abans de {days} dies després de crear-lo", + "Set expiration date" : "Estableix la data de venciment", + "Expiration" : "Expiració", + "Expiration date" : "Data de venciment", + "Choose a password for the public link" : "Escolliu una contrasenya per l'enllaç públic", + "Copied!" : "Copiat!", + "Copy" : "Copia", + "Not supported!" : "No soportat!", + "Press ⌘-C to copy." : "Prem ⌘-C per copiar.", + "Press Ctrl-C to copy." : "Prem Ctrl-C per copiar.", + "Resharing is not allowed" : "No es permet compartir de nou", + "Share link" : "Enllaç de compartició", + "Link" : "Enllaç", + "Password protect" : "Protegir amb contrasenya", + "Allow editing" : "Permetre edició", + "Email link to person" : "Enllaç per correu electrónic amb la persona", + "Send" : "Envia", + "Shared with you and the group {group} by {owner}" : "Compartit amb vos i amb el grup {group} per {owner}", + "Shared with you by {owner}" : "Compartit amb vos per {owner}", + "group" : "grup", + "remote" : "remot", + "email" : "email", + "Unshare" : "Deixa de compartir", + "can edit" : "pot editar", + "can create" : "pot crear", + "can change" : "pot canviar", + "can delete" : "Pot esborrar", + "access control" : "control d'accés", + "No users found for {search}" : "No s'han trobat usuaris per {search}", + "An error occurred. Please try again" : "S'ha produït un error. Si us plau, torni a intentar-ho.", + "Share" : "Comparteix", + "invisible" : "invisible", + "({scope})" : "({scope})", + "Delete" : "Esborra", + "Rename" : "Reanomena", + "Collaborative tags" : "Etiquetes col·laboratives", + "No tags found" : "No s'han trobat etiquetes", + "The object type is not specified." : "No s'ha especificat el tipus d'objecte.", + "Enter new" : "Escriu nou", + "Add" : "Afegeix", + "Edit tags" : "Edita etiquetes", + "Error loading dialog template: {error}" : "Error en carregar la plantilla de diàleg: {error}", + "No tags selected for deletion." : "No heu seleccionat les etiquetes a eliminar.", + "unknown text" : "text desconegut", + "Hello world!" : "Hola món!", + "sunny" : "asolellat", + "Hello {name}, the weather is {weather}" : "Hola {name}, el temps és {weather}", + "Hello {name}" : "Hola {name}", + "new" : "Nou", + "_download %n file_::_download %n files_" : ["descarregar l'arxiu %n","descarregar arxius %n "], + "Update to {version}" : "Actualitza a {version}", + "An error occurred." : "S'ha produït un error", + "Please reload the page." : "Carregueu la pàgina de nou.", + "Continue to Nextcloud" : "Continua a Nextcloud", + "Searching other places" : "Buscant altres ubicacions", + "Personal" : "Personal", + "Users" : "Usuaris", + "Apps" : "Aplicacions", + "Admin" : "Administració", + "Help" : "Ajuda", + "Access forbidden" : "Accés prohibit", + "File not found" : "No s'ha trobat l'arxiu", + "The specified document has not been found on the server." : "El document especificat no s'ha trobat al servidor.", + "You can click here to return to %s." : "Pots clicar aquí per tornar a %s.", + "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Ei,\n\nnomés fer-te saber que %s ha compartit %s amb tu.\nMira-ho a: %s\n\n", + "The share will expire on %s." : "La compartició venç el %s.", + "Cheers!" : "Salut!", + "Internal Server Error" : "Error Intern del Servidor", + "The server encountered an internal error and was unable to complete your request." : "El servidor ha trobat un error intern i no pot finalitzar la teva petició.", + "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Per favor, posi's en contacte amb l'administrador del servidor si aquest error torna a aparèixer diverses vegades, per favor inclogui els detalls tècnics de baix en el seu informe.", + "More details can be found in the server log." : "Pots trobar més detalls al llistat del servidor.", + "Technical details" : "Detalls tècnics", + "Remote Address: %s" : "Adreça remota: %s", + "Request ID: %s" : "Sol·licitud ID: %s ", + "Type: %s" : "Tipus: %s", + "Code: %s" : "Codi: %s", + "Message: %s" : "Missatge: %s", + "File: %s" : "Fitxer: %s", + "Line: %s" : "Línia: %s", + "Trace" : "Traça", + "Security warning" : "Advertiment de seguretat", + "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "La carpeta de dades i els seus fitxers probablement són accessibles des d'internet perquè el fitxer .htaccess no funciona.", + "Create an <strong>admin account</strong>" : "Crea un <strong>compte d'administrador</strong>", + "Username" : "Nom d'usuari", + "Storage & database" : "Emmagatzematge i base de dades", + "Data folder" : "Carpeta de dades", + "Configure the database" : "Configura la base de dades", + "Only %s is available." : "Només hi ha disponible %s", + "Install and activate additional PHP modules to choose other database types." : "Instal·la i activa mòduls PHP addicionals per seleccionar altres tipus de bases de dades.", + "For more details check out the documentation." : "Per més detalls consulteu la documentació.", + "Database user" : "Usuari de la base de dades", + "Database password" : "Contrasenya de la base de dades", + "Database name" : "Nom de la base de dades", + "Database tablespace" : "Espai de taula de la base de dades", + "Database host" : "Ordinador central de la base de dades", + "Performance warning" : "Alerta de rendiment", + "SQLite will be used as database." : "SQLite s'utilitzarà com a base de dades.", + "For larger installations we recommend to choose a different database backend." : "Per a instal·lacions més grans es recomana triar una base de dades diferent.", + "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "L'ús de SQLite està desaconsellat especialment quan s'usa el client d'escriptori per sincronitzar els fitxers.", + "Finish setup" : "Acaba la configuració", + "Finishing …" : "Acabant...", + "Need help?" : "Necessites ajuda?", + "See the documentation" : "Consulti la documentació", + "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Aquesta aplicació requereix Javascript per al seu correcte funcionament . Per favor, {linkstart}habiliti Javascript{linkend} i torni a carregar la pàgina.", + "Search" : "Cerca", + "Log out" : "Surt", + "Confirm your password" : "Confirma la teva contrasenya", + "Server side authentication failed!" : "L'autenticació del servidor ha fallat!", + "Please contact your administrator." : "Contacteu amb l'administrador.", + "Please try again or contact your administrator." : "Intenti-ho de nou o posi's en contacte amb el seu administrador.", + "Username or email" : "Nom d'usuari o correu electrònic", + "Wrong password. Reset it?" : "Contrasenya incorrecta. Voleu restablir-la?", + "Wrong password." : "Contrasenya incorrecta.", + "Log in" : "Inici de sessió", + "Stay logged in" : "Mantén la sessió connectada", + "Alternative Logins" : "Acreditacions alternatives", + "Use the following link to reset your password: {link}" : "Useu l'enllaç següent per restablir la contrasenya: {link}", + "New password" : "Contrasenya nova", + "New Password" : "Contrasenya nova", + "Reset password" : "Reinicialitza la contrasenya", + "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>" : "Ei, <br><br>només fer-vos saber que %s us ha comparti <strong>%s</strong>. <br><a href=\"%s\">Mireu-ho!</a>", + "This Nextcloud instance is currently in single user mode." : "La instància Nextcloud està en mode d'usuari únic.", + "This means only administrators can use the instance." : "Això significa que només els administradors poden usar la instància.", + "Contact your system administrator if this message persists or appeared unexpectedly." : "Contacteu amb l'administrador del sistema si aquest missatge persisteix o apareix inesperadament.", + "Thank you for your patience." : "Gràcies per la paciència.", + "Two-factor authentication" : "Segon factor d'autenticació", + "Cancel log in" : "Cancel·la l'accés a", + "Use backup code" : "Utilitza un codi de copia de seguretat", + "You are accessing the server from an untrusted domain." : "Esteu accedint al servidor des d'un domini no fiable", + "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "En funció de la teva configuració, com a administrador podries utilitzar el botó d'abaix per confiar en aquest domini.", + "Add \"%s\" as trusted domain" : "Afegeix \"%s\" com a domini de confiança", + "App update required" : "Cal que actualitzeu la aplicació", + "%s will be updated to version %s" : "%s s'actualitzarà a la versió %s", + "These apps will be updated:" : "Aquestes aplicacions s'actualitzaran:", + "These incompatible apps will be disabled:" : "Aquestes aplicacions incompatibles es desactivaran:", + "The theme %s has been disabled." : "S'ha desactivat el tema %s", + "Please make sure that the database, the config folder and the data folder have been backed up before proceeding." : "Assegureu-vos que heu fet una còpia de seguretat de la base de dades, del fitxer de configuració i de la carpeta de dades abans de continuar.", + "Start update" : "Inicia l'actualització", + "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" : "Per evitar que s'esgoti el temps d'espera en instalacions grans, pots en el seu lloc fer córrer la següent comanda en el directori d'instalació. ", + "Update needed" : "Actualització necessaria", + "This %s instance is currently in maintenance mode, which may take a while." : "Aquesta instància %s està actualment en manteniment i podria trigar una estona.", + "This page will refresh itself when the %s instance is available again." : "Aquesta pàgina s'actualitzarà automàticament quan la instància %s estigui disponible de nou.", + "Error loading tags" : "Error en carregar les etiquetes", + "Tag already exists" : "L'etiqueta ja existeix", + "Error deleting tag(s)" : "Error en eliminar etiqueta(s)", + "Error tagging" : "Error en etiquetar", + "Error untagging" : "Error en treure les etiquetes", + "Error favoriting" : "Error en posar a preferits", + "Error unfavoriting" : "Error en treure de preferits", + "Couldn't send mail to following users: %s " : "No s'ha pogut enviar correu als usuaris següents: %s", + "Sunday" : "Diumenge", + "Monday" : "Dilluns", + "Tuesday" : "Dimarts", + "Wednesday" : "Dimecres", + "Thursday" : "Dijous", + "Friday" : "Divendres", + "Saturday" : "Dissabte", + "Sun." : "Dg.", + "Mon." : "Dl.", + "Tue." : "Dm.", + "Wed." : "Dc.", + "Thu." : "Dj.", + "Fri." : "Dv.", + "Sat." : "Ds.", + "Su" : "Dg", + "Mo" : "Dl", + "Tu" : "Dm", + "We" : "Dc", + "Th" : "Dj", + "Fr" : "Dv", + "Sa" : "Ds", + "January" : "Gener", + "February" : "Febrer", + "March" : "Març", + "April" : "Abril", + "May" : "Maig", + "June" : "Juny", + "July" : "Juliol", + "August" : "Agost", + "September" : "Setembre", + "October" : "Octubre", + "November" : "Novembre", + "December" : "Desembre", + "Jan." : "Gen.", + "Feb." : "Febr.", + "Mar." : "Març", + "Apr." : "Abr.", + "May." : "Maig", + "Jun." : "Juny", + "Jul." : "Jul.", + "Aug." : "Ag.", + "Sep." : "Set.", + "Oct." : "Oct.", + "Nov." : "Nov.", + "Dec." : "Des.", + "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Els vostres fitxers estan encriptats. Si no heu habilitat la clau de recuperació no hi haurà manera de recuperar les dades després que reestabliu la contrasenya. <br />Si sabeu què fer, contacteu amb l'administrador abans de continuar.<br />Voleu continuar?", + "Sending ..." : "Enviant...", + "Email sent" : "El correu electrónic s'ha enviat", + "notify by email" : "notifica per correu electrònic", + "can share" : "pot compartir", + "create" : "crea", + "change" : "canvi", + "delete" : "elimina", + "Warning" : "Avís", + "Cancel login" : "Cancel·la l'inici de sessió" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/core/l10n/el.js b/core/l10n/el.js index c2eb36e3a9f..65d74719596 100644 --- a/core/l10n/el.js +++ b/core/l10n/el.js @@ -3,6 +3,8 @@ OC.L10N.register( { "Please select a file." : "Παρακαλώ επιλέξτε αρχείο.", "File is too big" : "Το αρχείο είναι πολύ μεγάλο", + "The selected file is not an image." : "Το επιλεγμένο αρχείο δεν είναι εικόνας.", + "The selected file cannot be read." : "Το επιλεγμένο αρχείο δεν μπορεί να αναγνωσθεί", "Invalid file provided" : "Έχει δοθεί μη έγκυρο αρχείο", "No image or file provided" : "Δεν δόθηκε εικόνα ή αρχείο", "Unknown filetype" : "Άγνωστος τύπος αρχείου", @@ -43,14 +45,17 @@ OC.L10N.register( "Problem loading page, reloading in 5 seconds" : "Πρόβλημα φόρτωσης σελίδας, επαναφόρτωση σε 5 λεπτά", "Saving..." : "Γίνεται αποθήκευση...", "Dismiss" : "Απόρριψη", + "Authentication required" : "Απαιτείται πιστοποίηση", "Password" : "Συνθηματικό", "Cancel" : "Άκυρο", + "Confirm" : "Επιβεβαίωση", "seconds ago" : "δευτερόλεπτα πριν", "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "Ο σύνδεσμος για την επαναφορά του κωδικού πρόσβασής σας απεστάλη στο ηλ. ταχυδρομείο σας. Εάν δεν το παραλάβετε μέσα σε ένα εύλογο χρονικό διάστημα, ελέγξτε το φάκελο ανεπιθύμητων μηνυμάτων σας. <br>Εάν δεν βρίσκεται εκεί ρωτήστε τον τοπικό διαχειριστή σας.", "I know what I'm doing" : "Γνωρίζω τι κάνω", "Password can not be changed. Please contact your administrator." : "Ο κωδικός πρόσβασης δεν μπορεί να αλλάξει. Παρακαλώ επικοινωνήστε με το διαχειριστή σας.", "No" : "Όχι", "Yes" : "Ναι", + "No files in here" : "Δεν υπάρχουν αρχεία", "Choose" : "Επιλέξτε", "Error loading file picker template: {error}" : "Σφάλμα κατά την φόρτωση προτύπου επιλογέα αρχείων: {σφάλμα}", "Ok" : "Οκ", @@ -66,6 +71,7 @@ OC.L10N.register( "(all selected)" : "(όλα τα επιλεγμένα)", "({count} selected)" : "({count} επιλέχθησαν)", "Error loading file exists template" : "Σφάλμα κατά την φόρτωση του προτύπου \"αρχείο υπάρχει\"", + "Pending" : "Εκκρεμεί", "Very weak password" : "Πολύ αδύναμο συνθηματικό", "Weak password" : "Αδύναμο συνθηματικό", "So-so password" : "Μέτριο συνθηματικό", @@ -88,6 +94,7 @@ OC.L10N.register( "Expiration date" : "Ημερομηνία λήξης", "Choose a password for the public link" : "Επιλέξτε κωδικό για τον δημόσιο σύνδεσμο", "Copied!" : "Αντιγράφτηκε!", + "Copy" : "Αντιγραφή", "Not supported!" : "Δεν υποστηρίζεται!", "Press ⌘-C to copy." : "Για αντιγραφή πατήστε ⌘-C.", "Press Ctrl-C to copy." : "Για αντιγραφή πατήστε Ctrl-C.", @@ -102,6 +109,7 @@ OC.L10N.register( "Shared with you by {owner}" : "Διαμοιράστηκε με σας από τον {owner}", "group" : "ομάδα", "remote" : "απομακρυσμένα", + "email" : "ηλεκτρονικό ταχυδρομείο", "Unshare" : "Διακοπή διαμοιρασμού", "can edit" : "δυνατότητα αλλαγής", "access control" : "έλεγχος πρόσβασης", diff --git a/core/l10n/el.json b/core/l10n/el.json index a93bcb6e975..7f00f028836 100644 --- a/core/l10n/el.json +++ b/core/l10n/el.json @@ -1,6 +1,8 @@ { "translations": { "Please select a file." : "Παρακαλώ επιλέξτε αρχείο.", "File is too big" : "Το αρχείο είναι πολύ μεγάλο", + "The selected file is not an image." : "Το επιλεγμένο αρχείο δεν είναι εικόνας.", + "The selected file cannot be read." : "Το επιλεγμένο αρχείο δεν μπορεί να αναγνωσθεί", "Invalid file provided" : "Έχει δοθεί μη έγκυρο αρχείο", "No image or file provided" : "Δεν δόθηκε εικόνα ή αρχείο", "Unknown filetype" : "Άγνωστος τύπος αρχείου", @@ -41,14 +43,17 @@ "Problem loading page, reloading in 5 seconds" : "Πρόβλημα φόρτωσης σελίδας, επαναφόρτωση σε 5 λεπτά", "Saving..." : "Γίνεται αποθήκευση...", "Dismiss" : "Απόρριψη", + "Authentication required" : "Απαιτείται πιστοποίηση", "Password" : "Συνθηματικό", "Cancel" : "Άκυρο", + "Confirm" : "Επιβεβαίωση", "seconds ago" : "δευτερόλεπτα πριν", "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "Ο σύνδεσμος για την επαναφορά του κωδικού πρόσβασής σας απεστάλη στο ηλ. ταχυδρομείο σας. Εάν δεν το παραλάβετε μέσα σε ένα εύλογο χρονικό διάστημα, ελέγξτε το φάκελο ανεπιθύμητων μηνυμάτων σας. <br>Εάν δεν βρίσκεται εκεί ρωτήστε τον τοπικό διαχειριστή σας.", "I know what I'm doing" : "Γνωρίζω τι κάνω", "Password can not be changed. Please contact your administrator." : "Ο κωδικός πρόσβασης δεν μπορεί να αλλάξει. Παρακαλώ επικοινωνήστε με το διαχειριστή σας.", "No" : "Όχι", "Yes" : "Ναι", + "No files in here" : "Δεν υπάρχουν αρχεία", "Choose" : "Επιλέξτε", "Error loading file picker template: {error}" : "Σφάλμα κατά την φόρτωση προτύπου επιλογέα αρχείων: {σφάλμα}", "Ok" : "Οκ", @@ -64,6 +69,7 @@ "(all selected)" : "(όλα τα επιλεγμένα)", "({count} selected)" : "({count} επιλέχθησαν)", "Error loading file exists template" : "Σφάλμα κατά την φόρτωση του προτύπου \"αρχείο υπάρχει\"", + "Pending" : "Εκκρεμεί", "Very weak password" : "Πολύ αδύναμο συνθηματικό", "Weak password" : "Αδύναμο συνθηματικό", "So-so password" : "Μέτριο συνθηματικό", @@ -86,6 +92,7 @@ "Expiration date" : "Ημερομηνία λήξης", "Choose a password for the public link" : "Επιλέξτε κωδικό για τον δημόσιο σύνδεσμο", "Copied!" : "Αντιγράφτηκε!", + "Copy" : "Αντιγραφή", "Not supported!" : "Δεν υποστηρίζεται!", "Press ⌘-C to copy." : "Για αντιγραφή πατήστε ⌘-C.", "Press Ctrl-C to copy." : "Για αντιγραφή πατήστε Ctrl-C.", @@ -100,6 +107,7 @@ "Shared with you by {owner}" : "Διαμοιράστηκε με σας από τον {owner}", "group" : "ομάδα", "remote" : "απομακρυσμένα", + "email" : "ηλεκτρονικό ταχυδρομείο", "Unshare" : "Διακοπή διαμοιρασμού", "can edit" : "δυνατότητα αλλαγής", "access control" : "έλεγχος πρόσβασης", diff --git a/core/l10n/id.js b/core/l10n/id.js index 2ed3768d6a4..3fa97fd963d 100644 --- a/core/l10n/id.js +++ b/core/l10n/id.js @@ -60,6 +60,7 @@ OC.L10N.register( "seconds ago" : "beberapa detik yang lalu", "Logging in …" : "Log masuk...", "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "Sebuah tautan untuk setel ulang sandi Anda telah dikirim ke email Anda. Jika Anda tidak menerima dalam jangka waktu yang wajar, periksa folder spam/sampah Anda.<br>Jika tidak ada, tanyakan pada administrator Anda.", + "Your files are encrypted. There will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Berkas anda terenkripsi. Tidak ada jalan untuk mendapatkan kembali data anda setelah sandi disetel ulang.<br />Jika anda tidak yakin, harap hubungi administrator anda sebelum melanjutkannya. <br />Apa anda ingin melanjutkannya?", "I know what I'm doing" : "Saya tahu apa yang saya lakukan", "Password can not be changed. Please contact your administrator." : "Sandi tidak dapat diubah. Silakan hubungi administrator Anda", "No" : "Tidak", @@ -122,14 +123,21 @@ OC.L10N.register( "Password protect" : "Lindungi dengan sandi", "Allow upload and editing" : "Izinkan pengunggahan dan penyuntingan", "Allow editing" : "Izinkan penyuntingan", + "File drop (upload only)" : "Berkas jatuh (hanya unggah)", "Email link to person" : "Emailkan tautan ini ke orang", "Send" : "Kirim", "Shared with you and the group {group} by {owner}" : "Dibagikan dengan anda dan grup {group} oleh {owner}", "Shared with you by {owner}" : "Dibagikan dengan anda oleh {owner}", + "{{shareInitiatorDisplayName}} shared via link" : "{{shareInitiatorDisplayName}} dibagikan lewat tautan", "group" : "grup", "remote" : "remote", + "email" : "surel", "Unshare" : "Batalkan berbagi", + "can reshare" : "dapat dibagi ulang", "can edit" : "dapat sunting", + "can create" : "dapat membuat", + "can change" : "dapat mengubah", + "can delete" : "dapat menghapus", "access control" : "kontrol akses", "Could not unshare" : "Tidak dapat membatalkan pembagian", "Share details could not be loaded for this item." : "Rincian berbagi tidak dapat dimuat untuk item ini.", @@ -138,7 +146,17 @@ OC.L10N.register( "An error occurred. Please try again" : "Terjadi kesalahan. Silakan coba lagi", "{sharee} (group)" : "{sharee} (grup)", "{sharee} (remote)" : "{sharee} (remote)", + "{sharee} (email)" : "{sharee} (surel)", "Share" : "Bagikan", + "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Berbagi dengan orang dipeladen lainnya menggunakan Federated Cloud ID mereka username@example.com/nextcloud", + "Share with users or by mail..." : "Bagikan dengan pengguna atau lewat surel...", + "Share with users or remote users..." : "Bagikan dengan pengguna atau pengguna jarak jauh...", + "Share with users, remote users or by mail..." : "Bagikan dengan pengguna, pengguna jarak jauh atau lewat surel...", + "Share with users or groups..." : "Bagikan dengan pengguna atau grup...", + "Share with users, groups or by mail..." : "Bagikan dengan pengguna, grup atau lewat surel...", + "Share with users, groups or remote users..." : "Bagikan dengan pengguna, grup atau pengguna jarak jauh...", + "Share with users, groups, remote users or by mail..." : "Bagikan dengan pengguna, grup, pengguna jarak jauh atau lewat surel...", + "Share with users..." : "Bagikan dengan pengguna...", "Error removing share" : "Terjadi kesalahan saat menghapus pembagian", "Non-existing tag #{tag}" : "Tag tidak ada #{tag}", "restricted" : "terbatas", @@ -147,6 +165,7 @@ OC.L10N.register( "Delete" : "Hapus", "Rename" : "Ubah nama", "Collaborative tags" : "Tag kolaboratif", + "No tags found" : "Tag tidak ditemukan", "The object type is not specified." : "Tipe objek tidak ditentukan.", "Enter new" : "Masukkan baru", "Add" : "Tambah", @@ -169,6 +188,7 @@ OC.L10N.register( "Continue to Nextcloud" : "Lanjutkan ke Nextcloud", "The update was successful. Redirecting you to Nextcloud now." : "Pembaruan berhasil. Mengarahkan Anda ke Nextcloud.", "Searching other places" : "Mencari tempat lainnya", + "No search results in other folders for '{tag}{filter}{endtag}'" : "Hasil pencarian tidak ditemukan difolder lainnya untuk '{tag}{filter}{endtag}'", "_{count} search result in another folder_::_{count} search results in other folders_" : ["{count} hasil pencarian di folder lain"], "Personal" : "Pribadi", "Users" : "Pengguna", @@ -211,6 +231,7 @@ OC.L10N.register( "Database name" : "Nama basis data", "Database tablespace" : "Tablespace basis data", "Database host" : "Host basis data", + "Please specify the port number along with the host name (e.g., localhost:5432)." : "Harap tentukan nomor port beserta nama host (contoh., localhost:5432).", "Performance warning" : "Peringatan kinerja", "SQLite will be used as database." : "SQLite akan digunakan sebagai basis data.", "For larger installations we recommend to choose a different database backend." : "Untuk instalasi yang lebih besar, kami menyarankan untuk memilih backend basis data yang berbeda.", @@ -222,6 +243,8 @@ OC.L10N.register( "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Aplikasi ini memerlukan JavaScript untuk dapat beroperasi dengan benar. Mohon {linkstart}aktifkan JavaScript{linkend} dan muat ulang halaman ini.", "Search" : "Cari", "Log out" : "Keluar", + "This action requires you to confirm your password:" : "Aksi ini mengharuskan anda mengkonfirmasi sandi anda:", + "Confirm your password" : "Konfirmasi sandi anda", "Server side authentication failed!" : "Otentikasi dari sisi server gagal!", "Please contact your administrator." : "Silahkan hubungi administrator anda.", "An internal error occurred." : "Terjadi kesalahan internal.", @@ -241,6 +264,11 @@ OC.L10N.register( "This means only administrators can use the instance." : "Ini berarti hanya administrator yang dapat menggunakan ownCloud.", "Contact your system administrator if this message persists or appeared unexpectedly." : "Hubungi administrator sistem anda jika pesan ini terus muncul atau muncul tiba-tiba.", "Thank you for your patience." : "Terima kasih atas kesabaran anda.", + "Two-factor authentication" : "Otentikasi Two-factor", + "Enhanced security is enabled for your account. Please authenticate using a second factor." : "Keamanan tambahan diaktifkan untuk akun anda. Harap otentikasi menggunakan faktor kedua.", + "Cancel log in" : "Batalkan masuk log", + "Use backup code" : "Gunakan kode cadangan", + "Error while validating your second factor" : "Galat ketika memvalidasi faktor kedua anda", "You are accessing the server from an untrusted domain." : "Anda mengakses server dari domain yang tidak terpercaya.", "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domains\" setting in config/config.php. An example configuration is provided in config/config.sample.php." : "Silakan hubungi administrator Anda. Apabila Anda adalah administrator dari instansi ini, konfigurasikan aturan \"trusted_domains\" di config/config.php. Contoh konfigurasi disediakan di config/config.sample.php.", "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "Tergantung pada konfigurasi Anda, sebagai seorang administrator Anda kemungkinan dapat menggunakan tombol bawah untuk mempercayai domain ini.", diff --git a/core/l10n/id.json b/core/l10n/id.json index dd562e7d9b1..b0d9c903a0b 100644 --- a/core/l10n/id.json +++ b/core/l10n/id.json @@ -58,6 +58,7 @@ "seconds ago" : "beberapa detik yang lalu", "Logging in …" : "Log masuk...", "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "Sebuah tautan untuk setel ulang sandi Anda telah dikirim ke email Anda. Jika Anda tidak menerima dalam jangka waktu yang wajar, periksa folder spam/sampah Anda.<br>Jika tidak ada, tanyakan pada administrator Anda.", + "Your files are encrypted. There will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Berkas anda terenkripsi. Tidak ada jalan untuk mendapatkan kembali data anda setelah sandi disetel ulang.<br />Jika anda tidak yakin, harap hubungi administrator anda sebelum melanjutkannya. <br />Apa anda ingin melanjutkannya?", "I know what I'm doing" : "Saya tahu apa yang saya lakukan", "Password can not be changed. Please contact your administrator." : "Sandi tidak dapat diubah. Silakan hubungi administrator Anda", "No" : "Tidak", @@ -120,14 +121,21 @@ "Password protect" : "Lindungi dengan sandi", "Allow upload and editing" : "Izinkan pengunggahan dan penyuntingan", "Allow editing" : "Izinkan penyuntingan", + "File drop (upload only)" : "Berkas jatuh (hanya unggah)", "Email link to person" : "Emailkan tautan ini ke orang", "Send" : "Kirim", "Shared with you and the group {group} by {owner}" : "Dibagikan dengan anda dan grup {group} oleh {owner}", "Shared with you by {owner}" : "Dibagikan dengan anda oleh {owner}", + "{{shareInitiatorDisplayName}} shared via link" : "{{shareInitiatorDisplayName}} dibagikan lewat tautan", "group" : "grup", "remote" : "remote", + "email" : "surel", "Unshare" : "Batalkan berbagi", + "can reshare" : "dapat dibagi ulang", "can edit" : "dapat sunting", + "can create" : "dapat membuat", + "can change" : "dapat mengubah", + "can delete" : "dapat menghapus", "access control" : "kontrol akses", "Could not unshare" : "Tidak dapat membatalkan pembagian", "Share details could not be loaded for this item." : "Rincian berbagi tidak dapat dimuat untuk item ini.", @@ -136,7 +144,17 @@ "An error occurred. Please try again" : "Terjadi kesalahan. Silakan coba lagi", "{sharee} (group)" : "{sharee} (grup)", "{sharee} (remote)" : "{sharee} (remote)", + "{sharee} (email)" : "{sharee} (surel)", "Share" : "Bagikan", + "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Berbagi dengan orang dipeladen lainnya menggunakan Federated Cloud ID mereka username@example.com/nextcloud", + "Share with users or by mail..." : "Bagikan dengan pengguna atau lewat surel...", + "Share with users or remote users..." : "Bagikan dengan pengguna atau pengguna jarak jauh...", + "Share with users, remote users or by mail..." : "Bagikan dengan pengguna, pengguna jarak jauh atau lewat surel...", + "Share with users or groups..." : "Bagikan dengan pengguna atau grup...", + "Share with users, groups or by mail..." : "Bagikan dengan pengguna, grup atau lewat surel...", + "Share with users, groups or remote users..." : "Bagikan dengan pengguna, grup atau pengguna jarak jauh...", + "Share with users, groups, remote users or by mail..." : "Bagikan dengan pengguna, grup, pengguna jarak jauh atau lewat surel...", + "Share with users..." : "Bagikan dengan pengguna...", "Error removing share" : "Terjadi kesalahan saat menghapus pembagian", "Non-existing tag #{tag}" : "Tag tidak ada #{tag}", "restricted" : "terbatas", @@ -145,6 +163,7 @@ "Delete" : "Hapus", "Rename" : "Ubah nama", "Collaborative tags" : "Tag kolaboratif", + "No tags found" : "Tag tidak ditemukan", "The object type is not specified." : "Tipe objek tidak ditentukan.", "Enter new" : "Masukkan baru", "Add" : "Tambah", @@ -167,6 +186,7 @@ "Continue to Nextcloud" : "Lanjutkan ke Nextcloud", "The update was successful. Redirecting you to Nextcloud now." : "Pembaruan berhasil. Mengarahkan Anda ke Nextcloud.", "Searching other places" : "Mencari tempat lainnya", + "No search results in other folders for '{tag}{filter}{endtag}'" : "Hasil pencarian tidak ditemukan difolder lainnya untuk '{tag}{filter}{endtag}'", "_{count} search result in another folder_::_{count} search results in other folders_" : ["{count} hasil pencarian di folder lain"], "Personal" : "Pribadi", "Users" : "Pengguna", @@ -209,6 +229,7 @@ "Database name" : "Nama basis data", "Database tablespace" : "Tablespace basis data", "Database host" : "Host basis data", + "Please specify the port number along with the host name (e.g., localhost:5432)." : "Harap tentukan nomor port beserta nama host (contoh., localhost:5432).", "Performance warning" : "Peringatan kinerja", "SQLite will be used as database." : "SQLite akan digunakan sebagai basis data.", "For larger installations we recommend to choose a different database backend." : "Untuk instalasi yang lebih besar, kami menyarankan untuk memilih backend basis data yang berbeda.", @@ -220,6 +241,8 @@ "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Aplikasi ini memerlukan JavaScript untuk dapat beroperasi dengan benar. Mohon {linkstart}aktifkan JavaScript{linkend} dan muat ulang halaman ini.", "Search" : "Cari", "Log out" : "Keluar", + "This action requires you to confirm your password:" : "Aksi ini mengharuskan anda mengkonfirmasi sandi anda:", + "Confirm your password" : "Konfirmasi sandi anda", "Server side authentication failed!" : "Otentikasi dari sisi server gagal!", "Please contact your administrator." : "Silahkan hubungi administrator anda.", "An internal error occurred." : "Terjadi kesalahan internal.", @@ -239,6 +262,11 @@ "This means only administrators can use the instance." : "Ini berarti hanya administrator yang dapat menggunakan ownCloud.", "Contact your system administrator if this message persists or appeared unexpectedly." : "Hubungi administrator sistem anda jika pesan ini terus muncul atau muncul tiba-tiba.", "Thank you for your patience." : "Terima kasih atas kesabaran anda.", + "Two-factor authentication" : "Otentikasi Two-factor", + "Enhanced security is enabled for your account. Please authenticate using a second factor." : "Keamanan tambahan diaktifkan untuk akun anda. Harap otentikasi menggunakan faktor kedua.", + "Cancel log in" : "Batalkan masuk log", + "Use backup code" : "Gunakan kode cadangan", + "Error while validating your second factor" : "Galat ketika memvalidasi faktor kedua anda", "You are accessing the server from an untrusted domain." : "Anda mengakses server dari domain yang tidak terpercaya.", "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domains\" setting in config/config.php. An example configuration is provided in config/config.sample.php." : "Silakan hubungi administrator Anda. Apabila Anda adalah administrator dari instansi ini, konfigurasikan aturan \"trusted_domains\" di config/config.php. Contoh konfigurasi disediakan di config/config.sample.php.", "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "Tergantung pada konfigurasi Anda, sebagai seorang administrator Anda kemungkinan dapat menggunakan tombol bawah untuk mempercayai domain ini.", diff --git a/core/l10n/it.js b/core/l10n/it.js index 27555092526..b37eb695a1f 100644 --- a/core/l10n/it.js +++ b/core/l10n/it.js @@ -60,6 +60,7 @@ OC.L10N.register( "seconds ago" : "secondi fa", "Logging in …" : "Accesso in corso...", "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "Il collegamento per reimpostare la password è stato inviato al tuo indirizzo di posta. Se non lo ricevi in tempi ragionevoli, controlla le cartelle della posta indesiderata.<br>Se non dovesse essere nemmeno lì, contatta il tuo amministratore locale.", + "Your files are encrypted. There will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "I tuoi file sono cifrati. Non sarà più possibile recuperare i tuoi dati una volta che la password sarà reimpostata.<br />Se non sei sicuro, contatta l'amministratore prima di proseguire.<br />Vuoi davvero continuare?", "I know what I'm doing" : "So cosa sto facendo", "Password can not be changed. Please contact your administrator." : "La password non può essere cambiata. Contatta il tuo amministratore.", "No" : "No", diff --git a/core/l10n/it.json b/core/l10n/it.json index a5424c326c6..877972e78f7 100644 --- a/core/l10n/it.json +++ b/core/l10n/it.json @@ -58,6 +58,7 @@ "seconds ago" : "secondi fa", "Logging in …" : "Accesso in corso...", "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "Il collegamento per reimpostare la password è stato inviato al tuo indirizzo di posta. Se non lo ricevi in tempi ragionevoli, controlla le cartelle della posta indesiderata.<br>Se non dovesse essere nemmeno lì, contatta il tuo amministratore locale.", + "Your files are encrypted. There will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "I tuoi file sono cifrati. Non sarà più possibile recuperare i tuoi dati una volta che la password sarà reimpostata.<br />Se non sei sicuro, contatta l'amministratore prima di proseguire.<br />Vuoi davvero continuare?", "I know what I'm doing" : "So cosa sto facendo", "Password can not be changed. Please contact your administrator." : "La password non può essere cambiata. Contatta il tuo amministratore.", "No" : "No", diff --git a/core/l10n/lv.js b/core/l10n/lv.js index 4f8b57c08b3..a821b440181 100644 --- a/core/l10n/lv.js +++ b/core/l10n/lv.js @@ -160,6 +160,7 @@ OC.L10N.register( "The specified document has not been found on the server." : "Norādītais dokuments nav atrasts serverī.", "You can click here to return to %s." : "Jūs varat noklikšķināt šeit, lai atgrieztos uz %s.", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Sveiki,\n\ninformējam, ka %s koplietoja ar jums %s.\nApskati to: %s\n", + "The share will expire on %s." : "Koplietošana beigsies %s.", "Cheers!" : "Priekā!", "Internal Server Error" : "Iekšēja servera kļūda", "The server encountered an internal error and was unable to complete your request." : "Serverī radās iekšēja kļūda, un tas nevarēja pabeigt jūsu pieprasījumu.", diff --git a/core/l10n/lv.json b/core/l10n/lv.json index 2e1cd5877cf..e5e0d59b293 100644 --- a/core/l10n/lv.json +++ b/core/l10n/lv.json @@ -158,6 +158,7 @@ "The specified document has not been found on the server." : "Norādītais dokuments nav atrasts serverī.", "You can click here to return to %s." : "Jūs varat noklikšķināt šeit, lai atgrieztos uz %s.", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Sveiki,\n\ninformējam, ka %s koplietoja ar jums %s.\nApskati to: %s\n", + "The share will expire on %s." : "Koplietošana beigsies %s.", "Cheers!" : "Priekā!", "Internal Server Error" : "Iekšēja servera kļūda", "The server encountered an internal error and was unable to complete your request." : "Serverī radās iekšēja kļūda, un tas nevarēja pabeigt jūsu pieprasījumu.", diff --git a/core/templates/installation.php b/core/templates/installation.php index 2f645454128..058049d8946 100644 --- a/core/templates/installation.php +++ b/core/templates/installation.php @@ -108,13 +108,13 @@ script('core', [ autocomplete="off" autocapitalize="off" autocorrect="off"> </p> <p class="groupmiddle"> - <input type="password" name="dbpass" id="dbpass" data-typetoggle="#dbpassword" + <input type="password" name="dbpass" id="dbpass" data-typetoggle="#dbpassword-toggle" placeholder="<?php p($l->t( 'Database password' )); ?>" value="<?php p($_['dbpass']); ?>" autocomplete="off" autocapitalize="off" autocorrect="off"> <label for="dbpass" class="infield"><?php p($l->t( 'Database password' )); ?></label> - <input type="checkbox" id="dbpassword" name="dbpassword"> - <label for="dbpassword"></label> + <input type="checkbox" id="dbpassword-toggle" name="dbpassword-toggle"> + <label for="dbpassword-toggle"></label> </p> <p class="groupmiddle"> <label for="dbname" class="infield"><?php p($l->t( 'Database name' )); ?></label> diff --git a/issue_template.md b/issue_template.md index 70eca36c9b6..6714371a4eb 100644 --- a/issue_template.md +++ b/issue_template.md @@ -104,6 +104,7 @@ Eventually replace sensitive data as the name/IP-address of your LDAP server or #### Web server error log <details> <summary>Web server error log</summary> + ``` Insert your webserver log here ``` @@ -112,6 +113,7 @@ Insert your webserver log here #### Nextcloud log (data/nextcloud.log) <details> <summary>Nextcloud log</summary> + ``` Insert your Nextcloud log here ``` @@ -120,6 +122,7 @@ Insert your Nextcloud log here #### Browser log <details> <summary>Browser log</summary> + ``` Insert your browser log here, this could for example include: diff --git a/l10n/.tx/config b/l10n/.tx/config index 3554cf6954b..3368c3e7097 100644 --- a/l10n/.tx/config +++ b/l10n/.tx/config @@ -86,6 +86,12 @@ source_file = templates/federation.pot source_lang = en type = PO +[nextcloud.sharebymail] +file_filter = <lang>/sharebymail.po +source_file = templates/sharebymail.pot +source_lang = en +type = PO + [nextcloud.systemtags] file_filter = <lang>/systemtags.po source_file = templates/systemtags.pot diff --git a/lib/base.php b/lib/base.php index 3ba0755eaab..9f480c0b0dc 100644 --- a/lib/base.php +++ b/lib/base.php @@ -281,7 +281,6 @@ class OC { // render error page $template = new OC_Template('', 'update.user', 'guest'); OC_Util::addScript('maintenance-check'); - OC_Util::addStyle('guest'); $template->printPage(); die(); } @@ -355,8 +354,6 @@ class OC { header('Status: 503 Service Temporarily Unavailable'); header('Retry-After: 120'); - OC_Util::addStyle('guest'); - // render error page $template = new OC_Template('', 'update.use-cli', 'guest'); $template->assign('productName', 'nextcloud'); // for now @@ -378,7 +375,6 @@ class OC { $systemConfig->setValue('theme', ''); OC_Util::addScript('config'); // needed for web root OC_Util::addScript('update'); - OC_Util::addStyle('guest'); /** @var \OC\App\AppManager $appManager */ $appManager = \OC::$server->getAppManager(); diff --git a/lib/composer/composer/autoload_classmap.php b/lib/composer/composer/autoload_classmap.php index 4a345ed7a6d..5bd9da04072 100644 --- a/lib/composer/composer/autoload_classmap.php +++ b/lib/composer/composer/autoload_classmap.php @@ -98,6 +98,8 @@ return array( 'OCP\\Encryption\\IFile' => $baseDir . '/lib/public/Encryption/IFile.php', 'OCP\\Encryption\\IManager' => $baseDir . '/lib/public/Encryption/IManager.php', 'OCP\\Encryption\\Keys\\IStorage' => $baseDir . '/lib/public/Encryption/Keys/IStorage.php', + 'OCP\\Federation\\ICloudId' => $baseDir . '/lib/public/Federation/ICloudId.php', + 'OCP\\Federation\\ICloudIdManager' => $baseDir . '/lib/public/Federation/ICloudIdManager.php', 'OCP\\Files' => $baseDir . '/lib/public/Files.php', 'OCP\\Files\\AlreadyExistsException' => $baseDir . '/lib/public/Files/AlreadyExistsException.php', 'OCP\\Files\\Cache\\ICache' => $baseDir . '/lib/public/Files/Cache/ICache.php', @@ -497,6 +499,8 @@ return array( 'OC\\Encryption\\Manager' => $baseDir . '/lib/private/Encryption/Manager.php', 'OC\\Encryption\\Update' => $baseDir . '/lib/private/Encryption/Update.php', 'OC\\Encryption\\Util' => $baseDir . '/lib/private/Encryption/Util.php', + 'OC\\Federation\\CloudId' => $baseDir . '/lib/private/Federation/CloudId.php', + 'OC\\Federation\\CloudIdManager' => $baseDir . '/lib/private/Federation/CloudIdManager.php', 'OC\\Files\\AppData\\AppData' => $baseDir . '/lib/private/Files/AppData/AppData.php', 'OC\\Files\\AppData\\Factory' => $baseDir . '/lib/private/Files/AppData/Factory.php', 'OC\\Files\\Cache\\Cache' => $baseDir . '/lib/private/Files/Cache/Cache.php', diff --git a/lib/composer/composer/autoload_static.php b/lib/composer/composer/autoload_static.php index f8d360fec4b..475b4c15542 100644 --- a/lib/composer/composer/autoload_static.php +++ b/lib/composer/composer/autoload_static.php @@ -128,6 +128,8 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c 'OCP\\Encryption\\IFile' => __DIR__ . '/../../..' . '/lib/public/Encryption/IFile.php', 'OCP\\Encryption\\IManager' => __DIR__ . '/../../..' . '/lib/public/Encryption/IManager.php', 'OCP\\Encryption\\Keys\\IStorage' => __DIR__ . '/../../..' . '/lib/public/Encryption/Keys/IStorage.php', + 'OCP\\Federation\\ICloudId' => __DIR__ . '/../../..' . '/lib/public/Federation/ICloudId.php', + 'OCP\\Federation\\ICloudIdManager' => __DIR__ . '/../../..' . '/lib/public/Federation/ICloudIdManager.php', 'OCP\\Files' => __DIR__ . '/../../..' . '/lib/public/Files.php', 'OCP\\Files\\AlreadyExistsException' => __DIR__ . '/../../..' . '/lib/public/Files/AlreadyExistsException.php', 'OCP\\Files\\Cache\\ICache' => __DIR__ . '/../../..' . '/lib/public/Files/Cache/ICache.php', @@ -527,6 +529,8 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c 'OC\\Encryption\\Manager' => __DIR__ . '/../../..' . '/lib/private/Encryption/Manager.php', 'OC\\Encryption\\Update' => __DIR__ . '/../../..' . '/lib/private/Encryption/Update.php', 'OC\\Encryption\\Util' => __DIR__ . '/../../..' . '/lib/private/Encryption/Util.php', + 'OC\\Federation\\CloudId' => __DIR__ . '/../../..' . '/lib/private/Federation/CloudId.php', + 'OC\\Federation\\CloudIdManager' => __DIR__ . '/../../..' . '/lib/private/Federation/CloudIdManager.php', 'OC\\Files\\AppData\\AppData' => __DIR__ . '/../../..' . '/lib/private/Files/AppData/AppData.php', 'OC\\Files\\AppData\\Factory' => __DIR__ . '/../../..' . '/lib/private/Files/AppData/Factory.php', 'OC\\Files\\Cache\\Cache' => __DIR__ . '/../../..' . '/lib/private/Files/Cache/Cache.php', diff --git a/lib/l10n/ca.js b/lib/l10n/ca.js new file mode 100644 index 00000000000..daa9ae7a3d6 --- /dev/null +++ b/lib/l10n/ca.js @@ -0,0 +1,177 @@ +OC.L10N.register( + "lib", + { + "Cannot write into \"config\" directory!" : "No es pot escriure a la carpeta \"config\"!", + "This can usually be fixed by giving the webserver write access to the config directory" : "Això normalment es pot solucionar donant al servidor web permís d'escriptura a la carpeta de configuració", + "See %s" : "Comproveu %s", + "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Això normalment es pot solucionar donant a %s permís d'escriptura a la carpeta de configuració %s", + "Sample configuration detected" : "Configuració d'exemple detectada", + "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "S'ha detectat que la configuració d'exemple ha estat copiada. Això no està suportat, i podria corrompre la vostra instalació. Siusplau, llegiu la documentació abans de realitzar canvis a config.php", + "%1$s and %2$s" : "%1$s i %2$s", + "%1$s, %2$s and %3$s" : "%1$s, %2$s i %3$s", + "%1$s, %2$s, %3$s and %4$s" : "%1$s, %2$s, %3$s i %4$s", + "%1$s, %2$s, %3$s, %4$s and %5$s" : "%1$s, %2$s, %3$s, %4$s i %5$s", + "PHP %s or higher is required." : "Es requereix PHP %s o superior.", + "Server version %s or higher is required." : "Es requereix una versió de servidor %s o superior", + "Server version %s or lower is required." : "Es requereix una versió de servidor %s o inferior", + "Unknown filetype" : "Tipus de fitxer desconegut", + "Invalid image" : "Imatge no vàlida", + "Avatar image is not square" : "La imatge de perfil no és quadrada", + "today" : "avui", + "yesterday" : "ahir", + "_%n day ago_::_%n days ago_" : ["fa %n dia","fa %n dies"], + "last month" : "el mes passat", + "_%n month ago_::_%n months ago_" : ["fa %n mes","fa %n mesos"], + "last year" : "l'any passat", + "_%n year ago_::_%n years ago_" : ["fa %n any","fa %n anys"], + "_%n hour ago_::_%n hours ago_" : ["fa %n hora","fa %n hores"], + "_%n minute ago_::_%n minutes ago_" : ["fa %n minut","fa %n minuts"], + "seconds ago" : "segons enrere", + "File name contains at least one invalid character" : "El nom del fitxer conté al menys un caràcter invàlid", + "File name is too long" : "el nom del fitxer es massa gran", + "APCu" : "APCu", + "Redis" : "Redis", + "Server settings" : "Configuració del Servidor", + "Sharing" : "Compartir", + "Encryption" : "Xifrat", + "Additional settings" : "Configuració adicional", + "Tips & tricks" : "Consells i trucs", + "%s enter the database username and name." : "%s escriviu el nom d'usuari i el nom de la base de dades.", + "%s enter the database username." : "%s escriviu el nom d'usuari de la base de dades.", + "%s enter the database name." : "%s escriviu el nom de la base de dades.", + "%s you may not use dots in the database name" : "%s no podeu usar punts en el nom de la base de dades", + "Oracle connection could not be established" : "No s'ha pogut establir la connexió Oracle", + "Oracle username and/or password not valid" : "Nom d'usuari i/o contrasenya Oracle no vàlids", + "DB Error: \"%s\"" : "Error DB: \"%s\"", + "Offending command was: \"%s\"" : "L'ordre en conflicte és: \"%s\"", + "You need to enter either an existing account or the administrator." : "Heu d'escriure un compte existent o el d'administrador.", + "Offending command was: \"%s\", name: %s, password: %s" : "L'ordre en conflicte és: \"%s\", nom: %s, contrasenya: %s", + "PostgreSQL username and/or password not valid" : "Nom d'usuari i/o contrasenya PostgreSQL no vàlids", + "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X no té suport i %s no funcionarà correctament en aquesta plataforma. Useu-ho al vostre risc!", + "For the best results, please consider using a GNU/Linux server instead." : "Per millors resultats, millor considereu utilitzar un servidor GNU/Linux.", + "Set an admin username." : "Establiu un nom d'usuari per l'administrador.", + "Set an admin password." : "Establiu una contrasenya per l'administrador.", + "Invalid Federated Cloud ID" : "ID de núvol federat invàlid", + "%s shared »%s« with you" : "%s ha compartit »%s« amb tu", + "%s via %s" : "%s via %s", + "Sharing %s failed, because the file does not exist" : "Ha fallat en compartir %s, perquè el fitxer no existeix", + "You are not allowed to share %s" : "No se us permet compartir %s", + "Sharing %s failed, because the user %s does not exist" : "Ha fallat en compartir %s, perquè l'usuari %s no existeix", + "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "Ha fallat en compartir %s, perquè l'usuari %s no és membre de cap grup dels que %s és membre", + "Sharing %s failed, because this item is already shared with %s" : "Ha fallat en compartir %s, perquè l'element ja està compartit amb %s", + "Sharing %s failed, because the group %s does not exist" : "Ha fallat en compartir %s, perquè el grup %s no existeix", + "Sharing %s failed, because %s is not a member of the group %s" : "Ha fallat en compartir %s, perquè %s no és membre del grup %s", + "You need to provide a password to create a public link, only protected links are allowed" : "Heu de proporcionar una contrasenya per crear un enllaç públic. Només es permeten enllaços segurs.", + "Sharing %s failed, because sharing with links is not allowed" : "Ha fallat en compartir %s, perquè no es permet compartir amb enllaços", + "Not allowed to create a federated share with the same user" : "No està permés crear una compartició federada amb el mateix usuari", + "Sharing %s failed, could not find %s, maybe the server is currently unreachable." : "La compartició de %s ha fallat, no es pot trobar %s, potser el servidor està actualment innacessible.", + "Share type %s is not valid for %s" : "La compartició tipus %s no és vàlida per %s", + "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Ha fallat en establir els permisos per %s perquè aquests excedeixen els permesos per a %s", + "Setting permissions for %s failed, because the item was not found" : "Ha fallat en establir els permisos per %s, perquè no s'ha trobat l'element", + "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "No es pot guardar la data d'expiració. Els fitxers o carpetes compartits no poden expirar més tard de %s després d'haver-se compratit.", + "Cannot set expiration date. Expiration date is in the past" : "No es pot guardar la data d'expiració. La data d'expiració ja ha passat.", + "Sharing backend %s must implement the interface OCP\\Share_Backend" : "El rerefons de compartició %s ha d'implementar la interfície OCP\\Share_Backend", + "Sharing backend %s not found" : "El rerefons de compartició %s no s'ha trobat", + "Sharing backend for %s not found" : "El rerefons de compartició per a %s no s'ha trobat", + "Sharing %s failed, because the permissions exceed permissions granted to %s" : "Ha fallat en compartir %s perquè els permisos excedeixen els permesos per a %s", + "Sharing %s failed, because resharing is not allowed" : "Ha fallat en compartir %s, perquè no es permet compartir de nou", + "Sharing %s failed, because the sharing backend for %s could not find its source" : "Ha fallat en compartir %s, perquè el rerefons de compartir per %s no pot trobar la seva font", + "Sharing %s failed, because the file could not be found in the file cache" : "Ha fallat en compartir %s, perquè el fitxer no s'ha trobat en el fitxer cau", + "Could not find category \"%s\"" : "No s'ha trobat la categoria \"%s\"", + "Sunday" : "Diumenge", + "Monday" : "Dilluns", + "Tuesday" : "Dimarts", + "Wednesday" : "Dimecres", + "Thursday" : "Dijous", + "Friday" : "Divendres", + "Saturday" : "Dissabte", + "Sun." : "Dg.", + "Mon." : "Mon.", + "Tue." : "Dm.", + "Wed." : "Dc.", + "Thu." : "Dj.", + "Fri." : "Dv.", + "Sat." : "Ds.", + "Su" : "Dg", + "Mo" : "Dl", + "Tu" : "Dm", + "We" : "Dc", + "Th" : "Dj", + "Fr" : "Dv", + "Sa" : "Ds", + "January" : "Gener", + "February" : "Febrer", + "March" : "Març", + "April" : "Abril", + "May" : "Maig", + "June" : "Juny", + "July" : "Juliol", + "August" : "Agost", + "September" : "Setembre", + "October" : "Octubre", + "November" : "Novembre", + "December" : "Desembre", + "Jan." : "Gen.", + "Feb." : "Febr.", + "Mar." : "Març", + "Apr." : "Abr", + "May." : "Maig", + "Jun." : "Juny", + "Jul." : "Jul.", + "Aug." : "Ag.", + "Sep." : "Set", + "Oct." : "Oct.", + "Nov." : "Nov.", + "Dec." : "Des.", + "Apps" : "Aplicacions", + "A valid username must be provided" : "Heu de facilitar un nom d'usuari vàlid", + "A valid password must be provided" : "Heu de facilitar una contrasenya vàlida", + "The username is already being used" : "El nom d'usuari ja està en ús", + "Login canceled by app" : "Accés cancel·lat per l'App", + "User disabled" : "Usuari desactivat", + "Help" : "Ajuda", + "Personal" : "Personal", + "Users" : "Usuaris", + "Admin" : "Administració", + "No app name specified" : "No heu especificat cap nom d'aplicació", + "Can't read file" : "No es pot llegir el fitxer", + "Application is not enabled" : "L'aplicació no està habilitada", + "Authentication error" : "Error d'autenticació", + "Token expired. Please reload page." : "El testimoni ha expirat. Torneu a carregar la pàgina.", + "Unknown user" : "Usuari desconegut", + "No database drivers (sqlite, mysql, or postgresql) installed." : "No hi ha instal·lats controladors de bases de dades (sqlite, mysql o postgresql).", + "Cannot write into \"config\" directory" : "No es pot escriure a la carpeta \"config\"", + "Cannot write into \"apps\" directory" : "No es pot escriure a la carpeta \"apps\"", + "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Això normalment es pot solucionar donant a %s permís d'escriptura a la carpeta d'aplicacions %s o inhabilitant la botiga d'aplicacions en el fitxer de configuració.", + "Cannot create \"data\" directory (%s)" : "No es pot crear la carpeta \"data\" (%s)", + "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Això normalment es pot solucionar donant a %s permís d'escriptura a la carpeta de configuració %s", + "Setting locale to %s failed" : "Ha fallat en establir la llengua a %s", + "Please install one of these locales on your system and restart your webserver." : "Siusplau, instal·li un d'aquests arxius de localització en el seu sistema, i reinicii el seu servidor web.", + "Please ask your server administrator to install the module." : "Demaneu a l'administrador del sistema que instal·li el mòdul.", + "PHP module %s not installed." : "El mòdul PHP %s no està instal·lat.", + "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Això probablement està provocat per una cau/accelerador com Zend OPcache o eAccelerator.", + "PHP modules have been installed, but they are still listed as missing?" : "S'han instal·lat mòduls PHP, però encara es llisten com una mancança?", + "Please ask your server administrator to restart the web server." : "Demaneu a l'administrador que reinici el servidor web.", + "PostgreSQL >= 9 required" : "Es requereix PostgreSQL >= 9", + "Please upgrade your database version" : "Actualitzeu la versió de la base de dades", + "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Canvieu els permisos a 0770 per tal que la carpeta no es pugui llistar per altres usuaris.", + "Data directory (%s) is readable by other users" : "La carpeta de dades (%s) és llegible per altres usuaris", + "Data directory (%s) is invalid" : "La carpeta de dades (%s) no és vàlida", + "Please check that the data directory contains a file \".ocdata\" in its root." : "Comproveu que la carpeta de dades contingui un fitxer \".ocdata\" a la seva arrel.", + "Could not obtain lock type %d on \"%s\"." : "No s'ha pogut obtenir un bloqueig tipus %d a \"%s\".", + "App directory already exists" : "La carpeta de l'aplicació ja existeix", + "Can't create app folder. Please fix permissions. %s" : "No es pot crear la carpeta de l'aplicació. Arregleu els permisos. %s", + "No source specified when installing app" : "No heu especificat la font en instal·lar l'aplicació", + "No href specified when installing app from http" : "No heu especificat href en instal·lar l'aplicació des de http", + "No path specified when installing app from local file" : "No heu seleccionat el camí en instal·lar una aplicació des d'un fitxer local", + "Archives of type %s are not supported" : "Els fitxers del tipus %s no són compatibles", + "Failed to open archive when installing app" : "Ha fallat l'obertura del fitxer en instal·lar l'aplicació", + "App does not provide an info.xml file" : "L'aplicació no proporciona un fitxer info.xml", + "App can't be installed because of not allowed code in the App" : "L'aplicació no es pot instal·lar perquè hi ha codi no autoritzat en l'aplicació", + "App can't be installed because it contains the <shipped>true</shipped> tag which is not allowed for non shipped apps" : "L'aplicació no es pot instal·lar perquè conté l'etiqueta <shipped>vertader</shipped> que no es permet per aplicacions no enviades", + "Logging" : "Iniciant", + "Recommended" : "Recomanat", + "Microsoft Windows Platform is not supported" : "La plataforma de Microsoft Windows no està soportat!", + "Storage not available" : "Emmagatzemament no disponible" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/lib/l10n/ca.json b/lib/l10n/ca.json new file mode 100644 index 00000000000..f6c692aef0d --- /dev/null +++ b/lib/l10n/ca.json @@ -0,0 +1,175 @@ +{ "translations": { + "Cannot write into \"config\" directory!" : "No es pot escriure a la carpeta \"config\"!", + "This can usually be fixed by giving the webserver write access to the config directory" : "Això normalment es pot solucionar donant al servidor web permís d'escriptura a la carpeta de configuració", + "See %s" : "Comproveu %s", + "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Això normalment es pot solucionar donant a %s permís d'escriptura a la carpeta de configuració %s", + "Sample configuration detected" : "Configuració d'exemple detectada", + "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "S'ha detectat que la configuració d'exemple ha estat copiada. Això no està suportat, i podria corrompre la vostra instalació. Siusplau, llegiu la documentació abans de realitzar canvis a config.php", + "%1$s and %2$s" : "%1$s i %2$s", + "%1$s, %2$s and %3$s" : "%1$s, %2$s i %3$s", + "%1$s, %2$s, %3$s and %4$s" : "%1$s, %2$s, %3$s i %4$s", + "%1$s, %2$s, %3$s, %4$s and %5$s" : "%1$s, %2$s, %3$s, %4$s i %5$s", + "PHP %s or higher is required." : "Es requereix PHP %s o superior.", + "Server version %s or higher is required." : "Es requereix una versió de servidor %s o superior", + "Server version %s or lower is required." : "Es requereix una versió de servidor %s o inferior", + "Unknown filetype" : "Tipus de fitxer desconegut", + "Invalid image" : "Imatge no vàlida", + "Avatar image is not square" : "La imatge de perfil no és quadrada", + "today" : "avui", + "yesterday" : "ahir", + "_%n day ago_::_%n days ago_" : ["fa %n dia","fa %n dies"], + "last month" : "el mes passat", + "_%n month ago_::_%n months ago_" : ["fa %n mes","fa %n mesos"], + "last year" : "l'any passat", + "_%n year ago_::_%n years ago_" : ["fa %n any","fa %n anys"], + "_%n hour ago_::_%n hours ago_" : ["fa %n hora","fa %n hores"], + "_%n minute ago_::_%n minutes ago_" : ["fa %n minut","fa %n minuts"], + "seconds ago" : "segons enrere", + "File name contains at least one invalid character" : "El nom del fitxer conté al menys un caràcter invàlid", + "File name is too long" : "el nom del fitxer es massa gran", + "APCu" : "APCu", + "Redis" : "Redis", + "Server settings" : "Configuració del Servidor", + "Sharing" : "Compartir", + "Encryption" : "Xifrat", + "Additional settings" : "Configuració adicional", + "Tips & tricks" : "Consells i trucs", + "%s enter the database username and name." : "%s escriviu el nom d'usuari i el nom de la base de dades.", + "%s enter the database username." : "%s escriviu el nom d'usuari de la base de dades.", + "%s enter the database name." : "%s escriviu el nom de la base de dades.", + "%s you may not use dots in the database name" : "%s no podeu usar punts en el nom de la base de dades", + "Oracle connection could not be established" : "No s'ha pogut establir la connexió Oracle", + "Oracle username and/or password not valid" : "Nom d'usuari i/o contrasenya Oracle no vàlids", + "DB Error: \"%s\"" : "Error DB: \"%s\"", + "Offending command was: \"%s\"" : "L'ordre en conflicte és: \"%s\"", + "You need to enter either an existing account or the administrator." : "Heu d'escriure un compte existent o el d'administrador.", + "Offending command was: \"%s\", name: %s, password: %s" : "L'ordre en conflicte és: \"%s\", nom: %s, contrasenya: %s", + "PostgreSQL username and/or password not valid" : "Nom d'usuari i/o contrasenya PostgreSQL no vàlids", + "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X no té suport i %s no funcionarà correctament en aquesta plataforma. Useu-ho al vostre risc!", + "For the best results, please consider using a GNU/Linux server instead." : "Per millors resultats, millor considereu utilitzar un servidor GNU/Linux.", + "Set an admin username." : "Establiu un nom d'usuari per l'administrador.", + "Set an admin password." : "Establiu una contrasenya per l'administrador.", + "Invalid Federated Cloud ID" : "ID de núvol federat invàlid", + "%s shared »%s« with you" : "%s ha compartit »%s« amb tu", + "%s via %s" : "%s via %s", + "Sharing %s failed, because the file does not exist" : "Ha fallat en compartir %s, perquè el fitxer no existeix", + "You are not allowed to share %s" : "No se us permet compartir %s", + "Sharing %s failed, because the user %s does not exist" : "Ha fallat en compartir %s, perquè l'usuari %s no existeix", + "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "Ha fallat en compartir %s, perquè l'usuari %s no és membre de cap grup dels que %s és membre", + "Sharing %s failed, because this item is already shared with %s" : "Ha fallat en compartir %s, perquè l'element ja està compartit amb %s", + "Sharing %s failed, because the group %s does not exist" : "Ha fallat en compartir %s, perquè el grup %s no existeix", + "Sharing %s failed, because %s is not a member of the group %s" : "Ha fallat en compartir %s, perquè %s no és membre del grup %s", + "You need to provide a password to create a public link, only protected links are allowed" : "Heu de proporcionar una contrasenya per crear un enllaç públic. Només es permeten enllaços segurs.", + "Sharing %s failed, because sharing with links is not allowed" : "Ha fallat en compartir %s, perquè no es permet compartir amb enllaços", + "Not allowed to create a federated share with the same user" : "No està permés crear una compartició federada amb el mateix usuari", + "Sharing %s failed, could not find %s, maybe the server is currently unreachable." : "La compartició de %s ha fallat, no es pot trobar %s, potser el servidor està actualment innacessible.", + "Share type %s is not valid for %s" : "La compartició tipus %s no és vàlida per %s", + "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Ha fallat en establir els permisos per %s perquè aquests excedeixen els permesos per a %s", + "Setting permissions for %s failed, because the item was not found" : "Ha fallat en establir els permisos per %s, perquè no s'ha trobat l'element", + "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "No es pot guardar la data d'expiració. Els fitxers o carpetes compartits no poden expirar més tard de %s després d'haver-se compratit.", + "Cannot set expiration date. Expiration date is in the past" : "No es pot guardar la data d'expiració. La data d'expiració ja ha passat.", + "Sharing backend %s must implement the interface OCP\\Share_Backend" : "El rerefons de compartició %s ha d'implementar la interfície OCP\\Share_Backend", + "Sharing backend %s not found" : "El rerefons de compartició %s no s'ha trobat", + "Sharing backend for %s not found" : "El rerefons de compartició per a %s no s'ha trobat", + "Sharing %s failed, because the permissions exceed permissions granted to %s" : "Ha fallat en compartir %s perquè els permisos excedeixen els permesos per a %s", + "Sharing %s failed, because resharing is not allowed" : "Ha fallat en compartir %s, perquè no es permet compartir de nou", + "Sharing %s failed, because the sharing backend for %s could not find its source" : "Ha fallat en compartir %s, perquè el rerefons de compartir per %s no pot trobar la seva font", + "Sharing %s failed, because the file could not be found in the file cache" : "Ha fallat en compartir %s, perquè el fitxer no s'ha trobat en el fitxer cau", + "Could not find category \"%s\"" : "No s'ha trobat la categoria \"%s\"", + "Sunday" : "Diumenge", + "Monday" : "Dilluns", + "Tuesday" : "Dimarts", + "Wednesday" : "Dimecres", + "Thursday" : "Dijous", + "Friday" : "Divendres", + "Saturday" : "Dissabte", + "Sun." : "Dg.", + "Mon." : "Mon.", + "Tue." : "Dm.", + "Wed." : "Dc.", + "Thu." : "Dj.", + "Fri." : "Dv.", + "Sat." : "Ds.", + "Su" : "Dg", + "Mo" : "Dl", + "Tu" : "Dm", + "We" : "Dc", + "Th" : "Dj", + "Fr" : "Dv", + "Sa" : "Ds", + "January" : "Gener", + "February" : "Febrer", + "March" : "Març", + "April" : "Abril", + "May" : "Maig", + "June" : "Juny", + "July" : "Juliol", + "August" : "Agost", + "September" : "Setembre", + "October" : "Octubre", + "November" : "Novembre", + "December" : "Desembre", + "Jan." : "Gen.", + "Feb." : "Febr.", + "Mar." : "Març", + "Apr." : "Abr", + "May." : "Maig", + "Jun." : "Juny", + "Jul." : "Jul.", + "Aug." : "Ag.", + "Sep." : "Set", + "Oct." : "Oct.", + "Nov." : "Nov.", + "Dec." : "Des.", + "Apps" : "Aplicacions", + "A valid username must be provided" : "Heu de facilitar un nom d'usuari vàlid", + "A valid password must be provided" : "Heu de facilitar una contrasenya vàlida", + "The username is already being used" : "El nom d'usuari ja està en ús", + "Login canceled by app" : "Accés cancel·lat per l'App", + "User disabled" : "Usuari desactivat", + "Help" : "Ajuda", + "Personal" : "Personal", + "Users" : "Usuaris", + "Admin" : "Administració", + "No app name specified" : "No heu especificat cap nom d'aplicació", + "Can't read file" : "No es pot llegir el fitxer", + "Application is not enabled" : "L'aplicació no està habilitada", + "Authentication error" : "Error d'autenticació", + "Token expired. Please reload page." : "El testimoni ha expirat. Torneu a carregar la pàgina.", + "Unknown user" : "Usuari desconegut", + "No database drivers (sqlite, mysql, or postgresql) installed." : "No hi ha instal·lats controladors de bases de dades (sqlite, mysql o postgresql).", + "Cannot write into \"config\" directory" : "No es pot escriure a la carpeta \"config\"", + "Cannot write into \"apps\" directory" : "No es pot escriure a la carpeta \"apps\"", + "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Això normalment es pot solucionar donant a %s permís d'escriptura a la carpeta d'aplicacions %s o inhabilitant la botiga d'aplicacions en el fitxer de configuració.", + "Cannot create \"data\" directory (%s)" : "No es pot crear la carpeta \"data\" (%s)", + "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Això normalment es pot solucionar donant a %s permís d'escriptura a la carpeta de configuració %s", + "Setting locale to %s failed" : "Ha fallat en establir la llengua a %s", + "Please install one of these locales on your system and restart your webserver." : "Siusplau, instal·li un d'aquests arxius de localització en el seu sistema, i reinicii el seu servidor web.", + "Please ask your server administrator to install the module." : "Demaneu a l'administrador del sistema que instal·li el mòdul.", + "PHP module %s not installed." : "El mòdul PHP %s no està instal·lat.", + "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Això probablement està provocat per una cau/accelerador com Zend OPcache o eAccelerator.", + "PHP modules have been installed, but they are still listed as missing?" : "S'han instal·lat mòduls PHP, però encara es llisten com una mancança?", + "Please ask your server administrator to restart the web server." : "Demaneu a l'administrador que reinici el servidor web.", + "PostgreSQL >= 9 required" : "Es requereix PostgreSQL >= 9", + "Please upgrade your database version" : "Actualitzeu la versió de la base de dades", + "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Canvieu els permisos a 0770 per tal que la carpeta no es pugui llistar per altres usuaris.", + "Data directory (%s) is readable by other users" : "La carpeta de dades (%s) és llegible per altres usuaris", + "Data directory (%s) is invalid" : "La carpeta de dades (%s) no és vàlida", + "Please check that the data directory contains a file \".ocdata\" in its root." : "Comproveu que la carpeta de dades contingui un fitxer \".ocdata\" a la seva arrel.", + "Could not obtain lock type %d on \"%s\"." : "No s'ha pogut obtenir un bloqueig tipus %d a \"%s\".", + "App directory already exists" : "La carpeta de l'aplicació ja existeix", + "Can't create app folder. Please fix permissions. %s" : "No es pot crear la carpeta de l'aplicació. Arregleu els permisos. %s", + "No source specified when installing app" : "No heu especificat la font en instal·lar l'aplicació", + "No href specified when installing app from http" : "No heu especificat href en instal·lar l'aplicació des de http", + "No path specified when installing app from local file" : "No heu seleccionat el camí en instal·lar una aplicació des d'un fitxer local", + "Archives of type %s are not supported" : "Els fitxers del tipus %s no són compatibles", + "Failed to open archive when installing app" : "Ha fallat l'obertura del fitxer en instal·lar l'aplicació", + "App does not provide an info.xml file" : "L'aplicació no proporciona un fitxer info.xml", + "App can't be installed because of not allowed code in the App" : "L'aplicació no es pot instal·lar perquè hi ha codi no autoritzat en l'aplicació", + "App can't be installed because it contains the <shipped>true</shipped> tag which is not allowed for non shipped apps" : "L'aplicació no es pot instal·lar perquè conté l'etiqueta <shipped>vertader</shipped> que no es permet per aplicacions no enviades", + "Logging" : "Iniciant", + "Recommended" : "Recomanat", + "Microsoft Windows Platform is not supported" : "La plataforma de Microsoft Windows no està soportat!", + "Storage not available" : "Emmagatzemament no disponible" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/lib/l10n/el.js b/lib/l10n/el.js new file mode 100644 index 00000000000..f983c13b6e2 --- /dev/null +++ b/lib/l10n/el.js @@ -0,0 +1,199 @@ +OC.L10N.register( + "lib", + { + "Cannot write into \"config\" directory!" : "Αδυναμία εγγραφής στον κατάλογο \"config\"!", + "This can usually be fixed by giving the webserver write access to the config directory" : "Αυτό μπορεί συνήθως να διορθωθεί παρέχοντας δικαιώματα εγγραφής για το φάκελο config στο διακομιστή δικτύου", + "See %s" : "Δείτε %s", + "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Αυτό μπορεί συνήθως να διορθωθεί %sπαρέχοντας δικαιώματα εγγραφής για το φάκελο config στο διακομιστή δικτύου%s.", + "Sample configuration detected" : "Ανιχνεύθηκε δείγμα εγκατάστασης", + "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Έχει ανιχνευθεί ότι το δείγμα εγκατάστασης έχει αντιγραφεί. Αυτό μπορεί να σπάσει την εγκατάστασή σας και δεν υποστηρίζεται. Παρακαλώ διαβάστε την τεκμηρίωση πριν εκτελέσετε αλλαγές στο config.php", + "%1$s and %2$s" : "%1$s και %2$s", + "%1$s, %2$s and %3$s" : "%1$s, %2$s και %3$s", + "%1$s, %2$s, %3$s and %4$s" : "%1$s, %2$s, %3$s και %4$s", + "%1$s, %2$s, %3$s, %4$s and %5$s" : "%1$s, %2$s, %3$s, %4$s και %5$s", + "PHP %s or higher is required." : "PHP %s ή νεώτερη απαιτείται.", + "PHP with a version lower than %s is required." : "Απαιτείται PHP παλαιότερη από την έκδοση %s.", + "Following databases are supported: %s" : " Υποστηρίζονται οι ακόλουθες βάσεις δεδομένων: %s", + "The command line tool %s could not be found" : "Το εργαλείο γραμμής εντολών %s δεν μπορεί να βρεθεί", + "The library %s is not available." : "Το %s της βιβλιοθήκης δεν είναι διαθέσιμο.", + "Library %s with a version higher than %s is required - available version %s." : "Απαιτείται βιβλιοθήκη %s νεότερη από την έκδοση %s - διαθέσιμη έκδοση %s ", + "Library %s with a version lower than %s is required - available version %s." : "Απαιτείται βιβλιοθήκη %s παλαιότερη από την έκδοση %s - διαθέσιμη έκδοση %s ", + "Following platforms are supported: %s" : "Οι ακόλουθες πλατφόρμες υποστηρίζονται: %s", + "Server version %s or higher is required." : "Απαιτείται έκδοση διακομιστή %s ή νεότερη.", + "Server version %s or lower is required." : "Απαιτείται έκδοση διακομιστή %s ή παλαιότερη.", + "Unknown filetype" : "Άγνωστος τύπος αρχείου", + "Invalid image" : "Μη έγκυρη εικόνα", + "today" : "σήμερα", + "yesterday" : "χτες", + "_%n day ago_::_%n days ago_" : ["%n ημέρα πριν","%n ημέρες πριν"], + "last month" : "τελευταίο μήνα", + "_%n month ago_::_%n months ago_" : ["πριν %n μήνα","πριν %n μήνες"], + "last year" : "τελευταίο χρόνο", + "_%n year ago_::_%n years ago_" : ["%n χρόνο πριν","%n χρόνια πριν"], + "seconds ago" : "δευτερόλεπτα πριν", + "Module with id: %s does not exist. Please enable it in your apps settings or contact your administrator." : "Το άρθρωμα με id: %s δεν υπάρχει. Παρακαλώ ενεργοποιήστε το από τις ρυθμίσεις των εφαρμογών ή επικοινωνήστε με τον διαχειριστή.", + "File name is a reserved word" : "Το όνομα αρχείου είναι λέξη που έχει δεσμευτεί", + "File name contains at least one invalid character" : "Το όνομα αρχείου περιέχει έναν τουλάχιστον μη έγκυρο χαρακτήρα", + "File name is too long" : "Το όνομα αρχείου είνια πολύ μεγάλο", + "Dot files are not allowed" : "Δεν επιτρέπονται αρχεία που ξεκινούν από τελεία - Dot ", + "Empty filename is not allowed" : "Δεν επιτρέπεται άδειο όνομα αρχείου", + "APCu" : "APCu", + "Redis" : "Redis", + "Server settings" : "Ρυθμίσεις διακομιστή", + "Sharing" : "Διαμοιρασμός", + "Encryption" : "Κρυπτογράφηση", + "Additional settings" : "Επιπρόσθετες ρυθμίσεις", + "%s enter the database username." : "%s εισάγετε το όνομα χρήστη της βάσης δεδομένων.", + "%s enter the database name." : "%s εισάγετε το όνομα της βάσης δεδομένων.", + "%s you may not use dots in the database name" : "%s μάλλον δεν χρησιμοποιείτε τελείες στο όνομα της βάσης δεδομένων", + "Oracle connection could not be established" : "Αδυναμία σύνδεσης Oracle", + "Oracle username and/or password not valid" : "Μη έγκυρος χρήστης και/ή συνθηματικό της Oracle", + "DB Error: \"%s\"" : "Σφάλμα Βάσης Δεδομένων: \"%s\"", + "Offending command was: \"%s\"" : "Η εντολη παραβατικοτητας ηταν: \"%s\"", + "You need to enter either an existing account or the administrator." : "Χρειάζεται να εισάγετε είτε έναν υπάρχον λογαριασμό ή του διαχειριστή.", + "Offending command was: \"%s\", name: %s, password: %s" : "Η εντολη παραβατικοτητας ηταν: \"%s\", ονομα: %s, κωδικος: %s", + "PostgreSQL username and/or password not valid" : "Μη έγκυρος χρήστης και/ή συνθηματικό της PostgreSQL", + "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Το Mac OS X δεν υποστηρίζεται και το %s δεν θα λειτουργήσει σωστά σε αυτή την πλατφόρμα. Χρησιμοποιείτε με δική σας ευθύνη!", + "For the best results, please consider using a GNU/Linux server instead." : "Για καλύτερα αποτελέσματα, παρακαλούμε εξετάστε την μετατροπή σε έναν διακομιστή GNU/Linux.", + "It seems that this %s instance is running on a 32-bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4 GB and is highly discouraged." : "Φαίνεται ότι η εγκατάσταση %s εκτελείται σε περιβάλλον 32-bit PHP και η επιλογη open_basedir έχει ρυθμιστεί στο αρχείο php.ini. Αυτό θα οδηγήσει σε προβλήματα με αρχεία πάνω από 4 GB και δεν συνίσταται.", + "Please remove the open_basedir setting within your php.ini or switch to 64-bit PHP." : "Παρακαλώ αφαιρέστε την ρύθμιση open_basedir μέσα στο αρχείο php.ini ή αλλάξτε σε 64-bit PHP.", + "Set an admin username." : "Εισάγετε όνομα χρήστη διαχειριστή.", + "Set an admin password." : "Εισάγετε συνθηματικό διαχειριστή.", + "Can't create or write into the data directory %s" : "Αδύνατη η δημιουργία ή συγγραφή στον κατάλογο δεδομένων %s", + "Invalid Federated Cloud ID" : "Μη έγκυρο Federated Cloud ID", + "%s shared »%s« with you" : "Ο %s διαμοιράστηκε μαζί σας το »%s«", + "%s via %s" : "%s μέσω %s", + "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", + "Sharing %s failed, because this item is already shared with user %s" : "Αποτυχία διαμοιρασμού με %s, διότι αυτό το αντικείμενο διαμοιράζεται ήδη με τον χρήστη %s", + "Sharing %s failed, because the group %s does not exist" : "Ο διαμοιρασμός του %s απέτυχε, γιατί η ομάδα χρηστών %s δεν υπάρχει", + "Sharing %s failed, because %s is not a member of the group %s" : "Ο διαμοιρασμός του %s απέτυχε, γιατί ο χρήστης %s δεν είναι μέλος της ομάδας %s", + "You need to provide a password to create a public link, only protected links are allowed" : "Πρέπει να εισάγετε έναν κωδικό για να δημιουργήσετε έναν δημόσιο σύνδεσμο. Μόνο προστατευμένοι σύνδεσμοι επιτρέπονται", + "Sharing %s failed, because sharing with links is not allowed" : "Ο διαμοιρασμός του %s απέτυχε, γιατί δεν επιτρέπεται ο διαμοιρασμός με συνδέσμους", + "Sharing %s failed, could not find %s, maybe the server is currently unreachable." : "Αποτυχία διαμοιρασμού %s, δεν βρέθηκε το %s, μπορεί ο διακομιστής να είναι προσωρινά απροσπέλαστος.", + "Share type %s is not valid for %s" : "Ο τύπος διαμοιρασμού %s δεν είναι έγκυρος για το %s", + "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Ο ορισμός δικαιωμάτων για το %s απέτυχε, γιατί τα δικαιώματα υπερτερούν αυτά που είναι ορισμένα για το %s", + "Setting permissions for %s failed, because the item was not found" : "Ο ορισμός δικαιωμάτων για το %s απέτυχε, γιατί το αντικείμενο δεν βρέθηκε", + "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "Δεν μπορεί να οριστεί ημερομηνία λήξης. Οι κοινοποιήσεις δεν μπορεί να λήγουν αργότερα από %s αφού έχουν διαμοιραστεί.", + "Cannot set expiration date. Expiration date is in the past" : "Δεν μπορεί να οριστεί ημερομηνία λήξης. Η ημερομηνία λήξης είναι στο παρελθόν", + "Cannot clear expiration date. Shares are required to have an expiration date." : "Δεν είναι σαφής η ημερομηνία λήξης. Ο διαμοιρασμός πρέπει να έχει ημερομηνία λήξης", + "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 ", + "Sharing %s failed, because the file could not be found in the file cache" : "Ο διαμοιρασμός του %s απέτυχε, γιατί το αρχείο δεν βρέθηκε στην προσωρινή αποθήκευση αρχείων", + "Could not find category \"%s\"" : "Αδυναμία εύρεσης κατηγορίας \"%s\"", + "Sunday" : "Κυριακή", + "Monday" : "Δευτέρα", + "Tuesday" : "Τρίτη", + "Wednesday" : "Τετάρτη", + "Thursday" : "Πέμπτη", + "Friday" : "Παρασκευή", + "Saturday" : "Σάββατο", + "Sun." : "Κυρ.", + "Mon." : "Δευ.", + "Tue." : "Τρί.", + "Wed." : "Τετ.", + "Thu." : "Πέμ.", + "Fri." : "Παρ.", + "Sat." : "Σαβ.", + "Su" : "Κυ", + "Mo" : "Δε", + "Tu" : "Τρ", + "We" : "Τε", + "Th" : "Πε", + "Fr" : "Πα", + "Sa" : "Σα", + "January" : "Ιανουάριος", + "February" : "Φεβρουάριος", + "March" : "Μάρτιος", + "April" : "Απρίλιος", + "May" : "Μάϊος", + "June" : "Ιούνιος", + "July" : "Ιούλιος", + "August" : "Αύγουστος", + "September" : "Σεπτέμβριος", + "October" : "Οκτώβριος", + "November" : "Νοέμβριος", + "December" : "Δεκέμβριος", + "Jan." : "Ιαν.", + "Feb." : "Φεβ.", + "Mar." : "Μαρ.", + "Apr." : "Απρ.", + "May." : "Μαι.", + "Jun." : "Ιουν.", + "Jul." : "Ιουλ.", + "Aug." : "Αυγ.", + "Sep." : "Σεπ.", + "Oct." : "Οκτ.", + "Nov." : "Νοε.", + "Dec." : "Δεκ.", + "Apps" : "Εφαρμογές", + "A valid username must be provided" : "Πρέπει να δοθεί έγκυρο όνομα χρήστη", + "A valid password must be provided" : "Πρέπει να δοθεί έγκυρο συνθηματικό", + "The username is already being used" : "Το όνομα χρήστη είναι κατειλημμένο", + "Help" : "Βοήθεια", + "Personal" : "Προσωπικά", + "Users" : "Χρήστες", + "Admin" : "Διαχείριση", + "No app name specified" : "Δεν προδιορίστηκε όνομα εφαρμογής", + "App '%s' could not be installed!" : "Δεν μπορεί να εγκατασταθεί η εφαρμογή '%s'!", + "App \"%s\" cannot be installed because the following dependencies are not fulfilled: %s" : "Αυτή η εφαρμογή %s δεν μπορεί να εγκατασταθεί διότι δεν πληρούνται οι ακόλουθες εξαρτήσεις: %s", + "File is currently busy, please try again later" : "Το αρχείο χρησιμοποιείται αυτή τη στιγμή, παρακαλώ προσπαθήστε αργότερα", + "Can't read file" : "Αδυναμία ανάγνωσης αρχείου", + "Application is not enabled" : "Δεν ενεργοποιήθηκε η εφαρμογή", + "Authentication error" : "Σφάλμα πιστοποίησης", + "Token expired. Please reload page." : "Το αναγνωριστικό έληξε. Παρακαλώ φορτώστε ξανά την σελίδα.", + "Unknown user" : "Άγνωστος χρήστης", + "No database drivers (sqlite, mysql, or postgresql) installed." : "Δεν βρέθηκαν εγκατεστημένοι οδηγοί βάσεων δεδομένων (sqlite, mysql, or postgresql).", + "Cannot write into \"config\" directory" : "Αδυναμία εγγραφής στον κατάλογο \"config\"", + "Cannot write into \"apps\" directory" : "Αδυναμία εγγραφής στον κατάλογο \"apps\"", + "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Αυτό μπορεί συνήθως να διορθωθεί %sδίνοντας διακαιώματα εγγραφής για τον κατάλογο εφαρμογών στο διακομιστή δικτύου%s ή απενεργοποιώντας το κέντρο εφαρμογών στο αρχείο config.", + "Cannot create \"data\" directory (%s)" : "Αδυναμία δημιουργίας του καταλόγου \"data\" (%s)", + "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Τα δικαιώματα πρόσβασης μπορούν συνήθως να διορθωθούν %sδίνοντας δικαιώματα εγγραφής για τον βασικό κατάλογο στο διακομιστή δικτύου%s.", + "Setting locale to %s failed" : "Ρύθμιση τοπικών ρυθμίσεων σε %s απέτυχε", + "Please install one of these locales on your system and restart your webserver." : "Παρακαλώ να εγκαταστήσετε μία από αυτές τις τοπικές ρυθμίσεις στο σύστημά σας και να επανεκκινήσετε τον διακομιστή δικτύου σας.", + "Please ask your server administrator to install the module." : "Παρακαλώ ζητήστε από το διαχειριστή του διακομιστή σας να εγκαταστήσει τη μονάδα.", + "PHP module %s not installed." : "Η μονάδα %s PHP δεν είναι εγκατεστημένη. ", + "PHP setting \"%s\" is not set to \"%s\"." : "Η ρύθμιση \"%s\"της PHP δεν είναι ορισμένη σε \"%s\".", + "mbstring.func_overload is set to \"%s\" instead of the expected value \"0\"" : "Το mbstring.func_overload έχει ορισθεί σε \"%s\" αντί για την αναμενόμενη τιμή \"0\"", + "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "Για να διορθώσετε αυτό το πρόβλημα ορίστε το <code>mbstring.func_overload</code> σε <code>0</code> στο αρχείο php.ini", + "To fix this issue update your libxml2 version and restart your web server." : "Για να διορθώσετε το σφάλμα ενημερώστε την έκδοση του libxml2 και επανεκκινήστε τον διακομιστή.", + "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "Η PHP φαίνεται να είναι ρυθμισμένη ώστε να αφαιρεί inline doc blocks. Αυτό θα καταστήσει πολλές βασικές εφαρμογές μη διαθέσιμες.", + "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Αυτό πιθανόν προκλήθηκε από προσωρινή μνήμη (cache)/επιταχυντή όπως τη Zend OPcache ή τον eAccelerator.", + "PHP modules have been installed, but they are still listed as missing?" : "Κάποιες μονάδες PHP έχουν εγκατασταθεί, αλλά είναι ακόμα καταγεγραμμένες ως απούσες;", + "Please ask your server administrator to restart the web server." : "Παρακαλώ ζητήστε από το διαχειριστή του διακομιστή σας να επανεκκινήσει το διακομιστή δικτύου σας.", + "PostgreSQL >= 9 required" : "Απαιτείται PostgreSQL >= 9", + "Please upgrade your database version" : "Παρακαλώ αναβαθμίστε την έκδοση της βάσης δεδομένων σας", + "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Παρακαλώ αλλάξτε τις ρυθμίσεις σε 0770 έτσι ώστε ο κατάλογος να μην μπορεί να προβάλλεται από άλλους χρήστες.", + "Data directory (%s) is readable by other users" : "Ο κατάλογος δεδομένων (%s) είναι διαθέσιμος προς ανάγνωση για άλλους χρήστες", + "Data directory (%s) must be an absolute path" : "Κατάλογος δεδομένων (%s) πρεπει να είναι απόλυτη η διαδρομή", + "Check the value of \"datadirectory\" in your configuration" : "Ελέγξτε την τιμή του \"Φάκελος Δεδομένων\" στις ρυθμίσεις σας", + "Data directory (%s) is invalid" : "Ο κατάλογος δεδομένων (%s) είναι άκυρος", + "Please check that the data directory contains a file \".ocdata\" in its root." : "Παρακαλώ ελέγξτε ότι ο κατάλογος δεδομένων περιέχει ένα αρχείο \".ocdata\" στη βάση του.", + "Could not obtain lock type %d on \"%s\"." : "Αδυναμία ανάκτησης τύπου κλειδιού %d στο \"%s\".", + "4-byte characters are not supported in file names" : "Χαρακτήρες 4-byte δεν υποστηρίζονται σε ονόματα αρχείων", + "App directory already exists" : "Ο κατάλογος εφαρμογών υπάρχει ήδη", + "Can't create app folder. Please fix permissions. %s" : "Δεν είναι δυνατόν να δημιουργηθεί ο φάκελος εφαρμογής. Παρακαλώ διορθώστε τις άδειες πρόσβασης. %s", + "Archive does not contain a directory named %s" : "Το αρχείο δεν περιέχει κατάλογο με το όνομα %s", + "No source specified when installing app" : "Δεν προσδιορίστηκε πηγή κατά την εγκατάσταση της εφαρμογής", + "No href specified when installing app from http" : "Δεν προσδιορίστηκε href κατά την εγκατάσταση της εφαρμογής μέσω http ", + "No path specified when installing app from local file" : "Δεν προσδιορίστηκε μονοπάτι κατά την εγκατάσταση εφαρμογής από τοπικό αρχείο", + "Archives of type %s are not supported" : "Συλλογές αρχείων τύπου %s δεν υποστηρίζονται", + "Failed to open archive when installing app" : "Αποτυχία ανοίγματος συλλογής αρχείων κατά την εγκατάσταση εφαρμογής", + "App does not provide an info.xml file" : "Η εφαρμογή δεν παρέχει αρχείο info.xml", + "App can't be installed because of not allowed code in the App" : "Η εφαρμογή δεν μπορεί να εγκατασταθεί λόγω μη-επιτρεπόμενου κώδικα μέσα στην Εφαρμογή", + "App can't be installed because it contains the <shipped>true</shipped> tag which is not allowed for non shipped apps" : "Η εφαρμογή δεν μπορεί να εγκατασταθεί επειδή περιέχει την ετικέτα <shipped>σωστή</shipped> που δεν επιτρέπεται για μη-ενσωματωμένες εφαρμογές", + "Recommended" : "Προτείνεται", + "Microsoft Windows Platform is not supported" : "Η Πλατφόρμα Microsoft Windows δεν υποστηρίζεται", + "Storage not available" : "Μη διαθέσιμος αποθηκευτικός χώρος" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/lib/l10n/el.json b/lib/l10n/el.json new file mode 100644 index 00000000000..c12a116e334 --- /dev/null +++ b/lib/l10n/el.json @@ -0,0 +1,197 @@ +{ "translations": { + "Cannot write into \"config\" directory!" : "Αδυναμία εγγραφής στον κατάλογο \"config\"!", + "This can usually be fixed by giving the webserver write access to the config directory" : "Αυτό μπορεί συνήθως να διορθωθεί παρέχοντας δικαιώματα εγγραφής για το φάκελο config στο διακομιστή δικτύου", + "See %s" : "Δείτε %s", + "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Αυτό μπορεί συνήθως να διορθωθεί %sπαρέχοντας δικαιώματα εγγραφής για το φάκελο config στο διακομιστή δικτύου%s.", + "Sample configuration detected" : "Ανιχνεύθηκε δείγμα εγκατάστασης", + "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Έχει ανιχνευθεί ότι το δείγμα εγκατάστασης έχει αντιγραφεί. Αυτό μπορεί να σπάσει την εγκατάστασή σας και δεν υποστηρίζεται. Παρακαλώ διαβάστε την τεκμηρίωση πριν εκτελέσετε αλλαγές στο config.php", + "%1$s and %2$s" : "%1$s και %2$s", + "%1$s, %2$s and %3$s" : "%1$s, %2$s και %3$s", + "%1$s, %2$s, %3$s and %4$s" : "%1$s, %2$s, %3$s και %4$s", + "%1$s, %2$s, %3$s, %4$s and %5$s" : "%1$s, %2$s, %3$s, %4$s και %5$s", + "PHP %s or higher is required." : "PHP %s ή νεώτερη απαιτείται.", + "PHP with a version lower than %s is required." : "Απαιτείται PHP παλαιότερη από την έκδοση %s.", + "Following databases are supported: %s" : " Υποστηρίζονται οι ακόλουθες βάσεις δεδομένων: %s", + "The command line tool %s could not be found" : "Το εργαλείο γραμμής εντολών %s δεν μπορεί να βρεθεί", + "The library %s is not available." : "Το %s της βιβλιοθήκης δεν είναι διαθέσιμο.", + "Library %s with a version higher than %s is required - available version %s." : "Απαιτείται βιβλιοθήκη %s νεότερη από την έκδοση %s - διαθέσιμη έκδοση %s ", + "Library %s with a version lower than %s is required - available version %s." : "Απαιτείται βιβλιοθήκη %s παλαιότερη από την έκδοση %s - διαθέσιμη έκδοση %s ", + "Following platforms are supported: %s" : "Οι ακόλουθες πλατφόρμες υποστηρίζονται: %s", + "Server version %s or higher is required." : "Απαιτείται έκδοση διακομιστή %s ή νεότερη.", + "Server version %s or lower is required." : "Απαιτείται έκδοση διακομιστή %s ή παλαιότερη.", + "Unknown filetype" : "Άγνωστος τύπος αρχείου", + "Invalid image" : "Μη έγκυρη εικόνα", + "today" : "σήμερα", + "yesterday" : "χτες", + "_%n day ago_::_%n days ago_" : ["%n ημέρα πριν","%n ημέρες πριν"], + "last month" : "τελευταίο μήνα", + "_%n month ago_::_%n months ago_" : ["πριν %n μήνα","πριν %n μήνες"], + "last year" : "τελευταίο χρόνο", + "_%n year ago_::_%n years ago_" : ["%n χρόνο πριν","%n χρόνια πριν"], + "seconds ago" : "δευτερόλεπτα πριν", + "Module with id: %s does not exist. Please enable it in your apps settings or contact your administrator." : "Το άρθρωμα με id: %s δεν υπάρχει. Παρακαλώ ενεργοποιήστε το από τις ρυθμίσεις των εφαρμογών ή επικοινωνήστε με τον διαχειριστή.", + "File name is a reserved word" : "Το όνομα αρχείου είναι λέξη που έχει δεσμευτεί", + "File name contains at least one invalid character" : "Το όνομα αρχείου περιέχει έναν τουλάχιστον μη έγκυρο χαρακτήρα", + "File name is too long" : "Το όνομα αρχείου είνια πολύ μεγάλο", + "Dot files are not allowed" : "Δεν επιτρέπονται αρχεία που ξεκινούν από τελεία - Dot ", + "Empty filename is not allowed" : "Δεν επιτρέπεται άδειο όνομα αρχείου", + "APCu" : "APCu", + "Redis" : "Redis", + "Server settings" : "Ρυθμίσεις διακομιστή", + "Sharing" : "Διαμοιρασμός", + "Encryption" : "Κρυπτογράφηση", + "Additional settings" : "Επιπρόσθετες ρυθμίσεις", + "%s enter the database username." : "%s εισάγετε το όνομα χρήστη της βάσης δεδομένων.", + "%s enter the database name." : "%s εισάγετε το όνομα της βάσης δεδομένων.", + "%s you may not use dots in the database name" : "%s μάλλον δεν χρησιμοποιείτε τελείες στο όνομα της βάσης δεδομένων", + "Oracle connection could not be established" : "Αδυναμία σύνδεσης Oracle", + "Oracle username and/or password not valid" : "Μη έγκυρος χρήστης και/ή συνθηματικό της Oracle", + "DB Error: \"%s\"" : "Σφάλμα Βάσης Δεδομένων: \"%s\"", + "Offending command was: \"%s\"" : "Η εντολη παραβατικοτητας ηταν: \"%s\"", + "You need to enter either an existing account or the administrator." : "Χρειάζεται να εισάγετε είτε έναν υπάρχον λογαριασμό ή του διαχειριστή.", + "Offending command was: \"%s\", name: %s, password: %s" : "Η εντολη παραβατικοτητας ηταν: \"%s\", ονομα: %s, κωδικος: %s", + "PostgreSQL username and/or password not valid" : "Μη έγκυρος χρήστης και/ή συνθηματικό της PostgreSQL", + "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Το Mac OS X δεν υποστηρίζεται και το %s δεν θα λειτουργήσει σωστά σε αυτή την πλατφόρμα. Χρησιμοποιείτε με δική σας ευθύνη!", + "For the best results, please consider using a GNU/Linux server instead." : "Για καλύτερα αποτελέσματα, παρακαλούμε εξετάστε την μετατροπή σε έναν διακομιστή GNU/Linux.", + "It seems that this %s instance is running on a 32-bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4 GB and is highly discouraged." : "Φαίνεται ότι η εγκατάσταση %s εκτελείται σε περιβάλλον 32-bit PHP και η επιλογη open_basedir έχει ρυθμιστεί στο αρχείο php.ini. Αυτό θα οδηγήσει σε προβλήματα με αρχεία πάνω από 4 GB και δεν συνίσταται.", + "Please remove the open_basedir setting within your php.ini or switch to 64-bit PHP." : "Παρακαλώ αφαιρέστε την ρύθμιση open_basedir μέσα στο αρχείο php.ini ή αλλάξτε σε 64-bit PHP.", + "Set an admin username." : "Εισάγετε όνομα χρήστη διαχειριστή.", + "Set an admin password." : "Εισάγετε συνθηματικό διαχειριστή.", + "Can't create or write into the data directory %s" : "Αδύνατη η δημιουργία ή συγγραφή στον κατάλογο δεδομένων %s", + "Invalid Federated Cloud ID" : "Μη έγκυρο Federated Cloud ID", + "%s shared »%s« with you" : "Ο %s διαμοιράστηκε μαζί σας το »%s«", + "%s via %s" : "%s μέσω %s", + "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", + "Sharing %s failed, because this item is already shared with user %s" : "Αποτυχία διαμοιρασμού με %s, διότι αυτό το αντικείμενο διαμοιράζεται ήδη με τον χρήστη %s", + "Sharing %s failed, because the group %s does not exist" : "Ο διαμοιρασμός του %s απέτυχε, γιατί η ομάδα χρηστών %s δεν υπάρχει", + "Sharing %s failed, because %s is not a member of the group %s" : "Ο διαμοιρασμός του %s απέτυχε, γιατί ο χρήστης %s δεν είναι μέλος της ομάδας %s", + "You need to provide a password to create a public link, only protected links are allowed" : "Πρέπει να εισάγετε έναν κωδικό για να δημιουργήσετε έναν δημόσιο σύνδεσμο. Μόνο προστατευμένοι σύνδεσμοι επιτρέπονται", + "Sharing %s failed, because sharing with links is not allowed" : "Ο διαμοιρασμός του %s απέτυχε, γιατί δεν επιτρέπεται ο διαμοιρασμός με συνδέσμους", + "Sharing %s failed, could not find %s, maybe the server is currently unreachable." : "Αποτυχία διαμοιρασμού %s, δεν βρέθηκε το %s, μπορεί ο διακομιστής να είναι προσωρινά απροσπέλαστος.", + "Share type %s is not valid for %s" : "Ο τύπος διαμοιρασμού %s δεν είναι έγκυρος για το %s", + "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Ο ορισμός δικαιωμάτων για το %s απέτυχε, γιατί τα δικαιώματα υπερτερούν αυτά που είναι ορισμένα για το %s", + "Setting permissions for %s failed, because the item was not found" : "Ο ορισμός δικαιωμάτων για το %s απέτυχε, γιατί το αντικείμενο δεν βρέθηκε", + "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "Δεν μπορεί να οριστεί ημερομηνία λήξης. Οι κοινοποιήσεις δεν μπορεί να λήγουν αργότερα από %s αφού έχουν διαμοιραστεί.", + "Cannot set expiration date. Expiration date is in the past" : "Δεν μπορεί να οριστεί ημερομηνία λήξης. Η ημερομηνία λήξης είναι στο παρελθόν", + "Cannot clear expiration date. Shares are required to have an expiration date." : "Δεν είναι σαφής η ημερομηνία λήξης. Ο διαμοιρασμός πρέπει να έχει ημερομηνία λήξης", + "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 ", + "Sharing %s failed, because the file could not be found in the file cache" : "Ο διαμοιρασμός του %s απέτυχε, γιατί το αρχείο δεν βρέθηκε στην προσωρινή αποθήκευση αρχείων", + "Could not find category \"%s\"" : "Αδυναμία εύρεσης κατηγορίας \"%s\"", + "Sunday" : "Κυριακή", + "Monday" : "Δευτέρα", + "Tuesday" : "Τρίτη", + "Wednesday" : "Τετάρτη", + "Thursday" : "Πέμπτη", + "Friday" : "Παρασκευή", + "Saturday" : "Σάββατο", + "Sun." : "Κυρ.", + "Mon." : "Δευ.", + "Tue." : "Τρί.", + "Wed." : "Τετ.", + "Thu." : "Πέμ.", + "Fri." : "Παρ.", + "Sat." : "Σαβ.", + "Su" : "Κυ", + "Mo" : "Δε", + "Tu" : "Τρ", + "We" : "Τε", + "Th" : "Πε", + "Fr" : "Πα", + "Sa" : "Σα", + "January" : "Ιανουάριος", + "February" : "Φεβρουάριος", + "March" : "Μάρτιος", + "April" : "Απρίλιος", + "May" : "Μάϊος", + "June" : "Ιούνιος", + "July" : "Ιούλιος", + "August" : "Αύγουστος", + "September" : "Σεπτέμβριος", + "October" : "Οκτώβριος", + "November" : "Νοέμβριος", + "December" : "Δεκέμβριος", + "Jan." : "Ιαν.", + "Feb." : "Φεβ.", + "Mar." : "Μαρ.", + "Apr." : "Απρ.", + "May." : "Μαι.", + "Jun." : "Ιουν.", + "Jul." : "Ιουλ.", + "Aug." : "Αυγ.", + "Sep." : "Σεπ.", + "Oct." : "Οκτ.", + "Nov." : "Νοε.", + "Dec." : "Δεκ.", + "Apps" : "Εφαρμογές", + "A valid username must be provided" : "Πρέπει να δοθεί έγκυρο όνομα χρήστη", + "A valid password must be provided" : "Πρέπει να δοθεί έγκυρο συνθηματικό", + "The username is already being used" : "Το όνομα χρήστη είναι κατειλημμένο", + "Help" : "Βοήθεια", + "Personal" : "Προσωπικά", + "Users" : "Χρήστες", + "Admin" : "Διαχείριση", + "No app name specified" : "Δεν προδιορίστηκε όνομα εφαρμογής", + "App '%s' could not be installed!" : "Δεν μπορεί να εγκατασταθεί η εφαρμογή '%s'!", + "App \"%s\" cannot be installed because the following dependencies are not fulfilled: %s" : "Αυτή η εφαρμογή %s δεν μπορεί να εγκατασταθεί διότι δεν πληρούνται οι ακόλουθες εξαρτήσεις: %s", + "File is currently busy, please try again later" : "Το αρχείο χρησιμοποιείται αυτή τη στιγμή, παρακαλώ προσπαθήστε αργότερα", + "Can't read file" : "Αδυναμία ανάγνωσης αρχείου", + "Application is not enabled" : "Δεν ενεργοποιήθηκε η εφαρμογή", + "Authentication error" : "Σφάλμα πιστοποίησης", + "Token expired. Please reload page." : "Το αναγνωριστικό έληξε. Παρακαλώ φορτώστε ξανά την σελίδα.", + "Unknown user" : "Άγνωστος χρήστης", + "No database drivers (sqlite, mysql, or postgresql) installed." : "Δεν βρέθηκαν εγκατεστημένοι οδηγοί βάσεων δεδομένων (sqlite, mysql, or postgresql).", + "Cannot write into \"config\" directory" : "Αδυναμία εγγραφής στον κατάλογο \"config\"", + "Cannot write into \"apps\" directory" : "Αδυναμία εγγραφής στον κατάλογο \"apps\"", + "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Αυτό μπορεί συνήθως να διορθωθεί %sδίνοντας διακαιώματα εγγραφής για τον κατάλογο εφαρμογών στο διακομιστή δικτύου%s ή απενεργοποιώντας το κέντρο εφαρμογών στο αρχείο config.", + "Cannot create \"data\" directory (%s)" : "Αδυναμία δημιουργίας του καταλόγου \"data\" (%s)", + "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Τα δικαιώματα πρόσβασης μπορούν συνήθως να διορθωθούν %sδίνοντας δικαιώματα εγγραφής για τον βασικό κατάλογο στο διακομιστή δικτύου%s.", + "Setting locale to %s failed" : "Ρύθμιση τοπικών ρυθμίσεων σε %s απέτυχε", + "Please install one of these locales on your system and restart your webserver." : "Παρακαλώ να εγκαταστήσετε μία από αυτές τις τοπικές ρυθμίσεις στο σύστημά σας και να επανεκκινήσετε τον διακομιστή δικτύου σας.", + "Please ask your server administrator to install the module." : "Παρακαλώ ζητήστε από το διαχειριστή του διακομιστή σας να εγκαταστήσει τη μονάδα.", + "PHP module %s not installed." : "Η μονάδα %s PHP δεν είναι εγκατεστημένη. ", + "PHP setting \"%s\" is not set to \"%s\"." : "Η ρύθμιση \"%s\"της PHP δεν είναι ορισμένη σε \"%s\".", + "mbstring.func_overload is set to \"%s\" instead of the expected value \"0\"" : "Το mbstring.func_overload έχει ορισθεί σε \"%s\" αντί για την αναμενόμενη τιμή \"0\"", + "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "Για να διορθώσετε αυτό το πρόβλημα ορίστε το <code>mbstring.func_overload</code> σε <code>0</code> στο αρχείο php.ini", + "To fix this issue update your libxml2 version and restart your web server." : "Για να διορθώσετε το σφάλμα ενημερώστε την έκδοση του libxml2 και επανεκκινήστε τον διακομιστή.", + "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "Η PHP φαίνεται να είναι ρυθμισμένη ώστε να αφαιρεί inline doc blocks. Αυτό θα καταστήσει πολλές βασικές εφαρμογές μη διαθέσιμες.", + "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Αυτό πιθανόν προκλήθηκε από προσωρινή μνήμη (cache)/επιταχυντή όπως τη Zend OPcache ή τον eAccelerator.", + "PHP modules have been installed, but they are still listed as missing?" : "Κάποιες μονάδες PHP έχουν εγκατασταθεί, αλλά είναι ακόμα καταγεγραμμένες ως απούσες;", + "Please ask your server administrator to restart the web server." : "Παρακαλώ ζητήστε από το διαχειριστή του διακομιστή σας να επανεκκινήσει το διακομιστή δικτύου σας.", + "PostgreSQL >= 9 required" : "Απαιτείται PostgreSQL >= 9", + "Please upgrade your database version" : "Παρακαλώ αναβαθμίστε την έκδοση της βάσης δεδομένων σας", + "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Παρακαλώ αλλάξτε τις ρυθμίσεις σε 0770 έτσι ώστε ο κατάλογος να μην μπορεί να προβάλλεται από άλλους χρήστες.", + "Data directory (%s) is readable by other users" : "Ο κατάλογος δεδομένων (%s) είναι διαθέσιμος προς ανάγνωση για άλλους χρήστες", + "Data directory (%s) must be an absolute path" : "Κατάλογος δεδομένων (%s) πρεπει να είναι απόλυτη η διαδρομή", + "Check the value of \"datadirectory\" in your configuration" : "Ελέγξτε την τιμή του \"Φάκελος Δεδομένων\" στις ρυθμίσεις σας", + "Data directory (%s) is invalid" : "Ο κατάλογος δεδομένων (%s) είναι άκυρος", + "Please check that the data directory contains a file \".ocdata\" in its root." : "Παρακαλώ ελέγξτε ότι ο κατάλογος δεδομένων περιέχει ένα αρχείο \".ocdata\" στη βάση του.", + "Could not obtain lock type %d on \"%s\"." : "Αδυναμία ανάκτησης τύπου κλειδιού %d στο \"%s\".", + "4-byte characters are not supported in file names" : "Χαρακτήρες 4-byte δεν υποστηρίζονται σε ονόματα αρχείων", + "App directory already exists" : "Ο κατάλογος εφαρμογών υπάρχει ήδη", + "Can't create app folder. Please fix permissions. %s" : "Δεν είναι δυνατόν να δημιουργηθεί ο φάκελος εφαρμογής. Παρακαλώ διορθώστε τις άδειες πρόσβασης. %s", + "Archive does not contain a directory named %s" : "Το αρχείο δεν περιέχει κατάλογο με το όνομα %s", + "No source specified when installing app" : "Δεν προσδιορίστηκε πηγή κατά την εγκατάσταση της εφαρμογής", + "No href specified when installing app from http" : "Δεν προσδιορίστηκε href κατά την εγκατάσταση της εφαρμογής μέσω http ", + "No path specified when installing app from local file" : "Δεν προσδιορίστηκε μονοπάτι κατά την εγκατάσταση εφαρμογής από τοπικό αρχείο", + "Archives of type %s are not supported" : "Συλλογές αρχείων τύπου %s δεν υποστηρίζονται", + "Failed to open archive when installing app" : "Αποτυχία ανοίγματος συλλογής αρχείων κατά την εγκατάσταση εφαρμογής", + "App does not provide an info.xml file" : "Η εφαρμογή δεν παρέχει αρχείο info.xml", + "App can't be installed because of not allowed code in the App" : "Η εφαρμογή δεν μπορεί να εγκατασταθεί λόγω μη-επιτρεπόμενου κώδικα μέσα στην Εφαρμογή", + "App can't be installed because it contains the <shipped>true</shipped> tag which is not allowed for non shipped apps" : "Η εφαρμογή δεν μπορεί να εγκατασταθεί επειδή περιέχει την ετικέτα <shipped>σωστή</shipped> που δεν επιτρέπεται για μη-ενσωματωμένες εφαρμογές", + "Recommended" : "Προτείνεται", + "Microsoft Windows Platform is not supported" : "Η Πλατφόρμα Microsoft Windows δεν υποστηρίζεται", + "Storage not available" : "Μη διαθέσιμος αποθηκευτικός χώρος" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/lib/private/AppFramework/Http/Request.php b/lib/private/AppFramework/Http/Request.php index 62d7fc7ed30..404c31879d2 100644 --- a/lib/private/AppFramework/Http/Request.php +++ b/lib/private/AppFramework/Http/Request.php @@ -490,7 +490,7 @@ class Request implements \ArrayAccess, \Countable, IRequest { * @return bool */ private function cookieCheckRequired() { - if($this->getCookie(session_name()) === null && $this->getCookie('oc_token') === null) { + if($this->getCookie(session_name()) === null && $this->getCookie('nc_token') === null) { return false; } diff --git a/lib/private/Federation/CloudId.php b/lib/private/Federation/CloudId.php new file mode 100644 index 00000000000..6ba4ff9166b --- /dev/null +++ b/lib/private/Federation/CloudId.php @@ -0,0 +1,76 @@ +<?php +/** + * @copyright Copyright (c) 2017, Robin Appelman <robin@icewind.nl> + * + * @license GNU AGPL version 3 or any later version + * + * 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/> + * + */ + +namespace OC\Federation; + +use OCP\Federation\ICloudId; + +class CloudId implements ICloudId { + /** @var string */ + private $id; + /** @var string */ + private $user; + /** @var string */ + private $remote; + + /** + * CloudId constructor. + * + * @param string $id + * @param string $user + * @param string $remote + */ + public function __construct($id, $user, $remote) { + $this->id = $id; + $this->user = $user; + $this->remote = $remote; + } + + /** + * The full remote cloud id + * + * @return string + */ + public function getId() { + return $this->id; + } + + public function getDisplayId() { + return str_replace('https://', '', str_replace('http://', '', $this->getId())); + } + + /** + * The username on the remote server + * + * @return string + */ + public function getUser() { + return $this->user; + } + + /** + * The base address of the remote server + * + * @return string + */ + public function getRemote() { + return $this->remote; + } +} diff --git a/lib/private/Federation/CloudIdManager.php b/lib/private/Federation/CloudIdManager.php new file mode 100644 index 00000000000..45cc69b306e --- /dev/null +++ b/lib/private/Federation/CloudIdManager.php @@ -0,0 +1,109 @@ +<?php +/** + * @copyright Copyright (c) 2017, Robin Appelman <robin@icewind.nl> + * + * @license GNU AGPL version 3 or any later version + * + * 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/> + * + */ + +namespace OC\Federation; + +use OCP\Federation\ICloudId; +use OCP\Federation\ICloudIdManager; + +class CloudIdManager implements ICloudIdManager { + /** + * @param string $cloudId + * @return ICloudId + */ + public function resolveCloudId($cloudId) { + // TODO magic here to get the url and user instead of just splitting on @ + + if (!$this->isValidCloudId($cloudId)) { + throw new \InvalidArgumentException('Invalid cloud id'); + } + + // Find the first character that is not allowed in user names + $id = $this->fixRemoteURL($cloudId); + $posSlash = strpos($id, '/'); + $posColon = strpos($id, ':'); + + if ($posSlash === false && $posColon === false) { + $invalidPos = strlen($id); + } else if ($posSlash === false) { + $invalidPos = $posColon; + } else if ($posColon === false) { + $invalidPos = $posSlash; + } else { + $invalidPos = min($posSlash, $posColon); + } + + // Find the last @ before $invalidPos + $pos = $lastAtPos = 0; + while ($lastAtPos !== false && $lastAtPos <= $invalidPos) { + $pos = $lastAtPos; + $lastAtPos = strpos($id, '@', $pos + 1); + } + + if ($pos !== false) { + $user = substr($id, 0, $pos); + $remote = substr($id, $pos + 1); + if (!empty($user) && !empty($remote)) { + return new CloudId($id, $user, $remote); + } + } + throw new \InvalidArgumentException('Invalid cloud id'); + } + + /** + * @param string $user + * @param string $remote + * @return CloudId + */ + public function getCloudId($user, $remote) { + // TODO check what the correct url is for remote (asking the remote) + return new CloudId($user. '@' . $remote, $user, $remote); + } + + /** + * Strips away a potential file names and trailing slashes: + * - http://localhost + * - http://localhost/ + * - http://localhost/index.php + * - http://localhost/index.php/s/{shareToken} + * + * all return: http://localhost + * + * @param string $remote + * @return string + */ + protected function fixRemoteURL($remote) { + $remote = str_replace('\\', '/', $remote); + if ($fileNamePosition = strpos($remote, '/index.php')) { + $remote = substr($remote, 0, $fileNamePosition); + } + $remote = rtrim($remote, '/'); + + return $remote; + } + + /** + * @param string $cloudId + * @return bool + */ + public function isValidCloudId($cloudId) { + return strpos($cloudId, '@') !== false; + } +} diff --git a/lib/private/Lockdown/Filesystem/NullStorage.php b/lib/private/Lockdown/Filesystem/NullStorage.php index 967b6d2c6e7..ea911b90064 100644 --- a/lib/private/Lockdown/Filesystem/NullStorage.php +++ b/lib/private/Lockdown/Filesystem/NullStorage.php @@ -20,6 +20,7 @@ namespace OC\Lockdown\Filesystem; use Icewind\Streams\IteratorDirectory; +use OC\Files\FileInfo; use OC\Files\Storage\Common; class NullStorage extends Common { @@ -128,7 +129,7 @@ class NullStorage extends Common { } public function free_space($path) { - return 0; + return FileInfo::SPACE_UNKNOWN; } public function touch($path, $mtime = null) { diff --git a/lib/private/Log.php b/lib/private/Log.php index fddd3593127..bcaa788603a 100644 --- a/lib/private/Log.php +++ b/lib/private/Log.php @@ -88,7 +88,8 @@ class Log implements ILogger { 'decrypt', //LoginController - 'tryLogin' + 'tryLogin', + 'confirmPassword', ]; /** diff --git a/lib/private/Server.php b/lib/private/Server.php index 3c716ae6ce6..bcbe23b0181 100644 --- a/lib/private/Server.php +++ b/lib/private/Server.php @@ -52,6 +52,7 @@ use OC\Diagnostics\EventLogger; use OC\Diagnostics\NullEventLogger; use OC\Diagnostics\NullQueryLogger; use OC\Diagnostics\QueryLogger; +use OC\Federation\CloudIdManager; use OC\Files\Config\UserMountCache; use OC\Files\Config\UserMountCacheListener; use OC\Files\Mount\CacheMountProvider; @@ -90,6 +91,7 @@ use OC\Security\TrustedDomainHelper; use OC\Session\CryptoWrapper; use OC\Tagging\TagMapper; use OCA\Theming\ThemingDefaults; +use OCP\Federation\ICloudIdManager; use OCP\Authentication\LoginCredentials\IStore; use OCP\IL10N; use OCP\IServerContainer; @@ -825,6 +827,10 @@ class Server extends ServerContainer implements IServerContainer { return new LockdownManager(); }); + $this->registerService(ICloudIdManager::class, function (Server $c) { + return new CloudIdManager(); + }); + /* To trick DI since we don't extend the DIContainer here */ $this->registerService(CleanPreviewsBackgroundJob::class, function (Server $c) { return new CleanPreviewsBackgroundJob( @@ -1570,4 +1576,11 @@ class Server extends ServerContainer implements IServerContainer { public function getLockdownManager() { return $this->query('LockdownManager'); } + + /** + * @return \OCP\Federation\ICloudIdManager + */ + public function getCloudIdManager() { + return $this->query(ICloudIdManager::class); + } } diff --git a/lib/private/Setup.php b/lib/private/Setup.php index d9997767684..321e8ea4c66 100644 --- a/lib/private/Setup.php +++ b/lib/private/Setup.php @@ -357,6 +357,7 @@ class Setup { $config = \OC::$server->getConfig(); $config->setAppValue('core', 'installedat', microtime(true)); $config->setAppValue('core', 'lastupdatedat', microtime(true)); + $config->setAppValue('core', 'vendor', $this->getVendor()); $group =\OC::$server->getGroupManager()->createGroup('admin'); $group->addUser($user); @@ -497,4 +498,18 @@ class Setup { file_put_contents($baseDir . '/.htaccess', $content); file_put_contents($baseDir . '/index.html', ''); } + + /** + * Return vendor from which this version was published + * + * @return string Get the vendor + * + * Copy of \OC\Updater::getVendor() + */ + private function getVendor() { + // this should really be a JSON file + require \OC::$SERVERROOT . '/version.php'; + /** @var string $vendor */ + return (string) $vendor; + } } diff --git a/lib/private/Share/Helper.php b/lib/private/Share/Helper.php index 20aaa793728..a1a56077d40 100644 --- a/lib/private/Share/Helper.php +++ b/lib/private/Share/Helper.php @@ -249,46 +249,14 @@ class Helper extends \OC\Share\Constants { * @throws HintException */ public static function splitUserRemote($id) { - if (strpos($id, '@') === false) { + try { + $cloudId = \OC::$server->getCloudIdManager()->resolveCloudId($id); + return [$cloudId->getUser(), $cloudId->getRemote()]; + } catch (\InvalidArgumentException $e) { $l = \OC::$server->getL10N('core'); $hint = $l->t('Invalid Federated Cloud ID'); - throw new HintException('Invalid Federated Cloud ID', $hint); + throw new HintException('Invalid Federated Cloud ID', $hint, 0, $e); } - - // Find the first character that is not allowed in user names - $id = str_replace('\\', '/', $id); - $posSlash = strpos($id, '/'); - $posColon = strpos($id, ':'); - - if ($posSlash === false && $posColon === false) { - $invalidPos = strlen($id); - } else if ($posSlash === false) { - $invalidPos = $posColon; - } else if ($posColon === false) { - $invalidPos = $posSlash; - } else { - $invalidPos = min($posSlash, $posColon); - } - - // Find the last @ before $invalidPos - $pos = $lastAtPos = 0; - while ($lastAtPos !== false && $lastAtPos <= $invalidPos) { - $pos = $lastAtPos; - $lastAtPos = strpos($id, '@', $pos + 1); - } - - if ($pos !== false) { - $user = substr($id, 0, $pos); - $remote = substr($id, $pos + 1); - $remote = self::fixRemoteURL($remote); - if (!empty($user) && !empty($remote)) { - return array($user, $remote); - } - } - - $l = \OC::$server->getL10N('core'); - $hint = $l->t('Invalid Federated Cloud ID'); - throw new HintException('Invalid Fededrated Cloud ID', $hint); } /** diff --git a/lib/private/Share20/ProviderFactory.php b/lib/private/Share20/ProviderFactory.php index 3f277a852b3..87d9d221810 100644 --- a/lib/private/Share20/ProviderFactory.php +++ b/lib/private/Share20/ProviderFactory.php @@ -96,7 +96,8 @@ class ProviderFactory implements IProviderFactory { $l = $this->serverContainer->getL10N('federatedfilessharing'); $addressHandler = new AddressHandler( $this->serverContainer->getURLGenerator(), - $l + $l, + $this->serverContainer->getCloudIdManager() ); $discoveryManager = new DiscoveryManager( $this->serverContainer->getMemCacheFactory(), @@ -121,7 +122,8 @@ class ProviderFactory implements IProviderFactory { $this->serverContainer->getLogger(), $this->serverContainer->getLazyRootFolder(), $this->serverContainer->getConfig(), - $this->serverContainer->getUserManager() + $this->serverContainer->getUserManager(), + $this->serverContainer->getCloudIdManager() ); } diff --git a/lib/private/Template/CSSResourceLocator.php b/lib/private/Template/CSSResourceLocator.php index b306e078cd2..3a474a1ecfd 100644 --- a/lib/private/Template/CSSResourceLocator.php +++ b/lib/private/Template/CSSResourceLocator.php @@ -91,11 +91,11 @@ class CSSResourceLocator extends ResourceLocator { $this->append($root, $this->scssCacher->getCachedSCSS($app, $file), false); return true; } else { - $this->logger->error('Failed to compile and/or save '.$root.'/'.$file, ['app' => 'core']); + $this->logger->warning('Failed to compile and/or save '.$root.'/'.$file, ['app' => 'core']); return false; } } else { - $this->logger->error('Scss is disabled for '.$root.'/'.$file.', ignoring', ['app' => 'core']); + $this->logger->debug('Scss is disabled for '.$root.'/'.$file.', ignoring', ['app' => 'core']); return true; } } diff --git a/lib/private/Template/ResourceLocator.php b/lib/private/Template/ResourceLocator.php index 420317d27ac..e22ebdcab7d 100755 --- a/lib/private/Template/ResourceLocator.php +++ b/lib/private/Template/ResourceLocator.php @@ -75,7 +75,7 @@ abstract class ResourceLocator { $this->doFind($resource); } catch (ResourceNotFoundException $e) { $resourceApp = substr($resource, 0, strpos($resource, '/')); - $this->logger->error('Could not find resource file "' . $e->getResourcePath() . '"', ['app' => $resourceApp]); + $this->logger->debug('Could not find resource file "' . $e->getResourcePath() . '"', ['app' => $resourceApp]); } } if (!empty($this->theme)) { @@ -84,7 +84,7 @@ abstract class ResourceLocator { $this->doFindTheme($resource); } catch (ResourceNotFoundException $e) { $resourceApp = substr($resource, 0, strpos($resource, '/')); - $this->logger->error('Could not find resource file "' . $e->getResourcePath() . '"', ['app' => $resourceApp]); + $this->logger->debug('Could not find resource file "' . $e->getResourcePath() . '"', ['app' => $resourceApp]); } } } diff --git a/lib/private/TemplateLayout.php b/lib/private/TemplateLayout.php index 7ded109f76b..19fc9462185 100644 --- a/lib/private/TemplateLayout.php +++ b/lib/private/TemplateLayout.php @@ -164,11 +164,15 @@ class TemplateLayout extends \OC_Template { // Do not load scss for update, errors, installation or login page if(\OC::$server->getSystemConfig()->getValue('installed', false) && !\OCP\Util::needUpgrade() - && strpos(\OC::$server->getRequest()->getRequestUri(), \OC::$server->getURLGenerator()->linkToRoute('core.login.tryLogin')) !== 0) { + && !preg_match('/^\/login/', \OC::$server->getRequest()->getPathInfo())) { $cssFiles = self::findStylesheetFiles(\OC_Util::$styles); } else { + // If we ignore the scss compiler, + // we need to load the guest css fallback + \OC_Util::addStyle('guest'); $cssFiles = self::findStylesheetFiles(\OC_Util::$styles, false); } + $this->assign('cssfiles', array()); $this->assign('printcssfiles', []); $this->assign('versionHash', self::$versionHash); diff --git a/lib/private/Updater.php b/lib/private/Updater.php index a66d49941cd..30a9a80cef4 100644 --- a/lib/private/Updater.php +++ b/lib/private/Updater.php @@ -157,13 +157,13 @@ class Updater extends BasicEmitter { /** * Return version from which this version is allowed to upgrade from * - * @return string allowed previous version + * @return array allowed previous versions per vendor */ - private function getAllowedPreviousVersion() { + private function getAllowedPreviousVersions() { // this should really be a JSON file require \OC::$SERVERROOT . '/version.php'; /** @var array $OC_VersionCanBeUpgradedFrom */ - return implode('.', $OC_VersionCanBeUpgradedFrom); + return $OC_VersionCanBeUpgradedFrom; } /** @@ -182,26 +182,22 @@ class Updater extends BasicEmitter { * Whether an upgrade to a specified version is possible * @param string $oldVersion * @param string $newVersion - * @param string $allowedPreviousVersion + * @param array $allowedPreviousVersions * @return bool */ - public function isUpgradePossible($oldVersion, $newVersion, $allowedPreviousVersion) { - $allowedUpgrade = (version_compare($allowedPreviousVersion, $oldVersion, '<=') - && (version_compare($oldVersion, $newVersion, '<=') || $this->config->getSystemValue('debug', false))); - - if ($allowedUpgrade) { - return $allowedUpgrade; + public function isUpgradePossible($oldVersion, $newVersion, array $allowedPreviousVersions) { + $version = explode('.', $oldVersion); + $majorMinor = $version[0] . '.' . $version[1]; + + $currentVendor = $this->config->getAppValue('core', 'vendor', ''); + if ($currentVendor === 'nextcloud') { + return isset($allowedPreviousVersions[$currentVendor][$majorMinor]) + && (version_compare($oldVersion, $newVersion, '<=') || + $this->config->getSystemValue('debug', false)); } - // Upgrade not allowed, someone switching vendor? - if ($this->getVendor() !== $this->config->getAppValue('core', 'vendor', '')) { - $oldVersion = explode('.', $oldVersion); - $newVersion = explode('.', $newVersion); - - return $oldVersion[0] === $newVersion[0] && $oldVersion[1] === $newVersion[1]; - } - - return false; + // Check if the instance can be migrated + return isset($allowedPreviousVersions[$currentVendor][$majorMinor]); } /** @@ -215,8 +211,8 @@ class Updater extends BasicEmitter { */ private function doUpgrade($currentVersion, $installedVersion) { // Stop update if the update is over several major versions - $allowedPreviousVersion = $this->getAllowedPreviousVersion(); - if (!self::isUpgradePossible($installedVersion, $currentVersion, $allowedPreviousVersion)) { + $allowedPreviousVersions = $this->getAllowedPreviousVersions(); + if (!$this->isUpgradePossible($installedVersion, $currentVersion, $allowedPreviousVersions)) { throw new \Exception('Updates between multiple major versions and downgrades are unsupported.'); } diff --git a/lib/private/User/User.php b/lib/private/User/User.php index c37bb59028e..961f70f8a8e 100644 --- a/lib/private/User/User.php +++ b/lib/private/User/User.php @@ -411,7 +411,8 @@ class User implements IUser { public function getCloudId() { $uid = $this->getUID(); $server = $this->urlGenerator->getAbsoluteURL('/'); - return $uid . '@' . rtrim( $this->removeProtocolFromUrl($server), '/'); + $server = rtrim( $this->removeProtocolFromUrl($server), '/'); + return \OC::$server->getCloudIdManager()->getCloudId($uid, $server)->getId(); } /** diff --git a/lib/public/Federation/ICloudId.php b/lib/public/Federation/ICloudId.php new file mode 100644 index 00000000000..f9c84a2fd07 --- /dev/null +++ b/lib/public/Federation/ICloudId.php @@ -0,0 +1,60 @@ +<?php +/** + * @copyright Copyright (c) 2017, Robin Appelman <robin@icewind.nl> + * + * @license GNU AGPL version 3 or any later version + * + * 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/> + * + */ + +namespace OCP\Federation; + +/** + * Parsed federated cloud id + * + * @since 12.0.0 + */ +interface ICloudId { + /** + * The remote cloud id + * + * @return string + * @since 12.0.0 + */ + public function getId(); + + /** + * Get a clean representation of the cloud id for display + * + * @return string + * @since 12.0.0 + */ + public function getDisplayId(); + + /** + * The username on the remote server + * + * @return string + * @since 12.0.0 + */ + public function getUser(); + + /** + * The base address of the remote server + * + * @return string + * @since 12.0.0 + */ + public function getRemote(); +} diff --git a/lib/public/Federation/ICloudIdManager.php b/lib/public/Federation/ICloudIdManager.php new file mode 100644 index 00000000000..7be8f08c6b7 --- /dev/null +++ b/lib/public/Federation/ICloudIdManager.php @@ -0,0 +1,57 @@ +<?php +/** + * @copyright Copyright (c) 2017, Robin Appelman <robin@icewind.nl> + * + * @license GNU AGPL version 3 or any later version + * + * 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/> + * + */ + +namespace OCP\Federation; + +/** + * Interface for resolving federated cloud ids + * + * @since 12.0.0 + */ +interface ICloudIdManager { + /** + * @param string $cloudId + * @return ICloudId + * + * @since 12.0.0 + */ + public function resolveCloudId($cloudId); + + /** + * Get the cloud id for a remote user + * + * @param string $user + * @param string $remote + * @return ICloudId + * + * @since 12.0.0 + */ + public function getCloudId($user, $remote); + + /** + * Check if the input is a correctly formatted cloud id + * + * @param string $cloudId + * @return bool + * + * @since 12.0.0 + */ + public function isValidCloudId($cloudId); +} diff --git a/lib/public/IServerContainer.php b/lib/public/IServerContainer.php index 87628be01f7..02a092ea660 100644 --- a/lib/public/IServerContainer.php +++ b/lib/public/IServerContainer.php @@ -525,4 +525,10 @@ interface IServerContainer { * @since 8.0.0 */ public function getDateTimeFormatter(); + + /** + * @return \OCP\Federation\ICloudIdManager + * @since 12.0.0 + */ + public function getCloudIdManager(); } diff --git a/ocs/v1.php b/ocs/v1.php index 79e74f20cdf..31eb0687955 100644 --- a/ocs/v1.php +++ b/ocs/v1.php @@ -90,6 +90,7 @@ try { } catch (\OC\User\LoginException $e) { OC_API::respond(new OC_OCS_Result(null, \OCP\API::RESPOND_UNAUTHORISED, 'Unauthorised')); } catch (\Exception $e) { + \OC::$server->getLogger()->logException($e); OC_API::setContentType(); OC_OCS::notFound(); } diff --git a/settings/l10n/ca.js b/settings/l10n/ca.js index 917f5d41e4e..e95c0fd38e2 100644 --- a/settings/l10n/ca.js +++ b/settings/l10n/ca.js @@ -23,11 +23,14 @@ OC.L10N.register( "You need to set your user email before being able to send test emails." : "Heu d'establir un nom d'usuari abans de poder enviar correus de prova.", "Invalid request" : "Sol·licitud no vàlida", "Invalid mail address" : "Adreça de correu invàlida", + "No valid group selected" : "No s'ha seleccionat un grup vàlid", "A user with that name already exists." : "Ja existeix un usuari amb est nom.", "Unable to create user." : "No es pot crear el usuari.", "Your %s account was created" : "S'ha creat el seu compte %s", "Unable to delete user." : "No es pot eliminar l'usuari", + "Settings saved" : "Paràmetres desats", "Unable to change full name" : "No s'ha pogut canviar el nom complet", + "Unable to change email address" : "No es pot canviar l'adreça de correu", "Your full name has been changed." : "El vostre nom complet ha canviat.", "Forbidden" : "Prohibit", "Invalid user" : "Usuari no vàlid", @@ -38,11 +41,13 @@ OC.L10N.register( "Add trusted domain" : "Afegir domini de confiança", "Migration in progress. Please wait until the migration is finished" : "Migració en progrés. Si us plau, espereu fins que finalitzi la migració", "Migration started …" : "Migració iniciada ...", + "Not saved" : "No desat", "Sending..." : "Enviant...", "Official" : "Oficial", "All" : "Tots", "Update to %s" : "Actualitzar a %s", "No apps found for your version" : "No s'han trobat aplicacions per la seva versió", + "Enabling app …" : "Activant aplicació...", "Error while disabling app" : "Error en desactivar l'aplicació", "Disable" : "Desactiva", "Enable" : "Habilita", @@ -53,10 +58,34 @@ OC.L10N.register( "Uninstalling ...." : "Desintal·lant ...", "Error while uninstalling app" : "Error en desinstal·lar l'aplicació", "Uninstall" : "Desinstal·la", + "App update" : "Actualització de la App", "Approved" : "Aprovat", "Experimental" : "Experimental", + "Disconnect" : "Desconnecta", + "Internet Explorer" : "Internet Explorer", + "Edge" : "Edge", + "Firefox" : "Firefox", + "Google Chrome" : "Google Chrome", + "Safari" : "Safari", + "Google Chrome for Android" : "Google Chrome per Android", + "iPhone iOS" : "iPhone iOS", + "iPad iOS" : "iPad iOS", + "iOS Client" : "iOS Client", + "Android Client" : "Client Android", + "This session" : "Aquesta sessió", + "Copy" : "Copia", + "Copied!" : "Copiat!", + "Not supported!" : "No soportat!", + "Press ⌘-C to copy." : "Prem ⌘-C per copiar.", + "Press Ctrl-C to copy." : "Prem Ctrl-C per copiar.", "Valid until {date}" : "Vàlid fins {date}", "Delete" : "Esborra", + "Local" : "Local", + "Private" : "Privat", + "Only visible to local users" : "Només visible per a usuaris locals", + "Only visible to you" : "Només visible per tu", + "Contacts" : "Contactes", + "Public" : "Públic", "Select a profile picture" : "Seleccioneu una imatge de perfil", "Very weak password" : "Contrasenya massa feble", "Weak password" : "Contrasenya feble", @@ -70,6 +99,8 @@ OC.L10N.register( "undo" : "desfés", "never" : "mai", "deleted {userName}" : "eliminat {userName}", + "Add group" : "Afegeix grup", + "no group" : "sense grup", "Changing the password will result in data loss, because data recovery is not available for this user" : "Canviar la contrasenya provocarà pèrdua de dades, perquè la recuperació de dades no està disponible per a aquest usuari", "A valid username must be provided" : "Heu de facilitar un nom d'usuari vàlid", "A valid password must be provided" : "Heu de facilitar una contrasenya vàlida", @@ -77,6 +108,8 @@ OC.L10N.register( "__language_name__" : "Català", "Unlimited" : "Il·limitat", "Personal info" : "Informació personal", + "Sessions" : "Sessions", + "App passwords" : "Contrasenyes de l'Apliació", "Sync clients" : "Sincronitzar clients", "None" : "Cap", "Login" : "Inici de sessió", @@ -113,6 +146,7 @@ OC.L10N.register( "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Recomanem fermament que instal·leu els paquets requerits en el vostre sistema per suportar un dels següents idiomes: %s", "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Si la seva instal·lació no està situada en l'arrel del domini i usa el sistema cron, pot haver-hi problemes en generar-se els URL. Per evitar-los, configuri l'opció \"overwrite.cli.url\" en el seu arxiu config.php perquè usi la ruta de l'arrel del lloc web de la seva instal·lació (suggeriment: \"%s\")", "It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "No va ser possible executar cronjob via CLI. Han aparegut els següents errors tècnics:", + "All checks passed." : "Totes les comprovacions correctes.", "Cron" : "Cron", "Last cron job execution: %s." : "Última execució de la tasca cron: %s.", "Last cron job execution: %s. Something seems wrong." : "Última execució de la tasca cron: %s. Alguna cosa sembla malament.", @@ -142,12 +176,16 @@ OC.L10N.register( "Theming" : "Tematització", "Hardening and security guidance" : "Guia de protecció i seguretat", "Developer documentation" : "Documentació para desenvolupadors", + "by %s" : "per %s", "Documentation:" : "Documentació:", "User documentation" : "Documentació d'usuari", + "Visit website" : "Visita el lloc web", + "Report a bug" : "Reportar un error", "Show description …" : "Mostrar descripció...", "Hide description …" : "Amagar descripció...", "This app cannot be installed because the following dependencies are not fulfilled:" : "Aquesta aplicació no es pot instal·lar perquè les següents dependències no es compleixen:", "Enable only for specific groups" : "Activa només per grups específics", + "Uninstall app" : "Desinstala la app", "Common Name" : "Nom comú", "Valid until" : "Valid fins", "Issued By" : "Emès Per", @@ -157,16 +195,26 @@ OC.L10N.register( "Administrator documentation" : "Documentació d'administrador", "Online documentation" : "Documentació en línia", "Forum" : "Fòrum", + "Getting help" : "Obtenint ajuda", "Commercial support" : "Suport comercial", "Profile picture" : "Foto de perfil", "Upload new" : "Puja'n una de nova", "Remove image" : "Elimina imatge", + "png or jpg, max. 20 MB" : "png or jpg, max. 20 MB", "Cancel" : "Cancel·la", + "Choose as profile picture" : "Elegeix una imatge de perfil", "Full name" : "Nom complet", "No display name set" : "No s'ha establert cap nom para mostrar", "Email" : "Correu electrònic", "Your email address" : "Correu electrònic", "No email address set" : "No s'ha establert cap adreça de correu", + "Phone number" : "Número de telèfon", + "Your phone number" : "El teu número de telèfon", + "Address" : "Adreça", + "Your postal address" : "La teva adreça postal", + "Website" : "Lloc web", + "Your website" : "El teu lloc web", + "Twitter" : "Twitter", "You are member of the following groups:" : "Vostè és membre dels següents grups:", "Password" : "Contrasenya", "Current password" : "Contrasenya actual", @@ -179,8 +227,13 @@ OC.L10N.register( "Android app" : "aplicació para Android", "iOS app" : "aplicació para iOS", "Show First Run Wizard again" : "Torna a mostrar l'assistent de primera execució", + "Device" : "Dispositiu", + "Last activity" : "Última activitat", "Name" : "Nom", + "App name" : "Nom de l'aplicació", + "Create new app password" : "Crea una nova contrasenya de l'aplicació", "Username" : "Nom d'usuari", + "Done" : "Fet", "Show storage location" : "Mostra la ubicació del magatzem", "Show last log in" : "Mostrar l'últim accés", "Show user backend" : "Mostrar backend d'usuari", @@ -190,11 +243,14 @@ OC.L10N.register( "Create" : "Crea", "Admin Recovery Password" : "Recuperació de contrasenya d'administrador", "Enter the recovery password in order to recover the users files during password change" : "Escriviu la contrasenya de recuperació per a poder recuperar els fitxers dels usuaris en canviar la contrasenya", + "Group name" : "Nom del grup", "Everyone" : "Tothom", "Admins" : "Administradors", "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Escriviu la quota d'emmagatzemament (per ex.: \"512 MB\" o \"12 GB\")", "Other" : "Un altre", "Quota" : "Quota", + "Storage location" : "Ubicació de l'emmagatzemament", + "Last login" : "Últim accés", "change full name" : "canvia el nom complet", "set new password" : "estableix nova contrasenya", "change email address" : "canvi d'adreça de correu electrònic", @@ -206,6 +262,8 @@ OC.L10N.register( "Unable to remove user from group %s" : "No es pot eliminar l'usuari del grup %s", "Are you really sure you want add \"{domain}\" as trusted domain?" : "Esteu seguir que voleu afegir \"{domain}\" com a un domini de confiança?", "Please wait...." : "Espereu...", + "iPhone" : "iPhone", + "add group" : "afegeix grup", "Everything (fatal issues, errors, warnings, info, debug)" : "Tot (problemes fatals, errors, avisos, informació, depuració)", "Info, warnings, errors and fatal issues" : "Informació, avisos, errors i problemes fatals", "Warnings, errors and fatal issues" : "Avisos, errors i problemes fatals", @@ -224,6 +282,10 @@ OC.L10N.register( "Uninstall App" : "Desinstal·la l'aplicació", "Hey there,<br><br>just letting you know that you now have an %s account.<br><br>Your username: %s<br>Access it: <a href=\"%s\">%s</a><br><br>" : "Què tal?,<br><br>aquest missatge és per fer-li saber que ara té uncompte %s.<br><br>El seu nom d'usuari: %s<br>Accedeixi en: <a href=\"%s\">%s</a><br><br>", "Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Hola, què tal?,\n\nAquest missatge és per fer-li saber que ara té un compte %s.\n\n El seu nom d'usuari: %s\nAccedeixi en: %s\n\n", - "Group" : "Grup" + "Add Group" : "Afegeix el grup", + "Group" : "Grup", + "Full Name" : "Nom complet", + "Storage Location" : "Ubicació de l'emmagatzemament", + "Last Login" : "Últim accés" }, "nplurals=2; plural=(n != 1);"); diff --git a/settings/l10n/ca.json b/settings/l10n/ca.json index 67b310b196e..e4c73cac389 100644 --- a/settings/l10n/ca.json +++ b/settings/l10n/ca.json @@ -21,11 +21,14 @@ "You need to set your user email before being able to send test emails." : "Heu d'establir un nom d'usuari abans de poder enviar correus de prova.", "Invalid request" : "Sol·licitud no vàlida", "Invalid mail address" : "Adreça de correu invàlida", + "No valid group selected" : "No s'ha seleccionat un grup vàlid", "A user with that name already exists." : "Ja existeix un usuari amb est nom.", "Unable to create user." : "No es pot crear el usuari.", "Your %s account was created" : "S'ha creat el seu compte %s", "Unable to delete user." : "No es pot eliminar l'usuari", + "Settings saved" : "Paràmetres desats", "Unable to change full name" : "No s'ha pogut canviar el nom complet", + "Unable to change email address" : "No es pot canviar l'adreça de correu", "Your full name has been changed." : "El vostre nom complet ha canviat.", "Forbidden" : "Prohibit", "Invalid user" : "Usuari no vàlid", @@ -36,11 +39,13 @@ "Add trusted domain" : "Afegir domini de confiança", "Migration in progress. Please wait until the migration is finished" : "Migració en progrés. Si us plau, espereu fins que finalitzi la migració", "Migration started …" : "Migració iniciada ...", + "Not saved" : "No desat", "Sending..." : "Enviant...", "Official" : "Oficial", "All" : "Tots", "Update to %s" : "Actualitzar a %s", "No apps found for your version" : "No s'han trobat aplicacions per la seva versió", + "Enabling app …" : "Activant aplicació...", "Error while disabling app" : "Error en desactivar l'aplicació", "Disable" : "Desactiva", "Enable" : "Habilita", @@ -51,10 +56,34 @@ "Uninstalling ...." : "Desintal·lant ...", "Error while uninstalling app" : "Error en desinstal·lar l'aplicació", "Uninstall" : "Desinstal·la", + "App update" : "Actualització de la App", "Approved" : "Aprovat", "Experimental" : "Experimental", + "Disconnect" : "Desconnecta", + "Internet Explorer" : "Internet Explorer", + "Edge" : "Edge", + "Firefox" : "Firefox", + "Google Chrome" : "Google Chrome", + "Safari" : "Safari", + "Google Chrome for Android" : "Google Chrome per Android", + "iPhone iOS" : "iPhone iOS", + "iPad iOS" : "iPad iOS", + "iOS Client" : "iOS Client", + "Android Client" : "Client Android", + "This session" : "Aquesta sessió", + "Copy" : "Copia", + "Copied!" : "Copiat!", + "Not supported!" : "No soportat!", + "Press ⌘-C to copy." : "Prem ⌘-C per copiar.", + "Press Ctrl-C to copy." : "Prem Ctrl-C per copiar.", "Valid until {date}" : "Vàlid fins {date}", "Delete" : "Esborra", + "Local" : "Local", + "Private" : "Privat", + "Only visible to local users" : "Només visible per a usuaris locals", + "Only visible to you" : "Només visible per tu", + "Contacts" : "Contactes", + "Public" : "Públic", "Select a profile picture" : "Seleccioneu una imatge de perfil", "Very weak password" : "Contrasenya massa feble", "Weak password" : "Contrasenya feble", @@ -68,6 +97,8 @@ "undo" : "desfés", "never" : "mai", "deleted {userName}" : "eliminat {userName}", + "Add group" : "Afegeix grup", + "no group" : "sense grup", "Changing the password will result in data loss, because data recovery is not available for this user" : "Canviar la contrasenya provocarà pèrdua de dades, perquè la recuperació de dades no està disponible per a aquest usuari", "A valid username must be provided" : "Heu de facilitar un nom d'usuari vàlid", "A valid password must be provided" : "Heu de facilitar una contrasenya vàlida", @@ -75,6 +106,8 @@ "__language_name__" : "Català", "Unlimited" : "Il·limitat", "Personal info" : "Informació personal", + "Sessions" : "Sessions", + "App passwords" : "Contrasenyes de l'Apliació", "Sync clients" : "Sincronitzar clients", "None" : "Cap", "Login" : "Inici de sessió", @@ -111,6 +144,7 @@ "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Recomanem fermament que instal·leu els paquets requerits en el vostre sistema per suportar un dels següents idiomes: %s", "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Si la seva instal·lació no està situada en l'arrel del domini i usa el sistema cron, pot haver-hi problemes en generar-se els URL. Per evitar-los, configuri l'opció \"overwrite.cli.url\" en el seu arxiu config.php perquè usi la ruta de l'arrel del lloc web de la seva instal·lació (suggeriment: \"%s\")", "It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "No va ser possible executar cronjob via CLI. Han aparegut els següents errors tècnics:", + "All checks passed." : "Totes les comprovacions correctes.", "Cron" : "Cron", "Last cron job execution: %s." : "Última execució de la tasca cron: %s.", "Last cron job execution: %s. Something seems wrong." : "Última execució de la tasca cron: %s. Alguna cosa sembla malament.", @@ -140,12 +174,16 @@ "Theming" : "Tematització", "Hardening and security guidance" : "Guia de protecció i seguretat", "Developer documentation" : "Documentació para desenvolupadors", + "by %s" : "per %s", "Documentation:" : "Documentació:", "User documentation" : "Documentació d'usuari", + "Visit website" : "Visita el lloc web", + "Report a bug" : "Reportar un error", "Show description …" : "Mostrar descripció...", "Hide description …" : "Amagar descripció...", "This app cannot be installed because the following dependencies are not fulfilled:" : "Aquesta aplicació no es pot instal·lar perquè les següents dependències no es compleixen:", "Enable only for specific groups" : "Activa només per grups específics", + "Uninstall app" : "Desinstala la app", "Common Name" : "Nom comú", "Valid until" : "Valid fins", "Issued By" : "Emès Per", @@ -155,16 +193,26 @@ "Administrator documentation" : "Documentació d'administrador", "Online documentation" : "Documentació en línia", "Forum" : "Fòrum", + "Getting help" : "Obtenint ajuda", "Commercial support" : "Suport comercial", "Profile picture" : "Foto de perfil", "Upload new" : "Puja'n una de nova", "Remove image" : "Elimina imatge", + "png or jpg, max. 20 MB" : "png or jpg, max. 20 MB", "Cancel" : "Cancel·la", + "Choose as profile picture" : "Elegeix una imatge de perfil", "Full name" : "Nom complet", "No display name set" : "No s'ha establert cap nom para mostrar", "Email" : "Correu electrònic", "Your email address" : "Correu electrònic", "No email address set" : "No s'ha establert cap adreça de correu", + "Phone number" : "Número de telèfon", + "Your phone number" : "El teu número de telèfon", + "Address" : "Adreça", + "Your postal address" : "La teva adreça postal", + "Website" : "Lloc web", + "Your website" : "El teu lloc web", + "Twitter" : "Twitter", "You are member of the following groups:" : "Vostè és membre dels següents grups:", "Password" : "Contrasenya", "Current password" : "Contrasenya actual", @@ -177,8 +225,13 @@ "Android app" : "aplicació para Android", "iOS app" : "aplicació para iOS", "Show First Run Wizard again" : "Torna a mostrar l'assistent de primera execució", + "Device" : "Dispositiu", + "Last activity" : "Última activitat", "Name" : "Nom", + "App name" : "Nom de l'aplicació", + "Create new app password" : "Crea una nova contrasenya de l'aplicació", "Username" : "Nom d'usuari", + "Done" : "Fet", "Show storage location" : "Mostra la ubicació del magatzem", "Show last log in" : "Mostrar l'últim accés", "Show user backend" : "Mostrar backend d'usuari", @@ -188,11 +241,14 @@ "Create" : "Crea", "Admin Recovery Password" : "Recuperació de contrasenya d'administrador", "Enter the recovery password in order to recover the users files during password change" : "Escriviu la contrasenya de recuperació per a poder recuperar els fitxers dels usuaris en canviar la contrasenya", + "Group name" : "Nom del grup", "Everyone" : "Tothom", "Admins" : "Administradors", "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Escriviu la quota d'emmagatzemament (per ex.: \"512 MB\" o \"12 GB\")", "Other" : "Un altre", "Quota" : "Quota", + "Storage location" : "Ubicació de l'emmagatzemament", + "Last login" : "Últim accés", "change full name" : "canvia el nom complet", "set new password" : "estableix nova contrasenya", "change email address" : "canvi d'adreça de correu electrònic", @@ -204,6 +260,8 @@ "Unable to remove user from group %s" : "No es pot eliminar l'usuari del grup %s", "Are you really sure you want add \"{domain}\" as trusted domain?" : "Esteu seguir que voleu afegir \"{domain}\" com a un domini de confiança?", "Please wait...." : "Espereu...", + "iPhone" : "iPhone", + "add group" : "afegeix grup", "Everything (fatal issues, errors, warnings, info, debug)" : "Tot (problemes fatals, errors, avisos, informació, depuració)", "Info, warnings, errors and fatal issues" : "Informació, avisos, errors i problemes fatals", "Warnings, errors and fatal issues" : "Avisos, errors i problemes fatals", @@ -222,6 +280,10 @@ "Uninstall App" : "Desinstal·la l'aplicació", "Hey there,<br><br>just letting you know that you now have an %s account.<br><br>Your username: %s<br>Access it: <a href=\"%s\">%s</a><br><br>" : "Què tal?,<br><br>aquest missatge és per fer-li saber que ara té uncompte %s.<br><br>El seu nom d'usuari: %s<br>Accedeixi en: <a href=\"%s\">%s</a><br><br>", "Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Hola, què tal?,\n\nAquest missatge és per fer-li saber que ara té un compte %s.\n\n El seu nom d'usuari: %s\nAccedeixi en: %s\n\n", - "Group" : "Grup" + "Add Group" : "Afegeix el grup", + "Group" : "Grup", + "Full Name" : "Nom complet", + "Storage Location" : "Ubicació de l'emmagatzemament", + "Last Login" : "Últim accés" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/settings/l10n/el.js b/settings/l10n/el.js index 053632812e2..a84d4dd9502 100644 --- a/settings/l10n/el.js +++ b/settings/l10n/el.js @@ -29,12 +29,14 @@ OC.L10N.register( "Unable to create user." : "Αδυναμία δημιουργίας χρήστη.", "Your %s account was created" : "Ο λογαριασμός %s δημιουργήθηκε", "Unable to delete user." : "Αδυναμία διαγραφής χρήστη.", + "Settings saved" : "Οι ρυθμίσεις αποθηκεύτηκαν", "Unable to change full name" : "Δεν ήταν δυνατή η αλλαγή του πλήρους ονόματός σας", "Your full name has been changed." : "Το πλήρες όνομά σας άλλαξε.", "Forbidden" : "Δεν επιτρέπεται", "Invalid user" : "Μη έγκυρος χρήστης", "Unable to change mail address" : "Αδυναμία αλλαγής διεύθυνσης αλληλογραφίας", "Email saved" : "Το email αποθηκεύτηκε ", + "Password confirmation is required" : "Απαιτείται επιβεβαίωση συνθηματικού", "Couldn't remove app." : "Αδυναμία αφαίρεσης εφαρμογής.", "Couldn't update app." : "Αδυναμία ενημέρωσης εφαρμογής", "Add trusted domain" : "Προσθέστε αξιόπιστη περιοχή", @@ -73,9 +75,12 @@ OC.L10N.register( "Google Chrome" : "Google Chrome", "Safari" : "Safari", "Google Chrome for Android" : "Google Chrome για Android", + "iPhone iOS" : "iPhone iOS", + "iPad iOS" : "iPad iOS", "iOS Client" : "Πελάτης iOS", "Android Client" : "Πελάτης Android", "This session" : "Αυτή η συνεδρία", + "Copy" : "Αντιγραφή", "Copied!" : "Αντιγράφτηκε!", "Not supported!" : "Δεν υποστηρίζονται!", "Press ⌘-C to copy." : "Για αντιγραφή πατήστε ⌘-C.", @@ -86,6 +91,9 @@ OC.L10N.register( "An error occurred. Please upload an ASCII-encoded PEM certificate." : "Προέκυψε σφάλμα. Παρακαλούμε μεταφορτώστε ένα πιστοποιητικό PEM κωδικοποιημένο κατά ASCII.", "Valid until {date}" : "Έγκυρο έως {date}", "Delete" : "Διαγραφή", + "Local" : "Τοπικά", + "Contacts" : "Επαφές", + "Public" : "Δημόσιο", "Select a profile picture" : "Επιλογή εικόνας προφίλ", "Very weak password" : "Πολύ αδύναμο συνθηματικό", "Weak password" : "Αδύναμο συνθηματικό", @@ -118,6 +126,8 @@ OC.L10N.register( "Login" : "Σύνδεση", "Plain" : "Απλό", "NT LAN Manager" : "Διαχειριστης NT LAN", + "SSL/TLS" : "SSL/TLS", + "STARTTLS" : "STARTTLS", "Email server" : "Διακομιστής Email", "Open documentation" : "Ανοιχτή τεκμηρίωση.", "This is used for sending out notifications." : "Χρησιμοποιείται για αποστολή ειδοποιήσεων.", @@ -213,6 +223,7 @@ OC.L10N.register( "Administrator documentation" : "Τεκμηρίωση Διαχειριστή", "Online documentation" : "Τεκμηρίωση στο Διαδίκτυο", "Forum" : "Φόρουμ", + "Getting help" : "Λήψη βοήθειας", "Commercial support" : "Εμπορική Υποστήριξη", "You are using <strong>%s</strong> of <strong>%s</strong>" : "Χρησιμοποιείτε <strong>%s</strong> από <strong>%s</strong>", "Profile picture" : "Φωτογραφία προφίλ", @@ -229,8 +240,14 @@ OC.L10N.register( "Your email address" : "Η διεύθυνση ηλ. ταχυδρομείου σας", "No email address set" : "Δεν ορίστηκε διεύθυνση email", "For password recovery and notifications" : "Η ανάκτηση του συνθηματικού και οι ειδοποιήσεις", + "Phone number" : "Αριθμός τηλεφώνου", + "Your phone number" : "Ο αριθμός τηλεφώνου σας", + "Address" : "Διεύθυνση", + "Your postal address" : "Ο ταχυδρομικός σας κώδικας", "Website" : "Ιστοσελίδα", + "Your website" : "Η ιστοσελίδα σας", "Twitter" : "Twitter", + "Your Twitter handle" : "Το Twitter σας", "You are member of the following groups:" : "Είστε μέλος των ακόλουθων ομάδων:", "Password" : "Συνθηματικό", "Current password" : "Τρέχων συνθηματικό", @@ -264,6 +281,7 @@ OC.L10N.register( "Create" : "Δημιουργία", "Admin Recovery Password" : "Κωδικός Επαναφοράς Διαχειριστή ", "Enter the recovery password in order to recover the users files during password change" : "Εισάγετε το συνθηματικό ανάκτησης ώστε να ανακτήσετε τα αρχεία χρηστών κατά την αλλαγή συνθηματικού", + "Group name" : "Όνομα ομάδας", "Everyone" : "Όλοι", "Admins" : "Διαχειριστές", "Default quota" : "Προεπιλέγμενη χωρητικότητα", diff --git a/settings/l10n/el.json b/settings/l10n/el.json index bfb69683f69..b976646240d 100644 --- a/settings/l10n/el.json +++ b/settings/l10n/el.json @@ -27,12 +27,14 @@ "Unable to create user." : "Αδυναμία δημιουργίας χρήστη.", "Your %s account was created" : "Ο λογαριασμός %s δημιουργήθηκε", "Unable to delete user." : "Αδυναμία διαγραφής χρήστη.", + "Settings saved" : "Οι ρυθμίσεις αποθηκεύτηκαν", "Unable to change full name" : "Δεν ήταν δυνατή η αλλαγή του πλήρους ονόματός σας", "Your full name has been changed." : "Το πλήρες όνομά σας άλλαξε.", "Forbidden" : "Δεν επιτρέπεται", "Invalid user" : "Μη έγκυρος χρήστης", "Unable to change mail address" : "Αδυναμία αλλαγής διεύθυνσης αλληλογραφίας", "Email saved" : "Το email αποθηκεύτηκε ", + "Password confirmation is required" : "Απαιτείται επιβεβαίωση συνθηματικού", "Couldn't remove app." : "Αδυναμία αφαίρεσης εφαρμογής.", "Couldn't update app." : "Αδυναμία ενημέρωσης εφαρμογής", "Add trusted domain" : "Προσθέστε αξιόπιστη περιοχή", @@ -71,9 +73,12 @@ "Google Chrome" : "Google Chrome", "Safari" : "Safari", "Google Chrome for Android" : "Google Chrome για Android", + "iPhone iOS" : "iPhone iOS", + "iPad iOS" : "iPad iOS", "iOS Client" : "Πελάτης iOS", "Android Client" : "Πελάτης Android", "This session" : "Αυτή η συνεδρία", + "Copy" : "Αντιγραφή", "Copied!" : "Αντιγράφτηκε!", "Not supported!" : "Δεν υποστηρίζονται!", "Press ⌘-C to copy." : "Για αντιγραφή πατήστε ⌘-C.", @@ -84,6 +89,9 @@ "An error occurred. Please upload an ASCII-encoded PEM certificate." : "Προέκυψε σφάλμα. Παρακαλούμε μεταφορτώστε ένα πιστοποιητικό PEM κωδικοποιημένο κατά ASCII.", "Valid until {date}" : "Έγκυρο έως {date}", "Delete" : "Διαγραφή", + "Local" : "Τοπικά", + "Contacts" : "Επαφές", + "Public" : "Δημόσιο", "Select a profile picture" : "Επιλογή εικόνας προφίλ", "Very weak password" : "Πολύ αδύναμο συνθηματικό", "Weak password" : "Αδύναμο συνθηματικό", @@ -116,6 +124,8 @@ "Login" : "Σύνδεση", "Plain" : "Απλό", "NT LAN Manager" : "Διαχειριστης NT LAN", + "SSL/TLS" : "SSL/TLS", + "STARTTLS" : "STARTTLS", "Email server" : "Διακομιστής Email", "Open documentation" : "Ανοιχτή τεκμηρίωση.", "This is used for sending out notifications." : "Χρησιμοποιείται για αποστολή ειδοποιήσεων.", @@ -211,6 +221,7 @@ "Administrator documentation" : "Τεκμηρίωση Διαχειριστή", "Online documentation" : "Τεκμηρίωση στο Διαδίκτυο", "Forum" : "Φόρουμ", + "Getting help" : "Λήψη βοήθειας", "Commercial support" : "Εμπορική Υποστήριξη", "You are using <strong>%s</strong> of <strong>%s</strong>" : "Χρησιμοποιείτε <strong>%s</strong> από <strong>%s</strong>", "Profile picture" : "Φωτογραφία προφίλ", @@ -227,8 +238,14 @@ "Your email address" : "Η διεύθυνση ηλ. ταχυδρομείου σας", "No email address set" : "Δεν ορίστηκε διεύθυνση email", "For password recovery and notifications" : "Η ανάκτηση του συνθηματικού και οι ειδοποιήσεις", + "Phone number" : "Αριθμός τηλεφώνου", + "Your phone number" : "Ο αριθμός τηλεφώνου σας", + "Address" : "Διεύθυνση", + "Your postal address" : "Ο ταχυδρομικός σας κώδικας", "Website" : "Ιστοσελίδα", + "Your website" : "Η ιστοσελίδα σας", "Twitter" : "Twitter", + "Your Twitter handle" : "Το Twitter σας", "You are member of the following groups:" : "Είστε μέλος των ακόλουθων ομάδων:", "Password" : "Συνθηματικό", "Current password" : "Τρέχων συνθηματικό", @@ -262,6 +279,7 @@ "Create" : "Δημιουργία", "Admin Recovery Password" : "Κωδικός Επαναφοράς Διαχειριστή ", "Enter the recovery password in order to recover the users files during password change" : "Εισάγετε το συνθηματικό ανάκτησης ώστε να ανακτήσετε τα αρχεία χρηστών κατά την αλλαγή συνθηματικού", + "Group name" : "Όνομα ομάδας", "Everyone" : "Όλοι", "Admins" : "Διαχειριστές", "Default quota" : "Προεπιλέγμενη χωρητικότητα", diff --git a/settings/l10n/ia.js b/settings/l10n/ia.js new file mode 100644 index 00000000000..e6aa618838f --- /dev/null +++ b/settings/l10n/ia.js @@ -0,0 +1,133 @@ +OC.L10N.register( + "settings", + { + "Enabled" : "Activate", + "Not enabled" : "Non activate", + "Wrong password" : "Contrasigno incorrecte", + "Saved" : "Salveguardate", + "No user supplied" : "Nulle usator fornite", + "Unable to change password" : "Impossibile cambiar contrasigno", + "Authentication error" : "Error in authentication", + "Migration Completed" : "Migration completate", + "Group already exists." : "Gruppo ja existe.", + "Unable to add group." : "Impossibile adder gruppo.", + "Unable to delete group." : "Impossibile deler gruppo.", + "test email settings" : "testar configurationes de e-posta", + "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Un problema occurreva durante le invio del e-posta. Per favor, revide tu configurationes. (Error: %s)", + "Email sent" : "Message de e-posta inviate", + "You need to set your user email before being able to send test emails." : "Tu debe configurar tu e-posta de usator ante esser capace a inviar e-posta de test.", + "Invalid request" : "Requesta non valide", + "Invalid mail address" : "Adresse de e-posta non valide", + "No valid group selected" : "Nulle gruppo valide selectionate", + "A user with that name already exists." : "Un usator con iste nomine ja existe.", + "Unable to create user." : "Impossibile crear usator.", + "Your %s account was created" : "Tu conto %s esseva create", + "Unable to delete user." : "Impossibile deler usator.", + "Settings saved" : "Configurationes salveguardate", + "Unable to change full name" : "Impossibile cambiar nomine complete", + "Unable to change email address" : "Impossibile cambiar adresse de e-posta", + "Your full name has been changed." : "Tu nomine complete esseva cambiate.", + "Forbidden" : "Prohibite", + "Invalid user" : "Usator invalide", + "Unable to change mail address" : "Impossibile cambiar adresse de e-posta", + "Password confirmation is required" : "Un confirmation del contrasigno es necessari", + "Couldn't remove app." : "Impossibile remover application.", + "Couldn't update app." : "Impossibile actualisar application.", + "Official" : "Official", + "All" : "Tote", + "Update to %s" : "Actualisar a %s", + "Disable" : "Disactivar", + "Enable" : "Activar", + "Updating...." : "Actualisante...", + "Uninstall" : "De-installar", + "Experimental" : "Experimental", + "Disconnect" : "Disconnecter", + "Internet Explorer" : "Internet Explorer", + "Edge" : "Edge", + "Firefox" : "Firefox", + "Google Chrome" : "Google Chrome", + "Safari" : "Safari", + "Google Chrome for Android" : "Google Chrome pro Android", + "iPhone iOS" : "iPhone iOS", + "iPad iOS" : "iPad iOS", + "This session" : "Iste session", + "Copy" : "Copiar", + "Copied!" : "Copiate!", + "Press ⌘-C to copy." : "Pulsa ⌘-C pro copiar.", + "Press Ctrl-C to copy." : "Pulsa Ctrl-C pro copiar.", + "Delete" : "Deler", + "Local" : "Local", + "Only visible to local users" : "Solmente visibile a usatores local", + "Only visible to you" : "Solmente visibile a tu", + "Contacts" : "Contactos", + "Groups" : "Gruppos", + "undo" : "disfacer", + "never" : "nunquam", + "Personal info" : "Information personal", + "Sessions" : "Sessiones", + "App passwords" : "Contrasignos de applicationes", + "Email server" : "Servitor de e-posta", + "Encryption" : "Cryptographia", + "Version" : "Version", + "days" : "dies", + "Tips & tricks" : "Consilios e maneos", + "Theming" : "Themas", + "Documentation:" : "Documentation:", + "User documentation" : "Documentation de usator", + "Admin documentation" : "Documentation de administrator", + "Visit website" : "Visitar sito web", + "Report a bug" : "Reportar un defecto", + "Show description …" : "Monstrar description...", + "Hide description …" : "Celar description...", + "Common Name" : "Nomine Commun", + "Valid until" : "Valide usque", + "Valid until %s" : "Valide usque %s", + "Import root certificate" : "Importar certificato root", + "Administrator documentation" : "Documentation de administrator", + "Online documentation" : "Documentation in linea", + "Forum" : "Foro", + "Commercial support" : "Supporto commercial", + "Upload new" : "Incargar nove", + "Remove image" : "Remover imagine", + "Cancel" : "Cancellar", + "Address" : "Adresse", + "Your postal address" : "Tu adresse postal", + "Website" : "Sito web", + "Your website" : "Tu sito web", + "Twitter" : "Twitter", + "You are member of the following groups:" : "Tu es membro del sequente gruppos:", + "Password" : "Contrasigno", + "Current password" : "Contrasigno actual", + "New password" : "Nove contrasigno", + "Change password" : "Cambiar contrasigno", + "Language" : "Lingua", + "Help translate" : "Adjuta a traducer", + "Device" : "Dispositivo", + "Passcodes that give an app or device permissions to access your account." : "Contrasignos que dona a tu application o dispositivo le permissiones pro acceder a tu conto.", + "Name" : "Nomine", + "App name" : "Nomine del application", + "Create new app password" : "Crear un nove contrasigno pro application", + "Use the credentials below to configure your app or device." : "Usa le datos de authentication infra pro configurar tu application o dispositivo.", + "Username" : "Nomine de usator", + "Done" : "Preste", + "Follow us on Google Plus!" : "Seque nos in Google Plus!", + "E-Mail" : "E-posta", + "Create" : "Crear", + "Group name" : "Nomine del gruppo", + "Everyone" : "Totos", + "Admins" : "Administratores", + "Default quota" : "Quota predefinite", + "Other" : "Altere", + "Quota" : "Quota", + "Please wait...." : "Per favor attende...", + "iPhone" : "iPhone", + "add group" : "adder gruppo", + "Log" : "Registro", + "What to log" : "Que registrar?", + "Download logfile" : "Discargar file de registro", + "More" : "Plus", + "Less" : "Minus", + "Add Group" : "Adder Gruppo", + "Group" : "Gruppo" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/settings/l10n/ia.json b/settings/l10n/ia.json new file mode 100644 index 00000000000..7643ea24822 --- /dev/null +++ b/settings/l10n/ia.json @@ -0,0 +1,131 @@ +{ "translations": { + "Enabled" : "Activate", + "Not enabled" : "Non activate", + "Wrong password" : "Contrasigno incorrecte", + "Saved" : "Salveguardate", + "No user supplied" : "Nulle usator fornite", + "Unable to change password" : "Impossibile cambiar contrasigno", + "Authentication error" : "Error in authentication", + "Migration Completed" : "Migration completate", + "Group already exists." : "Gruppo ja existe.", + "Unable to add group." : "Impossibile adder gruppo.", + "Unable to delete group." : "Impossibile deler gruppo.", + "test email settings" : "testar configurationes de e-posta", + "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Un problema occurreva durante le invio del e-posta. Per favor, revide tu configurationes. (Error: %s)", + "Email sent" : "Message de e-posta inviate", + "You need to set your user email before being able to send test emails." : "Tu debe configurar tu e-posta de usator ante esser capace a inviar e-posta de test.", + "Invalid request" : "Requesta non valide", + "Invalid mail address" : "Adresse de e-posta non valide", + "No valid group selected" : "Nulle gruppo valide selectionate", + "A user with that name already exists." : "Un usator con iste nomine ja existe.", + "Unable to create user." : "Impossibile crear usator.", + "Your %s account was created" : "Tu conto %s esseva create", + "Unable to delete user." : "Impossibile deler usator.", + "Settings saved" : "Configurationes salveguardate", + "Unable to change full name" : "Impossibile cambiar nomine complete", + "Unable to change email address" : "Impossibile cambiar adresse de e-posta", + "Your full name has been changed." : "Tu nomine complete esseva cambiate.", + "Forbidden" : "Prohibite", + "Invalid user" : "Usator invalide", + "Unable to change mail address" : "Impossibile cambiar adresse de e-posta", + "Password confirmation is required" : "Un confirmation del contrasigno es necessari", + "Couldn't remove app." : "Impossibile remover application.", + "Couldn't update app." : "Impossibile actualisar application.", + "Official" : "Official", + "All" : "Tote", + "Update to %s" : "Actualisar a %s", + "Disable" : "Disactivar", + "Enable" : "Activar", + "Updating...." : "Actualisante...", + "Uninstall" : "De-installar", + "Experimental" : "Experimental", + "Disconnect" : "Disconnecter", + "Internet Explorer" : "Internet Explorer", + "Edge" : "Edge", + "Firefox" : "Firefox", + "Google Chrome" : "Google Chrome", + "Safari" : "Safari", + "Google Chrome for Android" : "Google Chrome pro Android", + "iPhone iOS" : "iPhone iOS", + "iPad iOS" : "iPad iOS", + "This session" : "Iste session", + "Copy" : "Copiar", + "Copied!" : "Copiate!", + "Press ⌘-C to copy." : "Pulsa ⌘-C pro copiar.", + "Press Ctrl-C to copy." : "Pulsa Ctrl-C pro copiar.", + "Delete" : "Deler", + "Local" : "Local", + "Only visible to local users" : "Solmente visibile a usatores local", + "Only visible to you" : "Solmente visibile a tu", + "Contacts" : "Contactos", + "Groups" : "Gruppos", + "undo" : "disfacer", + "never" : "nunquam", + "Personal info" : "Information personal", + "Sessions" : "Sessiones", + "App passwords" : "Contrasignos de applicationes", + "Email server" : "Servitor de e-posta", + "Encryption" : "Cryptographia", + "Version" : "Version", + "days" : "dies", + "Tips & tricks" : "Consilios e maneos", + "Theming" : "Themas", + "Documentation:" : "Documentation:", + "User documentation" : "Documentation de usator", + "Admin documentation" : "Documentation de administrator", + "Visit website" : "Visitar sito web", + "Report a bug" : "Reportar un defecto", + "Show description …" : "Monstrar description...", + "Hide description …" : "Celar description...", + "Common Name" : "Nomine Commun", + "Valid until" : "Valide usque", + "Valid until %s" : "Valide usque %s", + "Import root certificate" : "Importar certificato root", + "Administrator documentation" : "Documentation de administrator", + "Online documentation" : "Documentation in linea", + "Forum" : "Foro", + "Commercial support" : "Supporto commercial", + "Upload new" : "Incargar nove", + "Remove image" : "Remover imagine", + "Cancel" : "Cancellar", + "Address" : "Adresse", + "Your postal address" : "Tu adresse postal", + "Website" : "Sito web", + "Your website" : "Tu sito web", + "Twitter" : "Twitter", + "You are member of the following groups:" : "Tu es membro del sequente gruppos:", + "Password" : "Contrasigno", + "Current password" : "Contrasigno actual", + "New password" : "Nove contrasigno", + "Change password" : "Cambiar contrasigno", + "Language" : "Lingua", + "Help translate" : "Adjuta a traducer", + "Device" : "Dispositivo", + "Passcodes that give an app or device permissions to access your account." : "Contrasignos que dona a tu application o dispositivo le permissiones pro acceder a tu conto.", + "Name" : "Nomine", + "App name" : "Nomine del application", + "Create new app password" : "Crear un nove contrasigno pro application", + "Use the credentials below to configure your app or device." : "Usa le datos de authentication infra pro configurar tu application o dispositivo.", + "Username" : "Nomine de usator", + "Done" : "Preste", + "Follow us on Google Plus!" : "Seque nos in Google Plus!", + "E-Mail" : "E-posta", + "Create" : "Crear", + "Group name" : "Nomine del gruppo", + "Everyone" : "Totos", + "Admins" : "Administratores", + "Default quota" : "Quota predefinite", + "Other" : "Altere", + "Quota" : "Quota", + "Please wait...." : "Per favor attende...", + "iPhone" : "iPhone", + "add group" : "adder gruppo", + "Log" : "Registro", + "What to log" : "Que registrar?", + "Download logfile" : "Discargar file de registro", + "More" : "Plus", + "Less" : "Minus", + "Add Group" : "Adder Gruppo", + "Group" : "Gruppo" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/settings/l10n/it.js b/settings/l10n/it.js index 6aa08ac59e7..727e98fa774 100644 --- a/settings/l10n/it.js +++ b/settings/l10n/it.js @@ -25,6 +25,7 @@ OC.L10N.register( "You need to set your user email before being able to send test emails." : "Devi impostare l'indirizzo del tuo utente prima di poter provare l'invio delle email.", "Invalid request" : "Richiesta non valida", "Invalid mail address" : "Indirizzo email non valido", + "No valid group selected" : "Nessun gruppo valido selezionato", "A user with that name already exists." : "Un utente con quel nome esiste già.", "Unable to create user." : "Impossibile creare l'utente.", "Your %s account was created" : "Il tuo account %s è stato creato", @@ -122,6 +123,8 @@ OC.L10N.register( "undo" : "annulla", "never" : "mai", "deleted {userName}" : "{userName} eliminato", + "Unable to add user to group {group}" : "Impossibile aggiungere l'utente al gruppo {group}", + "Unable to remove user from group {group}" : "Impossibile rimuovere l'utente dal gruppo {group}", "Add group" : "Aggiungi gruppo", "Invalid quota value \"{val}\"" : "Valore di quota \"{val}\" non valido", "no group" : "nessun gruppo", diff --git a/settings/l10n/it.json b/settings/l10n/it.json index 08163eef564..01b584d12d0 100644 --- a/settings/l10n/it.json +++ b/settings/l10n/it.json @@ -23,6 +23,7 @@ "You need to set your user email before being able to send test emails." : "Devi impostare l'indirizzo del tuo utente prima di poter provare l'invio delle email.", "Invalid request" : "Richiesta non valida", "Invalid mail address" : "Indirizzo email non valido", + "No valid group selected" : "Nessun gruppo valido selezionato", "A user with that name already exists." : "Un utente con quel nome esiste già.", "Unable to create user." : "Impossibile creare l'utente.", "Your %s account was created" : "Il tuo account %s è stato creato", @@ -120,6 +121,8 @@ "undo" : "annulla", "never" : "mai", "deleted {userName}" : "{userName} eliminato", + "Unable to add user to group {group}" : "Impossibile aggiungere l'utente al gruppo {group}", + "Unable to remove user from group {group}" : "Impossibile rimuovere l'utente dal gruppo {group}", "Add group" : "Aggiungi gruppo", "Invalid quota value \"{val}\"" : "Valore di quota \"{val}\" non valido", "no group" : "nessun gruppo", diff --git a/tests/Core/Controller/LoginControllerTest.php b/tests/Core/Controller/LoginControllerTest.php index a1a4452abf8..72f921724a5 100644 --- a/tests/Core/Controller/LoginControllerTest.php +++ b/tests/Core/Controller/LoginControllerTest.php @@ -89,7 +89,7 @@ class LoginControllerTest extends TestCase { $this->request ->expects($this->once()) ->method('getCookie') - ->with('oc_token') + ->with('nc_token') ->willReturn(null); $this->config ->expects($this->never()) @@ -108,7 +108,7 @@ class LoginControllerTest extends TestCase { $this->request ->expects($this->once()) ->method('getCookie') - ->with('oc_token') + ->with('nc_token') ->willReturn('MyLoginToken'); $user = $this->getMockBuilder('\\OCP\\IUser')->getMock(); $user diff --git a/tests/lib/AppFramework/Http/RequestTest.php b/tests/lib/AppFramework/Http/RequestTest.php index b1515b0efb5..6c6504b4de8 100644 --- a/tests/lib/AppFramework/Http/RequestTest.php +++ b/tests/lib/AppFramework/Http/RequestTest.php @@ -1651,7 +1651,7 @@ class RequestTest extends \Test\TestCase { 'HTTP_REQUESTTOKEN' => 'AAAHGxsTCTc3BgMQESAcNR0OAR0=:MyTotalSecretShareds', ], 'cookies' => [ - 'oc_token' => 'asdf', + 'nc_token' => 'asdf', ], ], $this->secureRandom, diff --git a/tests/lib/Federation/CloudIdManagerTest.php b/tests/lib/Federation/CloudIdManagerTest.php new file mode 100644 index 00000000000..fe673588bba --- /dev/null +++ b/tests/lib/Federation/CloudIdManagerTest.php @@ -0,0 +1,99 @@ +<?php +/** + * @copyright Copyright (c) 2017 Robin Appelman <robin@icewind.nl> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace Test\Federation; + +use OC\Federation\CloudIdManager; +use Test\TestCase; + +class CloudIdManagerTest extends TestCase { + /** @var CloudIdManager */ + private $cloudIdManager; + + protected function setUp() { + parent::setUp(); + $this->cloudIdManager = new CloudIdManager(); + } + + public function cloudIdProvider() { + return [ + ['test@example.com', 'test', 'example.com', 'test@example.com'], + ['test@example.com/cloud', 'test', 'example.com/cloud', 'test@example.com/cloud'], + ['test@example.com/cloud/', 'test', 'example.com/cloud', 'test@example.com/cloud'], + ['test@example.com/cloud/index.php', 'test', 'example.com/cloud', 'test@example.com/cloud'], + ['test@example.com@example.com', 'test@example.com', 'example.com', 'test@example.com@example.com'], + ]; + } + + /** + * @dataProvider cloudIdProvider + * + * @param string $cloudId + * @param string $user + * @param string $remote + */ + public function testResolveCloudId($cloudId, $user, $remote, $cleanId) { + $cloudId = $this->cloudIdManager->resolveCloudId($cloudId); + + $this->assertEquals($user, $cloudId->getUser()); + $this->assertEquals($remote, $cloudId->getRemote()); + $this->assertEquals($cleanId, $cloudId->getId()); + } + + public function invalidCloudIdProvider() { + return [ + ['example.com'], + ['test:foo@example.com'], + ['test/foo@example.com'] + ]; + } + + /** + * @dataProvider invalidCloudIdProvider + * + * @param string $cloudId + * + * @expectedException \InvalidArgumentException + */ + public function testInvalidCloudId($cloudId) { + $this->cloudIdManager->resolveCloudId($cloudId); + } + + public function getCloudIdProvider() { + return [ + ['test', 'example.com', 'test@example.com'], + ['test@example.com', 'example.com', 'test@example.com@example.com'], + ]; + } + + /** + * @dataProvider getCloudIdProvider + * + * @param string $user + * @param string $remote + * @param string $id + */ + public function testGetCloudId($user, $remote, $id) { + $cloudId = $this->cloudIdManager->getCloudId($user, $remote); + + $this->assertEquals($id, $cloudId->getId()); + } +} diff --git a/tests/lib/Federation/CloudIdTest.php b/tests/lib/Federation/CloudIdTest.php new file mode 100644 index 00000000000..7a6e841fb34 --- /dev/null +++ b/tests/lib/Federation/CloudIdTest.php @@ -0,0 +1,46 @@ +<?php +/** + * @copyright Copyright (c) 2017 Robin Appelman <robin@icewind.nl> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace Test\Federation; + +use OC\Federation\CloudId; +use Test\TestCase; + +class CloudIdTest extends TestCase { + public function testGetDisplayCloudIdProvider() { + return [ + ['test@example.com', 'test@example.com'], + ['test@http://example.com', 'test@example.com'], + ['test@https://example.com', 'test@example.com'], + ]; + } + + /** + * @dataProvider testGetDisplayCloudIdProvider + * + * @param string $id + * @param string $display + */ + public function testGetDisplayCloudId($id, $display) { + $cloudId = new CloudId($id, '', ''); + $this->assertEquals($display, $cloudId->getDisplayId()); + } +} diff --git a/tests/lib/Lockdown/Filesystem/NullStorageTest.php b/tests/lib/Lockdown/Filesystem/NullStorageTest.php index dc99eb4c03a..c6faf325cd4 100644 --- a/tests/lib/Lockdown/Filesystem/NullStorageTest.php +++ b/tests/lib/Lockdown/Filesystem/NullStorageTest.php @@ -27,6 +27,7 @@ use Icewind\Streams\IteratorDirectory; use OC\ForbiddenException; use OC\Lockdown\Filesystem\NullCache; use OC\Lockdown\Filesystem\NullStorage; +use OC\Files\FileInfo; use OCP\Files\Storage; use Test\TestCase; @@ -182,7 +183,7 @@ class NullStorageTest extends TestCase { } public function testFree_space() { - $this->assertSame(0, $this->storage->free_space('foo')); + $this->assertSame(FileInfo::SPACE_UNKNOWN, $this->storage->free_space('foo')); } public function testTouch() { diff --git a/tests/lib/Template/ResourceLocatorTest.php b/tests/lib/Template/ResourceLocatorTest.php index 17326f6c691..580dfd60d0e 100644 --- a/tests/lib/Template/ResourceLocatorTest.php +++ b/tests/lib/Template/ResourceLocatorTest.php @@ -69,7 +69,7 @@ class ResourceLocatorTest extends \Test\TestCase { ->with('foo') ->will($this->throwException(new ResourceNotFoundException('foo', 'map'))); $this->logger->expects($this->exactly(2)) - ->method('error') + ->method('debug') ->with($this->stringContains('map/foo')); /** @var \OC\Template\ResourceLocator $locator */ $locator->find(array('foo')); diff --git a/tests/lib/UpdaterTest.php b/tests/lib/UpdaterTest.php index 80c7c28cd68..afa0635768d 100644 --- a/tests/lib/UpdaterTest.php +++ b/tests/lib/UpdaterTest.php @@ -57,92 +57,31 @@ class UpdaterTest extends TestCase { } /** - * @param string $baseUrl - * @return string - */ - private function buildUpdateUrl($baseUrl) { - return $baseUrl . '?version='.implode('x', \OCP\Util::getVersion()).'xinstalledatxlastupdatedatx'.\OC_Util::getChannel().'xx'; - } - - /** * @return array */ public function versionCompatibilityTestData() { return [ - ['1', '2', '1', true], - ['2', '2', '2', true], - ['6.0.5.0', '6.0.6.0', '5.0', true], - ['5.0.6.0', '7.0.4.0', '6.0', false], - // allow upgrading within the same major release - ['8.0.0.0', '8.0.0.0', '8.0', true], - ['8.0.0.0', '8.0.0.4', '8.0', true], - ['8.0.0.0', '8.0.1.0', '8.0', true], - ['8.0.0.0', '8.0.2.0', '8.0', true], - // does not allow downgrading within the same major release - ['8.0.1.0', '8.0.0.0', '8.0', false], - ['8.0.2.0', '8.0.1.0', '8.0', false], - ['8.0.0.4', '8.0.0.0', '8.0', false], - // allows upgrading within the patch version - ['8.0.0.0', '8.0.0.1', '8.0', true], - ['8.0.0.0', '8.0.0.2', '8.0', true], - // does not allow downgrading within the same major release - ['8.0.0.1', '8.0.0.0', '8.0', false], - ['8.0.0.2', '8.0.0.0', '8.0', false], - // allow upgrading to the next major release - ['8.0.0.0', '8.1.0.0', '8.0', true], - ['8.0.0.0', '8.1.1.0', '8.0', true], - ['8.0.0.0', '8.1.1.5', '8.0', true], - ['8.0.0.2', '8.1.1.5', '8.0', true], - ['8.1.0.0', '8.2.0.0', '8.1', true], - ['8.1.0.2', '8.2.0.4', '8.1', true], - ['8.1.0.5', '8.2.0.1', '8.1', true], - ['8.1.0.0', '8.2.1.0', '8.1', true], - ['8.1.0.2', '8.2.1.5', '8.1', true], - ['8.1.0.5', '8.2.1.1', '8.1', true], - // does not allow downgrading to the previous major release - ['8.1.0.0', '8.0.0.0', '7.0', false], - ['8.1.1.0', '8.0.0.0', '7.0', false], - // does not allow skipping major releases - ['8.0.0.0', '8.2.0.0', '8.1', false], - ['8.0.0.0', '8.2.1.0', '8.1', false], - ['8.0.0.0', '9.0.1.0', '8.2', false], - ['8.0.0.0', '10.0.0.0', '9.3', false], - // allows updating to the next major release - ['8.2.0.0', '9.0.0.0', '8.2', true], - ['8.2.0.0', '9.0.0.0', '8.2', true], - ['8.2.0.0', '9.0.1.0', '8.2', true], - ['8.2.0.0', '9.0.1.1', '8.2', true], - ['8.2.0.2', '9.0.1.1', '8.2', true], - ['8.2.2.0', '9.0.1.0', '8.2', true], - ['8.2.2.2', '9.0.1.1', '8.2', true], - ['9.0.0.0', '9.1.0.0', '9.0', true], - ['9.0.0.0', '9.1.0.2', '9.0', true], - ['9.0.0.2', '9.1.0.1', '9.0', true], - ['9.1.0.0', '9.2.0.0', '9.1', true], - ['9.2.0.0', '9.3.0.0', '9.2', true], - ['9.3.0.0', '10.0.0.0', '9.3', true], - // does not allow updating to the next major release (first number) - ['9.0.0.0', '8.2.0.0', '8.1', false], - // other cases - ['8.0.0.0', '8.1.5.0', '8.0', true], - ['8.2.0.0', '9.0.0.0', '8.2', true], - ['8.2.0.0', '9.1.0.0', '9.0', false], - ['9.0.0.0', '8.1.0.0', '8.0', false], - ['9.0.0.0', '8.0.0.0', '7.0', false], - ['9.1.0.0', '8.0.0.0', '7.0', false], - ['8.2.0.0', '8.1.0.0', '8.0', false], - - // With debug enabled - ['8.0.0.0', '8.2.0.0', '8.1', false, true], - ['8.1.0.0', '8.2.0.0', '8.1', true, true], - ['8.2.0.1', '8.2.0.1', '8.1', true, true], - ['8.3.0.0', '8.2.0.0', '8.1', true, true], + // Upgrade with invalid version + ['9.1.1.13', '11.0.2.25', ['nextcloud' => ['11.0' => true]], false], + ['10.0.1.13', '11.0.2.25', ['nextcloud' => ['11.0' => true]], false], + // Upgrad with valid version + ['11.0.1.13', '11.0.2.25', ['nextcloud' => ['11.0' => true]], true], + // Downgrade with valid version + ['11.0.2.25', '11.0.1.13', ['nextcloud' => ['11.0' => true]], false], + ['11.0.2.25', '11.0.1.13', ['nextcloud' => ['11.0' => true]], true, true], + // Downgrade with invalid version + ['11.0.2.25', '10.0.1.13', ['nextcloud' => ['10.0' => true]], false], + ['11.0.2.25', '10.0.1.13', ['nextcloud' => ['10.0' => true]], false, true], - // Downgrade of maintenance - ['9.0.53.0', '9.0.4.0', '8.1', false, false, 'nextcloud'], - // with vendor switch - ['9.0.53.0', '9.0.4.0', '8.1', true, false, ''], - ['9.0.53.0', '9.0.4.0', '8.1', true, false, 'owncloud'], + // Migration with unknown vendor + ['9.1.1.13', '11.0.2.25', ['nextcloud' => ['9.1' => true]], false, false, 'owncloud'], + ['9.1.1.13', '11.0.2.25', ['nextcloud' => ['9.1' => true]], false, true, 'owncloud'], + // Migration with unsupported vendor version + ['9.1.1.13', '11.0.2.25', ['owncloud' => ['10.0' => true]], false, false, 'owncloud'], + ['9.1.1.13', '11.0.2.25', ['owncloud' => ['10.0' => true]], false, true, 'owncloud'], + // Migration with valid vendor version + ['9.1.1.13', '11.0.2.25', ['owncloud' => ['9.1' => true]], true, false, 'owncloud'], + ['9.1.1.13', '11.0.2.25', ['owncloud' => ['9.1' => true]], true, true, 'owncloud'], ]; } @@ -151,12 +90,12 @@ class UpdaterTest extends TestCase { * * @param string $oldVersion * @param string $newVersion - * @param string $allowedVersion + * @param array $allowedVersions * @param bool $result * @param bool $debug * @param string $vendor */ - public function testIsUpgradePossible($oldVersion, $newVersion, $allowedVersion, $result, $debug = false, $vendor = 'nextcloud') { + public function testIsUpgradePossible($oldVersion, $newVersion, $allowedVersions, $result, $debug = false, $vendor = 'nextcloud') { $this->config->expects($this->any()) ->method('getSystemValue') ->with('debug', false) @@ -166,7 +105,7 @@ class UpdaterTest extends TestCase { ->with('core', 'vendor', '') ->willReturn($vendor); - $this->assertSame($result, $this->updater->isUpgradePossible($oldVersion, $newVersion, $allowedVersion)); + $this->assertSame($result, $this->updater->isUpgradePossible($oldVersion, $newVersion, $allowedVersions)); } public function testSetSkip3rdPartyAppsDisable() { diff --git a/version.php b/version.php index 90f4e65055a..3d8abb5f2f4 100644 --- a/version.php +++ b/version.php @@ -31,7 +31,15 @@ $OC_Version = array(12, 0, 0, 12); // The human readable string $OC_VersionString = '12.0 alpha'; -$OC_VersionCanBeUpgradedFrom = array(11); +$OC_VersionCanBeUpgradedFrom = [ + 'nextcloud' => [ + '11.0' => true, + '12.0' => true, + ], + 'owncloud' => [ + '10.0' => true, + ], +]; // default Nextcloud channel $OC_Channel = 'git'; |