aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--apps/dav/l10n/de.js4
-rw-r--r--apps/dav/l10n/de.json4
-rw-r--r--apps/dav/l10n/de_DE.js2
-rw-r--r--apps/dav/l10n/de_DE.json2
-rw-r--r--apps/dav/l10n/et_EE.js10
-rw-r--r--apps/dav/l10n/et_EE.json10
-rw-r--r--apps/files/l10n/ar.js2
-rw-r--r--apps/files/l10n/ar.json2
-rw-r--r--apps/files/l10n/ast.js2
-rw-r--r--apps/files/l10n/ast.json2
-rw-r--r--apps/files/l10n/bg.js2
-rw-r--r--apps/files/l10n/bg.json2
-rw-r--r--apps/files/l10n/ca.js2
-rw-r--r--apps/files/l10n/ca.json2
-rw-r--r--apps/files/l10n/cs.js3
-rw-r--r--apps/files/l10n/cs.json3
-rw-r--r--apps/files/l10n/da.js2
-rw-r--r--apps/files/l10n/da.json2
-rw-r--r--apps/files/l10n/de.js2
-rw-r--r--apps/files/l10n/de.json2
-rw-r--r--apps/files/l10n/de_DE.js2
-rw-r--r--apps/files/l10n/de_DE.json2
-rw-r--r--apps/files/l10n/el.js2
-rw-r--r--apps/files/l10n/el.json2
-rw-r--r--apps/files/l10n/en_GB.js2
-rw-r--r--apps/files/l10n/en_GB.json2
-rw-r--r--apps/files/l10n/es.js2
-rw-r--r--apps/files/l10n/es.json2
-rw-r--r--apps/files/l10n/es_EC.js2
-rw-r--r--apps/files/l10n/es_EC.json2
-rw-r--r--apps/files/l10n/es_MX.js2
-rw-r--r--apps/files/l10n/es_MX.json2
-rw-r--r--apps/files/l10n/et_EE.js2
-rw-r--r--apps/files/l10n/et_EE.json2
-rw-r--r--apps/files/l10n/eu.js2
-rw-r--r--apps/files/l10n/eu.json2
-rw-r--r--apps/files/l10n/fa.js2
-rw-r--r--apps/files/l10n/fa.json2
-rw-r--r--apps/files/l10n/fi.js2
-rw-r--r--apps/files/l10n/fi.json2
-rw-r--r--apps/files/l10n/fr.js2
-rw-r--r--apps/files/l10n/fr.json2
-rw-r--r--apps/files/l10n/ga.js2
-rw-r--r--apps/files/l10n/ga.json2
-rw-r--r--apps/files/l10n/gl.js2
-rw-r--r--apps/files/l10n/gl.json2
-rw-r--r--apps/files/l10n/hu.js2
-rw-r--r--apps/files/l10n/hu.json2
-rw-r--r--apps/files/l10n/id.js2
-rw-r--r--apps/files/l10n/id.json2
-rw-r--r--apps/files/l10n/is.js2
-rw-r--r--apps/files/l10n/is.json2
-rw-r--r--apps/files/l10n/it.js2
-rw-r--r--apps/files/l10n/it.json2
-rw-r--r--apps/files/l10n/ja.js2
-rw-r--r--apps/files/l10n/ja.json2
-rw-r--r--apps/files/l10n/ka.js2
-rw-r--r--apps/files/l10n/ka.json2
-rw-r--r--apps/files/l10n/ko.js2
-rw-r--r--apps/files/l10n/ko.json2
-rw-r--r--apps/files/l10n/lt_LT.js2
-rw-r--r--apps/files/l10n/lt_LT.json2
-rw-r--r--apps/files/l10n/mk.js2
-rw-r--r--apps/files/l10n/mk.json2
-rw-r--r--apps/files/l10n/nb.js2
-rw-r--r--apps/files/l10n/nb.json2
-rw-r--r--apps/files/l10n/nl.js2
-rw-r--r--apps/files/l10n/nl.json2
-rw-r--r--apps/files/l10n/pl.js10
-rw-r--r--apps/files/l10n/pl.json10
-rw-r--r--apps/files/l10n/pt_BR.js2
-rw-r--r--apps/files/l10n/pt_BR.json2
-rw-r--r--apps/files/l10n/pt_PT.js2
-rw-r--r--apps/files/l10n/pt_PT.json2
-rw-r--r--apps/files/l10n/ro.js2
-rw-r--r--apps/files/l10n/ro.json2
-rw-r--r--apps/files/l10n/ru.js2
-rw-r--r--apps/files/l10n/ru.json2
-rw-r--r--apps/files/l10n/sc.js2
-rw-r--r--apps/files/l10n/sc.json2
-rw-r--r--apps/files/l10n/sk.js2
-rw-r--r--apps/files/l10n/sk.json2
-rw-r--r--apps/files/l10n/sl.js2
-rw-r--r--apps/files/l10n/sl.json2
-rw-r--r--apps/files/l10n/sr.js10
-rw-r--r--apps/files/l10n/sr.json10
-rw-r--r--apps/files/l10n/sv.js2
-rw-r--r--apps/files/l10n/sv.json2
-rw-r--r--apps/files/l10n/th.js2
-rw-r--r--apps/files/l10n/th.json2
-rw-r--r--apps/files/l10n/tr.js2
-rw-r--r--apps/files/l10n/tr.json2
-rw-r--r--apps/files/l10n/ug.js2
-rw-r--r--apps/files/l10n/ug.json2
-rw-r--r--apps/files/l10n/uk.js2
-rw-r--r--apps/files/l10n/uk.json2
-rw-r--r--apps/files/l10n/vi.js2
-rw-r--r--apps/files/l10n/vi.json2
-rw-r--r--apps/files/l10n/zh_CN.js2
-rw-r--r--apps/files/l10n/zh_CN.json2
-rw-r--r--apps/files/l10n/zh_HK.js2
-rw-r--r--apps/files/l10n/zh_HK.json2
-rw-r--r--apps/files/l10n/zh_TW.js2
-rw-r--r--apps/files/l10n/zh_TW.json2
-rw-r--r--apps/files_external/tests/Auth/AuthMechanismTest.php18
-rw-r--r--apps/files_external/tests/Auth/Password/GlobalAuthTest.php (renamed from apps/files_external/tests/Auth/Password/GlobalAuth.php)24
-rw-r--r--apps/files_external/tests/Backend/BackendTest.php10
-rw-r--r--apps/files_external/tests/Backend/LegacyBackendTest.php17
-rw-r--r--apps/files_external/tests/Command/ApplicableTest.php11
-rw-r--r--apps/files_external/tests/Command/CommandTestCase.php (renamed from apps/files_external/tests/Command/CommandTest.php)17
-rw-r--r--apps/files_external/tests/Command/ListCommandTest.php22
-rw-r--r--apps/files_external/tests/Config/UserPlaceholderHandlerTest.php34
-rw-r--r--apps/files_external/tests/Controller/AjaxControllerTest.php32
-rw-r--r--apps/files_external/tests/Controller/GlobalStoragesControllerTest.php9
-rw-r--r--apps/files_external/tests/Controller/StoragesControllerTestCase.php (renamed from apps/files_external/tests/Controller/StoragesControllerTest.php)72
-rw-r--r--apps/files_external/tests/Controller/UserStoragesControllerTest.php18
-rw-r--r--apps/files_external/tests/DefinitionParameterTest.php4
-rw-r--r--apps/files_external/tests/FrontendDefinitionTraitTest.php10
-rw-r--r--apps/files_external/tests/LegacyDependencyCheckPolyfillTest.php8
-rw-r--r--apps/files_external/tests/Listener/StorePasswordListenerTest.php7
-rw-r--r--apps/files_external/tests/OwnCloudFunctionsTest.php6
-rw-r--r--apps/files_external/tests/PersonalMountTest.php11
-rw-r--r--apps/files_external/tests/Service/BackendServiceTest.php37
-rw-r--r--apps/files_external/tests/Service/DBConfigServiceTest.php18
-rw-r--r--apps/files_external/tests/Service/GlobalStoragesServiceTest.php30
-rw-r--r--apps/files_external/tests/Service/StoragesServiceTestCase.php (renamed from apps/files_external/tests/Service/StoragesServiceTest.php)83
-rw-r--r--apps/files_external/tests/Service/UserGlobalStoragesServiceTest.php24
-rw-r--r--apps/files_external/tests/Service/UserStoragesServiceTest.php15
-rw-r--r--apps/files_external/tests/Settings/AdminTest.php18
-rw-r--r--apps/files_external/tests/Settings/SectionTest.php16
-rw-r--r--apps/files_external/tests/Storage/Amazons3MultiPartTest.php2
-rw-r--r--apps/files_external/tests/Storage/Amazons3Test.php2
-rw-r--r--apps/files_external/tests/Storage/FtpTest.php2
-rw-r--r--apps/files_external/tests/Storage/OwncloudTest.php2
-rw-r--r--apps/files_external/tests/Storage/SFTP_KeyTest.php12
-rw-r--r--apps/files_external/tests/Storage/SftpTest.php4
-rw-r--r--apps/files_external/tests/Storage/SmbTest.php2
-rw-r--r--apps/files_external/tests/Storage/SwiftTest.php2
-rw-r--r--apps/files_external/tests/Storage/WebdavTest.php2
-rw-r--r--apps/files_external/tests/StorageConfigTest.php14
-rw-r--r--apps/files_sharing/l10n/cs.js1
-rw-r--r--apps/files_sharing/l10n/cs.json1
-rw-r--r--apps/files_sharing/l10n/de.js8
-rw-r--r--apps/files_sharing/l10n/de.json8
-rw-r--r--apps/files_sharing/l10n/de_DE.js14
-rw-r--r--apps/files_sharing/l10n/de_DE.json14
-rw-r--r--apps/files_sharing/l10n/sr.js2
-rw-r--r--apps/files_sharing/l10n/sr.json2
-rw-r--r--apps/files_versions/tests/BackgroundJob/ExpireVersionsTest.php17
-rw-r--r--apps/files_versions/tests/Command/CleanupTest.php53
-rw-r--r--apps/files_versions/tests/Command/ExpireTest.php2
-rw-r--r--apps/files_versions/tests/Controller/PreviewControllerTest.php30
-rw-r--r--apps/files_versions/tests/ExpirationTest.php24
-rw-r--r--apps/files_versions/tests/StorageTest.php4
-rw-r--r--apps/files_versions/tests/VersioningTest.php29
-rw-r--r--apps/files_versions/tests/Versions/VersionManagerTest.php7
-rw-r--r--apps/settings/l10n/de.js26
-rw-r--r--apps/settings/l10n/de.json26
-rw-r--r--apps/settings/l10n/de_DE.js44
-rw-r--r--apps/settings/l10n/de_DE.json44
-rw-r--r--apps/theming/lib/IconBuilder.php15
-rw-r--r--apps/theming/tests/IconBuilderTest.php10
-rw-r--r--apps/twofactor_backupcodes/l10n/de.js4
-rw-r--r--apps/twofactor_backupcodes/l10n/de.json4
-rw-r--r--apps/twofactor_backupcodes/l10n/de_DE.js4
-rw-r--r--apps/twofactor_backupcodes/l10n/de_DE.json4
-rw-r--r--apps/user_ldap/l10n/et_EE.js7
-rw-r--r--apps/user_ldap/l10n/et_EE.json7
-rw-r--r--core/l10n/cs.js3
-rw-r--r--core/l10n/cs.json3
-rw-r--r--core/l10n/de.js14
-rw-r--r--core/l10n/de.json14
-rw-r--r--core/l10n/de_DE.js10
-rw-r--r--core/l10n/de_DE.json10
-rw-r--r--core/l10n/sr.js117
-rw-r--r--core/l10n/sr.json117
-rw-r--r--lib/composer/composer/autoload_classmap.php1
-rw-r--r--lib/composer/composer/autoload_static.php1
-rw-r--r--lib/l10n/de.js2
-rw-r--r--lib/l10n/de.json2
-rw-r--r--lib/l10n/et_EE.js76
-rw-r--r--lib/l10n/et_EE.json76
-rw-r--r--lib/private/Files/Config/MountProviderCollection.php116
-rw-r--r--lib/private/Files/SetupManager.php9
-rw-r--r--lib/private/PreviewManager.php8
-rw-r--r--lib/private/Security/Bruteforce/Throttler.php26
-rw-r--r--lib/public/AppFramework/Http/Attribute/RequestHeader.php50
-rw-r--r--lib/public/Files/Config/Event/UserMountAddedEvent.php2
-rw-r--r--lib/public/Files/Config/Event/UserMountRemovedEvent.php2
-rw-r--r--lib/public/Files/Config/Event/UserMountUpdatedEvent.php2
190 files changed, 1164 insertions, 785 deletions
diff --git a/apps/dav/l10n/de.js b/apps/dav/l10n/de.js
index 66e17898188..fc0617415f1 100644
--- a/apps/dav/l10n/de.js
+++ b/apps/dav/l10n/de.js
@@ -299,10 +299,10 @@ OC.L10N.register(
"Calendar server" : "Kalender-Server",
"Send invitations to attendees" : "Einladungen an die Teilnehmer senden",
"Automatically generate a birthday calendar" : "Automatisch einen Kalender für Geburtstage erstellen",
- "Birthday calendars will be generated by a background job." : "Kalender für Geburtstage werden von einem Hintergrund-Auftrag erstellt",
+ "Birthday calendars will be generated by a background job." : "Kalender für Geburtstage werden von einer Hintergrundaufgabe erstellt",
"Hence they will not be available immediately after enabling but will show up after some time." : "Die Einträge werden nicht sofort angezeigt. Nach der Aktivierung wird es bis zur Anzeige ein wenig dauern.",
"Send notifications for events" : "Sende Benachrichtigungen für Termine",
- "Notifications are sent via background jobs, so these must occur often enough." : "Benachrichtigungen werden von Hintergrundjobs gesendet, so dass diese häufig genug ausgeführt werden.",
+ "Notifications are sent via background jobs, so these must occur often enough." : "Benachrichtigungen werden von Hintergrundaufgaben gesendet, so dass diese häufig genug ausgeführt werden.",
"Send reminder notifications to calendar sharees as well" : "Erinnerungsbenachrichtigungen auch an die freigegebenen Kalender senden",
"Reminders are always sent to organizers and attendees." : "Erinnerungen werden immer an Organisatoren und Teilnehmer gesendet.",
"Enable notifications for events via push" : "Benachrichtigungen für Termine per Push aktivieren",
diff --git a/apps/dav/l10n/de.json b/apps/dav/l10n/de.json
index 94354959e6f..5d92b22c199 100644
--- a/apps/dav/l10n/de.json
+++ b/apps/dav/l10n/de.json
@@ -297,10 +297,10 @@
"Calendar server" : "Kalender-Server",
"Send invitations to attendees" : "Einladungen an die Teilnehmer senden",
"Automatically generate a birthday calendar" : "Automatisch einen Kalender für Geburtstage erstellen",
- "Birthday calendars will be generated by a background job." : "Kalender für Geburtstage werden von einem Hintergrund-Auftrag erstellt",
+ "Birthday calendars will be generated by a background job." : "Kalender für Geburtstage werden von einer Hintergrundaufgabe erstellt",
"Hence they will not be available immediately after enabling but will show up after some time." : "Die Einträge werden nicht sofort angezeigt. Nach der Aktivierung wird es bis zur Anzeige ein wenig dauern.",
"Send notifications for events" : "Sende Benachrichtigungen für Termine",
- "Notifications are sent via background jobs, so these must occur often enough." : "Benachrichtigungen werden von Hintergrundjobs gesendet, so dass diese häufig genug ausgeführt werden.",
+ "Notifications are sent via background jobs, so these must occur often enough." : "Benachrichtigungen werden von Hintergrundaufgaben gesendet, so dass diese häufig genug ausgeführt werden.",
"Send reminder notifications to calendar sharees as well" : "Erinnerungsbenachrichtigungen auch an die freigegebenen Kalender senden",
"Reminders are always sent to organizers and attendees." : "Erinnerungen werden immer an Organisatoren und Teilnehmer gesendet.",
"Enable notifications for events via push" : "Benachrichtigungen für Termine per Push aktivieren",
diff --git a/apps/dav/l10n/de_DE.js b/apps/dav/l10n/de_DE.js
index 0a53ba564a7..41f9b53bfef 100644
--- a/apps/dav/l10n/de_DE.js
+++ b/apps/dav/l10n/de_DE.js
@@ -302,7 +302,7 @@ OC.L10N.register(
"Birthday calendars will be generated by a background job." : "Kalender für Geburtstage werden von einem Hintergrund-Auftrag erstellt",
"Hence they will not be available immediately after enabling but will show up after some time." : "Die Einträge werden nicht sofort angezeigt. Nach der Aktivierung wird es ein wenig dauern bis zur Anzeige.",
"Send notifications for events" : "Sende Benachrichtigungen für Termine",
- "Notifications are sent via background jobs, so these must occur often enough." : "Benachrichtigungen werden von Hintergrundjobs versendet, so dass diese häufig genug ausgeführt werden müssen.",
+ "Notifications are sent via background jobs, so these must occur often enough." : "Benachrichtigungen werden von Hintergrundaufgaben versendet, so dass diese häufig genug ausgeführt werden müssen.",
"Send reminder notifications to calendar sharees as well" : "Erinnerungsbenachrichtigungen auch an die Kalenderfreigaben senden",
"Reminders are always sent to organizers and attendees." : "Erinnerungen werden immer an Organisatoren und Teilnehmer gesendet.",
"Enable notifications for events via push" : "Benachrichtigungen für Termine per Push aktivieren",
diff --git a/apps/dav/l10n/de_DE.json b/apps/dav/l10n/de_DE.json
index 7bf998eec36..469cb129a32 100644
--- a/apps/dav/l10n/de_DE.json
+++ b/apps/dav/l10n/de_DE.json
@@ -300,7 +300,7 @@
"Birthday calendars will be generated by a background job." : "Kalender für Geburtstage werden von einem Hintergrund-Auftrag erstellt",
"Hence they will not be available immediately after enabling but will show up after some time." : "Die Einträge werden nicht sofort angezeigt. Nach der Aktivierung wird es ein wenig dauern bis zur Anzeige.",
"Send notifications for events" : "Sende Benachrichtigungen für Termine",
- "Notifications are sent via background jobs, so these must occur often enough." : "Benachrichtigungen werden von Hintergrundjobs versendet, so dass diese häufig genug ausgeführt werden müssen.",
+ "Notifications are sent via background jobs, so these must occur often enough." : "Benachrichtigungen werden von Hintergrundaufgaben versendet, so dass diese häufig genug ausgeführt werden müssen.",
"Send reminder notifications to calendar sharees as well" : "Erinnerungsbenachrichtigungen auch an die Kalenderfreigaben senden",
"Reminders are always sent to organizers and attendees." : "Erinnerungen werden immer an Organisatoren und Teilnehmer gesendet.",
"Enable notifications for events via push" : "Benachrichtigungen für Termine per Push aktivieren",
diff --git a/apps/dav/l10n/et_EE.js b/apps/dav/l10n/et_EE.js
index 2cf7703d686..17753ff854a 100644
--- a/apps/dav/l10n/et_EE.js
+++ b/apps/dav/l10n/et_EE.js
@@ -72,7 +72,15 @@ OC.L10N.register(
"Description: %s" : "Kirjeldus: %s",
"Where: %s" : "Kus: %s",
"%1$s via %2$s" : "%1$s %2$s kaudu",
- "Every Day between %1$s - %2$s until %3$s" : "Iga päev ajavahemikus %1$s-%2$s kuni %3$s",
+ "Could not generate when statement" : "Ei õnnstunud luua tingimuslikku „when“ lausendit",
+ "Every Day for the entire day" : "Iga päev kogu päeva jooksul",
+ "Every Day for the entire day until %1$s" : "Iga päev kogu päeva jooksul kuni %1$s",
+ "Every Day between %1$s - %2$s" : "Iga päev ajavahemikus %1$s - %2$s",
+ "Every Day between %1$s - %2$s until %3$s" : "Iga päev ajavahemikus %1$s - %2$s kuni %3$s",
+ "Every %1$d Days for the entire day" : "Iga %1$d. päev kogu päeva jooksul",
+ "Every %1$d Days for the entire day until %2$s" : "Iga %1$d. päev kogu päeva jooksul kuni %2$s",
+ "Every %1$d Days between %2$s - %3$s" : "Iga %1$d. päev kogu päeva jooksul ajavahemikus %2$s - %3$s",
+ "Every %1$d Days between %2$s - %3$s until %4$s" : "Iga %1$d. päev kogu päeva jooksul ajavahemikus %2$s - %3$s, kuni %4$s",
"Cancelled: %1$s" : "Tühistatud: %1$s",
"\"%1$s\" has been canceled" : "„%1$s“ on tühistatud",
"Re: %1$s" : "Re: %1$s",
diff --git a/apps/dav/l10n/et_EE.json b/apps/dav/l10n/et_EE.json
index e4615d45ca2..ddc6756da75 100644
--- a/apps/dav/l10n/et_EE.json
+++ b/apps/dav/l10n/et_EE.json
@@ -70,7 +70,15 @@
"Description: %s" : "Kirjeldus: %s",
"Where: %s" : "Kus: %s",
"%1$s via %2$s" : "%1$s %2$s kaudu",
- "Every Day between %1$s - %2$s until %3$s" : "Iga päev ajavahemikus %1$s-%2$s kuni %3$s",
+ "Could not generate when statement" : "Ei õnnstunud luua tingimuslikku „when“ lausendit",
+ "Every Day for the entire day" : "Iga päev kogu päeva jooksul",
+ "Every Day for the entire day until %1$s" : "Iga päev kogu päeva jooksul kuni %1$s",
+ "Every Day between %1$s - %2$s" : "Iga päev ajavahemikus %1$s - %2$s",
+ "Every Day between %1$s - %2$s until %3$s" : "Iga päev ajavahemikus %1$s - %2$s kuni %3$s",
+ "Every %1$d Days for the entire day" : "Iga %1$d. päev kogu päeva jooksul",
+ "Every %1$d Days for the entire day until %2$s" : "Iga %1$d. päev kogu päeva jooksul kuni %2$s",
+ "Every %1$d Days between %2$s - %3$s" : "Iga %1$d. päev kogu päeva jooksul ajavahemikus %2$s - %3$s",
+ "Every %1$d Days between %2$s - %3$s until %4$s" : "Iga %1$d. päev kogu päeva jooksul ajavahemikus %2$s - %3$s, kuni %4$s",
"Cancelled: %1$s" : "Tühistatud: %1$s",
"\"%1$s\" has been canceled" : "„%1$s“ on tühistatud",
"Re: %1$s" : "Re: %1$s",
diff --git a/apps/files/l10n/ar.js b/apps/files/l10n/ar.js
index 59a1b312fa6..56bf720f798 100644
--- a/apps/files/l10n/ar.js
+++ b/apps/files/l10n/ar.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"Favorite files" : "الملفات المُفضَّلة",
"No favorites" : "لا يوجد مفضلات ",
"More favorites" : "مزيد من المُفضَّلة",
- "Upload (max. %s)" : "الرفع ( حد اقصى. %s ) ",
"Accept" : "قبول",
"Reject" : "رفض",
"Incoming ownership transfer from {user}" : "تم تحويل ملكية الملف إليك من قبل {user}",
@@ -432,6 +431,7 @@ OC.L10N.register(
"Upload file" : "رفع ملف",
"Not favorited" : "ازالة من المفضلة",
"An error occurred while trying to update the tags" : "حدث خطأ اثناء محاولة تحديث الوسوم",
+ "Upload (max. %s)" : "الرفع ( حد اقصى. %s ) ",
"You don't have permission to upload or create files here." : "ليس لديك الصلاحية لرفع أو إنشاء ملفاتٍ هنا.",
"Storage informations" : "معلومات التخزين",
"Choose file" : "حدد ملف",
diff --git a/apps/files/l10n/ar.json b/apps/files/l10n/ar.json
index 36243f82425..2f13493ccb9 100644
--- a/apps/files/l10n/ar.json
+++ b/apps/files/l10n/ar.json
@@ -52,7 +52,6 @@
"Favorite files" : "الملفات المُفضَّلة",
"No favorites" : "لا يوجد مفضلات ",
"More favorites" : "مزيد من المُفضَّلة",
- "Upload (max. %s)" : "الرفع ( حد اقصى. %s ) ",
"Accept" : "قبول",
"Reject" : "رفض",
"Incoming ownership transfer from {user}" : "تم تحويل ملكية الملف إليك من قبل {user}",
@@ -430,6 +429,7 @@
"Upload file" : "رفع ملف",
"Not favorited" : "ازالة من المفضلة",
"An error occurred while trying to update the tags" : "حدث خطأ اثناء محاولة تحديث الوسوم",
+ "Upload (max. %s)" : "الرفع ( حد اقصى. %s ) ",
"You don't have permission to upload or create files here." : "ليس لديك الصلاحية لرفع أو إنشاء ملفاتٍ هنا.",
"Storage informations" : "معلومات التخزين",
"Choose file" : "حدد ملف",
diff --git a/apps/files/l10n/ast.js b/apps/files/l10n/ast.js
index c16944eac33..ff5e6a97c67 100644
--- a/apps/files/l10n/ast.js
+++ b/apps/files/l10n/ast.js
@@ -44,7 +44,6 @@ OC.L10N.register(
"A file or folder has been <strong>changed</strong>" : "Hai un ficheru o una carpeta que <strong>camudó</strong>",
"A favorite file or folder has been <strong>changed</strong>" : "Hai un ficheru o una carpeta de Favoritos que <strong>camudó</strong>",
"No favorites" : "Nengún favoritu",
- "Upload (max. %s)" : "Xubir (%s como máximu)",
"Accept" : "Aceptar",
"Reject" : "Refugar",
"Incoming ownership transfer from {user}" : "Recibióse una tresferencia de propiedá de: {user}",
@@ -330,6 +329,7 @@ OC.L10N.register(
"Upload file" : "Xubir un ficheru",
"Not favorited" : "Nun ta en Favoritos",
"An error occurred while trying to update the tags" : "Prodúxose un error al tentar d'anovar les etiquetes",
+ "Upload (max. %s)" : "Xubir (%s como máximu)",
"Storage informations" : "Información del almacenamientu",
"Choose file" : "Escoyer un ficheru",
"Go to the previous folder" : "Dir a la carpeta anterior",
diff --git a/apps/files/l10n/ast.json b/apps/files/l10n/ast.json
index 5a2aa7d692d..eaa7028350f 100644
--- a/apps/files/l10n/ast.json
+++ b/apps/files/l10n/ast.json
@@ -42,7 +42,6 @@
"A file or folder has been <strong>changed</strong>" : "Hai un ficheru o una carpeta que <strong>camudó</strong>",
"A favorite file or folder has been <strong>changed</strong>" : "Hai un ficheru o una carpeta de Favoritos que <strong>camudó</strong>",
"No favorites" : "Nengún favoritu",
- "Upload (max. %s)" : "Xubir (%s como máximu)",
"Accept" : "Aceptar",
"Reject" : "Refugar",
"Incoming ownership transfer from {user}" : "Recibióse una tresferencia de propiedá de: {user}",
@@ -328,6 +327,7 @@
"Upload file" : "Xubir un ficheru",
"Not favorited" : "Nun ta en Favoritos",
"An error occurred while trying to update the tags" : "Prodúxose un error al tentar d'anovar les etiquetes",
+ "Upload (max. %s)" : "Xubir (%s como máximu)",
"Storage informations" : "Información del almacenamientu",
"Choose file" : "Escoyer un ficheru",
"Go to the previous folder" : "Dir a la carpeta anterior",
diff --git a/apps/files/l10n/bg.js b/apps/files/l10n/bg.js
index 164f4523d76..d945971d3e6 100644
--- a/apps/files/l10n/bg.js
+++ b/apps/files/l10n/bg.js
@@ -43,7 +43,6 @@ OC.L10N.register(
"A file or folder has been <strong>changed</strong>" : "<strong>Промяна</strong> на файл / папка",
"A favorite file or folder has been <strong>changed</strong>" : "Предпочетен файл или папка е <strong>променен</strong>",
"No favorites" : "Няма любими",
- "Upload (max. %s)" : "Качи (макс. %s)",
"Accept" : "Приемане",
"Reject" : "Откажи",
"Incoming ownership transfer from {user}" : "Входящо прехвърляне на собственост от {user}",
@@ -247,6 +246,7 @@ OC.L10N.register(
"Upload file" : "Качи файл",
"Not favorited" : "Премахни от любими",
"An error occurred while trying to update the tags" : "Възникна грешка при опита за промяна на етикети",
+ "Upload (max. %s)" : "Качи (макс. %s)",
"Storage informations" : "Хранилище на информация",
"Go to the previous folder" : "Връщане към предишната папка",
"Open the files app settings" : "Отваряне на настройките на приложението за файлове",
diff --git a/apps/files/l10n/bg.json b/apps/files/l10n/bg.json
index d653ef6c367..3f0d09c5438 100644
--- a/apps/files/l10n/bg.json
+++ b/apps/files/l10n/bg.json
@@ -41,7 +41,6 @@
"A file or folder has been <strong>changed</strong>" : "<strong>Промяна</strong> на файл / папка",
"A favorite file or folder has been <strong>changed</strong>" : "Предпочетен файл или папка е <strong>променен</strong>",
"No favorites" : "Няма любими",
- "Upload (max. %s)" : "Качи (макс. %s)",
"Accept" : "Приемане",
"Reject" : "Откажи",
"Incoming ownership transfer from {user}" : "Входящо прехвърляне на собственост от {user}",
@@ -245,6 +244,7 @@
"Upload file" : "Качи файл",
"Not favorited" : "Премахни от любими",
"An error occurred while trying to update the tags" : "Възникна грешка при опита за промяна на етикети",
+ "Upload (max. %s)" : "Качи (макс. %s)",
"Storage informations" : "Хранилище на информация",
"Go to the previous folder" : "Връщане към предишната папка",
"Open the files app settings" : "Отваряне на настройките на приложението за файлове",
diff --git a/apps/files/l10n/ca.js b/apps/files/l10n/ca.js
index c68e0c6de8e..e915c9d443a 100644
--- a/apps/files/l10n/ca.js
+++ b/apps/files/l10n/ca.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"Favorite files" : "Fitxers preferits",
"No favorites" : "No hi ha preferits",
"More favorites" : "Més preferits",
- "Upload (max. %s)" : "Puja (màx. %s)",
"Accept" : "Accepta",
"Reject" : "Rebutja",
"Incoming ownership transfer from {user}" : "{user} us ha enviat una transferència de propietat",
@@ -432,6 +431,7 @@ OC.L10N.register(
"Upload file" : "Puja un fitxer",
"Not favorited" : "No s'inclou en els preferits",
"An error occurred while trying to update the tags" : "S'ha produït un error en intentar actualitzar les etiquetes",
+ "Upload (max. %s)" : "Puja (màx. %s)",
"You don't have permission to upload or create files here." : "No teniu permís per pujar o crear fitxers aquí.",
"Storage informations" : "Informació d'emmagatzematge",
"Choose file" : "Tria el fitxer",
diff --git a/apps/files/l10n/ca.json b/apps/files/l10n/ca.json
index 64c9ce4052f..f7c596bb7d4 100644
--- a/apps/files/l10n/ca.json
+++ b/apps/files/l10n/ca.json
@@ -52,7 +52,6 @@
"Favorite files" : "Fitxers preferits",
"No favorites" : "No hi ha preferits",
"More favorites" : "Més preferits",
- "Upload (max. %s)" : "Puja (màx. %s)",
"Accept" : "Accepta",
"Reject" : "Rebutja",
"Incoming ownership transfer from {user}" : "{user} us ha enviat una transferència de propietat",
@@ -430,6 +429,7 @@
"Upload file" : "Puja un fitxer",
"Not favorited" : "No s'inclou en els preferits",
"An error occurred while trying to update the tags" : "S'ha produït un error en intentar actualitzar les etiquetes",
+ "Upload (max. %s)" : "Puja (màx. %s)",
"You don't have permission to upload or create files here." : "No teniu permís per pujar o crear fitxers aquí.",
"Storage informations" : "Informació d'emmagatzematge",
"Choose file" : "Tria el fitxer",
diff --git a/apps/files/l10n/cs.js b/apps/files/l10n/cs.js
index b28537c6ae4..5e39cb05347 100644
--- a/apps/files/l10n/cs.js
+++ b/apps/files/l10n/cs.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"Favorite files" : "Oblíbené soubory",
"No favorites" : "Žádné oblíbené",
"More favorites" : "Další oblíbené",
- "Upload (max. %s)" : "Nahrát (max. %s)",
"Accept" : "Přijmout",
"Reject" : "Odmítnout",
"Incoming ownership transfer from {user}" : "Příchozí převedení vlastnictví od {user}",
@@ -192,6 +191,7 @@ OC.L10N.register(
"Sort favorites first" : "Seřadit od oblíbených",
"Sort folders before files" : "Při řazení zobrazovat složky a pak až soubory",
"Show hidden files" : "Zobrazit skryté soubory",
+ "Show file type column" : "Zobrazovat sloupec Typ souboru",
"Crop image previews" : "Oříznout náhledy obrázků",
"Enable the grid view" : "Zapnout zobrazení v mřížce",
"Enable folder tree" : "Zapnout strom složek",
@@ -441,6 +441,7 @@ OC.L10N.register(
"Upload file" : "Nahrát soubor",
"Not favorited" : "Nepřidáno do oblíbených",
"An error occurred while trying to update the tags" : "Při pokusu o úpravu štítků došlo k chybě",
+ "Upload (max. %s)" : "Nahrát (max. %s)",
"You don't have permission to upload or create files here." : "Nemáte oprávnění sem nahrávat nebo zde vytvářet soubory.",
"Storage informations" : "Informace o úložišti",
"Choose file" : "Vyberte soubor",
diff --git a/apps/files/l10n/cs.json b/apps/files/l10n/cs.json
index 4258b4b31f4..e488079a351 100644
--- a/apps/files/l10n/cs.json
+++ b/apps/files/l10n/cs.json
@@ -52,7 +52,6 @@
"Favorite files" : "Oblíbené soubory",
"No favorites" : "Žádné oblíbené",
"More favorites" : "Další oblíbené",
- "Upload (max. %s)" : "Nahrát (max. %s)",
"Accept" : "Přijmout",
"Reject" : "Odmítnout",
"Incoming ownership transfer from {user}" : "Příchozí převedení vlastnictví od {user}",
@@ -190,6 +189,7 @@
"Sort favorites first" : "Seřadit od oblíbených",
"Sort folders before files" : "Při řazení zobrazovat složky a pak až soubory",
"Show hidden files" : "Zobrazit skryté soubory",
+ "Show file type column" : "Zobrazovat sloupec Typ souboru",
"Crop image previews" : "Oříznout náhledy obrázků",
"Enable the grid view" : "Zapnout zobrazení v mřížce",
"Enable folder tree" : "Zapnout strom složek",
@@ -439,6 +439,7 @@
"Upload file" : "Nahrát soubor",
"Not favorited" : "Nepřidáno do oblíbených",
"An error occurred while trying to update the tags" : "Při pokusu o úpravu štítků došlo k chybě",
+ "Upload (max. %s)" : "Nahrát (max. %s)",
"You don't have permission to upload or create files here." : "Nemáte oprávnění sem nahrávat nebo zde vytvářet soubory.",
"Storage informations" : "Informace o úložišti",
"Choose file" : "Vyberte soubor",
diff --git a/apps/files/l10n/da.js b/apps/files/l10n/da.js
index 929d5ad55f2..cd35222c4fe 100644
--- a/apps/files/l10n/da.js
+++ b/apps/files/l10n/da.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"Favorite files" : "Favoriser filer",
"No favorites" : "Ingen foretrukne",
"More favorites" : "Flere favoritter",
- "Upload (max. %s)" : "Upload (max. %s)",
"Accept" : "Accepter",
"Reject" : "Afvis",
"Incoming ownership transfer from {user}" : "Indgående ejerskabsoverførsel fra {user}",
@@ -432,6 +431,7 @@ OC.L10N.register(
"Upload file" : "Upload fil",
"Not favorited" : "Ingen foretrukne",
"An error occurred while trying to update the tags" : "Der opstod en fejl under forsøg på at opdatere mærkerne",
+ "Upload (max. %s)" : "Upload (max. %s)",
"You don't have permission to upload or create files here." : "Du har ikke rettigheder til at uploade eller oprette filer her.",
"Storage informations" : "Lagerinformationer",
"Choose file" : "Vælg fil",
diff --git a/apps/files/l10n/da.json b/apps/files/l10n/da.json
index 0d031b957c0..d30d4964449 100644
--- a/apps/files/l10n/da.json
+++ b/apps/files/l10n/da.json
@@ -52,7 +52,6 @@
"Favorite files" : "Favoriser filer",
"No favorites" : "Ingen foretrukne",
"More favorites" : "Flere favoritter",
- "Upload (max. %s)" : "Upload (max. %s)",
"Accept" : "Accepter",
"Reject" : "Afvis",
"Incoming ownership transfer from {user}" : "Indgående ejerskabsoverførsel fra {user}",
@@ -430,6 +429,7 @@
"Upload file" : "Upload fil",
"Not favorited" : "Ingen foretrukne",
"An error occurred while trying to update the tags" : "Der opstod en fejl under forsøg på at opdatere mærkerne",
+ "Upload (max. %s)" : "Upload (max. %s)",
"You don't have permission to upload or create files here." : "Du har ikke rettigheder til at uploade eller oprette filer her.",
"Storage informations" : "Lagerinformationer",
"Choose file" : "Vælg fil",
diff --git a/apps/files/l10n/de.js b/apps/files/l10n/de.js
index 3237a8b49d0..2e418f8d5cc 100644
--- a/apps/files/l10n/de.js
+++ b/apps/files/l10n/de.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"Favorite files" : "Favorisierte Dateien",
"No favorites" : "Keine Favoriten",
"More favorites" : "Weitere Favoriten",
- "Upload (max. %s)" : "Hochladen (max. %s)",
"Accept" : "Akzeptieren",
"Reject" : "Ablehnen",
"Incoming ownership transfer from {user}" : "Eingehende Besitzübertragung von {user}",
@@ -442,6 +441,7 @@ OC.L10N.register(
"Upload file" : "Datei hochladen",
"Not favorited" : "Nicht favorisiert",
"An error occurred while trying to update the tags" : "Es ist ein Fehler beim Aktualisieren der Tags aufgetreten",
+ "Upload (max. %s)" : "Hochladen (max. %s)",
"You don't have permission to upload or create files here." : "Keine Berechtigung, hier Dateien hochzuladen oder zu erstellen.",
"Storage informations" : "Speicherinformationen",
"Choose file" : "Datei auswählen",
diff --git a/apps/files/l10n/de.json b/apps/files/l10n/de.json
index f5ebd06c5a8..1e03f1c4bcd 100644
--- a/apps/files/l10n/de.json
+++ b/apps/files/l10n/de.json
@@ -52,7 +52,6 @@
"Favorite files" : "Favorisierte Dateien",
"No favorites" : "Keine Favoriten",
"More favorites" : "Weitere Favoriten",
- "Upload (max. %s)" : "Hochladen (max. %s)",
"Accept" : "Akzeptieren",
"Reject" : "Ablehnen",
"Incoming ownership transfer from {user}" : "Eingehende Besitzübertragung von {user}",
@@ -440,6 +439,7 @@
"Upload file" : "Datei hochladen",
"Not favorited" : "Nicht favorisiert",
"An error occurred while trying to update the tags" : "Es ist ein Fehler beim Aktualisieren der Tags aufgetreten",
+ "Upload (max. %s)" : "Hochladen (max. %s)",
"You don't have permission to upload or create files here." : "Keine Berechtigung, hier Dateien hochzuladen oder zu erstellen.",
"Storage informations" : "Speicherinformationen",
"Choose file" : "Datei auswählen",
diff --git a/apps/files/l10n/de_DE.js b/apps/files/l10n/de_DE.js
index bcf374148b5..de81d82bace 100644
--- a/apps/files/l10n/de_DE.js
+++ b/apps/files/l10n/de_DE.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"Favorite files" : "Favorisierte Dateien",
"No favorites" : "Keine Favoriten",
"More favorites" : "Weitere Favoriten",
- "Upload (max. %s)" : "Hochladen (max. %s)",
"Accept" : "Akzeptieren",
"Reject" : "Ablehnen",
"Incoming ownership transfer from {user}" : "Eingehende Besitzübertragung von {user}",
@@ -442,6 +441,7 @@ OC.L10N.register(
"Upload file" : "Datei hochladen",
"Not favorited" : "Nicht favorisiert",
"An error occurred while trying to update the tags" : "Es ist ein Fehler beim Aktualisieren der Schlagworte aufgetreten",
+ "Upload (max. %s)" : "Hochladen (max. %s)",
"You don't have permission to upload or create files here." : "Keine Berechtigung, hier Dateien hochzuladen oder zu erstellen.",
"Storage informations" : "Speicherinformationen",
"Choose file" : "Datei auswählen",
diff --git a/apps/files/l10n/de_DE.json b/apps/files/l10n/de_DE.json
index fd0d1714920..0d9c3ccf5f8 100644
--- a/apps/files/l10n/de_DE.json
+++ b/apps/files/l10n/de_DE.json
@@ -52,7 +52,6 @@
"Favorite files" : "Favorisierte Dateien",
"No favorites" : "Keine Favoriten",
"More favorites" : "Weitere Favoriten",
- "Upload (max. %s)" : "Hochladen (max. %s)",
"Accept" : "Akzeptieren",
"Reject" : "Ablehnen",
"Incoming ownership transfer from {user}" : "Eingehende Besitzübertragung von {user}",
@@ -440,6 +439,7 @@
"Upload file" : "Datei hochladen",
"Not favorited" : "Nicht favorisiert",
"An error occurred while trying to update the tags" : "Es ist ein Fehler beim Aktualisieren der Schlagworte aufgetreten",
+ "Upload (max. %s)" : "Hochladen (max. %s)",
"You don't have permission to upload or create files here." : "Keine Berechtigung, hier Dateien hochzuladen oder zu erstellen.",
"Storage informations" : "Speicherinformationen",
"Choose file" : "Datei auswählen",
diff --git a/apps/files/l10n/el.js b/apps/files/l10n/el.js
index e7660c639ba..9c0a83ad309 100644
--- a/apps/files/l10n/el.js
+++ b/apps/files/l10n/el.js
@@ -43,7 +43,6 @@ OC.L10N.register(
"A file or folder has been <strong>changed</strong>" : "Ένα αρχείο ή κατάλογος έχουν <strong>αλλάξει</strong>",
"A favorite file or folder has been <strong>changed</strong>" : "Ένα αγαπημένο αρχείο ή φάκελός σας έχει <strong>τροποποιηθεί</strong>.",
"No favorites" : "Δεν υπάρχουν αγαπημένα",
- "Upload (max. %s)" : "Μεταφόρτωση (max. %s)",
"Accept" : "Αποδοχή",
"Reject" : "Απόρριψη",
"Incoming ownership transfer from {user}" : "Εισερχόμενη μεταβίβαση κυριότητας από τον {user}",
@@ -336,6 +335,7 @@ OC.L10N.register(
"Upload file" : "Μεταφόρτωση αρχείου",
"Not favorited" : "Δεν είναι αγαπημένο",
"An error occurred while trying to update the tags" : "Ένα σφάλμα προέκυψε κατά τη διάρκεια ενημέρωσης των ετικετών",
+ "Upload (max. %s)" : "Μεταφόρτωση (max. %s)",
"Storage informations" : "Πληροφορίες αποθήκευσης",
"Choose file" : "Επιλέξτε αρχείο",
"Go to the previous folder" : "Μετάβαση στον προηγούμενο φάκελο",
diff --git a/apps/files/l10n/el.json b/apps/files/l10n/el.json
index 08140644385..f23d54140e3 100644
--- a/apps/files/l10n/el.json
+++ b/apps/files/l10n/el.json
@@ -41,7 +41,6 @@
"A file or folder has been <strong>changed</strong>" : "Ένα αρχείο ή κατάλογος έχουν <strong>αλλάξει</strong>",
"A favorite file or folder has been <strong>changed</strong>" : "Ένα αγαπημένο αρχείο ή φάκελός σας έχει <strong>τροποποιηθεί</strong>.",
"No favorites" : "Δεν υπάρχουν αγαπημένα",
- "Upload (max. %s)" : "Μεταφόρτωση (max. %s)",
"Accept" : "Αποδοχή",
"Reject" : "Απόρριψη",
"Incoming ownership transfer from {user}" : "Εισερχόμενη μεταβίβαση κυριότητας από τον {user}",
@@ -334,6 +333,7 @@
"Upload file" : "Μεταφόρτωση αρχείου",
"Not favorited" : "Δεν είναι αγαπημένο",
"An error occurred while trying to update the tags" : "Ένα σφάλμα προέκυψε κατά τη διάρκεια ενημέρωσης των ετικετών",
+ "Upload (max. %s)" : "Μεταφόρτωση (max. %s)",
"Storage informations" : "Πληροφορίες αποθήκευσης",
"Choose file" : "Επιλέξτε αρχείο",
"Go to the previous folder" : "Μετάβαση στον προηγούμενο φάκελο",
diff --git a/apps/files/l10n/en_GB.js b/apps/files/l10n/en_GB.js
index 4949fbd61b3..031cec5f326 100644
--- a/apps/files/l10n/en_GB.js
+++ b/apps/files/l10n/en_GB.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"Favorite files" : "Favorite files",
"No favorites" : "No favourites",
"More favorites" : "More favorites",
- "Upload (max. %s)" : "Upload (max. %s)",
"Accept" : "Accept",
"Reject" : "Reject",
"Incoming ownership transfer from {user}" : "Incoming ownership transfer from {user}",
@@ -442,6 +441,7 @@ OC.L10N.register(
"Upload file" : "Upload file",
"Not favorited" : "Not favourited",
"An error occurred while trying to update the tags" : "An error occurred whilst trying to update the tags",
+ "Upload (max. %s)" : "Upload (max. %s)",
"You don't have permission to upload or create files here." : "You don't have permission to upload or create files here.",
"Storage informations" : "Storage informations",
"Choose file" : "Choose file",
diff --git a/apps/files/l10n/en_GB.json b/apps/files/l10n/en_GB.json
index eb30639fa72..ba21ba660fb 100644
--- a/apps/files/l10n/en_GB.json
+++ b/apps/files/l10n/en_GB.json
@@ -52,7 +52,6 @@
"Favorite files" : "Favorite files",
"No favorites" : "No favourites",
"More favorites" : "More favorites",
- "Upload (max. %s)" : "Upload (max. %s)",
"Accept" : "Accept",
"Reject" : "Reject",
"Incoming ownership transfer from {user}" : "Incoming ownership transfer from {user}",
@@ -440,6 +439,7 @@
"Upload file" : "Upload file",
"Not favorited" : "Not favourited",
"An error occurred while trying to update the tags" : "An error occurred whilst trying to update the tags",
+ "Upload (max. %s)" : "Upload (max. %s)",
"You don't have permission to upload or create files here." : "You don't have permission to upload or create files here.",
"Storage informations" : "Storage informations",
"Choose file" : "Choose file",
diff --git a/apps/files/l10n/es.js b/apps/files/l10n/es.js
index 6a81757f167..5b9727fb1f5 100644
--- a/apps/files/l10n/es.js
+++ b/apps/files/l10n/es.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"Favorite files" : "Archivos favoritos",
"No favorites" : "No hay favoritos",
"More favorites" : "Más favoritos",
- "Upload (max. %s)" : "Subida (máx. %s)",
"Accept" : "Aceptar",
"Reject" : "Rechazar",
"Incoming ownership transfer from {user}" : "Ha llegado una transferencia de propiedad de {user}",
@@ -434,6 +433,7 @@ OC.L10N.register(
"Upload file" : "Subir archivo",
"Not favorited" : "Quitado como favorito",
"An error occurred while trying to update the tags" : "Se produjo un error al tratar de actualizar las etiquetas",
+ "Upload (max. %s)" : "Subida (máx. %s)",
"You don't have permission to upload or create files here." : "No tiene permisos para subir o crear archivos aquí.",
"Storage informations" : "Informaciones de almacenamiento",
"Choose file" : "Elegir archivo",
diff --git a/apps/files/l10n/es.json b/apps/files/l10n/es.json
index 1fc8796f0c8..eb0fd4b6825 100644
--- a/apps/files/l10n/es.json
+++ b/apps/files/l10n/es.json
@@ -52,7 +52,6 @@
"Favorite files" : "Archivos favoritos",
"No favorites" : "No hay favoritos",
"More favorites" : "Más favoritos",
- "Upload (max. %s)" : "Subida (máx. %s)",
"Accept" : "Aceptar",
"Reject" : "Rechazar",
"Incoming ownership transfer from {user}" : "Ha llegado una transferencia de propiedad de {user}",
@@ -432,6 +431,7 @@
"Upload file" : "Subir archivo",
"Not favorited" : "Quitado como favorito",
"An error occurred while trying to update the tags" : "Se produjo un error al tratar de actualizar las etiquetas",
+ "Upload (max. %s)" : "Subida (máx. %s)",
"You don't have permission to upload or create files here." : "No tiene permisos para subir o crear archivos aquí.",
"Storage informations" : "Informaciones de almacenamiento",
"Choose file" : "Elegir archivo",
diff --git a/apps/files/l10n/es_EC.js b/apps/files/l10n/es_EC.js
index aeeba4b15d5..ab5ea72a34e 100644
--- a/apps/files/l10n/es_EC.js
+++ b/apps/files/l10n/es_EC.js
@@ -43,7 +43,6 @@ OC.L10N.register(
"A file or folder has been <strong>changed</strong>" : "Un archivo o carpeta ha sido <strong>modificado</strong>.",
"A favorite file or folder has been <strong>changed</strong>" : "Un archivo o carpeta favorito ha sido <strong>modificado</strong>.",
"No favorites" : "No hay favoritos",
- "Upload (max. %s)" : "Cargar (max. %s)",
"Accept" : "Aceptar",
"Reject" : "Rechazar",
"Incoming ownership transfer from {user}" : "Transferencia de propiedad entrante de {user}.",
@@ -251,6 +250,7 @@ OC.L10N.register(
"Upload file" : "Cargar archivo",
"Not favorited" : "No es un favorito",
"An error occurred while trying to update the tags" : "Se presentó un error al intentar actualizar la etiqueta",
+ "Upload (max. %s)" : "Cargar (max. %s)",
"Storage informations" : "Información de almacenamiento.",
"Go to the previous folder" : "Ir a la carpeta anterior.",
"Open the files app settings" : "Abrir la configuración de la aplicación de archivos.",
diff --git a/apps/files/l10n/es_EC.json b/apps/files/l10n/es_EC.json
index cab16362f3b..54c91b913f1 100644
--- a/apps/files/l10n/es_EC.json
+++ b/apps/files/l10n/es_EC.json
@@ -41,7 +41,6 @@
"A file or folder has been <strong>changed</strong>" : "Un archivo o carpeta ha sido <strong>modificado</strong>.",
"A favorite file or folder has been <strong>changed</strong>" : "Un archivo o carpeta favorito ha sido <strong>modificado</strong>.",
"No favorites" : "No hay favoritos",
- "Upload (max. %s)" : "Cargar (max. %s)",
"Accept" : "Aceptar",
"Reject" : "Rechazar",
"Incoming ownership transfer from {user}" : "Transferencia de propiedad entrante de {user}.",
@@ -249,6 +248,7 @@
"Upload file" : "Cargar archivo",
"Not favorited" : "No es un favorito",
"An error occurred while trying to update the tags" : "Se presentó un error al intentar actualizar la etiqueta",
+ "Upload (max. %s)" : "Cargar (max. %s)",
"Storage informations" : "Información de almacenamiento.",
"Go to the previous folder" : "Ir a la carpeta anterior.",
"Open the files app settings" : "Abrir la configuración de la aplicación de archivos.",
diff --git a/apps/files/l10n/es_MX.js b/apps/files/l10n/es_MX.js
index d57707ff578..12df1efeea6 100644
--- a/apps/files/l10n/es_MX.js
+++ b/apps/files/l10n/es_MX.js
@@ -47,7 +47,6 @@ OC.L10N.register(
"Invalid folder path" : "Ruta de carpeta inválida",
"Folder not found" : "No se encontró la carpeta",
"No favorites" : "No hay favoritos",
- "Upload (max. %s)" : "Cargar (max. %s)",
"Accept" : "Aceptar",
"Reject" : "Rechazar",
"Incoming ownership transfer from {user}" : "Solicitud de transferencia de propiedad entrante de {user}",
@@ -377,6 +376,7 @@ OC.L10N.register(
"Upload file" : "Cargar archivo",
"Not favorited" : "No es un favorito",
"An error occurred while trying to update the tags" : "Se presentó un error al intentar actualizar la etiqueta",
+ "Upload (max. %s)" : "Cargar (max. %s)",
"Storage informations" : "Informaciones de almacenamiento",
"Choose file" : "Elegir archivo",
"Go to the previous folder" : "Ir a la carpeta anterior",
diff --git a/apps/files/l10n/es_MX.json b/apps/files/l10n/es_MX.json
index 900561d5fb7..4b0cd70e5ce 100644
--- a/apps/files/l10n/es_MX.json
+++ b/apps/files/l10n/es_MX.json
@@ -45,7 +45,6 @@
"Invalid folder path" : "Ruta de carpeta inválida",
"Folder not found" : "No se encontró la carpeta",
"No favorites" : "No hay favoritos",
- "Upload (max. %s)" : "Cargar (max. %s)",
"Accept" : "Aceptar",
"Reject" : "Rechazar",
"Incoming ownership transfer from {user}" : "Solicitud de transferencia de propiedad entrante de {user}",
@@ -375,6 +374,7 @@
"Upload file" : "Cargar archivo",
"Not favorited" : "No es un favorito",
"An error occurred while trying to update the tags" : "Se presentó un error al intentar actualizar la etiqueta",
+ "Upload (max. %s)" : "Cargar (max. %s)",
"Storage informations" : "Informaciones de almacenamiento",
"Choose file" : "Elegir archivo",
"Go to the previous folder" : "Ir a la carpeta anterior",
diff --git a/apps/files/l10n/et_EE.js b/apps/files/l10n/et_EE.js
index 86f79a96ea9..11b74a29106 100644
--- a/apps/files/l10n/et_EE.js
+++ b/apps/files/l10n/et_EE.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"Favorite files" : "Lemmikfailid",
"No favorites" : "Lemmikuid pole",
"More favorites" : "Veel lemmikuid",
- "Upload (max. %s)" : "Üleslaadimine (max. %s)",
"Accept" : "Nõustu",
"Reject" : "Keeldu",
"Incoming ownership transfer from {user}" : "Saaduv omandi üleandmine kasutajalt {user}",
@@ -442,6 +441,7 @@ OC.L10N.register(
"Upload file" : "Laadi fail üles",
"Not favorited" : "Lemmikuks lisamata",
"An error occurred while trying to update the tags" : "Siltide uuendamisel tekkis tõrge",
+ "Upload (max. %s)" : "Üleslaadimine (max. %s)",
"You don't have permission to upload or create files here." : "Sul puuduvad õigused siia failide üleslaadimiseks või loomiseks.",
"Storage informations" : "Andmeruumi teave",
"Choose file" : "Vali fail",
diff --git a/apps/files/l10n/et_EE.json b/apps/files/l10n/et_EE.json
index 7c1baa0915c..73bca5cbc79 100644
--- a/apps/files/l10n/et_EE.json
+++ b/apps/files/l10n/et_EE.json
@@ -52,7 +52,6 @@
"Favorite files" : "Lemmikfailid",
"No favorites" : "Lemmikuid pole",
"More favorites" : "Veel lemmikuid",
- "Upload (max. %s)" : "Üleslaadimine (max. %s)",
"Accept" : "Nõustu",
"Reject" : "Keeldu",
"Incoming ownership transfer from {user}" : "Saaduv omandi üleandmine kasutajalt {user}",
@@ -440,6 +439,7 @@
"Upload file" : "Laadi fail üles",
"Not favorited" : "Lemmikuks lisamata",
"An error occurred while trying to update the tags" : "Siltide uuendamisel tekkis tõrge",
+ "Upload (max. %s)" : "Üleslaadimine (max. %s)",
"You don't have permission to upload or create files here." : "Sul puuduvad õigused siia failide üleslaadimiseks või loomiseks.",
"Storage informations" : "Andmeruumi teave",
"Choose file" : "Vali fail",
diff --git a/apps/files/l10n/eu.js b/apps/files/l10n/eu.js
index 2cabb2838b0..b2f108756cc 100644
--- a/apps/files/l10n/eu.js
+++ b/apps/files/l10n/eu.js
@@ -51,7 +51,6 @@ OC.L10N.register(
"Favorite files" : "Gogoko fitxategiak",
"No favorites" : "Gogokorik ez",
"More favorites" : "Gogoko gehiago",
- "Upload (max. %s)" : "Igo (%s gehienez)",
"Accept" : "Onartu",
"Reject" : "Ukatu",
"Incoming ownership transfer from {user}" : "{user}(r)en jabetza-transferentzia",
@@ -403,6 +402,7 @@ OC.L10N.register(
"Upload file" : "Igo fitxategia",
"Not favorited" : "Ez da gogokoa",
"An error occurred while trying to update the tags" : "Errore bat gertatu da etiketak eguneratzen saiatzean",
+ "Upload (max. %s)" : "Igo (%s gehienez)",
"Storage informations" : "Biltegiaren informazioak",
"Choose file" : "Aukeratu fitxategia",
"Go to the previous folder" : "Joan aurreko karpetara",
diff --git a/apps/files/l10n/eu.json b/apps/files/l10n/eu.json
index e684f2741d7..7e8184fba4c 100644
--- a/apps/files/l10n/eu.json
+++ b/apps/files/l10n/eu.json
@@ -49,7 +49,6 @@
"Favorite files" : "Gogoko fitxategiak",
"No favorites" : "Gogokorik ez",
"More favorites" : "Gogoko gehiago",
- "Upload (max. %s)" : "Igo (%s gehienez)",
"Accept" : "Onartu",
"Reject" : "Ukatu",
"Incoming ownership transfer from {user}" : "{user}(r)en jabetza-transferentzia",
@@ -401,6 +400,7 @@
"Upload file" : "Igo fitxategia",
"Not favorited" : "Ez da gogokoa",
"An error occurred while trying to update the tags" : "Errore bat gertatu da etiketak eguneratzen saiatzean",
+ "Upload (max. %s)" : "Igo (%s gehienez)",
"Storage informations" : "Biltegiaren informazioak",
"Choose file" : "Aukeratu fitxategia",
"Go to the previous folder" : "Joan aurreko karpetara",
diff --git a/apps/files/l10n/fa.js b/apps/files/l10n/fa.js
index c71a442bcc6..7ab91258186 100644
--- a/apps/files/l10n/fa.js
+++ b/apps/files/l10n/fa.js
@@ -43,7 +43,6 @@ OC.L10N.register(
"A file or folder has been <strong>changed</strong>" : "یک فایل یا پوشه تغییر کرده است",
"A favorite file or folder has been <strong>changed</strong>" : "یک فایل یا پوشه مورد علاقه تغییر کرده است",
"No favorites" : "هیچ برگزیده",
- "Upload (max. %s)" : "آپلود (بیشترین سایز %s)",
"Accept" : "قبول",
"Reject" : "رد کردن",
"Incoming ownership transfer from {user}" : "انتقال مالکیت ورودی از {user}",
@@ -268,6 +267,7 @@ OC.L10N.register(
"Upload file" : "بارگذاری پرونده",
"Not favorited" : "مورد علاقه نیست",
"An error occurred while trying to update the tags" : "یک خطا در حین بروزرسانی برچسب‌ها رخ داده است",
+ "Upload (max. %s)" : "آپلود (بیشترین سایز %s)",
"Storage informations" : "ذخیره سازی اطلاعات ",
"Go to the previous folder" : "به پوشه قبلی بروید",
"Open the files app settings" : "تنظیمات برنامه فایل ها را باز کنید",
diff --git a/apps/files/l10n/fa.json b/apps/files/l10n/fa.json
index bdc6488c9e8..0c4f8d4b40c 100644
--- a/apps/files/l10n/fa.json
+++ b/apps/files/l10n/fa.json
@@ -41,7 +41,6 @@
"A file or folder has been <strong>changed</strong>" : "یک فایل یا پوشه تغییر کرده است",
"A favorite file or folder has been <strong>changed</strong>" : "یک فایل یا پوشه مورد علاقه تغییر کرده است",
"No favorites" : "هیچ برگزیده",
- "Upload (max. %s)" : "آپلود (بیشترین سایز %s)",
"Accept" : "قبول",
"Reject" : "رد کردن",
"Incoming ownership transfer from {user}" : "انتقال مالکیت ورودی از {user}",
@@ -266,6 +265,7 @@
"Upload file" : "بارگذاری پرونده",
"Not favorited" : "مورد علاقه نیست",
"An error occurred while trying to update the tags" : "یک خطا در حین بروزرسانی برچسب‌ها رخ داده است",
+ "Upload (max. %s)" : "آپلود (بیشترین سایز %s)",
"Storage informations" : "ذخیره سازی اطلاعات ",
"Go to the previous folder" : "به پوشه قبلی بروید",
"Open the files app settings" : "تنظیمات برنامه فایل ها را باز کنید",
diff --git a/apps/files/l10n/fi.js b/apps/files/l10n/fi.js
index a207528e026..2d76d97427f 100644
--- a/apps/files/l10n/fi.js
+++ b/apps/files/l10n/fi.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"Favorite files" : "Suosikkitiedostot",
"No favorites" : "Ei suosikkeja",
"More favorites" : "Lisää suosikeja",
- "Upload (max. %s)" : "Lähetys (enintään %s)",
"Accept" : "Hyväksy",
"Reject" : "Hylkää",
"Incoming ownership transfer from {user}" : "Saapuva omistajuussiirto käyttäjältä {user}",
@@ -393,6 +392,7 @@ OC.L10N.register(
"Upload file" : "Lähetä tiedosto",
"Not favorited" : "Ei suosikeissa",
"An error occurred while trying to update the tags" : "Tunnisteiden päivitystä yrittäessä tapahtui virhe",
+ "Upload (max. %s)" : "Lähetys (enintään %s)",
"You don't have permission to upload or create files here." : "Sinulla ei ole oikeutta lähettää tai luoda tiedostoja tänne.",
"Storage informations" : "Tallennustilan tietoja",
"Choose file" : "Valitse tiedosto",
diff --git a/apps/files/l10n/fi.json b/apps/files/l10n/fi.json
index b9b238376e3..b42f43a044c 100644
--- a/apps/files/l10n/fi.json
+++ b/apps/files/l10n/fi.json
@@ -52,7 +52,6 @@
"Favorite files" : "Suosikkitiedostot",
"No favorites" : "Ei suosikkeja",
"More favorites" : "Lisää suosikeja",
- "Upload (max. %s)" : "Lähetys (enintään %s)",
"Accept" : "Hyväksy",
"Reject" : "Hylkää",
"Incoming ownership transfer from {user}" : "Saapuva omistajuussiirto käyttäjältä {user}",
@@ -391,6 +390,7 @@
"Upload file" : "Lähetä tiedosto",
"Not favorited" : "Ei suosikeissa",
"An error occurred while trying to update the tags" : "Tunnisteiden päivitystä yrittäessä tapahtui virhe",
+ "Upload (max. %s)" : "Lähetys (enintään %s)",
"You don't have permission to upload or create files here." : "Sinulla ei ole oikeutta lähettää tai luoda tiedostoja tänne.",
"Storage informations" : "Tallennustilan tietoja",
"Choose file" : "Valitse tiedosto",
diff --git a/apps/files/l10n/fr.js b/apps/files/l10n/fr.js
index 4fbb46411f3..bac401f6f1d 100644
--- a/apps/files/l10n/fr.js
+++ b/apps/files/l10n/fr.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"Favorite files" : "Fichiers favoris",
"No favorites" : "Aucun favori",
"More favorites" : "Plus de favoris",
- "Upload (max. %s)" : "Envoi (max. %s)",
"Accept" : "Accepter",
"Reject" : "Refuser",
"Incoming ownership transfer from {user}" : "Transfert de propriété de la part de {user}",
@@ -442,6 +441,7 @@ OC.L10N.register(
"Upload file" : "Téléverser un fichier",
"Not favorited" : "Non marqué comme favori",
"An error occurred while trying to update the tags" : "Une erreur est survenue lors de la mise à jour des étiquettes",
+ "Upload (max. %s)" : "Envoi (max. %s)",
"You don't have permission to upload or create files here." : "Vous n'avez pas la permission de téléverser ou créer de fichiers ici.",
"Storage informations" : "Informations sur le stockage",
"Choose file" : "Choisir un fichier",
diff --git a/apps/files/l10n/fr.json b/apps/files/l10n/fr.json
index 77f0ae5147d..9ceeb8d42e4 100644
--- a/apps/files/l10n/fr.json
+++ b/apps/files/l10n/fr.json
@@ -52,7 +52,6 @@
"Favorite files" : "Fichiers favoris",
"No favorites" : "Aucun favori",
"More favorites" : "Plus de favoris",
- "Upload (max. %s)" : "Envoi (max. %s)",
"Accept" : "Accepter",
"Reject" : "Refuser",
"Incoming ownership transfer from {user}" : "Transfert de propriété de la part de {user}",
@@ -440,6 +439,7 @@
"Upload file" : "Téléverser un fichier",
"Not favorited" : "Non marqué comme favori",
"An error occurred while trying to update the tags" : "Une erreur est survenue lors de la mise à jour des étiquettes",
+ "Upload (max. %s)" : "Envoi (max. %s)",
"You don't have permission to upload or create files here." : "Vous n'avez pas la permission de téléverser ou créer de fichiers ici.",
"Storage informations" : "Informations sur le stockage",
"Choose file" : "Choisir un fichier",
diff --git a/apps/files/l10n/ga.js b/apps/files/l10n/ga.js
index a52a16fb4b4..ec95ac85cc2 100644
--- a/apps/files/l10n/ga.js
+++ b/apps/files/l10n/ga.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"Favorite files" : "Comhaid is fearr leat",
"No favorites" : "Gan aon cheanáin",
"More favorites" : "Gan aon cheanáin",
- "Upload (max. %s)" : "Uaslódáil (%s ar a mhéad)",
"Accept" : "Glac",
"Reject" : "Diúltaigh",
"Incoming ownership transfer from {user}" : "Aistriú úinéireachta isteach ó {user}",
@@ -442,6 +441,7 @@ OC.L10N.register(
"Upload file" : "Uaslódáil comhad",
"Not favorited" : "Ní fearr leat",
"An error occurred while trying to update the tags" : "Tharla earráid agus iarracht á déanamh na clibeanna a nuashonrú",
+ "Upload (max. %s)" : "Uaslódáil (%s ar a mhéad)",
"You don't have permission to upload or create files here." : "Níl cead agat comhaid a uaslódáil nó a chruthú anseo.",
"Storage informations" : "Faisnéis stórála",
"Choose file" : "Roghnaigh comhad",
diff --git a/apps/files/l10n/ga.json b/apps/files/l10n/ga.json
index 2da61d98e94..bd88a8b4f00 100644
--- a/apps/files/l10n/ga.json
+++ b/apps/files/l10n/ga.json
@@ -52,7 +52,6 @@
"Favorite files" : "Comhaid is fearr leat",
"No favorites" : "Gan aon cheanáin",
"More favorites" : "Gan aon cheanáin",
- "Upload (max. %s)" : "Uaslódáil (%s ar a mhéad)",
"Accept" : "Glac",
"Reject" : "Diúltaigh",
"Incoming ownership transfer from {user}" : "Aistriú úinéireachta isteach ó {user}",
@@ -440,6 +439,7 @@
"Upload file" : "Uaslódáil comhad",
"Not favorited" : "Ní fearr leat",
"An error occurred while trying to update the tags" : "Tharla earráid agus iarracht á déanamh na clibeanna a nuashonrú",
+ "Upload (max. %s)" : "Uaslódáil (%s ar a mhéad)",
"You don't have permission to upload or create files here." : "Níl cead agat comhaid a uaslódáil nó a chruthú anseo.",
"Storage informations" : "Faisnéis stórála",
"Choose file" : "Roghnaigh comhad",
diff --git a/apps/files/l10n/gl.js b/apps/files/l10n/gl.js
index 8262941c787..875971086ac 100644
--- a/apps/files/l10n/gl.js
+++ b/apps/files/l10n/gl.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"Favorite files" : "Ficheiros favoritos",
"No favorites" : "Non hai favoritos",
"More favorites" : "Máis favoritos",
- "Upload (max. %s)" : "Envío (máx. %s)",
"Accept" : "Aceptar",
"Reject" : "Rexeitar",
"Incoming ownership transfer from {user}" : "Transferencia da propiedade entrante de {user}",
@@ -430,6 +429,7 @@ OC.L10N.register(
"Upload file" : "Enviar ficheiro",
"Not favorited" : "Non marcado como favorito",
"An error occurred while trying to update the tags" : "Produciuse un erro ao tentar actualizar as etiquetas",
+ "Upload (max. %s)" : "Envío (máx. %s)",
"You don't have permission to upload or create files here." : "Non ten permiso para enviar ou crear ficheiros aquí.",
"Storage informations" : "Información de almacenamento",
"Choose file" : "Escoller o ficheiro",
diff --git a/apps/files/l10n/gl.json b/apps/files/l10n/gl.json
index 2e7c5c6a531..c475c6d664d 100644
--- a/apps/files/l10n/gl.json
+++ b/apps/files/l10n/gl.json
@@ -52,7 +52,6 @@
"Favorite files" : "Ficheiros favoritos",
"No favorites" : "Non hai favoritos",
"More favorites" : "Máis favoritos",
- "Upload (max. %s)" : "Envío (máx. %s)",
"Accept" : "Aceptar",
"Reject" : "Rexeitar",
"Incoming ownership transfer from {user}" : "Transferencia da propiedade entrante de {user}",
@@ -428,6 +427,7 @@
"Upload file" : "Enviar ficheiro",
"Not favorited" : "Non marcado como favorito",
"An error occurred while trying to update the tags" : "Produciuse un erro ao tentar actualizar as etiquetas",
+ "Upload (max. %s)" : "Envío (máx. %s)",
"You don't have permission to upload or create files here." : "Non ten permiso para enviar ou crear ficheiros aquí.",
"Storage informations" : "Información de almacenamento",
"Choose file" : "Escoller o ficheiro",
diff --git a/apps/files/l10n/hu.js b/apps/files/l10n/hu.js
index 10ab2b1a997..a9b2b1b679c 100644
--- a/apps/files/l10n/hu.js
+++ b/apps/files/l10n/hu.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"Favorite files" : "Kedvenc fájlok",
"No favorites" : "Nincsenek kedvencek",
"More favorites" : "További kedvencek",
- "Upload (max. %s)" : "Feltöltés (legfeljebb %s)",
"Accept" : "Elfogadás",
"Reject" : "Elutasítás",
"Incoming ownership transfer from {user}" : "Bejövő tulajdonjog-átruházás {user} részéről",
@@ -416,6 +415,7 @@ OC.L10N.register(
"Upload file" : "Fájl feltöltése",
"Not favorited" : "Nincs a kedvencek között",
"An error occurred while trying to update the tags" : "Hiba történt, miközben megpróbálta frissíteni a címkéket",
+ "Upload (max. %s)" : "Feltöltés (legfeljebb %s)",
"Storage informations" : "Tárhely-információk",
"Choose file" : "Válasszon fájlt",
"Go to the previous folder" : "Ugrás az előző mappához",
diff --git a/apps/files/l10n/hu.json b/apps/files/l10n/hu.json
index 999670b9d3a..1bb11eda6e5 100644
--- a/apps/files/l10n/hu.json
+++ b/apps/files/l10n/hu.json
@@ -52,7 +52,6 @@
"Favorite files" : "Kedvenc fájlok",
"No favorites" : "Nincsenek kedvencek",
"More favorites" : "További kedvencek",
- "Upload (max. %s)" : "Feltöltés (legfeljebb %s)",
"Accept" : "Elfogadás",
"Reject" : "Elutasítás",
"Incoming ownership transfer from {user}" : "Bejövő tulajdonjog-átruházás {user} részéről",
@@ -414,6 +413,7 @@
"Upload file" : "Fájl feltöltése",
"Not favorited" : "Nincs a kedvencek között",
"An error occurred while trying to update the tags" : "Hiba történt, miközben megpróbálta frissíteni a címkéket",
+ "Upload (max. %s)" : "Feltöltés (legfeljebb %s)",
"Storage informations" : "Tárhely-információk",
"Choose file" : "Válasszon fájlt",
"Go to the previous folder" : "Ugrás az előző mappához",
diff --git a/apps/files/l10n/id.js b/apps/files/l10n/id.js
index 26b58d44082..3305ca979fa 100644
--- a/apps/files/l10n/id.js
+++ b/apps/files/l10n/id.js
@@ -43,7 +43,6 @@ OC.L10N.register(
"A file or folder has been <strong>changed</strong>" : "Sebuah berkas atau folder telah <strong>diubah</strong>",
"A favorite file or folder has been <strong>changed</strong>" : "Sebuah berkas atau folder favorit telah <strong>diubah</strong>",
"No favorites" : "Tidak ada favorit",
- "Upload (max. %s)" : "Unggah (maks. %s)",
"Accept" : "Terima",
"Reject" : "Ditolak",
"Incoming ownership transfer from {user}" : "Permintaan transfer kepemilikan dari {user}",
@@ -230,6 +229,7 @@ OC.L10N.register(
"Upload file" : "Unggah berkas",
"Not favorited" : "Tidak favorit",
"An error occurred while trying to update the tags" : "Terjadi kesalahan saat mencoba untuk memperbarui label",
+ "Upload (max. %s)" : "Unggah (maks. %s)",
"Storage informations" : "Informasi penyimpanan",
"Open the files app settings" : "Buka setelan aplikasi berkas",
"Unable to change the favourite state of the file" : "Gagal mengubah status favorit berkas",
diff --git a/apps/files/l10n/id.json b/apps/files/l10n/id.json
index 124d61723c6..bcccadd6383 100644
--- a/apps/files/l10n/id.json
+++ b/apps/files/l10n/id.json
@@ -41,7 +41,6 @@
"A file or folder has been <strong>changed</strong>" : "Sebuah berkas atau folder telah <strong>diubah</strong>",
"A favorite file or folder has been <strong>changed</strong>" : "Sebuah berkas atau folder favorit telah <strong>diubah</strong>",
"No favorites" : "Tidak ada favorit",
- "Upload (max. %s)" : "Unggah (maks. %s)",
"Accept" : "Terima",
"Reject" : "Ditolak",
"Incoming ownership transfer from {user}" : "Permintaan transfer kepemilikan dari {user}",
@@ -228,6 +227,7 @@
"Upload file" : "Unggah berkas",
"Not favorited" : "Tidak favorit",
"An error occurred while trying to update the tags" : "Terjadi kesalahan saat mencoba untuk memperbarui label",
+ "Upload (max. %s)" : "Unggah (maks. %s)",
"Storage informations" : "Informasi penyimpanan",
"Open the files app settings" : "Buka setelan aplikasi berkas",
"Unable to change the favourite state of the file" : "Gagal mengubah status favorit berkas",
diff --git a/apps/files/l10n/is.js b/apps/files/l10n/is.js
index ee87ac2320d..5953f810ff1 100644
--- a/apps/files/l10n/is.js
+++ b/apps/files/l10n/is.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"Favorite files" : "Eftirlætisskrár",
"No favorites" : "Engin eftirlæti",
"More favorites" : "Fleiri eftirlæti",
- "Upload (max. %s)" : "Senda inn (hám. %s)",
"Accept" : "Samþykkja",
"Reject" : "Hafna",
"Incoming ownership transfer from {user}" : "Innkomandi millifærsla eignarhalds frá {user}",
@@ -413,6 +412,7 @@ OC.L10N.register(
"Upload file" : "Senda inn skrá",
"Not favorited" : "Ekki í eftirlætum",
"An error occurred while trying to update the tags" : "Villa kom upp við að reyna að uppfæra merkin",
+ "Upload (max. %s)" : "Senda inn (hám. %s)",
"Storage informations" : "Upplýsingar um geymslurými",
"Choose file" : "Veldu skrá",
"Go to the previous folder" : "Fara í fyrri möppu",
diff --git a/apps/files/l10n/is.json b/apps/files/l10n/is.json
index ba82fae1a98..20f83aa93cb 100644
--- a/apps/files/l10n/is.json
+++ b/apps/files/l10n/is.json
@@ -52,7 +52,6 @@
"Favorite files" : "Eftirlætisskrár",
"No favorites" : "Engin eftirlæti",
"More favorites" : "Fleiri eftirlæti",
- "Upload (max. %s)" : "Senda inn (hám. %s)",
"Accept" : "Samþykkja",
"Reject" : "Hafna",
"Incoming ownership transfer from {user}" : "Innkomandi millifærsla eignarhalds frá {user}",
@@ -411,6 +410,7 @@
"Upload file" : "Senda inn skrá",
"Not favorited" : "Ekki í eftirlætum",
"An error occurred while trying to update the tags" : "Villa kom upp við að reyna að uppfæra merkin",
+ "Upload (max. %s)" : "Senda inn (hám. %s)",
"Storage informations" : "Upplýsingar um geymslurými",
"Choose file" : "Veldu skrá",
"Go to the previous folder" : "Fara í fyrri möppu",
diff --git a/apps/files/l10n/it.js b/apps/files/l10n/it.js
index 1394712a176..7030acfa654 100644
--- a/apps/files/l10n/it.js
+++ b/apps/files/l10n/it.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"Favorite files" : "File preferiti",
"No favorites" : "Nessun preferito",
"More favorites" : "Altri preferiti",
- "Upload (max. %s)" : "Carica (massimo %s)",
"Accept" : "Accetta",
"Reject" : "Rifiuta",
"Incoming ownership transfer from {user}" : "Trasferimento di proprietà in ingresso da {user}",
@@ -442,6 +441,7 @@ OC.L10N.register(
"Upload file" : "Carica file",
"Not favorited" : "Non preferito",
"An error occurred while trying to update the tags" : "Si è verificato un errore durante il tentativo di aggiornare le etichette",
+ "Upload (max. %s)" : "Carica (massimo %s)",
"You don't have permission to upload or create files here." : "Non hai l'autorizzazione per caricare o creare file qui.",
"Storage informations" : "Informazioni di archiviazione",
"Choose file" : "Scegli file",
diff --git a/apps/files/l10n/it.json b/apps/files/l10n/it.json
index cd91fe47818..d72ae380f69 100644
--- a/apps/files/l10n/it.json
+++ b/apps/files/l10n/it.json
@@ -52,7 +52,6 @@
"Favorite files" : "File preferiti",
"No favorites" : "Nessun preferito",
"More favorites" : "Altri preferiti",
- "Upload (max. %s)" : "Carica (massimo %s)",
"Accept" : "Accetta",
"Reject" : "Rifiuta",
"Incoming ownership transfer from {user}" : "Trasferimento di proprietà in ingresso da {user}",
@@ -440,6 +439,7 @@
"Upload file" : "Carica file",
"Not favorited" : "Non preferito",
"An error occurred while trying to update the tags" : "Si è verificato un errore durante il tentativo di aggiornare le etichette",
+ "Upload (max. %s)" : "Carica (massimo %s)",
"You don't have permission to upload or create files here." : "Non hai l'autorizzazione per caricare o creare file qui.",
"Storage informations" : "Informazioni di archiviazione",
"Choose file" : "Scegli file",
diff --git a/apps/files/l10n/ja.js b/apps/files/l10n/ja.js
index 6c16223edef..744d20ed6a1 100644
--- a/apps/files/l10n/ja.js
+++ b/apps/files/l10n/ja.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"Favorite files" : "お気に入りファイル",
"No favorites" : "お気に入りなし",
"More favorites" : "その他のお気に入り",
- "Upload (max. %s)" : "アップロード ( 最大 %s )",
"Accept" : "承諾",
"Reject" : "拒否",
"Incoming ownership transfer from {user}" : "{user} からの所有権転送を受信",
@@ -442,6 +441,7 @@ OC.L10N.register(
"Upload file" : "ファイルをアップロード",
"Not favorited" : "お気に入りではありません",
"An error occurred while trying to update the tags" : "タグを更新する際にエラーが発生しました",
+ "Upload (max. %s)" : "アップロード ( 最大 %s )",
"You don't have permission to upload or create files here." : "ここにファイルをアップロードまたは作成する権限がありません。",
"Storage informations" : "ストレージ情報",
"Choose file" : "ファイルを選択",
diff --git a/apps/files/l10n/ja.json b/apps/files/l10n/ja.json
index 6e24c0a0326..da81853cfb7 100644
--- a/apps/files/l10n/ja.json
+++ b/apps/files/l10n/ja.json
@@ -52,7 +52,6 @@
"Favorite files" : "お気に入りファイル",
"No favorites" : "お気に入りなし",
"More favorites" : "その他のお気に入り",
- "Upload (max. %s)" : "アップロード ( 最大 %s )",
"Accept" : "承諾",
"Reject" : "拒否",
"Incoming ownership transfer from {user}" : "{user} からの所有権転送を受信",
@@ -440,6 +439,7 @@
"Upload file" : "ファイルをアップロード",
"Not favorited" : "お気に入りではありません",
"An error occurred while trying to update the tags" : "タグを更新する際にエラーが発生しました",
+ "Upload (max. %s)" : "アップロード ( 最大 %s )",
"You don't have permission to upload or create files here." : "ここにファイルをアップロードまたは作成する権限がありません。",
"Storage informations" : "ストレージ情報",
"Choose file" : "ファイルを選択",
diff --git a/apps/files/l10n/ka.js b/apps/files/l10n/ka.js
index cfe5550e1b9..04a5f34801a 100644
--- a/apps/files/l10n/ka.js
+++ b/apps/files/l10n/ka.js
@@ -42,7 +42,6 @@ OC.L10N.register(
"Files" : "ფაილები",
"A file or folder has been <strong>changed</strong>" : "A file or folder has been <strong>changed</strong>",
"A favorite file or folder has been <strong>changed</strong>" : "A favorite file or folder has been <strong>changed</strong>",
- "Upload (max. %s)" : "Upload (max. %s)",
"Accept" : "Accept",
"Reject" : "Reject",
"Incoming ownership transfer from {user}" : "Incoming ownership transfer from {user}",
@@ -283,6 +282,7 @@ OC.L10N.register(
"Upload file" : "Upload file",
"Not favorited" : "Not favorited",
"An error occurred while trying to update the tags" : "An error occurred while trying to update the tags",
+ "Upload (max. %s)" : "Upload (max. %s)",
"Storage informations" : "Storage informations",
"Choose file" : "Choose file",
"Go to the previous folder" : "Go to the previous folder",
diff --git a/apps/files/l10n/ka.json b/apps/files/l10n/ka.json
index 62a87193a52..9fc0ecebb60 100644
--- a/apps/files/l10n/ka.json
+++ b/apps/files/l10n/ka.json
@@ -40,7 +40,6 @@
"Files" : "ფაილები",
"A file or folder has been <strong>changed</strong>" : "A file or folder has been <strong>changed</strong>",
"A favorite file or folder has been <strong>changed</strong>" : "A favorite file or folder has been <strong>changed</strong>",
- "Upload (max. %s)" : "Upload (max. %s)",
"Accept" : "Accept",
"Reject" : "Reject",
"Incoming ownership transfer from {user}" : "Incoming ownership transfer from {user}",
@@ -281,6 +280,7 @@
"Upload file" : "Upload file",
"Not favorited" : "Not favorited",
"An error occurred while trying to update the tags" : "An error occurred while trying to update the tags",
+ "Upload (max. %s)" : "Upload (max. %s)",
"Storage informations" : "Storage informations",
"Choose file" : "Choose file",
"Go to the previous folder" : "Go to the previous folder",
diff --git a/apps/files/l10n/ko.js b/apps/files/l10n/ko.js
index 9a628f603bb..91476ef7c43 100644
--- a/apps/files/l10n/ko.js
+++ b/apps/files/l10n/ko.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"Favorite files" : "즐겨찾는 파일",
"No favorites" : "즐겨찾는 항목 없음",
"More favorites" : "즐겨찾기 더 불러오기",
- "Upload (max. %s)" : "업로드(최대 %s)",
"Accept" : "수락",
"Reject" : "거절",
"Incoming ownership transfer from {user}" : "{user}의 소유권 이전 요청",
@@ -419,6 +418,7 @@ OC.L10N.register(
"Upload file" : "파일 업로드",
"Not favorited" : "즐겨찾기에 없음",
"An error occurred while trying to update the tags" : "태그를 업데이트하는 중 오류 발생",
+ "Upload (max. %s)" : "업로드(최대 %s)",
"You don't have permission to upload or create files here." : "여기에 파일을 업로드하거나 만들 권한이 없습니다.",
"Storage informations" : "저장소 정보",
"Choose file" : "파일 선택",
diff --git a/apps/files/l10n/ko.json b/apps/files/l10n/ko.json
index 10b720f7f8c..13361f97b8d 100644
--- a/apps/files/l10n/ko.json
+++ b/apps/files/l10n/ko.json
@@ -52,7 +52,6 @@
"Favorite files" : "즐겨찾는 파일",
"No favorites" : "즐겨찾는 항목 없음",
"More favorites" : "즐겨찾기 더 불러오기",
- "Upload (max. %s)" : "업로드(최대 %s)",
"Accept" : "수락",
"Reject" : "거절",
"Incoming ownership transfer from {user}" : "{user}의 소유권 이전 요청",
@@ -417,6 +416,7 @@
"Upload file" : "파일 업로드",
"Not favorited" : "즐겨찾기에 없음",
"An error occurred while trying to update the tags" : "태그를 업데이트하는 중 오류 발생",
+ "Upload (max. %s)" : "업로드(최대 %s)",
"You don't have permission to upload or create files here." : "여기에 파일을 업로드하거나 만들 권한이 없습니다.",
"Storage informations" : "저장소 정보",
"Choose file" : "파일 선택",
diff --git a/apps/files/l10n/lt_LT.js b/apps/files/l10n/lt_LT.js
index e0687e17887..623d9dae5d5 100644
--- a/apps/files/l10n/lt_LT.js
+++ b/apps/files/l10n/lt_LT.js
@@ -49,7 +49,6 @@ OC.L10N.register(
"The destination path does not exist: %1$s" : "Paskirties kelio nėra: %1$s",
"You do not have permission to create a file at the specified location" : "Jūs neturite leidimo sukurti failą nurodytoje vietoje",
"No favorites" : "Nėra mėgstamiausių",
- "Upload (max. %s)" : "Įkelti (maks. %s)",
"Accept" : "Priimti",
"Reject" : "Atmesti",
"Incoming ownership transfer from {user}" : "Gaunamasis nuosavybės perdavimas nuo {user}",
@@ -309,6 +308,7 @@ OC.L10N.register(
"Upload file" : "Įkelti failą",
"Not favorited" : "Nepažymėtas mėgstamu",
"An error occurred while trying to update the tags" : "Įvyko klaida bandant atnaujinti žymas",
+ "Upload (max. %s)" : "Įkelti (maks. %s)",
"Storage informations" : "Informacija apie saugyklą",
"Go to the previous folder" : "Eiti į ankstesnį aplanką",
"Unable to change the favourite state of the file" : "Nepavyksta pakeisti failo Lankomiausiųjų būsenos",
diff --git a/apps/files/l10n/lt_LT.json b/apps/files/l10n/lt_LT.json
index c118a408467..f87535804a2 100644
--- a/apps/files/l10n/lt_LT.json
+++ b/apps/files/l10n/lt_LT.json
@@ -47,7 +47,6 @@
"The destination path does not exist: %1$s" : "Paskirties kelio nėra: %1$s",
"You do not have permission to create a file at the specified location" : "Jūs neturite leidimo sukurti failą nurodytoje vietoje",
"No favorites" : "Nėra mėgstamiausių",
- "Upload (max. %s)" : "Įkelti (maks. %s)",
"Accept" : "Priimti",
"Reject" : "Atmesti",
"Incoming ownership transfer from {user}" : "Gaunamasis nuosavybės perdavimas nuo {user}",
@@ -307,6 +306,7 @@
"Upload file" : "Įkelti failą",
"Not favorited" : "Nepažymėtas mėgstamu",
"An error occurred while trying to update the tags" : "Įvyko klaida bandant atnaujinti žymas",
+ "Upload (max. %s)" : "Įkelti (maks. %s)",
"Storage informations" : "Informacija apie saugyklą",
"Go to the previous folder" : "Eiti į ankstesnį aplanką",
"Unable to change the favourite state of the file" : "Nepavyksta pakeisti failo Lankomiausiųjų būsenos",
diff --git a/apps/files/l10n/mk.js b/apps/files/l10n/mk.js
index 0eebc8c5376..0f2c5742554 100644
--- a/apps/files/l10n/mk.js
+++ b/apps/files/l10n/mk.js
@@ -53,7 +53,6 @@ OC.L10N.register(
"Favorite files" : "Омилени датотеки",
"No favorites" : "Нема омилени",
"More favorites" : "Повеќе омилени",
- "Upload (max. %s)" : "Префрлање (макс. %s)",
"Accept" : "Прифати",
"Reject" : "Одбиј",
"Incoming ownership transfer from {user}" : "Барање за трансфер на сопственост од {user}",
@@ -320,6 +319,7 @@ OC.L10N.register(
"Upload file" : "Прикачи датотека",
"Not favorited" : "Нема фаворити",
"An error occurred while trying to update the tags" : "Се случи грешка додека се обидувавте да ги освежите таговите",
+ "Upload (max. %s)" : "Префрлање (макс. %s)",
"Storage informations" : "Информации за складиштето",
"Choose file" : "Избери датотека",
"Go to the previous folder" : "Врати се на предходната папка",
diff --git a/apps/files/l10n/mk.json b/apps/files/l10n/mk.json
index 4c970bba5ff..f1cde29917e 100644
--- a/apps/files/l10n/mk.json
+++ b/apps/files/l10n/mk.json
@@ -51,7 +51,6 @@
"Favorite files" : "Омилени датотеки",
"No favorites" : "Нема омилени",
"More favorites" : "Повеќе омилени",
- "Upload (max. %s)" : "Префрлање (макс. %s)",
"Accept" : "Прифати",
"Reject" : "Одбиј",
"Incoming ownership transfer from {user}" : "Барање за трансфер на сопственост од {user}",
@@ -318,6 +317,7 @@
"Upload file" : "Прикачи датотека",
"Not favorited" : "Нема фаворити",
"An error occurred while trying to update the tags" : "Се случи грешка додека се обидувавте да ги освежите таговите",
+ "Upload (max. %s)" : "Префрлање (макс. %s)",
"Storage informations" : "Информации за складиштето",
"Choose file" : "Избери датотека",
"Go to the previous folder" : "Врати се на предходната папка",
diff --git a/apps/files/l10n/nb.js b/apps/files/l10n/nb.js
index c05d7df2dba..d1f6d100edc 100644
--- a/apps/files/l10n/nb.js
+++ b/apps/files/l10n/nb.js
@@ -52,7 +52,6 @@ OC.L10N.register(
"Favorite files" : "Favorittfiler",
"No favorites" : "Ingen favoritter",
"More favorites" : "Flere favoritter",
- "Upload (max. %s)" : "Opplasting (maks %s)",
"Accept" : "Aksepter",
"Reject" : "Avvis",
"Incoming ownership transfer from {user}" : "Ny eierskapsoverføring fra {user}",
@@ -400,6 +399,7 @@ OC.L10N.register(
"Upload file" : "Last opp fil",
"Not favorited" : "Ikke i favoritter",
"An error occurred while trying to update the tags" : "En feil oppsto under oppdatering av merkelappene",
+ "Upload (max. %s)" : "Opplasting (maks %s)",
"Storage informations" : "Informasjon om lagring",
"Choose file" : "Velg fil",
"Go to the previous folder" : "Gå fil forrige mappe",
diff --git a/apps/files/l10n/nb.json b/apps/files/l10n/nb.json
index 20d1464f445..86236c006a4 100644
--- a/apps/files/l10n/nb.json
+++ b/apps/files/l10n/nb.json
@@ -50,7 +50,6 @@
"Favorite files" : "Favorittfiler",
"No favorites" : "Ingen favoritter",
"More favorites" : "Flere favoritter",
- "Upload (max. %s)" : "Opplasting (maks %s)",
"Accept" : "Aksepter",
"Reject" : "Avvis",
"Incoming ownership transfer from {user}" : "Ny eierskapsoverføring fra {user}",
@@ -398,6 +397,7 @@
"Upload file" : "Last opp fil",
"Not favorited" : "Ikke i favoritter",
"An error occurred while trying to update the tags" : "En feil oppsto under oppdatering av merkelappene",
+ "Upload (max. %s)" : "Opplasting (maks %s)",
"Storage informations" : "Informasjon om lagring",
"Choose file" : "Velg fil",
"Go to the previous folder" : "Gå fil forrige mappe",
diff --git a/apps/files/l10n/nl.js b/apps/files/l10n/nl.js
index f1576a4e645..9a0b5caa5f0 100644
--- a/apps/files/l10n/nl.js
+++ b/apps/files/l10n/nl.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"Favorite files" : "Favoriete bestanden",
"No favorites" : "Geen favorieten",
"More favorites" : "Meer favorieten",
- "Upload (max. %s)" : "Upload (max. %s)",
"Accept" : "Accepteren",
"Reject" : "Afwijzen",
"Incoming ownership transfer from {user}" : "Inkomend verzoek voor eigendomsoverdracht van {user}",
@@ -430,6 +429,7 @@ OC.L10N.register(
"Upload file" : "Bestand uploaden",
"Not favorited" : "Niet in favorieten",
"An error occurred while trying to update the tags" : "Er trad een fout op bij je poging om de tags bij te werken",
+ "Upload (max. %s)" : "Upload (max. %s)",
"You don't have permission to upload or create files here." : "Je hebt geen toestemming om hier bestanden te uploaden of aan te maken.",
"Storage informations" : "Opslaginformatie",
"Choose file" : "Kies bestand",
diff --git a/apps/files/l10n/nl.json b/apps/files/l10n/nl.json
index edbd2421acb..59e3501d036 100644
--- a/apps/files/l10n/nl.json
+++ b/apps/files/l10n/nl.json
@@ -52,7 +52,6 @@
"Favorite files" : "Favoriete bestanden",
"No favorites" : "Geen favorieten",
"More favorites" : "Meer favorieten",
- "Upload (max. %s)" : "Upload (max. %s)",
"Accept" : "Accepteren",
"Reject" : "Afwijzen",
"Incoming ownership transfer from {user}" : "Inkomend verzoek voor eigendomsoverdracht van {user}",
@@ -428,6 +427,7 @@
"Upload file" : "Bestand uploaden",
"Not favorited" : "Niet in favorieten",
"An error occurred while trying to update the tags" : "Er trad een fout op bij je poging om de tags bij te werken",
+ "Upload (max. %s)" : "Upload (max. %s)",
"You don't have permission to upload or create files here." : "Je hebt geen toestemming om hier bestanden te uploaden of aan te maken.",
"Storage informations" : "Opslaginformatie",
"Choose file" : "Kies bestand",
diff --git a/apps/files/l10n/pl.js b/apps/files/l10n/pl.js
index d2d3541974d..d3f16e7a1c0 100644
--- a/apps/files/l10n/pl.js
+++ b/apps/files/l10n/pl.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"Favorite files" : "Ulubione pliki",
"No favorites" : "Brak ulubionych",
"More favorites" : "Więcej ulubionych",
- "Upload (max. %s)" : "Wysyłanie (maks. %s)",
"Accept" : "Akceptuj",
"Reject" : "Odrzuć",
"Incoming ownership transfer from {user}" : "Przychodzące przeniesienie własności od {user}",
@@ -71,6 +70,7 @@ OC.L10N.register(
"Transferred from %1$s on %2$s" : "Przeniesiono z %1$s dnia %2$s",
"Files compatibility" : "Zgodność plików",
"Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Zezwalaj na ograniczenie nazw plików, aby zapewnić synchronizację plików ze wszystkimi klientami. Domyślnie dozwolone są wszystkie nazwy plików obowiązujące w systemie POSIX (np. Linux lub macOS).",
+ "After enabling the Windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Po włączeniu nazw plików zgodnych z systemem Windows, istniejące pliki nie można już modyfikować, ale ich właściciel może zmienić ich nazwy na nowe, prawidłowe.",
"It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "Możliwe jest również automatyczne migrowanie plików po włączeniu tego ustawienia. Więcej informacji można znaleźć w dokumentacji polecenia occ.",
"Enforce Windows compatibility" : "Wymuszaj zgodność z systemem Windows",
"This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "Spowoduje to zablokowanie nazw plików nieprawidłowych w systemach Windows, na przykład nazw zastrzeżonych lub znaków specjalnych. Nie wymusi to jednak zgodności z rozróżnianiem wielkości liter.",
@@ -97,6 +97,11 @@ OC.L10N.register(
"Renamed \"{oldName}\" to \"{newName}\"" : "Zmieniono nazwę \"{oldName}\" na \"{newName}\"",
"Rename file" : "Zmień nazwę pliku",
"Folder" : "Katalog",
+ "Unknown file type" : "Nieznany typ pliku",
+ "{ext} image" : "{ext} zdjęcie",
+ "{ext} video" : "{ext} wideo",
+ "{ext} audio" : "{ext} dźwiękowy",
+ "{ext} text" : "{ext} tekstowy",
"Pending" : "Oczekujące",
"Unknown date" : "Nieznana data",
"Clear filter" : "Wyczyść filtr",
@@ -107,6 +112,7 @@ OC.L10N.register(
"Total rows summary" : "Podsumowanie wszystkich wierszy",
"Toggle selection for all files and folders" : "Przełącz zaznaczenie dla wszystkich plików i katalogów",
"Name" : "Nazwa",
+ "File type" : "Typ pliku",
"Size" : "Rozmiar",
"\"{displayName}\" failed on some elements" : "\"{displayName}\" nie powiodło się w niektórych elementach",
"\"{displayName}\" batch action executed successfully" : "Akcja wsadowa \"{displayName}\" została wykonana pomyślnie",
@@ -185,6 +191,7 @@ OC.L10N.register(
"Sort favorites first" : "Najpierw sortuj ulubione",
"Sort folders before files" : "Sortuj katalogi przed plikami",
"Show hidden files" : "Pokaż ukryte pliki",
+ "Show file type column" : "Pokaż kolumnę typu pliku",
"Crop image previews" : "Przytnij podglądy obrazów",
"Enable the grid view" : "Włącz widok siatki",
"Enable folder tree" : "Włącz drzewo katalogów",
@@ -434,6 +441,7 @@ OC.L10N.register(
"Upload file" : "Wyślij plik",
"Not favorited" : "Wyłączone z ulubionych",
"An error occurred while trying to update the tags" : "Wystąpił błąd podczas próby aktualizacji etykiet",
+ "Upload (max. %s)" : "Wysyłanie (maks. %s)",
"You don't have permission to upload or create files here." : "Nie masz uprawnień do wysyłania lub tworzenia plików w tym miejscu.",
"Storage informations" : "Informacje o przechowywaniu",
"Choose file" : "Wybierz plik",
diff --git a/apps/files/l10n/pl.json b/apps/files/l10n/pl.json
index 18d1ea4ba19..762872a0dab 100644
--- a/apps/files/l10n/pl.json
+++ b/apps/files/l10n/pl.json
@@ -52,7 +52,6 @@
"Favorite files" : "Ulubione pliki",
"No favorites" : "Brak ulubionych",
"More favorites" : "Więcej ulubionych",
- "Upload (max. %s)" : "Wysyłanie (maks. %s)",
"Accept" : "Akceptuj",
"Reject" : "Odrzuć",
"Incoming ownership transfer from {user}" : "Przychodzące przeniesienie własności od {user}",
@@ -69,6 +68,7 @@
"Transferred from %1$s on %2$s" : "Przeniesiono z %1$s dnia %2$s",
"Files compatibility" : "Zgodność plików",
"Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Zezwalaj na ograniczenie nazw plików, aby zapewnić synchronizację plików ze wszystkimi klientami. Domyślnie dozwolone są wszystkie nazwy plików obowiązujące w systemie POSIX (np. Linux lub macOS).",
+ "After enabling the Windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Po włączeniu nazw plików zgodnych z systemem Windows, istniejące pliki nie można już modyfikować, ale ich właściciel może zmienić ich nazwy na nowe, prawidłowe.",
"It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "Możliwe jest również automatyczne migrowanie plików po włączeniu tego ustawienia. Więcej informacji można znaleźć w dokumentacji polecenia occ.",
"Enforce Windows compatibility" : "Wymuszaj zgodność z systemem Windows",
"This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "Spowoduje to zablokowanie nazw plików nieprawidłowych w systemach Windows, na przykład nazw zastrzeżonych lub znaków specjalnych. Nie wymusi to jednak zgodności z rozróżnianiem wielkości liter.",
@@ -95,6 +95,11 @@
"Renamed \"{oldName}\" to \"{newName}\"" : "Zmieniono nazwę \"{oldName}\" na \"{newName}\"",
"Rename file" : "Zmień nazwę pliku",
"Folder" : "Katalog",
+ "Unknown file type" : "Nieznany typ pliku",
+ "{ext} image" : "{ext} zdjęcie",
+ "{ext} video" : "{ext} wideo",
+ "{ext} audio" : "{ext} dźwiękowy",
+ "{ext} text" : "{ext} tekstowy",
"Pending" : "Oczekujące",
"Unknown date" : "Nieznana data",
"Clear filter" : "Wyczyść filtr",
@@ -105,6 +110,7 @@
"Total rows summary" : "Podsumowanie wszystkich wierszy",
"Toggle selection for all files and folders" : "Przełącz zaznaczenie dla wszystkich plików i katalogów",
"Name" : "Nazwa",
+ "File type" : "Typ pliku",
"Size" : "Rozmiar",
"\"{displayName}\" failed on some elements" : "\"{displayName}\" nie powiodło się w niektórych elementach",
"\"{displayName}\" batch action executed successfully" : "Akcja wsadowa \"{displayName}\" została wykonana pomyślnie",
@@ -183,6 +189,7 @@
"Sort favorites first" : "Najpierw sortuj ulubione",
"Sort folders before files" : "Sortuj katalogi przed plikami",
"Show hidden files" : "Pokaż ukryte pliki",
+ "Show file type column" : "Pokaż kolumnę typu pliku",
"Crop image previews" : "Przytnij podglądy obrazów",
"Enable the grid view" : "Włącz widok siatki",
"Enable folder tree" : "Włącz drzewo katalogów",
@@ -432,6 +439,7 @@
"Upload file" : "Wyślij plik",
"Not favorited" : "Wyłączone z ulubionych",
"An error occurred while trying to update the tags" : "Wystąpił błąd podczas próby aktualizacji etykiet",
+ "Upload (max. %s)" : "Wysyłanie (maks. %s)",
"You don't have permission to upload or create files here." : "Nie masz uprawnień do wysyłania lub tworzenia plików w tym miejscu.",
"Storage informations" : "Informacje o przechowywaniu",
"Choose file" : "Wybierz plik",
diff --git a/apps/files/l10n/pt_BR.js b/apps/files/l10n/pt_BR.js
index 8e77d1b2bb5..cf3e93c2c61 100644
--- a/apps/files/l10n/pt_BR.js
+++ b/apps/files/l10n/pt_BR.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"Favorite files" : "Arquivos favoritos",
"No favorites" : "Sem favoritos",
"More favorites" : "Mais favoritos",
- "Upload (max. %s)" : "Upload (max. %s)",
"Accept" : "Aceitar",
"Reject" : "Rejeitar",
"Incoming ownership transfer from {user}" : "Transferência de propriedade recebida de {user}",
@@ -442,6 +441,7 @@ OC.L10N.register(
"Upload file" : "Enviar arquivo",
"Not favorited" : "Sem favoritos",
"An error occurred while trying to update the tags" : "Ocorreu um erro enquanto tentava atualizar as etiquetas",
+ "Upload (max. %s)" : "Upload (max. %s)",
"You don't have permission to upload or create files here." : "Você não tem permissão para carregar ou criar arquivos aqui.",
"Storage informations" : "Informações de armazenamento",
"Choose file" : "Escolher arquivo",
diff --git a/apps/files/l10n/pt_BR.json b/apps/files/l10n/pt_BR.json
index 09de897bc56..b04c0f95abc 100644
--- a/apps/files/l10n/pt_BR.json
+++ b/apps/files/l10n/pt_BR.json
@@ -52,7 +52,6 @@
"Favorite files" : "Arquivos favoritos",
"No favorites" : "Sem favoritos",
"More favorites" : "Mais favoritos",
- "Upload (max. %s)" : "Upload (max. %s)",
"Accept" : "Aceitar",
"Reject" : "Rejeitar",
"Incoming ownership transfer from {user}" : "Transferência de propriedade recebida de {user}",
@@ -440,6 +439,7 @@
"Upload file" : "Enviar arquivo",
"Not favorited" : "Sem favoritos",
"An error occurred while trying to update the tags" : "Ocorreu um erro enquanto tentava atualizar as etiquetas",
+ "Upload (max. %s)" : "Upload (max. %s)",
"You don't have permission to upload or create files here." : "Você não tem permissão para carregar ou criar arquivos aqui.",
"Storage informations" : "Informações de armazenamento",
"Choose file" : "Escolher arquivo",
diff --git a/apps/files/l10n/pt_PT.js b/apps/files/l10n/pt_PT.js
index e886d15e416..aa7899cb1af 100644
--- a/apps/files/l10n/pt_PT.js
+++ b/apps/files/l10n/pt_PT.js
@@ -47,7 +47,6 @@ OC.L10N.register(
"Invalid folder path" : "Caminho da pasta inválido",
"Folder not found" : "Pasta não encontrada",
"No favorites" : "Sem favoritos",
- "Upload (max. %s)" : "Envio (máx. %s)",
"Accept" : "Aceitar",
"Reject" : "Rejeitar",
"Incoming ownership transfer from {user}" : "Transferência de propriedade recebida de {user}",
@@ -258,6 +257,7 @@ OC.L10N.register(
"Upload file" : "Enviar ficheiro",
"Not favorited" : "Não favorito",
"An error occurred while trying to update the tags" : "Ocorreu um erro ao tentar atualizar as etiquetas",
+ "Upload (max. %s)" : "Envio (máx. %s)",
"{fileCount} files and {folderCount} folders" : "{fileCount} ficheiros e {folderCount} pastas",
"Personal Files" : "Ficheiros pessoais",
"Text file" : "Ficheiro de Texto",
diff --git a/apps/files/l10n/pt_PT.json b/apps/files/l10n/pt_PT.json
index fbfd1f8b17e..c4440430255 100644
--- a/apps/files/l10n/pt_PT.json
+++ b/apps/files/l10n/pt_PT.json
@@ -45,7 +45,6 @@
"Invalid folder path" : "Caminho da pasta inválido",
"Folder not found" : "Pasta não encontrada",
"No favorites" : "Sem favoritos",
- "Upload (max. %s)" : "Envio (máx. %s)",
"Accept" : "Aceitar",
"Reject" : "Rejeitar",
"Incoming ownership transfer from {user}" : "Transferência de propriedade recebida de {user}",
@@ -256,6 +255,7 @@
"Upload file" : "Enviar ficheiro",
"Not favorited" : "Não favorito",
"An error occurred while trying to update the tags" : "Ocorreu um erro ao tentar atualizar as etiquetas",
+ "Upload (max. %s)" : "Envio (máx. %s)",
"{fileCount} files and {folderCount} folders" : "{fileCount} ficheiros e {folderCount} pastas",
"Personal Files" : "Ficheiros pessoais",
"Text file" : "Ficheiro de Texto",
diff --git a/apps/files/l10n/ro.js b/apps/files/l10n/ro.js
index e9a3ad15038..af3e0c15499 100644
--- a/apps/files/l10n/ro.js
+++ b/apps/files/l10n/ro.js
@@ -43,7 +43,6 @@ OC.L10N.register(
"A file or folder has been <strong>changed</strong>" : "Un nou fișier sau dosar a fost <strong>modificat</strong>",
"A favorite file or folder has been <strong>changed</strong>" : "Un fișier sau dosar favorit a fost <strong>schimbat</strong>",
"No favorites" : "Fără favorite",
- "Upload (max. %s)" : "Încarcă (max. %s)",
"Accept" : "Accept",
"Reject" : "Respinge",
"Incoming ownership transfer from {user}" : "Se transferă proprietatea de la {user}",
@@ -269,6 +268,7 @@ OC.L10N.register(
"Upload file" : "Încarcă fișier",
"Not favorited" : "Scoate de la favorite",
"An error occurred while trying to update the tags" : "A apărut o eroare în timpul actualizării etichetelor",
+ "Upload (max. %s)" : "Încarcă (max. %s)",
"Storage informations" : "Informații despre stocare",
"Go to the previous folder" : "Salt la folderul anterior",
"Open the files app settings" : "Deschide setările aplicației Fișiere",
diff --git a/apps/files/l10n/ro.json b/apps/files/l10n/ro.json
index d724774b53d..dd45db7a848 100644
--- a/apps/files/l10n/ro.json
+++ b/apps/files/l10n/ro.json
@@ -41,7 +41,6 @@
"A file or folder has been <strong>changed</strong>" : "Un nou fișier sau dosar a fost <strong>modificat</strong>",
"A favorite file or folder has been <strong>changed</strong>" : "Un fișier sau dosar favorit a fost <strong>schimbat</strong>",
"No favorites" : "Fără favorite",
- "Upload (max. %s)" : "Încarcă (max. %s)",
"Accept" : "Accept",
"Reject" : "Respinge",
"Incoming ownership transfer from {user}" : "Se transferă proprietatea de la {user}",
@@ -267,6 +266,7 @@
"Upload file" : "Încarcă fișier",
"Not favorited" : "Scoate de la favorite",
"An error occurred while trying to update the tags" : "A apărut o eroare în timpul actualizării etichetelor",
+ "Upload (max. %s)" : "Încarcă (max. %s)",
"Storage informations" : "Informații despre stocare",
"Go to the previous folder" : "Salt la folderul anterior",
"Open the files app settings" : "Deschide setările aplicației Fișiere",
diff --git a/apps/files/l10n/ru.js b/apps/files/l10n/ru.js
index 19a5884ab39..cc89e83849f 100644
--- a/apps/files/l10n/ru.js
+++ b/apps/files/l10n/ru.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"Favorite files" : "Избранные файлы",
"No favorites" : "Нет избранного",
"More favorites" : "Больше избранного",
- "Upload (max. %s)" : "Загрузка (максимум %s)",
"Accept" : "Принять",
"Reject" : "Отклонить",
"Incoming ownership transfer from {user}" : "Запрос передачи владения от пользователя {user}",
@@ -432,6 +431,7 @@ OC.L10N.register(
"Upload file" : "Загрузить файл",
"Not favorited" : "Не избранное",
"An error occurred while trying to update the tags" : "Во время обновления тегов возникла ошибка",
+ "Upload (max. %s)" : "Загрузка (максимум %s)",
"You don't have permission to upload or create files here." : "У вас нет разрешения на загрузку или создание файлов здесь.",
"Storage informations" : "Сведения о хранилище",
"Choose file" : "Выберите файл",
diff --git a/apps/files/l10n/ru.json b/apps/files/l10n/ru.json
index a6f6a5d1f86..33e7f77e149 100644
--- a/apps/files/l10n/ru.json
+++ b/apps/files/l10n/ru.json
@@ -52,7 +52,6 @@
"Favorite files" : "Избранные файлы",
"No favorites" : "Нет избранного",
"More favorites" : "Больше избранного",
- "Upload (max. %s)" : "Загрузка (максимум %s)",
"Accept" : "Принять",
"Reject" : "Отклонить",
"Incoming ownership transfer from {user}" : "Запрос передачи владения от пользователя {user}",
@@ -430,6 +429,7 @@
"Upload file" : "Загрузить файл",
"Not favorited" : "Не избранное",
"An error occurred while trying to update the tags" : "Во время обновления тегов возникла ошибка",
+ "Upload (max. %s)" : "Загрузка (максимум %s)",
"You don't have permission to upload or create files here." : "У вас нет разрешения на загрузку или создание файлов здесь.",
"Storage informations" : "Сведения о хранилище",
"Choose file" : "Выберите файл",
diff --git a/apps/files/l10n/sc.js b/apps/files/l10n/sc.js
index c069340f269..506fa00892b 100644
--- a/apps/files/l10n/sc.js
+++ b/apps/files/l10n/sc.js
@@ -42,7 +42,6 @@ OC.L10N.register(
"Files" : "Archìvios",
"A file or folder has been <strong>changed</strong>" : "Ant <strong>cambiadu</strong> un'archìviu o una cartella",
"A favorite file or folder has been <strong>changed</strong>" : "Ant <strong>cambiadu</strong>un'archìviu o una cartella preferida",
- "Upload (max. %s)" : "Càrriga (max. %s)",
"Accept" : "Atzeta",
"Reject" : "Refuda",
"Incoming ownership transfer from {user}" : "Tràmuda de propriedade in intrada dae {user}",
@@ -280,6 +279,7 @@ OC.L10N.register(
"Upload file" : "Càrriga archìviu",
"Not favorited" : "Non preferidu",
"An error occurred while trying to update the tags" : "B'at àpidu un'errore proende a agiornare is etichetas",
+ "Upload (max. %s)" : "Càrriga (max. %s)",
"Storage informations" : "Informatziones de s'archiviatzione",
"Choose file" : "Sèbera un'archìviu",
"Go to the previous folder" : "Bae a sa cartella pretzedente",
diff --git a/apps/files/l10n/sc.json b/apps/files/l10n/sc.json
index 3966e3006c1..825441d33f2 100644
--- a/apps/files/l10n/sc.json
+++ b/apps/files/l10n/sc.json
@@ -40,7 +40,6 @@
"Files" : "Archìvios",
"A file or folder has been <strong>changed</strong>" : "Ant <strong>cambiadu</strong> un'archìviu o una cartella",
"A favorite file or folder has been <strong>changed</strong>" : "Ant <strong>cambiadu</strong>un'archìviu o una cartella preferida",
- "Upload (max. %s)" : "Càrriga (max. %s)",
"Accept" : "Atzeta",
"Reject" : "Refuda",
"Incoming ownership transfer from {user}" : "Tràmuda de propriedade in intrada dae {user}",
@@ -278,6 +277,7 @@
"Upload file" : "Càrriga archìviu",
"Not favorited" : "Non preferidu",
"An error occurred while trying to update the tags" : "B'at àpidu un'errore proende a agiornare is etichetas",
+ "Upload (max. %s)" : "Càrriga (max. %s)",
"Storage informations" : "Informatziones de s'archiviatzione",
"Choose file" : "Sèbera un'archìviu",
"Go to the previous folder" : "Bae a sa cartella pretzedente",
diff --git a/apps/files/l10n/sk.js b/apps/files/l10n/sk.js
index 96931816ccb..d6a227a745e 100644
--- a/apps/files/l10n/sk.js
+++ b/apps/files/l10n/sk.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"Favorite files" : "Obľúbené súbory",
"No favorites" : "Žiadne obľúbené",
"More favorites" : "Viac obľúbených",
- "Upload (max. %s)" : "Nahrať (max. %s)",
"Accept" : "Prijať",
"Reject" : "Odmietnuť",
"Incoming ownership transfer from {user}" : "Prichádzajúci prevod vlastníctva od {user}",
@@ -432,6 +431,7 @@ OC.L10N.register(
"Upload file" : "Nahrať súbor",
"Not favorited" : "Nie je obľúbený",
"An error occurred while trying to update the tags" : "Pri pokuse o aktualizáciu štítkov došlo k chybe",
+ "Upload (max. %s)" : "Nahrať (max. %s)",
"You don't have permission to upload or create files here." : "Nemáte oprávnenie nahrávať alebo vytvárať súbory v tomto mieste.",
"Storage informations" : "Úložiskové informácie",
"Choose file" : "Vybrať súbor",
diff --git a/apps/files/l10n/sk.json b/apps/files/l10n/sk.json
index c7959344aeb..4f18cb54092 100644
--- a/apps/files/l10n/sk.json
+++ b/apps/files/l10n/sk.json
@@ -52,7 +52,6 @@
"Favorite files" : "Obľúbené súbory",
"No favorites" : "Žiadne obľúbené",
"More favorites" : "Viac obľúbených",
- "Upload (max. %s)" : "Nahrať (max. %s)",
"Accept" : "Prijať",
"Reject" : "Odmietnuť",
"Incoming ownership transfer from {user}" : "Prichádzajúci prevod vlastníctva od {user}",
@@ -430,6 +429,7 @@
"Upload file" : "Nahrať súbor",
"Not favorited" : "Nie je obľúbený",
"An error occurred while trying to update the tags" : "Pri pokuse o aktualizáciu štítkov došlo k chybe",
+ "Upload (max. %s)" : "Nahrať (max. %s)",
"You don't have permission to upload or create files here." : "Nemáte oprávnenie nahrávať alebo vytvárať súbory v tomto mieste.",
"Storage informations" : "Úložiskové informácie",
"Choose file" : "Vybrať súbor",
diff --git a/apps/files/l10n/sl.js b/apps/files/l10n/sl.js
index 8d0f4ad1972..a2c227228db 100644
--- a/apps/files/l10n/sl.js
+++ b/apps/files/l10n/sl.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"Favorite files" : "Priljubljene datoteke",
"No favorites" : "Ni priljubljenih datotek",
"More favorites" : "Več priljubljenih",
- "Upload (max. %s)" : "Pošiljanje (omejitev %s)",
"Accept" : "Sprejmi",
"Reject" : "Zavrni",
"Incoming ownership transfer from {user}" : "Vpisana je zahteva za prenos lastništva uporabnika {user}",
@@ -435,6 +434,7 @@ OC.L10N.register(
"Upload file" : "Pošlji datoteko",
"Not favorited" : "Ni priljubljeno",
"An error occurred while trying to update the tags" : "Prišlo je do napake med posodabljanjem oznak",
+ "Upload (max. %s)" : "Pošiljanje (omejitev %s)",
"You don't have permission to upload or create files here." : "Nimate pravic za nalaganje ali ustvarjanje datotek na tem mestu.",
"Storage informations" : "Podrobnosti shrambe",
"Choose file" : "Izbor datotek",
diff --git a/apps/files/l10n/sl.json b/apps/files/l10n/sl.json
index 579b32d200f..0b515cbb493 100644
--- a/apps/files/l10n/sl.json
+++ b/apps/files/l10n/sl.json
@@ -52,7 +52,6 @@
"Favorite files" : "Priljubljene datoteke",
"No favorites" : "Ni priljubljenih datotek",
"More favorites" : "Več priljubljenih",
- "Upload (max. %s)" : "Pošiljanje (omejitev %s)",
"Accept" : "Sprejmi",
"Reject" : "Zavrni",
"Incoming ownership transfer from {user}" : "Vpisana je zahteva za prenos lastništva uporabnika {user}",
@@ -433,6 +432,7 @@
"Upload file" : "Pošlji datoteko",
"Not favorited" : "Ni priljubljeno",
"An error occurred while trying to update the tags" : "Prišlo je do napake med posodabljanjem oznak",
+ "Upload (max. %s)" : "Pošiljanje (omejitev %s)",
"You don't have permission to upload or create files here." : "Nimate pravic za nalaganje ali ustvarjanje datotek na tem mestu.",
"Storage informations" : "Podrobnosti shrambe",
"Choose file" : "Izbor datotek",
diff --git a/apps/files/l10n/sr.js b/apps/files/l10n/sr.js
index 472eed0ffb4..a0afae068cc 100644
--- a/apps/files/l10n/sr.js
+++ b/apps/files/l10n/sr.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"Favorite files" : "Омиљени фајлови",
"No favorites" : "Нема омиљених",
"More favorites" : "Још омиљених",
- "Upload (max. %s)" : "Отпремање (макс. %s)",
"Accept" : "Прихвати",
"Reject" : "Одбаци",
"Incoming ownership transfer from {user}" : "Надолазећи пренос власништва од корисника {user}",
@@ -71,6 +70,7 @@ OC.L10N.register(
"Transferred from %1$s on %2$s" : "Пренесено са %1$s на %2$s",
"Files compatibility" : "Компатибилност фајлова",
"Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Дозвољава се ограничавање имена фајлова тако да сви клијенти могу да их синхронизују. Подразумевано се дозвољавају сва имена фајлова која су исправна на POSIX системима (нпр. Linux или macOS).",
+ "After enabling the Windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Када се укључе Windows компатибилна имена фајлова, постојећи фајлови се више неће моћи мењати, али њихов власник може да им промени име на исправно ново име.",
"It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "Фајлови такође могу аутоматски да се мигрирају након укључивања овог подешавања, молимо вас да погледате документацију у вези са occ командом.",
"Enforce Windows compatibility" : "Форсирај Windows компатибилност",
"This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "Ово ће да блокира имена фајлова која су неисправна на Windows системима, као што су она која користе резервисана имена или специјалне карактере. Али ово неће форсирати компатибилност разликовања малих и великих слова.",
@@ -97,6 +97,11 @@ OC.L10N.register(
"Renamed \"{oldName}\" to \"{newName}\"" : "„{oldName}” је промењено на „{newName}”",
"Rename file" : "Промени назив фајла",
"Folder" : "Фасцикла",
+ "Unknown file type" : "Непознат тип фајла",
+ "{ext} image" : "{ext} слика",
+ "{ext} video" : "{ext} видео",
+ "{ext} audio" : "{ext} аудио",
+ "{ext} text" : "{ext} текст",
"Pending" : "На чекању",
"Unknown date" : "Непознат датум",
"Clear filter" : "Очисти филтер",
@@ -107,6 +112,7 @@ OC.L10N.register(
"Total rows summary" : "Резиме укупног броја редова",
"Toggle selection for all files and folders" : "Укљ./искљ. избор за све фајлове и фолдере",
"Name" : "Назив",
+ "File type" : "Тип фајла",
"Size" : "Величина",
"\"{displayName}\" failed on some elements" : "„{displayName}” није успело на неким елементима",
"\"{displayName}\" batch action executed successfully" : "Пакетна акција „{displayName}” се успешно извршила",
@@ -185,6 +191,7 @@ OC.L10N.register(
"Sort favorites first" : "Сортирај прво омиљене",
"Sort folders before files" : "Поређај фолдере испред фајлова",
"Show hidden files" : "Прикажи скривене фајлове",
+ "Show file type column" : "Прикажи колону са типом фајла",
"Crop image previews" : "Опсецање прегледа слика",
"Enable the grid view" : "Укључи приказ мреже",
"Enable folder tree" : "Укључи стабло фолдера",
@@ -434,6 +441,7 @@ OC.L10N.register(
"Upload file" : "Отпреми фајл",
"Not favorited" : "Није омиљено",
"An error occurred while trying to update the tags" : "Дошло је до грешке при покушају ажурирања ознака",
+ "Upload (max. %s)" : "Отпремање (макс. %s)",
"You don't have permission to upload or create files here." : "Немате дозволу да овде отпремите или креирате фајлове.",
"Storage informations" : "Информације о складишту",
"Choose file" : "Изаберите фајл",
diff --git a/apps/files/l10n/sr.json b/apps/files/l10n/sr.json
index 8d9da0774b6..4e7357d6946 100644
--- a/apps/files/l10n/sr.json
+++ b/apps/files/l10n/sr.json
@@ -52,7 +52,6 @@
"Favorite files" : "Омиљени фајлови",
"No favorites" : "Нема омиљених",
"More favorites" : "Још омиљених",
- "Upload (max. %s)" : "Отпремање (макс. %s)",
"Accept" : "Прихвати",
"Reject" : "Одбаци",
"Incoming ownership transfer from {user}" : "Надолазећи пренос власништва од корисника {user}",
@@ -69,6 +68,7 @@
"Transferred from %1$s on %2$s" : "Пренесено са %1$s на %2$s",
"Files compatibility" : "Компатибилност фајлова",
"Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Дозвољава се ограничавање имена фајлова тако да сви клијенти могу да их синхронизују. Подразумевано се дозвољавају сва имена фајлова која су исправна на POSIX системима (нпр. Linux или macOS).",
+ "After enabling the Windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Када се укључе Windows компатибилна имена фајлова, постојећи фајлови се више неће моћи мењати, али њихов власник може да им промени име на исправно ново име.",
"It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "Фајлови такође могу аутоматски да се мигрирају након укључивања овог подешавања, молимо вас да погледате документацију у вези са occ командом.",
"Enforce Windows compatibility" : "Форсирај Windows компатибилност",
"This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "Ово ће да блокира имена фајлова која су неисправна на Windows системима, као што су она која користе резервисана имена или специјалне карактере. Али ово неће форсирати компатибилност разликовања малих и великих слова.",
@@ -95,6 +95,11 @@
"Renamed \"{oldName}\" to \"{newName}\"" : "„{oldName}” је промењено на „{newName}”",
"Rename file" : "Промени назив фајла",
"Folder" : "Фасцикла",
+ "Unknown file type" : "Непознат тип фајла",
+ "{ext} image" : "{ext} слика",
+ "{ext} video" : "{ext} видео",
+ "{ext} audio" : "{ext} аудио",
+ "{ext} text" : "{ext} текст",
"Pending" : "На чекању",
"Unknown date" : "Непознат датум",
"Clear filter" : "Очисти филтер",
@@ -105,6 +110,7 @@
"Total rows summary" : "Резиме укупног броја редова",
"Toggle selection for all files and folders" : "Укљ./искљ. избор за све фајлове и фолдере",
"Name" : "Назив",
+ "File type" : "Тип фајла",
"Size" : "Величина",
"\"{displayName}\" failed on some elements" : "„{displayName}” није успело на неким елементима",
"\"{displayName}\" batch action executed successfully" : "Пакетна акција „{displayName}” се успешно извршила",
@@ -183,6 +189,7 @@
"Sort favorites first" : "Сортирај прво омиљене",
"Sort folders before files" : "Поређај фолдере испред фајлова",
"Show hidden files" : "Прикажи скривене фајлове",
+ "Show file type column" : "Прикажи колону са типом фајла",
"Crop image previews" : "Опсецање прегледа слика",
"Enable the grid view" : "Укључи приказ мреже",
"Enable folder tree" : "Укључи стабло фолдера",
@@ -432,6 +439,7 @@
"Upload file" : "Отпреми фајл",
"Not favorited" : "Није омиљено",
"An error occurred while trying to update the tags" : "Дошло је до грешке при покушају ажурирања ознака",
+ "Upload (max. %s)" : "Отпремање (макс. %s)",
"You don't have permission to upload or create files here." : "Немате дозволу да овде отпремите или креирате фајлове.",
"Storage informations" : "Информације о складишту",
"Choose file" : "Изаберите фајл",
diff --git a/apps/files/l10n/sv.js b/apps/files/l10n/sv.js
index ad6b2e96bf4..7953398ec9a 100644
--- a/apps/files/l10n/sv.js
+++ b/apps/files/l10n/sv.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"Favorite files" : "Favoritfiler",
"No favorites" : "Inga favoriter",
"More favorites" : "Fler favoriter",
- "Upload (max. %s)" : "Ladda upp (högst %s)",
"Accept" : "Acceptera",
"Reject" : "Avvisa",
"Incoming ownership transfer from {user}" : "Inkommande ägaröverföring från {user}",
@@ -442,6 +441,7 @@ OC.L10N.register(
"Upload file" : "Ladda upp fil",
"Not favorited" : "Inte favoriserade",
"An error occurred while trying to update the tags" : "Fel vid uppdatering av taggarna",
+ "Upload (max. %s)" : "Ladda upp (högst %s)",
"You don't have permission to upload or create files here." : "Du har inte behörighet att ladda upp eller skapa filer här.",
"Storage informations" : "Lagringsinformation",
"Choose file" : "Välj fil",
diff --git a/apps/files/l10n/sv.json b/apps/files/l10n/sv.json
index 514dd77aab7..dc764721f91 100644
--- a/apps/files/l10n/sv.json
+++ b/apps/files/l10n/sv.json
@@ -52,7 +52,6 @@
"Favorite files" : "Favoritfiler",
"No favorites" : "Inga favoriter",
"More favorites" : "Fler favoriter",
- "Upload (max. %s)" : "Ladda upp (högst %s)",
"Accept" : "Acceptera",
"Reject" : "Avvisa",
"Incoming ownership transfer from {user}" : "Inkommande ägaröverföring från {user}",
@@ -440,6 +439,7 @@
"Upload file" : "Ladda upp fil",
"Not favorited" : "Inte favoriserade",
"An error occurred while trying to update the tags" : "Fel vid uppdatering av taggarna",
+ "Upload (max. %s)" : "Ladda upp (högst %s)",
"You don't have permission to upload or create files here." : "Du har inte behörighet att ladda upp eller skapa filer här.",
"Storage informations" : "Lagringsinformation",
"Choose file" : "Välj fil",
diff --git a/apps/files/l10n/th.js b/apps/files/l10n/th.js
index c6bef3b89d3..297a116b71e 100644
--- a/apps/files/l10n/th.js
+++ b/apps/files/l10n/th.js
@@ -44,7 +44,6 @@ OC.L10N.register(
"A file or folder has been <strong>changed</strong>" : "มีไฟล์หรือโฟลเดอร์ที่มีการ<strong>เปลี่ยนแปลง</strong>",
"A favorite file or folder has been <strong>changed</strong>" : "มีไฟล์หรือโฟลเดอร์ในรายการโปรดที่มีการ<strong>เปลี่ยนแปลง</strong>",
"No favorites" : "ยังไม่มีรายการโปรด",
- "Upload (max. %s)" : "อัปโหลด (สูงสุด %s)",
"Accept" : "ยอมรับ",
"Reject" : "ปฏิเสธ",
"Incoming ownership transfer from {user}" : "คำขอการโอนย้ายความเป็นเจ้าของจาก {user}",
@@ -238,6 +237,7 @@ OC.L10N.register(
"Upload file" : "อัปโหลดไฟล์",
"Not favorited" : "ไม่ได้เป็นรายการโปรด",
"An error occurred while trying to update the tags" : "เกิดข้อผิดพลาดขณะกำลังพยายามอัปเดตแท็ก",
+ "Upload (max. %s)" : "อัปโหลด (สูงสุด %s)",
"Storage informations" : "ข้อมูลพื้นที่จัดเก็บ",
"Open the files app settings" : "เปิดการตั้งค่าแอปไฟล์",
"Unable to change the favourite state of the file" : "ไม่สามารถเปลี่ยนสถานะรายการโปรดของไฟล์",
diff --git a/apps/files/l10n/th.json b/apps/files/l10n/th.json
index 08b39c447ec..6cdaaf5ebf0 100644
--- a/apps/files/l10n/th.json
+++ b/apps/files/l10n/th.json
@@ -42,7 +42,6 @@
"A file or folder has been <strong>changed</strong>" : "มีไฟล์หรือโฟลเดอร์ที่มีการ<strong>เปลี่ยนแปลง</strong>",
"A favorite file or folder has been <strong>changed</strong>" : "มีไฟล์หรือโฟลเดอร์ในรายการโปรดที่มีการ<strong>เปลี่ยนแปลง</strong>",
"No favorites" : "ยังไม่มีรายการโปรด",
- "Upload (max. %s)" : "อัปโหลด (สูงสุด %s)",
"Accept" : "ยอมรับ",
"Reject" : "ปฏิเสธ",
"Incoming ownership transfer from {user}" : "คำขอการโอนย้ายความเป็นเจ้าของจาก {user}",
@@ -236,6 +235,7 @@
"Upload file" : "อัปโหลดไฟล์",
"Not favorited" : "ไม่ได้เป็นรายการโปรด",
"An error occurred while trying to update the tags" : "เกิดข้อผิดพลาดขณะกำลังพยายามอัปเดตแท็ก",
+ "Upload (max. %s)" : "อัปโหลด (สูงสุด %s)",
"Storage informations" : "ข้อมูลพื้นที่จัดเก็บ",
"Open the files app settings" : "เปิดการตั้งค่าแอปไฟล์",
"Unable to change the favourite state of the file" : "ไม่สามารถเปลี่ยนสถานะรายการโปรดของไฟล์",
diff --git a/apps/files/l10n/tr.js b/apps/files/l10n/tr.js
index caa474b97b0..a6b72ef1f00 100644
--- a/apps/files/l10n/tr.js
+++ b/apps/files/l10n/tr.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"Favorite files" : "Sık kullanılan dosyalar",
"No favorites" : "Sık kullanılan bir öge yok",
"More favorites" : "Diğer sık kullanılanlar",
- "Upload (max. %s)" : "Yükle (en büyük: %s)",
"Accept" : "Kabul et",
"Reject" : "Reddet",
"Incoming ownership transfer from {user}" : "{user} kullanıcısından gelen sahiplik aktarımı ",
@@ -432,6 +431,7 @@ OC.L10N.register(
"Upload file" : "Dosya yükle",
"Not favorited" : "Sık kullanılanlarda değil",
"An error occurred while trying to update the tags" : "Etiketler güncellenirken bir sorun çıktı",
+ "Upload (max. %s)" : "Yükle (en büyük: %s)",
"You don't have permission to upload or create files here." : "Buraya dosya yükleme ya da ekleme izniniz yok.",
"Storage informations" : "Depolama bilgileri",
"Choose file" : "Dosya seçin",
diff --git a/apps/files/l10n/tr.json b/apps/files/l10n/tr.json
index 61e693c225d..ef22ca6dc3c 100644
--- a/apps/files/l10n/tr.json
+++ b/apps/files/l10n/tr.json
@@ -52,7 +52,6 @@
"Favorite files" : "Sık kullanılan dosyalar",
"No favorites" : "Sık kullanılan bir öge yok",
"More favorites" : "Diğer sık kullanılanlar",
- "Upload (max. %s)" : "Yükle (en büyük: %s)",
"Accept" : "Kabul et",
"Reject" : "Reddet",
"Incoming ownership transfer from {user}" : "{user} kullanıcısından gelen sahiplik aktarımı ",
@@ -430,6 +429,7 @@
"Upload file" : "Dosya yükle",
"Not favorited" : "Sık kullanılanlarda değil",
"An error occurred while trying to update the tags" : "Etiketler güncellenirken bir sorun çıktı",
+ "Upload (max. %s)" : "Yükle (en büyük: %s)",
"You don't have permission to upload or create files here." : "Buraya dosya yükleme ya da ekleme izniniz yok.",
"Storage informations" : "Depolama bilgileri",
"Choose file" : "Dosya seçin",
diff --git a/apps/files/l10n/ug.js b/apps/files/l10n/ug.js
index aea2933b5e4..8f002b2634b 100644
--- a/apps/files/l10n/ug.js
+++ b/apps/files/l10n/ug.js
@@ -46,7 +46,6 @@ OC.L10N.register(
"Failed to authorize" : "ھوقۇق بېرىش مەغلۇب بولدى",
"Invalid folder path" : "ھۆججەت قىسقۇچ يولى ئىناۋەتسىز",
"Folder not found" : "ھۆججەت قىسقۇچ تېپىلمىدى",
- "Upload (max. %s)" : "يۈكلەش (max.% S)",
"Accept" : "قوبۇل قىلىڭ",
"Reject" : "رەت قىلىش",
"Incoming ownership transfer from {user}" : "{user} دىن كەلگەن ئىگىدارلىق ھوقۇقىنى يۆتكەش",
@@ -362,6 +361,7 @@ OC.L10N.register(
"Upload file" : "Upload file",
"Not favorited" : "ياقتۇرمايدۇ",
"An error occurred while trying to update the tags" : "خەتكۈچلەرنى يېڭىلىماقچى بولغاندا خاتالىق كۆرۈلدى",
+ "Upload (max. %s)" : "يۈكلەش (max.% S)",
"Storage informations" : "ساقلاش ئۇچۇرى",
"Choose file" : "ھۆججەت تاللاڭ",
"Go to the previous folder" : "ئالدىنقى قىسقۇچقا بېرىڭ",
diff --git a/apps/files/l10n/ug.json b/apps/files/l10n/ug.json
index f524c4e77be..49432a5ae81 100644
--- a/apps/files/l10n/ug.json
+++ b/apps/files/l10n/ug.json
@@ -44,7 +44,6 @@
"Failed to authorize" : "ھوقۇق بېرىش مەغلۇب بولدى",
"Invalid folder path" : "ھۆججەت قىسقۇچ يولى ئىناۋەتسىز",
"Folder not found" : "ھۆججەت قىسقۇچ تېپىلمىدى",
- "Upload (max. %s)" : "يۈكلەش (max.% S)",
"Accept" : "قوبۇل قىلىڭ",
"Reject" : "رەت قىلىش",
"Incoming ownership transfer from {user}" : "{user} دىن كەلگەن ئىگىدارلىق ھوقۇقىنى يۆتكەش",
@@ -360,6 +359,7 @@
"Upload file" : "Upload file",
"Not favorited" : "ياقتۇرمايدۇ",
"An error occurred while trying to update the tags" : "خەتكۈچلەرنى يېڭىلىماقچى بولغاندا خاتالىق كۆرۈلدى",
+ "Upload (max. %s)" : "يۈكلەش (max.% S)",
"Storage informations" : "ساقلاش ئۇچۇرى",
"Choose file" : "ھۆججەت تاللاڭ",
"Go to the previous folder" : "ئالدىنقى قىسقۇچقا بېرىڭ",
diff --git a/apps/files/l10n/uk.js b/apps/files/l10n/uk.js
index bfb02d10ecc..eaae1276272 100644
--- a/apps/files/l10n/uk.js
+++ b/apps/files/l10n/uk.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"Favorite files" : "Файли із зіркою",
"No favorites" : "Немає улюблених",
"More favorites" : "Ще файли із зіркою",
- "Upload (max. %s)" : "Завантаження (макс. %s)",
"Accept" : "Прийняти",
"Reject" : "Відхилити",
"Incoming ownership transfer from {user}" : "Запит від користувача {user} на передавання прав власника",
@@ -433,6 +432,7 @@ OC.L10N.register(
"Upload file" : "Завантажити файл",
"Not favorited" : "Без зірочки",
"An error occurred while trying to update the tags" : "Виникла помилка при спробі оновити мітки",
+ "Upload (max. %s)" : "Завантаження (макс. %s)",
"You don't have permission to upload or create files here." : "У вас відсутні дозволи для завантаження або створення файлів в цьому каталозі.",
"Storage informations" : "Інформація про сховище",
"Choose file" : "Вибрати файл",
diff --git a/apps/files/l10n/uk.json b/apps/files/l10n/uk.json
index cdde9673fb9..1ecace7ac24 100644
--- a/apps/files/l10n/uk.json
+++ b/apps/files/l10n/uk.json
@@ -52,7 +52,6 @@
"Favorite files" : "Файли із зіркою",
"No favorites" : "Немає улюблених",
"More favorites" : "Ще файли із зіркою",
- "Upload (max. %s)" : "Завантаження (макс. %s)",
"Accept" : "Прийняти",
"Reject" : "Відхилити",
"Incoming ownership transfer from {user}" : "Запит від користувача {user} на передавання прав власника",
@@ -431,6 +430,7 @@
"Upload file" : "Завантажити файл",
"Not favorited" : "Без зірочки",
"An error occurred while trying to update the tags" : "Виникла помилка при спробі оновити мітки",
+ "Upload (max. %s)" : "Завантаження (макс. %s)",
"You don't have permission to upload or create files here." : "У вас відсутні дозволи для завантаження або створення файлів в цьому каталозі.",
"Storage informations" : "Інформація про сховище",
"Choose file" : "Вибрати файл",
diff --git a/apps/files/l10n/vi.js b/apps/files/l10n/vi.js
index a8e39aa2527..e1b8b9c799a 100644
--- a/apps/files/l10n/vi.js
+++ b/apps/files/l10n/vi.js
@@ -47,7 +47,6 @@ OC.L10N.register(
"Invalid folder path" : "Đường dẫn tới thư mục không hợp lệ",
"Folder not found" : "Không thể tìm thấy thư mục",
"No favorites" : "Không có mục ưa thích nào",
- "Upload (max. %s)" : "Tải lên (tối đa %s)",
"Accept" : "Đồng ý",
"Reject" : "Từ chối",
"Incoming ownership transfer from {user}" : "Có yêu cầu chuyển quyền sở hữu từ {user} ",
@@ -360,6 +359,7 @@ OC.L10N.register(
"Upload file" : "Tải lên tập tin",
"Not favorited" : "Không được yêu thích",
"An error occurred while trying to update the tags" : "Đã xảy ra lỗi khi cố gắng cập nhật tags",
+ "Upload (max. %s)" : "Tải lên (tối đa %s)",
"Storage informations" : "Thông tin lưu trữ",
"Choose file" : "Chọn tập tin",
"Go to the previous folder" : "Chuyển đến thư mục trước đó",
diff --git a/apps/files/l10n/vi.json b/apps/files/l10n/vi.json
index 272a1e3eebc..6aa381cb647 100644
--- a/apps/files/l10n/vi.json
+++ b/apps/files/l10n/vi.json
@@ -45,7 +45,6 @@
"Invalid folder path" : "Đường dẫn tới thư mục không hợp lệ",
"Folder not found" : "Không thể tìm thấy thư mục",
"No favorites" : "Không có mục ưa thích nào",
- "Upload (max. %s)" : "Tải lên (tối đa %s)",
"Accept" : "Đồng ý",
"Reject" : "Từ chối",
"Incoming ownership transfer from {user}" : "Có yêu cầu chuyển quyền sở hữu từ {user} ",
@@ -358,6 +357,7 @@
"Upload file" : "Tải lên tập tin",
"Not favorited" : "Không được yêu thích",
"An error occurred while trying to update the tags" : "Đã xảy ra lỗi khi cố gắng cập nhật tags",
+ "Upload (max. %s)" : "Tải lên (tối đa %s)",
"Storage informations" : "Thông tin lưu trữ",
"Choose file" : "Chọn tập tin",
"Go to the previous folder" : "Chuyển đến thư mục trước đó",
diff --git a/apps/files/l10n/zh_CN.js b/apps/files/l10n/zh_CN.js
index b0cc1433457..6b838b18d59 100644
--- a/apps/files/l10n/zh_CN.js
+++ b/apps/files/l10n/zh_CN.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"Favorite files" : "收藏的文件",
"No favorites" : "无收藏",
"More favorites" : "更多收藏",
- "Upload (max. %s)" : "上传 (最大 %s)",
"Accept" : "接受",
"Reject" : "拒绝",
"Incoming ownership transfer from {user}" : "来自 {user} 的所有权转移",
@@ -442,6 +441,7 @@ OC.L10N.register(
"Upload file" : "上传文件",
"Not favorited" : "未收藏",
"An error occurred while trying to update the tags" : "更新标签时出错",
+ "Upload (max. %s)" : "上传 (最大 %s)",
"You don't have permission to upload or create files here." : "您没有在此处上传或创建文件的权限。",
"Storage informations" : "存储信息",
"Choose file" : "选择文件",
diff --git a/apps/files/l10n/zh_CN.json b/apps/files/l10n/zh_CN.json
index e15d9f5b180..3bc8e7fa416 100644
--- a/apps/files/l10n/zh_CN.json
+++ b/apps/files/l10n/zh_CN.json
@@ -52,7 +52,6 @@
"Favorite files" : "收藏的文件",
"No favorites" : "无收藏",
"More favorites" : "更多收藏",
- "Upload (max. %s)" : "上传 (最大 %s)",
"Accept" : "接受",
"Reject" : "拒绝",
"Incoming ownership transfer from {user}" : "来自 {user} 的所有权转移",
@@ -440,6 +439,7 @@
"Upload file" : "上传文件",
"Not favorited" : "未收藏",
"An error occurred while trying to update the tags" : "更新标签时出错",
+ "Upload (max. %s)" : "上传 (最大 %s)",
"You don't have permission to upload or create files here." : "您没有在此处上传或创建文件的权限。",
"Storage informations" : "存储信息",
"Choose file" : "选择文件",
diff --git a/apps/files/l10n/zh_HK.js b/apps/files/l10n/zh_HK.js
index af981fd94cc..fc32992c566 100644
--- a/apps/files/l10n/zh_HK.js
+++ b/apps/files/l10n/zh_HK.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"Favorite files" : "最愛的檔案",
"No favorites" : "沒有最愛",
"More favorites" : "更多最愛",
- "Upload (max. %s)" : "上傳(上限 %s)",
"Accept" : "接受",
"Reject" : "拒絕",
"Incoming ownership transfer from {user}" : "來自 {user} 的擁有權轉移",
@@ -442,6 +441,7 @@ OC.L10N.register(
"Upload file" : "上傳檔案",
"Not favorited" : "未加入至最愛",
"An error occurred while trying to update the tags" : "更新標籤時發生錯誤",
+ "Upload (max. %s)" : "上傳(上限 %s)",
"You don't have permission to upload or create files here." : "您無權在此上傳或建立檔案。",
"Storage informations" : "儲存資訊",
"Choose file" : "選擇檔案",
diff --git a/apps/files/l10n/zh_HK.json b/apps/files/l10n/zh_HK.json
index e04500132ed..c54ce4b4700 100644
--- a/apps/files/l10n/zh_HK.json
+++ b/apps/files/l10n/zh_HK.json
@@ -52,7 +52,6 @@
"Favorite files" : "最愛的檔案",
"No favorites" : "沒有最愛",
"More favorites" : "更多最愛",
- "Upload (max. %s)" : "上傳(上限 %s)",
"Accept" : "接受",
"Reject" : "拒絕",
"Incoming ownership transfer from {user}" : "來自 {user} 的擁有權轉移",
@@ -440,6 +439,7 @@
"Upload file" : "上傳檔案",
"Not favorited" : "未加入至最愛",
"An error occurred while trying to update the tags" : "更新標籤時發生錯誤",
+ "Upload (max. %s)" : "上傳(上限 %s)",
"You don't have permission to upload or create files here." : "您無權在此上傳或建立檔案。",
"Storage informations" : "儲存資訊",
"Choose file" : "選擇檔案",
diff --git a/apps/files/l10n/zh_TW.js b/apps/files/l10n/zh_TW.js
index 4ff34d480e5..a398179eee4 100644
--- a/apps/files/l10n/zh_TW.js
+++ b/apps/files/l10n/zh_TW.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"Favorite files" : "收藏檔案",
"No favorites" : "沒有最愛",
"More favorites" : "更多收藏",
- "Upload (max. %s)" : "上傳(最多 %s)",
"Accept" : "接受",
"Reject" : "拒絕",
"Incoming ownership transfer from {user}" : "{user} 傳來的所有權轉移",
@@ -442,6 +441,7 @@ OC.L10N.register(
"Upload file" : "上傳檔案",
"Not favorited" : "未加入至喜愛",
"An error occurred while trying to update the tags" : "更新標籤時發生錯誤",
+ "Upload (max. %s)" : "上傳(最多 %s)",
"You don't have permission to upload or create files here." : "您無權在此上傳或建立檔案。",
"Storage informations" : "儲存空間資訊",
"Choose file" : "選擇檔案",
diff --git a/apps/files/l10n/zh_TW.json b/apps/files/l10n/zh_TW.json
index 0def7339d4d..bbe462c93aa 100644
--- a/apps/files/l10n/zh_TW.json
+++ b/apps/files/l10n/zh_TW.json
@@ -52,7 +52,6 @@
"Favorite files" : "收藏檔案",
"No favorites" : "沒有最愛",
"More favorites" : "更多收藏",
- "Upload (max. %s)" : "上傳(最多 %s)",
"Accept" : "接受",
"Reject" : "拒絕",
"Incoming ownership transfer from {user}" : "{user} 傳來的所有權轉移",
@@ -440,6 +439,7 @@
"Upload file" : "上傳檔案",
"Not favorited" : "未加入至喜愛",
"An error occurred while trying to update the tags" : "更新標籤時發生錯誤",
+ "Upload (max. %s)" : "上傳(最多 %s)",
"You don't have permission to upload or create files here." : "您無權在此上傳或建立檔案。",
"Storage informations" : "儲存空間資訊",
"Choose file" : "選擇檔案",
diff --git a/apps/files_external/tests/Auth/AuthMechanismTest.php b/apps/files_external/tests/Auth/AuthMechanismTest.php
index 682d2e1326f..d6279ea4f1f 100644
--- a/apps/files_external/tests/Auth/AuthMechanismTest.php
+++ b/apps/files_external/tests/Auth/AuthMechanismTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2020-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -13,7 +15,7 @@ use OCA\Files_External\Lib\StorageConfig;
class AuthMechanismTest extends \Test\TestCase {
public function testJsonSerialization(): void {
$mechanism = $this->getMockBuilder(AuthMechanism::class)
- ->setMethods(['jsonSerializeDefinition'])
+ ->onlyMethods(['jsonSerializeDefinition'])
->getMock();
$mechanism->expects($this->once())
->method('jsonSerializeDefinition')
@@ -26,7 +28,7 @@ class AuthMechanismTest extends \Test\TestCase {
$this->assertEquals('scheme', $json['scheme']);
}
- public function validateStorageProvider() {
+ public static function validateStorageProvider(): array {
return [
[true, 'scheme', true],
[false, 'scheme', false],
@@ -38,9 +40,9 @@ class AuthMechanismTest extends \Test\TestCase {
/**
* @dataProvider validateStorageProvider
*/
- public function testValidateStorage($expectedSuccess, $scheme, $definitionSuccess): void {
+ public function testValidateStorage(bool $expectedSuccess, string $scheme, bool $definitionSuccess): void {
$mechanism = $this->getMockBuilder(AuthMechanism::class)
- ->setMethods(['validateStorageDefinition'])
+ ->onlyMethods(['validateStorageDefinition'])
->getMock();
$mechanism->expects($this->atMost(1))
->method('validateStorageDefinition')
@@ -48,16 +50,12 @@ class AuthMechanismTest extends \Test\TestCase {
$mechanism->setScheme($scheme);
- $backend = $this->getMockBuilder(Backend::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $backend = $this->createMock(Backend::class);
$backend->expects($this->once())
->method('getAuthSchemes')
->willReturn(['scheme' => true, 'foobar' => true]);
- $storageConfig = $this->getMockBuilder(StorageConfig::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $storageConfig = $this->createMock(StorageConfig::class);
$storageConfig->expects($this->once())
->method('getBackend')
->willReturn($backend);
diff --git a/apps/files_external/tests/Auth/Password/GlobalAuth.php b/apps/files_external/tests/Auth/Password/GlobalAuthTest.php
index 998db198b53..02f15cb76c4 100644
--- a/apps/files_external/tests/Auth/Password/GlobalAuth.php
+++ b/apps/files_external/tests/Auth/Password/GlobalAuthTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -8,26 +10,16 @@ namespace OCA\Files_External\Tests\Auth\Password;
use OCA\Files_External\Lib\Auth\Password\GlobalAuth;
use OCA\Files_External\Lib\InsufficientDataForMeaningfulAnswerException;
-use OCA\Files_external\Lib\StorageConfig;
+use OCA\Files_External\Lib\StorageConfig;
use OCP\IL10N;
use OCP\Security\ICredentialsManager;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class GlobalAuthTest extends TestCase {
- /**
- * @var IL10N|\PHPUnit\Framework\MockObject\MockObject
- */
- private $l10n;
-
- /**
- * @var ICredentialsManager|\PHPUnit\Framework\MockObject\MockObject
- */
- private $credentialsManager;
-
- /**
- * @var GlobalAuth
- */
- private $instance;
+ private IL10N&MockObject $l10n;
+ private ICredentialsManager&MockObject $credentialsManager;
+ private GlobalAuth $instance;
protected function setUp(): void {
parent::setUp();
@@ -37,7 +29,7 @@ class GlobalAuthTest extends TestCase {
}
private function getStorageConfig($type, $config = []) {
- /** @var \OCA\Files_External\Lib\StorageConfig|\PHPUnit\Framework\MockObject\MockObject $storageConfig */
+ /** @var \OCA\Files_External\Lib\StorageConfig&MockObject $storageConfig */
$storageConfig = $this->createMock(StorageConfig::class);
$storageConfig->expects($this->any())
->method('getType')
diff --git a/apps/files_external/tests/Backend/BackendTest.php b/apps/files_external/tests/Backend/BackendTest.php
index 26aa5ebe6af..1e158654595 100644
--- a/apps/files_external/tests/Backend/BackendTest.php
+++ b/apps/files_external/tests/Backend/BackendTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -12,7 +14,7 @@ use OCA\Files_External\Lib\StorageConfig;
class BackendTest extends \Test\TestCase {
public function testJsonSerialization(): void {
$backend = $this->getMockBuilder(Backend::class)
- ->setMethods(['jsonSerializeDefinition'])
+ ->onlyMethods(['jsonSerializeDefinition'])
->getMock();
$backend->expects($this->once())
->method('jsonSerializeDefinition')
@@ -32,7 +34,7 @@ class BackendTest extends \Test\TestCase {
$this->assertContains('barauth', array_keys($json['authSchemes']));
}
- public function validateStorageProvider() {
+ public static function validateStorageProvider(): array {
return [
[true, true],
[false, false],
@@ -42,9 +44,9 @@ class BackendTest extends \Test\TestCase {
/**
* @dataProvider validateStorageProvider
*/
- public function testValidateStorage($expectedSuccess, $definitionSuccess): void {
+ public function testValidateStorage(bool $expectedSuccess, bool $definitionSuccess): void {
$backend = $this->getMockBuilder(Backend::class)
- ->setMethods(['validateStorageDefinition'])
+ ->onlyMethods(['validateStorageDefinition'])
->getMock();
$backend->expects($this->atMost(1))
->method('validateStorageDefinition')
diff --git a/apps/files_external/tests/Backend/LegacyBackendTest.php b/apps/files_external/tests/Backend/LegacyBackendTest.php
index cea46c1a0cd..147965e2499 100644
--- a/apps/files_external/tests/Backend/LegacyBackendTest.php
+++ b/apps/files_external/tests/Backend/LegacyBackendTest.php
@@ -6,6 +6,7 @@
*/
namespace OCA\Files_External\Tests\Backend;
+use OCA\Files_External\Lib\Auth\Builtin;
use OCA\Files_External\Lib\Backend\LegacyBackend;
use OCA\Files_External\Lib\DefinitionParameter;
use OCA\Files_External\Lib\MissingDependency;
@@ -15,18 +16,16 @@ class LegacyBackendTest extends \Test\TestCase {
/**
* @return MissingDependency[]
*/
- public static function checkDependencies() {
+ public static function checkDependencies(): array {
return [
(new MissingDependency('abc'))->setMessage('foobar')
];
}
public function testConstructor(): void {
- $auth = $this->getMockBuilder('\OCA\Files_External\Lib\Auth\Builtin')
- ->disableOriginalConstructor()
- ->getMock();
+ $auth = $this->createMock(Builtin::class);
- $class = '\OCA\Files_External\Tests\Backend\LegacyBackendTest';
+ $class = self::class;
$definition = [
'configuration' => [
'textfield' => 'Text field',
@@ -43,7 +42,7 @@ class LegacyBackendTest extends \Test\TestCase {
$backend = new LegacyBackend($class, $definition, $auth);
- $this->assertEquals('\OCA\Files_External\Tests\Backend\LegacyBackendTest', $backend->getStorageClass());
+ $this->assertEquals(self::class, $backend->getStorageClass());
$this->assertEquals('Backend text', $backend->getText());
$this->assertEquals(123, $backend->getPriority());
$this->assertContains('foo/bar.js', $backend->getCustomJs());
@@ -74,11 +73,9 @@ class LegacyBackendTest extends \Test\TestCase {
}
public function testNoDependencies(): void {
- $auth = $this->getMockBuilder('\OCA\Files_External\Lib\Auth\Builtin')
- ->disableOriginalConstructor()
- ->getMock();
+ $auth = $this->createMock(Builtin::class);
- $class = '\OCA\Files_External\Tests\Backend\LegacyBackendTest';
+ $class = self::class;
$definition = [
'configuration' => [
],
diff --git a/apps/files_external/tests/Command/ApplicableTest.php b/apps/files_external/tests/Command/ApplicableTest.php
index 8854e4ad485..59db18a42de 100644
--- a/apps/files_external/tests/Command/ApplicableTest.php
+++ b/apps/files_external/tests/Command/ApplicableTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -9,12 +11,13 @@ namespace OCA\Files_External\Tests\Command;
use OCA\Files_External\Command\Applicable;
use OCP\IGroupManager;
use OCP\IUserManager;
+use PHPUnit\Framework\MockObject\MockObject;
-class ApplicableTest extends CommandTest {
- private function getInstance($storageService) {
- /** @var IUserManager|\PHPUnit\Framework\MockObject\MockObject $userManager */
+class ApplicableTest extends CommandTestCase {
+ private function getInstance($storageService): Applicable {
+ /** @var IUserManager&MockObject $userManager */
$userManager = $this->createMock(IUserManager::class);
- /** @var IGroupManager|\PHPUnit\Framework\MockObject\MockObject $groupManager */
+ /** @var IGroupManager&MockObject $groupManager */
$groupManager = $this->createMock(IGroupManager::class);
$userManager->expects($this->any())
diff --git a/apps/files_external/tests/Command/CommandTest.php b/apps/files_external/tests/Command/CommandTestCase.php
index ed991fd784d..47985b687cd 100644
--- a/apps/files_external/tests/Command/CommandTest.php
+++ b/apps/files_external/tests/Command/CommandTestCase.php
@@ -9,21 +9,20 @@ namespace OCA\Files_External\Tests\Command;
use OCA\Files_External\Lib\StorageConfig;
use OCA\Files_External\NotFoundException;
use OCA\Files_External\Service\GlobalStoragesService;
+use PHPUnit\Framework\MockObject\MockObject;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\ArrayInput;
use Symfony\Component\Console\Input\Input;
use Symfony\Component\Console\Output\BufferedOutput;
use Test\TestCase;
-abstract class CommandTest extends TestCase {
+abstract class CommandTestCase extends TestCase {
/**
* @param StorageConfig[] $mounts
- * @return GlobalStoragesService|\PHPUnit\Framework\MockObject\MockObject
+ * @return GlobalStoragesService&MockObject
*/
protected function getGlobalStorageService(array $mounts = []) {
- $mock = $this->getMockBuilder('OCA\Files_External\Service\GlobalStoragesService')
- ->disableOriginalConstructor()
- ->getMock();
+ $mock = $this->createMock(GlobalStoragesService::class);
$this->bindMounts($mock, $mounts);
@@ -31,10 +30,10 @@ abstract class CommandTest extends TestCase {
}
/**
- * @param \PHPUnit\Framework\MockObject\MockObject $mock
+ * @param MockObject $mock
* @param StorageConfig[] $mounts
*/
- protected function bindMounts(\PHPUnit\Framework\MockObject\MockObject $mock, array $mounts) {
+ protected function bindMounts(MockObject $mock, array $mounts) {
$mock->expects($this->any())
->method('getStorage')
->willReturnCallback(function ($id) use ($mounts) {
@@ -70,7 +69,7 @@ abstract class CommandTest extends TestCase {
return $mount;
}
- protected function getInput(Command $command, array $arguments = [], array $options = []) {
+ protected function getInput(Command $command, array $arguments = [], array $options = []): ArrayInput {
$input = new ArrayInput([]);
$input->bind($command->getDefinition());
foreach ($arguments as $key => $value) {
@@ -82,7 +81,7 @@ abstract class CommandTest extends TestCase {
return $input;
}
- protected function executeCommand(Command $command, Input $input) {
+ protected function executeCommand(Command $command, Input $input): string {
$output = new BufferedOutput();
$this->invokePrivate($command, 'execute', [$input, $output]);
return $output->fetch();
diff --git a/apps/files_external/tests/Command/ListCommandTest.php b/apps/files_external/tests/Command/ListCommandTest.php
index bd4430b4116..5b84e500e3f 100644
--- a/apps/files_external/tests/Command/ListCommandTest.php
+++ b/apps/files_external/tests/Command/ListCommandTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -16,24 +18,20 @@ use OCA\Files_External\Service\GlobalStoragesService;
use OCA\Files_External\Service\UserStoragesService;
use OCP\Authentication\LoginCredentials\IStore;
use OCP\IL10N;
-use OCP\ISession;
use OCP\IUserManager;
use OCP\IUserSession;
-use OCP\Security\ICrypto;
+use PHPUnit\Framework\MockObject\MockObject;
use Symfony\Component\Console\Output\BufferedOutput;
-class ListCommandTest extends CommandTest {
- /**
- * @return ListCommand|\PHPUnit\Framework\MockObject\MockObject
- */
- private function getInstance() {
- /** @var GlobalStoragesService|\PHPUnit\Framework\MockObject\MockObject $globalService */
+class ListCommandTest extends CommandTestCase {
+ private function getInstance(): ListCommand {
+ /** @var GlobalStoragesService&MockObject $globalService */
$globalService = $this->createMock(GlobalStoragesService::class);
- /** @var UserStoragesService|\PHPUnit\Framework\MockObject\MockObject $userService */
+ /** @var UserStoragesService&MockObject $userService */
$userService = $this->createMock(UserStoragesService::class);
- /** @var IUserManager|\PHPUnit\Framework\MockObject\MockObject $userManager */
+ /** @var IUserManager&MockObject $userManager */
$userManager = $this->createMock(IUserManager::class);
- /** @var IUserSession|\PHPUnit\Framework\MockObject\MockObject $userSession */
+ /** @var IUserSession&MockObject $userSession */
$userSession = $this->createMock(IUserSession::class);
return new ListCommand($globalService, $userService, $userSession, $userManager);
@@ -41,8 +39,6 @@ class ListCommandTest extends CommandTest {
public function testListAuthIdentifier(): void {
$l10n = $this->createMock(IL10N::class);
- $session = $this->createMock(ISession::class);
- $crypto = $this->createMock(ICrypto::class);
$instance = $this->getInstance();
$mount1 = new StorageConfig();
$mount1->setAuthMechanism(new Password($l10n));
diff --git a/apps/files_external/tests/Config/UserPlaceholderHandlerTest.php b/apps/files_external/tests/Config/UserPlaceholderHandlerTest.php
index b3c7db9306f..c46d3ed5010 100644
--- a/apps/files_external/tests/Config/UserPlaceholderHandlerTest.php
+++ b/apps/files_external/tests/Config/UserPlaceholderHandlerTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -12,25 +14,15 @@ use OCP\IUserManager;
use OCP\IUserSession;
use OCP\Share\Exceptions\ShareNotFound;
use OCP\Share\IManager;
+use PHPUnit\Framework\MockObject\MockObject;
class UserPlaceholderHandlerTest extends \Test\TestCase {
- /** @var IUser|\PHPUnit\Framework\MockObject\MockObject */
- protected $user;
-
- /** @var IUserSession|\PHPUnit\Framework\MockObject\MockObject */
- protected $session;
-
- /** @var IManager|\PHPUnit\Framework\MockObject\MockObject */
- private $shareManager;
-
- /** @var IRequest|\PHPUnit\Framework\MockObject\MockObject */
- private $request;
-
- /** @var IUserManager|\PHPUnit\Framework\MockObject\MockObject */
- private $userManager;
-
- /** @var UserPlaceholderHandler */
- protected $handler;
+ protected IUser&MockObject $user;
+ protected IUserSession&MockObject $session;
+ protected IManager&MockObject $shareManager;
+ protected IRequest&MockObject $request;
+ protected IUserManager&MockObject $userManager;
+ protected UserPlaceholderHandler $handler;
protected function setUp(): void {
parent::setUp();
@@ -47,13 +39,13 @@ class UserPlaceholderHandlerTest extends \Test\TestCase {
$this->handler = new UserPlaceholderHandler($this->session, $this->shareManager, $this->request, $this->userManager);
}
- protected function setUser() {
+ protected function setUser(): void {
$this->session->expects($this->any())
->method('getUser')
->willReturn($this->user);
}
- public function optionProvider() {
+ public static function optionProvider(): array {
return [
['/foo/bar/$user/foobar', '/foo/bar/alice/foobar'],
[['/foo/bar/$user/foobar'], ['/foo/bar/alice/foobar']],
@@ -64,7 +56,7 @@ class UserPlaceholderHandlerTest extends \Test\TestCase {
/**
* @dataProvider optionProvider
*/
- public function testHandle($option, $expected): void {
+ public function testHandle(string|array $option, string|array $expected): void {
$this->setUser();
$this->assertSame($expected, $this->handler->handle($option));
}
@@ -72,7 +64,7 @@ class UserPlaceholderHandlerTest extends \Test\TestCase {
/**
* @dataProvider optionProvider
*/
- public function testHandleNoUser($option): void {
+ public function testHandleNoUser(string|array $option): void {
$this->shareManager->expects($this->once())
->method('getShareByToken')
->willThrowException(new ShareNotFound());
diff --git a/apps/files_external/tests/Controller/AjaxControllerTest.php b/apps/files_external/tests/Controller/AjaxControllerTest.php
index 005e6e9714c..b1ea7a2b1b1 100644
--- a/apps/files_external/tests/Controller/AjaxControllerTest.php
+++ b/apps/files_external/tests/Controller/AjaxControllerTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -14,32 +16,22 @@ use OCP\IL10N;
use OCP\IRequest;
use OCP\IUser;
use OCP\IUserSession;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class AjaxControllerTest extends TestCase {
- /** @var IRequest */
- private $request;
- /** @var RSA */
- private $rsa;
- /** @var GlobalAuth */
- private $globalAuth;
- /** @var IUserSession */
- private $userSession;
- /** @var IGroupManager */
- private $groupManager;
- /** @var AjaxController */
- private $ajaxController;
- /** @var IL10N */
- private $l10n;
+ private IRequest&MockObject $request;
+ private RSA&MockObject $rsa;
+ private GlobalAuth&MockObject $globalAuth;
+ private IUserSession&MockObject $userSession;
+ private IGroupManager&MockObject $groupManager;
+ private IL10N&MockObject $l10n;
+ private AjaxController $ajaxController;
protected function setUp(): void {
$this->request = $this->createMock(IRequest::class);
- $this->rsa = $this->getMockBuilder('\\OCA\\Files_External\\Lib\\Auth\\PublicKey\\RSA')
- ->disableOriginalConstructor()
- ->getMock();
- $this->globalAuth = $this->getMockBuilder('\\OCA\\Files_External\\Lib\\Auth\\Password\GlobalAuth')
- ->disableOriginalConstructor()
- ->getMock();
+ $this->rsa = $this->createMock(RSA::class);
+ $this->globalAuth = $this->createMock(GlobalAuth::class);
$this->userSession = $this->createMock(IUserSession::class);
$this->groupManager = $this->createMock(IGroupManager::class);
$this->l10n = $this->createMock(IL10N::class);
diff --git a/apps/files_external/tests/Controller/GlobalStoragesControllerTest.php b/apps/files_external/tests/Controller/GlobalStoragesControllerTest.php
index 4c318951d1b..2edc3ea3efc 100644
--- a/apps/files_external/tests/Controller/GlobalStoragesControllerTest.php
+++ b/apps/files_external/tests/Controller/GlobalStoragesControllerTest.php
@@ -9,6 +9,7 @@ namespace OCA\Files_External\Tests\Controller;
use OC\User\User;
use OCA\Files_External\Controller\GlobalStoragesController;
use OCA\Files_External\Service\BackendService;
+use OCA\Files_External\Service\GlobalStoragesService;
use OCP\EventDispatcher\IEventDispatcher;
use OCP\IConfig;
use OCP\IGroupManager;
@@ -17,13 +18,11 @@ use OCP\IRequest;
use OCP\IUserSession;
use Psr\Log\LoggerInterface;
-class GlobalStoragesControllerTest extends StoragesControllerTest {
+class GlobalStoragesControllerTest extends StoragesControllerTestCase {
protected function setUp(): void {
parent::setUp();
- $this->service = $this->getMockBuilder('\OCA\Files_External\Service\GlobalStoragesService')
- ->disableOriginalConstructor()
- ->getMock();
+ $this->service = $this->createMock(GlobalStoragesService::class);
$this->service->method('getVisibilityType')
->willReturn(BackendService::VISIBILITY_ADMIN);
@@ -31,7 +30,7 @@ class GlobalStoragesControllerTest extends StoragesControllerTest {
$this->controller = $this->createController(true);
}
- private function createController($allowCreateLocal = true) {
+ private function createController(bool $allowCreateLocal = true): GlobalStoragesController {
$session = $this->createMock(IUserSession::class);
$session->method('getUser')
->willReturn(new User('test', null, $this->createMock(IEventDispatcher::class)));
diff --git a/apps/files_external/tests/Controller/StoragesControllerTest.php b/apps/files_external/tests/Controller/StoragesControllerTestCase.php
index 0d604ff2d47..bb29904ab0d 100644
--- a/apps/files_external/tests/Controller/StoragesControllerTest.php
+++ b/apps/files_external/tests/Controller/StoragesControllerTestCase.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -7,10 +9,12 @@
namespace OCA\Files_External\Tests\Controller;
use OCA\Files_External\Controller\GlobalStoragesController;
+use OCA\Files_External\Controller\UserStoragesController;
use OCA\Files_External\Lib\Auth\AuthMechanism;
+use OCA\Files_External\Lib\Auth\NullMechanism;
use OCA\Files_External\Lib\Backend\Backend;
+use OCA\Files_External\Lib\Backend\SMB;
use OCA\Files_External\Lib\StorageConfig;
-
use OCA\Files_External\MountConfig;
use OCA\Files_External\NotFoundException;
use OCA\Files_External\Service\GlobalStoragesService;
@@ -18,33 +22,25 @@ use OCA\Files_External\Service\UserStoragesService;
use OCP\AppFramework\Http;
use PHPUnit\Framework\MockObject\MockObject;
-abstract class StoragesControllerTest extends \Test\TestCase {
-
- /**
- * @var GlobalStoragesController
- */
- protected $controller;
-
- /**
- * @var GlobalStoragesService|UserStoragesService|MockObject
- */
- protected $service;
+abstract class StoragesControllerTestCase extends \Test\TestCase {
+ protected GlobalStoragesController|UserStoragesController $controller;
+ protected GlobalStoragesService|UserStoragesService|MockObject $service;
protected function setUp(): void {
+ parent::setUp();
MountConfig::$skipTest = true;
}
protected function tearDown(): void {
MountConfig::$skipTest = false;
+ parent::tearDown();
}
/**
- * @return \OCA\Files_External\Lib\Backend\Backend|MockObject
+ * @return \OCA\Files_External\Lib\Backend\Backend&MockObject
*/
- protected function getBackendMock($class = '\OCA\Files_External\Lib\Backend\SMB', $storageClass = '\OCA\Files_External\Lib\Storage\SMB') {
- $backend = $this->getMockBuilder(Backend::class)
- ->disableOriginalConstructor()
- ->getMock();
+ protected function getBackendMock($class = SMB::class, $storageClass = \OCA\Files_External\Lib\Storage\SMB::class) {
+ $backend = $this->createMock(Backend::class);
$backend->method('getStorageClass')
->willReturn($storageClass);
$backend->method('getIdentifier')
@@ -57,10 +53,8 @@ abstract class StoragesControllerTest extends \Test\TestCase {
/**
* @return AuthMechanism|MockObject
*/
- protected function getAuthMechMock($scheme = 'null', $class = '\OCA\Files_External\Lib\Auth\NullMechanism') {
- $authMech = $this->getMockBuilder(AuthMechanism::class)
- ->disableOriginalConstructor()
- ->getMock();
+ protected function getAuthMechMock($scheme = 'null', $class = NullMechanism::class) {
+ $authMech = $this->createMock(AuthMechanism::class);
$authMech->method('getScheme')
->willReturn($scheme);
$authMech->method('getIdentifier')
@@ -98,8 +92,8 @@ abstract class StoragesControllerTest extends \Test\TestCase {
$response = $this->controller->create(
'mount',
- '\OCA\Files_External\Lib\Storage\SMB',
- '\OCA\Files_External\Lib\Auth\NullMechanism',
+ \OCA\Files_External\Lib\Storage\SMB::class,
+ NullMechanism::class,
[],
[],
[],
@@ -130,7 +124,7 @@ abstract class StoragesControllerTest extends \Test\TestCase {
$response = $this->controller->create(
'mount',
'local',
- '\OCA\Files_External\Lib\Auth\NullMechanism',
+ NullMechanism::class,
[],
[],
[],
@@ -170,8 +164,8 @@ abstract class StoragesControllerTest extends \Test\TestCase {
$response = $this->controller->update(
1,
'mount',
- '\OCA\Files_External\Lib\Storage\SMB',
- '\OCA\Files_External\Lib\Auth\NullMechanism',
+ \OCA\Files_External\Lib\Storage\SMB::class,
+ NullMechanism::class,
[],
[],
[],
@@ -184,7 +178,7 @@ abstract class StoragesControllerTest extends \Test\TestCase {
$this->assertEquals($storageConfig->jsonSerialize(), $data);
}
- public function mountPointNamesProvider() {
+ public static function mountPointNamesProvider(): array {
return [
[''],
['/'],
@@ -212,8 +206,8 @@ abstract class StoragesControllerTest extends \Test\TestCase {
$response = $this->controller->create(
$mountPoint,
- '\OCA\Files_External\Lib\Storage\SMB',
- '\OCA\Files_External\Lib\Auth\NullMechanism',
+ \OCA\Files_External\Lib\Storage\SMB::class,
+ NullMechanism::class,
[],
[],
[],
@@ -226,8 +220,8 @@ abstract class StoragesControllerTest extends \Test\TestCase {
$response = $this->controller->update(
1,
$mountPoint,
- '\OCA\Files_External\Lib\Storage\SMB',
- '\OCA\Files_External\Lib\Auth\NullMechanism',
+ \OCA\Files_External\Lib\Storage\SMB::class,
+ NullMechanism::class,
[],
[],
[],
@@ -250,7 +244,7 @@ abstract class StoragesControllerTest extends \Test\TestCase {
$response = $this->controller->create(
'mount',
'\OC\Files\Storage\InvalidStorage',
- '\OCA\Files_External\Lib\Auth\NullMechanism',
+ NullMechanism::class,
[],
[],
[],
@@ -264,7 +258,7 @@ abstract class StoragesControllerTest extends \Test\TestCase {
1,
'mount',
'\OC\Files\Storage\InvalidStorage',
- '\OCA\Files_External\Lib\Auth\NullMechanism',
+ NullMechanism::class,
[],
[],
[],
@@ -303,8 +297,8 @@ abstract class StoragesControllerTest extends \Test\TestCase {
$response = $this->controller->update(
255,
'mount',
- '\OCA\Files_External\Lib\Storage\SMB',
- '\OCA\Files_External\Lib\Auth\NullMechanism',
+ \OCA\Files_External\Lib\Storage\SMB::class,
+ NullMechanism::class,
[],
[],
[],
@@ -354,7 +348,7 @@ abstract class StoragesControllerTest extends \Test\TestCase {
$this->assertEquals($expected, $response->getData());
}
- public function validateStorageProvider() {
+ public static function validateStorageProvider(): array {
return [
[true, true, true],
[false, true, false],
@@ -366,7 +360,7 @@ abstract class StoragesControllerTest extends \Test\TestCase {
/**
* @dataProvider validateStorageProvider
*/
- public function testValidateStorage($backendValidate, $authMechValidate, $expectSuccess): void {
+ public function testValidateStorage(bool $backendValidate, bool $authMechValidate, bool $expectSuccess): void {
$backend = $this->getBackendMock();
$backend->method('validateStorage')
->willReturn($backendValidate);
@@ -401,8 +395,8 @@ abstract class StoragesControllerTest extends \Test\TestCase {
$response = $this->controller->create(
'mount',
- '\OCA\Files_External\Lib\Storage\SMB',
- '\OCA\Files_External\Lib\Auth\NullMechanism',
+ \OCA\Files_External\Lib\Storage\SMB::class,
+ NullMechanism::class,
[],
[],
[],
diff --git a/apps/files_external/tests/Controller/UserStoragesControllerTest.php b/apps/files_external/tests/Controller/UserStoragesControllerTest.php
index c15ded48ea7..3e8d89ec060 100644
--- a/apps/files_external/tests/Controller/UserStoragesControllerTest.php
+++ b/apps/files_external/tests/Controller/UserStoragesControllerTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -8,8 +10,10 @@ namespace OCA\Files_External\Tests\Controller;
use OC\User\User;
use OCA\Files_External\Controller\UserStoragesController;
+use OCA\Files_External\Lib\Storage\SMB;
use OCA\Files_External\Lib\StorageConfig;
use OCA\Files_External\Service\BackendService;
+use OCA\Files_External\Service\UserStoragesService;
use OCP\AppFramework\Http;
use OCP\EventDispatcher\IEventDispatcher;
use OCP\IConfig;
@@ -19,18 +23,16 @@ use OCP\IRequest;
use OCP\IUserSession;
use Psr\Log\LoggerInterface;
-class UserStoragesControllerTest extends StoragesControllerTest {
+class UserStoragesControllerTest extends StoragesControllerTestCase {
/**
* @var array
*/
- private $oldAllowedBackends;
+ private array $oldAllowedBackends;
protected function setUp(): void {
parent::setUp();
- $this->service = $this->getMockBuilder('\OCA\Files_External\Service\UserStoragesService')
- ->disableOriginalConstructor()
- ->getMock();
+ $this->service = $this->createMock(UserStoragesService::class);
$this->service->method('getVisibilityType')
->willReturn(BackendService::VISIBILITY_PERSONAL);
@@ -38,7 +40,7 @@ class UserStoragesControllerTest extends StoragesControllerTest {
$this->controller = $this->createController(true);
}
- private function createController($allowCreateLocal = true) {
+ private function createController(bool $allowCreateLocal = true) {
$session = $this->createMock(IUserSession::class);
$session->method('getUser')
->willReturn(new User('test', null, $this->createMock(IEventDispatcher::class)));
@@ -88,7 +90,7 @@ class UserStoragesControllerTest extends StoragesControllerTest {
$response = $this->controller->create(
'mount',
- '\OCA\Files_External\Lib\Storage\SMB',
+ SMB::class,
'\Auth\Mechanism',
[],
[],
@@ -102,7 +104,7 @@ class UserStoragesControllerTest extends StoragesControllerTest {
$response = $this->controller->update(
1,
'mount',
- '\OCA\Files_External\Lib\Storage\SMB',
+ SMB::class,
'\Auth\Mechanism',
[],
[],
diff --git a/apps/files_external/tests/DefinitionParameterTest.php b/apps/files_external/tests/DefinitionParameterTest.php
index 3fc65eaf897..f39ba90c871 100644
--- a/apps/files_external/tests/DefinitionParameterTest.php
+++ b/apps/files_external/tests/DefinitionParameterTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -48,7 +50,7 @@ class DefinitionParameterTest extends \Test\TestCase {
], $param->jsonSerialize());
}
- public function validateValueProvider() {
+ public static function validateValueProvider(): array {
return [
[Param::VALUE_TEXT, Param::FLAG_NONE, 'abc', true],
[Param::VALUE_TEXT, Param::FLAG_NONE, '', false],
diff --git a/apps/files_external/tests/FrontendDefinitionTraitTest.php b/apps/files_external/tests/FrontendDefinitionTraitTest.php
index bc5d88ff3f0..a01b772bded 100644
--- a/apps/files_external/tests/FrontendDefinitionTraitTest.php
+++ b/apps/files_external/tests/FrontendDefinitionTraitTest.php
@@ -16,7 +16,7 @@ class FrontendDefinitionTraitTest extends \Test\TestCase {
->getMock();
$param->method('getName')->willReturn('foo');
- $trait = $this->getMockForTrait('\OCA\Files_External\Lib\FrontendDefinitionTrait');
+ $trait = $this->getMockForTrait(\OCA\Files_External\Lib\FrontendDefinitionTrait::class);
$trait->setText('test');
$trait->addParameters([$param]);
$trait->addCustomJs('foo/bar.js');
@@ -32,7 +32,7 @@ class FrontendDefinitionTraitTest extends \Test\TestCase {
$this->assertArrayHasKey('foo', $configuration);
}
- public function validateStorageProvider() {
+ public static function validateStorageProvider(): array {
return [
[true, ['foo' => true, 'bar' => true, 'baz' => true]],
[false, ['foo' => true, 'bar' => false]]
@@ -42,7 +42,7 @@ class FrontendDefinitionTraitTest extends \Test\TestCase {
/**
* @dataProvider validateStorageProvider
*/
- public function testValidateStorage($expectedSuccess, $params): void {
+ public function testValidateStorage(bool $expectedSuccess, array $params): void {
$backendParams = [];
foreach ($params as $name => $valid) {
$param = $this->getMockBuilder(DefinitionParameter::class)
@@ -67,7 +67,7 @@ class FrontendDefinitionTraitTest extends \Test\TestCase {
$storageConfig->expects($this->any())
->method('setBackendOption');
- $trait = $this->getMockForTrait('\OCA\Files_External\Lib\FrontendDefinitionTrait');
+ $trait = $this->getMockForTrait(\OCA\Files_External\Lib\FrontendDefinitionTrait::class);
$trait->setText('test');
$trait->addParameters($backendParams);
@@ -98,7 +98,7 @@ class FrontendDefinitionTraitTest extends \Test\TestCase {
->method('setBackendOption')
->with('param', 'foobar');
- $trait = $this->getMockForTrait('\OCA\Files_External\Lib\FrontendDefinitionTrait');
+ $trait = $this->getMockForTrait(\OCA\Files_External\Lib\FrontendDefinitionTrait::class);
$trait->setText('test');
$trait->addParameter($param);
diff --git a/apps/files_external/tests/LegacyDependencyCheckPolyfillTest.php b/apps/files_external/tests/LegacyDependencyCheckPolyfillTest.php
index 5fcfe1dd1e6..b6a351d44c0 100644
--- a/apps/files_external/tests/LegacyDependencyCheckPolyfillTest.php
+++ b/apps/files_external/tests/LegacyDependencyCheckPolyfillTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -13,7 +15,7 @@ class LegacyDependencyCheckPolyfillTest extends \Test\TestCase {
/**
* @return MissingDependency[]
*/
- public static function checkDependencies() {
+ public static function checkDependencies(): array {
return [
(new MissingDependency('dependency'))->setMessage('missing dependency'),
(new MissingDependency('program'))->setMessage('cannot find program'),
@@ -21,10 +23,10 @@ class LegacyDependencyCheckPolyfillTest extends \Test\TestCase {
}
public function testCheckDependencies(): void {
- $trait = $this->getMockForTrait('\OCA\Files_External\Lib\LegacyDependencyCheckPolyfill');
+ $trait = $this->getMockForTrait(\OCA\Files_External\Lib\LegacyDependencyCheckPolyfill::class);
$trait->expects($this->once())
->method('getStorageClass')
- ->willReturn('\OCA\Files_External\Tests\LegacyDependencyCheckPolyfillTest');
+ ->willReturn(self::class);
$dependencies = $trait->checkDependencies();
$this->assertCount(2, $dependencies);
diff --git a/apps/files_external/tests/Listener/StorePasswordListenerTest.php b/apps/files_external/tests/Listener/StorePasswordListenerTest.php
index ec278f84331..04635b7dafd 100644
--- a/apps/files_external/tests/Listener/StorePasswordListenerTest.php
+++ b/apps/files_external/tests/Listener/StorePasswordListenerTest.php
@@ -22,15 +22,12 @@ use Test\TestCase;
* @group DB
*/
class StorePasswordListenerTest extends TestCase {
- /** @var MockObject|IUser */
- protected $mockedUser;
+ protected IUser&MockObject $mockedUser;
protected function setUp(): void {
parent::setUp();
$this->mockedUser = $this->createMock(IUser::class);
- $this->mockedUser
- ->expects($this->any())
- ->method('getUID')
+ $this->mockedUser->method('getUID')
->willReturn('test');
}
diff --git a/apps/files_external/tests/OwnCloudFunctionsTest.php b/apps/files_external/tests/OwnCloudFunctionsTest.php
index 3488195d3e8..2890cad3ac1 100644
--- a/apps/files_external/tests/OwnCloudFunctionsTest.php
+++ b/apps/files_external/tests/OwnCloudFunctionsTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -16,7 +18,7 @@ use OCA\Files_External\Lib\Storage\OwnCloud;
* @package OCA\Files_External\Tests
*/
class OwnCloudFunctionsTest extends \Test\TestCase {
- public function configUrlProvider() {
+ public static function configUrlProvider(): array {
return [
[
[
@@ -88,7 +90,7 @@ class OwnCloudFunctionsTest extends \Test\TestCase {
/**
* @dataProvider configUrlProvider
*/
- public function testConfig($config, $expectedUri): void {
+ public function testConfig(array $config, string $expectedUri): void {
$config['user'] = 'someuser';
$config['password'] = 'somepassword';
$instance = new OwnCloud($config);
diff --git a/apps/files_external/tests/PersonalMountTest.php b/apps/files_external/tests/PersonalMountTest.php
index b268d3b5142..618048c3335 100644
--- a/apps/files_external/tests/PersonalMountTest.php
+++ b/apps/files_external/tests/PersonalMountTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -8,6 +10,7 @@ namespace OCA\Files_External\Tests;
use OC\Files\Mount\Manager;
use OC\Files\SetupManagerFactory;
+use OC\Files\Storage\Storage;
use OCA\Files_External\Lib\PersonalMount;
use OCA\Files_External\Lib\StorageConfig;
use OCA\Files_External\Service\UserStoragesService;
@@ -17,13 +20,9 @@ class PersonalMountTest extends TestCase {
public function testFindByStorageId(): void {
$storageConfig = $this->createMock(StorageConfig::class);
/** @var UserStoragesService $storageService */
- $storageService = $this->getMockBuilder('\OCA\Files_External\Service\UserStoragesService')
- ->disableOriginalConstructor()
- ->getMock();
+ $storageService = $this->createMock(UserStoragesService::class);
- $storage = $this->getMockBuilder('\OC\Files\Storage\Storage')
- ->disableOriginalConstructor()
- ->getMock();
+ $storage = $this->createMock(Storage::class);
$storage->expects($this->any())
->method('getId')
diff --git a/apps/files_external/tests/Service/BackendServiceTest.php b/apps/files_external/tests/Service/BackendServiceTest.php
index c3a77d81b67..1feefbc2b25 100644
--- a/apps/files_external/tests/Service/BackendServiceTest.php
+++ b/apps/files_external/tests/Service/BackendServiceTest.php
@@ -13,25 +13,20 @@ use OCA\Files_External\Lib\Config\IAuthMechanismProvider;
use OCA\Files_External\Lib\Config\IBackendProvider;
use OCA\Files_External\Service\BackendService;
use OCP\IAppConfig;
+use PHPUnit\Framework\MockObject\MockObject;
class BackendServiceTest extends \Test\TestCase {
-
- /** @var IAppConfig|\PHPUnit\Framework\MockObject\MockObject */
- protected $appConfig;
+ protected IAppConfig&MockObject $appConfig;
protected function setUp(): void {
$this->appConfig = $this->createMock(IAppConfig::class);
}
/**
- * @param string $class
- *
- * @return \OCA\Files_External\Lib\Backend\Backend|\PHPUnit\Framework\MockObject\MockObject
+ * @return \OCA\Files_External\Lib\Backend\Backend&MockObject
*/
- protected function getBackendMock($class) {
- $backend = $this->getMockBuilder(Backend::class)
- ->disableOriginalConstructor()
- ->getMock();
+ protected function getBackendMock(string $class) {
+ $backend = $this->createMock(Backend::class);
$backend->method('getIdentifier')->willReturn('identifier:' . $class);
$backend->method('getIdentifierAliases')->willReturn(['identifier:' . $class]);
return $backend;
@@ -40,12 +35,10 @@ class BackendServiceTest extends \Test\TestCase {
/**
* @param string $class
*
- * @return AuthMechanism|\PHPUnit\Framework\MockObject\MockObject
+ * @return AuthMechanism&MockObject
*/
protected function getAuthMechanismMock($class) {
- $backend = $this->getMockBuilder(AuthMechanism::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $backend = $this->createMock(AuthMechanism::class);
$backend->method('getIdentifier')->willReturn('identifier:' . $class);
$backend->method('getIdentifierAliases')->willReturn(['identifier:' . $class]);
return $backend;
@@ -56,10 +49,8 @@ class BackendServiceTest extends \Test\TestCase {
$backend = $this->getBackendMock('\Foo\Bar');
- /** @var \OCA\Files_External\Lib\Backend\Backend|\PHPUnit\Framework\MockObject\MockObject $backendAlias */
- $backendAlias = $this->getMockBuilder(Backend::class)
- ->disableOriginalConstructor()
- ->getMock();
+ /** @var \OCA\Files_External\Lib\Backend\Backend&MockObject $backendAlias */
+ $backendAlias = $this->createMock(Backend::class);
$backendAlias->method('getIdentifierAliases')
->willReturn(['identifier_real', 'identifier_alias']);
$backendAlias->method('getIdentifier')
@@ -85,7 +76,7 @@ class BackendServiceTest extends \Test\TestCase {
$backend1 = $this->getBackendMock('\Foo\Bar');
$backend2 = $this->getBackendMock('\Bar\Foo');
- /** @var IBackendProvider|\PHPUnit\Framework\MockObject\MockObject $providerMock */
+ /** @var IBackendProvider&MockObject $providerMock */
$providerMock = $this->createMock(IBackendProvider::class);
$providerMock->expects($this->once())
->method('getBackends')
@@ -104,7 +95,7 @@ class BackendServiceTest extends \Test\TestCase {
$backend1 = $this->getAuthMechanismMock('\Foo\Bar');
$backend2 = $this->getAuthMechanismMock('\Bar\Foo');
- /** @var IAuthMechanismProvider|\PHPUnit\Framework\MockObject\MockObject $providerMock */
+ /** @var IAuthMechanismProvider&MockObject $providerMock */
$providerMock = $this->createMock(IAuthMechanismProvider::class);
$providerMock->expects($this->once())
->method('getAuthMechanisms')
@@ -125,13 +116,13 @@ class BackendServiceTest extends \Test\TestCase {
$backend2 = $this->getBackendMock('\Dead\Beef');
- /** @var IBackendProvider|\PHPUnit\Framework\MockObject\MockObject $provider1Mock */
+ /** @var IBackendProvider&MockObject $provider1Mock */
$provider1Mock = $this->createMock(IBackendProvider::class);
$provider1Mock->expects($this->once())
->method('getBackends')
->willReturn([$backend1a, $backend1b]);
$service->registerBackendProvider($provider1Mock);
- /** @var IBackendProvider|\PHPUnit\Framework\MockObject\MockObject $provider2Mock */
+ /** @var IBackendProvider&MockObject $provider2Mock */
$provider2Mock = $this->createMock(IBackendProvider::class);
$provider2Mock->expects($this->once())
->method('getBackends')
@@ -202,7 +193,7 @@ class BackendServiceTest extends \Test\TestCase {
$this->assertArrayNotHasKey('identifier:\Backend\NotAvailable', $availableBackends);
}
- public function invalidConfigPlaceholderProvider() {
+ public static function invalidConfigPlaceholderProvider(): array {
return [
[['@user']],
[['$user']],
diff --git a/apps/files_external/tests/Service/DBConfigServiceTest.php b/apps/files_external/tests/Service/DBConfigServiceTest.php
index 51051d6c9f2..c902aa28270 100644
--- a/apps/files_external/tests/Service/DBConfigServiceTest.php
+++ b/apps/files_external/tests/Service/DBConfigServiceTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -16,17 +18,10 @@ use Test\TestCase;
* @group DB
*/
class DBConfigServiceTest extends TestCase {
- /**
- * @var DBConfigService
- */
- private $dbConfig;
-
- /**
- * @var IDBConnection
- */
- private $connection;
+ private IDBConnection $connection;
+ private DBConfigService $dbConfig;
- private $mounts = [];
+ private array $mounts = [];
protected function setUp(): void {
parent::setUp();
@@ -39,9 +34,10 @@ class DBConfigServiceTest extends TestCase {
$this->dbConfig->removeMount($mount);
}
$this->mounts = [];
+ parent::tearDown();
}
- private function addMount($mountPoint, $storageBackend, $authBackend, $priority, $type) {
+ private function addMount(string $mountPoint, string $storageBackend, string $authBackend, int $priority, int $type) {
$id = $this->dbConfig->addMount($mountPoint, $storageBackend, $authBackend, $priority, $type);
$this->mounts[] = $id;
return $id;
diff --git a/apps/files_external/tests/Service/GlobalStoragesServiceTest.php b/apps/files_external/tests/Service/GlobalStoragesServiceTest.php
index b4907f7f00f..1a1754799dc 100644
--- a/apps/files_external/tests/Service/GlobalStoragesServiceTest.php
+++ b/apps/files_external/tests/Service/GlobalStoragesServiceTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -14,7 +16,7 @@ use OCA\Files_External\Service\GlobalStoragesService;
/**
* @group DB
*/
-class GlobalStoragesServiceTest extends StoragesServiceTest {
+class GlobalStoragesServiceTest extends StoragesServiceTestCase {
protected function setUp(): void {
parent::setUp();
$this->service = new GlobalStoragesService($this->backendService, $this->dbConfig, $this->mountCache, $this->eventDispatcher);
@@ -44,7 +46,7 @@ class GlobalStoragesServiceTest extends StoragesServiceTest {
]);
}
- public function storageDataProvider() {
+ public static function storageDataProvider(): array {
return [
// all users
[
@@ -172,7 +174,7 @@ class GlobalStoragesServiceTest extends StoragesServiceTest {
$this->assertEquals(0, $newStorage->getStatus());
}
- public function hooksAddStorageDataProvider() {
+ public static function hooksAddStorageDataProvider(): array {
return [
// applicable all
[
@@ -301,7 +303,7 @@ class GlobalStoragesServiceTest extends StoragesServiceTest {
}
}
- public function hooksUpdateStorageDataProvider() {
+ public static function hooksUpdateStorageDataProvider(): array {
return [
[
// nothing to multiple users and groups
@@ -421,11 +423,12 @@ class GlobalStoragesServiceTest extends StoragesServiceTest {
* @dataProvider hooksUpdateStorageDataProvider
*/
public function testHooksUpdateStorage(
- $sourceApplicableUsers,
- $sourceApplicableGroups,
- $updatedApplicableUsers,
- $updatedApplicableGroups,
- $expectedCalls): void {
+ array $sourceApplicableUsers,
+ array $sourceApplicableGroups,
+ array $updatedApplicableUsers,
+ array $updatedApplicableGroups,
+ array $expectedCalls,
+ ): void {
$storage = $this->makeTestStorageData();
$storage->setApplicableUsers($sourceApplicableUsers);
$storage->setApplicableGroups($sourceApplicableGroups);
@@ -532,7 +535,7 @@ class GlobalStoragesServiceTest extends StoragesServiceTest {
}
}
- public function hooksDeleteStorageDataProvider() {
+ public static function hooksDeleteStorageDataProvider(): array {
return [
[
['user1', 'user2'],
@@ -580,9 +583,10 @@ class GlobalStoragesServiceTest extends StoragesServiceTest {
* @dataProvider hooksDeleteStorageDataProvider
*/
public function testHooksDeleteStorage(
- $sourceApplicableUsers,
- $sourceApplicableGroups,
- $expectedCalls): void {
+ array $sourceApplicableUsers,
+ array $sourceApplicableGroups,
+ array $expectedCalls,
+ ): void {
$storage = $this->makeTestStorageData();
$storage->setApplicableUsers($sourceApplicableUsers);
$storage->setApplicableGroups($sourceApplicableGroups);
diff --git a/apps/files_external/tests/Service/StoragesServiceTest.php b/apps/files_external/tests/Service/StoragesServiceTestCase.php
index 8d24b98d6af..a5cffd45ec2 100644
--- a/apps/files_external/tests/Service/StoragesServiceTest.php
+++ b/apps/files_external/tests/Service/StoragesServiceTestCase.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -10,9 +12,10 @@ use OC\Files\Cache\Storage;
use OC\Files\Filesystem;
use OCA\Files_External\Lib\Auth\AuthMechanism;
use OCA\Files_External\Lib\Auth\InvalidAuth;
+use OCA\Files_External\Lib\Auth\NullMechanism;
use OCA\Files_External\Lib\Backend\Backend;
use OCA\Files_External\Lib\Backend\InvalidBackend;
-
+use OCA\Files_External\Lib\Backend\SMB;
use OCA\Files_External\Lib\StorageConfig;
use OCA\Files_External\MountConfig;
use OCA\Files_External\NotFoundException;
@@ -31,9 +34,10 @@ use OCP\IUser;
use OCP\Security\ICrypto;
use OCP\Server;
use OCP\Util;
+use PHPUnit\Framework\MockObject\MockObject;
class CleaningDBConfig extends DBConfigService {
- private $mountIds = [];
+ private array $mountIds = [];
public function addMount($mountPoint, $storageBackend, $authBackend, $priority, $type) {
$id = parent::addMount($mountPoint, $storageBackend, $authBackend, $priority, $type); // TODO: Change the autogenerated stub
@@ -51,41 +55,14 @@ class CleaningDBConfig extends DBConfigService {
/**
* @group DB
*/
-abstract class StoragesServiceTest extends \Test\TestCase {
- /**
- * @var StoragesService
- */
- protected $service;
-
- /** @var BackendService */
- protected $backendService;
-
- /**
- * Data directory
- *
- * @var string
- */
- protected $dataDir;
-
- /** @var CleaningDBConfig */
- protected $dbConfig;
-
- /**
- * Hook calls
- *
- * @var array
- */
- protected static $hookCalls;
-
- /**
- * @var \PHPUnit\Framework\MockObject\MockObject|IUserMountCache
- */
- protected $mountCache;
-
- /**
- * @var \PHPUnit\Framework\MockObject\MockObject|IEventDispatcher
- */
- protected IEventDispatcher $eventDispatcher;
+abstract class StoragesServiceTestCase extends \Test\TestCase {
+ protected StoragesService $service;
+ protected BackendService $backendService;
+ protected string $dataDir;
+ protected CleaningDBConfig $dbConfig;
+ protected static array $hookCalls;
+ protected IUserMountCache&MockObject $mountCache;
+ protected IEventDispatcher&MockObject $eventDispatcher;
protected function setUp(): void {
parent::setUp();
@@ -102,10 +79,7 @@ abstract class StoragesServiceTest extends \Test\TestCase {
$this->eventDispatcher = $this->createMock(IEventDispatcher::class);
// prepare BackendService mock
- $this->backendService =
- $this->getMockBuilder('\OCA\Files_External\Service\BackendService')
- ->disableOriginalConstructor()
- ->getMock();
+ $this->backendService = $this->createMock(BackendService::class);
$authMechanisms = [
'identifier:\Auth\Mechanism' => $this->getAuthMechMock('null', '\Auth\Mechanism'),
@@ -172,12 +146,11 @@ abstract class StoragesServiceTest extends \Test\TestCase {
if ($this->dbConfig) {
$this->dbConfig->clean();
}
+ parent::tearDown();
}
- protected function getBackendMock($class = '\OCA\Files_External\Lib\Backend\SMB', $storageClass = '\OCA\Files_External\Lib\Storage\SMB') {
- $backend = $this->getMockBuilder(Backend::class)
- ->disableOriginalConstructor()
- ->getMock();
+ protected function getBackendMock($class = SMB::class, $storageClass = \OCA\Files_External\Lib\Storage\SMB::class) {
+ $backend = $this->createMock(Backend::class);
$backend->method('getStorageClass')
->willReturn($storageClass);
$backend->method('getIdentifier')
@@ -185,10 +158,8 @@ abstract class StoragesServiceTest extends \Test\TestCase {
return $backend;
}
- protected function getAuthMechMock($scheme = 'null', $class = '\OCA\Files_External\Lib\Auth\NullMechanism') {
- $authMech = $this->getMockBuilder(AuthMechanism::class)
- ->disableOriginalConstructor()
- ->getMock();
+ protected function getAuthMechMock($scheme = 'null', $class = NullMechanism::class) {
+ $authMech = $this->createMock(AuthMechanism::class);
$authMech->method('getScheme')
->willReturn($scheme);
$authMech->method('getIdentifier')
@@ -199,12 +170,8 @@ abstract class StoragesServiceTest extends \Test\TestCase {
/**
* Creates a StorageConfig instance based on array data
- *
- * @param array $data
- *
- * @return StorageConfig storage config instance
*/
- protected function makeStorageConfig($data) {
+ protected function makeStorageConfig(array $data): StorageConfig {
$storage = new StorageConfig();
if (isset($data['id'])) {
$storage->setId($data['id']);
@@ -259,7 +226,7 @@ abstract class StoragesServiceTest extends \Test\TestCase {
$this->ActualNonExistingStorageTest();
}
- public function deleteStorageDataProvider() {
+ public static function deleteStorageDataProvider(): array {
return [
// regular case, can properly delete the oc_storages entry
[
@@ -286,7 +253,7 @@ abstract class StoragesServiceTest extends \Test\TestCase {
/**
* @dataProvider deleteStorageDataProvider
*/
- public function testDeleteStorage($backendOptions, $rustyStorageId): void {
+ public function testDeleteStorage(array $backendOptions, string $rustyStorageId): void {
$backend = $this->backendService->getBackend('identifier:\OCA\Files_External\Lib\Backend\DAV');
$authMechanism = $this->backendService->getAuthMechanism('identifier:\Auth\Mechanism');
$storage = new StorageConfig(255);
@@ -463,14 +430,14 @@ abstract class StoragesServiceTest extends \Test\TestCase {
$this->assertEmpty($this->service->getStorages());
}
- public static function createHookCallback($params) {
+ public static function createHookCallback($params): void {
self::$hookCalls[] = [
'signal' => Filesystem::signal_create_mount,
'params' => $params
];
}
- public static function deleteHookCallback($params) {
+ public static function deleteHookCallback($params): void {
self::$hookCalls[] = [
'signal' => Filesystem::signal_delete_mount,
'params' => $params
diff --git a/apps/files_external/tests/Service/UserGlobalStoragesServiceTest.php b/apps/files_external/tests/Service/UserGlobalStoragesServiceTest.php
index e3c5cd486e9..1ec4e56bd9e 100644
--- a/apps/files_external/tests/Service/UserGlobalStoragesServiceTest.php
+++ b/apps/files_external/tests/Service/UserGlobalStoragesServiceTest.php
@@ -16,6 +16,7 @@ use OCP\IGroupManager;
use OCP\IUser;
use OCP\IUserSession;
use OCP\Server;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\Traits\UserTrait;
/**
@@ -24,20 +25,9 @@ use Test\Traits\UserTrait;
class UserGlobalStoragesServiceTest extends GlobalStoragesServiceTest {
use UserTrait;
- /** @var IGroupManager|\PHPUnit\Framework\MockObject\MockObject groupManager */
- protected $groupManager;
-
- /**
- * @var StoragesService
- */
- protected $globalStoragesService;
-
- /**
- * @var UserGlobalStoragesService
- */
- protected $service;
-
- protected $user;
+ protected IGroupManager&MockObject $groupManager;
+ protected StoragesService $globalStoragesService;
+ protected User $user;
public const USER_ID = 'test_user';
public const GROUP_ID = 'test_group';
@@ -49,7 +39,7 @@ class UserGlobalStoragesServiceTest extends GlobalStoragesServiceTest {
$this->globalStoragesService = $this->service;
$this->user = new User(self::USER_ID, null, Server::get(IEventDispatcher::class));
- /** @var IUserSession|\PHPUnit\Framework\MockObject\MockObject $userSession */
+ /** @var IUserSession&MockObject $userSession */
$userSession = $this->createMock(IUserSession::class);
$userSession
->expects($this->any())
@@ -87,7 +77,7 @@ class UserGlobalStoragesServiceTest extends GlobalStoragesServiceTest {
);
}
- public function applicableStorageProvider() {
+ public static function applicableStorageProvider(): array {
return [
[[], [], true],
@@ -211,7 +201,7 @@ class UserGlobalStoragesServiceTest extends GlobalStoragesServiceTest {
$this->actualDeletedUnexistingStorageTest();
}
- public function getUniqueStoragesProvider() {
+ public static function getUniqueStoragesProvider(): array {
return [
// 'all' vs group
[100, [], [], 100, [], [self::GROUP_ID], 2],
diff --git a/apps/files_external/tests/Service/UserStoragesServiceTest.php b/apps/files_external/tests/Service/UserStoragesServiceTest.php
index a7b9f200417..53d7f5960e8 100644
--- a/apps/files_external/tests/Service/UserStoragesServiceTest.php
+++ b/apps/files_external/tests/Service/UserStoragesServiceTest.php
@@ -17,22 +17,19 @@ use OCA\Files_External\Service\UserStoragesService;
use OCP\IUserManager;
use OCP\IUserSession;
use OCP\Server;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\Traits\UserTrait;
/**
* @group DB
*/
-class UserStoragesServiceTest extends StoragesServiceTest {
+class UserStoragesServiceTest extends StoragesServiceTestCase {
use UserTrait;
- private $user;
+ protected \OC\User\User $user;
- private $userId;
-
- /**
- * @var StoragesService
- */
- protected $globalStoragesService;
+ protected string $userId;
+ protected StoragesService $globalStoragesService;
protected function setUp(): void {
parent::setUp();
@@ -43,7 +40,7 @@ class UserStoragesServiceTest extends StoragesServiceTest {
$this->createUser($this->userId, $this->userId);
$this->user = Server::get(IUserManager::class)->get($this->userId);
- /** @var IUserSession|\PHPUnit\Framework\MockObject\MockObject $userSession */
+ /** @var IUserSession&MockObject $userSession */
$userSession = $this->createMock(IUserSession::class);
$userSession
->expects($this->any())
diff --git a/apps/files_external/tests/Settings/AdminTest.php b/apps/files_external/tests/Settings/AdminTest.php
index aceb8d2e915..fd4a1949760 100644
--- a/apps/files_external/tests/Settings/AdminTest.php
+++ b/apps/files_external/tests/Settings/AdminTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -12,19 +14,15 @@ use OCA\Files_External\Service\GlobalStoragesService;
use OCA\Files_External\Settings\Admin;
use OCP\AppFramework\Http\TemplateResponse;
use OCP\Encryption\IManager;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class AdminTest extends TestCase {
- /** @var Admin */
- private $admin;
- /** @var IManager|\PHPUnit\Framework\MockObject\MockObject */
- private $encryptionManager;
- /** @var GlobalStoragesService|\PHPUnit\Framework\MockObject\MockObject */
- private $globalStoragesService;
- /** @var BackendService|\PHPUnit\Framework\MockObject\MockObject */
- private $backendService;
- /** @var GlobalAuth|\PHPUnit\Framework\MockObject\MockObject */
- private $globalAuth;
+ private IManager&MockObject $encryptionManager;
+ private GlobalStoragesService&MockObject $globalStoragesService;
+ private BackendService&MockObject $backendService;
+ private GlobalAuth&MockObject $globalAuth;
+ private Admin $admin;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/files_external/tests/Settings/SectionTest.php b/apps/files_external/tests/Settings/SectionTest.php
index 9154106ff8a..c64849ff7ba 100644
--- a/apps/files_external/tests/Settings/SectionTest.php
+++ b/apps/files_external/tests/Settings/SectionTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -8,20 +10,18 @@ namespace OCA\Files_External\Tests\Settings;
use OCA\Files_External\Settings\Section;
use OCP\IL10N;
use OCP\IURLGenerator;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class SectionTest extends TestCase {
- /** @var IL10N */
- private $l;
- /** @var IURLGenerator */
- private $urlGenerator;
- /** @var Section */
- private $section;
+ private IL10N&MockObject $l;
+ private IURLGenerator&MockObject $urlGenerator;
+ private Section $section;
protected function setUp(): void {
parent::setUp();
- $this->urlGenerator = $this->getMockBuilder(IURLGenerator::class)->disableOriginalConstructor()->getMock();
- $this->l = $this->getMockBuilder(IL10N::class)->disableOriginalConstructor()->getMock();
+ $this->urlGenerator = $this->createMock(IURLGenerator::class);
+ $this->l = $this->createMock(IL10N::class);
$this->section = new Section(
$this->urlGenerator,
diff --git a/apps/files_external/tests/Storage/Amazons3MultiPartTest.php b/apps/files_external/tests/Storage/Amazons3MultiPartTest.php
index 1ac18406d24..641f00d5147 100644
--- a/apps/files_external/tests/Storage/Amazons3MultiPartTest.php
+++ b/apps/files_external/tests/Storage/Amazons3MultiPartTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/files_external/tests/Storage/Amazons3Test.php b/apps/files_external/tests/Storage/Amazons3Test.php
index fd7fd9225c9..6d27b0b3253 100644
--- a/apps/files_external/tests/Storage/Amazons3Test.php
+++ b/apps/files_external/tests/Storage/Amazons3Test.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/tests/Storage/FtpTest.php b/apps/files_external/tests/Storage/FtpTest.php
index 81b92e0fae9..095a5236049 100644
--- a/apps/files_external/tests/Storage/FtpTest.php
+++ b/apps/files_external/tests/Storage/FtpTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/tests/Storage/OwncloudTest.php b/apps/files_external/tests/Storage/OwncloudTest.php
index 28041a665f8..ab6cd443dba 100644
--- a/apps/files_external/tests/Storage/OwncloudTest.php
+++ b/apps/files_external/tests/Storage/OwncloudTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/tests/Storage/SFTP_KeyTest.php b/apps/files_external/tests/Storage/SFTP_KeyTest.php
index 9be3cb7d3e8..17e2087f91b 100644
--- a/apps/files_external/tests/Storage/SFTP_KeyTest.php
+++ b/apps/files_external/tests/Storage/SFTP_KeyTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -40,7 +42,7 @@ class SFTP_KeyTest extends \Test\Files\Storage\Storage {
parent::tearDown();
}
-
+
public function testInvalidAddressShouldThrowException(): void {
$this->expectException(\InvalidArgumentException::class);
@@ -52,24 +54,24 @@ class SFTP_KeyTest extends \Test\Files\Storage\Storage {
$this->assertTrue($this->instance->assertHostAddressValid('localhost'));
}
-
+
public function testNegativePortNumberShouldThrowException(): void {
$this->expectException(\InvalidArgumentException::class);
$this->instance->assertPortNumberValid('-1');
}
-
+
public function testNonNumericalPortNumberShouldThrowException(): void {
$this->expectException(\InvalidArgumentException::class);
$this->instance->assertPortNumberValid('a');
}
-
+
public function testHighPortNumberShouldThrowException(): void {
$this->expectException(\InvalidArgumentException::class);
-
+
$this->instance->assertPortNumberValid('65536');
}
diff --git a/apps/files_external/tests/Storage/SftpTest.php b/apps/files_external/tests/Storage/SftpTest.php
index cc29486f426..082f0d7c502 100644
--- a/apps/files_external/tests/Storage/SftpTest.php
+++ b/apps/files_external/tests/Storage/SftpTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -52,7 +54,7 @@ class SftpTest extends \Test\Files\Storage\Storage {
$this->assertEquals($expectedStorageId, $instance->getId());
}
- public function configProvider() {
+ public static function configProvider(): array {
return [
[
// no root path
diff --git a/apps/files_external/tests/Storage/SmbTest.php b/apps/files_external/tests/Storage/SmbTest.php
index 51737d05dc6..afcb5c1034f 100644
--- a/apps/files_external/tests/Storage/SmbTest.php
+++ b/apps/files_external/tests/Storage/SmbTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/tests/Storage/SwiftTest.php b/apps/files_external/tests/Storage/SwiftTest.php
index c21c8c6f506..17037e76ee3 100644
--- a/apps/files_external/tests/Storage/SwiftTest.php
+++ b/apps/files_external/tests/Storage/SwiftTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2018-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/tests/Storage/WebdavTest.php b/apps/files_external/tests/Storage/WebdavTest.php
index f1d3415e91e..a8de178effd 100644
--- a/apps/files_external/tests/Storage/WebdavTest.php
+++ b/apps/files_external/tests/Storage/WebdavTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/tests/StorageConfigTest.php b/apps/files_external/tests/StorageConfigTest.php
index b67d69a3ce7..b3024cb228c 100644
--- a/apps/files_external/tests/StorageConfigTest.php
+++ b/apps/files_external/tests/StorageConfigTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -13,12 +15,8 @@ use OCA\Files_External\Lib\StorageConfig;
class StorageConfigTest extends \Test\TestCase {
public function testJsonSerialization(): void {
- $backend = $this->getMockBuilder(Backend::class)
- ->disableOriginalConstructor()
- ->getMock();
- $parameter = $this->getMockBuilder(DefinitionParameter::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $backend = $this->createMock(Backend::class);
+ $parameter = $this->createMock(DefinitionParameter::class);
$parameter
->expects($this->once())
->method('getType')
@@ -30,9 +28,7 @@ class StorageConfigTest extends \Test\TestCase {
$backend->method('getIdentifier')
->willReturn('storage::identifier');
- $authMech = $this->getMockBuilder(AuthMechanism::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $authMech = $this->createMock(AuthMechanism::class);
$authMech->method('getIdentifier')
->willReturn('auth::identifier');
diff --git a/apps/files_sharing/l10n/cs.js b/apps/files_sharing/l10n/cs.js
index b81d24b6513..5516d79a1c2 100644
--- a/apps/files_sharing/l10n/cs.js
+++ b/apps/files_sharing/l10n/cs.js
@@ -314,6 +314,7 @@ OC.L10N.register(
"Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Tuto metodu používejte pro sdílení souborů s jednotlivci nebo organizacemi vně té vaší. Soubory a složky je možné nasdílet prostřednictvím veřejných odkazů na sdílení a e-mailových adres. Je také možné nasdílet ostatním Nextcloud účtům hostovaným na různých instancích a to prostřednictvím jejich identifikátorů v rámci federovaného cloudu.",
"Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Sdílení, která nejsou součástí interních nebo externích sdílení. Toto mohou být sdílení z aplikací nebo jiných zdrojů.",
"Share with accounts and teams" : "Nasdílet účtům a týmům",
+ "Email, federated cloud ID" : "E-mail, identif. federovaného cloudu",
"Unable to load the shares list" : "Nedaří se načíst seznam sdílení",
"Expires {relativetime}" : "Platnost končí {relativetime}",
"this share just expired." : "platnost tohoto sdílení právě skončila.",
diff --git a/apps/files_sharing/l10n/cs.json b/apps/files_sharing/l10n/cs.json
index fc3d8509e17..412fd67e258 100644
--- a/apps/files_sharing/l10n/cs.json
+++ b/apps/files_sharing/l10n/cs.json
@@ -312,6 +312,7 @@
"Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Tuto metodu používejte pro sdílení souborů s jednotlivci nebo organizacemi vně té vaší. Soubory a složky je možné nasdílet prostřednictvím veřejných odkazů na sdílení a e-mailových adres. Je také možné nasdílet ostatním Nextcloud účtům hostovaným na různých instancích a to prostřednictvím jejich identifikátorů v rámci federovaného cloudu.",
"Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Sdílení, která nejsou součástí interních nebo externích sdílení. Toto mohou být sdílení z aplikací nebo jiných zdrojů.",
"Share with accounts and teams" : "Nasdílet účtům a týmům",
+ "Email, federated cloud ID" : "E-mail, identif. federovaného cloudu",
"Unable to load the shares list" : "Nedaří se načíst seznam sdílení",
"Expires {relativetime}" : "Platnost končí {relativetime}",
"this share just expired." : "platnost tohoto sdílení právě skončila.",
diff --git a/apps/files_sharing/l10n/de.js b/apps/files_sharing/l10n/de.js
index e686a33970e..8801321c4b1 100644
--- a/apps/files_sharing/l10n/de.js
+++ b/apps/files_sharing/l10n/de.js
@@ -310,7 +310,7 @@ OC.L10N.register(
"Unable to fetch inherited shares" : "Vererbte Freigaben konnten nicht geladen werden",
"Link shares" : "Freigaben teilen",
"Shares" : "Freigaben",
- "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Diese Methode verwenden, um Dateien für Einzelpersonen oder Teams innerhalb deiner Organisation freizugeben. Wenn der Empfangende bereits Zugriff auf die Freigabe hat, diese aber nicht finden kann, kannst du ihnen den internen Freigabelink für einen einfachen Zugriff senden.",
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Verwende diese Methode, um Dateien für Personen oder Teams innerhalb deiner Organisation freizugeben. Wenn der Empfangende bereits Zugriff auf die Freigabe hat, diese aber nicht finden kann, kannst du ihm den internen Freigabelink für einen einfachen Zugriff senden.",
"Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Verwende diese Methode, um Dateien für Personen oder Organisationen außerhalb deiner Organisation freizugeben. Dateien und Ordner können über öffentliche Freigabelinks und E-Mail-Adressen freigegeben werden. Du kannst auch Dateien für andere Nextcloud-Konten freigeben, die auf verschiedenen Instanzen gehostet werden, indem du deren Federated-Cloud-ID verwenden.",
"Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Freigaben, die nicht zu internen oder externen Freigaben gehören. Dies können Freigaben von Apps oder anderen Quellen sein.",
"Share with accounts, teams, federated cloud IDs" : "Teilen mit Konten, Teams, Federated-Cloud-IDs",
@@ -359,7 +359,7 @@ OC.L10N.register(
"Shared by link" : "Über einen Link geteilt",
"List of files that are shared by link." : "Liste der Dateien, die mittels Link geteilt wurden.",
"No shared links" : "Keine geteilten Links",
- "Files and folders you shared by link will show up here" : "Von dir mittels Link geteilte Dateien und Ordner werden hier angezeigt werden",
+ "Files and folders you shared by link will show up here" : "Von dir mittels Link geteilte Dateien und Ordner werden hier angezeigt",
"File requests" : "Dateianfragen",
"List of file requests." : "Liste der Dateianfragen.",
"No file requests" : "Keine Dateianfragen",
@@ -367,11 +367,11 @@ OC.L10N.register(
"Deleted shares" : "Gelöschte Freigaben",
"List of shares you left." : "Liste der Freigaben, die du verlassen hast.",
"No deleted shares" : "Keine gelöschten Freigaben",
- "Shares you have left will show up here" : "Freigaben, die du verlassen hast, werden hier angezeigt werden.",
+ "Shares you have left will show up here" : "Freigaben, die du verlassen hast, werden hier angezeigt",
"Pending shares" : "Ausstehende Freigaben",
"List of unapproved shares." : "Liste ungeprüfter Freigaben.",
"No pending shares" : "Keine ausstehenden Freigaben",
- "Shares you have received but not approved will show up here" : "Freigaben die du erhalten, aber nicht bestätigt hast, werden hier angezeigt",
+ "Shares you have received but not approved will show up here" : "Freigaben, die du erhalten, aber nicht bestätigt hast, werden hier angezeigt",
"Error updating the share: {errorMessage}" : "Fehler beim Aktualisieren der Freigabe: {errorMessage}",
"Error updating the share" : "Fehler beim Aktualisieren der Freigabe",
"File \"{path}\" has been unshared" : "Freigabe für die Datei \"{path}\" wurde entfernt",
diff --git a/apps/files_sharing/l10n/de.json b/apps/files_sharing/l10n/de.json
index a797c90fe56..8c2da36e505 100644
--- a/apps/files_sharing/l10n/de.json
+++ b/apps/files_sharing/l10n/de.json
@@ -308,7 +308,7 @@
"Unable to fetch inherited shares" : "Vererbte Freigaben konnten nicht geladen werden",
"Link shares" : "Freigaben teilen",
"Shares" : "Freigaben",
- "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Diese Methode verwenden, um Dateien für Einzelpersonen oder Teams innerhalb deiner Organisation freizugeben. Wenn der Empfangende bereits Zugriff auf die Freigabe hat, diese aber nicht finden kann, kannst du ihnen den internen Freigabelink für einen einfachen Zugriff senden.",
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Verwende diese Methode, um Dateien für Personen oder Teams innerhalb deiner Organisation freizugeben. Wenn der Empfangende bereits Zugriff auf die Freigabe hat, diese aber nicht finden kann, kannst du ihm den internen Freigabelink für einen einfachen Zugriff senden.",
"Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Verwende diese Methode, um Dateien für Personen oder Organisationen außerhalb deiner Organisation freizugeben. Dateien und Ordner können über öffentliche Freigabelinks und E-Mail-Adressen freigegeben werden. Du kannst auch Dateien für andere Nextcloud-Konten freigeben, die auf verschiedenen Instanzen gehostet werden, indem du deren Federated-Cloud-ID verwenden.",
"Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Freigaben, die nicht zu internen oder externen Freigaben gehören. Dies können Freigaben von Apps oder anderen Quellen sein.",
"Share with accounts, teams, federated cloud IDs" : "Teilen mit Konten, Teams, Federated-Cloud-IDs",
@@ -357,7 +357,7 @@
"Shared by link" : "Über einen Link geteilt",
"List of files that are shared by link." : "Liste der Dateien, die mittels Link geteilt wurden.",
"No shared links" : "Keine geteilten Links",
- "Files and folders you shared by link will show up here" : "Von dir mittels Link geteilte Dateien und Ordner werden hier angezeigt werden",
+ "Files and folders you shared by link will show up here" : "Von dir mittels Link geteilte Dateien und Ordner werden hier angezeigt",
"File requests" : "Dateianfragen",
"List of file requests." : "Liste der Dateianfragen.",
"No file requests" : "Keine Dateianfragen",
@@ -365,11 +365,11 @@
"Deleted shares" : "Gelöschte Freigaben",
"List of shares you left." : "Liste der Freigaben, die du verlassen hast.",
"No deleted shares" : "Keine gelöschten Freigaben",
- "Shares you have left will show up here" : "Freigaben, die du verlassen hast, werden hier angezeigt werden.",
+ "Shares you have left will show up here" : "Freigaben, die du verlassen hast, werden hier angezeigt",
"Pending shares" : "Ausstehende Freigaben",
"List of unapproved shares." : "Liste ungeprüfter Freigaben.",
"No pending shares" : "Keine ausstehenden Freigaben",
- "Shares you have received but not approved will show up here" : "Freigaben die du erhalten, aber nicht bestätigt hast, werden hier angezeigt",
+ "Shares you have received but not approved will show up here" : "Freigaben, die du erhalten, aber nicht bestätigt hast, werden hier angezeigt",
"Error updating the share: {errorMessage}" : "Fehler beim Aktualisieren der Freigabe: {errorMessage}",
"Error updating the share" : "Fehler beim Aktualisieren der Freigabe",
"File \"{path}\" has been unshared" : "Freigabe für die Datei \"{path}\" wurde entfernt",
diff --git a/apps/files_sharing/l10n/de_DE.js b/apps/files_sharing/l10n/de_DE.js
index 608e60101c9..3a60bab00d5 100644
--- a/apps/files_sharing/l10n/de_DE.js
+++ b/apps/files_sharing/l10n/de_DE.js
@@ -310,7 +310,7 @@ OC.L10N.register(
"Unable to fetch inherited shares" : "Laden der vererbten Freigaben fehlgeschlagen",
"Link shares" : "Freigaben teilen",
"Shares" : "Freigaben",
- "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Diese Methode verwenden, um Dateien für Einzelpersonen oder Teams innerhalb Ihrer Organisation freizugeben. Wenn der Empfänger bereits Zugriff auf die Freigabe hat, diese aber nicht finden kann, können Sie ihm den internen Freigabelink für einen einfachen Zugriff senden.",
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Verwenden Sie diese Methode, um Dateien für Personen oder Teams innerhalb Ihrer Organisation freizugeben. Wenn der Empfänger bereits Zugriff auf die Freigabe hat, diese aber nicht finden kann, können Sie ihm den internen Freigabelink für einen einfachen Zugriff senden.",
"Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Verwenden Sie diese Methode, um Dateien für Personen oder Organisationen außerhalb Ihrer Organisation freizugeben. Dateien und Ordner können über öffentliche Freigabelinks und E-Mail-Adressen freigegeben werden. Sie können auch Dateien für andere Nextcloud-Konten freigeben, die auf verschiedenen Instanzen gehostet werden, indem Sie deren Federated-Cloud-ID verwenden.",
"Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Freigaben, die nicht zu internen oder externen Freigaben gehören. Dies können Freigaben von Apps oder anderen Quellen sein.",
"Share with accounts, teams, federated cloud IDs" : "Teilen mit Konten, Teams, Federated-Cloud-IDs",
@@ -348,18 +348,18 @@ OC.L10N.register(
"Files and folders shared with you will show up here" : "Mit Ihnen geteilte Dateien und Ordner werden hier angezeigt",
"Overview of shared files." : "Übersicht geteilter Dateien",
"No shares" : "Keine Freigaben",
- "Files and folders you shared or have been shared with you will show up here" : "Von Ihnen oder mit Ihnen geteilte Ordner und Dateien werden hier angezeigt werden",
+ "Files and folders you shared or have been shared with you will show up here" : "Von Ihnen oder mit Ihnen geteilte Ordner und Dateien werden hier angezeigt",
"Shared with you" : "Mit Ihnen geteilt",
"List of files that are shared with you." : "Liste der Dateien, die mit Ihnen geteilt wurden.",
"Nothing shared with you yet" : "Bis jetzt wurde nichts mit Ihnen geteilt",
- "Files and folders others shared with you will show up here" : "Mit Ihnen geteilte Dateien und Ordner werden hier angezeigt werden",
+ "Files and folders others shared with you will show up here" : "Mit Ihnen geteilte Dateien und Ordner werden hier angezeigt",
"List of files that you shared with others." : "Liste der Dateien, die Sie mit anderen geteilt haben.",
"Nothing shared yet" : "Noch nichts geteilt",
- "Files and folders you shared will show up here" : "Von Ihnen geteilte Dateien und Ordner werden hier angezeigt werden",
+ "Files and folders you shared will show up here" : "Von Ihnen geteilte Dateien und Ordner werden hier angezeigt",
"Shared by link" : "Über einen Link geteilt",
"List of files that are shared by link." : "Liste der Dateien, die mittels Link geteilt wurden.",
"No shared links" : "Keine geteilten Links",
- "Files and folders you shared by link will show up here" : "Von Ihnen mittels Link geteilte Dateien und Ordner werden hier angezeigt werden",
+ "Files and folders you shared by link will show up here" : "Von Ihnen mittels Link geteilte Dateien und Ordner werden hier angezeigt",
"File requests" : "Dateianfragen",
"List of file requests." : "Liste der Dateianfragen.",
"No file requests" : "Keine Dateianfragen",
@@ -367,11 +367,11 @@ OC.L10N.register(
"Deleted shares" : "Gelöschte Freigaben",
"List of shares you left." : "Liste der Freigaben, die Sie verlassen haben.",
"No deleted shares" : "Keine gelöschten Freigaben",
- "Shares you have left will show up here" : "Freigaben die Sie verlassen haben, werden hier angezeigt werden",
+ "Shares you have left will show up here" : "Freigaben, die Sie verlassen haben, werden hier angezeigt",
"Pending shares" : "Ausstehende Freigaben",
"List of unapproved shares." : "Liste ungeprüfter Freigaben.",
"No pending shares" : "Keine ausstehenden Freigaben",
- "Shares you have received but not approved will show up here" : "Freigaben die Sie erhalten, aber nicht bestätigt haben, werden hier angezeigt werden",
+ "Shares you have received but not approved will show up here" : "Freigaben, die Sie erhalten, aber nicht bestätigt haben, werden hier angezeigt",
"Error updating the share: {errorMessage}" : "Fehler beim Aktualisieren der Freigabe: {errorMessage}",
"Error updating the share" : "Fehler beim Aktualisieren der Freigabe",
"File \"{path}\" has been unshared" : "Freigabe für die Datei \"{path}\" wurde entfernt",
diff --git a/apps/files_sharing/l10n/de_DE.json b/apps/files_sharing/l10n/de_DE.json
index 97c1ac18a7c..8d95f9dc4ec 100644
--- a/apps/files_sharing/l10n/de_DE.json
+++ b/apps/files_sharing/l10n/de_DE.json
@@ -308,7 +308,7 @@
"Unable to fetch inherited shares" : "Laden der vererbten Freigaben fehlgeschlagen",
"Link shares" : "Freigaben teilen",
"Shares" : "Freigaben",
- "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Diese Methode verwenden, um Dateien für Einzelpersonen oder Teams innerhalb Ihrer Organisation freizugeben. Wenn der Empfänger bereits Zugriff auf die Freigabe hat, diese aber nicht finden kann, können Sie ihm den internen Freigabelink für einen einfachen Zugriff senden.",
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Verwenden Sie diese Methode, um Dateien für Personen oder Teams innerhalb Ihrer Organisation freizugeben. Wenn der Empfänger bereits Zugriff auf die Freigabe hat, diese aber nicht finden kann, können Sie ihm den internen Freigabelink für einen einfachen Zugriff senden.",
"Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Verwenden Sie diese Methode, um Dateien für Personen oder Organisationen außerhalb Ihrer Organisation freizugeben. Dateien und Ordner können über öffentliche Freigabelinks und E-Mail-Adressen freigegeben werden. Sie können auch Dateien für andere Nextcloud-Konten freigeben, die auf verschiedenen Instanzen gehostet werden, indem Sie deren Federated-Cloud-ID verwenden.",
"Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Freigaben, die nicht zu internen oder externen Freigaben gehören. Dies können Freigaben von Apps oder anderen Quellen sein.",
"Share with accounts, teams, federated cloud IDs" : "Teilen mit Konten, Teams, Federated-Cloud-IDs",
@@ -346,18 +346,18 @@
"Files and folders shared with you will show up here" : "Mit Ihnen geteilte Dateien und Ordner werden hier angezeigt",
"Overview of shared files." : "Übersicht geteilter Dateien",
"No shares" : "Keine Freigaben",
- "Files and folders you shared or have been shared with you will show up here" : "Von Ihnen oder mit Ihnen geteilte Ordner und Dateien werden hier angezeigt werden",
+ "Files and folders you shared or have been shared with you will show up here" : "Von Ihnen oder mit Ihnen geteilte Ordner und Dateien werden hier angezeigt",
"Shared with you" : "Mit Ihnen geteilt",
"List of files that are shared with you." : "Liste der Dateien, die mit Ihnen geteilt wurden.",
"Nothing shared with you yet" : "Bis jetzt wurde nichts mit Ihnen geteilt",
- "Files and folders others shared with you will show up here" : "Mit Ihnen geteilte Dateien und Ordner werden hier angezeigt werden",
+ "Files and folders others shared with you will show up here" : "Mit Ihnen geteilte Dateien und Ordner werden hier angezeigt",
"List of files that you shared with others." : "Liste der Dateien, die Sie mit anderen geteilt haben.",
"Nothing shared yet" : "Noch nichts geteilt",
- "Files and folders you shared will show up here" : "Von Ihnen geteilte Dateien und Ordner werden hier angezeigt werden",
+ "Files and folders you shared will show up here" : "Von Ihnen geteilte Dateien und Ordner werden hier angezeigt",
"Shared by link" : "Über einen Link geteilt",
"List of files that are shared by link." : "Liste der Dateien, die mittels Link geteilt wurden.",
"No shared links" : "Keine geteilten Links",
- "Files and folders you shared by link will show up here" : "Von Ihnen mittels Link geteilte Dateien und Ordner werden hier angezeigt werden",
+ "Files and folders you shared by link will show up here" : "Von Ihnen mittels Link geteilte Dateien und Ordner werden hier angezeigt",
"File requests" : "Dateianfragen",
"List of file requests." : "Liste der Dateianfragen.",
"No file requests" : "Keine Dateianfragen",
@@ -365,11 +365,11 @@
"Deleted shares" : "Gelöschte Freigaben",
"List of shares you left." : "Liste der Freigaben, die Sie verlassen haben.",
"No deleted shares" : "Keine gelöschten Freigaben",
- "Shares you have left will show up here" : "Freigaben die Sie verlassen haben, werden hier angezeigt werden",
+ "Shares you have left will show up here" : "Freigaben, die Sie verlassen haben, werden hier angezeigt",
"Pending shares" : "Ausstehende Freigaben",
"List of unapproved shares." : "Liste ungeprüfter Freigaben.",
"No pending shares" : "Keine ausstehenden Freigaben",
- "Shares you have received but not approved will show up here" : "Freigaben die Sie erhalten, aber nicht bestätigt haben, werden hier angezeigt werden",
+ "Shares you have received but not approved will show up here" : "Freigaben, die Sie erhalten, aber nicht bestätigt haben, werden hier angezeigt",
"Error updating the share: {errorMessage}" : "Fehler beim Aktualisieren der Freigabe: {errorMessage}",
"Error updating the share" : "Fehler beim Aktualisieren der Freigabe",
"File \"{path}\" has been unshared" : "Freigabe für die Datei \"{path}\" wurde entfernt",
diff --git a/apps/files_sharing/l10n/sr.js b/apps/files_sharing/l10n/sr.js
index 26f8840d067..fd1fde2794c 100644
--- a/apps/files_sharing/l10n/sr.js
+++ b/apps/files_sharing/l10n/sr.js
@@ -313,7 +313,9 @@ OC.L10N.register(
"Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Употребите ову методу да фајлове делите да појединцима или тимовима унутар своје организације. Ако прималац већ има приступ дељењу, али не може да га лоцира, можете му послати интерни линк дељења тако да може лако да му приступи.",
"Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Употребите ову методу да фајлове делите са појединцима или организацијама ван своје организације. Фајлови и фолдери могу да се деле путем јавних линкова дељења и и-мејл адресама. Такође можете да делите осталим Nextcloud налозима који се хостују на другим инстанцама користећи њихов ID здруженог облака.",
"Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Дељења која нису део интерних или спољних дељења. Ово могу бити дељења из апликација или осталих извора.",
+ "Share with accounts, teams, federated cloud IDs" : "Дели са налозима, тимовима, ID-јевима здруженог облака",
"Share with accounts and teams" : "Дељење са налозима и тимовима",
+ "Email, federated cloud ID" : "И-мејл, ID здруженог облака",
"Unable to load the shares list" : "Неуспело учитавање листе дељења",
"Expires {relativetime}" : "Истиче {relativetime}",
"this share just expired." : "ово дељење је управо истекло.",
diff --git a/apps/files_sharing/l10n/sr.json b/apps/files_sharing/l10n/sr.json
index 4d33aa6ab03..c4d99ff0434 100644
--- a/apps/files_sharing/l10n/sr.json
+++ b/apps/files_sharing/l10n/sr.json
@@ -311,7 +311,9 @@
"Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Употребите ову методу да фајлове делите да појединцима или тимовима унутар своје организације. Ако прималац већ има приступ дељењу, али не може да га лоцира, можете му послати интерни линк дељења тако да може лако да му приступи.",
"Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Употребите ову методу да фајлове делите са појединцима или организацијама ван своје организације. Фајлови и фолдери могу да се деле путем јавних линкова дељења и и-мејл адресама. Такође можете да делите осталим Nextcloud налозима који се хостују на другим инстанцама користећи њихов ID здруженог облака.",
"Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Дељења која нису део интерних или спољних дељења. Ово могу бити дељења из апликација или осталих извора.",
+ "Share with accounts, teams, federated cloud IDs" : "Дели са налозима, тимовима, ID-јевима здруженог облака",
"Share with accounts and teams" : "Дељење са налозима и тимовима",
+ "Email, federated cloud ID" : "И-мејл, ID здруженог облака",
"Unable to load the shares list" : "Неуспело учитавање листе дељења",
"Expires {relativetime}" : "Истиче {relativetime}",
"this share just expired." : "ово дељење је управо истекло.",
diff --git a/apps/files_versions/tests/BackgroundJob/ExpireVersionsTest.php b/apps/files_versions/tests/BackgroundJob/ExpireVersionsTest.php
index 7a35e9f5f39..21e88e86f90 100644
--- a/apps/files_versions/tests/BackgroundJob/ExpireVersionsTest.php
+++ b/apps/files_versions/tests/BackgroundJob/ExpireVersionsTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -16,17 +18,10 @@ use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class ExpireVersionsTest extends TestCase {
- /** @var IConfig|MockObject */
- private $config;
-
- /** @var IUserManager|MockObject */
- private $userManager;
-
- /** @var Expiration|MockObject */
- private $expiration;
-
- /** @var IJobList|MockObject */
- private $jobList;
+ private IConfig&MockObject $config;
+ private IUserManager&MockObject $userManager;
+ private Expiration&MockObject $expiration;
+ private IJobList&MockObject $jobList;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/files_versions/tests/Command/CleanupTest.php b/apps/files_versions/tests/Command/CleanupTest.php
index 62d9576e9c5..b0a5c0ca268 100644
--- a/apps/files_versions/tests/Command/CleanupTest.php
+++ b/apps/files_versions/tests/Command/CleanupTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -8,11 +10,13 @@ namespace OCA\Files_Versions\Tests\Command;
use OC\User\Manager;
use OCA\Files_Versions\Command\CleanUp;
+use OCA\Files_Versions\Db\VersionsMapper;
use OCP\Files\Cache\ICache;
use OCP\Files\Folder;
use OCP\Files\IRootFolder;
use OCP\Files\Storage\IStorage;
use OCP\UserInterface;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
/**
@@ -23,28 +27,17 @@ use Test\TestCase;
* @package OCA\Files_Versions\Tests\Command
*/
class CleanupTest extends TestCase {
-
- /** @var CleanUp */
- protected $cleanup;
-
- /** @var \PHPUnit\Framework\MockObject\MockObject | Manager */
- protected $userManager;
-
- /** @var \PHPUnit\Framework\MockObject\MockObject | IRootFolder */
- protected $rootFolder;
-
- /** @var \PHPUnit\Framework\MockObject\MockObject | VersionsMapper */
- protected $versionMapper;
+ protected Manager&MockObject $userManager;
+ protected IRootFolder&MockObject $rootFolder;
+ protected VersionsMapper&MockObject $versionMapper;
+ protected CleanUp $cleanup;
protected function setUp(): void {
parent::setUp();
- $this->rootFolder = $this->getMockBuilder('OCP\Files\IRootFolder')
- ->disableOriginalConstructor()->getMock();
- $this->userManager = $this->getMockBuilder('OC\User\Manager')
- ->disableOriginalConstructor()->getMock();
- $this->versionMapper = $this->getMockBuilder('OCA\Files_Versions\Db\VersionsMapper')
- ->disableOriginalConstructor()->getMock();
+ $this->rootFolder = $this->createMock(IRootFolder::class);
+ $this->userManager = $this->createMock(Manager::class);
+ $this->versionMapper = $this->createMock(VersionsMapper::class);
$this->cleanup = new CleanUp($this->rootFolder, $this->userManager, $this->versionMapper);
}
@@ -53,7 +46,7 @@ class CleanupTest extends TestCase {
* @dataProvider dataTestDeleteVersions
* @param boolean $nodeExists
*/
- public function testDeleteVersions($nodeExists): void {
+ public function testDeleteVersions(bool $nodeExists): void {
$this->rootFolder->expects($this->once())
->method('nodeExists')
->with('/testUser/files_versions')
@@ -92,7 +85,7 @@ class CleanupTest extends TestCase {
$this->invokePrivate($this->cleanup, 'deleteVersions', ['testUser']);
}
- public function dataTestDeleteVersions() {
+ public static function dataTestDeleteVersions(): array {
return [
[true],
[false]
@@ -106,8 +99,8 @@ class CleanupTest extends TestCase {
public function testExecuteDeleteListOfUsers(): void {
$userIds = ['user1', 'user2', 'user3'];
- $instance = $this->getMockBuilder('OCA\Files_Versions\Command\CleanUp')
- ->setMethods(['deleteVersions'])
+ $instance = $this->getMockBuilder(CleanUp::class)
+ ->onlyMethods(['deleteVersions'])
->setConstructorArgs([$this->rootFolder, $this->userManager, $this->versionMapper])
->getMock();
$instance->expects($this->exactly(count($userIds)))
@@ -119,14 +112,12 @@ class CleanupTest extends TestCase {
$this->userManager->expects($this->exactly(count($userIds)))
->method('userExists')->willReturn(true);
- $inputInterface = $this->getMockBuilder('\Symfony\Component\Console\Input\InputInterface')
- ->disableOriginalConstructor()->getMock();
+ $inputInterface = $this->createMock(\Symfony\Component\Console\Input\InputInterface::class);
$inputInterface->expects($this->once())->method('getArgument')
->with('user_id')
->willReturn($userIds);
- $outputInterface = $this->getMockBuilder('\Symfony\Component\Console\Output\OutputInterface')
- ->disableOriginalConstructor()->getMock();
+ $outputInterface = $this->createMock(\Symfony\Component\Console\Output\OutputInterface::class);
$this->invokePrivate($instance, 'execute', [$inputInterface, $outputInterface]);
}
@@ -138,8 +129,8 @@ class CleanupTest extends TestCase {
$userIds = [];
$backendUsers = ['user1', 'user2'];
- $instance = $this->getMockBuilder('OCA\Files_Versions\Command\CleanUp')
- ->setMethods(['deleteVersions'])
+ $instance = $this->getMockBuilder(CleanUp::class)
+ ->onlyMethods(['deleteVersions'])
->setConstructorArgs([$this->rootFolder, $this->userManager, $this->versionMapper])
->getMock();
@@ -155,14 +146,12 @@ class CleanupTest extends TestCase {
$this->assertTrue(in_array($user, $backendUsers));
});
- $inputInterface = $this->getMockBuilder('\Symfony\Component\Console\Input\InputInterface')
- ->disableOriginalConstructor()->getMock();
+ $inputInterface = $this->createMock(\Symfony\Component\Console\Input\InputInterface::class);
$inputInterface->expects($this->once())->method('getArgument')
->with('user_id')
->willReturn($userIds);
- $outputInterface = $this->getMockBuilder('\Symfony\Component\Console\Output\OutputInterface')
- ->disableOriginalConstructor()->getMock();
+ $outputInterface = $this->createMock(\Symfony\Component\Console\Output\OutputInterface::class);
$this->userManager->expects($this->once())
->method('getBackends')
diff --git a/apps/files_versions/tests/Command/ExpireTest.php b/apps/files_versions/tests/Command/ExpireTest.php
index 11f4eb2e2be..b74457a7fd6 100644
--- a/apps/files_versions/tests/Command/ExpireTest.php
+++ b/apps/files_versions/tests/Command/ExpireTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_versions/tests/Controller/PreviewControllerTest.php b/apps/files_versions/tests/Controller/PreviewControllerTest.php
index 0e36703d5aa..542ea2b6b34 100644
--- a/apps/files_versions/tests/Controller/PreviewControllerTest.php
+++ b/apps/files_versions/tests/Controller/PreviewControllerTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -12,7 +14,6 @@ use OCP\AppFramework\Http;
use OCP\AppFramework\Http\DataResponse;
use OCP\Files\File;
use OCP\Files\Folder;
-use OCP\Files\IMimeTypeDetector;
use OCP\Files\IRootFolder;
use OCP\Files\NotFoundException;
use OCP\Files\SimpleFS\ISimpleFile;
@@ -25,29 +26,14 @@ use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class PreviewControllerTest extends TestCase {
-
- /** @var IRootFolder|\PHPUnit\Framework\MockObject\MockObject */
- private $rootFolder;
-
- /** @var string */
- private $userId;
-
- /** @var IMimeTypeDetector|\PHPUnit\Framework\MockObject\MockObject */
- private $mimeTypeDetector;
-
- /** @var IPreview|\PHPUnit\Framework\MockObject\MockObject */
- private $previewManager;
-
- /** @var PreviewController|\PHPUnit\Framework\MockObject\MockObject */
- private $controller;
-
- /** @var IUserSession|\PHPUnit\Framework\MockObject\MockObject */
- private $userSession;
-
- /** @var IVersionManager|\PHPUnit\Framework\MockObject\MockObject */
- private $versionManager;
+ private IRootFolder&MockObject $rootFolder;
+ private string $userId;
+ private IPreview&MockObject $previewManager;
+ private IUserSession&MockObject $userSession;
+ private IVersionManager&MockObject $versionManager;
private IMimeIconProvider&MockObject $mimeIconProvider;
+ private PreviewController $controller;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/files_versions/tests/ExpirationTest.php b/apps/files_versions/tests/ExpirationTest.php
index ac8af7c093a..866e4861741 100644
--- a/apps/files_versions/tests/ExpirationTest.php
+++ b/apps/files_versions/tests/ExpirationTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -15,7 +17,7 @@ use Psr\Log\LoggerInterface;
class ExpirationTest extends \Test\TestCase {
public const SECONDS_PER_DAY = 86400; //60*60*24
- public function expirationData() {
+ public static function expirationData(): array {
$today = 100 * self::SECONDS_PER_DAY;
$back10Days = (100 - 10) * self::SECONDS_PER_DAY;
$back20Days = (100 - 20) * self::SECONDS_PER_DAY;
@@ -81,14 +83,8 @@ class ExpirationTest extends \Test\TestCase {
/**
* @dataProvider expirationData
- *
- * @param string $retentionObligation
- * @param int $timeNow
- * @param int $timestamp
- * @param bool $quotaExceeded
- * @param string $expectedResult
*/
- public function testExpiration($retentionObligation, $timeNow, $timestamp, $quotaExceeded, $expectedResult): void {
+ public function testExpiration(string $retentionObligation, int $timeNow, int $timestamp, bool $quotaExceeded, bool $expectedResult): void {
$mockedConfig = $this->getMockedConfig($retentionObligation);
$mockedTimeFactory = $this->getMockedTimeFactory($timeNow);
$mockedLogger = $this->createMock(LoggerInterface::class);
@@ -100,11 +96,7 @@ class ExpirationTest extends \Test\TestCase {
}
- /**
- * @param int $time
- * @return ITimeFactory|MockObject
- */
- private function getMockedTimeFactory($time) {
+ private function getMockedTimeFactory(int $time): ITimeFactory&MockObject {
$mockedTimeFactory = $this->createMock(ITimeFactory::class);
$mockedTimeFactory->expects($this->any())
->method('getTime')
@@ -113,11 +105,7 @@ class ExpirationTest extends \Test\TestCase {
return $mockedTimeFactory;
}
- /**
- * @param string $returnValue
- * @return IConfig|MockObject
- */
- private function getMockedConfig($returnValue) {
+ private function getMockedConfig(string $returnValue): IConfig&MockObject {
$mockedConfig = $this->createMock(IConfig::class);
$mockedConfig->expects($this->any())
->method('getSystemValue')
diff --git a/apps/files_versions/tests/StorageTest.php b/apps/files_versions/tests/StorageTest.php
index dd5b94c7a22..592f03f5e63 100644
--- a/apps/files_versions/tests/StorageTest.php
+++ b/apps/files_versions/tests/StorageTest.php
@@ -24,7 +24,7 @@ class StorageTest extends TestCase {
private $versionsRoot;
private $userFolder;
- private $expireTimestamp = 10;
+ private int $expireTimestamp = 10;
protected function setUp(): void {
parent::setUp();
@@ -46,7 +46,7 @@ class StorageTest extends TestCase {
}
- protected function createPastFile(string $path, int $mtime) {
+ protected function createPastFile(string $path, int $mtime): void {
try {
$file = $this->userFolder->get($path);
} catch (NotFoundException $e) {
diff --git a/apps/files_versions/tests/VersioningTest.php b/apps/files_versions/tests/VersioningTest.php
index eaa0a02e261..659b2cff10c 100644
--- a/apps/files_versions/tests/VersioningTest.php
+++ b/apps/files_versions/tests/VersioningTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -163,7 +165,7 @@ class VersioningTest extends \Test\TestCase {
}
}
- public function versionsProvider() {
+ public static function versionsProvider(): array {
return [
// first set of versions uniformly distributed versions
[
@@ -683,7 +685,7 @@ class VersioningTest extends \Test\TestCase {
$firstVersion = current($versions);
- $this->assertFalse(Storage::rollback('folder/test.txt', $firstVersion['version'], $this->user2), 'Revert did not happen');
+ $this->assertFalse(Storage::rollback('folder/test.txt', (int)$firstVersion['version'], $this->user2), 'Revert did not happen');
$this->loginAsUser(self::TEST_VERSIONS_USER);
@@ -743,8 +745,8 @@ class VersioningTest extends \Test\TestCase {
return;
}
- $eventHandler = $this->getMockBuilder(\stdclass::class)
- ->setMethods(['callback'])
+ $eventHandler = $this->getMockBuilder(DummyHookListener::class)
+ ->onlyMethods(['callback'])
->getMock();
$eventHandler->expects($this->any())
@@ -763,7 +765,7 @@ class VersioningTest extends \Test\TestCase {
);
}
- private function doTestRestore() {
+ private function doTestRestore(): void {
$filePath = self::TEST_VERSIONS_USER . '/files/sub/test.txt';
$this->rootView->file_put_contents($filePath, 'test file');
@@ -941,11 +943,7 @@ class VersioningTest extends \Test\TestCase {
);
}
- /**
- * @param View $view
- * @param string $path
- */
- private function createAndCheckVersions(View $view, $path) {
+ private function createAndCheckVersions(View $view, string $path): array {
$view->file_put_contents($path, 'test file');
$view->file_put_contents($path, 'version 1');
$view->file_put_contents($path, 'version 2');
@@ -967,11 +965,7 @@ class VersioningTest extends \Test\TestCase {
return $versions;
}
- /**
- * @param string $user
- * @param bool $create
- */
- public static function loginHelper($user, $create = false) {
+ public static function loginHelper(string $user, bool $create = false) {
if ($create) {
$backend = new \Test\Util\User\Dummy();
$backend->createUser($user, $user);
@@ -987,6 +981,11 @@ class VersioningTest extends \Test\TestCase {
}
}
+class DummyHookListener {
+ public function callback() {
+ }
+}
+
// extend the original class to make it possible to test protected methods
class VersionStorageToTest extends Storage {
diff --git a/apps/files_versions/tests/Versions/VersionManagerTest.php b/apps/files_versions/tests/Versions/VersionManagerTest.php
index 8001d9fbf0e..79caa65d5f1 100644
--- a/apps/files_versions/tests/Versions/VersionManagerTest.php
+++ b/apps/files_versions/tests/Versions/VersionManagerTest.php
@@ -6,7 +6,7 @@ declare(strict_types=1);
* SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\files_versions\tests\Versions;
+namespace OCA\Files_Versions\Tests\Versions;
use OC\Files\Storage\Local;
use OCA\Files_Versions\Events\VersionRestoredEvent;
@@ -15,6 +15,7 @@ use OCA\Files_Versions\Versions\IVersionBackend;
use OCA\Files_Versions\Versions\VersionManager;
use OCP\EventDispatcher\IEventDispatcher;
use OCP\Files\Storage\IStorage;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class VersionManagerTest extends TestCase {
@@ -25,10 +26,10 @@ class VersionManagerTest extends TestCase {
return $backend;
}
- private function getStorage(string $class): IStorage {
+ private function getStorage(string $class): IStorage&MockObject {
return $this->getMockBuilder($class)
->disableOriginalConstructor()
- ->setMethodsExcept(['instanceOfStorage'])
+ ->onlyMethods(array_diff(get_class_methods($class), ['instanceOfStorage']))
->getMock();
}
diff --git a/apps/settings/l10n/de.js b/apps/settings/l10n/de.js
index 1b90e97094c..a2ffe6ec50f 100644
--- a/apps/settings/l10n/de.js
+++ b/apps/settings/l10n/de.js
@@ -10,7 +10,7 @@ OC.L10N.register(
"Published" : "Veröffentlicht",
"Synchronize to trusted servers and the global and public address book" : "Mit vertrauenswürdigen Servern und dem globalen und öffentlichen Adressbuch synchronisieren",
"Verify" : "Überprüfen",
- "Verifying …" : "Überprüfe …",
+ "Verifying …" : "Überprüfe…",
"Unable to change password" : "Passwort konnte nicht geändert werden",
"Very weak password" : "Sehr schwaches Passwort",
"Weak password" : "Schwaches Passwort",
@@ -71,7 +71,7 @@ OC.L10N.register(
"If you received this email, the email configuration seems to be correct." : "Wenn du diese E-Mail empfangen hast, sind die E-Mail-Einstellungen korrekt.",
"Email could not be sent. Check your mail server log" : "E-Mail konnte nicht versandt werden. E-Mail-Serverprotokoll überprüfen",
"A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Beim Senden der E-Mail ist ein Problem aufgetreten. Bitte die Einstellungen überprüfen. (Fehler: %s)",
- "You need to set your account email before being able to send test emails. Go to %s for that." : "Vor dem Versenden von Test-E-Mails musse die Konto-E-Mailadresse festgelegt werden. Gehe dazu zu %s.",
+ "You need to set your account email before being able to send test emails. Go to %s for that." : "Vor dem Versenden von Test-E-Mails muss die Konto-E-Mail-Adresse festgelegt werden. Gehe dazu zu %s.",
"Recently active" : "Kürzlich aktiv",
"Disabled accounts" : "Deaktivierte Konten",
"Invalid account" : "Ungültiges Konto",
@@ -103,12 +103,12 @@ OC.L10N.register(
"Your Login is: %s" : "Dein Anmeldename lautet: %s",
"Set your password" : "Setze dein Passwort",
"Go to %s" : "%s aufrufen",
- "Install Client" : "Installiere den Client",
+ "Install Client" : "Client installieren",
"Logged in account must be a sub admin" : "Das angemeldete Konto muss eine Unteradministration sein.",
"Apps" : "Apps",
"Personal" : "Persönlich",
"Administration" : "Administration",
- "Users" : "Benutzer",
+ "Users" : "Konten",
"Additional settings" : "Zusätzliche Einstellungen",
"Artificial Intelligence" : "Künstliche Intelligenz",
"Administration privileges" : "Administrationsrechte",
@@ -142,8 +142,8 @@ OC.L10N.register(
"Your remote address could not be determined." : "Deine Remote-Adresse konnte nicht ermittelt werden.",
"Your remote address was identified as \"%s\" and is brute-force throttled at the moment slowing down the performance of various requests. If the remote address is not your address this can be an indication that a proxy is not configured correctly." : "Deine Remote-Adresse wurde als \"%s\" erkannt und wird derzeit durch die Brute-Force-Erkennung gedrosselt, was die Leistung verschiedener Anfragen verlangsamt. Wenn die Remote-Adresse nicht deine Adresse ist, kann dies ein Hinweis darauf sein, dass ein Proxy nicht richtig konfiguriert ist.",
"Your remote address \"%s\" is not brute-force throttled." : "Deine Remote-Adresse \"%s\" ist nicht durch die Brute-Force-Erkennung gedrosselt.",
- "Old administration imported certificates" : "Alte, von der Adminstration importierte Zertifikate",
- "A background job is pending that checks for administration imported SSL certificates. Please check back later." : "Eine Hintergrundaufgabe, die nach, von der Adminstration importierten SSL-Zertifikaten sucht, läuft noch. Bitte später erneut versuchen.",
+ "Old administration imported certificates" : "Alte, von der Administration importierte Zertifikate",
+ "A background job is pending that checks for administration imported SSL certificates. Please check back later." : "Eine Hintergrundaufgabe, die nach von der Administration importierten SSL-Zertifikaten sucht, läuft noch. Bitte später erneut versuchen.",
"There are some administration imported SSL certificates present, that are not used anymore with Nextcloud 21. They can be imported on the command line via \"occ security:certificates:import\" command. Their paths inside the data directory are shown below." : "Es sind einige, von der Administration importierte SSL-Zertifikate vorhanden, die von Nextcloud 21 nicht mehr verwendet werden. Du kannst diese über den Befehl \"occ security:certificates:import\" in der Befehlszeile importieren. Deine Pfade innerhalb des Datenverzeichnisses werden unten angezeigt.",
"Code integrity" : "Codeintegrität",
"Integrity checker has been disabled. Integrity cannot be verified." : "Die Integritätsprüfung wurde deaktiviert. Die Integrität kann nicht überprüft werden.",
@@ -153,8 +153,8 @@ OC.L10N.register(
"It was not possible to execute the cron job via CLI. The following technical errors have appeared:\n%s" : "Es war nicht möglich, den Cron-Job über die CLI auszuführen. Es sind folgende technische Fehler aufgetreten:\n%s",
"The last cron job ran without errors." : "Der letzte Cron-Job wurde ohne Fehler ausgeführt.",
"Cron last run" : "Cron zuletzt ausgeführt",
- "Last background job execution ran %s. Something seems wrong. {link}." : "Letzte Hintergrund-Jobausführung lief %s. Etwas scheint nicht in Ordnung zu sein. {link}.",
- "Last background job execution ran %s." : "Letzte Hintergrund-Jobausführung lief %s.",
+ "Last background job execution ran %s. Something seems wrong. {link}." : "Letzte Hintergrundaufgaben-Ausführung lief %s. Etwas scheint nicht in Ordnung zu sein. {link}.",
+ "Last background job execution ran %s." : "Letzte Hintergrundaufgaben-Ausführung lief %s.",
"Data directory protected" : "Datenverzeichnis geschützt",
"Your data directory and files are probably accessible from the internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root." : "Dein Datenverzeichnis und deine Dateien sind wahrscheinlich vom Internet aus erreichbar. Die .htaccess-Datei funktioniert nicht. Es wird dringend empfohlen, deinen Webserver dahingehend zu konfigurieren, dass das Datenverzeichnis nicht mehr vom Internet aus erreichbar ist oder dass du es aus dem Document-Root-Verzeichnis des Webservers herausverschiebst.",
"Could not check that the data directory is protected. Please check manually that your server does not allow access to the data directory." : "Es konnte nicht überprüft werden, ob das Datenverzeichnis geschützt ist. Bitte überprüfe manuell, ob dein Server keinen Zugriff auf das Datenverzeichnis erlaubt.",
@@ -351,7 +351,7 @@ OC.L10N.register(
"Text processing" : "Textverarbeitung",
"Text processing tasks can be implemented by different apps. Here you can set which app should be used for which task." : "Textverarbeitungsaufgaben können mittels verschiedener Apps umgesetzt werden. Hier kann eingestellt werden, welche App für welche Aufgabe verwendet werden soll.",
"None of your currently installed apps provide text processing functionality using the Text Processing API." : "Keine deiner derzeit installierten Apps bietet Funktionalität zur Textverarbeitung durch Nutzung der Text-Processing-API.",
- "Here you can decide which group can access certain sections of the administration settings." : "Hier kann festgelegt werden, welche Gruppe auf bestimmte Bereiche der Verwaltungseinstellungen zugreifen kann.",
+ "Here you can decide which group can access certain sections of the administration settings." : "Hier kann festgelegt werden, welche Gruppe auf bestimmte Bereiche der Administrationseinstellungen zugreifen kann.",
"Unable to modify setting" : "Einstellung konnte nicht geändert werden",
"None" : "Keine",
"Changed disclaimer text" : "Geänderter Haftungsausschlusstext",
@@ -548,11 +548,11 @@ OC.L10N.register(
"Use system cron service to call the cron.php file every 5 minutes." : "Den System-Cron-Dienst verwenden, um die Datei cron.php alle 5 Minuten aufzurufen.",
"The cron.php needs to be executed by the system account \"{user}\"." : "Die cron.php muss von dem Systemkonto \"{user}\" ausgeführt werden.",
"The PHP POSIX extension is required. See {linkstart}PHP documentation{linkend} for more details." : "Die PHP-POSIX-Erweiterung ist erforderlich. Weitere Einzelheiten hierzu in der {linkstart}PHP-Dokumentation{linkend}.",
- "Unable to update background job mode" : "Hintergrund-Job-Modus kann nicht aktualisiert werden",
- "For the server to work properly, it's important to configure background jobs correctly. Cron is the recommended setting. Please see the documentation for more information." : "Damit der Server ordnungsgemäß funktioniert, ist es wichtig, Hintergrund-Aufgaben richtig zu konfigurieren. Cron ist die empfohlene Einstellung. Weitere Informationen finden sich in der Dokumentation.",
+ "Unable to update background job mode" : "Hintergrundaufgaben-Modus kann nicht aktualisiert werden",
+ "For the server to work properly, it's important to configure background jobs correctly. Cron is the recommended setting. Please see the documentation for more information." : "Damit der Server ordnungsgemäß funktioniert, ist es wichtig, Hintergrundaufgaben richtig zu konfigurieren. Cron ist die empfohlene Einstellung. Weitere Informationen finden sich in der Dokumentation.",
"Last job execution ran {time}. Something seems wrong." : "Der letzte Job lief {time}. Etwas scheint nicht zu stimmen.",
"Last job ran {relativeTime}." : "Der letzte Job lief {relativeTime}.",
- "Background job did not run yet!" : "Hintergrund-Job wurde bislang nicht ausgeführt!",
+ "Background job did not run yet!" : "Hintergrundaufgabe wurde bislang nicht ausgeführt!",
"AJAX" : "AJAX",
"Execute one task with each page loaded. Use case: Single account instance." : "Mit jeder geladenen Seite wird eine Aufgabe ausgeführt. Anwendungsfall: Einzelkonto-Installation.",
"Webcron" : "Webcron",
@@ -746,7 +746,7 @@ OC.L10N.register(
"Visibility" : "Sichtbarkeit",
"Show language" : "Sprache anzeigen",
"Show account backend" : "Konto-Backend anzeigen",
- "Show storage path" : "Zeige Speicherpfad",
+ "Show storage path" : "Speicherpfad anzeigen",
"Show first login" : "Erste Anmeldung anzeigen",
"Show last login" : "Letzte Anmeldung anzeigen",
"Sorting" : "Sortiere",
diff --git a/apps/settings/l10n/de.json b/apps/settings/l10n/de.json
index 19b887b7028..ba7f4102561 100644
--- a/apps/settings/l10n/de.json
+++ b/apps/settings/l10n/de.json
@@ -8,7 +8,7 @@
"Published" : "Veröffentlicht",
"Synchronize to trusted servers and the global and public address book" : "Mit vertrauenswürdigen Servern und dem globalen und öffentlichen Adressbuch synchronisieren",
"Verify" : "Überprüfen",
- "Verifying …" : "Überprüfe …",
+ "Verifying …" : "Überprüfe…",
"Unable to change password" : "Passwort konnte nicht geändert werden",
"Very weak password" : "Sehr schwaches Passwort",
"Weak password" : "Schwaches Passwort",
@@ -69,7 +69,7 @@
"If you received this email, the email configuration seems to be correct." : "Wenn du diese E-Mail empfangen hast, sind die E-Mail-Einstellungen korrekt.",
"Email could not be sent. Check your mail server log" : "E-Mail konnte nicht versandt werden. E-Mail-Serverprotokoll überprüfen",
"A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Beim Senden der E-Mail ist ein Problem aufgetreten. Bitte die Einstellungen überprüfen. (Fehler: %s)",
- "You need to set your account email before being able to send test emails. Go to %s for that." : "Vor dem Versenden von Test-E-Mails musse die Konto-E-Mailadresse festgelegt werden. Gehe dazu zu %s.",
+ "You need to set your account email before being able to send test emails. Go to %s for that." : "Vor dem Versenden von Test-E-Mails muss die Konto-E-Mail-Adresse festgelegt werden. Gehe dazu zu %s.",
"Recently active" : "Kürzlich aktiv",
"Disabled accounts" : "Deaktivierte Konten",
"Invalid account" : "Ungültiges Konto",
@@ -101,12 +101,12 @@
"Your Login is: %s" : "Dein Anmeldename lautet: %s",
"Set your password" : "Setze dein Passwort",
"Go to %s" : "%s aufrufen",
- "Install Client" : "Installiere den Client",
+ "Install Client" : "Client installieren",
"Logged in account must be a sub admin" : "Das angemeldete Konto muss eine Unteradministration sein.",
"Apps" : "Apps",
"Personal" : "Persönlich",
"Administration" : "Administration",
- "Users" : "Benutzer",
+ "Users" : "Konten",
"Additional settings" : "Zusätzliche Einstellungen",
"Artificial Intelligence" : "Künstliche Intelligenz",
"Administration privileges" : "Administrationsrechte",
@@ -140,8 +140,8 @@
"Your remote address could not be determined." : "Deine Remote-Adresse konnte nicht ermittelt werden.",
"Your remote address was identified as \"%s\" and is brute-force throttled at the moment slowing down the performance of various requests. If the remote address is not your address this can be an indication that a proxy is not configured correctly." : "Deine Remote-Adresse wurde als \"%s\" erkannt und wird derzeit durch die Brute-Force-Erkennung gedrosselt, was die Leistung verschiedener Anfragen verlangsamt. Wenn die Remote-Adresse nicht deine Adresse ist, kann dies ein Hinweis darauf sein, dass ein Proxy nicht richtig konfiguriert ist.",
"Your remote address \"%s\" is not brute-force throttled." : "Deine Remote-Adresse \"%s\" ist nicht durch die Brute-Force-Erkennung gedrosselt.",
- "Old administration imported certificates" : "Alte, von der Adminstration importierte Zertifikate",
- "A background job is pending that checks for administration imported SSL certificates. Please check back later." : "Eine Hintergrundaufgabe, die nach, von der Adminstration importierten SSL-Zertifikaten sucht, läuft noch. Bitte später erneut versuchen.",
+ "Old administration imported certificates" : "Alte, von der Administration importierte Zertifikate",
+ "A background job is pending that checks for administration imported SSL certificates. Please check back later." : "Eine Hintergrundaufgabe, die nach von der Administration importierten SSL-Zertifikaten sucht, läuft noch. Bitte später erneut versuchen.",
"There are some administration imported SSL certificates present, that are not used anymore with Nextcloud 21. They can be imported on the command line via \"occ security:certificates:import\" command. Their paths inside the data directory are shown below." : "Es sind einige, von der Administration importierte SSL-Zertifikate vorhanden, die von Nextcloud 21 nicht mehr verwendet werden. Du kannst diese über den Befehl \"occ security:certificates:import\" in der Befehlszeile importieren. Deine Pfade innerhalb des Datenverzeichnisses werden unten angezeigt.",
"Code integrity" : "Codeintegrität",
"Integrity checker has been disabled. Integrity cannot be verified." : "Die Integritätsprüfung wurde deaktiviert. Die Integrität kann nicht überprüft werden.",
@@ -151,8 +151,8 @@
"It was not possible to execute the cron job via CLI. The following technical errors have appeared:\n%s" : "Es war nicht möglich, den Cron-Job über die CLI auszuführen. Es sind folgende technische Fehler aufgetreten:\n%s",
"The last cron job ran without errors." : "Der letzte Cron-Job wurde ohne Fehler ausgeführt.",
"Cron last run" : "Cron zuletzt ausgeführt",
- "Last background job execution ran %s. Something seems wrong. {link}." : "Letzte Hintergrund-Jobausführung lief %s. Etwas scheint nicht in Ordnung zu sein. {link}.",
- "Last background job execution ran %s." : "Letzte Hintergrund-Jobausführung lief %s.",
+ "Last background job execution ran %s. Something seems wrong. {link}." : "Letzte Hintergrundaufgaben-Ausführung lief %s. Etwas scheint nicht in Ordnung zu sein. {link}.",
+ "Last background job execution ran %s." : "Letzte Hintergrundaufgaben-Ausführung lief %s.",
"Data directory protected" : "Datenverzeichnis geschützt",
"Your data directory and files are probably accessible from the internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root." : "Dein Datenverzeichnis und deine Dateien sind wahrscheinlich vom Internet aus erreichbar. Die .htaccess-Datei funktioniert nicht. Es wird dringend empfohlen, deinen Webserver dahingehend zu konfigurieren, dass das Datenverzeichnis nicht mehr vom Internet aus erreichbar ist oder dass du es aus dem Document-Root-Verzeichnis des Webservers herausverschiebst.",
"Could not check that the data directory is protected. Please check manually that your server does not allow access to the data directory." : "Es konnte nicht überprüft werden, ob das Datenverzeichnis geschützt ist. Bitte überprüfe manuell, ob dein Server keinen Zugriff auf das Datenverzeichnis erlaubt.",
@@ -349,7 +349,7 @@
"Text processing" : "Textverarbeitung",
"Text processing tasks can be implemented by different apps. Here you can set which app should be used for which task." : "Textverarbeitungsaufgaben können mittels verschiedener Apps umgesetzt werden. Hier kann eingestellt werden, welche App für welche Aufgabe verwendet werden soll.",
"None of your currently installed apps provide text processing functionality using the Text Processing API." : "Keine deiner derzeit installierten Apps bietet Funktionalität zur Textverarbeitung durch Nutzung der Text-Processing-API.",
- "Here you can decide which group can access certain sections of the administration settings." : "Hier kann festgelegt werden, welche Gruppe auf bestimmte Bereiche der Verwaltungseinstellungen zugreifen kann.",
+ "Here you can decide which group can access certain sections of the administration settings." : "Hier kann festgelegt werden, welche Gruppe auf bestimmte Bereiche der Administrationseinstellungen zugreifen kann.",
"Unable to modify setting" : "Einstellung konnte nicht geändert werden",
"None" : "Keine",
"Changed disclaimer text" : "Geänderter Haftungsausschlusstext",
@@ -546,11 +546,11 @@
"Use system cron service to call the cron.php file every 5 minutes." : "Den System-Cron-Dienst verwenden, um die Datei cron.php alle 5 Minuten aufzurufen.",
"The cron.php needs to be executed by the system account \"{user}\"." : "Die cron.php muss von dem Systemkonto \"{user}\" ausgeführt werden.",
"The PHP POSIX extension is required. See {linkstart}PHP documentation{linkend} for more details." : "Die PHP-POSIX-Erweiterung ist erforderlich. Weitere Einzelheiten hierzu in der {linkstart}PHP-Dokumentation{linkend}.",
- "Unable to update background job mode" : "Hintergrund-Job-Modus kann nicht aktualisiert werden",
- "For the server to work properly, it's important to configure background jobs correctly. Cron is the recommended setting. Please see the documentation for more information." : "Damit der Server ordnungsgemäß funktioniert, ist es wichtig, Hintergrund-Aufgaben richtig zu konfigurieren. Cron ist die empfohlene Einstellung. Weitere Informationen finden sich in der Dokumentation.",
+ "Unable to update background job mode" : "Hintergrundaufgaben-Modus kann nicht aktualisiert werden",
+ "For the server to work properly, it's important to configure background jobs correctly. Cron is the recommended setting. Please see the documentation for more information." : "Damit der Server ordnungsgemäß funktioniert, ist es wichtig, Hintergrundaufgaben richtig zu konfigurieren. Cron ist die empfohlene Einstellung. Weitere Informationen finden sich in der Dokumentation.",
"Last job execution ran {time}. Something seems wrong." : "Der letzte Job lief {time}. Etwas scheint nicht zu stimmen.",
"Last job ran {relativeTime}." : "Der letzte Job lief {relativeTime}.",
- "Background job did not run yet!" : "Hintergrund-Job wurde bislang nicht ausgeführt!",
+ "Background job did not run yet!" : "Hintergrundaufgabe wurde bislang nicht ausgeführt!",
"AJAX" : "AJAX",
"Execute one task with each page loaded. Use case: Single account instance." : "Mit jeder geladenen Seite wird eine Aufgabe ausgeführt. Anwendungsfall: Einzelkonto-Installation.",
"Webcron" : "Webcron",
@@ -744,7 +744,7 @@
"Visibility" : "Sichtbarkeit",
"Show language" : "Sprache anzeigen",
"Show account backend" : "Konto-Backend anzeigen",
- "Show storage path" : "Zeige Speicherpfad",
+ "Show storage path" : "Speicherpfad anzeigen",
"Show first login" : "Erste Anmeldung anzeigen",
"Show last login" : "Letzte Anmeldung anzeigen",
"Sorting" : "Sortiere",
diff --git a/apps/settings/l10n/de_DE.js b/apps/settings/l10n/de_DE.js
index 002bd98e591..72922885aa7 100644
--- a/apps/settings/l10n/de_DE.js
+++ b/apps/settings/l10n/de_DE.js
@@ -4,7 +4,7 @@ OC.L10N.register(
"Private" : "Privat",
"Only visible to people matched via phone number integration through Talk on mobile" : "Nur sichtbar für Personen, die über die Rufnummernintegration von Talk auf dem Smartphone abgeglichen wurden.",
"Local" : "Lokal",
- "Only visible to people on this instance and guests" : "Nur für Personen dieser Instanz und Gästen sichtbar",
+ "Only visible to people on this instance and guests" : "Nur für Personen dieser Instanz und Gäste sichtbar",
"Federated" : "Federated",
"Only synchronize to trusted servers" : "Nur mit vertrauenswürdigen Servern synchronisieren",
"Published" : "Veröffentlicht",
@@ -25,11 +25,11 @@ OC.L10N.register(
"{actor} added {user} to group {group}" : "{actor} hat {user} zur Gruppe {group} hinzugefügt",
"An administrator added you to group {group}" : "Die Administration hat Sie zur Gruppe {group} hinzugefügt",
"An administrator added {user} to group {group}" : "Die Administration hat {user} zur Gruppe {group} hinzugefügt",
- "{actor} removed you from group {group}" : "{actor} hat Sie von der Gruppe {group} entfernt",
- "You removed {user} from group {group}" : "Sie haben {user} von der Gruppe {group} entfernt",
- "{actor} removed {user} from group {group}" : "{actor} hat {user} von der Gruppe {group} entfernt",
- "An administrator removed you from group {group}" : "Die Administration hat Sie von der Gruppe {group} entfernt",
- "An administrator removed {user} from group {group}" : "Die Administration hat {user} von der Gruppe {group} entfernt",
+ "{actor} removed you from group {group}" : "{actor} hat Sie aus der Gruppe {group} entfernt",
+ "You removed {user} from group {group}" : "Sie haben {user} aus der Gruppe {group} entfernt",
+ "{actor} removed {user} from group {group}" : "{actor} hat {user} aus der Gruppe {group} entfernt",
+ "An administrator removed you from group {group}" : "Die Administration hat Sie aus der Gruppe {group} entfernt",
+ "An administrator removed {user} from group {group}" : "Die Administration hat {user} aus der Gruppe {group} entfernt",
"Your <strong>group memberships</strong> were modified" : "Ihre <strong>Gruppenmitgliedschaft</strong> wurde geändert",
"{actor} changed your password" : "{actor} hat Ihr Passwort geändert",
"You changed your password" : "Sie haben Ihr Passwort geändert",
@@ -42,8 +42,8 @@ OC.L10N.register(
"An administrator created an app password for a session named \"{token}\"" : "Die Administration hat ein App-Passwort für eine Sitzung mit dem Namen \"{token}\" erstellt",
"You deleted app password \"{token}\"" : "Sie haben das App-Passwort \"{token}\" gelöscht",
"You renamed app password \"{token}\" to \"{newToken}\"" : "Sie haben das App-Passwort \"{token}\" in \"{newToken}\" umbenannt",
- "You granted filesystem access to app password \"{token}\"" : "Sie haben Dateisystemzugriff für App-Passwort \"{token}\" erlaubt",
- "You revoked filesystem access from app password \"{token}\"" : "Sie haben Dateisystemzugriff für App-Passwort \"{token}\" widerrufen",
+ "You granted filesystem access to app password \"{token}\"" : "Sie haben den Dateisystemzugriff für das App-Passwort \"{token}\" erlaubt",
+ "You revoked filesystem access from app password \"{token}\"" : "Sie haben den Dateisystemzugriff für das App-Passwort \"{token}\" widerrufen",
"Security" : "Sicherheit",
"You successfully logged in using two-factor authentication (%1$s)" : "Sie haben sich mittels Zwei-Faktor-Authentifizierung angemeldet (%1$s)",
"A login attempt using two-factor authentication failed (%1$s)" : "Ein Anmeldeversuch mittels Zwei-Faktor-Authentifizierung schlug fehl (%1$s)",
@@ -63,9 +63,9 @@ OC.L10N.register(
"Wrong admin recovery password. Please check the password and try again." : "Falsches Wiederherstellungspasswort für das Admin-Konto. Bitte überprüfen Sie das Passwort und versuchen Sie es erneut.",
"Backend does not support password change, but the encryption of the account key was updated." : "Das Backend unterstützt keine Passwortänderung, aber die Verschlüsselung des Kontoschlüssels wurde aktualisiert.",
"Administrator documentation" : "Dokumentation für die Administration",
- "User documentation" : "Nutzungsdokumentation",
+ "User documentation" : "Dokumentation für Benutzer",
"Nextcloud help overview" : "Übersicht über die Nextcloud-Hilfe",
- "Invalid SMTP password." : "Ungültiges SMTP-Passwort.",
+ "Invalid SMTP password." : "Ungültiges SMTP-Passwort",
"Email setting test" : "Test der E-Mail-Einstellungen",
"Well done, %s!" : "Gut gemacht, %s!",
"If you received this email, the email configuration seems to be correct." : "Wenn Sie diese E-Mail empfangen haben, sind die E-Mail-Einstellungen korrekt.",
@@ -79,8 +79,8 @@ OC.L10N.register(
"Settings saved" : "Einstellungen gespeichert",
"Unable to change full name" : "Der vollständige Name konnte nicht geändert werden",
"Unable to change email address" : "E-Mail-Adresse konnte nicht geändert werden",
- "Unable to set invalid phone number" : "Ungültige Rufnummer kann nicht eingestellt werden",
- "Unable to set invalid website" : "Ungültige Webseite kann nicht eingestellt werden",
+ "Unable to set invalid phone number" : "Ungültige Telefonnummer konnte nicht festgelegt werden",
+ "Unable to set invalid website" : "Ungültige Webseite konnte nicht festgelegt werden",
"Some account data was invalid" : "Einige Kontodaten waren ungültig",
"In order to verify your Twitter account, post the following tweet on Twitter (please make sure to post it without any line breaks):" : "Um Ihr Twitter-Konto zu überprüfen, veröffentlichen Sie bitte den folgenden Tweet auf Twitter (Bitte stellen Sie sicher, dass der Tweet keinen Zeilenumbruch enthält):",
"In order to verify your Website, store the following content in your web-root at '.well-known/CloudIdVerificationCode.txt' (please make sure that the complete text is in one line):" : "Um Ihre Webseite zu überprüfen, speichern Sie bitte den folgenden Inhalt im Web-Wurzelverzeichnist in der Datei '.well-known/CloudIdVerificationCode.txt' (bitte stellen Sie sicher, das sich der gesamte Text in einer Zeile befindet):",
@@ -103,11 +103,11 @@ OC.L10N.register(
"Your Login is: %s" : "Ihr Anmeldename lautet: %s",
"Set your password" : "Setzen Sie Ihr Passwort",
"Go to %s" : "%s aufrufen",
- "Install Client" : "Installiere den Client",
+ "Install Client" : "Client installieren",
"Logged in account must be a sub admin" : "Das angemeldete Konto muss eine Unteradministration sein.",
"Apps" : "Apps",
"Personal" : "Persönlich",
- "Administration" : "Verwaltung",
+ "Administration" : "Administration",
"Users" : "Konten",
"Additional settings" : "Zusätzliche Einstellungen",
"Artificial Intelligence" : "Künstliche Intelligenz",
@@ -126,8 +126,8 @@ OC.L10N.register(
"Send emails using" : "E-Mails senden mittels",
"User's email account" : "E-Mail-Konto des Benutzers",
"System email account" : "System-E-Mail-Konto",
- "Security & setup checks" : "Sicherheits- & Einrichtungsüberprüfungen",
- "Background jobs" : "Hintergrund-Aufgaben",
+ "Security & setup checks" : "Sicherheits- und Einrichtungsüberprüfungen",
+ "Background jobs" : "Hintergrundaufgaben",
"Unlimited" : "Unbegrenzt",
"Verifying" : "Überprüfe",
"Allowed admin IP ranges" : "Zulässige Administrations-IP-Bereiche",
@@ -142,8 +142,8 @@ OC.L10N.register(
"Your remote address could not be determined." : "Ihre Remote-Adresse konnte nicht ermittelt werden.",
"Your remote address was identified as \"%s\" and is brute-force throttled at the moment slowing down the performance of various requests. If the remote address is not your address this can be an indication that a proxy is not configured correctly." : "Ihre Remote-Adresse wurde als \"%s\" erkannt und wird derzeit durch die Brute-Force-Erkennung gedrosselt, was die Leistung verschiedener Anfragen verlangsamt. Wenn die Remote-Adresse nicht Ihre Adresse ist, kann dies ein Hinweis darauf sein, dass ein Proxy nicht richtig konfiguriert ist.",
"Your remote address \"%s\" is not brute-force throttled." : "Ihre Remote-Adresse \"%s\" ist nicht durch die Brute-Force-Erkennung gedrosselt.",
- "Old administration imported certificates" : "Alte, von der Adminstration importierte Zertifikate",
- "A background job is pending that checks for administration imported SSL certificates. Please check back later." : "Eine Hintergrundaufgabe, die nach, von der Adminstration importierten SSL-Zertifikaten sucht, läuft noch. Bitte später erneut versuchen.",
+ "Old administration imported certificates" : "Alte, von der Administration importierte Zertifikate",
+ "A background job is pending that checks for administration imported SSL certificates. Please check back later." : "Eine Hintergrundaufgabe, die nach von der Administration importierten SSL-Zertifikaten sucht, läuft noch. Bitte später erneut versuchen.",
"There are some administration imported SSL certificates present, that are not used anymore with Nextcloud 21. They can be imported on the command line via \"occ security:certificates:import\" command. Their paths inside the data directory are shown below." : "Es sind einige, von der Administration importierte SSL-Zertifikate vorhanden, die von Nextcloud 21 nicht mehr verwendet werden. Sie können über den Befehl \"occ security:certificates:import\" in der Befehlszeile importiert werden. Ihre Pfade innerhalb des Datenverzeichnisses werden unten angezeigt.",
"Code integrity" : "Codeintegrität",
"Integrity checker has been disabled. Integrity cannot be verified." : "Die Integritätsprüfung wurde deaktiviert. Die Integrität kann nicht überprüft werden.",
@@ -153,8 +153,8 @@ OC.L10N.register(
"It was not possible to execute the cron job via CLI. The following technical errors have appeared:\n%s" : "Es war nicht möglich, den Cron-Job über die CLI auszuführen. Es sind folgende technische Fehler aufgetreten:\n%s",
"The last cron job ran without errors." : "Der letzte Cron-Job wurde ohne Fehler ausgeführt.",
"Cron last run" : "Cron zuletzt ausgeführt",
- "Last background job execution ran %s. Something seems wrong. {link}." : "Letzte Hintergrund-Jobausführung lief %s. Etwas scheint nicht in Ordnung zu sein. {link}.",
- "Last background job execution ran %s." : "Letzte Hintergrund-Jobausführung lief %s.",
+ "Last background job execution ran %s. Something seems wrong. {link}." : "Letzte Hintergrundaufgaben-Ausführung lief %s. Etwas scheint nicht in Ordnung zu sein. {link}.",
+ "Last background job execution ran %s." : "Letzte Hintergrundaufgaben-Ausführung lief %s.",
"Data directory protected" : "Datenverzeichnis geschützt",
"Your data directory and files are probably accessible from the internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root." : "Ihr Datenverzeichnis und Ihre Dateien sind wahrscheinlich vom Internet aus erreichbar. Die .htaccess-Datei funktioniert nicht. Es wird dringend empfohlen, Ihren Webserver dahingehend zu konfigurieren, dass das Datenverzeichnis nicht mehr vom Internet aus erreichbar ist oder dass Sie es aus dem Document-Root-Verzeichnis des Webservers herausverschieben.",
"Could not check that the data directory is protected. Please check manually that your server does not allow access to the data directory." : "Es konnte nicht überprüft werden, ob das Datenverzeichnis geschützt ist. Bitte überprüfen Sie manuell, ob Ihr Server keinen Zugriff auf das Datenverzeichnis erlaubt.",
@@ -549,7 +549,7 @@ OC.L10N.register(
"The cron.php needs to be executed by the system account \"{user}\"." : "Die cron.php muss von dem Systemkonto \"{user}\" ausgeführt werden.",
"The PHP POSIX extension is required. See {linkstart}PHP documentation{linkend} for more details." : "Die PHP-POSIX-Erweiterung ist erforderlich. Weitere Einzelheiten finden Sie in der {linkstart}PHP-Dokumentation{linkend}.",
"Unable to update background job mode" : "Hintergrund-Aufgaben-Modus kann nicht aktualisiert werden",
- "For the server to work properly, it's important to configure background jobs correctly. Cron is the recommended setting. Please see the documentation for more information." : "Damit der Server ordnungsgemäß funktioniert, ist es wichtig, Hintergrund-Aufgaben richtig zu konfigurieren. Cron ist die empfohlene Einstellung. Weitere Informationen finden Sie in der Dokumentation.",
+ "For the server to work properly, it's important to configure background jobs correctly. Cron is the recommended setting. Please see the documentation for more information." : "Damit der Server ordnungsgemäß funktioniert, ist es wichtig, Hintergrundaufgaben richtig zu konfigurieren. Cron ist die empfohlene Einstellung. Weitere Informationen finden Sie in der Dokumentation.",
"Last job execution ran {time}. Something seems wrong." : "Die letzte Aufgaben-Ausführung lief {time}. Etwas scheint falsch zu sein.",
"Last job ran {relativeTime}." : "Die letzte Aufgabe lief {relativeTime}.",
"Background job did not run yet!" : "Hintergrund-Aufgabe wurde bislang nicht ausgeführt!",
@@ -746,7 +746,7 @@ OC.L10N.register(
"Visibility" : "Sichtbarkeit",
"Show language" : "Sprache anzeigen",
"Show account backend" : "Konto-Backend anzeigen",
- "Show storage path" : "Zeige Speicherpfad",
+ "Show storage path" : "Speicherpfad anzeigen",
"Show first login" : "Erste Anmeldung anzeigen",
"Show last login" : "Letzte Anmeldung anzeigen",
"Sorting" : "Sortierung",
diff --git a/apps/settings/l10n/de_DE.json b/apps/settings/l10n/de_DE.json
index 4d040cf5a19..8562ab6b03d 100644
--- a/apps/settings/l10n/de_DE.json
+++ b/apps/settings/l10n/de_DE.json
@@ -2,7 +2,7 @@
"Private" : "Privat",
"Only visible to people matched via phone number integration through Talk on mobile" : "Nur sichtbar für Personen, die über die Rufnummernintegration von Talk auf dem Smartphone abgeglichen wurden.",
"Local" : "Lokal",
- "Only visible to people on this instance and guests" : "Nur für Personen dieser Instanz und Gästen sichtbar",
+ "Only visible to people on this instance and guests" : "Nur für Personen dieser Instanz und Gäste sichtbar",
"Federated" : "Federated",
"Only synchronize to trusted servers" : "Nur mit vertrauenswürdigen Servern synchronisieren",
"Published" : "Veröffentlicht",
@@ -23,11 +23,11 @@
"{actor} added {user} to group {group}" : "{actor} hat {user} zur Gruppe {group} hinzugefügt",
"An administrator added you to group {group}" : "Die Administration hat Sie zur Gruppe {group} hinzugefügt",
"An administrator added {user} to group {group}" : "Die Administration hat {user} zur Gruppe {group} hinzugefügt",
- "{actor} removed you from group {group}" : "{actor} hat Sie von der Gruppe {group} entfernt",
- "You removed {user} from group {group}" : "Sie haben {user} von der Gruppe {group} entfernt",
- "{actor} removed {user} from group {group}" : "{actor} hat {user} von der Gruppe {group} entfernt",
- "An administrator removed you from group {group}" : "Die Administration hat Sie von der Gruppe {group} entfernt",
- "An administrator removed {user} from group {group}" : "Die Administration hat {user} von der Gruppe {group} entfernt",
+ "{actor} removed you from group {group}" : "{actor} hat Sie aus der Gruppe {group} entfernt",
+ "You removed {user} from group {group}" : "Sie haben {user} aus der Gruppe {group} entfernt",
+ "{actor} removed {user} from group {group}" : "{actor} hat {user} aus der Gruppe {group} entfernt",
+ "An administrator removed you from group {group}" : "Die Administration hat Sie aus der Gruppe {group} entfernt",
+ "An administrator removed {user} from group {group}" : "Die Administration hat {user} aus der Gruppe {group} entfernt",
"Your <strong>group memberships</strong> were modified" : "Ihre <strong>Gruppenmitgliedschaft</strong> wurde geändert",
"{actor} changed your password" : "{actor} hat Ihr Passwort geändert",
"You changed your password" : "Sie haben Ihr Passwort geändert",
@@ -40,8 +40,8 @@
"An administrator created an app password for a session named \"{token}\"" : "Die Administration hat ein App-Passwort für eine Sitzung mit dem Namen \"{token}\" erstellt",
"You deleted app password \"{token}\"" : "Sie haben das App-Passwort \"{token}\" gelöscht",
"You renamed app password \"{token}\" to \"{newToken}\"" : "Sie haben das App-Passwort \"{token}\" in \"{newToken}\" umbenannt",
- "You granted filesystem access to app password \"{token}\"" : "Sie haben Dateisystemzugriff für App-Passwort \"{token}\" erlaubt",
- "You revoked filesystem access from app password \"{token}\"" : "Sie haben Dateisystemzugriff für App-Passwort \"{token}\" widerrufen",
+ "You granted filesystem access to app password \"{token}\"" : "Sie haben den Dateisystemzugriff für das App-Passwort \"{token}\" erlaubt",
+ "You revoked filesystem access from app password \"{token}\"" : "Sie haben den Dateisystemzugriff für das App-Passwort \"{token}\" widerrufen",
"Security" : "Sicherheit",
"You successfully logged in using two-factor authentication (%1$s)" : "Sie haben sich mittels Zwei-Faktor-Authentifizierung angemeldet (%1$s)",
"A login attempt using two-factor authentication failed (%1$s)" : "Ein Anmeldeversuch mittels Zwei-Faktor-Authentifizierung schlug fehl (%1$s)",
@@ -61,9 +61,9 @@
"Wrong admin recovery password. Please check the password and try again." : "Falsches Wiederherstellungspasswort für das Admin-Konto. Bitte überprüfen Sie das Passwort und versuchen Sie es erneut.",
"Backend does not support password change, but the encryption of the account key was updated." : "Das Backend unterstützt keine Passwortänderung, aber die Verschlüsselung des Kontoschlüssels wurde aktualisiert.",
"Administrator documentation" : "Dokumentation für die Administration",
- "User documentation" : "Nutzungsdokumentation",
+ "User documentation" : "Dokumentation für Benutzer",
"Nextcloud help overview" : "Übersicht über die Nextcloud-Hilfe",
- "Invalid SMTP password." : "Ungültiges SMTP-Passwort.",
+ "Invalid SMTP password." : "Ungültiges SMTP-Passwort",
"Email setting test" : "Test der E-Mail-Einstellungen",
"Well done, %s!" : "Gut gemacht, %s!",
"If you received this email, the email configuration seems to be correct." : "Wenn Sie diese E-Mail empfangen haben, sind die E-Mail-Einstellungen korrekt.",
@@ -77,8 +77,8 @@
"Settings saved" : "Einstellungen gespeichert",
"Unable to change full name" : "Der vollständige Name konnte nicht geändert werden",
"Unable to change email address" : "E-Mail-Adresse konnte nicht geändert werden",
- "Unable to set invalid phone number" : "Ungültige Rufnummer kann nicht eingestellt werden",
- "Unable to set invalid website" : "Ungültige Webseite kann nicht eingestellt werden",
+ "Unable to set invalid phone number" : "Ungültige Telefonnummer konnte nicht festgelegt werden",
+ "Unable to set invalid website" : "Ungültige Webseite konnte nicht festgelegt werden",
"Some account data was invalid" : "Einige Kontodaten waren ungültig",
"In order to verify your Twitter account, post the following tweet on Twitter (please make sure to post it without any line breaks):" : "Um Ihr Twitter-Konto zu überprüfen, veröffentlichen Sie bitte den folgenden Tweet auf Twitter (Bitte stellen Sie sicher, dass der Tweet keinen Zeilenumbruch enthält):",
"In order to verify your Website, store the following content in your web-root at '.well-known/CloudIdVerificationCode.txt' (please make sure that the complete text is in one line):" : "Um Ihre Webseite zu überprüfen, speichern Sie bitte den folgenden Inhalt im Web-Wurzelverzeichnist in der Datei '.well-known/CloudIdVerificationCode.txt' (bitte stellen Sie sicher, das sich der gesamte Text in einer Zeile befindet):",
@@ -101,11 +101,11 @@
"Your Login is: %s" : "Ihr Anmeldename lautet: %s",
"Set your password" : "Setzen Sie Ihr Passwort",
"Go to %s" : "%s aufrufen",
- "Install Client" : "Installiere den Client",
+ "Install Client" : "Client installieren",
"Logged in account must be a sub admin" : "Das angemeldete Konto muss eine Unteradministration sein.",
"Apps" : "Apps",
"Personal" : "Persönlich",
- "Administration" : "Verwaltung",
+ "Administration" : "Administration",
"Users" : "Konten",
"Additional settings" : "Zusätzliche Einstellungen",
"Artificial Intelligence" : "Künstliche Intelligenz",
@@ -124,8 +124,8 @@
"Send emails using" : "E-Mails senden mittels",
"User's email account" : "E-Mail-Konto des Benutzers",
"System email account" : "System-E-Mail-Konto",
- "Security & setup checks" : "Sicherheits- & Einrichtungsüberprüfungen",
- "Background jobs" : "Hintergrund-Aufgaben",
+ "Security & setup checks" : "Sicherheits- und Einrichtungsüberprüfungen",
+ "Background jobs" : "Hintergrundaufgaben",
"Unlimited" : "Unbegrenzt",
"Verifying" : "Überprüfe",
"Allowed admin IP ranges" : "Zulässige Administrations-IP-Bereiche",
@@ -140,8 +140,8 @@
"Your remote address could not be determined." : "Ihre Remote-Adresse konnte nicht ermittelt werden.",
"Your remote address was identified as \"%s\" and is brute-force throttled at the moment slowing down the performance of various requests. If the remote address is not your address this can be an indication that a proxy is not configured correctly." : "Ihre Remote-Adresse wurde als \"%s\" erkannt und wird derzeit durch die Brute-Force-Erkennung gedrosselt, was die Leistung verschiedener Anfragen verlangsamt. Wenn die Remote-Adresse nicht Ihre Adresse ist, kann dies ein Hinweis darauf sein, dass ein Proxy nicht richtig konfiguriert ist.",
"Your remote address \"%s\" is not brute-force throttled." : "Ihre Remote-Adresse \"%s\" ist nicht durch die Brute-Force-Erkennung gedrosselt.",
- "Old administration imported certificates" : "Alte, von der Adminstration importierte Zertifikate",
- "A background job is pending that checks for administration imported SSL certificates. Please check back later." : "Eine Hintergrundaufgabe, die nach, von der Adminstration importierten SSL-Zertifikaten sucht, läuft noch. Bitte später erneut versuchen.",
+ "Old administration imported certificates" : "Alte, von der Administration importierte Zertifikate",
+ "A background job is pending that checks for administration imported SSL certificates. Please check back later." : "Eine Hintergrundaufgabe, die nach von der Administration importierten SSL-Zertifikaten sucht, läuft noch. Bitte später erneut versuchen.",
"There are some administration imported SSL certificates present, that are not used anymore with Nextcloud 21. They can be imported on the command line via \"occ security:certificates:import\" command. Their paths inside the data directory are shown below." : "Es sind einige, von der Administration importierte SSL-Zertifikate vorhanden, die von Nextcloud 21 nicht mehr verwendet werden. Sie können über den Befehl \"occ security:certificates:import\" in der Befehlszeile importiert werden. Ihre Pfade innerhalb des Datenverzeichnisses werden unten angezeigt.",
"Code integrity" : "Codeintegrität",
"Integrity checker has been disabled. Integrity cannot be verified." : "Die Integritätsprüfung wurde deaktiviert. Die Integrität kann nicht überprüft werden.",
@@ -151,8 +151,8 @@
"It was not possible to execute the cron job via CLI. The following technical errors have appeared:\n%s" : "Es war nicht möglich, den Cron-Job über die CLI auszuführen. Es sind folgende technische Fehler aufgetreten:\n%s",
"The last cron job ran without errors." : "Der letzte Cron-Job wurde ohne Fehler ausgeführt.",
"Cron last run" : "Cron zuletzt ausgeführt",
- "Last background job execution ran %s. Something seems wrong. {link}." : "Letzte Hintergrund-Jobausführung lief %s. Etwas scheint nicht in Ordnung zu sein. {link}.",
- "Last background job execution ran %s." : "Letzte Hintergrund-Jobausführung lief %s.",
+ "Last background job execution ran %s. Something seems wrong. {link}." : "Letzte Hintergrundaufgaben-Ausführung lief %s. Etwas scheint nicht in Ordnung zu sein. {link}.",
+ "Last background job execution ran %s." : "Letzte Hintergrundaufgaben-Ausführung lief %s.",
"Data directory protected" : "Datenverzeichnis geschützt",
"Your data directory and files are probably accessible from the internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root." : "Ihr Datenverzeichnis und Ihre Dateien sind wahrscheinlich vom Internet aus erreichbar. Die .htaccess-Datei funktioniert nicht. Es wird dringend empfohlen, Ihren Webserver dahingehend zu konfigurieren, dass das Datenverzeichnis nicht mehr vom Internet aus erreichbar ist oder dass Sie es aus dem Document-Root-Verzeichnis des Webservers herausverschieben.",
"Could not check that the data directory is protected. Please check manually that your server does not allow access to the data directory." : "Es konnte nicht überprüft werden, ob das Datenverzeichnis geschützt ist. Bitte überprüfen Sie manuell, ob Ihr Server keinen Zugriff auf das Datenverzeichnis erlaubt.",
@@ -547,7 +547,7 @@
"The cron.php needs to be executed by the system account \"{user}\"." : "Die cron.php muss von dem Systemkonto \"{user}\" ausgeführt werden.",
"The PHP POSIX extension is required. See {linkstart}PHP documentation{linkend} for more details." : "Die PHP-POSIX-Erweiterung ist erforderlich. Weitere Einzelheiten finden Sie in der {linkstart}PHP-Dokumentation{linkend}.",
"Unable to update background job mode" : "Hintergrund-Aufgaben-Modus kann nicht aktualisiert werden",
- "For the server to work properly, it's important to configure background jobs correctly. Cron is the recommended setting. Please see the documentation for more information." : "Damit der Server ordnungsgemäß funktioniert, ist es wichtig, Hintergrund-Aufgaben richtig zu konfigurieren. Cron ist die empfohlene Einstellung. Weitere Informationen finden Sie in der Dokumentation.",
+ "For the server to work properly, it's important to configure background jobs correctly. Cron is the recommended setting. Please see the documentation for more information." : "Damit der Server ordnungsgemäß funktioniert, ist es wichtig, Hintergrundaufgaben richtig zu konfigurieren. Cron ist die empfohlene Einstellung. Weitere Informationen finden Sie in der Dokumentation.",
"Last job execution ran {time}. Something seems wrong." : "Die letzte Aufgaben-Ausführung lief {time}. Etwas scheint falsch zu sein.",
"Last job ran {relativeTime}." : "Die letzte Aufgabe lief {relativeTime}.",
"Background job did not run yet!" : "Hintergrund-Aufgabe wurde bislang nicht ausgeführt!",
@@ -744,7 +744,7 @@
"Visibility" : "Sichtbarkeit",
"Show language" : "Sprache anzeigen",
"Show account backend" : "Konto-Backend anzeigen",
- "Show storage path" : "Zeige Speicherpfad",
+ "Show storage path" : "Speicherpfad anzeigen",
"Show first login" : "Erste Anmeldung anzeigen",
"Show last login" : "Letzte Anmeldung anzeigen",
"Sorting" : "Sortierung",
diff --git a/apps/theming/lib/IconBuilder.php b/apps/theming/lib/IconBuilder.php
index 4ab9857e2ce..55e0a1e930c 100644
--- a/apps/theming/lib/IconBuilder.php
+++ b/apps/theming/lib/IconBuilder.php
@@ -90,18 +90,17 @@ class IconBuilder {
* Render app icon on themed background color
* fallback to logo
*
- * @param $app string app name
- * @param $size int size of the icon in px
+ * @param string $app app name
+ * @param int $size size of the icon in px
* @return Imagick|false
*/
public function renderAppIcon($app, $size) {
$appIcon = $this->util->getAppIcon($app);
- if ($appIcon === false) {
- return false;
- }
if ($appIcon instanceof ISimpleFile) {
$appIconContent = $appIcon->getContent();
$mime = $appIcon->getMimeType();
+ } elseif (!file_exists($appIcon)) {
+ return false;
} else {
$appIconContent = file_get_contents($appIcon);
$mime = mime_content_type($appIcon);
@@ -187,13 +186,13 @@ class IconBuilder {
}
/**
- * @param $app string app name
- * @param $image string relative path to svg file in app directory
+ * @param string $app app name
+ * @param string $image relative path to svg file in app directory
* @return string|false content of a colorized svg file
*/
public function colorSvg($app, $image) {
$imageFile = $this->util->getAppImage($app, $image);
- if ($imageFile === false || $imageFile === '') {
+ if ($imageFile === false || $imageFile === '' || !file_exists($imageFile)) {
return false;
}
$svg = file_get_contents($imageFile);
diff --git a/apps/theming/tests/IconBuilderTest.php b/apps/theming/tests/IconBuilderTest.php
index ec7bd8bcc55..c5caa3ff44b 100644
--- a/apps/theming/tests/IconBuilderTest.php
+++ b/apps/theming/tests/IconBuilderTest.php
@@ -14,7 +14,6 @@ use OCP\App\IAppManager;
use OCP\Files\NotFoundException;
use OCP\IConfig;
use OCP\ServerVersion;
-use PHPUnit\Framework\Error\Warning;
use Test\TestCase;
class IconBuilderTest extends TestCase {
@@ -165,8 +164,7 @@ class IconBuilderTest extends TestCase {
public function testGetFaviconNotFound(): void {
$this->checkImagick();
- $this->expectWarning(Warning::class);
- $util = $this->getMockBuilder(Util::class)->disableOriginalConstructor()->getMock();
+ $util = $this->createMock(Util::class);
$iconBuilder = new IconBuilder($this->themingDefaults, $util, $this->imageManager);
$this->imageManager->expects($this->once())
->method('shouldReplaceIcons')
@@ -179,8 +177,7 @@ class IconBuilderTest extends TestCase {
public function testGetTouchIconNotFound(): void {
$this->checkImagick();
- $this->expectWarning(Warning::class);
- $util = $this->getMockBuilder(Util::class)->disableOriginalConstructor()->getMock();
+ $util = $this->createMock(Util::class);
$iconBuilder = new IconBuilder($this->themingDefaults, $util, $this->imageManager);
$util->expects($this->once())
->method('getAppIcon')
@@ -190,8 +187,7 @@ class IconBuilderTest extends TestCase {
public function testColorSvgNotFound(): void {
$this->checkImagick();
- $this->expectWarning(Warning::class);
- $util = $this->getMockBuilder(Util::class)->disableOriginalConstructor()->getMock();
+ $util = $this->createMock(Util::class);
$iconBuilder = new IconBuilder($this->themingDefaults, $util, $this->imageManager);
$util->expects($this->once())
->method('getAppImage')
diff --git a/apps/twofactor_backupcodes/l10n/de.js b/apps/twofactor_backupcodes/l10n/de.js
index 84b83e42bac..34ea526248c 100644
--- a/apps/twofactor_backupcodes/l10n/de.js
+++ b/apps/twofactor_backupcodes/l10n/de.js
@@ -7,8 +7,8 @@ OC.L10N.register(
"You enabled two-factor authentication but did not generate backup codes yet. They are needed to restore access to your account in case you lose your second factor." : "Du hast die Zwei-Faktor-Authentifizierung aktiviert, aber noch keine Backup-Codes erzeugt. Diese werden für den Fall benötigt, dass du den Zugriff auf deinen zweiten Faktor verloren hast.",
"Backup code" : "Backup-Code",
"Use backup code" : "Verwende Backup-Code",
- "Two factor backup codes" : "Zweifaktor-Backup-Codes",
- "A two-factor auth backup codes provider" : "Ein Anbieter für Zweifaktor-Backup-Codes",
+ "Two factor backup codes" : "Zwei-Faktor-Backup-Codes",
+ "A two-factor auth backup codes provider" : "Ein Anbieter für Zwei-Faktor-Backup-Codes",
"An error occurred while generating your backup codes" : "Es ist ein Fehler beim Erstellen deiner Backup-Codes aufgetreten",
"Backup codes have been generated. {used} of {total} codes have been used." : "Backup-Codes wurden erzeugt. {used} von {total} Codes wurden benutzt.",
"These are your backup codes. Please save and/or print them as you will not be able to read the codes again later." : "Dies sind deine Backup-Codes. Bitte speichere und/oder drucke diese aus, da du die Codes später nicht mehr abrufen kannst.",
diff --git a/apps/twofactor_backupcodes/l10n/de.json b/apps/twofactor_backupcodes/l10n/de.json
index 0b4b9fdc282..08d1955057f 100644
--- a/apps/twofactor_backupcodes/l10n/de.json
+++ b/apps/twofactor_backupcodes/l10n/de.json
@@ -5,8 +5,8 @@
"You enabled two-factor authentication but did not generate backup codes yet. They are needed to restore access to your account in case you lose your second factor." : "Du hast die Zwei-Faktor-Authentifizierung aktiviert, aber noch keine Backup-Codes erzeugt. Diese werden für den Fall benötigt, dass du den Zugriff auf deinen zweiten Faktor verloren hast.",
"Backup code" : "Backup-Code",
"Use backup code" : "Verwende Backup-Code",
- "Two factor backup codes" : "Zweifaktor-Backup-Codes",
- "A two-factor auth backup codes provider" : "Ein Anbieter für Zweifaktor-Backup-Codes",
+ "Two factor backup codes" : "Zwei-Faktor-Backup-Codes",
+ "A two-factor auth backup codes provider" : "Ein Anbieter für Zwei-Faktor-Backup-Codes",
"An error occurred while generating your backup codes" : "Es ist ein Fehler beim Erstellen deiner Backup-Codes aufgetreten",
"Backup codes have been generated. {used} of {total} codes have been used." : "Backup-Codes wurden erzeugt. {used} von {total} Codes wurden benutzt.",
"These are your backup codes. Please save and/or print them as you will not be able to read the codes again later." : "Dies sind deine Backup-Codes. Bitte speichere und/oder drucke diese aus, da du die Codes später nicht mehr abrufen kannst.",
diff --git a/apps/twofactor_backupcodes/l10n/de_DE.js b/apps/twofactor_backupcodes/l10n/de_DE.js
index 7020b01bdd1..63ddc32462b 100644
--- a/apps/twofactor_backupcodes/l10n/de_DE.js
+++ b/apps/twofactor_backupcodes/l10n/de_DE.js
@@ -7,8 +7,8 @@ OC.L10N.register(
"You enabled two-factor authentication but did not generate backup codes yet. They are needed to restore access to your account in case you lose your second factor." : "Sie haben die Zwei-Faktor-Authentifizierung aktiviert, aber noch keine Backup-Codes erzeugt. Diese werden für den Fall benötigt, dass Sie den Zugriff auf Ihren zweiten Faktor verlieren.",
"Backup code" : "Backup-Code",
"Use backup code" : "Backup-Code verwenden",
- "Two factor backup codes" : "Zweifaktor-Backup-Codes",
- "A two-factor auth backup codes provider" : "Ein Anbieter für Zweifaktor-Backup-Codes",
+ "Two factor backup codes" : "Zwei-Faktor-Backup-Codes",
+ "A two-factor auth backup codes provider" : "Ein Anbieter für Zwei-Faktor-Backup-Codes",
"An error occurred while generating your backup codes" : "Es ist ein Fehler beim Erstellen Ihrer Backup-Codes aufgetreten",
"Backup codes have been generated. {used} of {total} codes have been used." : "Backup-Codes wurden erzeugt. {used} von {total} Codes wurden benutzt.",
"These are your backup codes. Please save and/or print them as you will not be able to read the codes again later." : "Dies sind Ihre Backup-Codes. Bitte speichern und/oder drucken Sie diese aus, da Sie die Codes später nicht mehr abrufen können.",
diff --git a/apps/twofactor_backupcodes/l10n/de_DE.json b/apps/twofactor_backupcodes/l10n/de_DE.json
index d50865d7e0d..506e08f3c41 100644
--- a/apps/twofactor_backupcodes/l10n/de_DE.json
+++ b/apps/twofactor_backupcodes/l10n/de_DE.json
@@ -5,8 +5,8 @@
"You enabled two-factor authentication but did not generate backup codes yet. They are needed to restore access to your account in case you lose your second factor." : "Sie haben die Zwei-Faktor-Authentifizierung aktiviert, aber noch keine Backup-Codes erzeugt. Diese werden für den Fall benötigt, dass Sie den Zugriff auf Ihren zweiten Faktor verlieren.",
"Backup code" : "Backup-Code",
"Use backup code" : "Backup-Code verwenden",
- "Two factor backup codes" : "Zweifaktor-Backup-Codes",
- "A two-factor auth backup codes provider" : "Ein Anbieter für Zweifaktor-Backup-Codes",
+ "Two factor backup codes" : "Zwei-Faktor-Backup-Codes",
+ "A two-factor auth backup codes provider" : "Ein Anbieter für Zwei-Faktor-Backup-Codes",
"An error occurred while generating your backup codes" : "Es ist ein Fehler beim Erstellen Ihrer Backup-Codes aufgetreten",
"Backup codes have been generated. {used} of {total} codes have been used." : "Backup-Codes wurden erzeugt. {used} von {total} Codes wurden benutzt.",
"These are your backup codes. Please save and/or print them as you will not be able to read the codes again later." : "Dies sind Ihre Backup-Codes. Bitte speichern und/oder drucken Sie diese aus, da Sie die Codes später nicht mehr abrufen können.",
diff --git a/apps/user_ldap/l10n/et_EE.js b/apps/user_ldap/l10n/et_EE.js
index 46695f1973a..92cb8c11e68 100644
--- a/apps/user_ldap/l10n/et_EE.js
+++ b/apps/user_ldap/l10n/et_EE.js
@@ -5,6 +5,7 @@ OC.L10N.register(
"Failed to delete the server configuration" : "Serveri seadistuse kustutamine ebaõnnestus",
"Invalid configuration: Anonymous binding is not allowed." : "Vale seadistus: anonüümne sidumine pole lubatud.",
"Valid configuration, connection established!" : "Korrektne seadistus, ühendus on loodud!",
+ "Valid configuration, but binding failed. Please check the server settings and credentials." : "Seadistus on korrektne, kuid sidumine ei õnnestunud. Palun kontrolli serveri seadistusi ja ühenduse kasutajanime/salasõna.",
"Invalid configuration: %s" : "Vigane seadistus: %s",
"No action specified" : "Tegevusi pole määratletud",
"No configuration specified" : "Seadistust pole määratletud",
@@ -30,11 +31,15 @@ OC.L10N.register(
"Could not detect Base DN, please enter it manually." : "BaasDN-i tuvastamine ebaõnnestus. Palun sisesta see käsitsi.",
"{nthServer}. Server" : "{nthServer}. Server",
"No object found in the given Base DN. Please revise." : "BaasDN-is ei leitu ühtegi objekti.",
- "More than 1,000 directory entries available." : "Saadaval on rohkem kui 1000 kataloogi kirjet.",
+ "More than 1,000 directory entries available." : "Saadaval on rohkem kui 1000 kataloogikirjet.",
+ "_{objectsFound} entry available within the provided Base DN_::_{objectsFound} entries available within the provided Base DN_" : ["„Base DN“ alusel on saadaval {objectsFound} kirje","„Base DN“ alusel on saadaval {objectsFound} kirjet"],
+ "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Tekkis viga. Palun kontrolli, kas „Base DN“ on õige, ühendus toimib ning kasutajanimi/salasõna on korrektsed.",
"Do you really want to delete the current Server Configuration?" : "Oled kindel, et tahad kustutada praegust serveri seadistust?",
"Confirm Deletion" : "Kinnita kustutamine",
"Mappings cleared successfully!" : "Vastandused on eemaldatud!",
"Error while clearing the mappings." : "Viga vastanduse/seose eemaldamisel.",
+ "Anonymous bind is not allowed. Please provide a User DN and Password." : "Anonüümne sidumine pole lubatud. Palun sisesta kasutaja „User DN“ ja salasõna.",
+ "LDAP Operations error. Anonymous bind might not be allowed." : "LDAP päringu viga. Anonüümne sidumine pole ilmselt lubatud.",
"Mode switch" : "Režiimi lüliti",
"Select attributes" : "Vali atribuudid",
"User found and settings verified." : "Kasutaja leiti ja seaded on kontrollitud.",
diff --git a/apps/user_ldap/l10n/et_EE.json b/apps/user_ldap/l10n/et_EE.json
index 8e9306fb653..47aba4f4b3d 100644
--- a/apps/user_ldap/l10n/et_EE.json
+++ b/apps/user_ldap/l10n/et_EE.json
@@ -3,6 +3,7 @@
"Failed to delete the server configuration" : "Serveri seadistuse kustutamine ebaõnnestus",
"Invalid configuration: Anonymous binding is not allowed." : "Vale seadistus: anonüümne sidumine pole lubatud.",
"Valid configuration, connection established!" : "Korrektne seadistus, ühendus on loodud!",
+ "Valid configuration, but binding failed. Please check the server settings and credentials." : "Seadistus on korrektne, kuid sidumine ei õnnestunud. Palun kontrolli serveri seadistusi ja ühenduse kasutajanime/salasõna.",
"Invalid configuration: %s" : "Vigane seadistus: %s",
"No action specified" : "Tegevusi pole määratletud",
"No configuration specified" : "Seadistust pole määratletud",
@@ -28,11 +29,15 @@
"Could not detect Base DN, please enter it manually." : "BaasDN-i tuvastamine ebaõnnestus. Palun sisesta see käsitsi.",
"{nthServer}. Server" : "{nthServer}. Server",
"No object found in the given Base DN. Please revise." : "BaasDN-is ei leitu ühtegi objekti.",
- "More than 1,000 directory entries available." : "Saadaval on rohkem kui 1000 kataloogi kirjet.",
+ "More than 1,000 directory entries available." : "Saadaval on rohkem kui 1000 kataloogikirjet.",
+ "_{objectsFound} entry available within the provided Base DN_::_{objectsFound} entries available within the provided Base DN_" : ["„Base DN“ alusel on saadaval {objectsFound} kirje","„Base DN“ alusel on saadaval {objectsFound} kirjet"],
+ "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Tekkis viga. Palun kontrolli, kas „Base DN“ on õige, ühendus toimib ning kasutajanimi/salasõna on korrektsed.",
"Do you really want to delete the current Server Configuration?" : "Oled kindel, et tahad kustutada praegust serveri seadistust?",
"Confirm Deletion" : "Kinnita kustutamine",
"Mappings cleared successfully!" : "Vastandused on eemaldatud!",
"Error while clearing the mappings." : "Viga vastanduse/seose eemaldamisel.",
+ "Anonymous bind is not allowed. Please provide a User DN and Password." : "Anonüümne sidumine pole lubatud. Palun sisesta kasutaja „User DN“ ja salasõna.",
+ "LDAP Operations error. Anonymous bind might not be allowed." : "LDAP päringu viga. Anonüümne sidumine pole ilmselt lubatud.",
"Mode switch" : "Režiimi lüliti",
"Select attributes" : "Vali atribuudid",
"User found and settings verified." : "Kasutaja leiti ja seaded on kontrollitud.",
diff --git a/core/l10n/cs.js b/core/l10n/cs.js
index eba9d87be63..13d9b7a2cdc 100644
--- a/core/l10n/cs.js
+++ b/core/l10n/cs.js
@@ -156,12 +156,15 @@ OC.L10N.register(
"HTML document" : "HTML dokument",
"Markdown document" : "Markdown dokument",
"Org-mode file" : "soubor Org-mode",
+ "LDIF address book" : "LDIF adresář kontaktů",
"NFO document" : "NFO dokument",
"PHP source" : "PHP zdrojové kódy",
"Python script" : "Python skript",
"ReStructuredText document" : "ReStructuredText dokument",
+ "3GPP multimedia file" : "3GPP soubor multimédií",
"MPEG video" : "MPEG video",
"DV video" : "DV video",
+ "MPEG-2 transport stream" : "MPEG-2 transportní proud",
"MPEG-4 video" : "MPEG-4 video",
"Ogg video" : "Ogg video",
"QuickTime video" : "QuickTime video",
diff --git a/core/l10n/cs.json b/core/l10n/cs.json
index b99aeb91748..63821cb4ec0 100644
--- a/core/l10n/cs.json
+++ b/core/l10n/cs.json
@@ -154,12 +154,15 @@
"HTML document" : "HTML dokument",
"Markdown document" : "Markdown dokument",
"Org-mode file" : "soubor Org-mode",
+ "LDIF address book" : "LDIF adresář kontaktů",
"NFO document" : "NFO dokument",
"PHP source" : "PHP zdrojové kódy",
"Python script" : "Python skript",
"ReStructuredText document" : "ReStructuredText dokument",
+ "3GPP multimedia file" : "3GPP soubor multimédií",
"MPEG video" : "MPEG video",
"DV video" : "DV video",
+ "MPEG-2 transport stream" : "MPEG-2 transportní proud",
"MPEG-4 video" : "MPEG-4 video",
"Ogg video" : "Ogg video",
"QuickTime video" : "QuickTime video",
diff --git a/core/l10n/de.js b/core/l10n/de.js
index 2c69f7aaa38..58133cad177 100644
--- a/core/l10n/de.js
+++ b/core/l10n/de.js
@@ -257,12 +257,12 @@ OC.L10N.register(
"Load more results" : "Weitere Ergebnisse laden",
"Search in" : "Suche in",
"Log in" : "Anmelden",
- "Logging in …" : "Melde an …",
+ "Logging in …" : "Melde an…",
"Log in to {productName}" : "Anmelden bei {productName}",
- "Wrong login or password." : "Anmeldename oder Passwort falsch",
+ "Wrong login or password." : "Kontoname oder Passwort falsch",
"This account is disabled" : "Dieses Konto ist deaktiviert",
"We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "Es wurden mehrere ungültige Anmeldeversuche von deiner IP-Adresse festgestellt. Daher wird die nächste Anmeldung um 30 Sekunden verzögert.",
- "Account name or email" : "Kontoname oder E-Mail",
+ "Account name or email" : "Kontoname oder E-Mail-Adresse",
"Account name" : "Name des Kontos",
"Server side authentication failed!" : "Serverseitige Authentifizierung fehlgeschlagen!",
"Please contact your administrator." : "Bitte kontaktiere die Administration.",
@@ -272,7 +272,7 @@ OC.L10N.register(
"Please try again or contact your administrator." : "Bitte versuche es noch einmal oder kontaktiere die Administration.",
"Password" : "Passwort",
"Log in with a device" : "Mit einem Gerät anmelden",
- "Login or email" : "Anmeldename oder E-Mail-Adresse",
+ "Login or email" : "Kontoname oder E-Mail-Adresse",
"Your account is not setup for passwordless login." : "Dein Konto ist nicht für eine Anmeldung ohne Passwort eingerichtet.",
"Your connection is not secure" : "Deine Verbindung ist nicht sicher",
"Passwordless authentication is only available over a secure connection." : "Anmeldung ohne Passwort ist nur über eine sichere Verbindung möglich",
@@ -466,8 +466,8 @@ OC.L10N.register(
"Email address" : "E-Mail-Adresse",
"Password sent!" : "Passwort wurde verschickt",
"You are not authorized to request a password for this share" : "Du bist nicht berechtigt, für diese Freigabe ein Passwort anzufordern",
- "Two-factor authentication" : "Zwei-Faktor Authentifizierung",
- "Enhanced security is enabled for your account. Choose a second factor for authentication:" : "Die erweiterte Sicherheit wurde für dein Konto aktiviert. Bitte wähle einem zweiten Faktor für die Authentifizierung:",
+ "Two-factor authentication" : "Zwei-Faktor-Authentifizierung",
+ "Enhanced security is enabled for your account. Choose a second factor for authentication:" : "Die erweiterte Sicherheit wurde für dein Konto aktiviert. Bitte wähle einen zweiten Faktor für die Authentifizierung:",
"Could not load at least one of your enabled two-factor auth methods. Please contact your admin." : "Mindestens eine deiner Zwei-Faktor-Authentifizierungsmethoden konnte nicht geladen werden. Kontaktiere deine Administration.",
"Two-factor authentication is enforced but has not been configured on your account. Contact your admin for assistance." : "Die Zwei-Faktor-Authentifizierung wird erzwungen, wurde jedoch für dein Konto nicht konfiguriert. Wende dich für Unterstützung an deine Administration.",
"Two-factor authentication is enforced but has not been configured on your account. Please continue to setup two-factor authentication." : "Die Zwei-Faktor-Authentifizierung wird erzwungen, wurde jedoch für dein Konto nicht konfiguriert. Bitte fahre mit der Einrichtung der Zwei-Faktor-Authentifizierung fort.",
@@ -499,7 +499,7 @@ OC.L10N.register(
"This page will refresh itself when the instance is available again." : "Diese Seite aktualisiert sich automatisch, sobald die Nextcloud-Instanz wieder verfügbar ist.",
"Contact your system administrator if this message persists or appeared unexpectedly." : "Kontaktiere die Systemadministration, wenn diese Meldung dauerhaft oder unerwartet erscheint.",
"Currently open" : "Derzeit geöffnet",
- "Login with username or email" : "Kontoname oder E-Mail",
+ "Login with username or email" : "Anmeldung mit Benutzernamen oder E-Mail-Adresse",
"Login with username" : "Anmeldung mit Benutzernamen",
"Chatting, video calls, screensharing, online meetings and web conferencing – in your browser and with mobile apps." : "Chatten, Videoanrufe, Bildschirmfreigaben, Online-Besprechungen und Webkonferenzen - in deinem Browser sowie mit mobilen Apps.",
"You have not added any info yet" : "Du hast noch keine Infos hinzugefügt",
diff --git a/core/l10n/de.json b/core/l10n/de.json
index 04a0f5ace51..63748ba9758 100644
--- a/core/l10n/de.json
+++ b/core/l10n/de.json
@@ -255,12 +255,12 @@
"Load more results" : "Weitere Ergebnisse laden",
"Search in" : "Suche in",
"Log in" : "Anmelden",
- "Logging in …" : "Melde an …",
+ "Logging in …" : "Melde an…",
"Log in to {productName}" : "Anmelden bei {productName}",
- "Wrong login or password." : "Anmeldename oder Passwort falsch",
+ "Wrong login or password." : "Kontoname oder Passwort falsch",
"This account is disabled" : "Dieses Konto ist deaktiviert",
"We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "Es wurden mehrere ungültige Anmeldeversuche von deiner IP-Adresse festgestellt. Daher wird die nächste Anmeldung um 30 Sekunden verzögert.",
- "Account name or email" : "Kontoname oder E-Mail",
+ "Account name or email" : "Kontoname oder E-Mail-Adresse",
"Account name" : "Name des Kontos",
"Server side authentication failed!" : "Serverseitige Authentifizierung fehlgeschlagen!",
"Please contact your administrator." : "Bitte kontaktiere die Administration.",
@@ -270,7 +270,7 @@
"Please try again or contact your administrator." : "Bitte versuche es noch einmal oder kontaktiere die Administration.",
"Password" : "Passwort",
"Log in with a device" : "Mit einem Gerät anmelden",
- "Login or email" : "Anmeldename oder E-Mail-Adresse",
+ "Login or email" : "Kontoname oder E-Mail-Adresse",
"Your account is not setup for passwordless login." : "Dein Konto ist nicht für eine Anmeldung ohne Passwort eingerichtet.",
"Your connection is not secure" : "Deine Verbindung ist nicht sicher",
"Passwordless authentication is only available over a secure connection." : "Anmeldung ohne Passwort ist nur über eine sichere Verbindung möglich",
@@ -464,8 +464,8 @@
"Email address" : "E-Mail-Adresse",
"Password sent!" : "Passwort wurde verschickt",
"You are not authorized to request a password for this share" : "Du bist nicht berechtigt, für diese Freigabe ein Passwort anzufordern",
- "Two-factor authentication" : "Zwei-Faktor Authentifizierung",
- "Enhanced security is enabled for your account. Choose a second factor for authentication:" : "Die erweiterte Sicherheit wurde für dein Konto aktiviert. Bitte wähle einem zweiten Faktor für die Authentifizierung:",
+ "Two-factor authentication" : "Zwei-Faktor-Authentifizierung",
+ "Enhanced security is enabled for your account. Choose a second factor for authentication:" : "Die erweiterte Sicherheit wurde für dein Konto aktiviert. Bitte wähle einen zweiten Faktor für die Authentifizierung:",
"Could not load at least one of your enabled two-factor auth methods. Please contact your admin." : "Mindestens eine deiner Zwei-Faktor-Authentifizierungsmethoden konnte nicht geladen werden. Kontaktiere deine Administration.",
"Two-factor authentication is enforced but has not been configured on your account. Contact your admin for assistance." : "Die Zwei-Faktor-Authentifizierung wird erzwungen, wurde jedoch für dein Konto nicht konfiguriert. Wende dich für Unterstützung an deine Administration.",
"Two-factor authentication is enforced but has not been configured on your account. Please continue to setup two-factor authentication." : "Die Zwei-Faktor-Authentifizierung wird erzwungen, wurde jedoch für dein Konto nicht konfiguriert. Bitte fahre mit der Einrichtung der Zwei-Faktor-Authentifizierung fort.",
@@ -497,7 +497,7 @@
"This page will refresh itself when the instance is available again." : "Diese Seite aktualisiert sich automatisch, sobald die Nextcloud-Instanz wieder verfügbar ist.",
"Contact your system administrator if this message persists or appeared unexpectedly." : "Kontaktiere die Systemadministration, wenn diese Meldung dauerhaft oder unerwartet erscheint.",
"Currently open" : "Derzeit geöffnet",
- "Login with username or email" : "Kontoname oder E-Mail",
+ "Login with username or email" : "Anmeldung mit Benutzernamen oder E-Mail-Adresse",
"Login with username" : "Anmeldung mit Benutzernamen",
"Chatting, video calls, screensharing, online meetings and web conferencing – in your browser and with mobile apps." : "Chatten, Videoanrufe, Bildschirmfreigaben, Online-Besprechungen und Webkonferenzen - in deinem Browser sowie mit mobilen Apps.",
"You have not added any info yet" : "Du hast noch keine Infos hinzugefügt",
diff --git a/core/l10n/de_DE.js b/core/l10n/de_DE.js
index 4bf8bdf1649..7fffb7faa76 100644
--- a/core/l10n/de_DE.js
+++ b/core/l10n/de_DE.js
@@ -259,10 +259,10 @@ OC.L10N.register(
"Log in" : "Anmelden",
"Logging in …" : "Melde an…",
"Log in to {productName}" : "Anmelden bei {productName}",
- "Wrong login or password." : "Anmeldename oder Passwort falsch",
+ "Wrong login or password." : "Kontoname oder Passwort falsch",
"This account is disabled" : "Dieses Konto ist deaktiviert",
"We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "Es wurden mehrere ungültige Anmeldeversuche von Ihrer IP-Adresse festgestellt. Daher wird die nächste Anmeldung um 30 Sekunden verzögert.",
- "Account name or email" : "Kontoname oder E-Mail",
+ "Account name or email" : "Kontoname oder E-Mail-Adresse",
"Account name" : "Name des Kontos",
"Server side authentication failed!" : "Serverseitige Authentifizierung fehlgeschlagen!",
"Please contact your administrator." : "Bitte kontaktieren Sie Ihre Administration.",
@@ -272,7 +272,7 @@ OC.L10N.register(
"Please try again or contact your administrator." : "Bitte erneut versuchen oder kontaktieren Sie Ihre Administration.",
"Password" : "Passwort",
"Log in with a device" : "Mit einem Gerät anmelden",
- "Login or email" : "Anmeldename oder E-Mail-Adresse",
+ "Login or email" : "Kontoname oder E-Mail-Adresse",
"Your account is not setup for passwordless login." : "Ihr Konto ist nicht für eine Anmeldung ohne Passwort eingerichtet.",
"Your connection is not secure" : "Ihre Verbindung ist nicht sicher",
"Passwordless authentication is only available over a secure connection." : "Anmeldung ohne Passwort ist nur über eine sichere Verbindung möglich",
@@ -466,7 +466,7 @@ OC.L10N.register(
"Email address" : "E-Mail-Adresse",
"Password sent!" : "Passwort versandt!",
"You are not authorized to request a password for this share" : "Sie sind nicht berechtigt, für diese Freigabe ein Passwort anzufordern.",
- "Two-factor authentication" : "Zwei-Faktor Authentifizierung",
+ "Two-factor authentication" : "Zwei-Faktor-Authentifizierung",
"Enhanced security is enabled for your account. Choose a second factor for authentication:" : "Die erweiterte Sicherheit wurde für Ihr Konto aktiviert. Bitte wählen Sie einen zweiten Faktor für die Authentifizierung: ",
"Could not load at least one of your enabled two-factor auth methods. Please contact your admin." : "Mindestens eine Ihrer Zwei-Faktor-Authentifizierungsmethoden konnte nicht geladen werden. Kontaktieren Sie Ihre Administration.",
"Two-factor authentication is enforced but has not been configured on your account. Contact your admin for assistance." : "Die Zwei-Faktor-Authentifizierung wird erzwungen, wurde für Ihr Konto jedoch nicht konfiguriert. Wenden Sie sich für Unterstützung an Ihre Administration.",
@@ -499,7 +499,7 @@ OC.L10N.register(
"This page will refresh itself when the instance is available again." : "Diese Seite aktualisiert sich automatisch, sobald Nextcloud wieder verfügbar ist.",
"Contact your system administrator if this message persists or appeared unexpectedly." : "Kontaktieren Sie Ihre Systemadministration, wenn diese Meldung dauerhaft oder unerwartet erscheint.",
"Currently open" : "Derzeit geöffnet",
- "Login with username or email" : "Anmeldung mit Benutzernamen oder E-Mail",
+ "Login with username or email" : "Anmeldung mit Benutzernamen oder E-Mail-Adresse",
"Login with username" : "Anmeldung mit Benutzernamen",
"Chatting, video calls, screensharing, online meetings and web conferencing – in your browser and with mobile apps." : "Chatten, Videoanrufe, Bildschirmfreigaben, Online-Besprechungen und Webkonferenzen - in Ihrem Browser sowie mit mobilen Apps.",
"You have not added any info yet" : "Sie haben noch keine Infos hinzugefügt",
diff --git a/core/l10n/de_DE.json b/core/l10n/de_DE.json
index 755fb0536c7..8c7e3c6f14e 100644
--- a/core/l10n/de_DE.json
+++ b/core/l10n/de_DE.json
@@ -257,10 +257,10 @@
"Log in" : "Anmelden",
"Logging in …" : "Melde an…",
"Log in to {productName}" : "Anmelden bei {productName}",
- "Wrong login or password." : "Anmeldename oder Passwort falsch",
+ "Wrong login or password." : "Kontoname oder Passwort falsch",
"This account is disabled" : "Dieses Konto ist deaktiviert",
"We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "Es wurden mehrere ungültige Anmeldeversuche von Ihrer IP-Adresse festgestellt. Daher wird die nächste Anmeldung um 30 Sekunden verzögert.",
- "Account name or email" : "Kontoname oder E-Mail",
+ "Account name or email" : "Kontoname oder E-Mail-Adresse",
"Account name" : "Name des Kontos",
"Server side authentication failed!" : "Serverseitige Authentifizierung fehlgeschlagen!",
"Please contact your administrator." : "Bitte kontaktieren Sie Ihre Administration.",
@@ -270,7 +270,7 @@
"Please try again or contact your administrator." : "Bitte erneut versuchen oder kontaktieren Sie Ihre Administration.",
"Password" : "Passwort",
"Log in with a device" : "Mit einem Gerät anmelden",
- "Login or email" : "Anmeldename oder E-Mail-Adresse",
+ "Login or email" : "Kontoname oder E-Mail-Adresse",
"Your account is not setup for passwordless login." : "Ihr Konto ist nicht für eine Anmeldung ohne Passwort eingerichtet.",
"Your connection is not secure" : "Ihre Verbindung ist nicht sicher",
"Passwordless authentication is only available over a secure connection." : "Anmeldung ohne Passwort ist nur über eine sichere Verbindung möglich",
@@ -464,7 +464,7 @@
"Email address" : "E-Mail-Adresse",
"Password sent!" : "Passwort versandt!",
"You are not authorized to request a password for this share" : "Sie sind nicht berechtigt, für diese Freigabe ein Passwort anzufordern.",
- "Two-factor authentication" : "Zwei-Faktor Authentifizierung",
+ "Two-factor authentication" : "Zwei-Faktor-Authentifizierung",
"Enhanced security is enabled for your account. Choose a second factor for authentication:" : "Die erweiterte Sicherheit wurde für Ihr Konto aktiviert. Bitte wählen Sie einen zweiten Faktor für die Authentifizierung: ",
"Could not load at least one of your enabled two-factor auth methods. Please contact your admin." : "Mindestens eine Ihrer Zwei-Faktor-Authentifizierungsmethoden konnte nicht geladen werden. Kontaktieren Sie Ihre Administration.",
"Two-factor authentication is enforced but has not been configured on your account. Contact your admin for assistance." : "Die Zwei-Faktor-Authentifizierung wird erzwungen, wurde für Ihr Konto jedoch nicht konfiguriert. Wenden Sie sich für Unterstützung an Ihre Administration.",
@@ -497,7 +497,7 @@
"This page will refresh itself when the instance is available again." : "Diese Seite aktualisiert sich automatisch, sobald Nextcloud wieder verfügbar ist.",
"Contact your system administrator if this message persists or appeared unexpectedly." : "Kontaktieren Sie Ihre Systemadministration, wenn diese Meldung dauerhaft oder unerwartet erscheint.",
"Currently open" : "Derzeit geöffnet",
- "Login with username or email" : "Anmeldung mit Benutzernamen oder E-Mail",
+ "Login with username or email" : "Anmeldung mit Benutzernamen oder E-Mail-Adresse",
"Login with username" : "Anmeldung mit Benutzernamen",
"Chatting, video calls, screensharing, online meetings and web conferencing – in your browser and with mobile apps." : "Chatten, Videoanrufe, Bildschirmfreigaben, Online-Besprechungen und Webkonferenzen - in Ihrem Browser sowie mit mobilen Apps.",
"You have not added any info yet" : "Sie haben noch keine Infos hinzugefügt",
diff --git a/core/l10n/sr.js b/core/l10n/sr.js
index 474261b30ad..39cd4f50868 100644
--- a/core/l10n/sr.js
+++ b/core/l10n/sr.js
@@ -80,8 +80,125 @@ OC.L10N.register(
"%s (incompatible)" : "%s (некомпатибилан)",
"The following apps have been disabled: %s" : "Следеће апликације су искључене: %s",
"Already up to date" : "Већ је ажурна",
+ "Windows Command Script" : "Windows командна скрипта",
+ "Electronic book document" : "Документ електронске књиге",
+ "TrueType Font Collection" : "Колекција TrueType фонтова",
+ "Web Open Font Format" : "Web Open Font формат",
+ "GPX geographic data" : "GPX географски подаци",
+ "Gzip archive" : "Gzip архива",
+ "Adobe Illustrator document" : "Adobe Illustrator документ",
+ "Java source code" : "Java изворни кôд",
+ "JavaScript source code" : "JavaScript изворни кôд",
+ "JSON document" : "JSON документ",
+ "Microsoft Access database" : "Microsoft Access база података",
+ "Microsoft OneNote document" : "Microsoft OneNote документ",
+ "Microsoft Word document" : "Microsoft Word документ",
"Unknown" : "Непознато",
+ "PDF document" : "PDF документ",
+ "PostScript document" : "PostScript документ",
+ "RSS summary" : "RSS сажетак",
+ "Android package" : "Android пакет",
+ "KML geographic data" : "KML географски подаци",
+ "KML geographic compressed data" : "KML компресовани географски подаци",
+ "Lotus Word Pro document" : "Lotus Word Pro документ",
+ "Excel spreadsheet" : "Excel табела",
+ "Excel add-in" : "Excel додатак",
+ "Excel 2007 binary spreadsheet" : "Excel 2007 бинарна табела",
+ "Excel spreadsheet template" : "Excel шаблон табеле",
+ "Outlook Message" : "Outlook порука",
+ "PowerPoint presentation" : "PowerPoint презентација",
+ "PowerPoint add-in" : "PowerPoint додатак",
+ "PowerPoint presentation template" : "PowerPoint шаблон презентације",
+ "Word document" : "Word документ",
+ "ODF formula" : "ODF формула",
+ "ODG drawing" : "ODG цртеж",
+ "ODG drawing (Flat XML)" : "ODG цртеж (Равни XML)",
+ "ODG template" : "ODG шаблон",
+ "ODP presentation" : "ODP презентација",
+ "ODP presentation (Flat XML)" : "ODP презентација (РавниXML)",
+ "ODP template" : "ODP шаблон",
+ "ODS spreadsheet" : "ODS табела",
+ "ODS spreadsheet (Flat XML)" : "ODS табела (Равни XML)",
+ "ODS template" : "ODS шаблон",
+ "ODT document" : "ODT документ",
+ "ODT document (Flat XML)" : "ODT документ (Равни XML)",
+ "ODT template" : "ODT шаблон",
+ "PowerPoint 2007 presentation" : "PowerPoint 2007 презентација",
+ "PowerPoint 2007 show" : "PowerPoint 2007 шоу",
+ "PowerPoint 2007 presentation template" : "PowerPoint 2007 шаблон презентације",
+ "Excel 2007 spreadsheet" : "Excel 2007 табела",
+ "Excel 2007 spreadsheet template" : "Excel 2007 шаблон табеле",
+ "Word 2007 document" : "Word 2007 документ",
+ "Word 2007 document template" : "Word 2007 шаблон документа",
+ "Microsoft Visio document" : "Microsoft Visio документ",
+ "WordPerfect document" : "WordPerfect документ",
+ "7-zip archive" : "7-zip архива",
+ "Blender scene" : "Blender сцена",
+ "Bzip2 archive" : "Bzip2 архива",
+ "Debian package" : "Debian пакет",
+ "FictionBook document" : "FictionBook документ",
+ "Unknown font" : "Непознати фонт",
+ "Krita document" : "Krita документ",
+ "Mobipocket e-book" : "Mobipocket е-књига",
+ "Windows Installer package" : "Windows Installer пакет",
+ "Perl script" : "Perl скрипта",
+ "PHP script" : "PHP скрипта",
+ "Tar archive" : "Tar архива",
+ "XML document" : "XML документ",
+ "YAML document" : "YAML документ",
+ "Zip archive" : "Zip архива",
+ "Zstandard archive" : "Zstandard архива",
+ "AAC audio" : "AAC аудио",
+ "FLAC audio" : "FLAC аудио",
+ "MPEG-4 audio" : "MPEG-4 аудио",
+ "MP3 audio" : "MP3 аудио",
+ "Ogg audio" : "Ogg аудио",
+ "RIFF/WAVe standard Audio" : "RIFF/WAVe стандардни аудио",
+ "WebM audio" : "WebM аудио",
+ "MP3 ShoutCast playlist" : "MP3 ShoutCast плејлиста",
+ "Windows BMP image" : "Windows BMP слика",
+ "Better Portable Graphics image" : "Better Portable Graphics слика",
+ "EMF image" : "EMF слика",
+ "GIF image" : "GIF слика",
+ "HEIC image" : "HEIC слика",
+ "HEIF image" : "HEIF слика",
+ "JPEG-2000 JP2 image" : "JPEG-2000 JP2 слика",
+ "JPEG image" : "JPEG слика",
"PNG image" : "ПНГ слика",
+ "SVG image" : "SVG слика",
+ "Truevision Targa image" : "Truevision Targa слика",
+ "TIFF image" : "TIFF слика",
+ "WebP image" : "WebP слика",
+ "Digital raw image" : "Сирова дигитална слика",
+ "Windows Icon" : "Windows икона",
+ "Email message" : "И-мејл порука",
+ "VCS/ICS calendar" : "VCS/ICS календар",
+ "CSS stylesheet" : "CSS листа стилова",
+ "CSV document" : "CSV документ",
+ "HTML document" : "HTML документ",
+ "Markdown document" : "Markdown документ",
+ "Org-mode file" : "Фајл org-режима",
+ "Plain text document" : "Документ чистог текста",
+ "Rich Text document" : "Документ обогаћеног текста",
+ "Electronic business card" : "Електронска визит карта",
+ "C++ source code" : "C++ изворни кôд",
+ "LDIF address book" : "LDIF адресар",
+ "NFO document" : "NFO документ",
+ "PHP source" : "PHP извор",
+ "Python script" : "Python скрипта",
+ "ReStructuredText document" : "ReStructuredText документ",
+ "3GPP multimedia file" : "3GPP мултимедијални фајл",
+ "MPEG video" : "MPEG видео",
+ "DV video" : "DV видео",
+ "MPEG-2 transport stream" : "MPEG-2 транспортни ток",
+ "MPEG-4 video" : "MPEG-4 видео",
+ "Ogg video" : "Ogg видео",
+ "QuickTime video" : "QuickTime видео",
+ "WebM video" : "WebM видео",
+ "Flash video" : "Flash видео",
+ "Matroska video" : "Matroska видео",
+ "Windows Media video" : "Windows Media видео",
+ "AVI video" : "AVI видео",
"Error occurred while checking server setup" : "Дошло је до грешке при провери поставки сервера",
"For more details see the {linkstart}documentation ↗{linkend}." : "За више детаља погледајте {linkstart}документацију ↗{linkend}.",
"unknown text" : "непознат текст",
diff --git a/core/l10n/sr.json b/core/l10n/sr.json
index 1c904391e7e..235052799e5 100644
--- a/core/l10n/sr.json
+++ b/core/l10n/sr.json
@@ -78,8 +78,125 @@
"%s (incompatible)" : "%s (некомпатибилан)",
"The following apps have been disabled: %s" : "Следеће апликације су искључене: %s",
"Already up to date" : "Већ је ажурна",
+ "Windows Command Script" : "Windows командна скрипта",
+ "Electronic book document" : "Документ електронске књиге",
+ "TrueType Font Collection" : "Колекција TrueType фонтова",
+ "Web Open Font Format" : "Web Open Font формат",
+ "GPX geographic data" : "GPX географски подаци",
+ "Gzip archive" : "Gzip архива",
+ "Adobe Illustrator document" : "Adobe Illustrator документ",
+ "Java source code" : "Java изворни кôд",
+ "JavaScript source code" : "JavaScript изворни кôд",
+ "JSON document" : "JSON документ",
+ "Microsoft Access database" : "Microsoft Access база података",
+ "Microsoft OneNote document" : "Microsoft OneNote документ",
+ "Microsoft Word document" : "Microsoft Word документ",
"Unknown" : "Непознато",
+ "PDF document" : "PDF документ",
+ "PostScript document" : "PostScript документ",
+ "RSS summary" : "RSS сажетак",
+ "Android package" : "Android пакет",
+ "KML geographic data" : "KML географски подаци",
+ "KML geographic compressed data" : "KML компресовани географски подаци",
+ "Lotus Word Pro document" : "Lotus Word Pro документ",
+ "Excel spreadsheet" : "Excel табела",
+ "Excel add-in" : "Excel додатак",
+ "Excel 2007 binary spreadsheet" : "Excel 2007 бинарна табела",
+ "Excel spreadsheet template" : "Excel шаблон табеле",
+ "Outlook Message" : "Outlook порука",
+ "PowerPoint presentation" : "PowerPoint презентација",
+ "PowerPoint add-in" : "PowerPoint додатак",
+ "PowerPoint presentation template" : "PowerPoint шаблон презентације",
+ "Word document" : "Word документ",
+ "ODF formula" : "ODF формула",
+ "ODG drawing" : "ODG цртеж",
+ "ODG drawing (Flat XML)" : "ODG цртеж (Равни XML)",
+ "ODG template" : "ODG шаблон",
+ "ODP presentation" : "ODP презентација",
+ "ODP presentation (Flat XML)" : "ODP презентација (РавниXML)",
+ "ODP template" : "ODP шаблон",
+ "ODS spreadsheet" : "ODS табела",
+ "ODS spreadsheet (Flat XML)" : "ODS табела (Равни XML)",
+ "ODS template" : "ODS шаблон",
+ "ODT document" : "ODT документ",
+ "ODT document (Flat XML)" : "ODT документ (Равни XML)",
+ "ODT template" : "ODT шаблон",
+ "PowerPoint 2007 presentation" : "PowerPoint 2007 презентација",
+ "PowerPoint 2007 show" : "PowerPoint 2007 шоу",
+ "PowerPoint 2007 presentation template" : "PowerPoint 2007 шаблон презентације",
+ "Excel 2007 spreadsheet" : "Excel 2007 табела",
+ "Excel 2007 spreadsheet template" : "Excel 2007 шаблон табеле",
+ "Word 2007 document" : "Word 2007 документ",
+ "Word 2007 document template" : "Word 2007 шаблон документа",
+ "Microsoft Visio document" : "Microsoft Visio документ",
+ "WordPerfect document" : "WordPerfect документ",
+ "7-zip archive" : "7-zip архива",
+ "Blender scene" : "Blender сцена",
+ "Bzip2 archive" : "Bzip2 архива",
+ "Debian package" : "Debian пакет",
+ "FictionBook document" : "FictionBook документ",
+ "Unknown font" : "Непознати фонт",
+ "Krita document" : "Krita документ",
+ "Mobipocket e-book" : "Mobipocket е-књига",
+ "Windows Installer package" : "Windows Installer пакет",
+ "Perl script" : "Perl скрипта",
+ "PHP script" : "PHP скрипта",
+ "Tar archive" : "Tar архива",
+ "XML document" : "XML документ",
+ "YAML document" : "YAML документ",
+ "Zip archive" : "Zip архива",
+ "Zstandard archive" : "Zstandard архива",
+ "AAC audio" : "AAC аудио",
+ "FLAC audio" : "FLAC аудио",
+ "MPEG-4 audio" : "MPEG-4 аудио",
+ "MP3 audio" : "MP3 аудио",
+ "Ogg audio" : "Ogg аудио",
+ "RIFF/WAVe standard Audio" : "RIFF/WAVe стандардни аудио",
+ "WebM audio" : "WebM аудио",
+ "MP3 ShoutCast playlist" : "MP3 ShoutCast плејлиста",
+ "Windows BMP image" : "Windows BMP слика",
+ "Better Portable Graphics image" : "Better Portable Graphics слика",
+ "EMF image" : "EMF слика",
+ "GIF image" : "GIF слика",
+ "HEIC image" : "HEIC слика",
+ "HEIF image" : "HEIF слика",
+ "JPEG-2000 JP2 image" : "JPEG-2000 JP2 слика",
+ "JPEG image" : "JPEG слика",
"PNG image" : "ПНГ слика",
+ "SVG image" : "SVG слика",
+ "Truevision Targa image" : "Truevision Targa слика",
+ "TIFF image" : "TIFF слика",
+ "WebP image" : "WebP слика",
+ "Digital raw image" : "Сирова дигитална слика",
+ "Windows Icon" : "Windows икона",
+ "Email message" : "И-мејл порука",
+ "VCS/ICS calendar" : "VCS/ICS календар",
+ "CSS stylesheet" : "CSS листа стилова",
+ "CSV document" : "CSV документ",
+ "HTML document" : "HTML документ",
+ "Markdown document" : "Markdown документ",
+ "Org-mode file" : "Фајл org-режима",
+ "Plain text document" : "Документ чистог текста",
+ "Rich Text document" : "Документ обогаћеног текста",
+ "Electronic business card" : "Електронска визит карта",
+ "C++ source code" : "C++ изворни кôд",
+ "LDIF address book" : "LDIF адресар",
+ "NFO document" : "NFO документ",
+ "PHP source" : "PHP извор",
+ "Python script" : "Python скрипта",
+ "ReStructuredText document" : "ReStructuredText документ",
+ "3GPP multimedia file" : "3GPP мултимедијални фајл",
+ "MPEG video" : "MPEG видео",
+ "DV video" : "DV видео",
+ "MPEG-2 transport stream" : "MPEG-2 транспортни ток",
+ "MPEG-4 video" : "MPEG-4 видео",
+ "Ogg video" : "Ogg видео",
+ "QuickTime video" : "QuickTime видео",
+ "WebM video" : "WebM видео",
+ "Flash video" : "Flash видео",
+ "Matroska video" : "Matroska видео",
+ "Windows Media video" : "Windows Media видео",
+ "AVI video" : "AVI видео",
"Error occurred while checking server setup" : "Дошло је до грешке при провери поставки сервера",
"For more details see the {linkstart}documentation ↗{linkend}." : "За више детаља погледајте {linkstart}документацију ↗{linkend}.",
"unknown text" : "непознат текст",
diff --git a/lib/composer/composer/autoload_classmap.php b/lib/composer/composer/autoload_classmap.php
index 6a2015de300..c65c26af2f2 100644
--- a/lib/composer/composer/autoload_classmap.php
+++ b/lib/composer/composer/autoload_classmap.php
@@ -85,6 +85,7 @@ return array(
'OCP\\AppFramework\\Http\\Attribute\\OpenAPI' => $baseDir . '/lib/public/AppFramework/Http/Attribute/OpenAPI.php',
'OCP\\AppFramework\\Http\\Attribute\\PasswordConfirmationRequired' => $baseDir . '/lib/public/AppFramework/Http/Attribute/PasswordConfirmationRequired.php',
'OCP\\AppFramework\\Http\\Attribute\\PublicPage' => $baseDir . '/lib/public/AppFramework/Http/Attribute/PublicPage.php',
+ 'OCP\\AppFramework\\Http\\Attribute\\RequestHeader' => $baseDir . '/lib/public/AppFramework/Http/Attribute/RequestHeader.php',
'OCP\\AppFramework\\Http\\Attribute\\Route' => $baseDir . '/lib/public/AppFramework/Http/Attribute/Route.php',
'OCP\\AppFramework\\Http\\Attribute\\StrictCookiesRequired' => $baseDir . '/lib/public/AppFramework/Http/Attribute/StrictCookiesRequired.php',
'OCP\\AppFramework\\Http\\Attribute\\SubAdminRequired' => $baseDir . '/lib/public/AppFramework/Http/Attribute/SubAdminRequired.php',
diff --git a/lib/composer/composer/autoload_static.php b/lib/composer/composer/autoload_static.php
index 704cac28332..b1e162bf71e 100644
--- a/lib/composer/composer/autoload_static.php
+++ b/lib/composer/composer/autoload_static.php
@@ -126,6 +126,7 @@ class ComposerStaticInit749170dad3f5e7f9ca158f5a9f04f6a2
'OCP\\AppFramework\\Http\\Attribute\\OpenAPI' => __DIR__ . '/../../..' . '/lib/public/AppFramework/Http/Attribute/OpenAPI.php',
'OCP\\AppFramework\\Http\\Attribute\\PasswordConfirmationRequired' => __DIR__ . '/../../..' . '/lib/public/AppFramework/Http/Attribute/PasswordConfirmationRequired.php',
'OCP\\AppFramework\\Http\\Attribute\\PublicPage' => __DIR__ . '/../../..' . '/lib/public/AppFramework/Http/Attribute/PublicPage.php',
+ 'OCP\\AppFramework\\Http\\Attribute\\RequestHeader' => __DIR__ . '/../../..' . '/lib/public/AppFramework/Http/Attribute/RequestHeader.php',
'OCP\\AppFramework\\Http\\Attribute\\Route' => __DIR__ . '/../../..' . '/lib/public/AppFramework/Http/Attribute/Route.php',
'OCP\\AppFramework\\Http\\Attribute\\StrictCookiesRequired' => __DIR__ . '/../../..' . '/lib/public/AppFramework/Http/Attribute/StrictCookiesRequired.php',
'OCP\\AppFramework\\Http\\Attribute\\SubAdminRequired' => __DIR__ . '/../../..' . '/lib/public/AppFramework/Http/Attribute/SubAdminRequired.php',
diff --git a/lib/l10n/de.js b/lib/l10n/de.js
index e44f2b89e2b..ccb4862321a 100644
--- a/lib/l10n/de.js
+++ b/lib/l10n/de.js
@@ -125,7 +125,7 @@ OC.L10N.register(
"Appearance and accessibility" : "Aussehen und Barrierefreiheit",
"Apps" : "Apps",
"Personal settings" : "Persönliche Einstellungen",
- "Administration settings" : "Verwaltungseinstellungen",
+ "Administration settings" : "Administrationseinstellungen",
"Settings" : "Einstellungen",
"Log out" : "Abmelden",
"Accounts" : "Konten",
diff --git a/lib/l10n/de.json b/lib/l10n/de.json
index 7a05dfc101f..99eb8058087 100644
--- a/lib/l10n/de.json
+++ b/lib/l10n/de.json
@@ -123,7 +123,7 @@
"Appearance and accessibility" : "Aussehen und Barrierefreiheit",
"Apps" : "Apps",
"Personal settings" : "Persönliche Einstellungen",
- "Administration settings" : "Verwaltungseinstellungen",
+ "Administration settings" : "Administrationseinstellungen",
"Settings" : "Einstellungen",
"Log out" : "Abmelden",
"Accounts" : "Konten",
diff --git a/lib/l10n/et_EE.js b/lib/l10n/et_EE.js
index ae5999fc496..94822bc9f6c 100644
--- a/lib/l10n/et_EE.js
+++ b/lib/l10n/et_EE.js
@@ -7,7 +7,7 @@ OC.L10N.register(
"See %s" : "Vaata %s",
"Application %1$s is not present or has a non-compatible version with this server. Please check the apps directory." : "Rakendust „%1$s“ pole serverisse paigaldatud või pole tema versioon ühilduv selle serveriga. Palun kontrolli paigaldatud rakendusi.",
"Sample configuration detected" : "Tuvastati näidisseaded",
- "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Tuvastati, et kopeeriti näidisseaded. See võib lõhkuda sinu saidi ja see pole toetatud. Palun loe enne faili config.php muutmist dokumentatsiooni",
+ "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Tuvastasin, et seadistuse faili kopeeritud näidisseaded. See võib lõhkuda sinu saidi ja see pole toetatud. Palun loe enne faili config.php muutmist dokumentatsiooni",
"The page could not be found on the server." : "Seda lehte ei õnnestunud serverist leida.",
"%s email verification" : "E-postiaadressi kinnitamine: %s",
"Email verification" : "E-postiaadressi kinnitamine",
@@ -19,6 +19,12 @@ OC.L10N.register(
"%1$s, %2$s and %3$s" : "%1$s, %2$s ja %3$s",
"%1$s, %2$s, %3$s and %4$s" : "%1$s, %2$s, %3$s ja %4$s",
"%1$s, %2$s, %3$s, %4$s and %5$s" : "%1$s, %2$s, %3$s, %4$s ja %5$s",
+ "Education bundle" : "Rakenduste komplekt haridusasutustele",
+ "Enterprise bundle" : "Rakenduste komplekt suurorganisatsioonidele",
+ "Groupware bundle" : "Rühmatarkvara rakenduste komplekt",
+ "Hub bundle" : "Rakenduste komplekt Nextcloud Hub",
+ "Public sector bundle" : "Rakenduste komplekt avaliku sektori asutustele",
+ "Social sharing bundle" : "Rakenduste komplekt sotsiaalmeedias jagamiseks",
"PHP %s or higher is required." : "PHP %s või uuem on nõutav.",
"PHP with a version lower than %s is required." : "Nõutud on PHP madalama versiooniga kui %s.",
"%sbit or higher PHP required." : "Vajalik on %s-bitine või parem PHP versioon.",
@@ -26,6 +32,8 @@ OC.L10N.register(
"The following databases are supported: %s" : "Toetatud on järgnevad andmebaasid: %s",
"The command line tool %s could not be found" : "Käsurea töövahendit %s ei leitud",
"The library %s is not available." : "Teek %s pole saadaval.",
+ "Library %1$s with a version higher than %2$s is required - available version %3$s." : "Vajalik on „%1$s“ teek suurema versiooniga kui %2$s - hetkel on versioon %3$s.",
+ "Library %1$s with a version lower than %2$s is required - available version %3$s." : "Vajalik on „%1$s“ teek väiksema versiooniga kui %2$s - hetkel on versioon %3$s.",
"The following platforms are supported: %s" : "Toetatud on järgmised platvormid: %s",
"Server version %s or higher is required." : "Nõutav on serveri versioon %s või suurem.",
"Server version %s or lower is required." : "Serveri versioon %s või madalam on nõutav.",
@@ -77,6 +85,7 @@ OC.L10N.register(
"in a few seconds" : "mõne sekundi jooksul",
"seconds ago" : "sekundit tagasi",
"Empty file" : "Tühi fail",
+ "Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "Moodulit tunnusega „%s“ pole pole olemas. Palun taga see oma rakenduste seadistustest või võta ühendust peakasutajaga.",
"No file conversion providers available" : "Ühtegi teisendusteenuse pakkujat pole saadaval",
"File is too large to convert" : "Fail on teisendamiseks liiga suur",
"Destination does not match conversion extension" : "Sihtmeedia ei vasta teisendamislaiendile",
@@ -185,8 +194,9 @@ OC.L10N.register(
"Files cannot be shared with create permissions" : "Loomisõigustega faile ei saa jagada",
"Expiration date is in the past" : "Aegumise kuupäev on minevikus",
"Expiration date is enforced" : "Aegumiskuupäev on kasutusel",
+ "_Cannot set expiration date more than %n day in the future_::_Cannot set expiration date more than %n days in the future_" : ["Aegumist ei saa lisada kaugemale, kui %n päev tulevikus.","Aegumist ei saa lisada kaugemale, kui %n päeva tulevikus."],
"Sharing is only allowed with group members" : "Jagamine on lubatud vaid grupi liikmetega",
- "Sharing %s failed, because this item is already shared with the account %s" : "%s jagamine ebaõnnestus, kuna seda üksust on juba jagatud kontoga %s",
+ "Sharing %s failed, because this item is already shared with the account %s" : "%s jagamine ei õnnestunud, kuna seda objekti on juba jagatud kontoga %s",
"Group sharing is now allowed" : "Grupile jagamine on nüüd lubatud",
"Sharing is only allowed within your own groups" : "Jagamine on lubatud vaid sinu oma grupi liikmetega",
"Path is already shared with this group" : "Asukoht on selle grupiga juba jagatud",
@@ -196,10 +206,13 @@ OC.L10N.register(
"Sharing is disabled" : "Jagamine pole kasutusel",
"Sharing is disabled for you" : "Jagamine pole sinu jaoks kasutusel",
"Cannot share with the share owner" : "Sa ei saa jagada jaosmeedia omanikule",
+ "Share does not have a full ID" : "Jaosmeedial on täismahuline tunnus puudu",
"Cannot change share type" : "Sa ei saa muuta jaosmeedia tüüpi",
+ "Can only update recipient on user shares" : "Kasutaja jaosmeedia saajat ei õnnestu uuendada",
"Invalid share recipient" : "Vigane jaosmeedia vastuvõtja",
"Group \"%s\" does not exist" : "„%s“ gruppi pole olemas",
"The requested share does not exist anymore" : "Soovitud jagamist enam ei eksisteeri",
+ "The requested share comes from a disabled user" : "Soovitud jaosmeedia on loonud blokeeritud kasutaja",
"Could not find category \"%s\"" : "Ei leia kategooriat „%s“",
"Input text" : "Sisendtekst",
"The input text" : "Sisendtekst",
@@ -265,7 +278,14 @@ OC.L10N.register(
"Authentication error" : "Autentimise viga",
"Token expired. Please reload page." : "Kontrollkood aegus. Paelun laadi leht uuesti.",
"No database drivers (sqlite, mysql, or postgresql) installed." : "Ühtegi andmebaasi (sqlite, mysql või postgresql) draiverit pole paigaldatud.",
+ "Cannot write into \"config\" directory." : "Pole õigust kirjutada „config“ kausta.",
+ "This can usually be fixed by giving the web server write access to the config directory. See %s" : "Tavaliselt saad selle lahendada andes veebiserverile õigused seadistuse kausta kirjutamiseks. Vaata siia: %s",
+ "Or, if you prefer to keep config.php file read only, set the option \"config_is_read_only\" to true in it. See %s" : "Aga kui soovid, et config.pho seadistuste fail ei peaks olema veebiserveri poolt muudetav, siis palun määra seadistusvõtme „config_is_read_only“ väärtuseks true. Lisateavet leiad: %s",
+ "Cannot write into \"apps\" directory." : "Pole õigust kirjutada „apps“ kausta.",
+ "This can usually be fixed by giving the web server write access to the apps directory or disabling the App Store in the config file." : "Tavaliselt saad selle lahendada andes veebiserverile õigused rakenduste kausta kirjutamiseks. Alternatiivina võid ka Nextcloudi rakendustepoe kasutamise keelata.",
"Cannot create \"data\" directory." : "„data“ kausta loomine ei õnnestunud.",
+ "This can usually be fixed by giving the web server write access to the root directory. See %s" : "Tavaliselt saad selle lahendada andes veebiserverile õigused juurkausta kirjutamiseks. Vaata siia: %s",
+ "Permissions can usually be fixed by giving the web server write access to the root directory. See %s." : "Tavaliselt saad õiguste vea lahendada andes veebiserverile õigused juurkausta kirjutamiseks. Vaata siia: %s",
"Your data directory is not writable." : "Sinu serveri andmekaust pole kirjutatav.",
"Setting locale to %s failed." : "Ei õnnestunud määrata lokaadi väärtuseks „%s“.",
"Please install one of these locales on your system and restart your web server." : "Palun paigalda mõni neist lokaatidest oma serverisse ning taaskäivita veebiserver.",
@@ -273,14 +293,23 @@ OC.L10N.register(
"Please ask your server administrator to install the module." : "Palu oma serveri haldajal moodul paigadalda.",
"PHP setting \"%s\" is not set to \"%s\"." : "PHP seadistuse „%s“ väärtuseks ei ole „%s“.",
"Adjusting this setting in php.ini will make Nextcloud run again" : "Selle seadistuse kohendamine php.ini failis võimaldab sul Nextcloudi uuesti tööle saada",
+ "<code>mbstring.func_overload</code> is set to <code>%s</code> instead of the expected value <code>0</code>." : "<code>mbstring.func_overload</code> muutuja väärtus on hetkel <code>%s</code>, pigem eeldaks väärtust <code>0</code>.",
+ "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini." : "Vea parandamiseks muuda oma veebiserveri php.ini failis <code>mbstring.func_overload</code> väärtuseks <code>0</code>.",
+ "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "PHP on seadistatud eemaldama „inline“ dokumendi blokke. See muudab mõned tuumikrakendused kasutamatuteks.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "See on tõenäoliselt põhjustatud puhver/kiirendist nagu Zend OPcache või eAccelerator.",
"PHP modules have been installed, but they are still listed as missing?" : "PHP moodulid on paigaldatud, kuid neid näitatakse endiselt kui puuduolevad?",
"Please ask your server administrator to restart the web server." : "Palu oma serveri haldajal veebiserver taaskäivitada.",
+ "The required %s config variable is not configured in the config.php file." : "Nõutav seadistuste muutuja „%s“ puudub sonfig.php failist.",
+ "Please ask your server administrator to check the Nextcloud configuration." : "Palu oma serveri haldajal Nextcloudi seadistusi kontrollida.",
+ "Your data directory is readable by other people." : "Sinu andmete kaust on loetav teiste kasutajate poolt.",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other people." : "Palun muuda kausta õigused 0770-ks, et kausta sisu poleks teistele kasutajatele nähtav.",
"Your data directory must be an absolute path." : "Andmekausta asukoht peab olema absoluutne aadress.",
- "Your data directory is invalid." : "Sinu andmekataloog on vigane",
+ "Check the value of \"datadirectory\" in your configuration." : "Palun kontrolli „datadirectory“ väärtust selle paigalduse seadistustes.",
+ "Your data directory is invalid." : "Sinu andmekaust on vigane.",
"Ensure there is a file called \"%1$s\" in the root of the data directory. It should have the content: \"%2$s\"" : "Palun taga, et andmete juurkaustas leidub fail „%1$s“, mille sisuks on „%2$s“",
"Action \"%s\" not supported or implemented." : "„%s“ tegevus pole toetatud või implementeeritud.",
- "Parameters missing in order to complete the request. Missing Parameters: \"%s\"" : "Päringu lõpetamiseks on puudu järgmised parameetrid; „%s“",
+ "Authentication failed, wrong token or provider ID given" : "Autentimine ei õnnestunud - kas tunnusluba või teenusepakkuja tunnus on vale",
+ "Parameters missing in order to complete the request. Missing Parameters: \"%s\"" : "Päringu lõpetamiseks on puudu järgmised parameetrid: „%s“",
"ID \"%1$s\" already used by cloud federation provider \"%2$s\"" : "„%1$s“ tunnus on juba kasutusel liitpilve serveris „%2$s“",
"Cloud Federation Provider with ID: \"%s\" does not exist." : "Liitpilve teenusepakkujat tunnusega „%s“ pole olemas.",
"Could not obtain lock type %d on \"%s\"." : "Ei suutnud hankida %d tüüpi lukustust asukohas „%s“.",
@@ -295,12 +324,33 @@ OC.L10N.register(
"The audio to transcribe" : "Üleskirjutatav helifail",
"Transcription" : "Üleskirjutus",
"The transcribed text" : "Üleskirjutatud tekst",
+ "Chat with an agent" : "Vestle robotagendiga",
+ "Chat message" : "Vestluse sõnum",
+ "A chat message to send to the agent." : "Robotagendile saadetav sõnum.",
"Confirmation" : "Kinnitus",
+ "Whether to confirm previously requested actions: 0 for denial and 1 for confirmation." : "Kas peaksime eelmised tegevuse kinnitama: keeldumist märgib 0 ja nõustumist 1.",
+ "Conversation token" : "Vestluse tunnusluba",
+ "A token representing the conversation." : "Tunnusluba vestluse tuvastamiseks.",
+ "Generated response" : "Loodud vastus",
+ "The response from the chat model." : "Vastus tehisarupõhise vestluse mudelilt.",
+ "The new conversation token" : "Vestluse uus tunnusluba",
+ "Send this along with the next interaction." : "Saada see kaasa järgmise päringuga.",
+ "Requested actions by the agent" : "Ülesanded tehisaru agendile",
+ "Actions that the agent would like to carry out in JSON format." : "Tehisaru agendile antavad ülesanded JSON-vormingus.",
"Context write" : "Kontekstuaalne kirjutamine",
"Writes text in a given style based on the provided source material." : "Kirjutab etteantud lähtematerjali lausel teksti üles.",
"Writing style" : "Kirjutamisstiil",
+ "Demonstrate a writing style that you would like to immitate" : "Näita sellist kirjutamisstiili, mida tahad jäljendada",
"Source material" : "Lähtematerjal",
- "Generate image" : "Piltide loomine",
+ "The content that would like to be rewritten in the new writing style" : "Sisu, mida tahaksid uues stiilis ümber kirjutada",
+ "Generated text" : "Koostatud tekst",
+ "The generated text with content from the source material in the given style" : "Antud stiilis lähtematerjali alusel koostatud tekst",
+ "Emoji generator" : "Emojide looja",
+ "Takes text and generates a representative emoji for it." : "Võtab aluseks teksti ja lood selle alusel emoji.",
+ "The text to generate an emoji for" : "Lähtetekst, millest lood emoji",
+ "Generated emoji" : "Loodud emoji",
+ "The generated emoji based on the input text" : "Sisestatud teksti alusel loodud emoji",
+ "Generate image" : "Pildiloome",
"Generate an image from a text prompt" : "Loo tekstisisendist pilt",
"Prompt" : "Sisendvorm",
"Describe the image you want to generate" : "Kirjelda loodavat pilti",
@@ -313,9 +363,21 @@ OC.L10N.register(
"Write transcript that you want the assistant to generate speech from" : "Kirjuta üles see, mille alusel tahad Abilisel lasta koostada kõne",
"Output speech" : "Kõneväljund",
"The generated speech" : "Koostatud kõne",
+ "Change Tone" : "Teksti tooni muutmine",
+ "Change the tone of a piece of text." : "Muuda antud teksti tonaalsust.",
+ "Write a text that you want the assistant to rewrite in another tone." : "Kirjuta üles see, mille tonaalsust tahad Abilisel lasta ümber kirjutada.",
+ "Desired tone" : "Soovitud toon",
+ "In which tone should your text be rewritten?" : "Mis toonis peaks tekst olema ümberkirjutatud?",
+ "The rewritten text in the desired tone, written by the assistant:" : "Abilise poolt soovitud toonis ümberkirjutatud tekst:",
"Chat" : "Vestle",
"Chat with the assistant" : "Vestle Abilisega",
"System prompt" : "Süsteemi viip",
+ "Chat history" : "Vestluse ajalugu",
+ "The history of chat messages before the current message, starting with a message by the user" : "Kasutaja sõnumiga algav vestluse ajalugu enne praegust sõnumit",
+ "Response message" : "Sõnumi vastus",
+ "The generated response as part of the conversation" : "Loodud vastus vestluse osana",
+ "Formalize text" : "Muuda tekst ametlikuks",
+ "Takes a text and makes it sound more formal" : "Sisestatud teksti vormistamine ametlikuna",
"Generate a headline" : "Alapealkirja loomine",
"Generates a possible headline for a text." : "Võimaldab luua teksti põhjal kokkuvõtliku alapealkirja.",
"Original text" : "Lähtetekst",
@@ -349,6 +411,8 @@ OC.L10N.register(
"%1$s shared »%2$s« with you" : "„%1$s“ jagas sinuga „%2$s“",
"%1$s shared »%2$s« with you." : "%1$s jagas sinuga „%2$s“ faili.",
"Click the button below to open it." : "Vajuta allolevat nuppu, et see avada.",
- "File is currently busy, please try again later" : "Fail on hetkel kasutuses, proovi hiljem uuesti"
+ "File is currently busy, please try again later" : "Fail on hetkel kasutuses, proovi hiljem uuesti",
+ "Cannot download file" : "Faili pole võimalik alla laadida",
+ "Ensure there is a file called \".ocdata\" in the root of the data directory." : "Palun taga, et „.ocdata“ fail leidub andmekausta juurkaustas."
},
"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/et_EE.json b/lib/l10n/et_EE.json
index 65621b2643a..bfc712ca29a 100644
--- a/lib/l10n/et_EE.json
+++ b/lib/l10n/et_EE.json
@@ -5,7 +5,7 @@
"See %s" : "Vaata %s",
"Application %1$s is not present or has a non-compatible version with this server. Please check the apps directory." : "Rakendust „%1$s“ pole serverisse paigaldatud või pole tema versioon ühilduv selle serveriga. Palun kontrolli paigaldatud rakendusi.",
"Sample configuration detected" : "Tuvastati näidisseaded",
- "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Tuvastati, et kopeeriti näidisseaded. See võib lõhkuda sinu saidi ja see pole toetatud. Palun loe enne faili config.php muutmist dokumentatsiooni",
+ "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Tuvastasin, et seadistuse faili kopeeritud näidisseaded. See võib lõhkuda sinu saidi ja see pole toetatud. Palun loe enne faili config.php muutmist dokumentatsiooni",
"The page could not be found on the server." : "Seda lehte ei õnnestunud serverist leida.",
"%s email verification" : "E-postiaadressi kinnitamine: %s",
"Email verification" : "E-postiaadressi kinnitamine",
@@ -17,6 +17,12 @@
"%1$s, %2$s and %3$s" : "%1$s, %2$s ja %3$s",
"%1$s, %2$s, %3$s and %4$s" : "%1$s, %2$s, %3$s ja %4$s",
"%1$s, %2$s, %3$s, %4$s and %5$s" : "%1$s, %2$s, %3$s, %4$s ja %5$s",
+ "Education bundle" : "Rakenduste komplekt haridusasutustele",
+ "Enterprise bundle" : "Rakenduste komplekt suurorganisatsioonidele",
+ "Groupware bundle" : "Rühmatarkvara rakenduste komplekt",
+ "Hub bundle" : "Rakenduste komplekt Nextcloud Hub",
+ "Public sector bundle" : "Rakenduste komplekt avaliku sektori asutustele",
+ "Social sharing bundle" : "Rakenduste komplekt sotsiaalmeedias jagamiseks",
"PHP %s or higher is required." : "PHP %s või uuem on nõutav.",
"PHP with a version lower than %s is required." : "Nõutud on PHP madalama versiooniga kui %s.",
"%sbit or higher PHP required." : "Vajalik on %s-bitine või parem PHP versioon.",
@@ -24,6 +30,8 @@
"The following databases are supported: %s" : "Toetatud on järgnevad andmebaasid: %s",
"The command line tool %s could not be found" : "Käsurea töövahendit %s ei leitud",
"The library %s is not available." : "Teek %s pole saadaval.",
+ "Library %1$s with a version higher than %2$s is required - available version %3$s." : "Vajalik on „%1$s“ teek suurema versiooniga kui %2$s - hetkel on versioon %3$s.",
+ "Library %1$s with a version lower than %2$s is required - available version %3$s." : "Vajalik on „%1$s“ teek väiksema versiooniga kui %2$s - hetkel on versioon %3$s.",
"The following platforms are supported: %s" : "Toetatud on järgmised platvormid: %s",
"Server version %s or higher is required." : "Nõutav on serveri versioon %s või suurem.",
"Server version %s or lower is required." : "Serveri versioon %s või madalam on nõutav.",
@@ -75,6 +83,7 @@
"in a few seconds" : "mõne sekundi jooksul",
"seconds ago" : "sekundit tagasi",
"Empty file" : "Tühi fail",
+ "Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "Moodulit tunnusega „%s“ pole pole olemas. Palun taga see oma rakenduste seadistustest või võta ühendust peakasutajaga.",
"No file conversion providers available" : "Ühtegi teisendusteenuse pakkujat pole saadaval",
"File is too large to convert" : "Fail on teisendamiseks liiga suur",
"Destination does not match conversion extension" : "Sihtmeedia ei vasta teisendamislaiendile",
@@ -183,8 +192,9 @@
"Files cannot be shared with create permissions" : "Loomisõigustega faile ei saa jagada",
"Expiration date is in the past" : "Aegumise kuupäev on minevikus",
"Expiration date is enforced" : "Aegumiskuupäev on kasutusel",
+ "_Cannot set expiration date more than %n day in the future_::_Cannot set expiration date more than %n days in the future_" : ["Aegumist ei saa lisada kaugemale, kui %n päev tulevikus.","Aegumist ei saa lisada kaugemale, kui %n päeva tulevikus."],
"Sharing is only allowed with group members" : "Jagamine on lubatud vaid grupi liikmetega",
- "Sharing %s failed, because this item is already shared with the account %s" : "%s jagamine ebaõnnestus, kuna seda üksust on juba jagatud kontoga %s",
+ "Sharing %s failed, because this item is already shared with the account %s" : "%s jagamine ei õnnestunud, kuna seda objekti on juba jagatud kontoga %s",
"Group sharing is now allowed" : "Grupile jagamine on nüüd lubatud",
"Sharing is only allowed within your own groups" : "Jagamine on lubatud vaid sinu oma grupi liikmetega",
"Path is already shared with this group" : "Asukoht on selle grupiga juba jagatud",
@@ -194,10 +204,13 @@
"Sharing is disabled" : "Jagamine pole kasutusel",
"Sharing is disabled for you" : "Jagamine pole sinu jaoks kasutusel",
"Cannot share with the share owner" : "Sa ei saa jagada jaosmeedia omanikule",
+ "Share does not have a full ID" : "Jaosmeedial on täismahuline tunnus puudu",
"Cannot change share type" : "Sa ei saa muuta jaosmeedia tüüpi",
+ "Can only update recipient on user shares" : "Kasutaja jaosmeedia saajat ei õnnestu uuendada",
"Invalid share recipient" : "Vigane jaosmeedia vastuvõtja",
"Group \"%s\" does not exist" : "„%s“ gruppi pole olemas",
"The requested share does not exist anymore" : "Soovitud jagamist enam ei eksisteeri",
+ "The requested share comes from a disabled user" : "Soovitud jaosmeedia on loonud blokeeritud kasutaja",
"Could not find category \"%s\"" : "Ei leia kategooriat „%s“",
"Input text" : "Sisendtekst",
"The input text" : "Sisendtekst",
@@ -263,7 +276,14 @@
"Authentication error" : "Autentimise viga",
"Token expired. Please reload page." : "Kontrollkood aegus. Paelun laadi leht uuesti.",
"No database drivers (sqlite, mysql, or postgresql) installed." : "Ühtegi andmebaasi (sqlite, mysql või postgresql) draiverit pole paigaldatud.",
+ "Cannot write into \"config\" directory." : "Pole õigust kirjutada „config“ kausta.",
+ "This can usually be fixed by giving the web server write access to the config directory. See %s" : "Tavaliselt saad selle lahendada andes veebiserverile õigused seadistuse kausta kirjutamiseks. Vaata siia: %s",
+ "Or, if you prefer to keep config.php file read only, set the option \"config_is_read_only\" to true in it. See %s" : "Aga kui soovid, et config.pho seadistuste fail ei peaks olema veebiserveri poolt muudetav, siis palun määra seadistusvõtme „config_is_read_only“ väärtuseks true. Lisateavet leiad: %s",
+ "Cannot write into \"apps\" directory." : "Pole õigust kirjutada „apps“ kausta.",
+ "This can usually be fixed by giving the web server write access to the apps directory or disabling the App Store in the config file." : "Tavaliselt saad selle lahendada andes veebiserverile õigused rakenduste kausta kirjutamiseks. Alternatiivina võid ka Nextcloudi rakendustepoe kasutamise keelata.",
"Cannot create \"data\" directory." : "„data“ kausta loomine ei õnnestunud.",
+ "This can usually be fixed by giving the web server write access to the root directory. See %s" : "Tavaliselt saad selle lahendada andes veebiserverile õigused juurkausta kirjutamiseks. Vaata siia: %s",
+ "Permissions can usually be fixed by giving the web server write access to the root directory. See %s." : "Tavaliselt saad õiguste vea lahendada andes veebiserverile õigused juurkausta kirjutamiseks. Vaata siia: %s",
"Your data directory is not writable." : "Sinu serveri andmekaust pole kirjutatav.",
"Setting locale to %s failed." : "Ei õnnestunud määrata lokaadi väärtuseks „%s“.",
"Please install one of these locales on your system and restart your web server." : "Palun paigalda mõni neist lokaatidest oma serverisse ning taaskäivita veebiserver.",
@@ -271,14 +291,23 @@
"Please ask your server administrator to install the module." : "Palu oma serveri haldajal moodul paigadalda.",
"PHP setting \"%s\" is not set to \"%s\"." : "PHP seadistuse „%s“ väärtuseks ei ole „%s“.",
"Adjusting this setting in php.ini will make Nextcloud run again" : "Selle seadistuse kohendamine php.ini failis võimaldab sul Nextcloudi uuesti tööle saada",
+ "<code>mbstring.func_overload</code> is set to <code>%s</code> instead of the expected value <code>0</code>." : "<code>mbstring.func_overload</code> muutuja väärtus on hetkel <code>%s</code>, pigem eeldaks väärtust <code>0</code>.",
+ "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini." : "Vea parandamiseks muuda oma veebiserveri php.ini failis <code>mbstring.func_overload</code> väärtuseks <code>0</code>.",
+ "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "PHP on seadistatud eemaldama „inline“ dokumendi blokke. See muudab mõned tuumikrakendused kasutamatuteks.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "See on tõenäoliselt põhjustatud puhver/kiirendist nagu Zend OPcache või eAccelerator.",
"PHP modules have been installed, but they are still listed as missing?" : "PHP moodulid on paigaldatud, kuid neid näitatakse endiselt kui puuduolevad?",
"Please ask your server administrator to restart the web server." : "Palu oma serveri haldajal veebiserver taaskäivitada.",
+ "The required %s config variable is not configured in the config.php file." : "Nõutav seadistuste muutuja „%s“ puudub sonfig.php failist.",
+ "Please ask your server administrator to check the Nextcloud configuration." : "Palu oma serveri haldajal Nextcloudi seadistusi kontrollida.",
+ "Your data directory is readable by other people." : "Sinu andmete kaust on loetav teiste kasutajate poolt.",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other people." : "Palun muuda kausta õigused 0770-ks, et kausta sisu poleks teistele kasutajatele nähtav.",
"Your data directory must be an absolute path." : "Andmekausta asukoht peab olema absoluutne aadress.",
- "Your data directory is invalid." : "Sinu andmekataloog on vigane",
+ "Check the value of \"datadirectory\" in your configuration." : "Palun kontrolli „datadirectory“ väärtust selle paigalduse seadistustes.",
+ "Your data directory is invalid." : "Sinu andmekaust on vigane.",
"Ensure there is a file called \"%1$s\" in the root of the data directory. It should have the content: \"%2$s\"" : "Palun taga, et andmete juurkaustas leidub fail „%1$s“, mille sisuks on „%2$s“",
"Action \"%s\" not supported or implemented." : "„%s“ tegevus pole toetatud või implementeeritud.",
- "Parameters missing in order to complete the request. Missing Parameters: \"%s\"" : "Päringu lõpetamiseks on puudu järgmised parameetrid; „%s“",
+ "Authentication failed, wrong token or provider ID given" : "Autentimine ei õnnestunud - kas tunnusluba või teenusepakkuja tunnus on vale",
+ "Parameters missing in order to complete the request. Missing Parameters: \"%s\"" : "Päringu lõpetamiseks on puudu järgmised parameetrid: „%s“",
"ID \"%1$s\" already used by cloud federation provider \"%2$s\"" : "„%1$s“ tunnus on juba kasutusel liitpilve serveris „%2$s“",
"Cloud Federation Provider with ID: \"%s\" does not exist." : "Liitpilve teenusepakkujat tunnusega „%s“ pole olemas.",
"Could not obtain lock type %d on \"%s\"." : "Ei suutnud hankida %d tüüpi lukustust asukohas „%s“.",
@@ -293,12 +322,33 @@
"The audio to transcribe" : "Üleskirjutatav helifail",
"Transcription" : "Üleskirjutus",
"The transcribed text" : "Üleskirjutatud tekst",
+ "Chat with an agent" : "Vestle robotagendiga",
+ "Chat message" : "Vestluse sõnum",
+ "A chat message to send to the agent." : "Robotagendile saadetav sõnum.",
"Confirmation" : "Kinnitus",
+ "Whether to confirm previously requested actions: 0 for denial and 1 for confirmation." : "Kas peaksime eelmised tegevuse kinnitama: keeldumist märgib 0 ja nõustumist 1.",
+ "Conversation token" : "Vestluse tunnusluba",
+ "A token representing the conversation." : "Tunnusluba vestluse tuvastamiseks.",
+ "Generated response" : "Loodud vastus",
+ "The response from the chat model." : "Vastus tehisarupõhise vestluse mudelilt.",
+ "The new conversation token" : "Vestluse uus tunnusluba",
+ "Send this along with the next interaction." : "Saada see kaasa järgmise päringuga.",
+ "Requested actions by the agent" : "Ülesanded tehisaru agendile",
+ "Actions that the agent would like to carry out in JSON format." : "Tehisaru agendile antavad ülesanded JSON-vormingus.",
"Context write" : "Kontekstuaalne kirjutamine",
"Writes text in a given style based on the provided source material." : "Kirjutab etteantud lähtematerjali lausel teksti üles.",
"Writing style" : "Kirjutamisstiil",
+ "Demonstrate a writing style that you would like to immitate" : "Näita sellist kirjutamisstiili, mida tahad jäljendada",
"Source material" : "Lähtematerjal",
- "Generate image" : "Piltide loomine",
+ "The content that would like to be rewritten in the new writing style" : "Sisu, mida tahaksid uues stiilis ümber kirjutada",
+ "Generated text" : "Koostatud tekst",
+ "The generated text with content from the source material in the given style" : "Antud stiilis lähtematerjali alusel koostatud tekst",
+ "Emoji generator" : "Emojide looja",
+ "Takes text and generates a representative emoji for it." : "Võtab aluseks teksti ja lood selle alusel emoji.",
+ "The text to generate an emoji for" : "Lähtetekst, millest lood emoji",
+ "Generated emoji" : "Loodud emoji",
+ "The generated emoji based on the input text" : "Sisestatud teksti alusel loodud emoji",
+ "Generate image" : "Pildiloome",
"Generate an image from a text prompt" : "Loo tekstisisendist pilt",
"Prompt" : "Sisendvorm",
"Describe the image you want to generate" : "Kirjelda loodavat pilti",
@@ -311,9 +361,21 @@
"Write transcript that you want the assistant to generate speech from" : "Kirjuta üles see, mille alusel tahad Abilisel lasta koostada kõne",
"Output speech" : "Kõneväljund",
"The generated speech" : "Koostatud kõne",
+ "Change Tone" : "Teksti tooni muutmine",
+ "Change the tone of a piece of text." : "Muuda antud teksti tonaalsust.",
+ "Write a text that you want the assistant to rewrite in another tone." : "Kirjuta üles see, mille tonaalsust tahad Abilisel lasta ümber kirjutada.",
+ "Desired tone" : "Soovitud toon",
+ "In which tone should your text be rewritten?" : "Mis toonis peaks tekst olema ümberkirjutatud?",
+ "The rewritten text in the desired tone, written by the assistant:" : "Abilise poolt soovitud toonis ümberkirjutatud tekst:",
"Chat" : "Vestle",
"Chat with the assistant" : "Vestle Abilisega",
"System prompt" : "Süsteemi viip",
+ "Chat history" : "Vestluse ajalugu",
+ "The history of chat messages before the current message, starting with a message by the user" : "Kasutaja sõnumiga algav vestluse ajalugu enne praegust sõnumit",
+ "Response message" : "Sõnumi vastus",
+ "The generated response as part of the conversation" : "Loodud vastus vestluse osana",
+ "Formalize text" : "Muuda tekst ametlikuks",
+ "Takes a text and makes it sound more formal" : "Sisestatud teksti vormistamine ametlikuna",
"Generate a headline" : "Alapealkirja loomine",
"Generates a possible headline for a text." : "Võimaldab luua teksti põhjal kokkuvõtliku alapealkirja.",
"Original text" : "Lähtetekst",
@@ -347,6 +409,8 @@
"%1$s shared »%2$s« with you" : "„%1$s“ jagas sinuga „%2$s“",
"%1$s shared »%2$s« with you." : "%1$s jagas sinuga „%2$s“ faili.",
"Click the button below to open it." : "Vajuta allolevat nuppu, et see avada.",
- "File is currently busy, please try again later" : "Fail on hetkel kasutuses, proovi hiljem uuesti"
+ "File is currently busy, please try again later" : "Fail on hetkel kasutuses, proovi hiljem uuesti",
+ "Cannot download file" : "Faili pole võimalik alla laadida",
+ "Ensure there is a file called \".ocdata\" in the root of the data directory." : "Palun taga, et „.ocdata“ fail leidub andmekausta juurkaustas."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/lib/private/Files/Config/MountProviderCollection.php b/lib/private/Files/Config/MountProviderCollection.php
index 6a5407934c8..9d63184e05f 100644
--- a/lib/private/Files/Config/MountProviderCollection.php
+++ b/lib/private/Files/Config/MountProviderCollection.php
@@ -24,60 +24,43 @@ class MountProviderCollection implements IMountProviderCollection, Emitter {
use EmitterTrait;
/**
- * @var \OCP\Files\Config\IHomeMountProvider[]
+ * @var list<IHomeMountProvider>
*/
- private $homeProviders = [];
+ private array $homeProviders = [];
/**
- * @var \OCP\Files\Config\IMountProvider[]
+ * @var list<IMountProvider>
*/
- private $providers = [];
+ private array $providers = [];
- /** @var \OCP\Files\Config\IRootMountProvider[] */
- private $rootProviders = [];
+ /** @var list<IRootMountProvider> */
+ private array $rootProviders = [];
- /**
- * @var \OCP\Files\Storage\IStorageFactory
- */
- private $loader;
-
- /**
- * @var \OCP\Files\Config\IUserMountCache
- */
- private $mountCache;
-
- /** @var callable[] */
- private $mountFilters = [];
+ /** @var list<callable> */
+ private array $mountFilters = [];
- private IEventLogger $eventLogger;
-
- /**
- * @param \OCP\Files\Storage\IStorageFactory $loader
- * @param IUserMountCache $mountCache
- */
public function __construct(
- IStorageFactory $loader,
- IUserMountCache $mountCache,
- IEventLogger $eventLogger,
+ private IStorageFactory $loader,
+ private IUserMountCache $mountCache,
+ private IEventLogger $eventLogger,
) {
- $this->loader = $loader;
- $this->mountCache = $mountCache;
- $this->eventLogger = $eventLogger;
}
+ /**
+ * @return list<IMountPoint>
+ */
private function getMountsFromProvider(IMountProvider $provider, IUser $user, IStorageFactory $loader): array {
$class = str_replace('\\', '_', get_class($provider));
$uid = $user->getUID();
$this->eventLogger->start('fs:setup:provider:' . $class, "Getting mounts from $class for $uid");
$mounts = $provider->getMountsForUser($user, $loader) ?? [];
$this->eventLogger->end('fs:setup:provider:' . $class);
- return $mounts;
+ return array_values($mounts);
}
/**
- * @param IUser $user
- * @param IMountProvider[] $providers
- * @return IMountPoint[]
+ * @param list<IMountProvider> $providers
+ * @return list<IMountPoint>
*/
private function getUserMountsForProviders(IUser $user, array $providers): array {
$loader = $this->loader;
@@ -90,10 +73,16 @@ class MountProviderCollection implements IMountProviderCollection, Emitter {
return $this->filterMounts($user, $mounts);
}
+ /**
+ * @return list<IMountPoint>
+ */
public function getMountsForUser(IUser $user): array {
return $this->getUserMountsForProviders($user, $this->providers);
}
+ /**
+ * @return list<IMountPoint>
+ */
public function getUserMountsForProviderClasses(IUser $user, array $mountProviderClasses): array {
$providers = array_filter(
$this->providers,
@@ -102,7 +91,10 @@ class MountProviderCollection implements IMountProviderCollection, Emitter {
return $this->getUserMountsForProviders($user, $providers);
}
- public function addMountForUser(IUser $user, IMountManager $mountManager, ?callable $providerFilter = null) {
+ /**
+ * @return list<IMountPoint>
+ */
+ public function addMountForUser(IUser $user, IMountManager $mountManager, ?callable $providerFilter = null): array {
// shared mount provider gets to go last since it needs to know existing files
// to check for name collisions
$firstMounts = [];
@@ -135,18 +127,15 @@ class MountProviderCollection implements IMountProviderCollection, Emitter {
array_walk($lateMounts, [$mountManager, 'addMount']);
$this->eventLogger->end('fs:setup:add-mounts');
- return array_merge($lateMounts, $firstMounts);
+ return array_values(array_merge($lateMounts, $firstMounts));
}
/**
* Get the configured home mount for this user
*
- * @param \OCP\IUser $user
- * @return \OCP\Files\Mount\IMountPoint
* @since 9.1.0
*/
- public function getHomeMountForUser(IUser $user) {
- /** @var \OCP\Files\Config\IHomeMountProvider[] $providers */
+ public function getHomeMountForUser(IUser $user): IMountPoint {
$providers = array_reverse($this->homeProviders); // call the latest registered provider first to give apps an opportunity to overwrite builtin
foreach ($providers as $homeProvider) {
if ($mount = $homeProvider->getHomeMountForUser($user, $this->loader)) {
@@ -159,34 +148,36 @@ class MountProviderCollection implements IMountProviderCollection, Emitter {
/**
* Add a provider for mount points
- *
- * @param \OCP\Files\Config\IMountProvider $provider
*/
- public function registerProvider(IMountProvider $provider) {
+ public function registerProvider(IMountProvider $provider): void {
$this->providers[] = $provider;
$this->emit('\OC\Files\Config', 'registerMountProvider', [$provider]);
}
- public function registerMountFilter(callable $filter) {
+ public function registerMountFilter(callable $filter): void {
$this->mountFilters[] = $filter;
}
- private function filterMounts(IUser $user, array $mountPoints) {
- return array_filter($mountPoints, function (IMountPoint $mountPoint) use ($user) {
+ /**
+ * @param list<IMountPoint> $mountPoints
+ * @return list<IMountPoint>
+ */
+ private function filterMounts(IUser $user, array $mountPoints): array {
+ return array_values(array_filter($mountPoints, function (IMountPoint $mountPoint) use ($user) {
foreach ($this->mountFilters as $filter) {
if ($filter($mountPoint, $user) === false) {
return false;
}
}
return true;
- });
+ }));
}
/**
* Add a provider for home mount points
*
- * @param \OCP\Files\Config\IHomeMountProvider $provider
+ * @param IHomeMountProvider $provider
* @since 9.1.0
*/
public function registerHomeProvider(IHomeMountProvider $provider) {
@@ -196,21 +187,19 @@ class MountProviderCollection implements IMountProviderCollection, Emitter {
/**
* Get the mount cache which can be used to search for mounts without setting up the filesystem
- *
- * @return IUserMountCache
*/
- public function getMountCache() {
+ public function getMountCache(): IUserMountCache {
return $this->mountCache;
}
- public function registerRootProvider(IRootMountProvider $provider) {
+ public function registerRootProvider(IRootMountProvider $provider): void {
$this->rootProviders[] = $provider;
}
/**
* Get all root mountpoints
*
- * @return \OCP\Files\Mount\IMountPoint[]
+ * @return list<IMountPoint>
* @since 20.0.0
*/
public function getRootMounts(): array {
@@ -226,16 +215,33 @@ class MountProviderCollection implements IMountProviderCollection, Emitter {
throw new \Exception('No root mounts provided by any provider');
}
- return $mounts;
+ return array_values($mounts);
}
- public function clearProviders() {
+ public function clearProviders(): void {
$this->providers = [];
$this->homeProviders = [];
$this->rootProviders = [];
}
+ /**
+ * @return list<IMountProvider>
+ */
public function getProviders(): array {
return $this->providers;
}
+
+ /**
+ * @return list<IHomeMountProvider>
+ */
+ public function getHomeProviders(): array {
+ return $this->homeProviders;
+ }
+
+ /**
+ * @return list<IRootMountProvider>
+ */
+ public function getRootProviders(): array {
+ return $this->rootProviders;
+ }
}
diff --git a/lib/private/Files/SetupManager.php b/lib/private/Files/SetupManager.php
index 2b8121a529d..7f97187179e 100644
--- a/lib/private/Files/SetupManager.php
+++ b/lib/private/Files/SetupManager.php
@@ -34,6 +34,7 @@ use OCP\EventDispatcher\IEventDispatcher;
use OCP\Files\Config\ICachedMountInfo;
use OCP\Files\Config\IHomeMountProvider;
use OCP\Files\Config\IMountProvider;
+use OCP\Files\Config\IRootMountProvider;
use OCP\Files\Config\IUserMountCache;
use OCP\Files\Events\BeforeFileSystemSetupEvent;
use OCP\Files\Events\InvalidateMountCacheEvent;
@@ -280,9 +281,13 @@ class SetupManager {
$mounts = array_filter($mounts, function (IMountPoint $mount) use ($userRoot) {
return str_starts_with($mount->getMountPoint(), $userRoot);
});
- $allProviders = array_map(function (IMountProvider $provider) {
+ $allProviders = array_map(function (IMountProvider|IHomeMountProvider|IRootMountProvider $provider) {
return get_class($provider);
- }, $this->mountProviderCollection->getProviders());
+ }, array_merge(
+ $this->mountProviderCollection->getProviders(),
+ $this->mountProviderCollection->getHomeProviders(),
+ $this->mountProviderCollection->getRootProviders(),
+ ));
$newProviders = array_diff($allProviders, $previouslySetupProviders);
$mounts = array_filter($mounts, function (IMountPoint $mount) use ($previouslySetupProviders) {
return !in_array($mount->getMountProvider(), $previouslySetupProviders);
diff --git a/lib/private/PreviewManager.php b/lib/private/PreviewManager.php
index 1f618dab22d..fa62a7b0257 100644
--- a/lib/private/PreviewManager.php
+++ b/lib/private/PreviewManager.php
@@ -154,7 +154,7 @@ class PreviewManager implements IPreview {
$mimeType = null,
bool $cacheResult = true,
): ISimpleFile {
- $this->throwIfPreviewsDisabled();
+ $this->throwIfPreviewsDisabled($file);
$previewConcurrency = $this->getGenerator()->getNumConcurrentPreviews('preview_concurrency_all');
$sem = Generator::guardWithSemaphore(Generator::SEMAPHORE_ID_ALL, $previewConcurrency);
try {
@@ -178,7 +178,7 @@ class PreviewManager implements IPreview {
* @since 19.0.0
*/
public function generatePreviews(File $file, array $specifications, $mimeType = null) {
- $this->throwIfPreviewsDisabled();
+ $this->throwIfPreviewsDisabled($file);
return $this->getGenerator()->generatePreviews($file, $specifications, $mimeType);
}
@@ -455,8 +455,8 @@ class PreviewManager implements IPreview {
/**
* @throws NotFoundException if preview generation is disabled
*/
- private function throwIfPreviewsDisabled(): void {
- if (!$this->enablePreviews) {
+ private function throwIfPreviewsDisabled(File $file): void {
+ if (!$this->isAvailable($file)) {
throw new NotFoundException('Previews disabled');
}
}
diff --git a/lib/private/Security/Bruteforce/Throttler.php b/lib/private/Security/Bruteforce/Throttler.php
index 065f720ba72..574f6c80c3f 100644
--- a/lib/private/Security/Bruteforce/Throttler.php
+++ b/lib/private/Security/Bruteforce/Throttler.php
@@ -206,25 +206,27 @@ class Throttler implements IThrottler {
* {@inheritDoc}
*/
public function sleepDelayOrThrowOnMax(string $ip, string $action = ''): int {
- $attempts = $this->getAttempts($ip, $action, 0.5);
- if ($attempts > $this->config->getSystemValueInt('auth.bruteforce.max-attempts', self::MAX_ATTEMPTS)) {
- $this->logger->info('IP address blocked because it reached the maximum failed attempts in the last 30 minutes [action: {action}, attempts: {attempts}, ip: {ip}]', [
- 'action' => $action,
- 'ip' => $ip,
- 'attempts' => $attempts,
- ]);
- // If the ip made too many attempts within the last 30 mins we don't execute anymore
- throw new MaxDelayReached('Reached maximum delay');
- }
-
+ $maxAttempts = $this->config->getSystemValueInt('auth.bruteforce.max-attempts', self::MAX_ATTEMPTS);
$attempts = $this->getAttempts($ip, $action);
- if ($attempts > 10) {
+ if ($attempts > $maxAttempts) {
+ $attempts30mins = $this->getAttempts($ip, $action, 0.5);
+ if ($attempts30mins > $maxAttempts) {
+ $this->logger->info('IP address blocked because it reached the maximum failed attempts in the last 30 minutes [action: {action}, attempts: {attempts}, ip: {ip}]', [
+ 'action' => $action,
+ 'ip' => $ip,
+ 'attempts' => $attempts30mins,
+ ]);
+ // If the ip made too many attempts within the last 30 mins we don't execute anymore
+ throw new MaxDelayReached('Reached maximum delay');
+ }
+
$this->logger->info('IP address throttled because it reached the attempts limit in the last 12 hours [action: {action}, attempts: {attempts}, ip: {ip}]', [
'action' => $action,
'ip' => $ip,
'attempts' => $attempts,
]);
}
+
if ($attempts > 0) {
return $this->calculateDelay($attempts);
}
diff --git a/lib/public/AppFramework/Http/Attribute/RequestHeader.php b/lib/public/AppFramework/Http/Attribute/RequestHeader.php
new file mode 100644
index 00000000000..c9327eec4c0
--- /dev/null
+++ b/lib/public/AppFramework/Http/Attribute/RequestHeader.php
@@ -0,0 +1,50 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+namespace OCP\AppFramework\Http\Attribute;
+
+use Attribute;
+
+/**
+ * This attribute allows documenting request headers and is primarily intended for OpenAPI documentation.
+ * It should be added whenever you use a request header in a controller method, in order to properly describe the header and its functionality.
+ * There are no checks that ensure the header is set, so you will still need to do this yourself in the controller method.
+ *
+ * @since 32.0.0
+ */
+#[Attribute(Attribute::TARGET_METHOD | Attribute::IS_REPEATABLE)]
+class RequestHeader {
+ /**
+ * @param string $name The name of the request header
+ * @param string $description The description of the request header
+ */
+ public function __construct(
+ protected string $name,
+ protected string $description,
+ ) {
+ }
+
+ /**
+ * @return string The name of the request header.
+ *
+ * @since 32.0.0
+ */
+ public function getName(): string {
+ return $this->name;
+ }
+
+ /**
+ * @return string The description of the request header.
+ *
+ * @since 32.0.0
+ */
+ public function getDescription(): string {
+ return $this->description;
+ }
+}
diff --git a/lib/public/Files/Config/Event/UserMountAddedEvent.php b/lib/public/Files/Config/Event/UserMountAddedEvent.php
index 45cfadc7967..f2846f2ff2b 100644
--- a/lib/public/Files/Config/Event/UserMountAddedEvent.php
+++ b/lib/public/Files/Config/Event/UserMountAddedEvent.php
@@ -16,7 +16,7 @@ use OCP\Files\Mount\IMountPoint;
/**
* Event emitted when a user mount was added.
*
- * @since 31.0.0
+ * @since 32.0.0
*/
class UserMountAddedEvent extends Event {
public function __construct(
diff --git a/lib/public/Files/Config/Event/UserMountRemovedEvent.php b/lib/public/Files/Config/Event/UserMountRemovedEvent.php
index c6db238a9b5..bdf264c9c4b 100644
--- a/lib/public/Files/Config/Event/UserMountRemovedEvent.php
+++ b/lib/public/Files/Config/Event/UserMountRemovedEvent.php
@@ -16,7 +16,7 @@ use OCP\Files\Mount\IMountPoint;
/**
* Event emitted when a user mount was removed.
*
- * @since 31.0.0
+ * @since 32.0.0
*/
class UserMountRemovedEvent extends Event {
public function __construct(
diff --git a/lib/public/Files/Config/Event/UserMountUpdatedEvent.php b/lib/public/Files/Config/Event/UserMountUpdatedEvent.php
index 6c5fd0524e4..36d9cd55562 100644
--- a/lib/public/Files/Config/Event/UserMountUpdatedEvent.php
+++ b/lib/public/Files/Config/Event/UserMountUpdatedEvent.php
@@ -16,7 +16,7 @@ use OCP\Files\Mount\IMountPoint;
/**
* Event emitted when a user mount was moved.
*
- * @since 31.0.0
+ * @since 32.0.0
*/
class UserMountUpdatedEvent extends Event {
public function __construct(