diff options
81 files changed, 597 insertions, 194 deletions
diff --git a/apps/files/js/mainfileinfodetailview.js b/apps/files/js/mainfileinfodetailview.js index ea3063f6176..626ab86ded3 100644 --- a/apps/files/js/mainfileinfodetailview.js +++ b/apps/files/js/mainfileinfodetailview.js @@ -20,9 +20,11 @@ '</a>' + '</div>' + ' <div class="file-details ellipsis">' + + ' {{#if hasFavoriteAction}}' + ' <a href="#" class="action action-favorite favorite permanent">' + ' <span class="icon {{starClass}}" title="{{starAltText}}"></span>' + ' </a>' + + ' {{/if}}' + ' {{#if hasSize}}<span class="size" title="{{altSize}}">{{size}}</span>, {{/if}}<span class="date live-relative-timestamp" data-timestamp="{{timestamp}}" title="{{altDate}}">{{date}}</span>' + ' </div>' + '</div>' + @@ -175,6 +177,12 @@ if (this.model) { var isFavorite = (this.model.get('tags') || []).indexOf(OC.TAG_FAVORITE) >= 0; + var availableActions = this._fileActions.get( + this.model.get('mimetype'), + this.model.get('type'), + this.model.get('permissions') + ); + var hasFavoriteAction = 'Favorite' in availableActions; this.$el.html(this.template({ type: this.model.isImage()? 'image': '', nameLabel: t('files', 'Name'), @@ -189,6 +197,7 @@ altDate: OC.Util.formatDate(this.model.get('mtime')), timestamp: this.model.get('mtime'), date: OC.Util.relativeModifiedDate(this.model.get('mtime')), + hasFavoriteAction: hasFavoriteAction, starAltText: isFavorite ? t('files', 'Favorited') : t('files', 'Favorite'), starClass: isFavorite ? 'icon-starred' : 'icon-star', permalink: this._makePermalink(this.model.get('id')), diff --git a/apps/files/l10n/en_GB.js b/apps/files/l10n/en_GB.js index 424d470d970..21f6e339784 100644 --- a/apps/files/l10n/en_GB.js +++ b/apps/files/l10n/en_GB.js @@ -62,8 +62,11 @@ OC.L10N.register( "You don’t have permission to upload or create files here" : "You don’t have permission to upload or create files here", "_Uploading %n file_::_Uploading %n files_" : ["Uploading %n file","Uploading %n files"], "New" : "New", + "{used} of {quota} used" : "{used} of {quota} used", + "{used} used" : "{used} used", "\"{name}\" is an invalid file name." : "\"{name}\" is an invalid file name.", "File name cannot be empty." : "File name cannot be empty.", + "\"/\" is not allowed inside a file name." : "\"/\" is not allowed inside a file name.", "\"{name}\" is not an allowed filetype" : "\"{name}\" is not an allowed filetype", "Storage of {owner} is full, files can not be updated or synced anymore!" : "Storage of {owner} is full, files can not be updated or synced anymore!", "Your storage is full, files can not be updated or synced anymore!" : "Your storage is full, files can not be updated or synced anymore!", diff --git a/apps/files/l10n/en_GB.json b/apps/files/l10n/en_GB.json index 1ac5d53c7a6..f8ff0a553b5 100644 --- a/apps/files/l10n/en_GB.json +++ b/apps/files/l10n/en_GB.json @@ -60,8 +60,11 @@ "You don’t have permission to upload or create files here" : "You don’t have permission to upload or create files here", "_Uploading %n file_::_Uploading %n files_" : ["Uploading %n file","Uploading %n files"], "New" : "New", + "{used} of {quota} used" : "{used} of {quota} used", + "{used} used" : "{used} used", "\"{name}\" is an invalid file name." : "\"{name}\" is an invalid file name.", "File name cannot be empty." : "File name cannot be empty.", + "\"/\" is not allowed inside a file name." : "\"/\" is not allowed inside a file name.", "\"{name}\" is not an allowed filetype" : "\"{name}\" is not an allowed filetype", "Storage of {owner} is full, files can not be updated or synced anymore!" : "Storage of {owner} is full, files can not be updated or synced anymore!", "Your storage is full, files can not be updated or synced anymore!" : "Your storage is full, files can not be updated or synced anymore!", diff --git a/apps/files/l10n/es.js b/apps/files/l10n/es.js index a4666bd7bdf..0852da86efc 100644 --- a/apps/files/l10n/es.js +++ b/apps/files/l10n/es.js @@ -62,8 +62,11 @@ OC.L10N.register( "You don’t have permission to upload or create files here" : "No tiene permisos para subir o crear archivos aquí", "_Uploading %n file_::_Uploading %n files_" : ["Subiendo %n archivo","Subiendo %n archivos"], "New" : "Nuevo", + "{used} of {quota} used" : "{used} usados de {quota}", + "{used} used" : "{used} usados", "\"{name}\" is an invalid file name." : "\"{name}\" es un nombre de archivo inválido.", "File name cannot be empty." : "El nombre de archivo no puede estar vacío.", + "\"/\" is not allowed inside a file name." : "\"/\" no se permite dentro de un nombre de archivo.", "\"{name}\" is not an allowed filetype" : "\"{name}\" no es un tipo de archivo permitido", "Storage of {owner} is full, files can not be updated or synced anymore!" : "El almacén de {owner} está repleto, ¡los archivos no se actualizarán ni sincronizarán más!", "Your storage is full, files can not be updated or synced anymore!" : "Su almacenamiento está lleno, ¡los archivos no se actualizarán ni sincronizarán más!", diff --git a/apps/files/l10n/es.json b/apps/files/l10n/es.json index 44db92002f2..db8baad60b3 100644 --- a/apps/files/l10n/es.json +++ b/apps/files/l10n/es.json @@ -60,8 +60,11 @@ "You don’t have permission to upload or create files here" : "No tiene permisos para subir o crear archivos aquí", "_Uploading %n file_::_Uploading %n files_" : ["Subiendo %n archivo","Subiendo %n archivos"], "New" : "Nuevo", + "{used} of {quota} used" : "{used} usados de {quota}", + "{used} used" : "{used} usados", "\"{name}\" is an invalid file name." : "\"{name}\" es un nombre de archivo inválido.", "File name cannot be empty." : "El nombre de archivo no puede estar vacío.", + "\"/\" is not allowed inside a file name." : "\"/\" no se permite dentro de un nombre de archivo.", "\"{name}\" is not an allowed filetype" : "\"{name}\" no es un tipo de archivo permitido", "Storage of {owner} is full, files can not be updated or synced anymore!" : "El almacén de {owner} está repleto, ¡los archivos no se actualizarán ni sincronizarán más!", "Your storage is full, files can not be updated or synced anymore!" : "Su almacenamiento está lleno, ¡los archivos no se actualizarán ni sincronizarán más!", diff --git a/apps/files/l10n/ka_GE.js b/apps/files/l10n/ka_GE.js index 401b93a0e6a..b2b68baa747 100644 --- a/apps/files/l10n/ka_GE.js +++ b/apps/files/l10n/ka_GE.js @@ -62,8 +62,11 @@ OC.L10N.register( "You don’t have permission to upload or create files here" : "აქ ფაილების შექმნის ან ატვირთვის უფლება არ გაქვთ", "_Uploading %n file_::_Uploading %n files_" : ["ვტვირთავთ %n ფაილს"], "New" : "ახალი", + "{used} of {quota} used" : "გამოყენებულია {used} სულ {quota}-დან", + "{used} used" : "გამოყენებულია {used}", "\"{name}\" is an invalid file name." : "\"{name}\" არასწორი ფაილის სახელია.", "File name cannot be empty." : "ფაილის სახელი არ შეიძლება იყოს ცარიელი.", + "\"/\" is not allowed inside a file name." : "\"/\" ფაილის სახელში არაა ნებადართული.", "\"{name}\" is not an allowed filetype" : "\"{name}\" არაა დაშვებული ფაილის ტიპი", "Storage of {owner} is full, files can not be updated or synced anymore!" : "{owner}-ის საცავი სავსეა, ფაილები მეტი ვეღარ განახლდება/სინქრონიზირდება!", "Your storage is full, files can not be updated or synced anymore!" : "თქვენი საცავი გადაივსო. ფაილების განახლება და სინქრონიზირება ვერ მოხერხდება!", diff --git a/apps/files/l10n/ka_GE.json b/apps/files/l10n/ka_GE.json index 36f2400edd8..5c496dc08cf 100644 --- a/apps/files/l10n/ka_GE.json +++ b/apps/files/l10n/ka_GE.json @@ -60,8 +60,11 @@ "You don’t have permission to upload or create files here" : "აქ ფაილების შექმნის ან ატვირთვის უფლება არ გაქვთ", "_Uploading %n file_::_Uploading %n files_" : ["ვტვირთავთ %n ფაილს"], "New" : "ახალი", + "{used} of {quota} used" : "გამოყენებულია {used} სულ {quota}-დან", + "{used} used" : "გამოყენებულია {used}", "\"{name}\" is an invalid file name." : "\"{name}\" არასწორი ფაილის სახელია.", "File name cannot be empty." : "ფაილის სახელი არ შეიძლება იყოს ცარიელი.", + "\"/\" is not allowed inside a file name." : "\"/\" ფაილის სახელში არაა ნებადართული.", "\"{name}\" is not an allowed filetype" : "\"{name}\" არაა დაშვებული ფაილის ტიპი", "Storage of {owner} is full, files can not be updated or synced anymore!" : "{owner}-ის საცავი სავსეა, ფაილები მეტი ვეღარ განახლდება/სინქრონიზირდება!", "Your storage is full, files can not be updated or synced anymore!" : "თქვენი საცავი გადაივსო. ფაილების განახლება და სინქრონიზირება ვერ მოხერხდება!", diff --git a/apps/files/l10n/ko.js b/apps/files/l10n/ko.js index 8b6ab2b51b0..cfe3b955df7 100644 --- a/apps/files/l10n/ko.js +++ b/apps/files/l10n/ko.js @@ -13,9 +13,9 @@ OC.L10N.register( "Could not create folder \"{dir}\"" : "폴더 \"{dir}\"을(를) 만들 수 없음", "Upload cancelled." : "업로드가 취소되었습니다.", "Unable to upload {filename} as it is a directory or has 0 bytes" : "{filename}을(를) 업로드할 수 없습니다. 폴더이거나 0 바이트 파일입니다.", - "Not enough free space, you are uploading {size1} but only {size2} is left" : "빈 공간이 부족합니다. 업로드할 파일 크기는 {size1}이지만 현재 {size2}만큼 비었습니다", + "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" : "빈 공간이 부족합니다", + "Not enough free space" : "남은 공간이 부족함", "Uploading …" : "업로드 중…", "…" : "…", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize}/{totalSize}({bitrate})", diff --git a/apps/files/l10n/ko.json b/apps/files/l10n/ko.json index b9ea23ab0b9..0854c201bf9 100644 --- a/apps/files/l10n/ko.json +++ b/apps/files/l10n/ko.json @@ -11,9 +11,9 @@ "Could not create folder \"{dir}\"" : "폴더 \"{dir}\"을(를) 만들 수 없음", "Upload cancelled." : "업로드가 취소되었습니다.", "Unable to upload {filename} as it is a directory or has 0 bytes" : "{filename}을(를) 업로드할 수 없습니다. 폴더이거나 0 바이트 파일입니다.", - "Not enough free space, you are uploading {size1} but only {size2} is left" : "빈 공간이 부족합니다. 업로드할 파일 크기는 {size1}이지만 현재 {size2}만큼 비었습니다", + "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" : "빈 공간이 부족합니다", + "Not enough free space" : "남은 공간이 부족함", "Uploading …" : "업로드 중…", "…" : "…", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize}/{totalSize}({bitrate})", diff --git a/apps/files/l10n/nb.js b/apps/files/l10n/nb.js index b9e3ee0a1b8..45b9027f782 100644 --- a/apps/files/l10n/nb.js +++ b/apps/files/l10n/nb.js @@ -62,6 +62,8 @@ OC.L10N.register( "You don’t have permission to upload or create files here" : "Du har ikke tillatelse til å laste opp eller opprette filer her", "_Uploading %n file_::_Uploading %n files_" : ["Laster opp %n fil","Laster opp %n filer"], "New" : "Ny", + "{used} of {quota} used" : "{used} av {quota} brukt", + "{used} used" : "{used} brukt", "\"{name}\" is an invalid file name." : "\"{name}\" er et uglydig filnavn.", "File name cannot be empty." : "Filnavn kan ikke være tomt.", "\"{name}\" is not an allowed filetype" : "\"{name}\" er ikke en tillatt filtype", diff --git a/apps/files/l10n/nb.json b/apps/files/l10n/nb.json index 4c4e0622362..0328ceb283a 100644 --- a/apps/files/l10n/nb.json +++ b/apps/files/l10n/nb.json @@ -60,6 +60,8 @@ "You don’t have permission to upload or create files here" : "Du har ikke tillatelse til å laste opp eller opprette filer her", "_Uploading %n file_::_Uploading %n files_" : ["Laster opp %n fil","Laster opp %n filer"], "New" : "Ny", + "{used} of {quota} used" : "{used} av {quota} brukt", + "{used} used" : "{used} brukt", "\"{name}\" is an invalid file name." : "\"{name}\" er et uglydig filnavn.", "File name cannot be empty." : "Filnavn kan ikke være tomt.", "\"{name}\" is not an allowed filetype" : "\"{name}\" er ikke en tillatt filtype", diff --git a/apps/files/l10n/nl.js b/apps/files/l10n/nl.js index 73a52503cef..5ee5d8c6181 100644 --- a/apps/files/l10n/nl.js +++ b/apps/files/l10n/nl.js @@ -62,8 +62,11 @@ OC.L10N.register( "You don’t have permission to upload or create files here" : "Je hebt geen toestemming om hier te uploaden of bestanden te maken", "_Uploading %n file_::_Uploading %n files_" : ["%n bestand aan het uploaden","%n bestanden aan het uploaden"], "New" : "Nieuw", + "{used} of {quota} used" : "{used} van {quota} gebruikt", + "{used} used" : "{used} gebruikt", "\"{name}\" is an invalid file name." : "\"{name}\" is een ongeldige bestandsnaam.", "File name cannot be empty." : "Bestandsnaam kan niet leeg zijn.", + "\"/\" is not allowed inside a file name." : "\"/\" is niet toegestaan binnen een bestandsnaam.", "\"{name}\" is not an allowed filetype" : "\"{name}\" bestandstype is een niet toegestaande", "Storage of {owner} is full, files can not be updated or synced anymore!" : "Opslagruimte van {owner} zit vol, bestanden kunnen niet meer worden geüpload of gesynchroniseerd!", "Your storage is full, files can not be updated or synced anymore!" : "Je opslagruimte zit vol. Bestanden kunnen niet meer worden gewijzigd of gesynchroniseerd!", diff --git a/apps/files/l10n/nl.json b/apps/files/l10n/nl.json index 55c83f970ba..2cc15f1f564 100644 --- a/apps/files/l10n/nl.json +++ b/apps/files/l10n/nl.json @@ -60,8 +60,11 @@ "You don’t have permission to upload or create files here" : "Je hebt geen toestemming om hier te uploaden of bestanden te maken", "_Uploading %n file_::_Uploading %n files_" : ["%n bestand aan het uploaden","%n bestanden aan het uploaden"], "New" : "Nieuw", + "{used} of {quota} used" : "{used} van {quota} gebruikt", + "{used} used" : "{used} gebruikt", "\"{name}\" is an invalid file name." : "\"{name}\" is een ongeldige bestandsnaam.", "File name cannot be empty." : "Bestandsnaam kan niet leeg zijn.", + "\"/\" is not allowed inside a file name." : "\"/\" is niet toegestaan binnen een bestandsnaam.", "\"{name}\" is not an allowed filetype" : "\"{name}\" bestandstype is een niet toegestaande", "Storage of {owner} is full, files can not be updated or synced anymore!" : "Opslagruimte van {owner} zit vol, bestanden kunnen niet meer worden geüpload of gesynchroniseerd!", "Your storage is full, files can not be updated or synced anymore!" : "Je opslagruimte zit vol. Bestanden kunnen niet meer worden gewijzigd of gesynchroniseerd!", diff --git a/apps/files/l10n/ro.js b/apps/files/l10n/ro.js index e7b93b7b005..285604b1ea1 100644 --- a/apps/files/l10n/ro.js +++ b/apps/files/l10n/ro.js @@ -1,10 +1,12 @@ OC.L10N.register( "files", { + "Storage is temporarily not available" : "Spațiu de stocare este indisponibil temporar", "Storage invalid" : "Spațiu de stocare invalid", "Unknown error" : "Eroare necunoscută", - "Files" : "Fișiere", - "All files" : "Toate fișierele.", + "All files" : "Toate fișierele", + "Recent" : "Recente", + "File could not be found" : "Fișierul nu a fost găsit", "Home" : "Acasă", "Close" : "Închide", "Favorites" : "Favorite", @@ -12,21 +14,21 @@ OC.L10N.register( "Upload cancelled." : "Încărcare anulată.", "Unable to upload {filename} as it is a directory or has 0 bytes" : "Nu se poate încărca {filename} deoarece este un director sau are mărimea de 0 octeți", "Not enough free space, you are uploading {size1} but only {size2} is left" : "Spațiu liber insuficient, încărcați {size1} însă doar {size2} disponibil rămas", - "Uploading..." : "Încărcare", - "..." : "...", - "{hours}:{minutes}h" : "{hours}:{minutes}h", - "{minutes}:{seconds}m" : "{minutes}:{seconds}m", - "{seconds} second{plural_s} left" : "{seconds} secunde{plural_s} rămase", - "{seconds}s" : "{seconds}s", - "Any moment now..." : "În orice moment...", - "Soon..." : "În curând...", - "File upload is in progress. Leaving the page now will cancel the upload." : "Fișierul este în curs de încărcare. Părăsirea paginii va întrerupe încărcarea.", + "Target folder \"{dir}\" does not exist any more" : "Directorul \"{dir}\" nu mai există", + "Not enough free space" : "Spațiu insuficient", + "Uploading …" : "Încărcare...", + "…" : "...", + "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} din {totalSize} ({bitrate})", + "Target folder does not exist any more" : "Directorul destinație nu mai există", "Actions" : "Acțiuni", "Download" : "Descarcă", "Rename" : "Redenumește", + "Move or copy" : "Mută sau copiază", + "Target folder" : "Directorul destinație", "Delete" : "Șterge", "Disconnect storage" : "Deconectează stocarea", "Unshare" : "Nu mai partaja", + "Files" : "Fișiere", "Details" : "Detalii", "Select" : "Alege", "Pending" : "În așteptare", @@ -35,6 +37,8 @@ OC.L10N.register( "This directory is unavailable, please check the logs or contact the administrator" : "Acest director nu este disponibil, te rugăm verifică logurile sau contactează un administrator", "Could not move \"{file}\", target exists" : "Nu s-a putut muta fișierul \"{file}\", există deja un altul cu același nume în directorul destinație", "Could not move \"{file}\"" : "Nu s-a putut muta fișierul \"{file}\"", + "Could not copy \"{file}\"" : "Nu s-a putut copia \"{file}\"", + "Copied {origin} inside {destination}" : "S-a copiat {origin} în {destination}", "{newName} already exists" : "{newName} există deja", "Could not rename \"{fileName}\", it does not exist any more" : "Nu s-a putut redenumi \"{fileName}\", fișierul nu mai există", "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Numele \"{targetName}\" este deja folosit în directorul \"{dir}\". Alege un nume diferit.", @@ -52,73 +56,98 @@ OC.L10N.register( "You don’t have permission to upload or create files here" : "Nu aveți permisiunea de a încărca sau crea fișiere aici", "_Uploading %n file_::_Uploading %n files_" : ["Se încarcă %n fișier.","Se încarcă %n fișiere.","Se încarcă %n fișiere."], "New" : "Nou", + "{used} of {quota} used" : "{used} din {quota} folosiți", + "{used} used" : "{used} folosiți", "\"{name}\" is an invalid file name." : "\"{name}\" este un nume de fișier nevalid.", "File name cannot be empty." : "Numele fișierului nu poate rămâne gol.", + "\"{name}\" is not an allowed filetype" : "\"{name}\" ", + "Storage of {owner} is full, files can not be updated or synced anymore!" : "Spațiul de stocare pentru {owner} este plin, fișierele nu mai pot fi incărcate sau sincronizate!", "Your storage is full, files can not be updated or synced anymore!" : "Spațiul de stocare este plin, fișierele nu mai pot fi actualizate sau sincronizate!", + "Storage of {owner} is almost full ({usedSpacePercent}%)" : "Spațiul de stocare pentru {owner} este aproape plin ({usedSpacePercent}%)", "Your storage is almost full ({usedSpacePercent}%)" : "Spațiul de stocare este aproape plin ({usedSpacePercent}%)", + "Copied!" : "S-a copiat!", + "Copy direct link (only works for users who have access to this file/folder)" : "Copiază link direct (funcționeză numai pentru utilizatorii care au acces la acest fișier/director)", "Path" : "Cale", "_%n byte_::_%n bytes_" : ["%n octet","%n octeți","%n octeți"], "Favorited" : "Adăugate la favorite", "Favorite" : "Favorit", - "Local link" : "Legătură locală", - "Folder" : "Dosar", "New folder" : "Un nou dosar", - "Upload" : "Încărcă", + "Upload file" : "Încarcă fișier", + "Remove from favorites" : "Șterge din favorite", + "Add to favorites" : "Adaugă la favorite", "An error occurred while trying to update the tags" : "A apărut o eroare în timpul actualizării etichetelor", - "A new file or folder has been <strong>created</strong>" : "Un nou fișier sau dosar a fost <strong>creat</strong>", - "A file or folder has been <strong>deleted</strong>" : "Un nou fișier sau dosar a fost <strong>șters</strong>", + "Added to favorites" : "Adaugat la favorite", + "Removed from favorites" : "Șters din favorite", + "You added {file} to your favorites" : "Ai adaugat {file} în favorite", + "You removed {file} from your favorites" : "Ai șters {file} din favorite", + "Created by {user}" : "Creat de {user}", + "Changed by {user}" : "Modificat de {user}", + "Deleted by {user}" : "Șters de {user}", + "Restored by {user}" : "Restaurat de {user}", + "Renamed by {user}" : "Redenumit de {user}", + "Moved by {user}" : "Mutat de {user}", + "\"remote user\"" : "\"utilizator la distanță\"", + "You created {file}" : "Ai creat {file}", + "{user} created {file}" : "{user} a creat {file}", + "{file} was created in a public folder" : "{file} a fost creat într-un director public ", + "You changed {file}" : "Ai modificat {file}", + "{user} changed {file}" : "{user} a modificat {file}", + "You deleted {file}" : "Ai șters {file}", + "{user} deleted {file}" : "{user} a șters {file}", + "You restored {file}" : "Ai restaurat {file}", + "{user} restored {file}" : "{user} a restaurat {file}", + "You renamed {oldfile} to {newfile}" : "Ai redenumit {oldfile} în {newfile}", + "{user} renamed {oldfile} to {newfile}" : "{user} a redenumit {oldfile} în {newfile}", + "You moved {oldfile} to {newfile}" : "Ai mutat{oldfile} în {newfile}", + "{user} moved {oldfile} to {newfile}" : "{user} a mutat {oldfile} în {newfile}", + "A file has been added to or removed from your <strong>favorites</strong>" : "Un fișier a fost adăugat în sau șters din <strong>favorites</strong>", + "A file or folder has been <strong>changed</strong> or <strong>renamed</strong>" : "Un fișier sau director a fost <strong>modificat</strong> sau <strong>redenumit</strong>", + "A new file or folder has been <strong>created</strong>" : "Un nou fișier sau director a fost <strong>creat</strong>", + "A file or folder has been <strong>deleted</strong>" : "Un fișier sau director a fost <strong>șters</strong>", "A file or folder has been <strong>restored</strong>" : "Un fișier sau dosar a fost <strong>restaurat</strong>", - "You created %1$s" : "Ai creat %1$s", - "%2$s created %1$s" : "%2$s a creat %1$s", - "%1$s was created in a public folder" : "%1$s a fost creat în dosarul public", - "You changed %1$s" : "Ai schimbat %1$s", - "%2$s changed %1$s" : "%2$s a schimbat %1$s", - "You deleted %1$s" : "Ai şters %1$s", - "%2$s deleted %1$s" : "%2$s a șters %1$s", - "You restored %1$s" : "Ai restaurat %1$s", - "%2$s restored %1$s" : "%2$s a restaurat %1$s", - "Changed by %2$s" : "Modificat de %2$s", - "Deleted by %2$s" : "Șters de %2$s", - "Restored by %2$s" : "Restaurat de %2$s", "Upload (max. %s)" : "Încarcă (max. %s)", "File handling" : "Manipulare fișiere", "Maximum upload size" : "Dimensiune maximă admisă la încărcare", "max. possible: " : "max. posibil:", "Save" : "Salvează", + "With PHP-FPM it might take 5 minutes for changes to be applied." : "Cu PHP-FPM poate dura 5 minute pentru a aplica schimbările..", "Missing permissions to edit from here." : "Nu ai permisiuni pentru a edita aici.", + "%s of %s used" : "%s din %s folosiți", + "%s used" : "%s folosiți", "Settings" : "Setări", "Show hidden files" : "Arată fișierele ascunse", "WebDAV" : "WebDAV", + "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "Folosește această adresă <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">pentru a accesa Fișierele prin WebDAV</a>", + "Cancel upload" : "Anulează încărcarea", "No files in here" : "Niciun fișier aici", "Upload some content or sync with your devices!" : "Încarcă ceva conținut sau sincronizează cu dispozitivele tale!", "No entries found in this folder" : "Niciun element găsit în acest director", "Select all" : "Selectează tot", "Upload too large" : "Fișierul încărcat este prea mare", "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Fișierele pe care încerci să le încarci depășesc limita de încărcare maximă admisă pe acest server.", - "No favorites" : "Fără favorite", + "No favorites yet" : "Nu aveți favorite încă", "Files and folders you mark as favorite will show up here" : "FIșierele și directoarele pe care le marchezi ca favorite vor apărea aici", + "Shared with you" : "Partajat cu tine", + "Shared with others" : "Partajat cu alții", + "Shared by link" : "Partajat prin link", + "Tags" : "Etichete", + "Deleted files" : "Fișiere șterse", "Text file" : "Fișier text", "New text file.txt" : "New text file.txt", - "Storage not available" : "Spațiu de stocare indisponibil", - "Unable to set upload directory." : "Imposibil de a seta directorul pentru încărcare.", - "Invalid Token" : "Jeton Invalid", - "No file was uploaded. Unknown error" : "Niciun fișier nu a fost încărcat. Eroare necunoscută", - "There is no error, the file uploaded with success" : "Nu a apărut nici o eroare, fișierul a fost încărcat cu succes", - "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Fișierul încărcat depășește directiva upload_max_filesize din php.ini:", - "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Fișierul încărcat depășește directiva MAX_FILE_SIZE specificată în formularul HTML", - "The uploaded file was only partially uploaded" : "Fișierul a fost încărcat doar parțial", - "No file was uploaded" : "Nu a fost încărcat niciun fișier", - "Missing a temporary folder" : "Lipsește un dosar temporar", - "Failed to write to disk" : "Eroare la scrierea pe disc", - "Not enough storage available" : "Nu este disponibil suficient spațiu pe disc", - "The target folder has been moved or deleted." : "Dosarul țintă a fost mutat sau șters.", - "Upload failed. Could not find uploaded file" : "Încărcare eșuată. Nu se poate găsi fișierul încărcat", - "Upload failed. Could not get file info." : "Încărcare eșuată. Nu se pot obține informații despre fișier.", - "Invalid directory." : "Dosar invalid.", - "Total file size {size1} exceeds upload limit {size2}" : "Mărimea fișierului este {size1} ce depășește limita de încărcare de {size2}", - "Could not get result from server." : "Nu se poate obține rezultatul de la server.", - "No entries in this folder match '{filter}'" : "Niciun element din acest director nu se potrivește cu '{filter}'", - "{newname} already exists" : "{newname} există deja", - "A file or folder has been <strong>changed</strong>" : "Un nou fișier sau dosar a fost <strong>modificat</strong>" + "Uploading..." : "Încărcare", + "..." : "...", + "{hours}:{minutes}h" : "{hours}:{minutes}h", + "{minutes}:{seconds}m" : "{minutes}:{seconds}m", + "{seconds}s" : "{seconds}s", + "Any moment now..." : "În orice moment...", + "Soon..." : "În curând...", + "File upload is in progress. Leaving the page now will cancel the upload." : "Fișierul este în curs de încărcare. Părăsirea paginii va întrerupe încărcarea.", + "Move" : "Mută", + "Folder" : "Dosar", + "Upload" : "Încărcă", + "A new file or folder has been <strong>deleted</strong>" : "Un nou fișier sau director a fost <strong>șters</strong>", + "A new file or folder has been <strong>restored</strong>" : "Un fișier sau director a fost <strong>restaurat</strong>", + "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Folosește această adresă <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">pentru a accesa Fișierele prin WebDAV</a>", + "No favorites" : "Fără favorite" }, "nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));"); diff --git a/apps/files/l10n/ro.json b/apps/files/l10n/ro.json index 45c55d2becc..8d41bb52adc 100644 --- a/apps/files/l10n/ro.json +++ b/apps/files/l10n/ro.json @@ -1,8 +1,10 @@ { "translations": { + "Storage is temporarily not available" : "Spațiu de stocare este indisponibil temporar", "Storage invalid" : "Spațiu de stocare invalid", "Unknown error" : "Eroare necunoscută", - "Files" : "Fișiere", - "All files" : "Toate fișierele.", + "All files" : "Toate fișierele", + "Recent" : "Recente", + "File could not be found" : "Fișierul nu a fost găsit", "Home" : "Acasă", "Close" : "Închide", "Favorites" : "Favorite", @@ -10,21 +12,21 @@ "Upload cancelled." : "Încărcare anulată.", "Unable to upload {filename} as it is a directory or has 0 bytes" : "Nu se poate încărca {filename} deoarece este un director sau are mărimea de 0 octeți", "Not enough free space, you are uploading {size1} but only {size2} is left" : "Spațiu liber insuficient, încărcați {size1} însă doar {size2} disponibil rămas", - "Uploading..." : "Încărcare", - "..." : "...", - "{hours}:{minutes}h" : "{hours}:{minutes}h", - "{minutes}:{seconds}m" : "{minutes}:{seconds}m", - "{seconds} second{plural_s} left" : "{seconds} secunde{plural_s} rămase", - "{seconds}s" : "{seconds}s", - "Any moment now..." : "În orice moment...", - "Soon..." : "În curând...", - "File upload is in progress. Leaving the page now will cancel the upload." : "Fișierul este în curs de încărcare. Părăsirea paginii va întrerupe încărcarea.", + "Target folder \"{dir}\" does not exist any more" : "Directorul \"{dir}\" nu mai există", + "Not enough free space" : "Spațiu insuficient", + "Uploading …" : "Încărcare...", + "…" : "...", + "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} din {totalSize} ({bitrate})", + "Target folder does not exist any more" : "Directorul destinație nu mai există", "Actions" : "Acțiuni", "Download" : "Descarcă", "Rename" : "Redenumește", + "Move or copy" : "Mută sau copiază", + "Target folder" : "Directorul destinație", "Delete" : "Șterge", "Disconnect storage" : "Deconectează stocarea", "Unshare" : "Nu mai partaja", + "Files" : "Fișiere", "Details" : "Detalii", "Select" : "Alege", "Pending" : "În așteptare", @@ -33,6 +35,8 @@ "This directory is unavailable, please check the logs or contact the administrator" : "Acest director nu este disponibil, te rugăm verifică logurile sau contactează un administrator", "Could not move \"{file}\", target exists" : "Nu s-a putut muta fișierul \"{file}\", există deja un altul cu același nume în directorul destinație", "Could not move \"{file}\"" : "Nu s-a putut muta fișierul \"{file}\"", + "Could not copy \"{file}\"" : "Nu s-a putut copia \"{file}\"", + "Copied {origin} inside {destination}" : "S-a copiat {origin} în {destination}", "{newName} already exists" : "{newName} există deja", "Could not rename \"{fileName}\", it does not exist any more" : "Nu s-a putut redenumi \"{fileName}\", fișierul nu mai există", "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Numele \"{targetName}\" este deja folosit în directorul \"{dir}\". Alege un nume diferit.", @@ -50,73 +54,98 @@ "You don’t have permission to upload or create files here" : "Nu aveți permisiunea de a încărca sau crea fișiere aici", "_Uploading %n file_::_Uploading %n files_" : ["Se încarcă %n fișier.","Se încarcă %n fișiere.","Se încarcă %n fișiere."], "New" : "Nou", + "{used} of {quota} used" : "{used} din {quota} folosiți", + "{used} used" : "{used} folosiți", "\"{name}\" is an invalid file name." : "\"{name}\" este un nume de fișier nevalid.", "File name cannot be empty." : "Numele fișierului nu poate rămâne gol.", + "\"{name}\" is not an allowed filetype" : "\"{name}\" ", + "Storage of {owner} is full, files can not be updated or synced anymore!" : "Spațiul de stocare pentru {owner} este plin, fișierele nu mai pot fi incărcate sau sincronizate!", "Your storage is full, files can not be updated or synced anymore!" : "Spațiul de stocare este plin, fișierele nu mai pot fi actualizate sau sincronizate!", + "Storage of {owner} is almost full ({usedSpacePercent}%)" : "Spațiul de stocare pentru {owner} este aproape plin ({usedSpacePercent}%)", "Your storage is almost full ({usedSpacePercent}%)" : "Spațiul de stocare este aproape plin ({usedSpacePercent}%)", + "Copied!" : "S-a copiat!", + "Copy direct link (only works for users who have access to this file/folder)" : "Copiază link direct (funcționeză numai pentru utilizatorii care au acces la acest fișier/director)", "Path" : "Cale", "_%n byte_::_%n bytes_" : ["%n octet","%n octeți","%n octeți"], "Favorited" : "Adăugate la favorite", "Favorite" : "Favorit", - "Local link" : "Legătură locală", - "Folder" : "Dosar", "New folder" : "Un nou dosar", - "Upload" : "Încărcă", + "Upload file" : "Încarcă fișier", + "Remove from favorites" : "Șterge din favorite", + "Add to favorites" : "Adaugă la favorite", "An error occurred while trying to update the tags" : "A apărut o eroare în timpul actualizării etichetelor", - "A new file or folder has been <strong>created</strong>" : "Un nou fișier sau dosar a fost <strong>creat</strong>", - "A file or folder has been <strong>deleted</strong>" : "Un nou fișier sau dosar a fost <strong>șters</strong>", + "Added to favorites" : "Adaugat la favorite", + "Removed from favorites" : "Șters din favorite", + "You added {file} to your favorites" : "Ai adaugat {file} în favorite", + "You removed {file} from your favorites" : "Ai șters {file} din favorite", + "Created by {user}" : "Creat de {user}", + "Changed by {user}" : "Modificat de {user}", + "Deleted by {user}" : "Șters de {user}", + "Restored by {user}" : "Restaurat de {user}", + "Renamed by {user}" : "Redenumit de {user}", + "Moved by {user}" : "Mutat de {user}", + "\"remote user\"" : "\"utilizator la distanță\"", + "You created {file}" : "Ai creat {file}", + "{user} created {file}" : "{user} a creat {file}", + "{file} was created in a public folder" : "{file} a fost creat într-un director public ", + "You changed {file}" : "Ai modificat {file}", + "{user} changed {file}" : "{user} a modificat {file}", + "You deleted {file}" : "Ai șters {file}", + "{user} deleted {file}" : "{user} a șters {file}", + "You restored {file}" : "Ai restaurat {file}", + "{user} restored {file}" : "{user} a restaurat {file}", + "You renamed {oldfile} to {newfile}" : "Ai redenumit {oldfile} în {newfile}", + "{user} renamed {oldfile} to {newfile}" : "{user} a redenumit {oldfile} în {newfile}", + "You moved {oldfile} to {newfile}" : "Ai mutat{oldfile} în {newfile}", + "{user} moved {oldfile} to {newfile}" : "{user} a mutat {oldfile} în {newfile}", + "A file has been added to or removed from your <strong>favorites</strong>" : "Un fișier a fost adăugat în sau șters din <strong>favorites</strong>", + "A file or folder has been <strong>changed</strong> or <strong>renamed</strong>" : "Un fișier sau director a fost <strong>modificat</strong> sau <strong>redenumit</strong>", + "A new file or folder has been <strong>created</strong>" : "Un nou fișier sau director a fost <strong>creat</strong>", + "A file or folder has been <strong>deleted</strong>" : "Un fișier sau director a fost <strong>șters</strong>", "A file or folder has been <strong>restored</strong>" : "Un fișier sau dosar a fost <strong>restaurat</strong>", - "You created %1$s" : "Ai creat %1$s", - "%2$s created %1$s" : "%2$s a creat %1$s", - "%1$s was created in a public folder" : "%1$s a fost creat în dosarul public", - "You changed %1$s" : "Ai schimbat %1$s", - "%2$s changed %1$s" : "%2$s a schimbat %1$s", - "You deleted %1$s" : "Ai şters %1$s", - "%2$s deleted %1$s" : "%2$s a șters %1$s", - "You restored %1$s" : "Ai restaurat %1$s", - "%2$s restored %1$s" : "%2$s a restaurat %1$s", - "Changed by %2$s" : "Modificat de %2$s", - "Deleted by %2$s" : "Șters de %2$s", - "Restored by %2$s" : "Restaurat de %2$s", "Upload (max. %s)" : "Încarcă (max. %s)", "File handling" : "Manipulare fișiere", "Maximum upload size" : "Dimensiune maximă admisă la încărcare", "max. possible: " : "max. posibil:", "Save" : "Salvează", + "With PHP-FPM it might take 5 minutes for changes to be applied." : "Cu PHP-FPM poate dura 5 minute pentru a aplica schimbările..", "Missing permissions to edit from here." : "Nu ai permisiuni pentru a edita aici.", + "%s of %s used" : "%s din %s folosiți", + "%s used" : "%s folosiți", "Settings" : "Setări", "Show hidden files" : "Arată fișierele ascunse", "WebDAV" : "WebDAV", + "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "Folosește această adresă <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">pentru a accesa Fișierele prin WebDAV</a>", + "Cancel upload" : "Anulează încărcarea", "No files in here" : "Niciun fișier aici", "Upload some content or sync with your devices!" : "Încarcă ceva conținut sau sincronizează cu dispozitivele tale!", "No entries found in this folder" : "Niciun element găsit în acest director", "Select all" : "Selectează tot", "Upload too large" : "Fișierul încărcat este prea mare", "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Fișierele pe care încerci să le încarci depășesc limita de încărcare maximă admisă pe acest server.", - "No favorites" : "Fără favorite", + "No favorites yet" : "Nu aveți favorite încă", "Files and folders you mark as favorite will show up here" : "FIșierele și directoarele pe care le marchezi ca favorite vor apărea aici", + "Shared with you" : "Partajat cu tine", + "Shared with others" : "Partajat cu alții", + "Shared by link" : "Partajat prin link", + "Tags" : "Etichete", + "Deleted files" : "Fișiere șterse", "Text file" : "Fișier text", "New text file.txt" : "New text file.txt", - "Storage not available" : "Spațiu de stocare indisponibil", - "Unable to set upload directory." : "Imposibil de a seta directorul pentru încărcare.", - "Invalid Token" : "Jeton Invalid", - "No file was uploaded. Unknown error" : "Niciun fișier nu a fost încărcat. Eroare necunoscută", - "There is no error, the file uploaded with success" : "Nu a apărut nici o eroare, fișierul a fost încărcat cu succes", - "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Fișierul încărcat depășește directiva upload_max_filesize din php.ini:", - "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Fișierul încărcat depășește directiva MAX_FILE_SIZE specificată în formularul HTML", - "The uploaded file was only partially uploaded" : "Fișierul a fost încărcat doar parțial", - "No file was uploaded" : "Nu a fost încărcat niciun fișier", - "Missing a temporary folder" : "Lipsește un dosar temporar", - "Failed to write to disk" : "Eroare la scrierea pe disc", - "Not enough storage available" : "Nu este disponibil suficient spațiu pe disc", - "The target folder has been moved or deleted." : "Dosarul țintă a fost mutat sau șters.", - "Upload failed. Could not find uploaded file" : "Încărcare eșuată. Nu se poate găsi fișierul încărcat", - "Upload failed. Could not get file info." : "Încărcare eșuată. Nu se pot obține informații despre fișier.", - "Invalid directory." : "Dosar invalid.", - "Total file size {size1} exceeds upload limit {size2}" : "Mărimea fișierului este {size1} ce depășește limita de încărcare de {size2}", - "Could not get result from server." : "Nu se poate obține rezultatul de la server.", - "No entries in this folder match '{filter}'" : "Niciun element din acest director nu se potrivește cu '{filter}'", - "{newname} already exists" : "{newname} există deja", - "A file or folder has been <strong>changed</strong>" : "Un nou fișier sau dosar a fost <strong>modificat</strong>" + "Uploading..." : "Încărcare", + "..." : "...", + "{hours}:{minutes}h" : "{hours}:{minutes}h", + "{minutes}:{seconds}m" : "{minutes}:{seconds}m", + "{seconds}s" : "{seconds}s", + "Any moment now..." : "În orice moment...", + "Soon..." : "În curând...", + "File upload is in progress. Leaving the page now will cancel the upload." : "Fișierul este în curs de încărcare. Părăsirea paginii va întrerupe încărcarea.", + "Move" : "Mută", + "Folder" : "Dosar", + "Upload" : "Încărcă", + "A new file or folder has been <strong>deleted</strong>" : "Un nou fișier sau director a fost <strong>șters</strong>", + "A new file or folder has been <strong>restored</strong>" : "Un fișier sau director a fost <strong>restaurat</strong>", + "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Folosește această adresă <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">pentru a accesa Fișierele prin WebDAV</a>", + "No favorites" : "Fără favorite" },"pluralForm" :"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));" }
\ No newline at end of file diff --git a/apps/files/l10n/ru.js b/apps/files/l10n/ru.js index b6222725a72..9878e2f78dd 100644 --- a/apps/files/l10n/ru.js +++ b/apps/files/l10n/ru.js @@ -62,8 +62,11 @@ OC.L10N.register( "You don’t have permission to upload or create files here" : "У вас нет разрешений на создание или загрузку файлов в эту папку.", "_Uploading %n file_::_Uploading %n files_" : ["Выгружа%nется файл","Выгружаются %n файла","Выгружаются %n файлов","Загружаются %n файлов"], "New" : "Новый", + "{used} of {quota} used" : "использовано {used} из {quota}", + "{used} used" : "использовано {used}", "\"{name}\" is an invalid file name." : "«{name}» — недопустимое имя файла.", "File name cannot be empty." : "Имя файла не может быть пустым.", + "\"/\" is not allowed inside a file name." : "Символ «/» недопустим в имени файла.", "\"{name}\" is not an allowed filetype" : "«{name}» - недопустимый тип файла.", "Storage of {owner} is full, files can not be updated or synced anymore!" : "Хранилище {owner} переполнено, файлы больше не могут быть обновлены или синхронизированы!", "Your storage is full, files can not be updated or synced anymore!" : "Ваше хранилище переполнено, файлы больше не могут быть обновлены или синхронизированы!", diff --git a/apps/files/l10n/ru.json b/apps/files/l10n/ru.json index e989cdd3183..be07497fda4 100644 --- a/apps/files/l10n/ru.json +++ b/apps/files/l10n/ru.json @@ -60,8 +60,11 @@ "You don’t have permission to upload or create files here" : "У вас нет разрешений на создание или загрузку файлов в эту папку.", "_Uploading %n file_::_Uploading %n files_" : ["Выгружа%nется файл","Выгружаются %n файла","Выгружаются %n файлов","Загружаются %n файлов"], "New" : "Новый", + "{used} of {quota} used" : "использовано {used} из {quota}", + "{used} used" : "использовано {used}", "\"{name}\" is an invalid file name." : "«{name}» — недопустимое имя файла.", "File name cannot be empty." : "Имя файла не может быть пустым.", + "\"/\" is not allowed inside a file name." : "Символ «/» недопустим в имени файла.", "\"{name}\" is not an allowed filetype" : "«{name}» - недопустимый тип файла.", "Storage of {owner} is full, files can not be updated or synced anymore!" : "Хранилище {owner} переполнено, файлы больше не могут быть обновлены или синхронизированы!", "Your storage is full, files can not be updated or synced anymore!" : "Ваше хранилище переполнено, файлы больше не могут быть обновлены или синхронизированы!", diff --git a/apps/files/tests/js/mainfileinfodetailviewSpec.js b/apps/files/tests/js/mainfileinfodetailviewSpec.js index faf0faa8d8f..0201429a472 100644 --- a/apps/files/tests/js/mainfileinfodetailviewSpec.js +++ b/apps/files/tests/js/mainfileinfodetailviewSpec.js @@ -68,6 +68,12 @@ describe('OCA.Files.MainFileInfoDetailView tests', function() { .toEqual(OC.getProtocol() + '://' + OC.getHost() + OC.generateUrl('/f/5')); }); it('displays favorite icon', function() { + fileActions.registerAction({ + name: 'Favorite', + mime: 'all', + permissions: OC.PERMISSION_NONE + }); + testFileInfo.set('tags', [OC.TAG_FAVORITE]); view.setFileInfo(testFileInfo); expect(view.$el.find('.action-favorite > span').hasClass('icon-starred')).toEqual(true); @@ -78,6 +84,15 @@ describe('OCA.Files.MainFileInfoDetailView tests', function() { expect(view.$el.find('.action-favorite > span').hasClass('icon-starred')).toEqual(false); expect(view.$el.find('.action-favorite > span').hasClass('icon-star')).toEqual(true); }); + it('does not display favorite icon if favorite action is not available', function() { + testFileInfo.set('tags', [OC.TAG_FAVORITE]); + view.setFileInfo(testFileInfo); + expect(view.$el.find('.action-favorite').length).toEqual(0); + + testFileInfo.set('tags', []); + view.setFileInfo(testFileInfo); + expect(view.$el.find('.action-favorite').length).toEqual(0); + }); it('displays mime icon', function() { // File var lazyLoadPreviewStub = sinon.stub(fileList, 'lazyLoadPreview'); @@ -183,6 +198,13 @@ describe('OCA.Files.MainFileInfoDetailView tests', function() { expect(view.$el.find('.fileName h3').attr('title')).toEqual('hello.txt'); }); it('rerenders when changes are made on the model', function() { + // Show the "Favorite" icon + fileActions.registerAction({ + name: 'Favorite', + mime: 'all', + permissions: OC.PERMISSION_NONE + }); + view.setFileInfo(testFileInfo); testFileInfo.set('tags', [OC.TAG_FAVORITE]); @@ -196,6 +218,13 @@ describe('OCA.Files.MainFileInfoDetailView tests', function() { expect(view.$el.find('.action-favorite > span').hasClass('icon-star')).toEqual(true); }); it('unbinds change listener from model', function() { + // Show the "Favorite" icon + fileActions.registerAction({ + name: 'Favorite', + mime: 'all', + permissions: OC.PERMISSION_NONE + }); + view.setFileInfo(testFileInfo); view.setFileInfo(new OCA.Files.FileInfoModel({ id: 999, diff --git a/apps/files_external/l10n/de.js b/apps/files_external/l10n/de.js index 40126676f0a..eb8fbdf0d8c 100644 --- a/apps/files_external/l10n/de.js +++ b/apps/files_external/l10n/de.js @@ -75,6 +75,7 @@ OC.L10N.register( "Region" : "Region", "Enable SSL" : "SSL aktivieren", "Enable Path Style" : "Pfad-Stil aktivieren", + "Legacy (v2) authentication" : "Legacy-Authentifizierung (V2)", "WebDAV" : "WebDAV", "URL" : "URL", "Remote subfolder" : "Entfernter Unterordner", diff --git a/apps/files_external/l10n/de.json b/apps/files_external/l10n/de.json index c93ba785568..53fd2e422fa 100644 --- a/apps/files_external/l10n/de.json +++ b/apps/files_external/l10n/de.json @@ -73,6 +73,7 @@ "Region" : "Region", "Enable SSL" : "SSL aktivieren", "Enable Path Style" : "Pfad-Stil aktivieren", + "Legacy (v2) authentication" : "Legacy-Authentifizierung (V2)", "WebDAV" : "WebDAV", "URL" : "URL", "Remote subfolder" : "Entfernter Unterordner", diff --git a/apps/files_external/l10n/de_DE.js b/apps/files_external/l10n/de_DE.js index 6851466d426..5f01b5179de 100644 --- a/apps/files_external/l10n/de_DE.js +++ b/apps/files_external/l10n/de_DE.js @@ -75,6 +75,7 @@ OC.L10N.register( "Region" : "Region", "Enable SSL" : "SSL aktivieren", "Enable Path Style" : "Pfadstil aktivieren", + "Legacy (v2) authentication" : "Legacy-Authentifizierung (V2)", "WebDAV" : "WebDAV", "URL" : "Adresse", "Remote subfolder" : "Entfernter Unterordner", diff --git a/apps/files_external/l10n/de_DE.json b/apps/files_external/l10n/de_DE.json index 22e359c0378..e5f25c97a1f 100644 --- a/apps/files_external/l10n/de_DE.json +++ b/apps/files_external/l10n/de_DE.json @@ -73,6 +73,7 @@ "Region" : "Region", "Enable SSL" : "SSL aktivieren", "Enable Path Style" : "Pfadstil aktivieren", + "Legacy (v2) authentication" : "Legacy-Authentifizierung (V2)", "WebDAV" : "WebDAV", "URL" : "Adresse", "Remote subfolder" : "Entfernter Unterordner", diff --git a/apps/files_external/l10n/en_GB.js b/apps/files_external/l10n/en_GB.js index 131c9af43ad..45fe58c0b36 100644 --- a/apps/files_external/l10n/en_GB.js +++ b/apps/files_external/l10n/en_GB.js @@ -75,6 +75,7 @@ OC.L10N.register( "Region" : "Region", "Enable SSL" : "Enable SSL", "Enable Path Style" : "Enable Path Style", + "Legacy (v2) authentication" : "Legacy (v2) authentication", "WebDAV" : "WebDAV", "URL" : "URL", "Remote subfolder" : "Remote subfolder", diff --git a/apps/files_external/l10n/en_GB.json b/apps/files_external/l10n/en_GB.json index 5c60ec6e344..f7ac7290e7a 100644 --- a/apps/files_external/l10n/en_GB.json +++ b/apps/files_external/l10n/en_GB.json @@ -73,6 +73,7 @@ "Region" : "Region", "Enable SSL" : "Enable SSL", "Enable Path Style" : "Enable Path Style", + "Legacy (v2) authentication" : "Legacy (v2) authentication", "WebDAV" : "WebDAV", "URL" : "URL", "Remote subfolder" : "Remote subfolder", diff --git a/apps/files_external/l10n/es.js b/apps/files_external/l10n/es.js index b980588862e..7bfed57158d 100644 --- a/apps/files_external/l10n/es.js +++ b/apps/files_external/l10n/es.js @@ -75,6 +75,7 @@ OC.L10N.register( "Region" : "Región", "Enable SSL" : "Habilitar SSL", "Enable Path Style" : "Habilitar Estilo de Ruta", + "Legacy (v2) authentication" : "Autenticación heredada (v2)", "WebDAV" : "WebDAV", "URL" : "URL", "Remote subfolder" : "Subcarpeta remota", diff --git a/apps/files_external/l10n/es.json b/apps/files_external/l10n/es.json index 0c6ab09d88d..79c81accd58 100644 --- a/apps/files_external/l10n/es.json +++ b/apps/files_external/l10n/es.json @@ -73,6 +73,7 @@ "Region" : "Región", "Enable SSL" : "Habilitar SSL", "Enable Path Style" : "Habilitar Estilo de Ruta", + "Legacy (v2) authentication" : "Autenticación heredada (v2)", "WebDAV" : "WebDAV", "URL" : "URL", "Remote subfolder" : "Subcarpeta remota", diff --git a/apps/files_external/l10n/hu.js b/apps/files_external/l10n/hu.js index 81eddd893a0..8dcecbaeffb 100644 --- a/apps/files_external/l10n/hu.js +++ b/apps/files_external/l10n/hu.js @@ -75,6 +75,7 @@ OC.L10N.register( "Region" : "Megye", "Enable SSL" : "SSL engedélyezése", "Enable Path Style" : "Útvonal stílus engedélyezés", + "Legacy (v2) authentication" : "Elavult (v2) authetikáció", "WebDAV" : "WebDAV", "URL" : "URL", "Remote subfolder" : "Távoli almappa", diff --git a/apps/files_external/l10n/hu.json b/apps/files_external/l10n/hu.json index f05459b00b9..fc51260454c 100644 --- a/apps/files_external/l10n/hu.json +++ b/apps/files_external/l10n/hu.json @@ -73,6 +73,7 @@ "Region" : "Megye", "Enable SSL" : "SSL engedélyezése", "Enable Path Style" : "Útvonal stílus engedélyezés", + "Legacy (v2) authentication" : "Elavult (v2) authetikáció", "WebDAV" : "WebDAV", "URL" : "URL", "Remote subfolder" : "Távoli almappa", diff --git a/apps/files_external/l10n/it.js b/apps/files_external/l10n/it.js index e19f6a657db..4bd2908b431 100644 --- a/apps/files_external/l10n/it.js +++ b/apps/files_external/l10n/it.js @@ -75,6 +75,7 @@ OC.L10N.register( "Region" : "Regione", "Enable SSL" : "Abilita SSL", "Enable Path Style" : "Abilita stile percorsi", + "Legacy (v2) authentication" : "Autenticazione tradizionale (v2)", "WebDAV" : "WebDAV", "URL" : "URL", "Remote subfolder" : "Sottocartella remota", diff --git a/apps/files_external/l10n/it.json b/apps/files_external/l10n/it.json index ecb8d2082e6..36d4b296199 100644 --- a/apps/files_external/l10n/it.json +++ b/apps/files_external/l10n/it.json @@ -73,6 +73,7 @@ "Region" : "Regione", "Enable SSL" : "Abilita SSL", "Enable Path Style" : "Abilita stile percorsi", + "Legacy (v2) authentication" : "Autenticazione tradizionale (v2)", "WebDAV" : "WebDAV", "URL" : "URL", "Remote subfolder" : "Sottocartella remota", diff --git a/apps/files_external/l10n/ka_GE.js b/apps/files_external/l10n/ka_GE.js index ff2f4e9afab..782242ae5dc 100644 --- a/apps/files_external/l10n/ka_GE.js +++ b/apps/files_external/l10n/ka_GE.js @@ -75,6 +75,7 @@ OC.L10N.register( "Region" : "რეგიონი", "Enable SSL" : "SSL-ის ამოქმედება", "Enable Path Style" : "ბილიკის სტილის ამოქმედება", + "Legacy (v2) authentication" : "ლეგატი (ვ2) აუტენტიფიკაცია", "WebDAV" : "WebDAV-ი", "URL" : "URL", "Remote subfolder" : "დისტანციური ქვე-დირექტორია", diff --git a/apps/files_external/l10n/ka_GE.json b/apps/files_external/l10n/ka_GE.json index 34f02298e85..7d9ebcdb3b1 100644 --- a/apps/files_external/l10n/ka_GE.json +++ b/apps/files_external/l10n/ka_GE.json @@ -73,6 +73,7 @@ "Region" : "რეგიონი", "Enable SSL" : "SSL-ის ამოქმედება", "Enable Path Style" : "ბილიკის სტილის ამოქმედება", + "Legacy (v2) authentication" : "ლეგატი (ვ2) აუტენტიფიკაცია", "WebDAV" : "WebDAV-ი", "URL" : "URL", "Remote subfolder" : "დისტანციური ქვე-დირექტორია", diff --git a/apps/files_external/l10n/ko.js b/apps/files_external/l10n/ko.js index 192c5a1c5c0..f91f5f72320 100644 --- a/apps/files_external/l10n/ko.js +++ b/apps/files_external/l10n/ko.js @@ -75,6 +75,7 @@ OC.L10N.register( "Region" : "지역", "Enable SSL" : "SSL 사용", "Enable Path Style" : "경로 스타일 사용", + "Legacy (v2) authentication" : "레거시(v2) 인증", "WebDAV" : "WebDAV", "URL" : "URL", "Remote subfolder" : "원격 하위 폴더", diff --git a/apps/files_external/l10n/ko.json b/apps/files_external/l10n/ko.json index aa11d68aa48..4f2bd99e984 100644 --- a/apps/files_external/l10n/ko.json +++ b/apps/files_external/l10n/ko.json @@ -73,6 +73,7 @@ "Region" : "지역", "Enable SSL" : "SSL 사용", "Enable Path Style" : "경로 스타일 사용", + "Legacy (v2) authentication" : "레거시(v2) 인증", "WebDAV" : "WebDAV", "URL" : "URL", "Remote subfolder" : "원격 하위 폴더", diff --git a/apps/files_external/l10n/nl.js b/apps/files_external/l10n/nl.js index 2749e59e11b..5e53b24ddc6 100644 --- a/apps/files_external/l10n/nl.js +++ b/apps/files_external/l10n/nl.js @@ -75,6 +75,7 @@ OC.L10N.register( "Region" : "Regio", "Enable SSL" : "Activeren SSL", "Enable Path Style" : "Activeren pad stijl", + "Legacy (v2) authentication" : "Legacy (v2) authenticatie", "WebDAV" : "WebDAV", "URL" : "URL", "Remote subfolder" : "Externe submap", diff --git a/apps/files_external/l10n/nl.json b/apps/files_external/l10n/nl.json index 8258427503a..ee2ffa25a93 100644 --- a/apps/files_external/l10n/nl.json +++ b/apps/files_external/l10n/nl.json @@ -73,6 +73,7 @@ "Region" : "Regio", "Enable SSL" : "Activeren SSL", "Enable Path Style" : "Activeren pad stijl", + "Legacy (v2) authentication" : "Legacy (v2) authenticatie", "WebDAV" : "WebDAV", "URL" : "URL", "Remote subfolder" : "Externe submap", diff --git a/apps/files_external/l10n/pt_BR.js b/apps/files_external/l10n/pt_BR.js index 077b89e1cf7..c2fe422e7b3 100644 --- a/apps/files_external/l10n/pt_BR.js +++ b/apps/files_external/l10n/pt_BR.js @@ -75,6 +75,7 @@ OC.L10N.register( "Region" : "Região", "Enable SSL" : "Habilitar SSL", "Enable Path Style" : "Habilitar Estilo do Caminho", + "Legacy (v2) authentication" : "Autenticação (v2) herdada", "WebDAV" : "WebDAV", "URL" : "URL", "Remote subfolder" : "Subpasta remota", diff --git a/apps/files_external/l10n/pt_BR.json b/apps/files_external/l10n/pt_BR.json index f9472a5c79d..4f5550870c5 100644 --- a/apps/files_external/l10n/pt_BR.json +++ b/apps/files_external/l10n/pt_BR.json @@ -73,6 +73,7 @@ "Region" : "Região", "Enable SSL" : "Habilitar SSL", "Enable Path Style" : "Habilitar Estilo do Caminho", + "Legacy (v2) authentication" : "Autenticação (v2) herdada", "WebDAV" : "WebDAV", "URL" : "URL", "Remote subfolder" : "Subpasta remota", diff --git a/apps/files_external/l10n/sr.js b/apps/files_external/l10n/sr.js index ddff1a6a318..bd94b6dd843 100644 --- a/apps/files_external/l10n/sr.js +++ b/apps/files_external/l10n/sr.js @@ -75,6 +75,7 @@ OC.L10N.register( "Region" : "Регија", "Enable SSL" : "Омогући ССЛ", "Enable Path Style" : "Омогући стил путање", + "Legacy (v2) authentication" : "Стара (v2) провера идентитета", "WebDAV" : "ВебДАВ", "URL" : "УРЛ", "Remote subfolder" : "Удаљена потфасцикла", diff --git a/apps/files_external/l10n/sr.json b/apps/files_external/l10n/sr.json index 15b84d8ac51..7aa88bfaade 100644 --- a/apps/files_external/l10n/sr.json +++ b/apps/files_external/l10n/sr.json @@ -73,6 +73,7 @@ "Region" : "Регија", "Enable SSL" : "Омогући ССЛ", "Enable Path Style" : "Омогући стил путање", + "Legacy (v2) authentication" : "Стара (v2) провера идентитета", "WebDAV" : "ВебДАВ", "URL" : "УРЛ", "Remote subfolder" : "Удаљена потфасцикла", diff --git a/apps/files_sharing/l10n/ko.js b/apps/files_sharing/l10n/ko.js index aad92ab9ef6..5f8e4374ab8 100644 --- a/apps/files_sharing/l10n/ko.js +++ b/apps/files_sharing/l10n/ko.js @@ -15,7 +15,7 @@ OC.L10N.register( "Invalid server URL" : "잘못된 서버 URL", "Failed to add the public link to your Nextcloud" : "Nextcloud에 공개 링크를 추가할 수 없음", "Share" : "공유", - "No expiration date set" : "만료 날짜가 설정되지 않음", + "No expiration date set" : "만료 날짜가 설정되지 않았음", "Shared by" : "공유한 사용자:", "Sharing" : "공유", "File shares" : "파일 공유", @@ -71,17 +71,17 @@ OC.L10N.register( "Wrong path, file/folder doesn't exist" : "잘못된 경로, 파일/폴더가 존재하지 않음", "Could not create share" : "공유를 만들 수 없음", "invalid permissions" : "잘못된 권한", - "Please specify a valid user" : "유효한 사용자를 지정하십시오", - "Group sharing is disabled by the administrator" : "그룹 공유는 관리자에 의해 비활성화되어 있음", - "Please specify a valid group" : "유효한 그룹을 지정하십시오", - "Public link sharing is disabled by the administrator" : "공개 링크 공유는 관리자에 의해 비활성화되어 있음", + "Please specify a valid user" : "올바른 사용자를 지정하십시오", + "Group sharing is disabled by the administrator" : "관리자가 그룹 공유를 비활성화함", + "Please specify a valid group" : "올바른 그룹을 지정하십시오", + "Public link sharing is disabled by the administrator" : "관리자가 공개 링크 공유를 비활성화함", "Public upload disabled by the administrator" : "공개 업로드는 관리자에 의해 비활성화되어 있음", "Public upload is only possible for publicly shared folders" : "공개 공유 폴더에만 공개 업로드를 사용할 수 있음", "Invalid date, date format must be YYYY-MM-DD" : "잘못된 날짜, YYYY-MM-DD 형식이어야 합니다.", "Sharing %s failed because the back end does not allow shares from type %s" : "%s을(를) 공유할 수 없습니다. 백엔드에서 %s 형식의 공유를 지원하지 않습니다", "You cannot share to a Circle if the app is not enabled" : "서클 앱이 활성화되어 있지 않으면 서클로 공유할 수 없음", "Please specify a valid circle" : "올바른 서클을 지정하십시오", - "Unknown share type" : "알 수 없는 공유 유형", + "Unknown share type" : "알 수 없는 공유 형식", "Not a directory" : "디렉터리가 아님", "Could not lock path" : "경로를 잠글 수 없음", "Wrong or no update parameter given" : "업데이트 인자가 잘못되었거나 지정되지 않았음", diff --git a/apps/files_sharing/l10n/ko.json b/apps/files_sharing/l10n/ko.json index d60145d5faf..00c5d8b954a 100644 --- a/apps/files_sharing/l10n/ko.json +++ b/apps/files_sharing/l10n/ko.json @@ -13,7 +13,7 @@ "Invalid server URL" : "잘못된 서버 URL", "Failed to add the public link to your Nextcloud" : "Nextcloud에 공개 링크를 추가할 수 없음", "Share" : "공유", - "No expiration date set" : "만료 날짜가 설정되지 않음", + "No expiration date set" : "만료 날짜가 설정되지 않았음", "Shared by" : "공유한 사용자:", "Sharing" : "공유", "File shares" : "파일 공유", @@ -69,17 +69,17 @@ "Wrong path, file/folder doesn't exist" : "잘못된 경로, 파일/폴더가 존재하지 않음", "Could not create share" : "공유를 만들 수 없음", "invalid permissions" : "잘못된 권한", - "Please specify a valid user" : "유효한 사용자를 지정하십시오", - "Group sharing is disabled by the administrator" : "그룹 공유는 관리자에 의해 비활성화되어 있음", - "Please specify a valid group" : "유효한 그룹을 지정하십시오", - "Public link sharing is disabled by the administrator" : "공개 링크 공유는 관리자에 의해 비활성화되어 있음", + "Please specify a valid user" : "올바른 사용자를 지정하십시오", + "Group sharing is disabled by the administrator" : "관리자가 그룹 공유를 비활성화함", + "Please specify a valid group" : "올바른 그룹을 지정하십시오", + "Public link sharing is disabled by the administrator" : "관리자가 공개 링크 공유를 비활성화함", "Public upload disabled by the administrator" : "공개 업로드는 관리자에 의해 비활성화되어 있음", "Public upload is only possible for publicly shared folders" : "공개 공유 폴더에만 공개 업로드를 사용할 수 있음", "Invalid date, date format must be YYYY-MM-DD" : "잘못된 날짜, YYYY-MM-DD 형식이어야 합니다.", "Sharing %s failed because the back end does not allow shares from type %s" : "%s을(를) 공유할 수 없습니다. 백엔드에서 %s 형식의 공유를 지원하지 않습니다", "You cannot share to a Circle if the app is not enabled" : "서클 앱이 활성화되어 있지 않으면 서클로 공유할 수 없음", "Please specify a valid circle" : "올바른 서클을 지정하십시오", - "Unknown share type" : "알 수 없는 공유 유형", + "Unknown share type" : "알 수 없는 공유 형식", "Not a directory" : "디렉터리가 아님", "Could not lock path" : "경로를 잠글 수 없음", "Wrong or no update parameter given" : "업데이트 인자가 잘못되었거나 지정되지 않았음", diff --git a/apps/sharebymail/l10n/sv.js b/apps/sharebymail/l10n/sv.js index eb3b8451e6b..03789a8af96 100644 --- a/apps/sharebymail/l10n/sv.js +++ b/apps/sharebymail/l10n/sv.js @@ -5,9 +5,9 @@ OC.L10N.register( "Shared with {email}" : "Delad med {email}", "Shared with %1$s by %2$s" : "Delad med %1$s av %2$s", "Shared with {email} by {actor}" : "Delad med {email} av {actor}", - "Password for mail share sent to %1$s" : "Lösenord för maildelning sändes till %1$s", - "Password for mail share sent to {email}" : "Lösenord för maildelning skickat till {email}", - "Password for mail share sent to you" : "Lösenord för epostdelning skickat till dig", + "Password for mail share sent to %1$s" : "Lösenord för e-postdelning sändes till %1$s", + "Password for mail share sent to {email}" : "Lösenord för e-postdelning skickat till {email}", + "Password for mail share sent to you" : "Lösenord för e-postdelning skickat till dig", "You shared %1$s with %2$s by mail" : "Du delade %1$s med %2$s via e-post", "You shared {file} with {email} by mail" : "Du delade {file} med {email} via e-post", "%3$s shared %1$s with %2$s by mail" : "%3$s delade %1$s med %2$s via e-post", @@ -17,15 +17,15 @@ OC.L10N.register( "Password to access %1$s was sent to you" : "Lösenord för att nå %1$s sändes till dig", "Password to access {file} was sent to you" : "Lösenord till {file} sändes till dig", "Sharing %s failed, this item is already shared with %s" : "Delning av %s misslyckades, det är redan delat med %s", - "We can't send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "Vi kan inte sända dig det autogenererade lösenordet. Vänligen ange en giltig epost-adress i dina personliga inställningar och försök igen.", + "We can't send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "Vi kan inte skicka det autogenererade lösenordet till dig. Vänligen ange en giltig e-postadress i dina personliga inställningar och försök igen.", "Failed to send share by email" : "Misslyckades att sända delning med e-post", "%s shared »%s« with you" : "%s delade »%s« med dig", "%s shared »%s« with you." : "%s delade »%s« med dig.", - "Click the button below to open it." : "Klicka knappen nedan för att öppna det.", + "Click the button below to open it." : "Klicka på knappen nedan för att öppna det.", "Open »%s«" : "Öppna »%s«", "%s via %s" : "%s via %s", - "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s delade »%s« med dig.\nDu ska redan ha fått ett separat epost med en länk för att nå det.\n", - "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s delade »%s« med dig. Du ska redan ha fått ett separat e-post med en länk för att nå det.", + "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s delade »%s« med dig.\nDu ska redan ha fått ett separat mail med en länk för att komma åt det.\n", + "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s delade »%s« med dig. Du ska redan ha fått ett separat mail med en länk för att komma åt det.", "Password to access »%s« shared to you by %s" : "Lösenord för att få tillgång till »%s« delat med dig av %s", "Password to access »%s«" : "Lösenord för att nå »%s«", "It is protected with the following password: %s" : "Den är skyddad med följande lösenord: %s", @@ -35,8 +35,8 @@ OC.L10N.register( "You can choose a different password at any time in the share dialog." : "Du kan välja ett annat lösenord när som helst i delningsdialogen.", "Could not find share" : "Kunde inte hitta delning", "Share by mail" : "Dela via e-post", - "Allows users to share a personalized link to a file or folder by putting in an email address." : "Tillåt användare att dela en personlig länk till en fil eller mapp genom att ange en e-post-adress", - "Send password by mail" : "Skicka lösenord med e-post", + "Allows users to share a personalized link to a file or folder by putting in an email address." : "Tillåt användare att dela en personlig länk till en fil eller mapp genom att ange en e-postadress", + "Send password by mail" : "Skicka lösenord via e-post", "Enforce password protection" : "Tvinga lösenordsskydd", "Failed to send share by E-mail" : "Misslyckades att dela via e-post", "%s shared »%s« with you on behalf of %s" : "%s delade »%s« med dig på begäran av %s", diff --git a/apps/sharebymail/l10n/sv.json b/apps/sharebymail/l10n/sv.json index 75e3bb9d299..ced3fece128 100644 --- a/apps/sharebymail/l10n/sv.json +++ b/apps/sharebymail/l10n/sv.json @@ -3,9 +3,9 @@ "Shared with {email}" : "Delad med {email}", "Shared with %1$s by %2$s" : "Delad med %1$s av %2$s", "Shared with {email} by {actor}" : "Delad med {email} av {actor}", - "Password for mail share sent to %1$s" : "Lösenord för maildelning sändes till %1$s", - "Password for mail share sent to {email}" : "Lösenord för maildelning skickat till {email}", - "Password for mail share sent to you" : "Lösenord för epostdelning skickat till dig", + "Password for mail share sent to %1$s" : "Lösenord för e-postdelning sändes till %1$s", + "Password for mail share sent to {email}" : "Lösenord för e-postdelning skickat till {email}", + "Password for mail share sent to you" : "Lösenord för e-postdelning skickat till dig", "You shared %1$s with %2$s by mail" : "Du delade %1$s med %2$s via e-post", "You shared {file} with {email} by mail" : "Du delade {file} med {email} via e-post", "%3$s shared %1$s with %2$s by mail" : "%3$s delade %1$s med %2$s via e-post", @@ -15,15 +15,15 @@ "Password to access %1$s was sent to you" : "Lösenord för att nå %1$s sändes till dig", "Password to access {file} was sent to you" : "Lösenord till {file} sändes till dig", "Sharing %s failed, this item is already shared with %s" : "Delning av %s misslyckades, det är redan delat med %s", - "We can't send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "Vi kan inte sända dig det autogenererade lösenordet. Vänligen ange en giltig epost-adress i dina personliga inställningar och försök igen.", + "We can't send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "Vi kan inte skicka det autogenererade lösenordet till dig. Vänligen ange en giltig e-postadress i dina personliga inställningar och försök igen.", "Failed to send share by email" : "Misslyckades att sända delning med e-post", "%s shared »%s« with you" : "%s delade »%s« med dig", "%s shared »%s« with you." : "%s delade »%s« med dig.", - "Click the button below to open it." : "Klicka knappen nedan för att öppna det.", + "Click the button below to open it." : "Klicka på knappen nedan för att öppna det.", "Open »%s«" : "Öppna »%s«", "%s via %s" : "%s via %s", - "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s delade »%s« med dig.\nDu ska redan ha fått ett separat epost med en länk för att nå det.\n", - "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s delade »%s« med dig. Du ska redan ha fått ett separat e-post med en länk för att nå det.", + "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s delade »%s« med dig.\nDu ska redan ha fått ett separat mail med en länk för att komma åt det.\n", + "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s delade »%s« med dig. Du ska redan ha fått ett separat mail med en länk för att komma åt det.", "Password to access »%s« shared to you by %s" : "Lösenord för att få tillgång till »%s« delat med dig av %s", "Password to access »%s«" : "Lösenord för att nå »%s«", "It is protected with the following password: %s" : "Den är skyddad med följande lösenord: %s", @@ -33,8 +33,8 @@ "You can choose a different password at any time in the share dialog." : "Du kan välja ett annat lösenord när som helst i delningsdialogen.", "Could not find share" : "Kunde inte hitta delning", "Share by mail" : "Dela via e-post", - "Allows users to share a personalized link to a file or folder by putting in an email address." : "Tillåt användare att dela en personlig länk till en fil eller mapp genom att ange en e-post-adress", - "Send password by mail" : "Skicka lösenord med e-post", + "Allows users to share a personalized link to a file or folder by putting in an email address." : "Tillåt användare att dela en personlig länk till en fil eller mapp genom att ange en e-postadress", + "Send password by mail" : "Skicka lösenord via e-post", "Enforce password protection" : "Tvinga lösenordsskydd", "Failed to send share by E-mail" : "Misslyckades att dela via e-post", "%s shared »%s« with you on behalf of %s" : "%s delade »%s« med dig på begäran av %s", diff --git a/apps/theming/lib/Controller/ThemingController.php b/apps/theming/lib/Controller/ThemingController.php index 5fd6edd8ab7..6592eb7f7ab 100644 --- a/apps/theming/lib/Controller/ThemingController.php +++ b/apps/theming/lib/Controller/ThemingController.php @@ -324,7 +324,7 @@ class ThemingController extends Controller { public function undo($setting) { $value = $this->themingDefaults->undo($setting); // reprocess server scss for preview - $cssCached = $this->scssCacher->process(\OC::$SERVERROOT, '/core/css/server.scss', 'core'); + $cssCached = $this->scssCacher->process(\OC::$SERVERROOT, 'core/css/server.scss', 'core'); if($setting === 'logoMime') { try { diff --git a/config/config.sample.php b/config/config.sample.php index 05efcaa2738..5f29933ec65 100644 --- a/config/config.sample.php +++ b/config/config.sample.php @@ -849,25 +849,16 @@ $CONFIG = array( * The maximum width, in pixels, of a preview. A value of ``null`` means there * is no limit. * - * Defaults to ``2048`` + * Defaults to ``4096`` */ -'preview_max_x' => 2048, +'preview_max_x' => 4096, /** * The maximum height, in pixels, of a preview. A value of ``null`` means there * is no limit. * - * Defaults to ``2048`` + * Defaults to ``4096`` */ -'preview_max_y' => 2048, -/** - * If a lot of small pictures are stored on the Nextcloud instance and the - * preview system generates blurry previews, you might want to consider setting - * a maximum scale factor. By default, pictures are upscaled to 10 times the - * original size. A value of ``1`` or ``null`` disables scaling. - * - * Defaults to ``2`` - */ -'preview_max_scale_factor' => 10, +'preview_max_y' => 4096, /** * max file size for generating image previews with imagegd (default behavior) diff --git a/core/Controller/OCJSController.php b/core/Controller/OCJSController.php index de880968a69..8db26dd3d38 100644 --- a/core/Controller/OCJSController.php +++ b/core/Controller/OCJSController.php @@ -34,11 +34,11 @@ use OCP\AppFramework\Http\DataDisplayResponse; use OCP\Defaults; use OCP\IConfig; use OCP\IGroupManager; -use OCP\IL10N; use OCP\IRequest; use OCP\ISession; use OCP\IURLGenerator; use OCP\IUserSession; +use OCP\L10N\IFactory; class OCJSController extends Controller { @@ -50,7 +50,7 @@ class OCJSController extends Controller { * * @param string $appName * @param IRequest $request - * @param IL10N $l + * @param IFactory $l10nFactory * @param Defaults $defaults * @param IAppManager $appManager * @param ISession $session @@ -62,7 +62,7 @@ class OCJSController extends Controller { */ public function __construct($appName, IRequest $request, - IL10N $l, + IFactory $l10nFactory, Defaults $defaults, IAppManager $appManager, ISession $session, @@ -74,7 +74,7 @@ class OCJSController extends Controller { parent::__construct($appName, $request); $this->helper = new JSConfigHelper( - $l, + $l10nFactory->get('lib'), $defaults, $appManager, $session, diff --git a/core/css/fixes.scss b/core/css/fixes.scss index 0303b4d751a..09ab9c1d244 100644 --- a/core/css/fixes.scss +++ b/core/css/fixes.scss @@ -20,6 +20,7 @@ select { .ie .header-left #navigation, .ie .ui-datepicker, .ie .ui-timepicker.ui-widget, -.ie #appmenu li span { +.ie #appmenu li span, +.ie .tooltip-inner { box-shadow: 0 1px 10px $color-box-shadow; } diff --git a/core/css/styles.scss b/core/css/styles.scss index b782c4e558a..4b02041976b 100644 --- a/core/css/styles.scss +++ b/core/css/styles.scss @@ -234,7 +234,7 @@ body { padding: 0; margin: 0; background-color: rgba($color-main-background, 0.95); - z-index: 55; + z-index: 60; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; diff --git a/core/css/tooltip.scss b/core/css/tooltip.scss index e9982b580ca..a974e05e1a6 100644 --- a/core/css/tooltip.scss +++ b/core/css/tooltip.scss @@ -31,6 +31,7 @@ font-size: 12px; opacity: 0; z-index: 100000; + filter: drop-shadow(0 1px 10px $color-box-shadow); &.in { opacity: 1; } @@ -115,7 +116,6 @@ padding: 5px 8px; background-color: $color-main-background; color: $color-main-text; - box-shadow: 0 1px 10px $color-box-shadow; text-align: center; border-radius: $border-radius; } diff --git a/core/js/jquery.avatar.js b/core/js/jquery.avatar.js index 958f0f9edd7..6da86341c1e 100644 --- a/core/js/jquery.avatar.js +++ b/core/js/jquery.avatar.js @@ -110,9 +110,8 @@ // If the new image loads successfully set it. img.onload = function() { - $div.text(''); - $div.append(img); $div.clearimageplaceholder(); + $div.append(img); if(typeof callback === 'function') { callback(); @@ -127,7 +126,6 @@ $div.imageplaceholder(user, displayname); } else { setAvatarForUnknownUser($div); - $div.removeClass('icon-loading'); } if(typeof callback === 'function') { @@ -136,7 +134,6 @@ }; $div.addClass('icon-loading'); - $div.show(); img.width = size; img.height = size; img.src = url; diff --git a/core/js/placeholder.js b/core/js/placeholder.js index 5cf7b9095ad..29f91b6698d 100644 --- a/core/js/placeholder.js +++ b/core/js/placeholder.js @@ -156,6 +156,7 @@ this.css('text-align', ''); this.css('line-height', ''); this.css('font-size', ''); + this.html(''); this.removeClass('icon-loading'); }; }(jQuery)); diff --git a/core/js/public/comments.js b/core/js/public/comments.js index 6de7ff7d38a..955e88c8609 100644 --- a/core/js/public/comments.js +++ b/core/js/public/comments.js @@ -43,7 +43,7 @@ } var linkText = url.replace(self.protocolRegex, ''); - return '<a class="external" href="' + url + '">' + linkText + '</a>'; + return '<a class="external" target="_blank" href="' + url + '">' + linkText + '</a>'; }); }, diff --git a/core/js/tests/specs/jquery.avatarSpec.js b/core/js/tests/specs/jquery.avatarSpec.js index bdd1fdcc163..4e13b7f26ff 100644 --- a/core/js/tests/specs/jquery.avatarSpec.js +++ b/core/js/tests/specs/jquery.avatarSpec.js @@ -202,8 +202,6 @@ describe('jquery.avatar tests', function() { expect(window.Image().height).toEqual(32); expect(window.Image().width).toEqual(32); expect(window.Image().src).toEqual('http://localhost/index.php/avatar/foo/32'); - - expect($div.css('display')).toEqual('block'); }); it('callback called', function() { diff --git a/lib/l10n/ko.js b/lib/l10n/ko.js index ae4bb8404e7..8593058bf68 100644 --- a/lib/l10n/ko.js +++ b/lib/l10n/ko.js @@ -227,9 +227,9 @@ OC.L10N.register( "Could not obtain lock type %d on \"%s\"." : "잠금 형식 %d을(를) \"%s\"에 대해 얻을 수 없습니다.", "Storage unauthorized. %s" : "저장소가 인증되지 않았습니다. %s", "Storage incomplete configuration. %s" : "저장소 설정이 완전하지 않습니다. %s", - "Storage connection error. %s" : "저장소 연결 오류. %s", + "Storage connection error. %s" : "저장소 연결 오류입니다. %s", "Storage is temporarily not available" : "저장소를 임시로 사용할 수 없음", - "Storage connection timeout. %s" : "저장소 연결 시간 초과. %s", + "Storage connection timeout. %s" : "저장소 연결 시간이 초과되었습니다. %s", "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "%sconfig 디렉터리에 웹 서버 쓰기 권한%s을 주면 해결됩니다.", "Module with id: %s does not exist. Please enable it in your apps settings or contact your administrator." : "ID: %s인 모듈이 존재하지 않습니다. 앱 설정에서 활성화하거나 관리자에게 연락하십시오.", "Server settings" : "서버 설정", diff --git a/lib/l10n/ko.json b/lib/l10n/ko.json index 22a4b05f37a..c8b3d0e8ee9 100644 --- a/lib/l10n/ko.json +++ b/lib/l10n/ko.json @@ -225,9 +225,9 @@ "Could not obtain lock type %d on \"%s\"." : "잠금 형식 %d을(를) \"%s\"에 대해 얻을 수 없습니다.", "Storage unauthorized. %s" : "저장소가 인증되지 않았습니다. %s", "Storage incomplete configuration. %s" : "저장소 설정이 완전하지 않습니다. %s", - "Storage connection error. %s" : "저장소 연결 오류. %s", + "Storage connection error. %s" : "저장소 연결 오류입니다. %s", "Storage is temporarily not available" : "저장소를 임시로 사용할 수 없음", - "Storage connection timeout. %s" : "저장소 연결 시간 초과. %s", + "Storage connection timeout. %s" : "저장소 연결 시간이 초과되었습니다. %s", "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "%sconfig 디렉터리에 웹 서버 쓰기 권한%s을 주면 해결됩니다.", "Module with id: %s does not exist. Please enable it in your apps settings or contact your administrator." : "ID: %s인 모듈이 존재하지 않습니다. 앱 설정에서 활성화하거나 관리자에게 연락하십시오.", "Server settings" : "서버 설정", diff --git a/lib/l10n/sv.js b/lib/l10n/sv.js index bda2c46d149..2e6c4defce8 100644 --- a/lib/l10n/sv.js +++ b/lib/l10n/sv.js @@ -30,9 +30,9 @@ OC.L10N.register( "Unknown filetype" : "Okänd filtyp", "Invalid image" : "Ogiltig bild", "Avatar image is not square" : "Profilbilden är inte fyrkantig", - "today" : "i dag", - "tomorrow" : "i morgon", - "yesterday" : "i går", + "today" : "idag", + "tomorrow" : "imorgon", + "yesterday" : "igår", "_in %n day_::_in %n days_" : ["om %n dag","om %n dagar"], "_%n day ago_::_%n days ago_" : ["%n dag sedan","%n dagar sedan"], "next month" : "nästa månad", @@ -66,7 +66,7 @@ OC.L10N.register( "Unknown user" : "Okänd användare", "APCu" : "APCu", "Redis" : "Redis", - "Basic settings" : "Vanliga inställningar", + "Basic settings" : "Generella inställningar", "Sharing" : "Delning", "Security" : "Säkerhet", "Encryption" : "Kryptering", diff --git a/lib/l10n/sv.json b/lib/l10n/sv.json index 17b2ad1f22b..ab2183b6d86 100644 --- a/lib/l10n/sv.json +++ b/lib/l10n/sv.json @@ -28,9 +28,9 @@ "Unknown filetype" : "Okänd filtyp", "Invalid image" : "Ogiltig bild", "Avatar image is not square" : "Profilbilden är inte fyrkantig", - "today" : "i dag", - "tomorrow" : "i morgon", - "yesterday" : "i går", + "today" : "idag", + "tomorrow" : "imorgon", + "yesterday" : "igår", "_in %n day_::_in %n days_" : ["om %n dag","om %n dagar"], "_%n day ago_::_%n days ago_" : ["%n dag sedan","%n dagar sedan"], "next month" : "nästa månad", @@ -64,7 +64,7 @@ "Unknown user" : "Okänd användare", "APCu" : "APCu", "Redis" : "Redis", - "Basic settings" : "Vanliga inställningar", + "Basic settings" : "Generella inställningar", "Sharing" : "Delning", "Security" : "Säkerhet", "Encryption" : "Kryptering", diff --git a/lib/private/Preview/Generator.php b/lib/private/Preview/Generator.php index 402732ecda9..448a7a57580 100644 --- a/lib/private/Preview/Generator.php +++ b/lib/private/Preview/Generator.php @@ -128,9 +128,13 @@ class Generator { // Try to get a cached preview. Else generate (and store) one try { - $file = $this->getCachedPreview($previewFolder, $width, $height, $crop); - } catch (NotFoundException $e) { - $file = $this->generatePreview($previewFolder, $maxPreview, $width, $height, $crop, $maxWidth, $maxHeight); + try { + $file = $this->getCachedPreview($previewFolder, $width, $height, $crop, $maxPreview->getMimeType()); + } catch (NotFoundException $e) { + $file = $this->generatePreview($previewFolder, $maxPreview, $width, $height, $crop, $maxWidth, $maxHeight); + } + } catch (\InvalidArgumentException $e) { + throw new NotFoundException(); } return $file; @@ -164,8 +168,8 @@ class Generator { continue; } - $maxWidth = (int)$this->config->getSystemValue('preview_max_x', 2048); - $maxHeight = (int)$this->config->getSystemValue('preview_max_y', 2048); + $maxWidth = (int)$this->config->getSystemValue('preview_max_x', 4096); + $maxHeight = (int)$this->config->getSystemValue('preview_max_y', 4096); $preview = $this->helper->getThumbnail($provider, $file, $maxWidth, $maxHeight); @@ -173,7 +177,15 @@ class Generator { continue; } - $path = (string)$preview->width() . '-' . (string)$preview->height() . '-max.png'; + // Try to get the extention. + try { + $ext = $this->getExtention($preview->dataMimeType()); + } catch (\InvalidArgumentException $e) { + // Just continue to the next iteration if this preview doesn't have a valid mimetype + continue; + } + + $path = (string)$preview->width() . '-' . (string)$preview->height() . '-max.' . $ext; try { $file = $previewFolder->newFile($path); $file->putContent($preview->data()); @@ -201,14 +213,17 @@ class Generator { * @param int $width * @param int $height * @param bool $crop + * @param string $mimeType * @return string */ - private function generatePath($width, $height, $crop) { + private function generatePath($width, $height, $crop, $mimeType) { $path = (string)$width . '-' . (string)$height; if ($crop) { $path .= '-crop'; } - $path .= '.png'; + + $ext = $this->getExtention($mimeType); + $path .= '.' . $ext; return $path; } @@ -340,7 +355,7 @@ class Generator { } - $path = $this->generatePath($width, $height, $crop); + $path = $this->generatePath($width, $height, $crop, $preview->dataMimeType()); try { $file = $previewFolder->newFile($path); $file->putContent($preview->data()); @@ -356,12 +371,13 @@ class Generator { * @param int $width * @param int $height * @param bool $crop + * @param string $mimeType * @return ISimpleFile * * @throws NotFoundException */ - private function getCachedPreview(ISimpleFolder $previewFolder, $width, $height, $crop) { - $path = $this->generatePath($width, $height, $crop); + private function getCachedPreview(ISimpleFolder $previewFolder, $width, $height, $crop, $mimeType) { + $path = $this->generatePath($width, $height, $crop, $mimeType); return $previewFolder->getFile($path); } @@ -381,4 +397,22 @@ class Generator { return $folder; } + + /** + * @param string $mimeType + * @return null|string + * @throws \InvalidArgumentException + */ + private function getExtention($mimeType) { + switch ($mimeType) { + case 'image/png': + return 'png'; + case 'image/jpeg': + return 'jpg'; + case 'image/gif': + return 'gif'; + default: + throw new \InvalidArgumentException('Not a valid mimetype'); + } + } } diff --git a/lib/private/TemplateLayout.php b/lib/private/TemplateLayout.php index a8c4bbb0d16..5e6d432c805 100644 --- a/lib/private/TemplateLayout.php +++ b/lib/private/TemplateLayout.php @@ -146,7 +146,7 @@ class TemplateLayout extends \OC_Template { if ($this->config->getSystemValue('installed', false) && $renderAs != 'error') { if (\OC::$server->getContentSecurityPolicyNonceManager()->browserSupportsCspV3()) { $jsConfigHelper = new JSConfigHelper( - \OC::$server->getL10N('core'), + \OC::$server->getL10N('lib'), \OC::$server->query(Defaults::class), \OC::$server->getAppManager(), \OC::$server->getSession(), diff --git a/lib/private/legacy/image.php b/lib/private/legacy/image.php index a7d702ac032..a0159b927f9 100644 --- a/lib/private/legacy/image.php +++ b/lib/private/legacy/image.php @@ -305,6 +305,25 @@ class OC_Image implements \OCP\IImage { } /** + * @return string Returns the mimetype of the data. Returns the empty string + * if the data is not valid. + */ + public function dataMimeType() { + if (!$this->valid()) { + return ''; + } + + switch ($this->mimeType) { + case 'image/png': + case 'image/jpeg': + case 'image/gif': + return $this->mimeType; + default: + return 'image/png'; + } + } + + /** * @return null|string Returns the raw image data. */ public function data() { diff --git a/lib/public/IImage.php b/lib/public/IImage.php index f63a1b8ca60..70e8b3cff75 100644 --- a/lib/public/IImage.php +++ b/lib/public/IImage.php @@ -103,6 +103,12 @@ interface IImage { public function resource(); /** + * @return string Returns the raw data mimetype + * @since 13.0.0 + */ + public function dataMimeType(); + + /** * @return string Returns the raw image data. * @since 8.1.0 */ diff --git a/settings/l10n/en_GB.js b/settings/l10n/en_GB.js index a245b80eb8e..58bc68070e3 100644 --- a/settings/l10n/en_GB.js +++ b/settings/l10n/en_GB.js @@ -104,9 +104,15 @@ OC.L10N.register( "Error: This app can not be enabled because it makes the server unstable" : "Error: This app can not be enabled because it makes the server unstable", "Error: Could not disable broken app" : "Error: Could not disable broken app", "Error while disabling broken app" : "Error whilst disabling broken app", + "App up to date" : "App up to date", + "Upgrading …" : "Upgrading …", + "Could not upgrade app" : "Could not upgrade app", "Updated" : "Updated", "Removing …" : "Removing …", + "Could not remove app" : "Could not remove app", "Remove" : "Remove", + "The app has been enabled but needs to be upgraded. You will be redirected to the upgrade page in 5 seconds." : "The app has been enabled but needs to be upgraded. You will be redirected to the upgrade page in 5 seconds.", + "App upgrade" : "App upgrade", "Approved" : "Approved", "Experimental" : "Experimental", "No apps found for {query}" : "No apps found for {query}", diff --git a/settings/l10n/en_GB.json b/settings/l10n/en_GB.json index 9d70d91483a..abe5fba5ed7 100644 --- a/settings/l10n/en_GB.json +++ b/settings/l10n/en_GB.json @@ -102,9 +102,15 @@ "Error: This app can not be enabled because it makes the server unstable" : "Error: This app can not be enabled because it makes the server unstable", "Error: Could not disable broken app" : "Error: Could not disable broken app", "Error while disabling broken app" : "Error whilst disabling broken app", + "App up to date" : "App up to date", + "Upgrading …" : "Upgrading …", + "Could not upgrade app" : "Could not upgrade app", "Updated" : "Updated", "Removing …" : "Removing …", + "Could not remove app" : "Could not remove app", "Remove" : "Remove", + "The app has been enabled but needs to be upgraded. You will be redirected to the upgrade page in 5 seconds." : "The app has been enabled but needs to be upgraded. You will be redirected to the upgrade page in 5 seconds.", + "App upgrade" : "App upgrade", "Approved" : "Approved", "Experimental" : "Experimental", "No apps found for {query}" : "No apps found for {query}", diff --git a/settings/l10n/es.js b/settings/l10n/es.js index bef3b13fcf5..041b63f6fc7 100644 --- a/settings/l10n/es.js +++ b/settings/l10n/es.js @@ -104,9 +104,15 @@ OC.L10N.register( "Error: This app can not be enabled because it makes the server unstable" : "Error: Esta app no se puede activar porque desestabiliza el servidor", "Error: Could not disable broken app" : "Error: No se ha podido desactivar una app estropeada", "Error while disabling broken app" : "Error mientras deshabilitaba la App dañada", + "App up to date" : "App actualizada", + "Upgrading …" : "Actualizando...", + "Could not upgrade app" : "No se ha podido actualizar la app", "Updated" : "Actualizado", "Removing …" : "Eliminando...", + "Could not remove app" : "No se ha podido eliminar la app", "Remove" : "Eliminar", + "The app has been enabled but needs to be upgraded. You will be redirected to the upgrade page in 5 seconds." : "La app ha sido activada pero tiene que actualizarse. Serás redirigido a la página de actualización en 5 segundos.", + "App upgrade" : "Actualización de la app", "Approved" : "Aprobado", "Experimental" : "Experimental", "No apps found for {query}" : "No se han encontrado apps para {query}", diff --git a/settings/l10n/es.json b/settings/l10n/es.json index be7a4ecad19..9c8007c4848 100644 --- a/settings/l10n/es.json +++ b/settings/l10n/es.json @@ -102,9 +102,15 @@ "Error: This app can not be enabled because it makes the server unstable" : "Error: Esta app no se puede activar porque desestabiliza el servidor", "Error: Could not disable broken app" : "Error: No se ha podido desactivar una app estropeada", "Error while disabling broken app" : "Error mientras deshabilitaba la App dañada", + "App up to date" : "App actualizada", + "Upgrading …" : "Actualizando...", + "Could not upgrade app" : "No se ha podido actualizar la app", "Updated" : "Actualizado", "Removing …" : "Eliminando...", + "Could not remove app" : "No se ha podido eliminar la app", "Remove" : "Eliminar", + "The app has been enabled but needs to be upgraded. You will be redirected to the upgrade page in 5 seconds." : "La app ha sido activada pero tiene que actualizarse. Serás redirigido a la página de actualización en 5 segundos.", + "App upgrade" : "Actualización de la app", "Approved" : "Aprobado", "Experimental" : "Experimental", "No apps found for {query}" : "No se han encontrado apps para {query}", diff --git a/settings/l10n/ka_GE.js b/settings/l10n/ka_GE.js index 16d388195de..d395e0d6a2f 100644 --- a/settings/l10n/ka_GE.js +++ b/settings/l10n/ka_GE.js @@ -104,9 +104,15 @@ OC.L10N.register( "Error: This app can not be enabled because it makes the server unstable" : "შეცდომა: ეს აპლიკაცია ვერ მოქმედდება რადგანაც სერვერს ხდის არასტაბილურს", "Error: Could not disable broken app" : "შეცდომა: გაფუჭებული აპლიკაციის დეაქტივაცია ვერ მოხერხდა", "Error while disabling broken app" : "გაფუჭებული აპლიკაციის დეაქტივაციისას წარმოიშვა შეცდომა", + "App up to date" : "აპლიკაცია ახალია", + "Upgrading …" : "ნახლდება …", + "Could not upgrade app" : "აპლიკაცია ვერ განახლდა", "Updated" : "განახლებულია", "Removing …" : "იშლება …", + "Could not remove app" : "აპლიკაცია ვერ გაუქმდა", "Remove" : "წაშლა", + "The app has been enabled but needs to be upgraded. You will be redirected to the upgrade page in 5 seconds." : "აპლიკაცია მოქმედია, თუმცა საჭიროებს განახლებას. განახლების გვერდზე გადამისამართდებით 5 წამში.", + "App upgrade" : "აპლიკაციის განახლება", "Approved" : "დამოწმებულია", "Experimental" : "ექსპერიმენტალურია", "No apps found for {query}" : "აპლიკაციები {query}-სთვის ვერ მოძებნა", diff --git a/settings/l10n/ka_GE.json b/settings/l10n/ka_GE.json index fdd581935bc..144fc0046d4 100644 --- a/settings/l10n/ka_GE.json +++ b/settings/l10n/ka_GE.json @@ -102,9 +102,15 @@ "Error: This app can not be enabled because it makes the server unstable" : "შეცდომა: ეს აპლიკაცია ვერ მოქმედდება რადგანაც სერვერს ხდის არასტაბილურს", "Error: Could not disable broken app" : "შეცდომა: გაფუჭებული აპლიკაციის დეაქტივაცია ვერ მოხერხდა", "Error while disabling broken app" : "გაფუჭებული აპლიკაციის დეაქტივაციისას წარმოიშვა შეცდომა", + "App up to date" : "აპლიკაცია ახალია", + "Upgrading …" : "ნახლდება …", + "Could not upgrade app" : "აპლიკაცია ვერ განახლდა", "Updated" : "განახლებულია", "Removing …" : "იშლება …", + "Could not remove app" : "აპლიკაცია ვერ გაუქმდა", "Remove" : "წაშლა", + "The app has been enabled but needs to be upgraded. You will be redirected to the upgrade page in 5 seconds." : "აპლიკაცია მოქმედია, თუმცა საჭიროებს განახლებას. განახლების გვერდზე გადამისამართდებით 5 წამში.", + "App upgrade" : "აპლიკაციის განახლება", "Approved" : "დამოწმებულია", "Experimental" : "ექსპერიმენტალურია", "No apps found for {query}" : "აპლიკაციები {query}-სთვის ვერ მოძებნა", diff --git a/settings/l10n/ko.js b/settings/l10n/ko.js index a03387d6acb..620ad0900c0 100644 --- a/settings/l10n/ko.js +++ b/settings/l10n/ko.js @@ -228,7 +228,7 @@ OC.L10N.register( "Authentication required" : "인증 필요함", "Server address" : "서버 주소", "Port" : "포트", - "Credentials" : "자격 정보", + "Credentials" : "인증 정보", "SMTP Username" : "SMTP 사용자 이름", "SMTP Password" : "SMTP 암호", "Store credentials" : "인증 정보 저장", @@ -424,7 +424,7 @@ OC.L10N.register( "Last cron job execution: %s." : "마지막 cron 작업 실행: %s.", "Last cron job execution: %s. Something seems wrong." : "마지막 cron 작업 실행: %s. 문제가 발생한 것 같습니다.", "Cron was not executed yet!" : "Cron이 실행되지 않았습니다!", - "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php는 webcron 서비스에 등록되어 HTTP로 15분마다 cron.php에 접근합니다.", + "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "15분마다 HTTP를 통해 cron.php를 실행하는 webcron 서비스에 cron.php가 등록되었습니다.", "Use system's cron service to call the cron.php file every 15 minutes." : "시스템의 cron 서비스를 통하여 15분마다 cron.php 파일을 실행합니다.", "To run this you need the PHP posix extension. See {linkstart}PHP documentation{linkend} for more details." : "실행하려면 PHP POSIX 확장이 필요합니다. 자세한 내용은 {linkstart}PHP 사용 설명서{linkend}를 참고하십시오.", "Allow username autocompletion in share dialog. If this is disabled the full username needs to be entered." : "공유 대화 상자에서 사용자 이름 자동 완성을 사용합니다. 이 설정을 사용하지 않으면 전체 사용자 이름을 입력해야 합니다.", diff --git a/settings/l10n/ko.json b/settings/l10n/ko.json index d2fd97c6ab7..e1b56c2ee16 100644 --- a/settings/l10n/ko.json +++ b/settings/l10n/ko.json @@ -226,7 +226,7 @@ "Authentication required" : "인증 필요함", "Server address" : "서버 주소", "Port" : "포트", - "Credentials" : "자격 정보", + "Credentials" : "인증 정보", "SMTP Username" : "SMTP 사용자 이름", "SMTP Password" : "SMTP 암호", "Store credentials" : "인증 정보 저장", @@ -422,7 +422,7 @@ "Last cron job execution: %s." : "마지막 cron 작업 실행: %s.", "Last cron job execution: %s. Something seems wrong." : "마지막 cron 작업 실행: %s. 문제가 발생한 것 같습니다.", "Cron was not executed yet!" : "Cron이 실행되지 않았습니다!", - "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php는 webcron 서비스에 등록되어 HTTP로 15분마다 cron.php에 접근합니다.", + "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "15분마다 HTTP를 통해 cron.php를 실행하는 webcron 서비스에 cron.php가 등록되었습니다.", "Use system's cron service to call the cron.php file every 15 minutes." : "시스템의 cron 서비스를 통하여 15분마다 cron.php 파일을 실행합니다.", "To run this you need the PHP posix extension. See {linkstart}PHP documentation{linkend} for more details." : "실행하려면 PHP POSIX 확장이 필요합니다. 자세한 내용은 {linkstart}PHP 사용 설명서{linkend}를 참고하십시오.", "Allow username autocompletion in share dialog. If this is disabled the full username needs to be entered." : "공유 대화 상자에서 사용자 이름 자동 완성을 사용합니다. 이 설정을 사용하지 않으면 전체 사용자 이름을 입력해야 합니다.", diff --git a/settings/l10n/nb.js b/settings/l10n/nb.js index 793ee8ff43b..e889a966092 100644 --- a/settings/l10n/nb.js +++ b/settings/l10n/nb.js @@ -104,6 +104,9 @@ OC.L10N.register( "Error: This app can not be enabled because it makes the server unstable" : "Feil: Dette programmet kan ikke aktiveres fordi det gjør tjeneren ustabil", "Error: Could not disable broken app" : "Feil: Kunne ikke deaktivere ustabilt program", "Error while disabling broken app" : "Feil ved deaktivering av ustabilt program", + "App up to date" : "Appen er oppdatert", + "Upgrading …" : "Oppgraderer…", + "Could not upgrade app" : "Kunne ikke oppgradere appen", "Updated" : "Oppdatert", "Removing …" : "Fjerner…", "Remove" : "Fjern", diff --git a/settings/l10n/nb.json b/settings/l10n/nb.json index c7f926f4acb..b95a39680b8 100644 --- a/settings/l10n/nb.json +++ b/settings/l10n/nb.json @@ -102,6 +102,9 @@ "Error: This app can not be enabled because it makes the server unstable" : "Feil: Dette programmet kan ikke aktiveres fordi det gjør tjeneren ustabil", "Error: Could not disable broken app" : "Feil: Kunne ikke deaktivere ustabilt program", "Error while disabling broken app" : "Feil ved deaktivering av ustabilt program", + "App up to date" : "Appen er oppdatert", + "Upgrading …" : "Oppgraderer…", + "Could not upgrade app" : "Kunne ikke oppgradere appen", "Updated" : "Oppdatert", "Removing …" : "Fjerner…", "Remove" : "Fjern", diff --git a/settings/l10n/nl.js b/settings/l10n/nl.js index b16fb0c4576..6abb70048b0 100644 --- a/settings/l10n/nl.js +++ b/settings/l10n/nl.js @@ -104,9 +104,15 @@ OC.L10N.register( "Error: This app can not be enabled because it makes the server unstable" : "Fout: Deze app kan niet ingeschakeld worden, omdat die de server onstabiel maakt", "Error: Could not disable broken app" : "Fout: Kan de beschadigde app niet uitschakelen", "Error while disabling broken app" : "Fout bij het uitschakelen van de beschadigde app", + "App up to date" : "App actueel", + "Upgrading …" : "Upgraden …", + "Could not upgrade app" : "Kon de app niet upgraden", "Updated" : "Bijgewerkt", "Removing …" : "Verwijderen ...", + "Could not remove app" : "Kon de app niet verwijderen", "Remove" : "Verwijderen", + "The app has been enabled but needs to be upgraded. You will be redirected to the upgrade page in 5 seconds." : "De app is ingeschakeld maar moet worden ge-upgraded. Je wordt over 5 seconden doorgeleid naar de upgradepagina.", + "App upgrade" : "App upgrade", "Approved" : "Goedgekeurd", "Experimental" : "Experimenteel", "No apps found for {query}" : "Geen apps gevonden voor {query}", diff --git a/settings/l10n/nl.json b/settings/l10n/nl.json index dbe67b7bf6c..f25fbe9dd1c 100644 --- a/settings/l10n/nl.json +++ b/settings/l10n/nl.json @@ -102,9 +102,15 @@ "Error: This app can not be enabled because it makes the server unstable" : "Fout: Deze app kan niet ingeschakeld worden, omdat die de server onstabiel maakt", "Error: Could not disable broken app" : "Fout: Kan de beschadigde app niet uitschakelen", "Error while disabling broken app" : "Fout bij het uitschakelen van de beschadigde app", + "App up to date" : "App actueel", + "Upgrading …" : "Upgraden …", + "Could not upgrade app" : "Kon de app niet upgraden", "Updated" : "Bijgewerkt", "Removing …" : "Verwijderen ...", + "Could not remove app" : "Kon de app niet verwijderen", "Remove" : "Verwijderen", + "The app has been enabled but needs to be upgraded. You will be redirected to the upgrade page in 5 seconds." : "De app is ingeschakeld maar moet worden ge-upgraded. Je wordt over 5 seconden doorgeleid naar de upgradepagina.", + "App upgrade" : "App upgrade", "Approved" : "Goedgekeurd", "Experimental" : "Experimenteel", "No apps found for {query}" : "Geen apps gevonden voor {query}", diff --git a/settings/l10n/ro.js b/settings/l10n/ro.js index e5172eeabc3..874c43c5594 100644 --- a/settings/l10n/ro.js +++ b/settings/l10n/ro.js @@ -1,6 +1,14 @@ OC.L10N.register( "settings", { + "You changed your password" : "Ți-ai schimbat parola", + "You changed your email address" : "Ți-ai schimbat adresa de email", + "Your email address was changed by an administrator" : "Adresa ta de email a fost modificată de un administrator", + "Security" : "Securitate", + "Your apps" : "Aplicațiile tale", + "Updates" : "Actualizări", + "Enabled apps" : "Aplicații active", + "Disabled apps" : "Aplicații inactive", "Wrong password" : "Parolă greșită", "Saved" : "Salvat", "No user supplied" : "Nu a fost furnizat niciun utilizator", @@ -12,24 +20,38 @@ OC.L10N.register( "Group already exists." : "Grupul există deja.", "Unable to add group." : "Nu se poate adăuga grupul.", "Unable to delete group." : "Nu se poate șterge grupul.", + "Invalid SMTP password." : "Parolă SMTP invalidă.", + "Email setting test" : "Test setări email", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : " A apărut o problemă la trimiterea emailului. Verifică-ți setărie. (Eroare: %s)", "You need to set your user email before being able to send test emails." : "Trebuie să îți setezi emailul de utilizator înainte de a putea să trimiți emailuri.", "Invalid mail address" : "Adresa mail invalidă", + "No valid group selected" : "Niciun grup valid selectat", "A user with that name already exists." : "Există deja un utilizator cu acest nume.", "Unable to create user." : "Imposibil de creat utilizatorul.", "Unable to delete user." : "Imposibil de șters utilizatorul.", + "Error while enabling user." : "Eroare în timpul activării utilizatorului.", + "Error while disabling user." : "Eroare în timpul dezactivării utilizatorului.", "Unable to change full name" : "Nu s-a putut schimba numele complet", "Your full name has been changed." : "Numele tău complet a fost schimbat.", "Forbidden" : "Interzis", "Invalid user" : "Utilizator invalid", "Unable to change mail address" : "Nu s-a putut schimba adresa email", "Email saved" : "E-mail salvat", + "Email address changed for %s" : "Adresa de email schimbată în %s", + "The new email address is %s" : "Adresa de email nouă este%s", "Your %s account was created" : "Contul tău %s a fost creat", + "Your username is: %s" : "Utilizatorul tău este: %s", + "Set your password" : "Setează parola", + "Install Client" : "Instalează client", + "Password confirmation is required" : "Confirmarea parolei este necesară", "Couldn't remove app." : "Nu s-a putut înlătura aplicația.", "Couldn't update app." : "Aplicaţia nu s-a putut actualiza.", + "Are you really sure you want add {domain} as trusted domain?" : "Ești sigur că vrei sa adaugi {domain} ca domeniu de încredere?", "Add trusted domain" : "Adaugă domeniu de încredere", "Migration in progress. Please wait until the migration is finished" : "Migrare în progres. Așteaptă până când migrarea este finalizată", "Migration started …" : "Migrarea a început...", + "Not saved" : "Nu a fost salvat", + "Sending…" : "Se trimite...", "Email sent" : "Mesajul a fost expediat", "Official" : "Oficial", "All" : "Toate ", @@ -43,8 +65,25 @@ OC.L10N.register( "Approved" : "Aprobat", "Experimental" : "Experimental", "Disconnect" : "Deconectare", + "Edge" : "Edge", + "Firefox" : "Firefox", + "Google Chrome" : "Google Chrome", + "Safari" : "Safari", + "Google Chrome for Android" : "Google Chrome for Android", + "iPhone iOS" : "iPhone iOS", + "iPad iOS" : "iPad iOS", + "iOS Client" : "iOS Client", + "Android Client" : "Android Client", + "Copy" : "Copiază", + "Copied!" : "S-a copiat!", + "Not supported!" : "Nu este suportat!", + "Press ⌘-C to copy." : "Apasă ⌘-C pentru copiere.", + "Press Ctrl-C to copy." : "Apasă Ctrl-C pentru copiere.", "Valid until {date}" : "Valabil până la {date}", "Delete" : "Șterge", + "Contacts" : "Contacte", + "Verify" : "Verifică", + "Verifying …" : "Se verifică ...", "Select a profile picture" : "Selectează o imagine de profil", "Very weak password" : "Parolă foarte slabă", "Weak password" : "Parolă slabă", @@ -57,8 +96,13 @@ OC.L10N.register( "A valid group name must be provided" : "Trebuie furnizat un nume de grup valid", "deleted {groupName}" : "{groupName} s-a șters", "undo" : "Anulează ultima acțiune", + "{size} used" : "{size} folosită", "never" : "niciodată", "deleted {userName}" : "{userName} șters", + "Add group" : "Adaugă grup", + "Invalid quota value \"{val}\"" : "Valoare cotă invalidă \"{val}\"", + "no group" : "niciun grup", + "Password successfully changed" : "Parola a fost modificată cu succes.", "Changing the password will result in data loss, because data recovery is not available for this user" : "Schimbarea parolei va rezulta în pierderea datelor deoarece recuperarea acestora nu este disponibilă pentru acest utilizator", "A valid username must be provided" : "Trebuie să furnizaţi un nume de utilizator valid", "Error creating user: {message}" : "Eroare la crearea utilizatorului: {message}", @@ -87,7 +131,10 @@ OC.L10N.register( "Commercial support" : "Suport comercial", "None" : "Niciuna", "Login" : "Autentificare", + "Plain" : "Plain", "NT LAN Manager" : "NT LAN Manager", + "SSL/TLS" : "SSL/TLS", + "STARTTLS" : "STARTTLS", "Email server" : "Server de email", "Open documentation" : "Deschide documentația", "Send mode" : "Modul de expediere", @@ -132,24 +179,38 @@ OC.L10N.register( "Advanced monitoring" : "Monitorizare avansată", "Profile picture" : "Imagine de profil", "Upload new" : "Încarcă una nouă", + "Select from Files" : "Selectează din fișiere", "Remove image" : "Înlătură imagine", "png or jpg, max. 20 MB" : "png sau jpg, max. 20 MB", "Cancel" : "Anulare", + "Choose as profile picture" : "Alege ca imagine de profil", "Full name" : "Nume complet", "Email" : "Email", "Your email address" : "Adresa ta de email", + "Phone number" : "Număr telefon", + "Your phone number" : "Numărul tău de telefon", + "Address" : "Adresă", + "Your postal address" : "Adresă poștală", + "Website" : "Site web", + "Link https://…" : "Link https://…", + "Twitter" : "Twitter", "Language" : "Limba", "Help translate" : "Ajută la traducere", "Password" : "Parolă", "Current password" : "Parola curentă", "New password" : "Noua parolă", "Change password" : "Schimbă parola", + "Device" : "Dispozitiv", + "App name" : "Numele aplicației", "Username" : "Nume utilizator", + "Settings" : "Setări", "E-Mail" : "Email", "Create" : "Crează", "Admin Recovery Password" : "Parolă de recuperare a Administratorului", "Enter the recovery password in order to recover the users files during password change" : "Introdu parola de recuperare pentru a recupera fișierele utilizatorilor în timpul schimbării parolei", + "Everyone" : "Toți", "Admins" : "Administratori", + "Disabled" : "Dezactivați", "Unlimited" : "Nelimitată", "Other" : "Altele", "Quota" : "Cotă", @@ -180,11 +241,15 @@ OC.L10N.register( "Sync clients" : "Sincronizează clienții", "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "Modulul PHP \"Fileinfo\" lipsește. Va recomandam sa activaţi acest modul pentru a obține cele mai bune rezultate cu detectarea mime-type.", "Cron" : "Cron", + "Cron was not executed yet!" : "Cron nu a fost executat înca!", + "Uninstall app" : "Dezinstalează aplicația", "Cheers!" : "Noroc!", "Get the apps to sync your files" : "Ia acum aplicatia pentru sincronizarea fisierelor ", "Desktop client" : "Client Desktop", "Android app" : "Aplicatie Android", "iOS app" : "Aplicație iOS", - "Name" : "Nume" + "Name" : "Nume", + "Group name" : "Numele grupului", + "Verifying" : "Se verifică" }, "nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));"); diff --git a/settings/l10n/ro.json b/settings/l10n/ro.json index 6ec743f02fb..44e45dbdc6d 100644 --- a/settings/l10n/ro.json +++ b/settings/l10n/ro.json @@ -1,4 +1,12 @@ { "translations": { + "You changed your password" : "Ți-ai schimbat parola", + "You changed your email address" : "Ți-ai schimbat adresa de email", + "Your email address was changed by an administrator" : "Adresa ta de email a fost modificată de un administrator", + "Security" : "Securitate", + "Your apps" : "Aplicațiile tale", + "Updates" : "Actualizări", + "Enabled apps" : "Aplicații active", + "Disabled apps" : "Aplicații inactive", "Wrong password" : "Parolă greșită", "Saved" : "Salvat", "No user supplied" : "Nu a fost furnizat niciun utilizator", @@ -10,24 +18,38 @@ "Group already exists." : "Grupul există deja.", "Unable to add group." : "Nu se poate adăuga grupul.", "Unable to delete group." : "Nu se poate șterge grupul.", + "Invalid SMTP password." : "Parolă SMTP invalidă.", + "Email setting test" : "Test setări email", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : " A apărut o problemă la trimiterea emailului. Verifică-ți setărie. (Eroare: %s)", "You need to set your user email before being able to send test emails." : "Trebuie să îți setezi emailul de utilizator înainte de a putea să trimiți emailuri.", "Invalid mail address" : "Adresa mail invalidă", + "No valid group selected" : "Niciun grup valid selectat", "A user with that name already exists." : "Există deja un utilizator cu acest nume.", "Unable to create user." : "Imposibil de creat utilizatorul.", "Unable to delete user." : "Imposibil de șters utilizatorul.", + "Error while enabling user." : "Eroare în timpul activării utilizatorului.", + "Error while disabling user." : "Eroare în timpul dezactivării utilizatorului.", "Unable to change full name" : "Nu s-a putut schimba numele complet", "Your full name has been changed." : "Numele tău complet a fost schimbat.", "Forbidden" : "Interzis", "Invalid user" : "Utilizator invalid", "Unable to change mail address" : "Nu s-a putut schimba adresa email", "Email saved" : "E-mail salvat", + "Email address changed for %s" : "Adresa de email schimbată în %s", + "The new email address is %s" : "Adresa de email nouă este%s", "Your %s account was created" : "Contul tău %s a fost creat", + "Your username is: %s" : "Utilizatorul tău este: %s", + "Set your password" : "Setează parola", + "Install Client" : "Instalează client", + "Password confirmation is required" : "Confirmarea parolei este necesară", "Couldn't remove app." : "Nu s-a putut înlătura aplicația.", "Couldn't update app." : "Aplicaţia nu s-a putut actualiza.", + "Are you really sure you want add {domain} as trusted domain?" : "Ești sigur că vrei sa adaugi {domain} ca domeniu de încredere?", "Add trusted domain" : "Adaugă domeniu de încredere", "Migration in progress. Please wait until the migration is finished" : "Migrare în progres. Așteaptă până când migrarea este finalizată", "Migration started …" : "Migrarea a început...", + "Not saved" : "Nu a fost salvat", + "Sending…" : "Se trimite...", "Email sent" : "Mesajul a fost expediat", "Official" : "Oficial", "All" : "Toate ", @@ -41,8 +63,25 @@ "Approved" : "Aprobat", "Experimental" : "Experimental", "Disconnect" : "Deconectare", + "Edge" : "Edge", + "Firefox" : "Firefox", + "Google Chrome" : "Google Chrome", + "Safari" : "Safari", + "Google Chrome for Android" : "Google Chrome for Android", + "iPhone iOS" : "iPhone iOS", + "iPad iOS" : "iPad iOS", + "iOS Client" : "iOS Client", + "Android Client" : "Android Client", + "Copy" : "Copiază", + "Copied!" : "S-a copiat!", + "Not supported!" : "Nu este suportat!", + "Press ⌘-C to copy." : "Apasă ⌘-C pentru copiere.", + "Press Ctrl-C to copy." : "Apasă Ctrl-C pentru copiere.", "Valid until {date}" : "Valabil până la {date}", "Delete" : "Șterge", + "Contacts" : "Contacte", + "Verify" : "Verifică", + "Verifying …" : "Se verifică ...", "Select a profile picture" : "Selectează o imagine de profil", "Very weak password" : "Parolă foarte slabă", "Weak password" : "Parolă slabă", @@ -55,8 +94,13 @@ "A valid group name must be provided" : "Trebuie furnizat un nume de grup valid", "deleted {groupName}" : "{groupName} s-a șters", "undo" : "Anulează ultima acțiune", + "{size} used" : "{size} folosită", "never" : "niciodată", "deleted {userName}" : "{userName} șters", + "Add group" : "Adaugă grup", + "Invalid quota value \"{val}\"" : "Valoare cotă invalidă \"{val}\"", + "no group" : "niciun grup", + "Password successfully changed" : "Parola a fost modificată cu succes.", "Changing the password will result in data loss, because data recovery is not available for this user" : "Schimbarea parolei va rezulta în pierderea datelor deoarece recuperarea acestora nu este disponibilă pentru acest utilizator", "A valid username must be provided" : "Trebuie să furnizaţi un nume de utilizator valid", "Error creating user: {message}" : "Eroare la crearea utilizatorului: {message}", @@ -85,7 +129,10 @@ "Commercial support" : "Suport comercial", "None" : "Niciuna", "Login" : "Autentificare", + "Plain" : "Plain", "NT LAN Manager" : "NT LAN Manager", + "SSL/TLS" : "SSL/TLS", + "STARTTLS" : "STARTTLS", "Email server" : "Server de email", "Open documentation" : "Deschide documentația", "Send mode" : "Modul de expediere", @@ -130,24 +177,38 @@ "Advanced monitoring" : "Monitorizare avansată", "Profile picture" : "Imagine de profil", "Upload new" : "Încarcă una nouă", + "Select from Files" : "Selectează din fișiere", "Remove image" : "Înlătură imagine", "png or jpg, max. 20 MB" : "png sau jpg, max. 20 MB", "Cancel" : "Anulare", + "Choose as profile picture" : "Alege ca imagine de profil", "Full name" : "Nume complet", "Email" : "Email", "Your email address" : "Adresa ta de email", + "Phone number" : "Număr telefon", + "Your phone number" : "Numărul tău de telefon", + "Address" : "Adresă", + "Your postal address" : "Adresă poștală", + "Website" : "Site web", + "Link https://…" : "Link https://…", + "Twitter" : "Twitter", "Language" : "Limba", "Help translate" : "Ajută la traducere", "Password" : "Parolă", "Current password" : "Parola curentă", "New password" : "Noua parolă", "Change password" : "Schimbă parola", + "Device" : "Dispozitiv", + "App name" : "Numele aplicației", "Username" : "Nume utilizator", + "Settings" : "Setări", "E-Mail" : "Email", "Create" : "Crează", "Admin Recovery Password" : "Parolă de recuperare a Administratorului", "Enter the recovery password in order to recover the users files during password change" : "Introdu parola de recuperare pentru a recupera fișierele utilizatorilor în timpul schimbării parolei", + "Everyone" : "Toți", "Admins" : "Administratori", + "Disabled" : "Dezactivați", "Unlimited" : "Nelimitată", "Other" : "Altele", "Quota" : "Cotă", @@ -178,11 +239,15 @@ "Sync clients" : "Sincronizează clienții", "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "Modulul PHP \"Fileinfo\" lipsește. Va recomandam sa activaţi acest modul pentru a obține cele mai bune rezultate cu detectarea mime-type.", "Cron" : "Cron", + "Cron was not executed yet!" : "Cron nu a fost executat înca!", + "Uninstall app" : "Dezinstalează aplicația", "Cheers!" : "Noroc!", "Get the apps to sync your files" : "Ia acum aplicatia pentru sincronizarea fisierelor ", "Desktop client" : "Client Desktop", "Android app" : "Aplicatie Android", "iOS app" : "Aplicație iOS", - "Name" : "Nume" + "Name" : "Nume", + "Group name" : "Numele grupului", + "Verifying" : "Se verifică" },"pluralForm" :"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));" }
\ No newline at end of file diff --git a/settings/l10n/ru.js b/settings/l10n/ru.js index 8c11d9ea667..b5d98373e91 100644 --- a/settings/l10n/ru.js +++ b/settings/l10n/ru.js @@ -104,9 +104,15 @@ OC.L10N.register( "Error: This app can not be enabled because it makes the server unstable" : "Ошибка: это приложение не может быть включено, так как оно сделает сервер нестабильным", "Error: Could not disable broken app" : "Ошибка: невозможно отключить «сломанное» приложение", "Error while disabling broken app" : "Ошибка при отключении сломанного приложения", + "App up to date" : "Приложение не нуждается в обновлении", + "Upgrading …" : "Обновление...", + "Could not upgrade app" : "Не удалось обновить приложение", "Updated" : "Обновлено", "Removing …" : "Удаление…", + "Could not remove app" : "Не удалось удалить приложение.", "Remove" : "Удалить", + "The app has been enabled but needs to be upgraded. You will be redirected to the upgrade page in 5 seconds." : "Приложение было включено, но нуждается в обновлении. В течении 5 секунд будет выполнено перенаправление на страницу обновления.", + "App upgrade" : "Обновление приложения", "Approved" : "Подтвержденное", "Experimental" : "Экспериментальное", "No apps found for {query}" : "Приложения не найдены по {query}", diff --git a/settings/l10n/ru.json b/settings/l10n/ru.json index bcacfeef65d..387973ffc82 100644 --- a/settings/l10n/ru.json +++ b/settings/l10n/ru.json @@ -102,9 +102,15 @@ "Error: This app can not be enabled because it makes the server unstable" : "Ошибка: это приложение не может быть включено, так как оно сделает сервер нестабильным", "Error: Could not disable broken app" : "Ошибка: невозможно отключить «сломанное» приложение", "Error while disabling broken app" : "Ошибка при отключении сломанного приложения", + "App up to date" : "Приложение не нуждается в обновлении", + "Upgrading …" : "Обновление...", + "Could not upgrade app" : "Не удалось обновить приложение", "Updated" : "Обновлено", "Removing …" : "Удаление…", + "Could not remove app" : "Не удалось удалить приложение.", "Remove" : "Удалить", + "The app has been enabled but needs to be upgraded. You will be redirected to the upgrade page in 5 seconds." : "Приложение было включено, но нуждается в обновлении. В течении 5 секунд будет выполнено перенаправление на страницу обновления.", + "App upgrade" : "Обновление приложения", "Approved" : "Подтвержденное", "Experimental" : "Экспериментальное", "No apps found for {query}" : "Приложения не найдены по {query}", diff --git a/settings/l10n/sv.js b/settings/l10n/sv.js index 5f34ce0a9fb..33b3f2ea33d 100644 --- a/settings/l10n/sv.js +++ b/settings/l10n/sv.js @@ -327,7 +327,7 @@ OC.L10N.register( "Twitter handle @…" : "Twitter handle @…", "You are member of the following groups:" : "Du är medlem i följande grupper:", "Language" : "Språk", - "Help translate" : "Hjälp att översätta", + "Help translate" : "Hjälp oss att översätta", "Password" : "Lösenord", "Current password" : "Nuvarande lösenord", "New password" : "Nytt lösenord", diff --git a/settings/l10n/sv.json b/settings/l10n/sv.json index 27dea71ef5b..e8e77546259 100644 --- a/settings/l10n/sv.json +++ b/settings/l10n/sv.json @@ -325,7 +325,7 @@ "Twitter handle @…" : "Twitter handle @…", "You are member of the following groups:" : "Du är medlem i följande grupper:", "Language" : "Språk", - "Help translate" : "Hjälp att översätta", + "Help translate" : "Hjälp oss att översätta", "Password" : "Lösenord", "Current password" : "Nuvarande lösenord", "New password" : "Nytt lösenord", diff --git a/tests/lib/Preview/GeneratorTest.php b/tests/lib/Preview/GeneratorTest.php index f1383b0691b..130cccdf09e 100644 --- a/tests/lib/Preview/GeneratorTest.php +++ b/tests/lib/Preview/GeneratorTest.php @@ -93,6 +93,8 @@ class GeneratorTest extends \Test\TestCase { $maxPreview = $this->createMock(ISimpleFile::class); $maxPreview->method('getName') ->willReturn('1000-1000-max.png'); + $maxPreview->method('getMimeType') + ->willReturn('image/png'); $previewFolder->method('getDirectoryListing') ->willReturn([$maxPreview]); @@ -170,6 +172,7 @@ class GeneratorTest extends \Test\TestCase { $image->method('width')->willReturn(2048); $image->method('height')->willReturn(2048); $image->method('valid')->willReturn(true); + $image->method('dataMimeType')->willReturn('image/png'); $this->helper->method('getThumbnail') ->will($this->returnCallback(function ($provider, $file, $x, $y) use ($invalidProvider, $validProvider, $image) { @@ -185,6 +188,7 @@ class GeneratorTest extends \Test\TestCase { $maxPreview = $this->createMock(ISimpleFile::class); $maxPreview->method('getName')->willReturn('2048-2048-max.png'); + $maxPreview->method('getMimeType')->willReturn('image/png'); $previewFile = $this->createMock(ISimpleFile::class); @@ -219,6 +223,7 @@ class GeneratorTest extends \Test\TestCase { $image->method('data') ->willReturn('my resized data'); $image->method('valid')->willReturn(true); + $image->method('dataMimeType')->willReturn('image/png'); $previewFile->expects($this->once()) ->method('putContent') @@ -362,6 +367,8 @@ class GeneratorTest extends \Test\TestCase { $maxPreview = $this->createMock(ISimpleFile::class); $maxPreview->method('getName') ->willReturn($maxX . '-' . $maxY . '-max.png'); + $maxPreview->method('getMimeType') + ->willReturn('image/png'); $previewFolder->method('getDirectoryListing') ->willReturn([$maxPreview]); @@ -382,6 +389,7 @@ class GeneratorTest extends \Test\TestCase { $image->method('height')->willReturn($maxY); $image->method('width')->willReturn($maxX); $image->method('valid')->willReturn(true); + $image->method('dataMimeType')->willReturn('image/png'); $preview = $this->createMock(ISimpleFile::class); $previewFolder->method('newFile') |