summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--apps/files/js/mainfileinfodetailview.js9
-rw-r--r--apps/files/l10n/en_GB.js3
-rw-r--r--apps/files/l10n/en_GB.json3
-rw-r--r--apps/files/l10n/es.js3
-rw-r--r--apps/files/l10n/es.json3
-rw-r--r--apps/files/l10n/ka_GE.js3
-rw-r--r--apps/files/l10n/ka_GE.json3
-rw-r--r--apps/files/l10n/ko.js4
-rw-r--r--apps/files/l10n/ko.json4
-rw-r--r--apps/files/l10n/nb.js2
-rw-r--r--apps/files/l10n/nb.json2
-rw-r--r--apps/files/l10n/nl.js3
-rw-r--r--apps/files/l10n/nl.json3
-rw-r--r--apps/files/l10n/ro.js129
-rw-r--r--apps/files/l10n/ro.json129
-rw-r--r--apps/files/l10n/ru.js3
-rw-r--r--apps/files/l10n/ru.json3
-rw-r--r--apps/files/tests/js/mainfileinfodetailviewSpec.js29
-rw-r--r--apps/files_external/l10n/de.js1
-rw-r--r--apps/files_external/l10n/de.json1
-rw-r--r--apps/files_external/l10n/de_DE.js1
-rw-r--r--apps/files_external/l10n/de_DE.json1
-rw-r--r--apps/files_external/l10n/en_GB.js1
-rw-r--r--apps/files_external/l10n/en_GB.json1
-rw-r--r--apps/files_external/l10n/es.js1
-rw-r--r--apps/files_external/l10n/es.json1
-rw-r--r--apps/files_external/l10n/hu.js1
-rw-r--r--apps/files_external/l10n/hu.json1
-rw-r--r--apps/files_external/l10n/it.js1
-rw-r--r--apps/files_external/l10n/it.json1
-rw-r--r--apps/files_external/l10n/ka_GE.js1
-rw-r--r--apps/files_external/l10n/ka_GE.json1
-rw-r--r--apps/files_external/l10n/ko.js1
-rw-r--r--apps/files_external/l10n/ko.json1
-rw-r--r--apps/files_external/l10n/nl.js1
-rw-r--r--apps/files_external/l10n/nl.json1
-rw-r--r--apps/files_external/l10n/pt_BR.js1
-rw-r--r--apps/files_external/l10n/pt_BR.json1
-rw-r--r--apps/files_external/l10n/sr.js1
-rw-r--r--apps/files_external/l10n/sr.json1
-rw-r--r--apps/files_sharing/l10n/ko.js12
-rw-r--r--apps/files_sharing/l10n/ko.json12
-rw-r--r--apps/sharebymail/l10n/sv.js18
-rw-r--r--apps/sharebymail/l10n/sv.json18
-rw-r--r--apps/theming/lib/Controller/ThemingController.php2
-rw-r--r--config/config.sample.php17
-rw-r--r--core/Controller/OCJSController.php8
-rw-r--r--core/css/fixes.scss3
-rw-r--r--core/css/styles.scss2
-rw-r--r--core/css/tooltip.scss2
-rw-r--r--core/js/jquery.avatar.js5
-rw-r--r--core/js/placeholder.js1
-rw-r--r--core/js/public/comments.js2
-rw-r--r--core/js/tests/specs/jquery.avatarSpec.js2
-rw-r--r--lib/l10n/ko.js4
-rw-r--r--lib/l10n/ko.json4
-rw-r--r--lib/l10n/sv.js8
-rw-r--r--lib/l10n/sv.json8
-rw-r--r--lib/private/Preview/Generator.php56
-rw-r--r--lib/private/TemplateLayout.php2
-rw-r--r--lib/private/legacy/image.php19
-rw-r--r--lib/public/IImage.php6
-rw-r--r--settings/l10n/en_GB.js6
-rw-r--r--settings/l10n/en_GB.json6
-rw-r--r--settings/l10n/es.js6
-rw-r--r--settings/l10n/es.json6
-rw-r--r--settings/l10n/ka_GE.js6
-rw-r--r--settings/l10n/ka_GE.json6
-rw-r--r--settings/l10n/ko.js4
-rw-r--r--settings/l10n/ko.json4
-rw-r--r--settings/l10n/nb.js3
-rw-r--r--settings/l10n/nb.json3
-rw-r--r--settings/l10n/nl.js6
-rw-r--r--settings/l10n/nl.json6
-rw-r--r--settings/l10n/ro.js67
-rw-r--r--settings/l10n/ro.json67
-rw-r--r--settings/l10n/ru.js6
-rw-r--r--settings/l10n/ru.json6
-rw-r--r--settings/l10n/sv.js2
-rw-r--r--settings/l10n/sv.json2
-rw-r--r--tests/lib/Preview/GeneratorTest.php8
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')