diff options
Diffstat (limited to 'apps')
49 files changed, 311 insertions, 78 deletions
diff --git a/apps/comments/js/commentstabview.js b/apps/comments/js/commentstabview.js index 8ea4dbc2ff2..04b0f292299 100644 --- a/apps/comments/js/commentstabview.js +++ b/apps/comments/js/commentstabview.js @@ -416,15 +416,22 @@ return; } var mention = '@' + mentions[i].mentionId; + if (mentions[i].mentionId.indexOf(' ') !== -1) { + mention = _.escape('@"' + mentions[i].mentionId + '"'); + } // escape possible regex characters in the name mention = mention.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); + var regex = new RegExp("(^|\\s)(" + mention + ")\\b", 'g'); + if (mentions[i].mentionId.indexOf(' ') !== -1) { + regex = new RegExp("(^|\\s)(" + mention + ")", 'g'); + } var displayName = this._composeHTMLMention(mentions[i].mentionId, mentions[i].mentionDisplayName); // replace every mention either at the start of the input or after a whitespace // followed by a non-word character. - message = message.replace(new RegExp("(^|\\s)(" + mention + ")\\b", 'g'), + message = message.replace(regex, function(match, p1) { // to get number of whitespaces (0 vs 1) right return p1+displayName; @@ -602,9 +609,14 @@ var $comment = $el.clone(); $comment.find('.avatar-name-wrapper').each(function () { - var $this = $(this); - var $inserted = $this.parent(); - $inserted.html('@' + $this.find('.avatar').data('username')); + var $this = $(this), + $inserted = $this.parent(), + userId = $this.find('.avatar').data('username'); + if (userId.indexOf(' ') !== -1) { + $inserted.html('@"' + userId + '"'); + } else { + $inserted.html('@' + userId); + } }); $comment.html(OCP.Comments.richToPlain($comment.html())); diff --git a/apps/comments/lib/Activity/Provider.php b/apps/comments/lib/Activity/Provider.php index c21b7a9c4fd..4940bb6afec 100644 --- a/apps/comments/lib/Activity/Provider.php +++ b/apps/comments/lib/Activity/Provider.php @@ -213,8 +213,13 @@ class Provider implements IProvider { continue; } + $pattern = '/(^|\s)(' . '@' . $mention['id'] . ')(\b)/'; + if (strpos($mention['id'], ' ') !== false) { + $pattern = '/(^|\s)(' . '@"' . $mention['id'] . '"' . ')(\b)?/'; + } + $message = preg_replace( - '/(^|\s)(' . '@' . $mention['id'] . ')(\b)/', + $pattern, //'${1}' . $this->regexSafeUser($mention['id'], $displayName) . '${3}', '${1}' . '{mention' . $mentionCount . '}' . '${3}', $message diff --git a/apps/dav/l10n/sv.js b/apps/dav/l10n/sv.js index 9a33396878a..93eeaa67b6a 100644 --- a/apps/dav/l10n/sv.js +++ b/apps/dav/l10n/sv.js @@ -58,6 +58,7 @@ OC.L10N.register( "More options …" : "Fler alternativ ...", "More options at %s" : "Fler alternativ på %s", "Contacts" : "Kontakter", + "%s (group)" : "%s (grupp)", "WebDAV" : "WebDAV", "Technical details" : "Tekniska detaljer", "Remote Address: %s" : "Extern adress: %s", diff --git a/apps/dav/l10n/sv.json b/apps/dav/l10n/sv.json index 8149e984419..4b3ed893910 100644 --- a/apps/dav/l10n/sv.json +++ b/apps/dav/l10n/sv.json @@ -56,6 +56,7 @@ "More options …" : "Fler alternativ ...", "More options at %s" : "Fler alternativ på %s", "Contacts" : "Kontakter", + "%s (group)" : "%s (grupp)", "WebDAV" : "WebDAV", "Technical details" : "Tekniska detaljer", "Remote Address: %s" : "Extern adress: %s", diff --git a/apps/files/l10n/ca.js b/apps/files/l10n/ca.js index ba519f9d382..063807c62f0 100644 --- a/apps/files/l10n/ca.js +++ b/apps/files/l10n/ca.js @@ -141,8 +141,8 @@ OC.L10N.register( "Show hidden files" : "Mostra els fitxers ocults", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "Utilitza aquesta adreça per <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">accedir als teus arxius mitjançant WebDAV</a>", - "Cancel upload" : "Cancel·la la pujada", "Toggle grid view" : "Commuta vista de quadrícula", + "Cancel upload" : "Cancel·la la pujada", "No files in here" : "No hi ha arxius", "Upload some content or sync with your devices!" : "Pugi continguts o sincronitzi els seus dispositius.", "No entries found in this folder" : "No hi ha entrades en aquesta carpeta", diff --git a/apps/files/l10n/ca.json b/apps/files/l10n/ca.json index c80fa666f08..26f6e27ce53 100644 --- a/apps/files/l10n/ca.json +++ b/apps/files/l10n/ca.json @@ -139,8 +139,8 @@ "Show hidden files" : "Mostra els fitxers ocults", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "Utilitza aquesta adreça per <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">accedir als teus arxius mitjançant WebDAV</a>", - "Cancel upload" : "Cancel·la la pujada", "Toggle grid view" : "Commuta vista de quadrícula", + "Cancel upload" : "Cancel·la la pujada", "No files in here" : "No hi ha arxius", "Upload some content or sync with your devices!" : "Pugi continguts o sincronitzi els seus dispositius.", "No entries found in this folder" : "No hi ha entrades en aquesta carpeta", diff --git a/apps/files/l10n/cs.js b/apps/files/l10n/cs.js index 96b93d361e7..3a9297aa20d 100644 --- a/apps/files/l10n/cs.js +++ b/apps/files/l10n/cs.js @@ -141,8 +141,8 @@ OC.L10N.register( "Show hidden files" : "Zobrazit skryté soubory", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "Použijte tuto adresu pro <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">přístup k vašim souborům přes WebDAV</a>", - "Cancel upload" : "Zrušit nahrávání", "Toggle grid view" : "Přepnout zobrazení mřížky", + "Cancel upload" : "Zrušit nahrávání", "No files in here" : "Žádné soubory", "Upload some content or sync with your devices!" : "Nahrajte nějaký obsah nebo synchronizujte se svými přístroji!", "No entries found in this folder" : "V této složce nebylo nic nalezeno", diff --git a/apps/files/l10n/cs.json b/apps/files/l10n/cs.json index cb01165503d..1b19b759396 100644 --- a/apps/files/l10n/cs.json +++ b/apps/files/l10n/cs.json @@ -139,8 +139,8 @@ "Show hidden files" : "Zobrazit skryté soubory", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "Použijte tuto adresu pro <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">přístup k vašim souborům přes WebDAV</a>", - "Cancel upload" : "Zrušit nahrávání", "Toggle grid view" : "Přepnout zobrazení mřížky", + "Cancel upload" : "Zrušit nahrávání", "No files in here" : "Žádné soubory", "Upload some content or sync with your devices!" : "Nahrajte nějaký obsah nebo synchronizujte se svými přístroji!", "No entries found in this folder" : "V této složce nebylo nic nalezeno", diff --git a/apps/files/l10n/de.js b/apps/files/l10n/de.js index d41f5f9642a..0f299246d4b 100644 --- a/apps/files/l10n/de.js +++ b/apps/files/l10n/de.js @@ -14,6 +14,7 @@ OC.L10N.register( "Home" : "Home", "Close" : "Schließen", "Could not create folder \"{dir}\"" : "Der Ordner konnte nicht erstellt werden \"{dir}\"", + "This will stop your current uploads." : "Hiermit werden die aktuellen Uploads angehalten.", "Upload cancelled." : "Hochladen abgebrochen.", "…" : "…", "Processing files …" : "Dateien werden verarbeitet…", @@ -21,6 +22,7 @@ OC.L10N.register( "Not enough free space, you are uploading {size1} but only {size2} is left" : "Nicht genügend freier Speicherplatz, Du möchtest{size1} hochladen, es sind jedoch nur noch {size2} verfügbar.", "Target folder \"{dir}\" does not exist any more" : "Ziel-Verzeichnis \"{dir}\" existiert nicht mehr", "Not enough free space" : "Nicht genügend freier Speicherplatz", + "An unknown error has occurred" : "Unbekannter Fehler aufgetreten", "Uploading …" : "Lade hoch…", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} von {totalSize} ({bitrate})", "Uploading that item is not supported" : "Hochladen von Daten dieser Art wird nicht unterstützt.", @@ -141,8 +143,8 @@ OC.L10N.register( "Show hidden files" : "Versteckte Dateien anzeigen", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "Diese Adresse benutzen, um <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">über WebDAV auf Deine Dateien zuzugreifen</a>", - "Cancel upload" : "Hochladen abbrechen", "Toggle grid view" : "Rasteransicht umschalten", + "Cancel upload" : "Hochladen abbrechen", "No files in here" : "Keine Dateien vorhanden", "Upload some content or sync with your devices!" : "Inhalte hochladen oder mit deinen Geräten synchronisieren!", "No entries found in this folder" : "Keine Einträge in diesem Ordner gefunden", diff --git a/apps/files/l10n/de.json b/apps/files/l10n/de.json index a286065f3f6..3b01fa67051 100644 --- a/apps/files/l10n/de.json +++ b/apps/files/l10n/de.json @@ -12,6 +12,7 @@ "Home" : "Home", "Close" : "Schließen", "Could not create folder \"{dir}\"" : "Der Ordner konnte nicht erstellt werden \"{dir}\"", + "This will stop your current uploads." : "Hiermit werden die aktuellen Uploads angehalten.", "Upload cancelled." : "Hochladen abgebrochen.", "…" : "…", "Processing files …" : "Dateien werden verarbeitet…", @@ -19,6 +20,7 @@ "Not enough free space, you are uploading {size1} but only {size2} is left" : "Nicht genügend freier Speicherplatz, Du möchtest{size1} hochladen, es sind jedoch nur noch {size2} verfügbar.", "Target folder \"{dir}\" does not exist any more" : "Ziel-Verzeichnis \"{dir}\" existiert nicht mehr", "Not enough free space" : "Nicht genügend freier Speicherplatz", + "An unknown error has occurred" : "Unbekannter Fehler aufgetreten", "Uploading …" : "Lade hoch…", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} von {totalSize} ({bitrate})", "Uploading that item is not supported" : "Hochladen von Daten dieser Art wird nicht unterstützt.", @@ -139,8 +141,8 @@ "Show hidden files" : "Versteckte Dateien anzeigen", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "Diese Adresse benutzen, um <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">über WebDAV auf Deine Dateien zuzugreifen</a>", - "Cancel upload" : "Hochladen abbrechen", "Toggle grid view" : "Rasteransicht umschalten", + "Cancel upload" : "Hochladen abbrechen", "No files in here" : "Keine Dateien vorhanden", "Upload some content or sync with your devices!" : "Inhalte hochladen oder mit deinen Geräten synchronisieren!", "No entries found in this folder" : "Keine Einträge in diesem Ordner gefunden", diff --git a/apps/files/l10n/de_DE.js b/apps/files/l10n/de_DE.js index 26cc699896f..6aac17f0d31 100644 --- a/apps/files/l10n/de_DE.js +++ b/apps/files/l10n/de_DE.js @@ -14,6 +14,7 @@ OC.L10N.register( "Home" : "Home", "Close" : "Schließen", "Could not create folder \"{dir}\"" : "Der Ordner konnte nicht erstellt werden \"{dir}\"", + "This will stop your current uploads." : "Hiermit werden die aktuellen Uploads angehalten.", "Upload cancelled." : "Hochladen abgebrochen.", "…" : "…", "Processing files …" : "Dateien werden verarbeitet…", @@ -21,6 +22,7 @@ OC.L10N.register( "Not enough free space, you are uploading {size1} but only {size2} is left" : "Nicht genügend freier Speicherplatz, Sie möchten {size1} hochladen, es sind jedoch nur noch {size2} verfügbar.", "Target folder \"{dir}\" does not exist any more" : "Ziel-Verzeichnis \"{dir}\" existiert nicht mehr", "Not enough free space" : "Nicht genügend freier Speicherplatz", + "An unknown error has occurred" : "Unbekannter Fehler aufgetreten", "Uploading …" : "Lade hoch...", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} von {totalSize} ({bitrate})", "Uploading that item is not supported" : "Hochladen von Daten dieser Art wird nicht unterstützt.", @@ -141,8 +143,8 @@ OC.L10N.register( "Show hidden files" : "Versteckte Dateien anzeigen", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "Benutzen Sie diese Adresse, um <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">via WebDAV auf Ihre Dateien zuzugreifen</a>", - "Cancel upload" : "Hochladen abbrechen", "Toggle grid view" : "Rasteransicht umschalten", + "Cancel upload" : "Hochladen abbrechen", "No files in here" : "Keine Dateien vorhanden", "Upload some content or sync with your devices!" : "Laden Sie Inhalte hoch oder synchronisieren Sie mit Ihren Geräten!", "No entries found in this folder" : "Keine Einträge in diesem Ordner gefunden", diff --git a/apps/files/l10n/de_DE.json b/apps/files/l10n/de_DE.json index 93dfb8fd250..ea45a0de36b 100644 --- a/apps/files/l10n/de_DE.json +++ b/apps/files/l10n/de_DE.json @@ -12,6 +12,7 @@ "Home" : "Home", "Close" : "Schließen", "Could not create folder \"{dir}\"" : "Der Ordner konnte nicht erstellt werden \"{dir}\"", + "This will stop your current uploads." : "Hiermit werden die aktuellen Uploads angehalten.", "Upload cancelled." : "Hochladen abgebrochen.", "…" : "…", "Processing files …" : "Dateien werden verarbeitet…", @@ -19,6 +20,7 @@ "Not enough free space, you are uploading {size1} but only {size2} is left" : "Nicht genügend freier Speicherplatz, Sie möchten {size1} hochladen, es sind jedoch nur noch {size2} verfügbar.", "Target folder \"{dir}\" does not exist any more" : "Ziel-Verzeichnis \"{dir}\" existiert nicht mehr", "Not enough free space" : "Nicht genügend freier Speicherplatz", + "An unknown error has occurred" : "Unbekannter Fehler aufgetreten", "Uploading …" : "Lade hoch...", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} von {totalSize} ({bitrate})", "Uploading that item is not supported" : "Hochladen von Daten dieser Art wird nicht unterstützt.", @@ -139,8 +141,8 @@ "Show hidden files" : "Versteckte Dateien anzeigen", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "Benutzen Sie diese Adresse, um <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">via WebDAV auf Ihre Dateien zuzugreifen</a>", - "Cancel upload" : "Hochladen abbrechen", "Toggle grid view" : "Rasteransicht umschalten", + "Cancel upload" : "Hochladen abbrechen", "No files in here" : "Keine Dateien vorhanden", "Upload some content or sync with your devices!" : "Laden Sie Inhalte hoch oder synchronisieren Sie mit Ihren Geräten!", "No entries found in this folder" : "Keine Einträge in diesem Ordner gefunden", diff --git a/apps/files/l10n/eo.js b/apps/files/l10n/eo.js index cec6ccbb816..34c16c92965 100644 --- a/apps/files/l10n/eo.js +++ b/apps/files/l10n/eo.js @@ -141,8 +141,8 @@ OC.L10N.register( "Show hidden files" : "Montri kaŝitajn dosierojn", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "Uzu tiun adreson por <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">atingi viajn dosierojn per WebDAV</a>", - "Cancel upload" : "Nuligi alŝuton", "Toggle grid view" : "Baskuligi kradan vidon", + "Cancel upload" : "Nuligi alŝuton", "No files in here" : "Neniu dosiero ĉi tie", "Upload some content or sync with your devices!" : "Alŝutu iom da enhavo aŭ sinkronigu kun viaj aparatoj!", "No entries found in this folder" : "Neniu enigo troviĝis en ĉi tiu dosierujo", diff --git a/apps/files/l10n/eo.json b/apps/files/l10n/eo.json index 81ad59150bc..98a3b7f59e0 100644 --- a/apps/files/l10n/eo.json +++ b/apps/files/l10n/eo.json @@ -139,8 +139,8 @@ "Show hidden files" : "Montri kaŝitajn dosierojn", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "Uzu tiun adreson por <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">atingi viajn dosierojn per WebDAV</a>", - "Cancel upload" : "Nuligi alŝuton", "Toggle grid view" : "Baskuligi kradan vidon", + "Cancel upload" : "Nuligi alŝuton", "No files in here" : "Neniu dosiero ĉi tie", "Upload some content or sync with your devices!" : "Alŝutu iom da enhavo aŭ sinkronigu kun viaj aparatoj!", "No entries found in this folder" : "Neniu enigo troviĝis en ĉi tiu dosierujo", diff --git a/apps/files/l10n/es.js b/apps/files/l10n/es.js index 1aa1712d818..f8fa20f0255 100644 --- a/apps/files/l10n/es.js +++ b/apps/files/l10n/es.js @@ -141,8 +141,8 @@ OC.L10N.register( "Show hidden files" : "Mostrar archivos ocultos", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "Usa esta dirección para <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">acceder a tus archivos vía WebDAV</a>", - "Cancel upload" : "Cancelar subida", "Toggle grid view" : "Alternar vista de cuadrícula", + "Cancel upload" : "Cancelar subida", "No files in here" : "Aquí no hay archivos", "Upload some content or sync with your devices!" : "¡Suba contenidos o sincronice sus dispositivos!", "No entries found in this folder" : "No hay entradas en esta carpeta", diff --git a/apps/files/l10n/es.json b/apps/files/l10n/es.json index 46fd161fad4..46b6a4f3117 100644 --- a/apps/files/l10n/es.json +++ b/apps/files/l10n/es.json @@ -139,8 +139,8 @@ "Show hidden files" : "Mostrar archivos ocultos", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "Usa esta dirección para <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">acceder a tus archivos vía WebDAV</a>", - "Cancel upload" : "Cancelar subida", "Toggle grid view" : "Alternar vista de cuadrícula", + "Cancel upload" : "Cancelar subida", "No files in here" : "Aquí no hay archivos", "Upload some content or sync with your devices!" : "¡Suba contenidos o sincronice sus dispositivos!", "No entries found in this folder" : "No hay entradas en esta carpeta", diff --git a/apps/files/l10n/fr.js b/apps/files/l10n/fr.js index 7f8124124f1..7a2aec6ca28 100644 --- a/apps/files/l10n/fr.js +++ b/apps/files/l10n/fr.js @@ -14,6 +14,7 @@ OC.L10N.register( "Home" : "Mes fichiers", "Close" : "Fermer", "Could not create folder \"{dir}\"" : "Impossible de créer le dossier \"{dir}\"", + "This will stop your current uploads." : "Cela va arrêter vos téléversements actuels.", "Upload cancelled." : "Téléversement annulé.", "…" : "…", "Processing files …" : "Fichiers en cours d'exécution …", @@ -21,6 +22,7 @@ OC.L10N.register( "Not enough free space, you are uploading {size1} but only {size2} is left" : "Espace libre insuffisant : vous tentez d'envoyer {size1} mais seulement {size2} sont disponibles", "Target folder \"{dir}\" does not exist any more" : "Le dossier cible « {dir} » n'existe plus", "Not enough free space" : "Espace disponible insuffisant", + "An unknown error has occurred" : "Une erreur inconnue est survenue", "Uploading …" : "Téléversement en cours...", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} sur {totalSize} ({bitrate})", "Uploading that item is not supported" : "Le téléversement de cet élément n'est pas supporté", @@ -141,8 +143,8 @@ OC.L10N.register( "Show hidden files" : "Afficher les fichiers cachés", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "Utilisez cette adresse pour <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">accéder à vos fichiers par WebDAV</a>", - "Cancel upload" : "Annuler le téléversement", "Toggle grid view" : "Activer/Désactiver l'affichage mosaïque", + "Cancel upload" : "Annuler le téléversement", "No files in here" : "Aucun fichier", "Upload some content or sync with your devices!" : "Déposez du contenu ou synchronisez vos appareils !", "No entries found in this folder" : "Aucune entrée trouvée dans ce dossier", diff --git a/apps/files/l10n/fr.json b/apps/files/l10n/fr.json index 4564e3b8006..fb4c3d5dacc 100644 --- a/apps/files/l10n/fr.json +++ b/apps/files/l10n/fr.json @@ -12,6 +12,7 @@ "Home" : "Mes fichiers", "Close" : "Fermer", "Could not create folder \"{dir}\"" : "Impossible de créer le dossier \"{dir}\"", + "This will stop your current uploads." : "Cela va arrêter vos téléversements actuels.", "Upload cancelled." : "Téléversement annulé.", "…" : "…", "Processing files …" : "Fichiers en cours d'exécution …", @@ -19,6 +20,7 @@ "Not enough free space, you are uploading {size1} but only {size2} is left" : "Espace libre insuffisant : vous tentez d'envoyer {size1} mais seulement {size2} sont disponibles", "Target folder \"{dir}\" does not exist any more" : "Le dossier cible « {dir} » n'existe plus", "Not enough free space" : "Espace disponible insuffisant", + "An unknown error has occurred" : "Une erreur inconnue est survenue", "Uploading …" : "Téléversement en cours...", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} sur {totalSize} ({bitrate})", "Uploading that item is not supported" : "Le téléversement de cet élément n'est pas supporté", @@ -139,8 +141,8 @@ "Show hidden files" : "Afficher les fichiers cachés", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "Utilisez cette adresse pour <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">accéder à vos fichiers par WebDAV</a>", - "Cancel upload" : "Annuler le téléversement", "Toggle grid view" : "Activer/Désactiver l'affichage mosaïque", + "Cancel upload" : "Annuler le téléversement", "No files in here" : "Aucun fichier", "Upload some content or sync with your devices!" : "Déposez du contenu ou synchronisez vos appareils !", "No entries found in this folder" : "Aucune entrée trouvée dans ce dossier", diff --git a/apps/files/l10n/hu.js b/apps/files/l10n/hu.js index fa6cc3d551f..98b8e7df043 100644 --- a/apps/files/l10n/hu.js +++ b/apps/files/l10n/hu.js @@ -141,8 +141,8 @@ OC.L10N.register( "Show hidden files" : "Rejtett fájlok megjelenítése", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "Használd ezt a címet a <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">fájlok WebDAV-al való eléréséhez</a>", - "Cancel upload" : "Feltöltés megszakítása", "Toggle grid view" : "Rácsnézet váltás", + "Cancel upload" : "Feltöltés megszakítása", "No files in here" : "Itt nincsenek fájlok", "Upload some content or sync with your devices!" : "Tölts fel néhány tartalmat, vagy szinkronizálj az eszközöddel!", "No entries found in this folder" : "Nincsenek bejegyzések ebben a mappában", diff --git a/apps/files/l10n/hu.json b/apps/files/l10n/hu.json index a9ae0edd3ca..c30b9dd4cab 100644 --- a/apps/files/l10n/hu.json +++ b/apps/files/l10n/hu.json @@ -139,8 +139,8 @@ "Show hidden files" : "Rejtett fájlok megjelenítése", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "Használd ezt a címet a <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">fájlok WebDAV-al való eléréséhez</a>", - "Cancel upload" : "Feltöltés megszakítása", "Toggle grid view" : "Rácsnézet váltás", + "Cancel upload" : "Feltöltés megszakítása", "No files in here" : "Itt nincsenek fájlok", "Upload some content or sync with your devices!" : "Tölts fel néhány tartalmat, vagy szinkronizálj az eszközöddel!", "No entries found in this folder" : "Nincsenek bejegyzések ebben a mappában", diff --git a/apps/files/l10n/is.js b/apps/files/l10n/is.js index 725996d4493..b5180bf03da 100644 --- a/apps/files/l10n/is.js +++ b/apps/files/l10n/is.js @@ -141,8 +141,8 @@ OC.L10N.register( "Show hidden files" : "Sýna faldar skrár", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "Notaðu þetta vistfang til að <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">nálgast skrárnar þínar með WebDAV</a>", - "Cancel upload" : "Hætta við innsendingu", "Toggle grid view" : "Víxla reitasýn af/á", + "Cancel upload" : "Hætta við innsendingu", "No files in here" : "Engar skrár hér", "Upload some content or sync with your devices!" : "Sendu inn eitthvað efni eða samstilltu við tækin þín!", "No entries found in this folder" : "Engar skrár fundust í þessari möppu", diff --git a/apps/files/l10n/is.json b/apps/files/l10n/is.json index 8aa9159d537..7eca435017b 100644 --- a/apps/files/l10n/is.json +++ b/apps/files/l10n/is.json @@ -139,8 +139,8 @@ "Show hidden files" : "Sýna faldar skrár", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "Notaðu þetta vistfang til að <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">nálgast skrárnar þínar með WebDAV</a>", - "Cancel upload" : "Hætta við innsendingu", "Toggle grid view" : "Víxla reitasýn af/á", + "Cancel upload" : "Hætta við innsendingu", "No files in here" : "Engar skrár hér", "Upload some content or sync with your devices!" : "Sendu inn eitthvað efni eða samstilltu við tækin þín!", "No entries found in this folder" : "Engar skrár fundust í þessari möppu", diff --git a/apps/files/l10n/it.js b/apps/files/l10n/it.js index df3b60e4405..f10f0df7b2d 100644 --- a/apps/files/l10n/it.js +++ b/apps/files/l10n/it.js @@ -141,8 +141,8 @@ OC.L10N.register( "Show hidden files" : "Mostra i file nascosti", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "Utilizza questo indirizzo per <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">accedere ai tuoi file con WebDAV</a>", - "Cancel upload" : "Annulla caricamento", "Toggle grid view" : "Commuta la vista a griglia", + "Cancel upload" : "Annulla caricamento", "No files in here" : "Qui non c'è alcun file", "Upload some content or sync with your devices!" : "Carica alcuni contenuti o sincronizza con i tuoi dispositivi!", "No entries found in this folder" : "Nessuna voce trovata in questa cartella", diff --git a/apps/files/l10n/it.json b/apps/files/l10n/it.json index eaa8cf3fbb7..852d9c40cc8 100644 --- a/apps/files/l10n/it.json +++ b/apps/files/l10n/it.json @@ -139,8 +139,8 @@ "Show hidden files" : "Mostra i file nascosti", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "Utilizza questo indirizzo per <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">accedere ai tuoi file con WebDAV</a>", - "Cancel upload" : "Annulla caricamento", "Toggle grid view" : "Commuta la vista a griglia", + "Cancel upload" : "Annulla caricamento", "No files in here" : "Qui non c'è alcun file", "Upload some content or sync with your devices!" : "Carica alcuni contenuti o sincronizza con i tuoi dispositivi!", "No entries found in this folder" : "Nessuna voce trovata in questa cartella", diff --git a/apps/files/l10n/nl.js b/apps/files/l10n/nl.js index ffcf8b6043c..c1746168f24 100644 --- a/apps/files/l10n/nl.js +++ b/apps/files/l10n/nl.js @@ -141,8 +141,8 @@ OC.L10N.register( "Show hidden files" : "Verborgen bestanden tonen", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "Gebruik deze link <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">om je bestanden te benaderen via WebDAV</a>", - "Cancel upload" : "Stop upload", "Toggle grid view" : "Omschakelen roosterbeeld", + "Cancel upload" : "Stop upload", "No files in here" : "Hier geen bestanden", "Upload some content or sync with your devices!" : "Upload je inhoud of synchroniseer met je apparaten!", "No entries found in this folder" : "Niets", diff --git a/apps/files/l10n/nl.json b/apps/files/l10n/nl.json index 0dcb9242a76..82fe567d06d 100644 --- a/apps/files/l10n/nl.json +++ b/apps/files/l10n/nl.json @@ -139,8 +139,8 @@ "Show hidden files" : "Verborgen bestanden tonen", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "Gebruik deze link <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">om je bestanden te benaderen via WebDAV</a>", - "Cancel upload" : "Stop upload", "Toggle grid view" : "Omschakelen roosterbeeld", + "Cancel upload" : "Stop upload", "No files in here" : "Hier geen bestanden", "Upload some content or sync with your devices!" : "Upload je inhoud of synchroniseer met je apparaten!", "No entries found in this folder" : "Niets", diff --git a/apps/files/l10n/pt_BR.js b/apps/files/l10n/pt_BR.js index 80512107b98..e979cebd642 100644 --- a/apps/files/l10n/pt_BR.js +++ b/apps/files/l10n/pt_BR.js @@ -14,6 +14,7 @@ OC.L10N.register( "Home" : "Início", "Close" : "Fechar", "Could not create folder \"{dir}\"" : "Não foi possível criar a pasta \"{dir}\"", + "This will stop your current uploads." : "Isso irá parar seus envios atuais.", "Upload cancelled." : "Envio cancelado.", "…" : "…", "Processing files …" : "Processando arquivos...", @@ -21,6 +22,7 @@ OC.L10N.register( "Not enough free space, you are uploading {size1} but only {size2} is left" : "Não há espaço suficiente, você está enviando {size1} mas resta apenas {size2}", "Target folder \"{dir}\" does not exist any more" : "Pasta de destino \"{dir}\" não existe mais", "Not enough free space" : "Espaço livre insuficiente", + "An unknown error has occurred" : "Um erro desconhecido ocorreu", "Uploading …" : "Enviando...", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})", "Uploading that item is not supported" : "O envio deste item não é suportado", @@ -141,8 +143,8 @@ OC.L10N.register( "Show hidden files" : "Mostrar arquivos ocultos", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "Use este endereço para <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">acessar seus arquivos via WebDAV</a>", - "Cancel upload" : "Cancelar envio", "Toggle grid view" : "Alternar vista de grade", + "Cancel upload" : "Cancelar envio", "No files in here" : "Nenhum arquivo aqui", "Upload some content or sync with your devices!" : "Envie um arquivo ou sincronize com seus dispositivos!", "No entries found in this folder" : "Nenhuma entrada foi encontrada nesta pasta", diff --git a/apps/files/l10n/pt_BR.json b/apps/files/l10n/pt_BR.json index 2a848d3253d..8e5ddc52a34 100644 --- a/apps/files/l10n/pt_BR.json +++ b/apps/files/l10n/pt_BR.json @@ -12,6 +12,7 @@ "Home" : "Início", "Close" : "Fechar", "Could not create folder \"{dir}\"" : "Não foi possível criar a pasta \"{dir}\"", + "This will stop your current uploads." : "Isso irá parar seus envios atuais.", "Upload cancelled." : "Envio cancelado.", "…" : "…", "Processing files …" : "Processando arquivos...", @@ -19,6 +20,7 @@ "Not enough free space, you are uploading {size1} but only {size2} is left" : "Não há espaço suficiente, você está enviando {size1} mas resta apenas {size2}", "Target folder \"{dir}\" does not exist any more" : "Pasta de destino \"{dir}\" não existe mais", "Not enough free space" : "Espaço livre insuficiente", + "An unknown error has occurred" : "Um erro desconhecido ocorreu", "Uploading …" : "Enviando...", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})", "Uploading that item is not supported" : "O envio deste item não é suportado", @@ -139,8 +141,8 @@ "Show hidden files" : "Mostrar arquivos ocultos", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "Use este endereço para <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">acessar seus arquivos via WebDAV</a>", - "Cancel upload" : "Cancelar envio", "Toggle grid view" : "Alternar vista de grade", + "Cancel upload" : "Cancelar envio", "No files in here" : "Nenhum arquivo aqui", "Upload some content or sync with your devices!" : "Envie um arquivo ou sincronize com seus dispositivos!", "No entries found in this folder" : "Nenhuma entrada foi encontrada nesta pasta", diff --git a/apps/files/l10n/sk.js b/apps/files/l10n/sk.js index 80a968005db..da7adf77744 100644 --- a/apps/files/l10n/sk.js +++ b/apps/files/l10n/sk.js @@ -141,8 +141,8 @@ OC.L10N.register( "Show hidden files" : "Zobraziť skryté súbory", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "Použiť túto adresu pre <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">prístup ku svojím súborom cez WebDAV</a>", - "Cancel upload" : "Zrušiť nahrávanie", "Toggle grid view" : "Zobrazenie mriežky", + "Cancel upload" : "Zrušiť nahrávanie", "No files in here" : "Nie sú tu žiadne súbory", "Upload some content or sync with your devices!" : "Nahrajte nejaký obsah alebo synchronizujte zo svojimi zariadeniami!", "No entries found in this folder" : "V tomto priečinku nebolo nič nájdené", diff --git a/apps/files/l10n/sk.json b/apps/files/l10n/sk.json index 86995abb4b4..aecf724249c 100644 --- a/apps/files/l10n/sk.json +++ b/apps/files/l10n/sk.json @@ -139,8 +139,8 @@ "Show hidden files" : "Zobraziť skryté súbory", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "Použiť túto adresu pre <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">prístup ku svojím súborom cez WebDAV</a>", - "Cancel upload" : "Zrušiť nahrávanie", "Toggle grid view" : "Zobrazenie mriežky", + "Cancel upload" : "Zrušiť nahrávanie", "No files in here" : "Nie sú tu žiadne súbory", "Upload some content or sync with your devices!" : "Nahrajte nejaký obsah alebo synchronizujte zo svojimi zariadeniami!", "No entries found in this folder" : "V tomto priečinku nebolo nič nájdené", diff --git a/apps/files/l10n/sr.js b/apps/files/l10n/sr.js index f11401f1405..0a4e5de1e68 100644 --- a/apps/files/l10n/sr.js +++ b/apps/files/l10n/sr.js @@ -14,6 +14,7 @@ OC.L10N.register( "Home" : "Почетна", "Close" : "Затвори", "Could not create folder \"{dir}\"" : "Не могу да направим фасциклу \"{dir}\"", + "This will stop your current uploads." : "Ово ће да прекине тренутна отпремања.", "Upload cancelled." : "Отпремање је отказано.", "…" : "…", "Processing files …" : "Обрађујем фајлове…", @@ -21,6 +22,7 @@ OC.L10N.register( "Not enough free space, you are uploading {size1} but only {size2} is left" : "Нема простора. Отпремате {size1} али само {size2} је преостало", "Target folder \"{dir}\" does not exist any more" : "Одредишна фасцикла \"{dir}\" више не постоји", "Not enough free space" : "Нема довољно слободног места", + "An unknown error has occurred" : "Десила се непозната грешка", "Uploading …" : "Отпремам…", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} од {totalSize} ({bitrate})", "Uploading that item is not supported" : "Отпремање те ставке није подржано", @@ -141,8 +143,8 @@ OC.L10N.register( "Show hidden files" : "Прикажи скривене фајлове", "WebDAV" : "ВебДАВ", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "Користи ову адресу да <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">приступате Вашим фајловима преко ВебДАВа</a>", - "Cancel upload" : "Откажи отпремање", "Toggle grid view" : "Укључи/искључи приказ мреже", + "Cancel upload" : "Откажи отпремање", "No files in here" : "Овде нема фајлова", "Upload some content or sync with your devices!" : "Отпремите неки садржај или синхронизујте са вашим уређајима!", "No entries found in this folder" : "Нема ничега у овој фасцикли", diff --git a/apps/files/l10n/sr.json b/apps/files/l10n/sr.json index 8f43bbaf289..3a309160fcd 100644 --- a/apps/files/l10n/sr.json +++ b/apps/files/l10n/sr.json @@ -12,6 +12,7 @@ "Home" : "Почетна", "Close" : "Затвори", "Could not create folder \"{dir}\"" : "Не могу да направим фасциклу \"{dir}\"", + "This will stop your current uploads." : "Ово ће да прекине тренутна отпремања.", "Upload cancelled." : "Отпремање је отказано.", "…" : "…", "Processing files …" : "Обрађујем фајлове…", @@ -19,6 +20,7 @@ "Not enough free space, you are uploading {size1} but only {size2} is left" : "Нема простора. Отпремате {size1} али само {size2} је преостало", "Target folder \"{dir}\" does not exist any more" : "Одредишна фасцикла \"{dir}\" више не постоји", "Not enough free space" : "Нема довољно слободног места", + "An unknown error has occurred" : "Десила се непозната грешка", "Uploading …" : "Отпремам…", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} од {totalSize} ({bitrate})", "Uploading that item is not supported" : "Отпремање те ставке није подржано", @@ -139,8 +141,8 @@ "Show hidden files" : "Прикажи скривене фајлове", "WebDAV" : "ВебДАВ", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "Користи ову адресу да <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">приступате Вашим фајловима преко ВебДАВа</a>", - "Cancel upload" : "Откажи отпремање", "Toggle grid view" : "Укључи/искључи приказ мреже", + "Cancel upload" : "Откажи отпремање", "No files in here" : "Овде нема фајлова", "Upload some content or sync with your devices!" : "Отпремите неки садржај или синхронизујте са вашим уређајима!", "No entries found in this folder" : "Нема ничега у овој фасцикли", diff --git a/apps/files/l10n/sv.js b/apps/files/l10n/sv.js index 2a63f74249c..f09a03b3847 100644 --- a/apps/files/l10n/sv.js +++ b/apps/files/l10n/sv.js @@ -14,6 +14,7 @@ OC.L10N.register( "Home" : "Hem", "Close" : "Stäng", "Could not create folder \"{dir}\"" : "Kunde inte skapa mapp \"{dir}\"", + "This will stop your current uploads." : "Detta kommer att stoppa nuvarande uppladdningar.", "Upload cancelled." : "Uppladdning avbruten.", "…" : "...", "Processing files …" : "Bearbetar filer ...", @@ -21,6 +22,7 @@ OC.L10N.register( "Not enough free space, you are uploading {size1} but only {size2} is left" : "Inte tillräckligt med ledigt utrymme, du laddar upp {size1} men endast {size2} finns kvar.", "Target folder \"{dir}\" does not exist any more" : "Målmapp \"{dir}\" existerar inte mer", "Not enough free space" : "Inte tillräckligt med ledigt utrymme", + "An unknown error has occurred" : "Ett okänt fel uppstod", "Uploading …" : "Laddar upp ..", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} av {totalSize} ({bitrate})", "Uploading that item is not supported" : "Uppladdning av det här objektet stöds inte", @@ -141,8 +143,8 @@ OC.L10N.register( "Show hidden files" : "Visa dolda filer", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "Använd denna adress för att <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">komma åt dina filer med WebDAV</a>", - "Cancel upload" : "Avbryt uppladdning", "Toggle grid view" : "Växla rutnätsvy", + "Cancel upload" : "Avbryt uppladdning", "No files in here" : "Inga filer kunde hittas", "Upload some content or sync with your devices!" : "Ladda upp innehåll eller synkronisera med dina enheter!", "No entries found in this folder" : "Inget innehåll hittades i denna mapp", diff --git a/apps/files/l10n/sv.json b/apps/files/l10n/sv.json index 8f542cd40f2..7fd2d9d6c09 100644 --- a/apps/files/l10n/sv.json +++ b/apps/files/l10n/sv.json @@ -12,6 +12,7 @@ "Home" : "Hem", "Close" : "Stäng", "Could not create folder \"{dir}\"" : "Kunde inte skapa mapp \"{dir}\"", + "This will stop your current uploads." : "Detta kommer att stoppa nuvarande uppladdningar.", "Upload cancelled." : "Uppladdning avbruten.", "…" : "...", "Processing files …" : "Bearbetar filer ...", @@ -19,6 +20,7 @@ "Not enough free space, you are uploading {size1} but only {size2} is left" : "Inte tillräckligt med ledigt utrymme, du laddar upp {size1} men endast {size2} finns kvar.", "Target folder \"{dir}\" does not exist any more" : "Målmapp \"{dir}\" existerar inte mer", "Not enough free space" : "Inte tillräckligt med ledigt utrymme", + "An unknown error has occurred" : "Ett okänt fel uppstod", "Uploading …" : "Laddar upp ..", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} av {totalSize} ({bitrate})", "Uploading that item is not supported" : "Uppladdning av det här objektet stöds inte", @@ -139,8 +141,8 @@ "Show hidden files" : "Visa dolda filer", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "Använd denna adress för att <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">komma åt dina filer med WebDAV</a>", - "Cancel upload" : "Avbryt uppladdning", "Toggle grid view" : "Växla rutnätsvy", + "Cancel upload" : "Avbryt uppladdning", "No files in here" : "Inga filer kunde hittas", "Upload some content or sync with your devices!" : "Ladda upp innehåll eller synkronisera med dina enheter!", "No entries found in this folder" : "Inget innehåll hittades i denna mapp", diff --git a/apps/files/l10n/tr.js b/apps/files/l10n/tr.js index 5cf85eefd02..3e079400be9 100644 --- a/apps/files/l10n/tr.js +++ b/apps/files/l10n/tr.js @@ -14,6 +14,7 @@ OC.L10N.register( "Home" : "Giriş", "Close" : "Kapat", "Could not create folder \"{dir}\"" : "\"{dir}\" klasörü oluşturulamadı", + "This will stop your current uploads." : "Bu işlem geçerli yüklemeleri durduracak.", "Upload cancelled." : "Yükleme iptal edildi.", "…" : "…", "Processing files …" : "Dosyalar işleniyor…", @@ -21,6 +22,7 @@ OC.L10N.register( "Not enough free space, you are uploading {size1} but only {size2} is left" : "Yeterli boş alan yok. Yüklemek istediğiniz boyut {size1} ancak yalnız {size2} boş alan var", "Target folder \"{dir}\" does not exist any more" : "\"{dir}\" hedef klasörü artık yok", "Not enough free space" : "Yeterli boş alan yok", + "An unknown error has occurred" : "Bilinmeyen bir sorun çıktı", "Uploading …" : "Yükleniyor…", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} / {totalSize} ({bitrate})", "Uploading that item is not supported" : "Bu ögenin yüklenmesi desteklenmiyor", @@ -141,8 +143,8 @@ OC.L10N.register( "Show hidden files" : "Gizli dosyaları görüntüle", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "Dosyalarınıza WebDAV üzerinden erişmek için <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">bu adresi kullanın</a>", - "Cancel upload" : "Yüklemeyi iptal et", "Toggle grid view" : "Tablo görünümünü değiştir", + "Cancel upload" : "Yüklemeyi iptal et", "No files in here" : "Burada herhangi bir dosya yok", "Upload some content or sync with your devices!" : "Bir şeyler yükleyin ya da aygıtlarınızla eşitleyin!", "No entries found in this folder" : "Bu klasörde herhangi bir kayıt bulunamadı", diff --git a/apps/files/l10n/tr.json b/apps/files/l10n/tr.json index 124fddf6083..7959a9e1c39 100644 --- a/apps/files/l10n/tr.json +++ b/apps/files/l10n/tr.json @@ -12,6 +12,7 @@ "Home" : "Giriş", "Close" : "Kapat", "Could not create folder \"{dir}\"" : "\"{dir}\" klasörü oluşturulamadı", + "This will stop your current uploads." : "Bu işlem geçerli yüklemeleri durduracak.", "Upload cancelled." : "Yükleme iptal edildi.", "…" : "…", "Processing files …" : "Dosyalar işleniyor…", @@ -19,6 +20,7 @@ "Not enough free space, you are uploading {size1} but only {size2} is left" : "Yeterli boş alan yok. Yüklemek istediğiniz boyut {size1} ancak yalnız {size2} boş alan var", "Target folder \"{dir}\" does not exist any more" : "\"{dir}\" hedef klasörü artık yok", "Not enough free space" : "Yeterli boş alan yok", + "An unknown error has occurred" : "Bilinmeyen bir sorun çıktı", "Uploading …" : "Yükleniyor…", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} / {totalSize} ({bitrate})", "Uploading that item is not supported" : "Bu ögenin yüklenmesi desteklenmiyor", @@ -139,8 +141,8 @@ "Show hidden files" : "Gizli dosyaları görüntüle", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "Dosyalarınıza WebDAV üzerinden erişmek için <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">bu adresi kullanın</a>", - "Cancel upload" : "Yüklemeyi iptal et", "Toggle grid view" : "Tablo görünümünü değiştir", + "Cancel upload" : "Yüklemeyi iptal et", "No files in here" : "Burada herhangi bir dosya yok", "Upload some content or sync with your devices!" : "Bir şeyler yükleyin ya da aygıtlarınızla eşitleyin!", "No entries found in this folder" : "Bu klasörde herhangi bir kayıt bulunamadı", diff --git a/apps/files/l10n/zh_TW.js b/apps/files/l10n/zh_TW.js index 2bce4284634..79c30a4b12c 100644 --- a/apps/files/l10n/zh_TW.js +++ b/apps/files/l10n/zh_TW.js @@ -140,8 +140,8 @@ OC.L10N.register( "Show hidden files" : "顯示隱藏檔", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "使用這個位址來<a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">使用 WebDAV 存取檔案</a>", - "Cancel upload" : "取消上傳", "Toggle grid view" : "切換網格檢視", + "Cancel upload" : "取消上傳", "No files in here" : "沒有任何檔案", "Upload some content or sync with your devices!" : "在您的裝置中同步或上傳一些內容", "No entries found in this folder" : "在此資料夾中沒有任何項目", diff --git a/apps/files/l10n/zh_TW.json b/apps/files/l10n/zh_TW.json index 13062ccde3b..689381fe6a7 100644 --- a/apps/files/l10n/zh_TW.json +++ b/apps/files/l10n/zh_TW.json @@ -138,8 +138,8 @@ "Show hidden files" : "顯示隱藏檔", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "使用這個位址來<a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">使用 WebDAV 存取檔案</a>", - "Cancel upload" : "取消上傳", "Toggle grid view" : "切換網格檢視", + "Cancel upload" : "取消上傳", "No files in here" : "沒有任何檔案", "Upload some content or sync with your devices!" : "在您的裝置中同步或上傳一些內容", "No entries found in this folder" : "在此資料夾中沒有任何項目", diff --git a/apps/files/tests/js/filelistSpec.js b/apps/files/tests/js/filelistSpec.js index 85fc31f8c0e..0d18336043e 100644 --- a/apps/files/tests/js/filelistSpec.js +++ b/apps/files/tests/js/filelistSpec.js @@ -905,7 +905,7 @@ describe('OCA.Files.FileList tests', function() { done(); }); }); - it('Restores thumbnail if a file could not be moved', function() { + it('Restores thumbnail if a file could not be moved', function(done) { return fileList.move('One.txt', '/somedir').then(function(){ expect(fileList.findFileEl('One.txt').find('.thumbnail').parent().attr('class')) @@ -922,6 +922,7 @@ describe('OCA.Files.FileList tests', function() { expect(OC.TestUtil.getImageUrl(fileList.findFileEl('One.txt').find('.thumbnail'))) .toEqual(OC.imagePath('core', 'filetypes/text.svg')); + done(); }); }); }); @@ -1766,7 +1767,12 @@ describe('OCA.Files.FileList tests', function() { }); it('dropping files on breadcrumb calls move operation', function(done) { var testDir = '/subdir/two/three with space/four/five'; - var moveStub = sinon.stub(filesClient, 'move').returns($.Deferred().promise()); + var moveStub = sinon.stub(filesClient, 'move'); + var resolve1, resolve2; + var deferredMove1 = $.Deferred(); + var deferredMove2 = $.Deferred(); + moveStub.onCall(0).returns(deferredMove1.promise()); + moveStub.onCall(1).returns(deferredMove2.promise()); fileList.changeDirectory(testDir); deferredList.resolve(200, [testRoot].concat(testFiles)); var $crumb = fileList.breadcrumb.$el.find('.crumb:eq(4)'); @@ -1782,8 +1788,7 @@ describe('OCA.Files.FileList tests', function() { $('<tr data-file="Two.jpg" data-dir="' + testDir + '"></tr>') ]); // simulate drop event - return fileList._onDropOnBreadCrumb(new $.Event('drop', {target: $crumb}), ui).then(function(){ - + var result = fileList._onDropOnBreadCrumb(new $.Event('drop', {target: $crumb}), ui).then(function(){ expect(moveStub.callCount).toEqual(2); expect(moveStub.getCall(0).args[0]).toEqual(testDir + '/One.txt'); expect(moveStub.getCall(0).args[1]).toEqual('/subdir/two/three with space/One.txt'); @@ -1792,6 +1797,9 @@ describe('OCA.Files.FileList tests', function() { moveStub.restore(); done(); }); + deferredMove1.resolve(201); + deferredMove2.resolve(201); + return result; }); it('dropping files on same dir breadcrumb does nothing', function() { var testDir = '/subdir/two/three with space/four/five'; diff --git a/apps/files_sharing/css/mobile.scss b/apps/files_sharing/css/mobile.scss index 272dbbc0c34..3aaa5718cab 100644 --- a/apps/files_sharing/css/mobile.scss +++ b/apps/files_sharing/css/mobile.scss @@ -50,5 +50,11 @@ table td.filename .nametext { padding-right: 14px; background-position: center; } +.note { + padding: 0 20px; +} +#emptycontent { + margin-top: 10vh; +} } diff --git a/apps/files_sharing/css/public.scss b/apps/files_sharing/css/public.scss index d1bdfe9162a..b8a5dbf4f38 100644 --- a/apps/files_sharing/css/public.scss +++ b/apps/files_sharing/css/public.scss @@ -92,8 +92,10 @@ thead { margin: 0 auto; } -#emptycontent.has-disclaimer { - margin-top: 10vh; +#emptycontent { + &.has-note { + margin-top: 5vh; + } } #public-upload #emptycontent h2 { @@ -152,8 +154,9 @@ thead { margin-right: 7px; } -.disclaimer { - margin: -20px auto 30px; +.disclaimer, +.note { + margin: 0 auto 30px; max-width: 400px; text-align: left; } @@ -184,6 +187,11 @@ thead { } } +#show-terms-dialog { + cursor: pointer; + font-weight: bold; +} + // hide the primary on public share on mobile @media only screen and (max-width: 768px) { #body-public { diff --git a/apps/files_sharing/js/public.js b/apps/files_sharing/js/public.js index 2bd550a3b5c..c7169b3ce12 100644 --- a/apps/files_sharing/js/public.js +++ b/apps/files_sharing/js/public.js @@ -89,7 +89,7 @@ OCA.Sharing.PublicApp = { displayName: t('files', 'Delete'), iconClass: 'icon-delete', } - ] + ] } ); this.files = OCA.Files.Files; @@ -297,10 +297,24 @@ OCA.Sharing.PublicApp = { } }); + self._bindShowTermsAction(); + // legacy window.FileList = this.fileList; }, + /** + * Binds the click action for the "terms of service" action. + * Shows an OC info dialog on click. + * + * @private + */ + _bindShowTermsAction: function() { + $('#show-terms-dialog').on('click', function() { + OC.dialogs.info($('#disclaimerText').val(), t('files_sharing', 'Terms of service')); + }); + }, + _showTextPreview: function (data, previewHeight) { var textDiv = $('<div/>').addClass('text-preview'); textDiv.text(data); diff --git a/apps/files_sharing/l10n/ru.js b/apps/files_sharing/l10n/ru.js index 7fcfb301559..c1cff5a9f18 100644 --- a/apps/files_sharing/l10n/ru.js +++ b/apps/files_sharing/l10n/ru.js @@ -72,7 +72,7 @@ OC.L10N.register( "{actor} removed {user} from {file}" : "{actor} закрыл(а) пользователю {user} общий доступ к «{file}»", "{actor} shared {file} with you" : "{actor} предоставил(а) вам общий доступ к «{file}»", "{actor} removed you from the share named {file}" : "{actor} закрыл(а) вам общий доступ к общим именам «{file}»", - "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Файл или папка, которыми поделились по электронной почте или общедоступной ссылке, были <strong>скачаны</strong>", + "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>", "A file or folder has been <strong>shared</strong>" : "<strong>Опубликован</strong> файл или каталог", "Wrong share ID, share doesn't exist" : "Неверный идентификатор, общий ресурс не существует", diff --git a/apps/files_sharing/l10n/ru.json b/apps/files_sharing/l10n/ru.json index 47a1289cd42..1b2bc642d4c 100644 --- a/apps/files_sharing/l10n/ru.json +++ b/apps/files_sharing/l10n/ru.json @@ -70,7 +70,7 @@ "{actor} removed {user} from {file}" : "{actor} закрыл(а) пользователю {user} общий доступ к «{file}»", "{actor} shared {file} with you" : "{actor} предоставил(а) вам общий доступ к «{file}»", "{actor} removed you from the share named {file}" : "{actor} закрыл(а) вам общий доступ к общим именам «{file}»", - "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Файл или папка, которыми поделились по электронной почте или общедоступной ссылке, были <strong>скачаны</strong>", + "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>", "A file or folder has been <strong>shared</strong>" : "<strong>Опубликован</strong> файл или каталог", "Wrong share ID, share doesn't exist" : "Неверный идентификатор, общий ресурс не существует", diff --git a/apps/files_sharing/lib/Controller/ShareController.php b/apps/files_sharing/lib/Controller/ShareController.php index 9a8e1298f93..29ed242a975 100644 --- a/apps/files_sharing/lib/Controller/ShareController.php +++ b/apps/files_sharing/lib/Controller/ShareController.php @@ -61,7 +61,6 @@ use OCA\Files_Sharing\Activity\Providers\Downloads; use OCP\Files\NotFoundException; use OCP\Files\IRootFolder; use OCP\Share\Exceptions\ShareNotFound; -use OCP\Util; use Symfony\Component\EventDispatcher\EventDispatcherInterface; use Symfony\Component\EventDispatcher\GenericEvent; use OCP\Share\IManager as ShareManager; @@ -295,9 +294,12 @@ class ShareController extends AuthPublicShareController { if (!$this->validateShare($share)) { throw new NotFoundException(); } + + $shareNode = $share->getNode(); + // We can't get the path of a file share try { - if ($share->getNode() instanceof \OCP\Files\File && $path !== '') { + if ($shareNode instanceof \OCP\Files\File && $path !== '') { $this->emitAccessShareHook($share, 404, 'Share not found'); throw new NotFoundException(); } @@ -309,34 +311,34 @@ class ShareController extends AuthPublicShareController { $shareTmpl = []; $shareTmpl['displayName'] = $this->userManager->get($share->getShareOwner())->getDisplayName(); $shareTmpl['owner'] = $share->getShareOwner(); - $shareTmpl['filename'] = $share->getNode()->getName(); + $shareTmpl['filename'] = $shareNode->getName(); $shareTmpl['directory_path'] = $share->getTarget(); $shareTmpl['note'] = $share->getNote(); - $shareTmpl['mimetype'] = $share->getNode()->getMimetype(); - $shareTmpl['previewSupported'] = $this->previewManager->isMimeSupported($share->getNode()->getMimetype()); + $shareTmpl['mimetype'] = $shareNode->getMimetype(); + $shareTmpl['previewSupported'] = $this->previewManager->isMimeSupported($shareNode->getMimetype()); $shareTmpl['dirToken'] = $this->getToken(); $shareTmpl['sharingToken'] = $this->getToken(); $shareTmpl['server2serversharing'] = $this->federatedShareProvider->isOutgoingServer2serverShareEnabled(); $shareTmpl['protected'] = $share->getPassword() !== null ? 'true' : 'false'; $shareTmpl['dir'] = ''; - $shareTmpl['nonHumanFileSize'] = $share->getNode()->getSize(); - $shareTmpl['fileSize'] = \OCP\Util::humanFileSize($share->getNode()->getSize()); + $shareTmpl['nonHumanFileSize'] = $shareNode->getSize(); + $shareTmpl['fileSize'] = \OCP\Util::humanFileSize($shareNode->getSize()); $shareTmpl['hideDownload'] = $share->getHideDownload(); - // Show file list $hideFileList = false; - if ($share->getNode() instanceof \OCP\Files\Folder) { - /** @var \OCP\Files\Folder $rootFolder */ - $rootFolder = $share->getNode(); + + if ($shareNode instanceof \OCP\Files\Folder) { + + $shareIsFolder = true; try { - $folderNode = $rootFolder->get($path); + $folderNode = $shareNode->get($path); } catch (\OCP\Files\NotFoundException $e) { $this->emitAccessShareHook($share, 404, 'Share not found'); throw new NotFoundException(); } - $shareTmpl['dir'] = $rootFolder->getRelativePath($folderNode->getPath()); + $shareTmpl['dir'] = $shareNode->getRelativePath($folderNode->getPath()); /* * The OC_Util methods require a view. This just uses the node API @@ -352,7 +354,7 @@ class ShareController extends AuthPublicShareController { $maxUploadFilesize = $freeSpace; $folder = new Template('files', 'list', ''); - $folder->assign('dir', $rootFolder->getRelativePath($folderNode->getPath())); + $folder->assign('dir', $shareNode->getRelativePath($folderNode->getPath())); $folder->assign('dirToken', $this->getToken()); $folder->assign('permissions', \OCP\Constants::PERMISSION_READ); $folder->assign('isPublic', true); @@ -365,6 +367,8 @@ class ShareController extends AuthPublicShareController { $folder->assign('usedSpacePercent', 0); $folder->assign('trash', false); $shareTmpl['folder'] = $folder->fetchPage(); + } else { + $shareIsFolder = false; } $shareTmpl['showgridview'] = true; @@ -379,14 +383,14 @@ class ShareController extends AuthPublicShareController { $shareTmpl['previewMaxY'] = $this->config->getSystemValue('preview_max_y', 1024); $shareTmpl['disclaimer'] = $this->config->getAppValue('core', 'shareapi_public_link_disclaimertext', null); $shareTmpl['previewURL'] = $shareTmpl['downloadURL']; - $ogPreview = ''; + if ($shareTmpl['previewSupported']) { $shareTmpl['previewImage'] = $this->urlGenerator->linkToRouteAbsolute( 'files_sharing.PublicPreview.getPreview', ['x' => 200, 'y' => 200, 'file' => $shareTmpl['directory_path'], 'token' => $shareTmpl['dirToken']]); $ogPreview = $shareTmpl['previewImage']; // We just have direct previews for image files - if ($share->getNode()->getMimePart() === 'image') { + if ($shareNode->getMimePart() === 'image') { $shareTmpl['previewURL'] = $this->urlGenerator->linkToRouteAbsolute('files_sharing.publicpreview.directLink', ['token' => $this->getToken()]); $ogPreview = $shareTmpl['previewURL']; @@ -411,7 +415,6 @@ class ShareController extends AuthPublicShareController { \OCP\Util::addStyle('files_sharing', 'publicView'); \OCP\Util::addScript('files_sharing', 'public'); \OCP\Util::addScript('files_sharing', 'templates'); - \OCP\Util::addScript('files_sharing', 'public_note'); \OCP\Util::addScript('files', 'fileactions'); \OCP\Util::addScript('files', 'fileactionsmenu'); \OCP\Util::addScript('files', 'jquery.fileupload'); @@ -447,7 +450,11 @@ class ShareController extends AuthPublicShareController { $response = new PublicTemplateResponse($this->appName, 'public', $shareTmpl); $response->setHeaderTitle($shareTmpl['filename']); $response->setHeaderDetails($this->l10n->t('shared by %s', [$shareTmpl['displayName']])); - if (!$share->getHideDownload()) { + + $isNoneFileDropFolder = $shareIsFolder === false || $share->getPermissions() !== \OCP\Constants::PERMISSION_CREATE; + + if ($isNoneFileDropFolder && !$share->getHideDownload()) { + \OCP\Util::addScript('files_sharing', 'public_note'); $response->setHeaderActions([ new SimpleMenuAction('download', $this->l10n->t('Download'), 'icon-download-white', $shareTmpl['downloadURL'], 0), new SimpleMenuAction('download', $this->l10n->t('Download'), 'icon-download', $shareTmpl['downloadURL'], 10, $shareTmpl['fileSize']), diff --git a/apps/files_sharing/templates/public.php b/apps/files_sharing/templates/public.php index 08e119322e5..8795318c1c3 100644 --- a/apps/files_sharing/templates/public.php +++ b/apps/files_sharing/templates/public.php @@ -21,6 +21,7 @@ <input type="hidden" name="previewSupported" value="<?php p($_['previewSupported'] ? 'true' : 'false'); ?>" id="previewSupported"> <input type="hidden" name="mimetypeIcon" value="<?php p(\OC::$server->getMimeTypeDetector()->mimeTypeIcon($_['mimetype'])); ?>" id="mimetypeIcon"> <input type="hidden" name="hideDownload" value="<?php p($_['hideDownload'] ? 'true' : 'false'); ?>" id="hideDownload"> +<input type="hidden" id="disclaimerText" value="<?php p($_['disclaimer']) ?>"> <?php $upload_max_filesize = OC::$server->getIniWrapper()->getBytes('upload_max_filesize'); $post_max_size = OC::$server->getIniWrapper()->getBytes('post_max_size'); @@ -82,20 +83,33 @@ $maxUploadFilesize = min($upload_max_filesize, $post_max_size); <?php } else { ?> <input type="hidden" id="upload-only-interface" value="1"/> <div id="public-upload"> - <div id="emptycontent" class="<?php if (!empty($_['disclaimer'])) { ?>has-disclaimer<?php } ?>"> + <div + id="emptycontent" + class="<?php if (!empty($_['note'])) { ?>has-note<?php } ?>"> <div id="displayavatar"><div class="avatardiv"></div></div> <h2><?php p($l->t('Upload files to %s', [$_['shareOwner']])) ?></h2> <p><span class="icon-folder"></span> <?php p($_['filename']) ?></p> - <?php if (!empty($_['disclaimer'])) { ?> - <p class="disclaimer"><?php p($_['disclaimer']); ?></p> + + <?php if (empty($_['note']) === false) { ?> + <h3><?php p($l->t('Note')); ?></h3> + <p class="note"><?php p($_['note']); ?></p> <?php } ?> + <input type="file" name="files[]" class="hidden" multiple> <a href="#" class="button icon-upload"><?php p($l->t('Select or drop files')) ?></a> <div id="drop-upload-progress-indicator" style="padding-top: 25px;" class="hidden"><?php p($l->t('Uploading files…')) ?></div> <div id="drop-upload-done-indicator" style="padding-top: 25px;" class="hidden"><?php p($l->t('Uploaded files:')) ?></div> - <ul> - </ul> + + <?php if (!empty($_['disclaimer'])) { ?> + <div> + <?php + echo $l->t('By uploading files, you agree to the %1$sterms of service%2$s.', [ + '<span id="show-terms-dialog">', '</span>' + ]); + ?> + </div> + <?php } ?> </div> </div> <?php } ?> diff --git a/apps/files_sharing/tests/Controller/ShareControllerTest.php b/apps/files_sharing/tests/Controller/ShareControllerTest.php index 564977c09bc..3a9856e1bd2 100644 --- a/apps/files_sharing/tests/Controller/ShareControllerTest.php +++ b/apps/files_sharing/tests/Controller/ShareControllerTest.php @@ -32,6 +32,7 @@ namespace OCA\Files_Sharing\Tests\Controllers; use OC\Files\Filesystem; +use OC\Files\Node\Folder; use OCA\FederatedFileSharing\FederatedShareProvider; use OCA\Files_Sharing\Controller\ShareController; use OCP\AppFramework\Http\DataResponse; @@ -39,7 +40,9 @@ use OCP\AppFramework\Http\Template\ExternalShareMenuAction; use OCP\AppFramework\Http\Template\LinkMenuAction; use OCP\AppFramework\Http\Template\PublicTemplateResponse; use OCP\AppFramework\Http\Template\SimpleMenuAction; +use OCP\Constants; use OCP\Files\NotFoundException; +use OCP\Files\Storage; use OCP\IConfig; use OCP\IL10N; use OCP\ILogger; @@ -47,14 +50,12 @@ use OCP\IPreview; use OCP\IRequest; use OCP\IUser; use OCP\Share\Exceptions\ShareNotFound; -use OCP\AppFramework\Http\NotFoundResponse; -use OCP\AppFramework\Http\RedirectResponse; -use OCP\AppFramework\Http\TemplateResponse; use OCP\ISession; use OCP\IUserManager; use OCP\Security\ISecureRandom; use OCP\IURLGenerator; use OCP\Share\IShare; +use PHPUnit\Framework\MockObject\MockObject; use Symfony\Component\EventDispatcher\EventDispatcherInterface; /** @@ -424,6 +425,104 @@ class ShareControllerTest extends \Test\TestCase { } /** + * Checks file drop shares: + * - there must not be any header action + * - the template param "hideFileList" should be true + * + * @test + * @return void + */ + public function testShareFileDrop() { + $this->shareController->setToken('token'); + + $owner = $this->getMockBuilder(IUser::class)->getMock(); + $owner->method('getDisplayName')->willReturn('ownerDisplay'); + $owner->method('getUID')->willReturn('ownerUID'); + + /* @var MockObject|Storage $storage */ + $storage = $this->getMockBuilder(Storage::class) + ->disableOriginalConstructor() + ->getMock(); + + /* @var MockObject|Folder $folder */ + $folder = $this->getMockBuilder(Folder::class) + ->disableOriginalConstructor() + ->getMock(); + $folder->method('getName')->willReturn('/fileDrop'); + $folder->method('isReadable')->willReturn(true); + $folder->method('isShareable')->willReturn(true); + $folder->method('getStorage')->willReturn($storage); + $folder->method('get')->with('')->willReturn($folder); + $folder->method('getSize')->willReturn(1337); + + $share = \OC::$server->getShareManager()->newShare(); + $share->setId(42); + $share->setPermissions(Constants::PERMISSION_CREATE) + ->setShareOwner('ownerUID') + ->setNode($folder) + ->setTarget('/fileDrop'); + + $this->shareManager + ->expects($this->once()) + ->method('getShareByToken') + ->with('token') + ->willReturn($share); + + $this->userManager->method('get')->with('ownerUID')->willReturn($owner); + + $this->l10n->expects($this->any()) + ->method('t') + ->will($this->returnCallback(function($text, $parameters) { + return vsprintf($text, $parameters); + })); + + $response = $this->shareController->showShare(); + // skip the "folder" param for tests + $responseParams = $response->getParams(); + unset($responseParams['folder']); + $response->setParams($responseParams); + + $sharedTmplParams = array( + 'displayName' => 'ownerDisplay', + 'owner' => 'ownerUID', + 'filename' => '/fileDrop', + 'directory_path' => '/fileDrop', + 'mimetype' => null, + 'dirToken' => 'token', + 'sharingToken' => 'token', + 'server2serversharing' => true, + 'protected' => 'false', + 'dir' => null, + 'downloadURL' => '', + 'fileSize' => '1 KB', + 'nonHumanFileSize' => 1337, + 'maxSizeAnimateGif' => null, + 'previewSupported' => null, + 'previewEnabled' => null, + 'previewMaxX' => null, + 'previewMaxY' => null, + 'hideFileList' => true, + 'shareOwner' => 'ownerDisplay', + 'disclaimer' => null, + 'shareUrl' => '', + 'previewImage' => '', + 'previewURL' => '', + 'note' => '', + 'hideDownload' => false, + 'showgridview' => true + ); + + $csp = new \OCP\AppFramework\Http\ContentSecurityPolicy(); + $csp->addAllowedFrameDomain('\'self\''); + $expectedResponse = new PublicTemplateResponse($this->appName, 'public', $sharedTmplParams); + $expectedResponse->setContentSecurityPolicy($csp); + $expectedResponse->setHeaderTitle($sharedTmplParams['filename']); + $expectedResponse->setHeaderDetails('shared by ' . $sharedTmplParams['displayName']); + + self::assertEquals($expectedResponse, $response); + } + + /** * @expectedException \OCP\Files\NotFoundException */ public function testShowShareInvalid() { diff --git a/apps/twofactor_backupcodes/l10n/ru.js b/apps/twofactor_backupcodes/l10n/ru.js index 53a7a75f714..c638234eb53 100644 --- a/apps/twofactor_backupcodes/l10n/ru.js +++ b/apps/twofactor_backupcodes/l10n/ru.js @@ -1,20 +1,35 @@ OC.L10N.register( "twofactor_backupcodes", { + "activated" : "activated", + "updated" : "updated", + "mounted" : "mounted", + "deactivated" : "deactivated", + "beforeCreate" : "beforeCreate", + "created" : "created", + "beforeUpdate" : "beforeUpdate", + "beforeDestroy" : "beforeDestroy", + "destroyed" : "destroyed", + "beforeMount" : "beforeMount", "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Это ваши резервные коды доступа. Пожалуйста, сохраните и/или распечатайте их, так как вы не сможете увидеть эти коды снова.", "Save backup codes" : "Сохранить резервные коды", "Print backup codes" : "Распечатать резервные коды", + "Backup codes have been generated. {used} of {total} codes have been used." : "Использовано {used} из {total} ранее выпущенных резервных кодов.", "Regenerate backup codes" : "Перевыпустить резервные коды", + "_icon-loading-small_::_generate-backup-codes_" : ["icon-loading-small","icon-loading-small","icon-loading-small","generate-backup-codes"], "If you regenerate backup codes, you automatically invalidate old codes." : "При перевыпуске резервных кодов, старые автоматически становятся недействительными.", "Generate backup codes" : "Создать резервные коды", "An error occurred while generating your backup codes" : "Произошла ошибка при создании резервных кодов", "Nextcloud backup codes" : "Резервные коды Nextcloud", "You created two-factor backup codes for your account" : "Вы создали двухфакторные резервные коды для своего аккаунта", "Second-factor backup codes" : "Резервные коды двухфакторной аутентификации", + "You have enabled two-factor authentication but have not yet generated backup codes. Be sure to do this in case you lose access to your second factor." : "Включена двухфаторная аутентификация, но резервные коды ещё не выпущены. Выпустите и сохраните резервные для входа в систему в случае утраты доступа к выбранному второму фактору проверки подлинности.", "Backup code" : "Резервный код", "Use backup code" : "Использовать резервный код", "Two factor backup codes" : "Второй фактор — резервные коды", "A two-factor auth backup codes provider" : "Провайдер резервных копий для кодов двухфакторной аутентификации", - "Backup codes have been generated. {{used}} of {{total}} codes have been used." : "Резервные коды были созданы. Использовано {{used}} из {{total}} кодов." + "Use one of the backup codes you saved when setting up two-factor authentication." : "Использовать для двухфакторной аутентификации один из ранее выпущенных резервных кодов.", + "Submit" : "Отправить", + "Backup codes have been generated. {{used}} of {{total}} codes have been used." : "Использовано {{used}} из {{total}} ранее выпущенных резервных кодов." }, "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/twofactor_backupcodes/l10n/ru.json b/apps/twofactor_backupcodes/l10n/ru.json index 0da756d3498..6af211d8b17 100644 --- a/apps/twofactor_backupcodes/l10n/ru.json +++ b/apps/twofactor_backupcodes/l10n/ru.json @@ -1,18 +1,33 @@ { "translations": { + "activated" : "activated", + "updated" : "updated", + "mounted" : "mounted", + "deactivated" : "deactivated", + "beforeCreate" : "beforeCreate", + "created" : "created", + "beforeUpdate" : "beforeUpdate", + "beforeDestroy" : "beforeDestroy", + "destroyed" : "destroyed", + "beforeMount" : "beforeMount", "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Это ваши резервные коды доступа. Пожалуйста, сохраните и/или распечатайте их, так как вы не сможете увидеть эти коды снова.", "Save backup codes" : "Сохранить резервные коды", "Print backup codes" : "Распечатать резервные коды", + "Backup codes have been generated. {used} of {total} codes have been used." : "Использовано {used} из {total} ранее выпущенных резервных кодов.", "Regenerate backup codes" : "Перевыпустить резервные коды", + "_icon-loading-small_::_generate-backup-codes_" : ["icon-loading-small","icon-loading-small","icon-loading-small","generate-backup-codes"], "If you regenerate backup codes, you automatically invalidate old codes." : "При перевыпуске резервных кодов, старые автоматически становятся недействительными.", "Generate backup codes" : "Создать резервные коды", "An error occurred while generating your backup codes" : "Произошла ошибка при создании резервных кодов", "Nextcloud backup codes" : "Резервные коды Nextcloud", "You created two-factor backup codes for your account" : "Вы создали двухфакторные резервные коды для своего аккаунта", "Second-factor backup codes" : "Резервные коды двухфакторной аутентификации", + "You have enabled two-factor authentication but have not yet generated backup codes. Be sure to do this in case you lose access to your second factor." : "Включена двухфаторная аутентификация, но резервные коды ещё не выпущены. Выпустите и сохраните резервные для входа в систему в случае утраты доступа к выбранному второму фактору проверки подлинности.", "Backup code" : "Резервный код", "Use backup code" : "Использовать резервный код", "Two factor backup codes" : "Второй фактор — резервные коды", "A two-factor auth backup codes provider" : "Провайдер резервных копий для кодов двухфакторной аутентификации", - "Backup codes have been generated. {{used}} of {{total}} codes have been used." : "Резервные коды были созданы. Использовано {{used}} из {{total}} кодов." + "Use one of the backup codes you saved when setting up two-factor authentication." : "Использовать для двухфакторной аутентификации один из ранее выпущенных резервных кодов.", + "Submit" : "Отправить", + "Backup codes have been generated. {{used}} of {{total}} codes have been used." : "Использовано {{used}} из {{total}} ранее выпущенных резервных кодов." },"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 |