aboutsummaryrefslogtreecommitdiffstats
path: root/apps/files
diff options
context:
space:
mode:
Diffstat (limited to 'apps/files')
-rw-r--r--apps/files/appinfo/info.xml2
-rw-r--r--apps/files/composer/composer/autoload_classmap.php2
-rw-r--r--apps/files/composer/composer/autoload_static.php2
-rw-r--r--apps/files/l10n/cs.js4
-rw-r--r--apps/files/l10n/cs.json4
-rw-r--r--apps/files/l10n/de.js10
-rw-r--r--apps/files/l10n/de.json10
-rw-r--r--apps/files/l10n/de_DE.js10
-rw-r--r--apps/files/l10n/de_DE.json10
-rw-r--r--apps/files/l10n/es.js5
-rw-r--r--apps/files/l10n/es.json5
-rw-r--r--apps/files/l10n/et_EE.js4
-rw-r--r--apps/files/l10n/et_EE.json4
-rw-r--r--apps/files/l10n/ga.js1
-rw-r--r--apps/files/l10n/ga.json1
-rw-r--r--apps/files/l10n/it.js3
-rw-r--r--apps/files/l10n/it.json3
-rw-r--r--apps/files/l10n/ja.js1
-rw-r--r--apps/files/l10n/ja.json1
-rw-r--r--apps/files/l10n/mk.js2
-rw-r--r--apps/files/l10n/mk.json2
-rw-r--r--apps/files/l10n/pl.js5
-rw-r--r--apps/files/l10n/pl.json5
-rw-r--r--apps/files/l10n/pt_BR.js5
-rw-r--r--apps/files/l10n/pt_BR.json5
-rw-r--r--apps/files/l10n/sl.js52
-rw-r--r--apps/files/l10n/sl.json52
-rw-r--r--apps/files/l10n/sr.js4
-rw-r--r--apps/files/l10n/sr.json4
-rw-r--r--apps/files/l10n/uk.js1
-rw-r--r--apps/files/l10n/uk.json1
-rw-r--r--apps/files/l10n/zh_CN.js4
-rw-r--r--apps/files/l10n/zh_CN.json4
-rw-r--r--apps/files/l10n/zh_TW.js5
-rw-r--r--apps/files/l10n/zh_TW.json5
-rw-r--r--apps/files/lib/Activity/Provider.php6
-rw-r--r--apps/files/lib/Command/SanitizeFilenames.php168
-rw-r--r--apps/files/lib/Command/Scan.php7
-rw-r--r--apps/files/lib/Command/WindowsCompatibleFilenames.php52
-rw-r--r--apps/files/lib/Settings/DeclarativeAdminSettings.php9
-rw-r--r--apps/files/src/components/FileEntryMixin.ts6
-rw-r--r--apps/files/tests/Activity/ProviderTest.php2
42 files changed, 461 insertions, 27 deletions
diff --git a/apps/files/appinfo/info.xml b/apps/files/appinfo/info.xml
index 95f6153e1d7..aedcd5b7ed5 100644
--- a/apps/files/appinfo/info.xml
+++ b/apps/files/appinfo/info.xml
@@ -46,12 +46,14 @@
<command>OCA\Files\Command\Delete</command>
<command>OCA\Files\Command\Copy</command>
<command>OCA\Files\Command\Move</command>
+ <command>OCA\Files\Command\SanitizeFilenames</command>
<command>OCA\Files\Command\Object\Delete</command>
<command>OCA\Files\Command\Object\Get</command>
<command>OCA\Files\Command\Object\Put</command>
<command>OCA\Files\Command\Object\Info</command>
<command>OCA\Files\Command\Object\ListObject</command>
<command>OCA\Files\Command\Object\Orphans</command>
+ <command>OCA\Files\Command\WindowsCompatibleFilenames</command>
</commands>
<settings>
diff --git a/apps/files/composer/composer/autoload_classmap.php b/apps/files/composer/composer/autoload_classmap.php
index a74df7ba3d2..070cb46de38 100644
--- a/apps/files/composer/composer/autoload_classmap.php
+++ b/apps/files/composer/composer/autoload_classmap.php
@@ -42,9 +42,11 @@ return array(
'OCA\\Files\\Command\\Object\\Put' => $baseDir . '/../lib/Command/Object/Put.php',
'OCA\\Files\\Command\\Put' => $baseDir . '/../lib/Command/Put.php',
'OCA\\Files\\Command\\RepairTree' => $baseDir . '/../lib/Command/RepairTree.php',
+ 'OCA\\Files\\Command\\SanitizeFilenames' => $baseDir . '/../lib/Command/SanitizeFilenames.php',
'OCA\\Files\\Command\\Scan' => $baseDir . '/../lib/Command/Scan.php',
'OCA\\Files\\Command\\ScanAppData' => $baseDir . '/../lib/Command/ScanAppData.php',
'OCA\\Files\\Command\\TransferOwnership' => $baseDir . '/../lib/Command/TransferOwnership.php',
+ 'OCA\\Files\\Command\\WindowsCompatibleFilenames' => $baseDir . '/../lib/Command/WindowsCompatibleFilenames.php',
'OCA\\Files\\Controller\\ApiController' => $baseDir . '/../lib/Controller/ApiController.php',
'OCA\\Files\\Controller\\ConversionApiController' => $baseDir . '/../lib/Controller/ConversionApiController.php',
'OCA\\Files\\Controller\\DirectEditingController' => $baseDir . '/../lib/Controller/DirectEditingController.php',
diff --git a/apps/files/composer/composer/autoload_static.php b/apps/files/composer/composer/autoload_static.php
index 1d79f38e35a..ce79d370e7c 100644
--- a/apps/files/composer/composer/autoload_static.php
+++ b/apps/files/composer/composer/autoload_static.php
@@ -57,9 +57,11 @@ class ComposerStaticInitFiles
'OCA\\Files\\Command\\Object\\Put' => __DIR__ . '/..' . '/../lib/Command/Object/Put.php',
'OCA\\Files\\Command\\Put' => __DIR__ . '/..' . '/../lib/Command/Put.php',
'OCA\\Files\\Command\\RepairTree' => __DIR__ . '/..' . '/../lib/Command/RepairTree.php',
+ 'OCA\\Files\\Command\\SanitizeFilenames' => __DIR__ . '/..' . '/../lib/Command/SanitizeFilenames.php',
'OCA\\Files\\Command\\Scan' => __DIR__ . '/..' . '/../lib/Command/Scan.php',
'OCA\\Files\\Command\\ScanAppData' => __DIR__ . '/..' . '/../lib/Command/ScanAppData.php',
'OCA\\Files\\Command\\TransferOwnership' => __DIR__ . '/..' . '/../lib/Command/TransferOwnership.php',
+ 'OCA\\Files\\Command\\WindowsCompatibleFilenames' => __DIR__ . '/..' . '/../lib/Command/WindowsCompatibleFilenames.php',
'OCA\\Files\\Controller\\ApiController' => __DIR__ . '/..' . '/../lib/Controller/ApiController.php',
'OCA\\Files\\Controller\\ConversionApiController' => __DIR__ . '/..' . '/../lib/Controller/ConversionApiController.php',
'OCA\\Files\\Controller\\DirectEditingController' => __DIR__ . '/..' . '/../lib/Controller/DirectEditingController.php',
diff --git a/apps/files/l10n/cs.js b/apps/files/l10n/cs.js
index b5c6029a5fa..0d9ab61cef5 100644
--- a/apps/files/l10n/cs.js
+++ b/apps/files/l10n/cs.js
@@ -43,6 +43,8 @@ OC.L10N.register(
"Files" : "Soubory",
"A file or folder has been <strong>changed</strong>" : "Soubor nebo složka byla <strong>změněna</strong>",
"A favorite file or folder has been <strong>changed</strong>" : "Oblíbený soubor nebo složka byla <strong>změněna</strong>",
+ "%1$s (renamed)" : "%1$s (přejmenované)",
+ "renamed file" : "přejmenovaný soubor",
"Failed to authorize" : "Nepodařilo se získat pověření",
"Invalid folder path" : "Neplatný popis umístění složky",
"Folder not found" : "Složka nenalezena",
@@ -71,6 +73,8 @@ OC.L10N.register(
"Transferred from %1$s on %2$s" : "Převedeno z %1$s na %2$s",
"Files compatibility" : "Kompatibilita souborů",
"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." : "Umožňuje omezit názvy souborů aby bylo zajištěno, že soubory bude možné synchronizovat se všemi klienty. Ve výchozím stavu jsou povoleny veškeré názvy souborů, splňující standard POSIX (např. Linux nebo 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 povolení názvů souborů, kompatibilních s Windows, stávající soubory už nebude možné změnit, ale je možné je přejmenovat na platné nové názvy jejich vlastníkem.",
+ "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "Po povolení tohoto natavení je také možné soubory stěhovat automaticky. Další informace viz dokumentace k příkazu occ.",
"Enforce Windows compatibility" : "Vynutit kompatibilitu s 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." : "Toto bude blokovat použití názvů souborů, které nejsou platné na strojích s Windows, jako je použití vyhrazených názvů nebo speciálních znaků. Ale nevynutí kompatibilitu v případě rozlišování malých/VELKÝCH písmen.",
"File Management" : "Správa souboru",
diff --git a/apps/files/l10n/cs.json b/apps/files/l10n/cs.json
index df32ef519de..029d7b5cd5c 100644
--- a/apps/files/l10n/cs.json
+++ b/apps/files/l10n/cs.json
@@ -41,6 +41,8 @@
"Files" : "Soubory",
"A file or folder has been <strong>changed</strong>" : "Soubor nebo složka byla <strong>změněna</strong>",
"A favorite file or folder has been <strong>changed</strong>" : "Oblíbený soubor nebo složka byla <strong>změněna</strong>",
+ "%1$s (renamed)" : "%1$s (přejmenované)",
+ "renamed file" : "přejmenovaný soubor",
"Failed to authorize" : "Nepodařilo se získat pověření",
"Invalid folder path" : "Neplatný popis umístění složky",
"Folder not found" : "Složka nenalezena",
@@ -69,6 +71,8 @@
"Transferred from %1$s on %2$s" : "Převedeno z %1$s na %2$s",
"Files compatibility" : "Kompatibilita souborů",
"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." : "Umožňuje omezit názvy souborů aby bylo zajištěno, že soubory bude možné synchronizovat se všemi klienty. Ve výchozím stavu jsou povoleny veškeré názvy souborů, splňující standard POSIX (např. Linux nebo 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 povolení názvů souborů, kompatibilních s Windows, stávající soubory už nebude možné změnit, ale je možné je přejmenovat na platné nové názvy jejich vlastníkem.",
+ "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "Po povolení tohoto natavení je také možné soubory stěhovat automaticky. Další informace viz dokumentace k příkazu occ.",
"Enforce Windows compatibility" : "Vynutit kompatibilitu s 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." : "Toto bude blokovat použití názvů souborů, které nejsou platné na strojích s Windows, jako je použití vyhrazených názvů nebo speciálních znaků. Ale nevynutí kompatibilitu v případě rozlišování malých/VELKÝCH písmen.",
"File Management" : "Správa souboru",
diff --git a/apps/files/l10n/de.js b/apps/files/l10n/de.js
index 78f6feeec1e..e1018075df1 100644
--- a/apps/files/l10n/de.js
+++ b/apps/files/l10n/de.js
@@ -43,6 +43,8 @@ OC.L10N.register(
"Files" : "Dateien",
"A file or folder has been <strong>changed</strong>" : "Eine Datei oder ein Ordner wurde <strong>geändert</strong>",
"A favorite file or folder has been <strong>changed</strong>" : "Eine favorisierte Datei oder ein Ordner wurde <strong>geändert</strong>",
+ "%1$s (renamed)" : "%1$s (umbenannt)",
+ "renamed file" : "Umbenannte Datei",
"Failed to authorize" : "Autorisierung fehlgeschlagen",
"Invalid folder path" : "Ungültiger Order-Pfad",
"Folder not found" : "Ordner nicht gefunden",
@@ -71,6 +73,8 @@ OC.L10N.register(
"Transferred from %1$s on %2$s" : "Übertragen von %1$s auf %2$s",
"Files compatibility" : "Dateikompatibilität",
"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." : "Ermöglicht die Einschränkung von Dateinamen, um sicherzustellen, dass Dateien mit allen Clients synchronisiert werden können. Standardmäßig sind alle unter POSIX (z. B. Linux oder macOS) gültigen Dateinamen zulässig.",
+ "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Nach Aktivierung der Windows-kompatiblen Dateinamen können vorhandene Dateien nicht mehr geändert, aber von ihrem Besitzer in gültige neue Namen umbenannt werden.",
+ "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "Nach dem Aktivieren dieser Einstellung ist es auch möglich, Dateien automatisch zu migrieren. Weitere Informationen finden sich in der Dokumentation zum Befehl „occ“.",
"Enforce Windows compatibility" : "Windows-Kompatibilität erzwingen",
"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." : "Dadurch werden Dateinamen blockiert, die auf Windows-Systemen unzulässig sind, z. B. reservierte Namen oder Sonderzeichen. Die Kompatibilität der Groß-/Kleinschreibung wird dadurch jedoch nicht erzwungen.",
"File Management" : "Dateiverwaltung",
@@ -107,7 +111,7 @@ OC.L10N.register(
"Name" : "Name",
"Size" : "Größe",
"\"{displayName}\" failed on some elements" : "\"{displayName}\" ist bei einigen Elementen fehlgeschlagen",
- "\"{displayName}\" batch action executed successfully" : "Stapelaktion \"{displayName}\" erfolgreich ausgeführt",
+ "\"{displayName}\" batch action executed successfully" : "Stapelaktion \"{displayName}\" ausgeführt",
"\"{displayName}\" action failed" : "Aktion \"{displayName}\" fehlgeschlagen",
"Actions" : "Aktionen",
"(selected)" : "(ausgewählt)",
@@ -165,7 +169,7 @@ OC.L10N.register(
"Error during upload: {message}" : "Fehler beim Hochladen: {message}",
"Error during upload, status code {status}" : "Fehler beim Hochladen, Statuscode {status}",
"Unknown error during upload" : "unbekannte Fehler während des Hochladens",
- "\"{displayName}\" action executed successfully" : "Aktion \"{displayName}\" erfolgreich ausgeführt",
+ "\"{displayName}\" action executed successfully" : "Aktion \"{displayName}\" ausgeführt",
"Loading current folder" : "Lade aktuellen Ordner",
"Retry" : "Wiederholen",
"No files in here" : "Keine Dateien vorhanden",
@@ -236,7 +240,7 @@ OC.L10N.register(
"All files failed to be converted" : "Alle Dateien konnten nicht konvertiert werden",
"One file could not be converted: {message}" : "Eine Datei konnte nicht konvertiert werden: {message}",
"_One file could not be converted_::_%n files could not be converted_" : ["Eine Datei konnte nicht konvertiert werden","%n Dateien konnten nicht konvertiert werden"],
- "_One file successfully converted_::_%n files successfully converted_" : ["Eine Datei erfolgreich konvertiert","%n Dateien erfolgreich konvertiert"],
+ "_One file successfully converted_::_%n files successfully converted_" : ["Eine Datei konvertiert","%n Dateien konvertiert"],
"Files successfully converted" : "Dateien konvertiert",
"Failed to convert files" : "Dateien konnten nicht konvertiert werden",
"Converting file …" : "Datei wird konvertiert …",
diff --git a/apps/files/l10n/de.json b/apps/files/l10n/de.json
index 8715721ef1c..673f5c63b51 100644
--- a/apps/files/l10n/de.json
+++ b/apps/files/l10n/de.json
@@ -41,6 +41,8 @@
"Files" : "Dateien",
"A file or folder has been <strong>changed</strong>" : "Eine Datei oder ein Ordner wurde <strong>geändert</strong>",
"A favorite file or folder has been <strong>changed</strong>" : "Eine favorisierte Datei oder ein Ordner wurde <strong>geändert</strong>",
+ "%1$s (renamed)" : "%1$s (umbenannt)",
+ "renamed file" : "Umbenannte Datei",
"Failed to authorize" : "Autorisierung fehlgeschlagen",
"Invalid folder path" : "Ungültiger Order-Pfad",
"Folder not found" : "Ordner nicht gefunden",
@@ -69,6 +71,8 @@
"Transferred from %1$s on %2$s" : "Übertragen von %1$s auf %2$s",
"Files compatibility" : "Dateikompatibilität",
"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." : "Ermöglicht die Einschränkung von Dateinamen, um sicherzustellen, dass Dateien mit allen Clients synchronisiert werden können. Standardmäßig sind alle unter POSIX (z. B. Linux oder macOS) gültigen Dateinamen zulässig.",
+ "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Nach Aktivierung der Windows-kompatiblen Dateinamen können vorhandene Dateien nicht mehr geändert, aber von ihrem Besitzer in gültige neue Namen umbenannt werden.",
+ "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "Nach dem Aktivieren dieser Einstellung ist es auch möglich, Dateien automatisch zu migrieren. Weitere Informationen finden sich in der Dokumentation zum Befehl „occ“.",
"Enforce Windows compatibility" : "Windows-Kompatibilität erzwingen",
"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." : "Dadurch werden Dateinamen blockiert, die auf Windows-Systemen unzulässig sind, z. B. reservierte Namen oder Sonderzeichen. Die Kompatibilität der Groß-/Kleinschreibung wird dadurch jedoch nicht erzwungen.",
"File Management" : "Dateiverwaltung",
@@ -105,7 +109,7 @@
"Name" : "Name",
"Size" : "Größe",
"\"{displayName}\" failed on some elements" : "\"{displayName}\" ist bei einigen Elementen fehlgeschlagen",
- "\"{displayName}\" batch action executed successfully" : "Stapelaktion \"{displayName}\" erfolgreich ausgeführt",
+ "\"{displayName}\" batch action executed successfully" : "Stapelaktion \"{displayName}\" ausgeführt",
"\"{displayName}\" action failed" : "Aktion \"{displayName}\" fehlgeschlagen",
"Actions" : "Aktionen",
"(selected)" : "(ausgewählt)",
@@ -163,7 +167,7 @@
"Error during upload: {message}" : "Fehler beim Hochladen: {message}",
"Error during upload, status code {status}" : "Fehler beim Hochladen, Statuscode {status}",
"Unknown error during upload" : "unbekannte Fehler während des Hochladens",
- "\"{displayName}\" action executed successfully" : "Aktion \"{displayName}\" erfolgreich ausgeführt",
+ "\"{displayName}\" action executed successfully" : "Aktion \"{displayName}\" ausgeführt",
"Loading current folder" : "Lade aktuellen Ordner",
"Retry" : "Wiederholen",
"No files in here" : "Keine Dateien vorhanden",
@@ -234,7 +238,7 @@
"All files failed to be converted" : "Alle Dateien konnten nicht konvertiert werden",
"One file could not be converted: {message}" : "Eine Datei konnte nicht konvertiert werden: {message}",
"_One file could not be converted_::_%n files could not be converted_" : ["Eine Datei konnte nicht konvertiert werden","%n Dateien konnten nicht konvertiert werden"],
- "_One file successfully converted_::_%n files successfully converted_" : ["Eine Datei erfolgreich konvertiert","%n Dateien erfolgreich konvertiert"],
+ "_One file successfully converted_::_%n files successfully converted_" : ["Eine Datei konvertiert","%n Dateien konvertiert"],
"Files successfully converted" : "Dateien konvertiert",
"Failed to convert files" : "Dateien konnten nicht konvertiert werden",
"Converting file …" : "Datei wird konvertiert …",
diff --git a/apps/files/l10n/de_DE.js b/apps/files/l10n/de_DE.js
index d5e44fa78cc..fd1834ba5c2 100644
--- a/apps/files/l10n/de_DE.js
+++ b/apps/files/l10n/de_DE.js
@@ -43,6 +43,8 @@ OC.L10N.register(
"Files" : "Dateien",
"A file or folder has been <strong>changed</strong>" : "Eine Datei oder ein Ordner wurde <strong>geändert</strong>",
"A favorite file or folder has been <strong>changed</strong>" : "Eine favorisierte Datei oder ein Ordner wurde <strong>geändert</strong>",
+ "%1$s (renamed)" : "%1$s (umbenannt)",
+ "renamed file" : "Umbenannte Datei",
"Failed to authorize" : "Autorisierung fehlgeschlagen",
"Invalid folder path" : "Ungültiger Order-Pfad",
"Folder not found" : "Ordner nicht gefunden",
@@ -71,6 +73,8 @@ OC.L10N.register(
"Transferred from %1$s on %2$s" : "Übertragen von %1$s an %2$s",
"Files compatibility" : "Dateikompatibilität",
"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." : "Ermöglicht die Einschränkung von Dateinamen, um sicherzustellen, dass Dateien mit allen Clients synchronisiert werden können. Standardmäßig sind alle unter POSIX (z. B. Linux oder macOS) gültigen Dateinamen zulässig.",
+ "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Nach Aktivierung der Windows-kompatiblen Dateinamen können vorhandene Dateien nicht mehr geändert, aber von ihrem Besitzer in gültige neue Namen umbenannt werden.",
+ "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "Nach dem Aktivieren dieser Einstellung ist es auch möglich, Dateien automatisch zu migrieren. Weitere Informationen finden sich in der Dokumentation zum Befehl \"occ“.",
"Enforce Windows compatibility" : "Windows-Kompatibilität erzwingen",
"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." : "Dadurch werden Dateinamen blockiert, die auf Windows-Systemen unzulässig sind, z. B. reservierte Namen oder Sonderzeichen. Die Kompatibilität der Groß-/Kleinschreibung wird dadurch jedoch nicht erzwungen.",
"File Management" : "Dateiverwaltung",
@@ -107,7 +111,7 @@ OC.L10N.register(
"Name" : "Name",
"Size" : "Größe",
"\"{displayName}\" failed on some elements" : "\"{displayName}\" ist bei einigen Elementen fehlgeschlagen",
- "\"{displayName}\" batch action executed successfully" : "Stapelaktion \"{displayName}\" erfolgreich ausgeführt",
+ "\"{displayName}\" batch action executed successfully" : "Stapelaktion \"{displayName}\" ausgeführt",
"\"{displayName}\" action failed" : "Aktion \"{displayName}\" fehlgeschlagen",
"Actions" : "Aktionen",
"(selected)" : "(ausgewählt)",
@@ -165,7 +169,7 @@ OC.L10N.register(
"Error during upload: {message}" : "Fehler beim Hochladen: {message}",
"Error during upload, status code {status}" : "Fehler beim Hochladen, Statuscode {status}",
"Unknown error during upload" : "Unbekannter Fehler beim Hochladen",
- "\"{displayName}\" action executed successfully" : "Aktion \"{displayName}\" erfolgreich ausgeführt",
+ "\"{displayName}\" action executed successfully" : "Aktion \"{displayName}\" ausgeführt",
"Loading current folder" : "Lade aktuellen Ordner",
"Retry" : "Wiederholen",
"No files in here" : "Keine Dateien vorhanden",
@@ -236,7 +240,7 @@ OC.L10N.register(
"All files failed to be converted" : "Alle Dateien konnten nicht konvertiert werden",
"One file could not be converted: {message}" : "Eine Datei konnte nicht konvertiert werden: {message}",
"_One file could not be converted_::_%n files could not be converted_" : ["Eine Datei konnte nicht konvertiert werden","%n Dateien konnten nicht konvertiert werden"],
- "_One file successfully converted_::_%n files successfully converted_" : ["Eine Datei erfolgreich konvertiert","%n Dateien konvertiert"],
+ "_One file successfully converted_::_%n files successfully converted_" : ["Eine Datei konvertiert","%n Dateien konvertiert"],
"Files successfully converted" : "Dateien konvertiert",
"Failed to convert files" : "Dateien konnten nicht konvertiert werden",
"Converting file …" : "Datei wird konvertiert …",
diff --git a/apps/files/l10n/de_DE.json b/apps/files/l10n/de_DE.json
index 823c70fcb47..2c3e20326d6 100644
--- a/apps/files/l10n/de_DE.json
+++ b/apps/files/l10n/de_DE.json
@@ -41,6 +41,8 @@
"Files" : "Dateien",
"A file or folder has been <strong>changed</strong>" : "Eine Datei oder ein Ordner wurde <strong>geändert</strong>",
"A favorite file or folder has been <strong>changed</strong>" : "Eine favorisierte Datei oder ein Ordner wurde <strong>geändert</strong>",
+ "%1$s (renamed)" : "%1$s (umbenannt)",
+ "renamed file" : "Umbenannte Datei",
"Failed to authorize" : "Autorisierung fehlgeschlagen",
"Invalid folder path" : "Ungültiger Order-Pfad",
"Folder not found" : "Ordner nicht gefunden",
@@ -69,6 +71,8 @@
"Transferred from %1$s on %2$s" : "Übertragen von %1$s an %2$s",
"Files compatibility" : "Dateikompatibilität",
"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." : "Ermöglicht die Einschränkung von Dateinamen, um sicherzustellen, dass Dateien mit allen Clients synchronisiert werden können. Standardmäßig sind alle unter POSIX (z. B. Linux oder macOS) gültigen Dateinamen zulässig.",
+ "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Nach Aktivierung der Windows-kompatiblen Dateinamen können vorhandene Dateien nicht mehr geändert, aber von ihrem Besitzer in gültige neue Namen umbenannt werden.",
+ "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "Nach dem Aktivieren dieser Einstellung ist es auch möglich, Dateien automatisch zu migrieren. Weitere Informationen finden sich in der Dokumentation zum Befehl \"occ“.",
"Enforce Windows compatibility" : "Windows-Kompatibilität erzwingen",
"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." : "Dadurch werden Dateinamen blockiert, die auf Windows-Systemen unzulässig sind, z. B. reservierte Namen oder Sonderzeichen. Die Kompatibilität der Groß-/Kleinschreibung wird dadurch jedoch nicht erzwungen.",
"File Management" : "Dateiverwaltung",
@@ -105,7 +109,7 @@
"Name" : "Name",
"Size" : "Größe",
"\"{displayName}\" failed on some elements" : "\"{displayName}\" ist bei einigen Elementen fehlgeschlagen",
- "\"{displayName}\" batch action executed successfully" : "Stapelaktion \"{displayName}\" erfolgreich ausgeführt",
+ "\"{displayName}\" batch action executed successfully" : "Stapelaktion \"{displayName}\" ausgeführt",
"\"{displayName}\" action failed" : "Aktion \"{displayName}\" fehlgeschlagen",
"Actions" : "Aktionen",
"(selected)" : "(ausgewählt)",
@@ -163,7 +167,7 @@
"Error during upload: {message}" : "Fehler beim Hochladen: {message}",
"Error during upload, status code {status}" : "Fehler beim Hochladen, Statuscode {status}",
"Unknown error during upload" : "Unbekannter Fehler beim Hochladen",
- "\"{displayName}\" action executed successfully" : "Aktion \"{displayName}\" erfolgreich ausgeführt",
+ "\"{displayName}\" action executed successfully" : "Aktion \"{displayName}\" ausgeführt",
"Loading current folder" : "Lade aktuellen Ordner",
"Retry" : "Wiederholen",
"No files in here" : "Keine Dateien vorhanden",
@@ -234,7 +238,7 @@
"All files failed to be converted" : "Alle Dateien konnten nicht konvertiert werden",
"One file could not be converted: {message}" : "Eine Datei konnte nicht konvertiert werden: {message}",
"_One file could not be converted_::_%n files could not be converted_" : ["Eine Datei konnte nicht konvertiert werden","%n Dateien konnten nicht konvertiert werden"],
- "_One file successfully converted_::_%n files successfully converted_" : ["Eine Datei erfolgreich konvertiert","%n Dateien konvertiert"],
+ "_One file successfully converted_::_%n files successfully converted_" : ["Eine Datei konvertiert","%n Dateien konvertiert"],
"Files successfully converted" : "Dateien konvertiert",
"Failed to convert files" : "Dateien konnten nicht konvertiert werden",
"Converting file …" : "Datei wird konvertiert …",
diff --git a/apps/files/l10n/es.js b/apps/files/l10n/es.js
index 452372aa9b2..54e89b8c5e6 100644
--- a/apps/files/l10n/es.js
+++ b/apps/files/l10n/es.js
@@ -43,6 +43,8 @@ OC.L10N.register(
"Files" : "Archivos",
"A file or folder has been <strong>changed</strong>" : "Se ha <strong>modificado</strong> un archivo o carpeta",
"A favorite file or folder has been <strong>changed</strong>" : "Un archivo o carpeta favorito ha sido <strong>cambiado</strong>",
+ "%1$s (renamed)" : "%1$s (renombrado)",
+ "renamed file" : "archivo renombrado",
"Failed to authorize" : "Fallo al autorizar",
"Invalid folder path" : "Ruta de carpeta inválida",
"Folder not found" : "Carpeta no encontrada",
@@ -71,6 +73,8 @@ OC.L10N.register(
"Transferred from %1$s on %2$s" : "Se transfirió desde %1$s en %2$s",
"Files compatibility" : "Compatibilidad de archivos",
"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." : "Permitir la restricción en nombres de archivo para asegurar que los archivos se puedan sincronizar con todos los clientes. Por defecto, se permiten todos los nombres de archivos válidos en POSIX (por ejemplo, Linux o macOS).",
+ "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Luego de habilitar los nombres de archivo compatibles con windows, los archivos existentes no podrán ser modificados, pero, podrán ser renombrados a nuevos nombres válidos por su respectivo propietario.",
+ "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "También es posible migrar los archivos automáticamente luego de habilitar este ajuste. Por favor, refiérase a la documentación sobre el comando occ.",
"Enforce Windows compatibility" : "Forzar la compatibilidad con 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." : "Esto bloqueará los nombres de archivos inválidos en sistemas Windows, tales como usar nombres reservados o caracteres especiales. Pero no forzará la compatibilidad del uso de mayúsculas y minúsculas.",
"File Management" : "Gestión de archivos",
@@ -328,6 +332,7 @@ OC.L10N.register(
"Unexpected error: {error}" : "Error inesperado: {error}",
"_%n file_::_%n files_" : ["%n archivo","%n archivos","%n archivos"],
"_%n folder_::_%n folders_" : ["%n carpeta","%n carpetas","%n carpetas"],
+ "_%n hidden_::_%n hidden_" : ["%n oculto","%n ocultos","%n ocultos"],
"Filename must not be empty." : "El nombre de archivo no debe estar vacío.",
"\"{char}\" is not allowed inside a filename." : "\"{char}\" no está permitido en el nombre de archivo.",
"\"{segment}\" is a reserved name and not allowed for filenames." : "\"{segment}\" es un nombre reservado y no se permite para los nombres de archivo.",
diff --git a/apps/files/l10n/es.json b/apps/files/l10n/es.json
index e59a967242e..79fb844a32c 100644
--- a/apps/files/l10n/es.json
+++ b/apps/files/l10n/es.json
@@ -41,6 +41,8 @@
"Files" : "Archivos",
"A file or folder has been <strong>changed</strong>" : "Se ha <strong>modificado</strong> un archivo o carpeta",
"A favorite file or folder has been <strong>changed</strong>" : "Un archivo o carpeta favorito ha sido <strong>cambiado</strong>",
+ "%1$s (renamed)" : "%1$s (renombrado)",
+ "renamed file" : "archivo renombrado",
"Failed to authorize" : "Fallo al autorizar",
"Invalid folder path" : "Ruta de carpeta inválida",
"Folder not found" : "Carpeta no encontrada",
@@ -69,6 +71,8 @@
"Transferred from %1$s on %2$s" : "Se transfirió desde %1$s en %2$s",
"Files compatibility" : "Compatibilidad de archivos",
"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." : "Permitir la restricción en nombres de archivo para asegurar que los archivos se puedan sincronizar con todos los clientes. Por defecto, se permiten todos los nombres de archivos válidos en POSIX (por ejemplo, Linux o macOS).",
+ "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Luego de habilitar los nombres de archivo compatibles con windows, los archivos existentes no podrán ser modificados, pero, podrán ser renombrados a nuevos nombres válidos por su respectivo propietario.",
+ "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "También es posible migrar los archivos automáticamente luego de habilitar este ajuste. Por favor, refiérase a la documentación sobre el comando occ.",
"Enforce Windows compatibility" : "Forzar la compatibilidad con 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." : "Esto bloqueará los nombres de archivos inválidos en sistemas Windows, tales como usar nombres reservados o caracteres especiales. Pero no forzará la compatibilidad del uso de mayúsculas y minúsculas.",
"File Management" : "Gestión de archivos",
@@ -326,6 +330,7 @@
"Unexpected error: {error}" : "Error inesperado: {error}",
"_%n file_::_%n files_" : ["%n archivo","%n archivos","%n archivos"],
"_%n folder_::_%n folders_" : ["%n carpeta","%n carpetas","%n carpetas"],
+ "_%n hidden_::_%n hidden_" : ["%n oculto","%n ocultos","%n ocultos"],
"Filename must not be empty." : "El nombre de archivo no debe estar vacío.",
"\"{char}\" is not allowed inside a filename." : "\"{char}\" no está permitido en el nombre de archivo.",
"\"{segment}\" is a reserved name and not allowed for filenames." : "\"{segment}\" es un nombre reservado y no se permite para los nombres de archivo.",
diff --git a/apps/files/l10n/et_EE.js b/apps/files/l10n/et_EE.js
index bfd02fbac25..246a7f7b064 100644
--- a/apps/files/l10n/et_EE.js
+++ b/apps/files/l10n/et_EE.js
@@ -43,6 +43,8 @@ OC.L10N.register(
"Files" : "Failid",
"A file or folder has been <strong>changed</strong>" : "Fail või kaust on <strong>muudetud</strong>",
"A favorite file or folder has been <strong>changed</strong>" : "Lemmikuks märgitud faili või kausta on <strong>muudetud</strong>",
+ "%1$s (renamed)" : "%1$s (nimi on muudetud)",
+ "renamed file" : "muudetud nimega fail",
"Failed to authorize" : "Autoriseerimine ei õnnestunud",
"Invalid folder path" : "Kausta vigane asukoht",
"Folder not found" : "Kausta ei leidu",
@@ -71,6 +73,8 @@ OC.L10N.register(
"Transferred from %1$s on %2$s" : "Üleantud kasutajalt %1$s %2$s",
"Files compatibility" : "Failide ühilduvus",
"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." : "Luba failinimede piiramine tagamaks, et sünkroniseerimine toimib kõikide platvormide klientide vahel. Vaikimisi on lubatud kõik POSIX-i standardile vastavad failinimed (seda järgivad Linux ja macOS).",
+ "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Kui võtad kasutusele Windowsiga ühilduvad failinimed, siis olemasolevad mitteühilduvaid faile ei saa enam muuta, aga faili omanik saab failinime muuta ühilduvaks.",
+ "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "Lisaks on peale selle seadistuse kasutuselevõtmist võimalik kõik mitteühilduvad failid automaatselt ära muuta. Asjakohast teavet leiad kasutusjuhendist occ-käsku kirjeldavast peatükist.",
"Enforce Windows compatibility" : "Kasuta ühilduvust Windowsiga",
"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." : "Sellega blokeerid niisuguste failinimede kasutamise, mis Windowsis ei toimiks. See tähendab mõnede nimede ja tähemärkide keelamist. Aga see seadistus ei jõusta suur- ja väiketähtede kasutust.",
"File Management" : "Failihaldus",
diff --git a/apps/files/l10n/et_EE.json b/apps/files/l10n/et_EE.json
index 719433481f8..00ffe074653 100644
--- a/apps/files/l10n/et_EE.json
+++ b/apps/files/l10n/et_EE.json
@@ -41,6 +41,8 @@
"Files" : "Failid",
"A file or folder has been <strong>changed</strong>" : "Fail või kaust on <strong>muudetud</strong>",
"A favorite file or folder has been <strong>changed</strong>" : "Lemmikuks märgitud faili või kausta on <strong>muudetud</strong>",
+ "%1$s (renamed)" : "%1$s (nimi on muudetud)",
+ "renamed file" : "muudetud nimega fail",
"Failed to authorize" : "Autoriseerimine ei õnnestunud",
"Invalid folder path" : "Kausta vigane asukoht",
"Folder not found" : "Kausta ei leidu",
@@ -69,6 +71,8 @@
"Transferred from %1$s on %2$s" : "Üleantud kasutajalt %1$s %2$s",
"Files compatibility" : "Failide ühilduvus",
"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." : "Luba failinimede piiramine tagamaks, et sünkroniseerimine toimib kõikide platvormide klientide vahel. Vaikimisi on lubatud kõik POSIX-i standardile vastavad failinimed (seda järgivad Linux ja macOS).",
+ "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Kui võtad kasutusele Windowsiga ühilduvad failinimed, siis olemasolevad mitteühilduvaid faile ei saa enam muuta, aga faili omanik saab failinime muuta ühilduvaks.",
+ "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "Lisaks on peale selle seadistuse kasutuselevõtmist võimalik kõik mitteühilduvad failid automaatselt ära muuta. Asjakohast teavet leiad kasutusjuhendist occ-käsku kirjeldavast peatükist.",
"Enforce Windows compatibility" : "Kasuta ühilduvust Windowsiga",
"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." : "Sellega blokeerid niisuguste failinimede kasutamise, mis Windowsis ei toimiks. See tähendab mõnede nimede ja tähemärkide keelamist. Aga see seadistus ei jõusta suur- ja väiketähtede kasutust.",
"File Management" : "Failihaldus",
diff --git a/apps/files/l10n/ga.js b/apps/files/l10n/ga.js
index 71be454c40a..abcbbb78d80 100644
--- a/apps/files/l10n/ga.js
+++ b/apps/files/l10n/ga.js
@@ -328,6 +328,7 @@ OC.L10N.register(
"Unexpected error: {error}" : "Earráid gan choinne: {error}",
"_%n file_::_%n files_" : ["%n comhad","%n comhaid","%n comhaid","%n comhaid","%n comhaid"],
"_%n folder_::_%n folders_" : ["%n fillteán","%n fillteáin","%n fillteáin","%n fillteáin","%n fillteáin"],
+ "_%n hidden_::_%n hidden_" : ["%n i bhfolach","%n i bhfolach","%n i bhfolach","%n i bhfolach","%n i bhfolach"],
"Filename must not be empty." : "Ní ceadmhach ainm an chomhaid a bheith folamh.",
"\"{char}\" is not allowed inside a filename." : "Ní cheadaítear \"{char}\" taobh istigh d'ainm comhaid.",
"\"{segment}\" is a reserved name and not allowed for filenames." : "Is ainm forchoimeádta é \"{segment}\" agus ní cheadaítear é d'ainmneacha comhaid.",
diff --git a/apps/files/l10n/ga.json b/apps/files/l10n/ga.json
index e405c2465ad..9122bb3f7b4 100644
--- a/apps/files/l10n/ga.json
+++ b/apps/files/l10n/ga.json
@@ -326,6 +326,7 @@
"Unexpected error: {error}" : "Earráid gan choinne: {error}",
"_%n file_::_%n files_" : ["%n comhad","%n comhaid","%n comhaid","%n comhaid","%n comhaid"],
"_%n folder_::_%n folders_" : ["%n fillteán","%n fillteáin","%n fillteáin","%n fillteáin","%n fillteáin"],
+ "_%n hidden_::_%n hidden_" : ["%n i bhfolach","%n i bhfolach","%n i bhfolach","%n i bhfolach","%n i bhfolach"],
"Filename must not be empty." : "Ní ceadmhach ainm an chomhaid a bheith folamh.",
"\"{char}\" is not allowed inside a filename." : "Ní cheadaítear \"{char}\" taobh istigh d'ainm comhaid.",
"\"{segment}\" is a reserved name and not allowed for filenames." : "Is ainm forchoimeádta é \"{segment}\" agus ní cheadaítear é d'ainmneacha comhaid.",
diff --git a/apps/files/l10n/it.js b/apps/files/l10n/it.js
index 2efb27b7e8d..b1ae315c76b 100644
--- a/apps/files/l10n/it.js
+++ b/apps/files/l10n/it.js
@@ -235,6 +235,8 @@ OC.L10N.register(
"Failed to convert files: {message}" : "Impossibile convertire i file: {message}",
"All files failed to be converted" : "Non è stato possibile convertire tutti i file",
"One file could not be converted: {message}" : "Un file non può essere convertito: {message}",
+ "_One file could not be converted_::_%n files could not be converted_" : ["Un file non è stato convertito","%nfile non possono essere convertiti","%n file non possono essere convertiti"],
+ "_One file successfully converted_::_%n files successfully converted_" : ["Un file convertito correttamente","%nfile convertiti con successo","%n file convertiti con successo"],
"Files successfully converted" : "File convertiti con successo",
"Failed to convert files" : "Impossibile convertire i file",
"Converting file …" : "Conversione del file …",
@@ -326,6 +328,7 @@ OC.L10N.register(
"Unexpected error: {error}" : "Errore imprevisto: {error}",
"_%n file_::_%n files_" : ["%n file","%n file","%n file"],
"_%n folder_::_%n folders_" : ["%n cartella","%n cartelle","%n cartelle"],
+ "_%n hidden_::_%n hidden_" : ["%n nascosto","%n nascosti","%n nascosti"],
"Filename must not be empty." : "Il nome del file non può essere vuoto.",
"\"{char}\" is not allowed inside a filename." : "\"{char}\" non è consentito in un nome di file.",
"\"{segment}\" is a reserved name and not allowed for filenames." : "\"{segment}\" è un nome riservato e non consentito per i nomi di file.",
diff --git a/apps/files/l10n/it.json b/apps/files/l10n/it.json
index 6469fd6f4dc..21b88337ced 100644
--- a/apps/files/l10n/it.json
+++ b/apps/files/l10n/it.json
@@ -233,6 +233,8 @@
"Failed to convert files: {message}" : "Impossibile convertire i file: {message}",
"All files failed to be converted" : "Non è stato possibile convertire tutti i file",
"One file could not be converted: {message}" : "Un file non può essere convertito: {message}",
+ "_One file could not be converted_::_%n files could not be converted_" : ["Un file non è stato convertito","%nfile non possono essere convertiti","%n file non possono essere convertiti"],
+ "_One file successfully converted_::_%n files successfully converted_" : ["Un file convertito correttamente","%nfile convertiti con successo","%n file convertiti con successo"],
"Files successfully converted" : "File convertiti con successo",
"Failed to convert files" : "Impossibile convertire i file",
"Converting file …" : "Conversione del file …",
@@ -324,6 +326,7 @@
"Unexpected error: {error}" : "Errore imprevisto: {error}",
"_%n file_::_%n files_" : ["%n file","%n file","%n file"],
"_%n folder_::_%n folders_" : ["%n cartella","%n cartelle","%n cartelle"],
+ "_%n hidden_::_%n hidden_" : ["%n nascosto","%n nascosti","%n nascosti"],
"Filename must not be empty." : "Il nome del file non può essere vuoto.",
"\"{char}\" is not allowed inside a filename." : "\"{char}\" non è consentito in un nome di file.",
"\"{segment}\" is a reserved name and not allowed for filenames." : "\"{segment}\" è un nome riservato e non consentito per i nomi di file.",
diff --git a/apps/files/l10n/ja.js b/apps/files/l10n/ja.js
index 29e3df2d6c9..5d4430cdfd2 100644
--- a/apps/files/l10n/ja.js
+++ b/apps/files/l10n/ja.js
@@ -328,6 +328,7 @@ OC.L10N.register(
"Unexpected error: {error}" : "予期せぬエラー: {error}",
"_%n file_::_%n files_" : ["%n 個のファイル"],
"_%n folder_::_%n folders_" : ["%n 個のフォルダー"],
+ "_%n hidden_::_%n hidden_" : ["%n 非公開"],
"Filename must not be empty." : "ファイル名は空白にできません。",
"\"{char}\" is not allowed inside a filename." : "\"{char}\"はファイル名には使用できません。",
"\"{segment}\" is a reserved name and not allowed for filenames." : "\"{segment}\"は予約名であり、ファイル名には使用できません。",
diff --git a/apps/files/l10n/ja.json b/apps/files/l10n/ja.json
index 2e7fd834b37..9d405b87359 100644
--- a/apps/files/l10n/ja.json
+++ b/apps/files/l10n/ja.json
@@ -326,6 +326,7 @@
"Unexpected error: {error}" : "予期せぬエラー: {error}",
"_%n file_::_%n files_" : ["%n 個のファイル"],
"_%n folder_::_%n folders_" : ["%n 個のフォルダー"],
+ "_%n hidden_::_%n hidden_" : ["%n 非公開"],
"Filename must not be empty." : "ファイル名は空白にできません。",
"\"{char}\" is not allowed inside a filename." : "\"{char}\"はファイル名には使用できません。",
"\"{segment}\" is a reserved name and not allowed for filenames." : "\"{segment}\"は予約名であり、ファイル名には使用できません。",
diff --git a/apps/files/l10n/mk.js b/apps/files/l10n/mk.js
index 73102302b23..b0d9db8ffd1 100644
--- a/apps/files/l10n/mk.js
+++ b/apps/files/l10n/mk.js
@@ -91,7 +91,7 @@ OC.L10N.register(
"Total rows summary" : "Резиме на вкупно редови",
"Name" : "Име",
"Size" : "Големина",
- "\"{displayName}\" batch action executed successfully" : "\"{displayName}\" сериската акцијата е успешно извршена",
+ "\"{displayName}\" batch action executed successfully" : "\"{displayName}\" сериската акција е успешно извршена",
"\"{displayName}\" action failed" : "\"{displayName}\" акцијата не успеа",
"Actions" : "Акции",
"(selected)" : "(означени)",
diff --git a/apps/files/l10n/mk.json b/apps/files/l10n/mk.json
index d3d8c86c448..9a7349b9d52 100644
--- a/apps/files/l10n/mk.json
+++ b/apps/files/l10n/mk.json
@@ -89,7 +89,7 @@
"Total rows summary" : "Резиме на вкупно редови",
"Name" : "Име",
"Size" : "Големина",
- "\"{displayName}\" batch action executed successfully" : "\"{displayName}\" сериската акцијата е успешно извршена",
+ "\"{displayName}\" batch action executed successfully" : "\"{displayName}\" сериската акција е успешно извршена",
"\"{displayName}\" action failed" : "\"{displayName}\" акцијата не успеа",
"Actions" : "Акции",
"(selected)" : "(означени)",
diff --git a/apps/files/l10n/pl.js b/apps/files/l10n/pl.js
index 906004d2172..a06c4433bdc 100644
--- a/apps/files/l10n/pl.js
+++ b/apps/files/l10n/pl.js
@@ -43,6 +43,8 @@ OC.L10N.register(
"Files" : "Pliki",
"A file or folder has been <strong>changed</strong>" : "Plik lub katalog został <strong>zmieniony</strong>",
"A favorite file or folder has been <strong>changed</strong>" : "Ulubiony plik lub katalog został <strong>zmieniony</strong>",
+ "%1$s (renamed)" : "%1$s (zmieniona nazwa)",
+ "renamed file" : "zmieniona nazwa pliku",
"Failed to authorize" : "Błąd autoryzacji",
"Invalid folder path" : "Nieprawidłowa ścieżka katalogu",
"Folder not found" : "Nie znaleziono katalogu",
@@ -71,6 +73,8 @@ 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ących plików 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.",
"File Management" : "Zarządzanie plikami",
@@ -328,6 +332,7 @@ OC.L10N.register(
"Unexpected error: {error}" : "Nieoczekiwany błąd: {error}",
"_%n file_::_%n files_" : ["%n plik","%n pliki","%n plików","%n plików"],
"_%n folder_::_%n folders_" : ["%n katalog","%n katalogi","%n katalogów","%n katalogów"],
+ "_%n hidden_::_%n hidden_" : ["%n ukryty","%n ukryte","%n ukrytych","%n ukrytych"],
"Filename must not be empty." : "Nazwa pliku nie może być pusta.",
"\"{char}\" is not allowed inside a filename." : "„{char}” nie jest dozwolone w nazwie pliku.",
"\"{segment}\" is a reserved name and not allowed for filenames." : "„{segment}” jest nazwą zastrzeżoną i nie jest dozwolona w przypadku nazw plików.",
diff --git a/apps/files/l10n/pl.json b/apps/files/l10n/pl.json
index b312784d273..2705ef5eea4 100644
--- a/apps/files/l10n/pl.json
+++ b/apps/files/l10n/pl.json
@@ -41,6 +41,8 @@
"Files" : "Pliki",
"A file or folder has been <strong>changed</strong>" : "Plik lub katalog został <strong>zmieniony</strong>",
"A favorite file or folder has been <strong>changed</strong>" : "Ulubiony plik lub katalog został <strong>zmieniony</strong>",
+ "%1$s (renamed)" : "%1$s (zmieniona nazwa)",
+ "renamed file" : "zmieniona nazwa pliku",
"Failed to authorize" : "Błąd autoryzacji",
"Invalid folder path" : "Nieprawidłowa ścieżka katalogu",
"Folder not found" : "Nie znaleziono katalogu",
@@ -69,6 +71,8 @@
"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ących plików 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.",
"File Management" : "Zarządzanie plikami",
@@ -326,6 +330,7 @@
"Unexpected error: {error}" : "Nieoczekiwany błąd: {error}",
"_%n file_::_%n files_" : ["%n plik","%n pliki","%n plików","%n plików"],
"_%n folder_::_%n folders_" : ["%n katalog","%n katalogi","%n katalogów","%n katalogów"],
+ "_%n hidden_::_%n hidden_" : ["%n ukryty","%n ukryte","%n ukrytych","%n ukrytych"],
"Filename must not be empty." : "Nazwa pliku nie może być pusta.",
"\"{char}\" is not allowed inside a filename." : "„{char}” nie jest dozwolone w nazwie pliku.",
"\"{segment}\" is a reserved name and not allowed for filenames." : "„{segment}” jest nazwą zastrzeżoną i nie jest dozwolona w przypadku nazw plików.",
diff --git a/apps/files/l10n/pt_BR.js b/apps/files/l10n/pt_BR.js
index 62a20efeddd..40c07434541 100644
--- a/apps/files/l10n/pt_BR.js
+++ b/apps/files/l10n/pt_BR.js
@@ -43,6 +43,8 @@ OC.L10N.register(
"Files" : "Arquivos",
"A file or folder has been <strong>changed</strong>" : "Um arquivo ou pasta foi <strong>modificado</strong>",
"A favorite file or folder has been <strong>changed</strong>" : "Um arquivo ou pasta favorita foi <strong>modificado</strong>",
+ "%1$s (renamed)" : "%1$s (renomeado)",
+ "renamed file" : "arquivo renomeado",
"Failed to authorize" : "Falha ao autorizar",
"Invalid folder path" : "Caminho de pasta inválido",
"Folder not found" : "Pasta não encontrada",
@@ -71,6 +73,8 @@ OC.L10N.register(
"Transferred from %1$s on %2$s" : "Transferido de %1$s para %2$s",
"Files compatibility" : "Compatibilidade de arquivos",
"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." : "Permitir restringir nomes de arquivos para garantir que os arquivos possam ser sincronizados com todos os clientes. Por padrão, todos os nomes de arquivos válidos em POSIX (p. ex., Linux ou macOS) são permitidos.",
+ "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Depois de ativar os nomes de arquivos compatíveis com o Windows, os arquivos existentes não podem mais ser modificados, mas podem ser renomeados para novos nomes válidos pelo proprietário.",
+ "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "Também é possível migrar arquivos automaticamente depois de ativar essa configuração. Consulte a documentação sobre o comando occ.",
"Enforce Windows compatibility" : "Forçar compatibilidade com 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." : "Isso bloqueará nomes de arquivos não válidos em sistemas Windows, como nomes reservados ou caracteres especiais. Mas isso não imporá a compatibilidade da distinção entre maiúsculas e minúsculas.",
"File Management" : "Gerenciamento de Arquivos",
@@ -328,6 +332,7 @@ OC.L10N.register(
"Unexpected error: {error}" : "Erro inesperado: {error}",
"_%n file_::_%n files_" : ["%n arquivo","%n arquivos","%n arquivos"],
"_%n folder_::_%n folders_" : ["%n pasta","%n pastas","%n pastas"],
+ "_%n hidden_::_%n hidden_" : ["%n oculto","%n ocultos","%n ocultos"],
"Filename must not be empty." : "O nome do arquivo não pode estar vazio.",
"\"{char}\" is not allowed inside a filename." : "\"{char}\" não é permitido dentro de um nome de arquivo.",
"\"{segment}\" is a reserved name and not allowed for filenames." : "\"{segment}\" é um nome reservado e não é permitido para nomes de arquivos.",
diff --git a/apps/files/l10n/pt_BR.json b/apps/files/l10n/pt_BR.json
index 1473d0d62a8..8bff756baeb 100644
--- a/apps/files/l10n/pt_BR.json
+++ b/apps/files/l10n/pt_BR.json
@@ -41,6 +41,8 @@
"Files" : "Arquivos",
"A file or folder has been <strong>changed</strong>" : "Um arquivo ou pasta foi <strong>modificado</strong>",
"A favorite file or folder has been <strong>changed</strong>" : "Um arquivo ou pasta favorita foi <strong>modificado</strong>",
+ "%1$s (renamed)" : "%1$s (renomeado)",
+ "renamed file" : "arquivo renomeado",
"Failed to authorize" : "Falha ao autorizar",
"Invalid folder path" : "Caminho de pasta inválido",
"Folder not found" : "Pasta não encontrada",
@@ -69,6 +71,8 @@
"Transferred from %1$s on %2$s" : "Transferido de %1$s para %2$s",
"Files compatibility" : "Compatibilidade de arquivos",
"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." : "Permitir restringir nomes de arquivos para garantir que os arquivos possam ser sincronizados com todos os clientes. Por padrão, todos os nomes de arquivos válidos em POSIX (p. ex., Linux ou macOS) são permitidos.",
+ "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Depois de ativar os nomes de arquivos compatíveis com o Windows, os arquivos existentes não podem mais ser modificados, mas podem ser renomeados para novos nomes válidos pelo proprietário.",
+ "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "Também é possível migrar arquivos automaticamente depois de ativar essa configuração. Consulte a documentação sobre o comando occ.",
"Enforce Windows compatibility" : "Forçar compatibilidade com 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." : "Isso bloqueará nomes de arquivos não válidos em sistemas Windows, como nomes reservados ou caracteres especiais. Mas isso não imporá a compatibilidade da distinção entre maiúsculas e minúsculas.",
"File Management" : "Gerenciamento de Arquivos",
@@ -326,6 +330,7 @@
"Unexpected error: {error}" : "Erro inesperado: {error}",
"_%n file_::_%n files_" : ["%n arquivo","%n arquivos","%n arquivos"],
"_%n folder_::_%n folders_" : ["%n pasta","%n pastas","%n pastas"],
+ "_%n hidden_::_%n hidden_" : ["%n oculto","%n ocultos","%n ocultos"],
"Filename must not be empty." : "O nome do arquivo não pode estar vazio.",
"\"{char}\" is not allowed inside a filename." : "\"{char}\" não é permitido dentro de um nome de arquivo.",
"\"{segment}\" is a reserved name and not allowed for filenames." : "\"{segment}\" é um nome reservado e não é permitido para nomes de arquivos.",
diff --git a/apps/files/l10n/sl.js b/apps/files/l10n/sl.js
index 92014718d8a..df903ce2c02 100644
--- a/apps/files/l10n/sl.js
+++ b/apps/files/l10n/sl.js
@@ -46,7 +46,13 @@ OC.L10N.register(
"Failed to authorize" : "Overitev je spodletela",
"Invalid folder path" : "Neveljavna pot mape",
"Folder not found" : "Mape ni mogoče najti",
- "No favorites" : "Ni priljubljenih predmetov",
+ "The file cannot be found" : "Datoteke ni mogoče najti.",
+ "The destination path does not exist: %1$s" : "Cilja pot ne obstaja: %1$s",
+ "The file could not be converted." : "Datoteke ni mogoče pretvoriti.",
+ "Could not get relative path to converted file" : "Ni mogoče pridobiti relativne poti do pretvorjene datoteke.",
+ "Favorite files" : "Priljubljene datoteke",
+ "No favorites" : "Ni priljubljenih datotek",
+ "More favorites" : "Več priljubljenih",
"Upload (max. %s)" : "Pošiljanje (omejitev %s)",
"Accept" : "Sprejmi",
"Reject" : "Zavrni",
@@ -70,11 +76,13 @@ OC.L10N.register(
"Current directory path" : "Trenutna pot mape",
"Drag and drop files here to upload" : "Za pošiljanje potegnite in spustite datoteke na to mesto",
"Favorite" : "Priljubljene",
+ "Back" : "Nazaj",
"File is loading" : "Poteka nalaganje datoteke",
"Folder is loading" : "mape",
"Filename" : "Ime datoteke",
"Folder name" : "Ime mape",
"This node is unavailable" : "To vozlišče ni na voljo.",
+ "Another entry with the same name already exists." : "Vpis z istim imenom že obstaja.",
"Invalid filename." : "Neveljavno ime datoteke",
"Renamed \"{oldName}\" to \"{newName}\"" : "Preimenuj »{oldName}« to »{newName}«",
"Rename file" : "Preimenuj datoteke",
@@ -107,6 +115,7 @@ OC.L10N.register(
"This name is already in use." : "Vpisano uporabniško ime je že v uporabi",
"Create" : "Ustvari",
"Fill template fields" : "Zapolni polja predloge",
+ "Submitting fields …" : "Pošiljanje polj ...",
"Submit" : "Pošlji",
"Choose a file or folder to transfer" : "Izbor datoteke ali mape za prenos",
"Transfer" : "Prenos",
@@ -119,6 +128,12 @@ OC.L10N.register(
"Choose file or folder to transfer" : "Izbor datoteke ali mape za prenos",
"Change" : "Spremeni",
"New owner" : "Nov lastnik",
+ "Keep {old}" : "Ohrani {old}",
+ "Keep without extension" : "Ohrani brez pripone",
+ "Use {new}" : "Uporabi {new}",
+ "Remove extension" : "Odstrani pripono",
+ "Change file extension" : "Spremeni pripono datoteke",
+ "Do not show this dialog again." : "Pogovornega okna ne pokaži več.",
"Select file or folder to link to" : "Izbor datoteke ali mape za povezavo",
"Choose {file}" : "Izberite datoteko {file}",
"Share" : "·Souporaba·",
@@ -156,11 +171,22 @@ OC.L10N.register(
"Use this address to access your Files via WebDAV" : "Uporabite ta naslov za dostop do datotek z uporabo WebDAV",
"If you have enabled 2FA, you must create and use a new app password by clicking here." : "Če je omogočen sistem dvostopenjskega overjanja 2FA, je treba ustvariti in uporabiti novo geslo programa s klikom na to mesto.",
"Keyboard shortcuts" : "Tipkovne bližnjice",
+ "Rename a file" : "Preimenuj datoteko",
+ "Delete a file" : "Izbriši datoteko",
+ "Favorite or remove a file from favorites" : "Označi ali odstrani koz priljubljeno",
+ "Manage tags for a file" : "Upravljanje oznak datoteke",
"Selection" : "Izbor",
+ "Select all files" : "Izberi vse datoteke",
+ "Deselect all files" : "Ostrani izbor vseh datotek",
+ "Select or deselect a file" : "Izberi ali odstrani izbor datoteke",
+ "Select a range of files" : "Izbor obsega datotek",
"Navigation" : "Krmarjenje",
"View" : "Pogled",
+ "Show those shortcuts" : "Pokaži tipkovne bližnjice",
"You" : "Jaz",
+ "Shared multiple times with different people" : "V več souporabah z različnimi uporabniki",
"Error while loading the file data" : "Prišlo je do napake med nalaganjem podatkov računa",
+ "Owner" : "Lastnik",
"Remove from favorites" : "Odstrani iz priljubljenih",
"Add to favorites" : "Dodaj med priljubljene",
"Tags" : "Oznake",
@@ -169,6 +195,20 @@ OC.L10N.register(
"Pick a template for {name}" : "Izbor predloge za {name}",
"Create a new file with the selected template" : "Ustvari novo datoteko z izbrano predlogo",
"Creating file" : "Poteka ustvarjanje datoteke",
+ "Save as {displayName}" : "Shrani kot {displayName}",
+ "Save as …" : "Shrani kot ...",
+ "Converting files …" : "Poteka pretvarjanje datotek ...",
+ "Failed to convert files: {message}" : "Pretvarjanje datotek je spodletelo: {message}",
+ "All files failed to be converted" : "Spodletelo je pretvarjanje vseh datotek.",
+ "One file could not be converted: {message}" : "Ene datoteke ni mogoče pretvoriti: {message}",
+ "_One file could not be converted_::_%n files could not be converted_" : ["%n datoteke ni mogoče pretvoriti","%n datotek ni mogoče pretvoriti","%n datotek ni mogoče pretvoriti","%n datotek ni mogoče pretvoriti"],
+ "_One file successfully converted_::_%n files successfully converted_" : ["%n datoteka je uspešno pretvorjena","%n datoteki sta uspešno pretvorjeni","%n datoteke so uspešno pretvorjene","%n datotek je uspešno pretvorjenih"],
+ "Files successfully converted" : "Datoteke so uspešno pretvorjene",
+ "Failed to convert files" : "Pretvarjanje datotek je spodletelo",
+ "Converting file …" : "Poteka pretvarjanje datoteke ...",
+ "File successfully converted" : "Datoteka je uspešno pretvorjena",
+ "Failed to convert file: {message}" : "Pretvarjanje datoteek je spodletelo: {message}",
+ "Failed to convert file" : "Pretvarjanje datoteke je spodletelo",
"Deletion cancelled" : "Brisanje je bilo preklicano",
"Leave this share" : "Prekini to souporabo",
"Leave these shares" : "Prekini to souporabo",
@@ -177,7 +217,7 @@ OC.L10N.register(
"Delete permanently" : "Izbriši trajno",
"Delete and unshare" : "Izbriši in prekini souporabo",
"Delete file" : "Izbriši datoteko",
- "Delete files" : "Izbriši datoteki",
+ "Delete files" : "Izbriši datoteke",
"Delete folder" : "Izbriši mapo",
"Delete folders" : "Izbriši mape",
"Delete" : "Izbriši",
@@ -201,6 +241,7 @@ OC.L10N.register(
"Open folder {displayName}" : "Odpri mapo {displayName}",
"Open in Files" : "Open in Files",
"Open file locally" : "Odpri datoteko krajevno",
+ "Open online" : "Odpri v brskalniku",
"Failed to redirect to client" : "Preusmerjanje odjemalca je spodletelo",
"Open locally" : "Odpri krajevno",
"Rename" : "Preimenuj",
@@ -240,14 +281,17 @@ OC.L10N.register(
"This operation is forbidden" : "To dejanje ni dovoljeno!",
"This directory is unavailable, please check the logs or contact the administrator" : "Mapa ni na voljo. Preverite dnevnik in stopite v stik s skrbnikom sistema.",
"Storage is temporarily not available" : "Shramba trenutno ni na voljo",
+ "Unexpected error: {error}" : "Nepričakovana napaka: {error}",
"_%n file_::_%n files_" : ["%n datoteka","%n datoteki","%n datoteke","%n datotek"],
"_%n folder_::_%n folders_" : ["%n mapa","%n mapi","%n mape","%n mape"],
+ "_%n hidden_::_%n hidden_" : ["%n skrita","%n skriti","%n skrite","%n skritih"],
"Filename must not be empty." : "Ime datoteke ne sme biti prazno.",
"No favorites yet" : "Ni še dodanih priljubljenih predmetov",
"Files and folders you mark as favorite will show up here" : "Datoteke ali mape, ki so označene kot priljubljene, bodo zbrane na tem mestu.",
"All files" : "Vse datoteke",
"List of your files and folders." : "Seznam datotek in map.",
"All folders" : "Vse mape",
+ "Personal files" : "Osebne datoteke",
"No personal files found" : "Ni najdenih zasebnih datotek",
"Recent" : "Nedavne",
"List of recently modified files and folders." : "Seznam nedavno spremenjenih datotek in map.",
@@ -355,6 +399,8 @@ OC.L10N.register(
"Text file" : "Besedilna datoteka",
"New text file.txt" : "nova_datoteka.txt",
"Submitting fields…" : "Poteka objavljanje vsebine polj ...",
- "Filter filenames…" : "Filtriraj imena datotek ..."
+ "Filter filenames…" : "Filtriraj imena datotek ...",
+ "{count} files could not be converted" : "{count} datotek ni mogoče pretvoriti",
+ "{count} files successfully converted" : "{count} datotek je uspešno pretvorjenih"
},
"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);");
diff --git a/apps/files/l10n/sl.json b/apps/files/l10n/sl.json
index 37340ed8b3b..e3cd9759f08 100644
--- a/apps/files/l10n/sl.json
+++ b/apps/files/l10n/sl.json
@@ -44,7 +44,13 @@
"Failed to authorize" : "Overitev je spodletela",
"Invalid folder path" : "Neveljavna pot mape",
"Folder not found" : "Mape ni mogoče najti",
- "No favorites" : "Ni priljubljenih predmetov",
+ "The file cannot be found" : "Datoteke ni mogoče najti.",
+ "The destination path does not exist: %1$s" : "Cilja pot ne obstaja: %1$s",
+ "The file could not be converted." : "Datoteke ni mogoče pretvoriti.",
+ "Could not get relative path to converted file" : "Ni mogoče pridobiti relativne poti do pretvorjene datoteke.",
+ "Favorite files" : "Priljubljene datoteke",
+ "No favorites" : "Ni priljubljenih datotek",
+ "More favorites" : "Več priljubljenih",
"Upload (max. %s)" : "Pošiljanje (omejitev %s)",
"Accept" : "Sprejmi",
"Reject" : "Zavrni",
@@ -68,11 +74,13 @@
"Current directory path" : "Trenutna pot mape",
"Drag and drop files here to upload" : "Za pošiljanje potegnite in spustite datoteke na to mesto",
"Favorite" : "Priljubljene",
+ "Back" : "Nazaj",
"File is loading" : "Poteka nalaganje datoteke",
"Folder is loading" : "mape",
"Filename" : "Ime datoteke",
"Folder name" : "Ime mape",
"This node is unavailable" : "To vozlišče ni na voljo.",
+ "Another entry with the same name already exists." : "Vpis z istim imenom že obstaja.",
"Invalid filename." : "Neveljavno ime datoteke",
"Renamed \"{oldName}\" to \"{newName}\"" : "Preimenuj »{oldName}« to »{newName}«",
"Rename file" : "Preimenuj datoteke",
@@ -105,6 +113,7 @@
"This name is already in use." : "Vpisano uporabniško ime je že v uporabi",
"Create" : "Ustvari",
"Fill template fields" : "Zapolni polja predloge",
+ "Submitting fields …" : "Pošiljanje polj ...",
"Submit" : "Pošlji",
"Choose a file or folder to transfer" : "Izbor datoteke ali mape za prenos",
"Transfer" : "Prenos",
@@ -117,6 +126,12 @@
"Choose file or folder to transfer" : "Izbor datoteke ali mape za prenos",
"Change" : "Spremeni",
"New owner" : "Nov lastnik",
+ "Keep {old}" : "Ohrani {old}",
+ "Keep without extension" : "Ohrani brez pripone",
+ "Use {new}" : "Uporabi {new}",
+ "Remove extension" : "Odstrani pripono",
+ "Change file extension" : "Spremeni pripono datoteke",
+ "Do not show this dialog again." : "Pogovornega okna ne pokaži več.",
"Select file or folder to link to" : "Izbor datoteke ali mape za povezavo",
"Choose {file}" : "Izberite datoteko {file}",
"Share" : "·Souporaba·",
@@ -154,11 +169,22 @@
"Use this address to access your Files via WebDAV" : "Uporabite ta naslov za dostop do datotek z uporabo WebDAV",
"If you have enabled 2FA, you must create and use a new app password by clicking here." : "Če je omogočen sistem dvostopenjskega overjanja 2FA, je treba ustvariti in uporabiti novo geslo programa s klikom na to mesto.",
"Keyboard shortcuts" : "Tipkovne bližnjice",
+ "Rename a file" : "Preimenuj datoteko",
+ "Delete a file" : "Izbriši datoteko",
+ "Favorite or remove a file from favorites" : "Označi ali odstrani koz priljubljeno",
+ "Manage tags for a file" : "Upravljanje oznak datoteke",
"Selection" : "Izbor",
+ "Select all files" : "Izberi vse datoteke",
+ "Deselect all files" : "Ostrani izbor vseh datotek",
+ "Select or deselect a file" : "Izberi ali odstrani izbor datoteke",
+ "Select a range of files" : "Izbor obsega datotek",
"Navigation" : "Krmarjenje",
"View" : "Pogled",
+ "Show those shortcuts" : "Pokaži tipkovne bližnjice",
"You" : "Jaz",
+ "Shared multiple times with different people" : "V več souporabah z različnimi uporabniki",
"Error while loading the file data" : "Prišlo je do napake med nalaganjem podatkov računa",
+ "Owner" : "Lastnik",
"Remove from favorites" : "Odstrani iz priljubljenih",
"Add to favorites" : "Dodaj med priljubljene",
"Tags" : "Oznake",
@@ -167,6 +193,20 @@
"Pick a template for {name}" : "Izbor predloge za {name}",
"Create a new file with the selected template" : "Ustvari novo datoteko z izbrano predlogo",
"Creating file" : "Poteka ustvarjanje datoteke",
+ "Save as {displayName}" : "Shrani kot {displayName}",
+ "Save as …" : "Shrani kot ...",
+ "Converting files …" : "Poteka pretvarjanje datotek ...",
+ "Failed to convert files: {message}" : "Pretvarjanje datotek je spodletelo: {message}",
+ "All files failed to be converted" : "Spodletelo je pretvarjanje vseh datotek.",
+ "One file could not be converted: {message}" : "Ene datoteke ni mogoče pretvoriti: {message}",
+ "_One file could not be converted_::_%n files could not be converted_" : ["%n datoteke ni mogoče pretvoriti","%n datotek ni mogoče pretvoriti","%n datotek ni mogoče pretvoriti","%n datotek ni mogoče pretvoriti"],
+ "_One file successfully converted_::_%n files successfully converted_" : ["%n datoteka je uspešno pretvorjena","%n datoteki sta uspešno pretvorjeni","%n datoteke so uspešno pretvorjene","%n datotek je uspešno pretvorjenih"],
+ "Files successfully converted" : "Datoteke so uspešno pretvorjene",
+ "Failed to convert files" : "Pretvarjanje datotek je spodletelo",
+ "Converting file …" : "Poteka pretvarjanje datoteke ...",
+ "File successfully converted" : "Datoteka je uspešno pretvorjena",
+ "Failed to convert file: {message}" : "Pretvarjanje datoteek je spodletelo: {message}",
+ "Failed to convert file" : "Pretvarjanje datoteke je spodletelo",
"Deletion cancelled" : "Brisanje je bilo preklicano",
"Leave this share" : "Prekini to souporabo",
"Leave these shares" : "Prekini to souporabo",
@@ -175,7 +215,7 @@
"Delete permanently" : "Izbriši trajno",
"Delete and unshare" : "Izbriši in prekini souporabo",
"Delete file" : "Izbriši datoteko",
- "Delete files" : "Izbriši datoteki",
+ "Delete files" : "Izbriši datoteke",
"Delete folder" : "Izbriši mapo",
"Delete folders" : "Izbriši mape",
"Delete" : "Izbriši",
@@ -199,6 +239,7 @@
"Open folder {displayName}" : "Odpri mapo {displayName}",
"Open in Files" : "Open in Files",
"Open file locally" : "Odpri datoteko krajevno",
+ "Open online" : "Odpri v brskalniku",
"Failed to redirect to client" : "Preusmerjanje odjemalca je spodletelo",
"Open locally" : "Odpri krajevno",
"Rename" : "Preimenuj",
@@ -238,14 +279,17 @@
"This operation is forbidden" : "To dejanje ni dovoljeno!",
"This directory is unavailable, please check the logs or contact the administrator" : "Mapa ni na voljo. Preverite dnevnik in stopite v stik s skrbnikom sistema.",
"Storage is temporarily not available" : "Shramba trenutno ni na voljo",
+ "Unexpected error: {error}" : "Nepričakovana napaka: {error}",
"_%n file_::_%n files_" : ["%n datoteka","%n datoteki","%n datoteke","%n datotek"],
"_%n folder_::_%n folders_" : ["%n mapa","%n mapi","%n mape","%n mape"],
+ "_%n hidden_::_%n hidden_" : ["%n skrita","%n skriti","%n skrite","%n skritih"],
"Filename must not be empty." : "Ime datoteke ne sme biti prazno.",
"No favorites yet" : "Ni še dodanih priljubljenih predmetov",
"Files and folders you mark as favorite will show up here" : "Datoteke ali mape, ki so označene kot priljubljene, bodo zbrane na tem mestu.",
"All files" : "Vse datoteke",
"List of your files and folders." : "Seznam datotek in map.",
"All folders" : "Vse mape",
+ "Personal files" : "Osebne datoteke",
"No personal files found" : "Ni najdenih zasebnih datotek",
"Recent" : "Nedavne",
"List of recently modified files and folders." : "Seznam nedavno spremenjenih datotek in map.",
@@ -353,6 +397,8 @@
"Text file" : "Besedilna datoteka",
"New text file.txt" : "nova_datoteka.txt",
"Submitting fields…" : "Poteka objavljanje vsebine polj ...",
- "Filter filenames…" : "Filtriraj imena datotek ..."
+ "Filter filenames…" : "Filtriraj imena datotek ...",
+ "{count} files could not be converted" : "{count} datotek ni mogoče pretvoriti",
+ "{count} files successfully converted" : "{count} datotek je uspešno pretvorjenih"
},"pluralForm" :"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);"
} \ No newline at end of file
diff --git a/apps/files/l10n/sr.js b/apps/files/l10n/sr.js
index c2388dff6a9..94e6e94c5a4 100644
--- a/apps/files/l10n/sr.js
+++ b/apps/files/l10n/sr.js
@@ -43,6 +43,8 @@ OC.L10N.register(
"Files" : "Фајлови",
"A file or folder has been <strong>changed</strong>" : "Фајл или фасцикла су <strong>измењени</strong>",
"A favorite file or folder has been <strong>changed</strong>" : "Омиљени фајл или фасцикла су <strong>измењени</strong>",
+ "%1$s (renamed)" : "%1$s (преименован)",
+ "renamed file" : "преименован фајл",
"Failed to authorize" : "Није успело добијање дозволе",
"Invalid folder path" : "Неисправна путања фолдера",
"Folder not found" : "Није пронађен фолдер",
@@ -71,6 +73,8 @@ 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 системима, као што су она која користе резервисана имена или специјалне карактере. Али ово неће форсирати компатибилност разликовања малих и великих слова.",
"File Management" : "Управљање фајловима",
diff --git a/apps/files/l10n/sr.json b/apps/files/l10n/sr.json
index f736a5c7f94..280c8cc2afd 100644
--- a/apps/files/l10n/sr.json
+++ b/apps/files/l10n/sr.json
@@ -41,6 +41,8 @@
"Files" : "Фајлови",
"A file or folder has been <strong>changed</strong>" : "Фајл или фасцикла су <strong>измењени</strong>",
"A favorite file or folder has been <strong>changed</strong>" : "Омиљени фајл или фасцикла су <strong>измењени</strong>",
+ "%1$s (renamed)" : "%1$s (преименован)",
+ "renamed file" : "преименован фајл",
"Failed to authorize" : "Није успело добијање дозволе",
"Invalid folder path" : "Неисправна путања фолдера",
"Folder not found" : "Није пронађен фолдер",
@@ -69,6 +71,8 @@
"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 системима, као што су она која користе резервисана имена или специјалне карактере. Али ово неће форсирати компатибилност разликовања малих и великих слова.",
"File Management" : "Управљање фајловима",
diff --git a/apps/files/l10n/uk.js b/apps/files/l10n/uk.js
index 45c21964030..4518b372a0f 100644
--- a/apps/files/l10n/uk.js
+++ b/apps/files/l10n/uk.js
@@ -328,6 +328,7 @@ OC.L10N.register(
"Unexpected error: {error}" : "Неочікувана помилка: {error}",
"_%n file_::_%n files_" : ["%n файл","%n файли","%n файлів","%n файлів"],
"_%n folder_::_%n folders_" : ["%n каталог ","%n каталоги ","%n каталогів ","%n каталогів"],
+ "_%n hidden_::_%n hidden_" : ["%n приховано","%n приховано","%n приховано","%n приховано"],
"Filename must not be empty." : "Імена файлів не мають бути порожні.",
"\"{char}\" is not allowed inside a filename." : "Символ \"{char}\" не дозволено у імені файлу.",
"\"{segment}\" is a reserved name and not allowed for filenames." : "\"{segment}\" є зарезервованим ім'ям і не дозволяється у іменах файлів.",
diff --git a/apps/files/l10n/uk.json b/apps/files/l10n/uk.json
index c91052117ba..c27feb57fd8 100644
--- a/apps/files/l10n/uk.json
+++ b/apps/files/l10n/uk.json
@@ -326,6 +326,7 @@
"Unexpected error: {error}" : "Неочікувана помилка: {error}",
"_%n file_::_%n files_" : ["%n файл","%n файли","%n файлів","%n файлів"],
"_%n folder_::_%n folders_" : ["%n каталог ","%n каталоги ","%n каталогів ","%n каталогів"],
+ "_%n hidden_::_%n hidden_" : ["%n приховано","%n приховано","%n приховано","%n приховано"],
"Filename must not be empty." : "Імена файлів не мають бути порожні.",
"\"{char}\" is not allowed inside a filename." : "Символ \"{char}\" не дозволено у імені файлу.",
"\"{segment}\" is a reserved name and not allowed for filenames." : "\"{segment}\" є зарезервованим ім'ям і не дозволяється у іменах файлів.",
diff --git a/apps/files/l10n/zh_CN.js b/apps/files/l10n/zh_CN.js
index 3dafbd00fb2..17571dc849b 100644
--- a/apps/files/l10n/zh_CN.js
+++ b/apps/files/l10n/zh_CN.js
@@ -43,6 +43,8 @@ OC.L10N.register(
"Files" : "文件",
"A file or folder has been <strong>changed</strong>" : "文件或文件夹已经被<strong>修改</strong>",
"A favorite file or folder has been <strong>changed</strong>" : "一个收藏的文件或文件夹已经被<strong>修改</strong>",
+ "%1$s (renamed)" : "%1$s(已重命名)",
+ "renamed file" : "已重命名文件",
"Failed to authorize" : "授权失败",
"Invalid folder path" : "无效文件夹路径",
"Folder not found" : "未找到文件夹",
@@ -71,6 +73,8 @@ 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 系统中无效的文件名称,比如使用保留字符。但这不会强制大小写敏感性兼容。",
"File Management" : "文件管理",
diff --git a/apps/files/l10n/zh_CN.json b/apps/files/l10n/zh_CN.json
index bb82495355a..e872bd42873 100644
--- a/apps/files/l10n/zh_CN.json
+++ b/apps/files/l10n/zh_CN.json
@@ -41,6 +41,8 @@
"Files" : "文件",
"A file or folder has been <strong>changed</strong>" : "文件或文件夹已经被<strong>修改</strong>",
"A favorite file or folder has been <strong>changed</strong>" : "一个收藏的文件或文件夹已经被<strong>修改</strong>",
+ "%1$s (renamed)" : "%1$s(已重命名)",
+ "renamed file" : "已重命名文件",
"Failed to authorize" : "授权失败",
"Invalid folder path" : "无效文件夹路径",
"Folder not found" : "未找到文件夹",
@@ -69,6 +71,8 @@
"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 系统中无效的文件名称,比如使用保留字符。但这不会强制大小写敏感性兼容。",
"File Management" : "文件管理",
diff --git a/apps/files/l10n/zh_TW.js b/apps/files/l10n/zh_TW.js
index 6f006ad46d6..9ee3f40b41d 100644
--- a/apps/files/l10n/zh_TW.js
+++ b/apps/files/l10n/zh_TW.js
@@ -43,6 +43,8 @@ OC.L10N.register(
"Files" : "檔案",
"A file or folder has been <strong>changed</strong>" : "檔案或資料夾已被<strong>變更</strong>",
"A favorite file or folder has been <strong>changed</strong>" : "一個喜愛的檔案或資料夾已<strong>變更</strong>",
+ "%1$s (renamed)" : "%1$s(已重新命名)",
+ "renamed file" : "已重新命名檔案",
"Failed to authorize" : "授權失敗",
"Invalid folder path" : "無效的資料夾路徑",
"Folder not found" : "找不到資料夾",
@@ -71,6 +73,8 @@ OC.L10N.register(
"Transferred from %1$s on %2$s" : "於 %2$s 從 %1$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 系統上無效的檔案名稱,例如使用保留名稱或特殊字元。但這不會強制區分大小寫的相容性。",
"File Management" : "檔案管理",
@@ -328,6 +332,7 @@ OC.L10N.register(
"Unexpected error: {error}" : "意外錯誤:{error}",
"_%n file_::_%n files_" : ["%n 個檔案"],
"_%n folder_::_%n folders_" : ["%n 個資料夾"],
+ "_%n hidden_::_%n hidden_" : ["%n 個隱藏"],
"Filename must not be empty." : "檔案名稱不能為空。",
"\"{char}\" is not allowed inside a filename." : "檔案名稱中不允許出現「{char}」",
"\"{segment}\" is a reserved name and not allowed for filenames." : "「{segment}」是保留名稱,不允許用在檔案名稱。",
diff --git a/apps/files/l10n/zh_TW.json b/apps/files/l10n/zh_TW.json
index 61df204c208..4814a6d91af 100644
--- a/apps/files/l10n/zh_TW.json
+++ b/apps/files/l10n/zh_TW.json
@@ -41,6 +41,8 @@
"Files" : "檔案",
"A file or folder has been <strong>changed</strong>" : "檔案或資料夾已被<strong>變更</strong>",
"A favorite file or folder has been <strong>changed</strong>" : "一個喜愛的檔案或資料夾已<strong>變更</strong>",
+ "%1$s (renamed)" : "%1$s(已重新命名)",
+ "renamed file" : "已重新命名檔案",
"Failed to authorize" : "授權失敗",
"Invalid folder path" : "無效的資料夾路徑",
"Folder not found" : "找不到資料夾",
@@ -69,6 +71,8 @@
"Transferred from %1$s on %2$s" : "於 %2$s 從 %1$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 系統上無效的檔案名稱,例如使用保留名稱或特殊字元。但這不會強制區分大小寫的相容性。",
"File Management" : "檔案管理",
@@ -326,6 +330,7 @@
"Unexpected error: {error}" : "意外錯誤:{error}",
"_%n file_::_%n files_" : ["%n 個檔案"],
"_%n folder_::_%n folders_" : ["%n 個資料夾"],
+ "_%n hidden_::_%n hidden_" : ["%n 個隱藏"],
"Filename must not be empty." : "檔案名稱不能為空。",
"\"{char}\" is not allowed inside a filename." : "檔案名稱中不允許出現「{char}」",
"\"{segment}\" is a reserved name and not allowed for filenames." : "「{segment}」是保留名稱,不允許用在檔案名稱。",
diff --git a/apps/files/lib/Activity/Provider.php b/apps/files/lib/Activity/Provider.php
index 0b8e051c877..faa2bbd0b3b 100644
--- a/apps/files/lib/Activity/Provider.php
+++ b/apps/files/lib/Activity/Provider.php
@@ -319,7 +319,7 @@ class Provider implements IProvider {
protected function getFile($parameter, ?IEvent $event = null): array {
if (is_array($parameter)) {
$path = reset($parameter);
- $id = (string)key($parameter);
+ $id = (int)key($parameter);
} elseif ($event !== null) {
// Legacy from before ownCloud 8.2
$path = $parameter;
@@ -341,7 +341,7 @@ class Provider implements IProvider {
return [
'type' => 'file',
- 'id' => $encryptionContainer->getId(),
+ 'id' => (string)$encryptionContainer->getId(),
'name' => $encryptionContainer->getName(),
'path' => $path,
'link' => $this->url->linkToRouteAbsolute('files.viewcontroller.showFile', ['fileid' => $encryptionContainer->getId()]),
@@ -354,7 +354,7 @@ class Provider implements IProvider {
return [
'type' => 'file',
- 'id' => $id,
+ 'id' => (string)$id,
'name' => basename($path),
'path' => trim($path, '/'),
'link' => $this->url->linkToRouteAbsolute('files.viewcontroller.showFile', ['fileid' => $id]),
diff --git a/apps/files/lib/Command/SanitizeFilenames.php b/apps/files/lib/Command/SanitizeFilenames.php
new file mode 100644
index 00000000000..ea01afd20d6
--- /dev/null
+++ b/apps/files/lib/Command/SanitizeFilenames.php
@@ -0,0 +1,168 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+namespace OCA\Files\Command;
+
+use Exception;
+use OC\Core\Command\Base;
+use OC\Files\FilenameValidator;
+use OCP\Files\Folder;
+use OCP\Files\IRootFolder;
+use OCP\Files\NotPermittedException;
+use OCP\IUser;
+use OCP\IUserManager;
+use OCP\IUserSession;
+use OCP\L10N\IFactory;
+use OCP\Lock\LockedException;
+use Symfony\Component\Console\Input\InputArgument;
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Input\InputOption;
+use Symfony\Component\Console\Output\OutputInterface;
+
+class SanitizeFilenames extends Base {
+
+ private OutputInterface $output;
+ private string $charReplacement;
+ private bool $dryRun;
+
+ public function __construct(
+ private IUserManager $userManager,
+ private IRootFolder $rootFolder,
+ private IUserSession $session,
+ private IFactory $l10nFactory,
+ private FilenameValidator $filenameValidator,
+ ) {
+ parent::__construct();
+ }
+
+ protected function configure(): void {
+ parent::configure();
+
+ $forbiddenCharacter = $this->filenameValidator->getForbiddenCharacters();
+ $charReplacement = array_diff([' ', '_', '-'], $forbiddenCharacter);
+ $charReplacement = reset($charReplacement) ?: '';
+
+ $this
+ ->setName('files:sanitize-filenames')
+ ->setDescription('Renames files to match naming constraints')
+ ->addArgument(
+ 'user_id',
+ InputArgument::OPTIONAL | InputArgument::IS_ARRAY,
+ 'will only rename files the given user(s) have access to'
+ )
+ ->addOption(
+ 'dry-run',
+ mode: InputOption::VALUE_NONE,
+ description: 'Do not actually rename any files but just check filenames.',
+ )
+ ->addOption(
+ 'char-replacement',
+ 'c',
+ mode: InputOption::VALUE_REQUIRED,
+ description: 'Replacement for invalid character (by default space, underscore or dash is used)',
+ default: $charReplacement,
+ );
+
+ }
+
+ protected function execute(InputInterface $input, OutputInterface $output): int {
+ $this->charReplacement = $input->getOption('char-replacement');
+ if ($this->charReplacement === '' || mb_strlen($this->charReplacement) > 1) {
+ $output->writeln('<error>No character replacement given</error>');
+ return 1;
+ }
+
+ $this->dryRun = $input->getOption('dry-run');
+ if ($this->dryRun) {
+ $output->writeln('<info>Dry run is enabled, no actual renaming will be applied.</>');
+ }
+
+ $this->output = $output;
+ $users = $input->getArgument('user_id');
+ if (!empty($users)) {
+ foreach ($users as $userId) {
+ $user = $this->userManager->get($userId);
+ if ($user === null) {
+ $output->writeln("<error>User '$userId' does not exist - skipping</>");
+ continue;
+ }
+ $this->sanitizeUserFiles($user);
+ }
+ } else {
+ $this->userManager->callForSeenUsers($this->sanitizeUserFiles(...));
+ }
+ return self::SUCCESS;
+ }
+
+ private function sanitizeUserFiles(IUser $user): void {
+ // Set an active user so that event listeners can correctly work (e.g. files versions)
+ $this->session->setVolatileActiveUser($user);
+
+ $this->output->writeln('<info>Analyzing files of ' . $user->getUID() . '</>');
+
+ $folder = $this->rootFolder->getUserFolder($user->getUID());
+ $this->sanitizeFiles($folder);
+ }
+
+ private function sanitizeFiles(Folder $folder): void {
+ foreach ($folder->getDirectoryListing() as $node) {
+ $this->output->writeln('scanning: ' . $node->getPath(), OutputInterface::VERBOSITY_VERBOSE);
+
+ try {
+ $oldName = $node->getName();
+ if (!$this->filenameValidator->isFilenameValid($oldName)) {
+ $newName = $this->sanitizeName($oldName);
+ $newName = $folder->getNonExistingName($newName);
+ $path = rtrim(dirname($node->getPath()), '/');
+
+ if (!$this->dryRun) {
+ $node->move("$path/$newName");
+ } elseif (!$folder->isCreatable()) {
+ // simulate error for dry run
+ throw new NotPermittedException();
+ }
+ $this->output->writeln('renamed: "' . $oldName . '" to "' . $newName . '"');
+ }
+ } catch (LockedException) {
+ $this->output->writeln('<comment>skipping: ' . $node->getPath() . ' (file is locked)</>');
+ } catch (NotPermittedException) {
+ $this->output->writeln('<comment>skipping: ' . $node->getPath() . ' (no permissions)</>');
+ } catch (Exception) {
+ $this->output->writeln('<error>failed: ' . $node->getPath() . '</>');
+ }
+
+ if ($node instanceof Folder) {
+ $this->sanitizeFiles($node);
+ }
+ }
+ }
+
+ private function sanitizeName(string $name): string {
+ $l10n = $this->l10nFactory->get('files');
+
+ foreach ($this->filenameValidator->getForbiddenExtensions() as $extension) {
+ if (str_ends_with($name, $extension)) {
+ $name = substr($name, 0, strlen($name) - strlen($extension));
+ }
+ }
+
+ $basename = substr($name, 0, strpos($name, '.', 1) ?: null);
+ if (in_array($basename, $this->filenameValidator->getForbiddenBasenames())) {
+ $name = str_replace($basename, $l10n->t('%1$s (renamed)', [$basename]), $name);
+ }
+
+ if ($name === '') {
+ $name = $l10n->t('renamed file');
+ }
+
+ $forbiddenCharacter = $this->filenameValidator->getForbiddenCharacters();
+ $name = str_replace($forbiddenCharacter, $this->charReplacement, $name);
+
+ return $name;
+ }
+}
diff --git a/apps/files/lib/Command/Scan.php b/apps/files/lib/Command/Scan.php
index 9c57f4b2971..7f45a9ea518 100644
--- a/apps/files/lib/Command/Scan.php
+++ b/apps/files/lib/Command/Scan.php
@@ -24,6 +24,7 @@ use OCP\Files\NotFoundException;
use OCP\Files\StorageNotAvailableException;
use OCP\FilesMetadata\IFilesMetadataManager;
use OCP\IUserManager;
+use OCP\Lock\LockedException;
use OCP\Server;
use Psr\Log\LoggerInterface;
use Symfony\Component\Console\Helper\Table;
@@ -165,6 +166,12 @@ class Scan extends Base {
} catch (NotFoundException $e) {
$output->writeln('<error>Path not found: ' . $e->getMessage() . '</error>');
++$this->errorsCounter;
+ } catch (LockedException $e) {
+ if (str_starts_with($e->getPath(), 'scanner::')) {
+ $output->writeln('<error>Another process is already scanning \'' . substr($e->getPath(), strlen('scanner::')) . '\'</error>');
+ } else {
+ throw $e;
+ }
} catch (\Exception $e) {
$output->writeln('<error>Exception during scan: ' . $e->getMessage() . '</error>');
$output->writeln('<error>' . $e->getTraceAsString() . '</error>');
diff --git a/apps/files/lib/Command/WindowsCompatibleFilenames.php b/apps/files/lib/Command/WindowsCompatibleFilenames.php
new file mode 100644
index 00000000000..84a1b277824
--- /dev/null
+++ b/apps/files/lib/Command/WindowsCompatibleFilenames.php
@@ -0,0 +1,52 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+namespace OCA\Files\Command;
+
+use OC\Core\Command\Base;
+use OCA\Files\Service\SettingsService;
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Output\OutputInterface;
+
+class WindowsCompatibleFilenames extends Base {
+
+ public function __construct(
+ private SettingsService $service,
+ ) {
+ parent::__construct();
+ }
+
+ protected function configure(): void {
+ parent::configure();
+
+ $this
+ ->setName('files:windows-compatible-filenames')
+ ->setDescription('Enforce naming constraints for windows compatible filenames')
+ ->addOption('enable', description: 'Enable windows naming constraints')
+ ->addOption('disable', description: 'Disable windows naming constraints');
+ }
+
+ protected function execute(InputInterface $input, OutputInterface $output): int {
+ if ($input->getOption('enable')) {
+ if ($this->service->hasFilesWindowsSupport()) {
+ $output->writeln('<error>Windows compatible filenames already enforced.</error>', OutputInterface::VERBOSITY_VERBOSE);
+ }
+ $this->service->setFilesWindowsSupport(true);
+ $output->writeln('Windows compatible filenames enforced.');
+ } elseif ($input->getOption('disable')) {
+ if (!$this->service->hasFilesWindowsSupport()) {
+ $output->writeln('<error>Windows compatible filenames already disabled.</error>', OutputInterface::VERBOSITY_VERBOSE);
+ }
+ $this->service->setFilesWindowsSupport(false);
+ $output->writeln('Windows compatible filename constraints removed.');
+ } else {
+ $output->writeln('Windows compatible filenames are ' . ($this->service->hasFilesWindowsSupport() ? 'enforced' : 'disabled'));
+ }
+ return self::SUCCESS;
+ }
+}
diff --git a/apps/files/lib/Settings/DeclarativeAdminSettings.php b/apps/files/lib/Settings/DeclarativeAdminSettings.php
index e509ad2233b..2f363f05958 100644
--- a/apps/files/lib/Settings/DeclarativeAdminSettings.php
+++ b/apps/files/lib/Settings/DeclarativeAdminSettings.php
@@ -9,6 +9,7 @@ namespace OCA\Files\Settings;
use OCA\Files\Service\SettingsService;
use OCP\IL10N;
+use OCP\IURLGenerator;
use OCP\IUser;
use OCP\Settings\DeclarativeSettingsTypes;
use OCP\Settings\IDeclarativeSettingsFormWithHandlers;
@@ -18,6 +19,7 @@ class DeclarativeAdminSettings implements IDeclarativeSettingsFormWithHandlers {
public function __construct(
private IL10N $l,
private SettingsService $service,
+ private IURLGenerator $urlGenerator,
) {
}
@@ -44,7 +46,12 @@ class DeclarativeAdminSettings implements IDeclarativeSettingsFormWithHandlers {
'section_id' => 'server',
'storage_type' => DeclarativeSettingsTypes::STORAGE_TYPE_EXTERNAL,
'title' => $this->l->t('Files compatibility'),
- 'description' => $this->l->t('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.'),
+ 'doc_url' => $this->urlGenerator->linkToDocs('admin-windows-compatible-filenames'),
+ 'description' => (
+ $this->l->t('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.')
+ . "\n" . $this->l->t('After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner.')
+ . "\n" . $this->l->t('It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command.')
+ ),
'fields' => [
[
diff --git a/apps/files/src/components/FileEntryMixin.ts b/apps/files/src/components/FileEntryMixin.ts
index 589073e7b9a..735490c45b3 100644
--- a/apps/files/src/components/FileEntryMixin.ts
+++ b/apps/files/src/components/FileEntryMixin.ts
@@ -356,7 +356,7 @@ export default defineComponent({
// if ctrl+click / cmd+click (MacOS uses the meta key) or middle mouse button (button & 4), open in new tab
// also if there is no default action use this as a fallback
- const metaKeyPressed = event.ctrlKey || event.metaKey || Boolean(event.button & 4)
+ const metaKeyPressed = event.ctrlKey || event.metaKey || event.button === 1
if (metaKeyPressed || !this.defaultFileAction) {
// If no download permission, then we can not allow to download (direct link) the files
if (isPublicShare() && !isDownloadable(this.source)) {
@@ -368,7 +368,9 @@ export default defineComponent({
: generateUrl('/f/{fileId}', { fileId: this.fileid })
event.preventDefault()
event.stopPropagation()
- window.open(url, metaKeyPressed ? '_self' : undefined)
+
+ // Open the file in a new tab if the meta key or the middle mouse button is clicked
+ window.open(url, metaKeyPressed ? '_blank' : '_self')
return
}
diff --git a/apps/files/tests/Activity/ProviderTest.php b/apps/files/tests/Activity/ProviderTest.php
index 7803563a11c..7b91e980842 100644
--- a/apps/files/tests/Activity/ProviderTest.php
+++ b/apps/files/tests/Activity/ProviderTest.php
@@ -93,7 +93,7 @@ class ProviderTest extends TestCase {
return [
[[42 => '/FortyTwo.txt'], null, '42', 'FortyTwo.txt', 'FortyTwo.txt'],
[['23' => '/Twenty/Three.txt'], null, '23', 'Three.txt', 'Twenty/Three.txt'],
- ['/Foo/Bar.txt', 128, 128, 'Bar.txt', 'Foo/Bar.txt'], // Legacy from ownCloud 8.2 and before
+ ['/Foo/Bar.txt', 128, '128', 'Bar.txt', 'Foo/Bar.txt'], // Legacy from ownCloud 8.2 and before
];
}