diff options
Diffstat (limited to 'apps/files')
101 files changed, 788 insertions, 315 deletions
diff --git a/apps/files/js/fileactions.js b/apps/files/js/fileactions.js index 93d342ed391..579040d8d60 100644 --- a/apps/files/js/fileactions.js +++ b/apps/files/js/fileactions.js @@ -722,7 +722,7 @@ }); } - if (!/Android|iPhone|iPad|iPod/i.test(navigator.userAgent)) { + if (!/Android|iPhone|iPad|iPod/i.test(navigator.userAgent) && !!window.oc_current_user) { this.registerAction({ name: 'EditLocally', displayName: function(context) { diff --git a/apps/files/l10n/ar.js b/apps/files/l10n/ar.js index 4a0da1eb8e7..690a06039fa 100644 --- a/apps/files/l10n/ar.js +++ b/apps/files/l10n/ar.js @@ -217,6 +217,7 @@ OC.L10N.register( "Could not refresh storage stats" : "تعذر تحديث حالة التخزين", "Your storage is full, files can not be updated or synced anymore!" : "مساحتك التخزينية ممتلئة, لا يمكن تحديث ملفاتك أو مزامنتها بعد الآن !", "Create" : "إنشاء", + "This name is already in use." : "هذا الاسم سبق استعماله.", "Fill template fields" : "قُم بملء حقول القالب", "Submitting fields…" : "إرسال الحقول ...", "Submit" : "إرسال ", @@ -275,16 +276,17 @@ OC.L10N.register( "Creating file" : "إنشاء ملف", "Blank" : "فارغ", "Unable to create new file from template" : "تعذر إنشاء الملف الجديد من القالب", + "Deletion cancelled" : "تمّ إلغاء الحذف", "Delete permanently" : "حذف بشكل دائم", "Delete and unshare" : "إحذِف و الغٍ المشاركات ", "Leave these shares" : "مغادرة هاتين المشاركتين", "Disconnect storages" : "فصل وحدات تخزين", "Delete files" : "حذف الملفات", "Delete folders" : "حذف مجلدين", - "You are about to delete {count} items." : "أنت على وشك حذف {count} عنصر.", + "_You are about to permanently delete {count} item_::_You are about to permanently delete {count} items_" : ["أنت على وشك أن تحذف نهائياً {count} عنصراً","أنت على وشك أن تحذف نهائياً {count} عنصراً","أنت على وشك أن تحذف نهائياً {count} عنصراً","أنت على وشك أن تحذف نهائياً {count} عناصر","أنت على وشك أن تحذف نهائياً {count} عناصر","أنت على وشك أن تحذف نهائياً {count} عنصراً"], + "_You are about to delete {count} item_::_You are about to delete {count} items_" : ["أنت على وشك أن تحذف {count} عنصراً","أنت على وشك أن تحذف {count} عنصراً","أنت على وشك أن تحذف {count} عنصراً","أنت على وشك أن تحذف {count} عناصر","أنت على وشك أن تحذف {count} عناصر","أنت على وشك أن تحذف {count} عنصراً"], "Confirm deletion" : "أكِّد على الحذف", "Cancel" : "الغاء", - "Deletion cancelled" : "تمّ إلغاء الحذف", "Destination is not a folder" : "المَقصَد ليس مُجلّداً", "This file/folder is already in that directory" : "هذا الملف/المجلد موجود سلفاً في ذلك المجلد", "You cannot move a file/folder onto itself or into a subfolder of itself" : "لا يمكنك نقل ملف/مجلد إلى نفسه أو إلى مجلد فرعي منه", diff --git a/apps/files/l10n/ar.json b/apps/files/l10n/ar.json index 649b8de14b6..7ce28a353d5 100644 --- a/apps/files/l10n/ar.json +++ b/apps/files/l10n/ar.json @@ -215,6 +215,7 @@ "Could not refresh storage stats" : "تعذر تحديث حالة التخزين", "Your storage is full, files can not be updated or synced anymore!" : "مساحتك التخزينية ممتلئة, لا يمكن تحديث ملفاتك أو مزامنتها بعد الآن !", "Create" : "إنشاء", + "This name is already in use." : "هذا الاسم سبق استعماله.", "Fill template fields" : "قُم بملء حقول القالب", "Submitting fields…" : "إرسال الحقول ...", "Submit" : "إرسال ", @@ -273,16 +274,17 @@ "Creating file" : "إنشاء ملف", "Blank" : "فارغ", "Unable to create new file from template" : "تعذر إنشاء الملف الجديد من القالب", + "Deletion cancelled" : "تمّ إلغاء الحذف", "Delete permanently" : "حذف بشكل دائم", "Delete and unshare" : "إحذِف و الغٍ المشاركات ", "Leave these shares" : "مغادرة هاتين المشاركتين", "Disconnect storages" : "فصل وحدات تخزين", "Delete files" : "حذف الملفات", "Delete folders" : "حذف مجلدين", - "You are about to delete {count} items." : "أنت على وشك حذف {count} عنصر.", + "_You are about to permanently delete {count} item_::_You are about to permanently delete {count} items_" : ["أنت على وشك أن تحذف نهائياً {count} عنصراً","أنت على وشك أن تحذف نهائياً {count} عنصراً","أنت على وشك أن تحذف نهائياً {count} عنصراً","أنت على وشك أن تحذف نهائياً {count} عناصر","أنت على وشك أن تحذف نهائياً {count} عناصر","أنت على وشك أن تحذف نهائياً {count} عنصراً"], + "_You are about to delete {count} item_::_You are about to delete {count} items_" : ["أنت على وشك أن تحذف {count} عنصراً","أنت على وشك أن تحذف {count} عنصراً","أنت على وشك أن تحذف {count} عنصراً","أنت على وشك أن تحذف {count} عناصر","أنت على وشك أن تحذف {count} عناصر","أنت على وشك أن تحذف {count} عنصراً"], "Confirm deletion" : "أكِّد على الحذف", "Cancel" : "الغاء", - "Deletion cancelled" : "تمّ إلغاء الحذف", "Destination is not a folder" : "المَقصَد ليس مُجلّداً", "This file/folder is already in that directory" : "هذا الملف/المجلد موجود سلفاً في ذلك المجلد", "You cannot move a file/folder onto itself or into a subfolder of itself" : "لا يمكنك نقل ملف/مجلد إلى نفسه أو إلى مجلد فرعي منه", diff --git a/apps/files/l10n/ast.js b/apps/files/l10n/ast.js index ef14c60a02e..58ff32bb58c 100644 --- a/apps/files/l10n/ast.js +++ b/apps/files/l10n/ast.js @@ -261,16 +261,15 @@ OC.L10N.register( "Creating file" : "Creando'l ficheru", "Blank" : "Baleru", "Unable to create new file from template" : "Nun ye posible crear un ficheru dende una plantía", + "Deletion cancelled" : "Anulóse'l desaniciu", "Delete permanently" : "Desaniciar permanentemente", "Delete and unshare" : "Desaniciar y dexar de compartir", "Leave these shares" : "Dexar estes comparticiones", "Disconnect storages" : "Desconectar los almacenamientos", "Delete files" : "Desaniciar los ficheros", "Delete folders" : "Desaniciar les carpetes", - "You are about to delete {count} items." : "Tas a piques de desaniciar {count} elementos.", "Confirm deletion" : "Confirmar el desaniciu", "Cancel" : "Encaboxar", - "Deletion cancelled" : "Anulóse'l desaniciu", "Destination is not a folder" : "El destín nun ye una carpeta", "This file/folder is already in that directory" : "Esti ficheru o esta carpeta yá ta nel direutoriu", "You cannot move a file/folder onto itself or into a subfolder of itself" : "Nun pues mover un ficheru/carpeta a sigo mesma o la mesma socarpeta de la mesma carpeta", diff --git a/apps/files/l10n/ast.json b/apps/files/l10n/ast.json index 5d8b5ec4302..ab106e7026a 100644 --- a/apps/files/l10n/ast.json +++ b/apps/files/l10n/ast.json @@ -259,16 +259,15 @@ "Creating file" : "Creando'l ficheru", "Blank" : "Baleru", "Unable to create new file from template" : "Nun ye posible crear un ficheru dende una plantía", + "Deletion cancelled" : "Anulóse'l desaniciu", "Delete permanently" : "Desaniciar permanentemente", "Delete and unshare" : "Desaniciar y dexar de compartir", "Leave these shares" : "Dexar estes comparticiones", "Disconnect storages" : "Desconectar los almacenamientos", "Delete files" : "Desaniciar los ficheros", "Delete folders" : "Desaniciar les carpetes", - "You are about to delete {count} items." : "Tas a piques de desaniciar {count} elementos.", "Confirm deletion" : "Confirmar el desaniciu", "Cancel" : "Encaboxar", - "Deletion cancelled" : "Anulóse'l desaniciu", "Destination is not a folder" : "El destín nun ye una carpeta", "This file/folder is already in that directory" : "Esti ficheru o esta carpeta yá ta nel direutoriu", "You cannot move a file/folder onto itself or into a subfolder of itself" : "Nun pues mover un ficheru/carpeta a sigo mesma o la mesma socarpeta de la mesma carpeta", diff --git a/apps/files/l10n/ca.js b/apps/files/l10n/ca.js index 2b0613a03d2..3ddf470d28c 100644 --- a/apps/files/l10n/ca.js +++ b/apps/files/l10n/ca.js @@ -263,16 +263,15 @@ OC.L10N.register( "Creating file" : "S'està creant el fitxer", "Blank" : "En blanc", "Unable to create new file from template" : "No s'ha pogut crear el fitxer a partir de la plantilla", + "Deletion cancelled" : "S'ha cancel·lat la supressió", "Delete permanently" : "Suprimeix permanentment", "Delete and unshare" : "Suprimeix i deixa de compartir", "Leave these shares" : "Abandona aquests elements compartits", "Disconnect storages" : "Desconnecta els emmagatzematges", "Delete files" : "Suprimeix els fitxers", "Delete folders" : "Suprimeix les carpetes", - "You are about to delete {count} items." : "Esteu a punt de suprimir {count} elements.", "Confirm deletion" : "Confirma la supressió", "Cancel" : "Cancel·la", - "Deletion cancelled" : "S'ha cancel·lat la supressió", "Destination is not a folder" : "La destinació no és una carpeta", "This file/folder is already in that directory" : "Aquest fitxer o carpeta ja existeix en aquesta carpeta", "You cannot move a file/folder onto itself or into a subfolder of itself" : "No podeu moure un fitxer o carpeta a la mateixa carpeta o a una subcarpeta de la mateixa carpeta", diff --git a/apps/files/l10n/ca.json b/apps/files/l10n/ca.json index 213c6f204ef..2cac5462b40 100644 --- a/apps/files/l10n/ca.json +++ b/apps/files/l10n/ca.json @@ -261,16 +261,15 @@ "Creating file" : "S'està creant el fitxer", "Blank" : "En blanc", "Unable to create new file from template" : "No s'ha pogut crear el fitxer a partir de la plantilla", + "Deletion cancelled" : "S'ha cancel·lat la supressió", "Delete permanently" : "Suprimeix permanentment", "Delete and unshare" : "Suprimeix i deixa de compartir", "Leave these shares" : "Abandona aquests elements compartits", "Disconnect storages" : "Desconnecta els emmagatzematges", "Delete files" : "Suprimeix els fitxers", "Delete folders" : "Suprimeix les carpetes", - "You are about to delete {count} items." : "Esteu a punt de suprimir {count} elements.", "Confirm deletion" : "Confirma la supressió", "Cancel" : "Cancel·la", - "Deletion cancelled" : "S'ha cancel·lat la supressió", "Destination is not a folder" : "La destinació no és una carpeta", "This file/folder is already in that directory" : "Aquest fitxer o carpeta ja existeix en aquesta carpeta", "You cannot move a file/folder onto itself or into a subfolder of itself" : "No podeu moure un fitxer o carpeta a la mateixa carpeta o a una subcarpeta de la mateixa carpeta", diff --git a/apps/files/l10n/cs.js b/apps/files/l10n/cs.js index cab80c03348..1e44f7225f7 100644 --- a/apps/files/l10n/cs.js +++ b/apps/files/l10n/cs.js @@ -157,10 +157,16 @@ OC.L10N.register( "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>", "Upload (max. %s)" : "Nahrát (max. %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).", + "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.", "Accept" : "Přijmout", "Reject" : "Odmítnout", "Incoming ownership transfer from {user}" : "Příchozí převedení vlastnictví od {user}", "Do you want to accept {path}?\n\nNote: The transfer process after accepting may take up to 1 hour." : "Chcete přijmout {path}?\n\nPozn.: Proces převedení může trvat až hodinu po přijmutí.", + "Ownership transfer denied" : "Převedení vlastnictví odepřeno", + "Your ownership transfer of {path} was denied by {user}." : "Převedení vašeho vlastnictví {path} bylo odepřeno {user}.", "Ownership transfer failed" : "Převedení vlastnictví se nezdařilo", "Your ownership transfer of {path} to {user} failed." : "Převedení vlastnictví {path} od vás na {user} se nezdařilo.", "The ownership transfer of {path} from {user} failed." : "Převedení vlastnictví {path} od {user} se nezdařilo.", @@ -168,6 +174,7 @@ OC.L10N.register( "Your ownership transfer of {path} to {user} has completed." : "Převedení vámi vlastněného {path} na {user} dokončeno.", "The ownership transfer of {path} from {user} has completed." : "Převedení vlastnictví {path} od {user} dokončeno.", "in %s" : "v %s", + "Transferred from %1$s on %2$s" : "Převedeno z %1$s na %2$s", "File Management" : "Správa souboru", "Current directory path" : "Stávající popis umístění složky", "Reload current directory" : "Znovu načíst stávající složku", @@ -184,6 +191,8 @@ OC.L10N.register( "Folder name" : "Název složky", "This node is unavailable" : "Tento uzel není k dispozici", "Download file {name}" : "Stáhnout soubor {name}", + "Another entry with the same name already exists." : "Už existuje jiná položka se stejným názvem.", + "Invalid filename." : "Neplatný název souboru.", "Renamed \"{oldName}\" to \"{newName}\"" : "Přejmenováno „{oldName}“ na „{newName}", "Could not rename \"{oldName}\", it does not exist any more" : "Není možné přejmenovat „{oldName}“ – už neexistuje", "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Název „{newtName}“ je už použitý ve složce „{dir}“. Zvolte jiný název.", @@ -201,11 +210,16 @@ OC.L10N.register( "Column headers with buttons are sortable." : "Podle těch sloupců, které mají v záhlaví tlačítko, je možné řadit.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Seznam není vykreslen celý z důvodu nároků na výkon. Soubory budou dokreslovány, jak se budete posouvat seznamem.", "File not found" : "Soubor nenalezen", + "Storage information" : "Informace o úložišti", + "Storage quota" : "Kvóta úložiště", "{usedQuotaByte} used" : "{usedQuotaByte} využito", "{relative}% used" : "{relative}% využito", "Could not refresh storage stats" : "Nedaří se znovu načíst statistiky úložiště", "Your storage is full, files can not be updated or synced anymore!" : "Vaše úložiště je plné – soubory už proto nelze aktualizovat ani synchronizovat!", "Create" : "Vytvořit", + "This name is already in use." : "Tento název už je využíván.", + "Fill template fields" : "Vyplňte kolonky šablony", + "Submitting fields…" : "Odesílání kolonek…", "Submit" : "Odeslat", "Transfer ownership of a file or folder" : "Převést vlastnictví souboru či složky", "Choose file or folder to transfer" : "Zvolte soubor nebo složku k převedení", @@ -231,9 +245,11 @@ OC.L10N.register( "Shared" : "Sdíleno", "Switch to list view" : "Přepnout do zobrazení v seznamu", "Switch to grid view" : "Přepnout do zobrazení v mřížce", + "Upload was cancelled by user" : "Odeslání bylo zrušeno uživatelem", "Error during upload: {message}" : "Chyba při nahrávání: {message}", "Error during upload, status code {status}" : "Chyba při nahrávání – stavový kód {status}", "Unknown error during upload" : "Neznámá chyba při nahrávání", + "Filter filenames…" : "Filtrovat názvy souborů…", "Views" : "Zobrazení", "Files settings" : "Nastavení pro Soubory", "File cannot be accessed" : "K souboru se nedaří přistoupit", @@ -250,7 +266,7 @@ OC.L10N.register( "WebDAV URL" : "WebDAV URL", "Copy to clipboard" : "Zkopírovat do schránky", "Use this address to access your Files via WebDAV" : "Tuto adresu použijte pro přístup k vašim souborům prostřednictvím protokolu WebDAV", - "If you have enabled 2FA, you must create and use a new app password by clicking here." : "Pokud jste zapnuli 2FA, je třeba kliknutím sem vytvořit a použít nové heslo pro aplikaci.", + "If you have enabled 2FA, you must create and use a new app password by clicking here." : "Pokud jste zapnuli 2FA (dvoufaktorovou autentizaci), je třeba kliknutím sem vytvořit a použít nové heslo pro aplikaci.", "Clipboard is not available" : "Schránka není k dispozici", "WebDAV URL copied to clipboard" : "WebDAV URL zkopírována do schránky", "Unable to change the favourite state of the file" : "Nedaří se změnit stav „oblíbené“ souboru", @@ -260,16 +276,15 @@ OC.L10N.register( "Creating file" : "Vytváření souboru", "Blank" : "Prázdný", "Unable to create new file from template" : "Nedaří se vytvořit soubor ze šablony", + "Deletion cancelled" : "Mazání zrušeno", "Delete permanently" : "Nevratně smazat", "Delete and unshare" : "Smazat a zrušit sdílení", "Leave these shares" : "Ponechat tato sdílení", "Disconnect storages" : "Odpojit úložiště", "Delete files" : "Smazat soubory", "Delete folders" : "Smazat složky", - "You are about to delete {count} items." : "Chystáte se smazat {count} položek.", "Confirm deletion" : "Potvrdit smazání", "Cancel" : "Storno", - "Deletion cancelled" : "Mazání zrušeno", "Destination is not a folder" : "Cíl není složka", "This file/folder is already in that directory" : "V oné složce se už daný soubor/složka nachází", "You cannot move a file/folder onto itself or into a subfolder of itself" : "Není možné přesunout soubor/složku do sebe samé nebo do své vlastní podložky", @@ -290,8 +305,15 @@ OC.L10N.register( "Today" : "Dnes", "Last 7 days" : "Uplynulých 7 dnů", "Last 30 days" : "Uplynulých 30 dnů", + "This year ({year})" : "Tento rok ({year})", + "Last year ({year})" : "Minulý rok ({year})", "Documents" : "Dokumenty", + "Spreadsheets" : "Tabulky", + "Presentations" : "Prezentace", + "PDFs" : "PDF dokumenty", "Folders" : "Složky", + "Audio" : "Zvuk", + "Pictures and images" : "Fotky a obrázky", "Videos" : "Videa", "Created new folder \"{name}\"" : "Vytvořena nová složka „{name}“", "Unable to initialize the templates directory" : "Nepodařilo se vytvořit složku pro šablony", @@ -318,6 +340,11 @@ OC.L10N.register( "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 soubor a {folderCount} složka","1 soubor a {folderCount} složky","1 soubor a {folderCount} složek","1 soubor a {folderCount} složky"], "_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} soubor a 1 složka","{fileCount} soubory a 1 složka","{fileCount} souborů a 1 složka","{fileCount} soubory a 1 složka"], "{fileCount} files and {folderCount} folders" : "{fileCount} souborů a {folderCount} složek", + "Filename must not be empty." : "Je třeba vyplnit název souboru.", + "\"{char}\" is not allowed inside a filename." : "„{char}“ není v názvu souboru možné použít.", + "\"{segment}\" is a reserved name and not allowed for filenames." : "„{segment}“ je vyhrazeným názvem a není povoleno k použití pro názvy souborů.", + "\"{extension}\" is not an allowed filetype." : "„{extension}“ není povoleným typem souboru.", + "Filenames must not end with \"{extension}\"." : "Je třeba, aby názvy souborů nekončily na „{extension}“.", "List of favorites files and folders." : "Seznam oblíbených souborů a složek.", "No favorites yet" : "Zatím nic oblíbeného", "Files and folders you mark as favorite will show up here" : "Zde budou zobrazeny soubory a složky, které označíte jako oblíbené", diff --git a/apps/files/l10n/cs.json b/apps/files/l10n/cs.json index e9d3b1c7b7e..5dd10944288 100644 --- a/apps/files/l10n/cs.json +++ b/apps/files/l10n/cs.json @@ -155,10 +155,16 @@ "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>", "Upload (max. %s)" : "Nahrát (max. %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).", + "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.", "Accept" : "Přijmout", "Reject" : "Odmítnout", "Incoming ownership transfer from {user}" : "Příchozí převedení vlastnictví od {user}", "Do you want to accept {path}?\n\nNote: The transfer process after accepting may take up to 1 hour." : "Chcete přijmout {path}?\n\nPozn.: Proces převedení může trvat až hodinu po přijmutí.", + "Ownership transfer denied" : "Převedení vlastnictví odepřeno", + "Your ownership transfer of {path} was denied by {user}." : "Převedení vašeho vlastnictví {path} bylo odepřeno {user}.", "Ownership transfer failed" : "Převedení vlastnictví se nezdařilo", "Your ownership transfer of {path} to {user} failed." : "Převedení vlastnictví {path} od vás na {user} se nezdařilo.", "The ownership transfer of {path} from {user} failed." : "Převedení vlastnictví {path} od {user} se nezdařilo.", @@ -166,6 +172,7 @@ "Your ownership transfer of {path} to {user} has completed." : "Převedení vámi vlastněného {path} na {user} dokončeno.", "The ownership transfer of {path} from {user} has completed." : "Převedení vlastnictví {path} od {user} dokončeno.", "in %s" : "v %s", + "Transferred from %1$s on %2$s" : "Převedeno z %1$s na %2$s", "File Management" : "Správa souboru", "Current directory path" : "Stávající popis umístění složky", "Reload current directory" : "Znovu načíst stávající složku", @@ -182,6 +189,8 @@ "Folder name" : "Název složky", "This node is unavailable" : "Tento uzel není k dispozici", "Download file {name}" : "Stáhnout soubor {name}", + "Another entry with the same name already exists." : "Už existuje jiná položka se stejným názvem.", + "Invalid filename." : "Neplatný název souboru.", "Renamed \"{oldName}\" to \"{newName}\"" : "Přejmenováno „{oldName}“ na „{newName}", "Could not rename \"{oldName}\", it does not exist any more" : "Není možné přejmenovat „{oldName}“ – už neexistuje", "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Název „{newtName}“ je už použitý ve složce „{dir}“. Zvolte jiný název.", @@ -199,11 +208,16 @@ "Column headers with buttons are sortable." : "Podle těch sloupců, které mají v záhlaví tlačítko, je možné řadit.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Seznam není vykreslen celý z důvodu nároků na výkon. Soubory budou dokreslovány, jak se budete posouvat seznamem.", "File not found" : "Soubor nenalezen", + "Storage information" : "Informace o úložišti", + "Storage quota" : "Kvóta úložiště", "{usedQuotaByte} used" : "{usedQuotaByte} využito", "{relative}% used" : "{relative}% využito", "Could not refresh storage stats" : "Nedaří se znovu načíst statistiky úložiště", "Your storage is full, files can not be updated or synced anymore!" : "Vaše úložiště je plné – soubory už proto nelze aktualizovat ani synchronizovat!", "Create" : "Vytvořit", + "This name is already in use." : "Tento název už je využíván.", + "Fill template fields" : "Vyplňte kolonky šablony", + "Submitting fields…" : "Odesílání kolonek…", "Submit" : "Odeslat", "Transfer ownership of a file or folder" : "Převést vlastnictví souboru či složky", "Choose file or folder to transfer" : "Zvolte soubor nebo složku k převedení", @@ -229,9 +243,11 @@ "Shared" : "Sdíleno", "Switch to list view" : "Přepnout do zobrazení v seznamu", "Switch to grid view" : "Přepnout do zobrazení v mřížce", + "Upload was cancelled by user" : "Odeslání bylo zrušeno uživatelem", "Error during upload: {message}" : "Chyba při nahrávání: {message}", "Error during upload, status code {status}" : "Chyba při nahrávání – stavový kód {status}", "Unknown error during upload" : "Neznámá chyba při nahrávání", + "Filter filenames…" : "Filtrovat názvy souborů…", "Views" : "Zobrazení", "Files settings" : "Nastavení pro Soubory", "File cannot be accessed" : "K souboru se nedaří přistoupit", @@ -248,7 +264,7 @@ "WebDAV URL" : "WebDAV URL", "Copy to clipboard" : "Zkopírovat do schránky", "Use this address to access your Files via WebDAV" : "Tuto adresu použijte pro přístup k vašim souborům prostřednictvím protokolu WebDAV", - "If you have enabled 2FA, you must create and use a new app password by clicking here." : "Pokud jste zapnuli 2FA, je třeba kliknutím sem vytvořit a použít nové heslo pro aplikaci.", + "If you have enabled 2FA, you must create and use a new app password by clicking here." : "Pokud jste zapnuli 2FA (dvoufaktorovou autentizaci), je třeba kliknutím sem vytvořit a použít nové heslo pro aplikaci.", "Clipboard is not available" : "Schránka není k dispozici", "WebDAV URL copied to clipboard" : "WebDAV URL zkopírována do schránky", "Unable to change the favourite state of the file" : "Nedaří se změnit stav „oblíbené“ souboru", @@ -258,16 +274,15 @@ "Creating file" : "Vytváření souboru", "Blank" : "Prázdný", "Unable to create new file from template" : "Nedaří se vytvořit soubor ze šablony", + "Deletion cancelled" : "Mazání zrušeno", "Delete permanently" : "Nevratně smazat", "Delete and unshare" : "Smazat a zrušit sdílení", "Leave these shares" : "Ponechat tato sdílení", "Disconnect storages" : "Odpojit úložiště", "Delete files" : "Smazat soubory", "Delete folders" : "Smazat složky", - "You are about to delete {count} items." : "Chystáte se smazat {count} položek.", "Confirm deletion" : "Potvrdit smazání", "Cancel" : "Storno", - "Deletion cancelled" : "Mazání zrušeno", "Destination is not a folder" : "Cíl není složka", "This file/folder is already in that directory" : "V oné složce se už daný soubor/složka nachází", "You cannot move a file/folder onto itself or into a subfolder of itself" : "Není možné přesunout soubor/složku do sebe samé nebo do své vlastní podložky", @@ -288,8 +303,15 @@ "Today" : "Dnes", "Last 7 days" : "Uplynulých 7 dnů", "Last 30 days" : "Uplynulých 30 dnů", + "This year ({year})" : "Tento rok ({year})", + "Last year ({year})" : "Minulý rok ({year})", "Documents" : "Dokumenty", + "Spreadsheets" : "Tabulky", + "Presentations" : "Prezentace", + "PDFs" : "PDF dokumenty", "Folders" : "Složky", + "Audio" : "Zvuk", + "Pictures and images" : "Fotky a obrázky", "Videos" : "Videa", "Created new folder \"{name}\"" : "Vytvořena nová složka „{name}“", "Unable to initialize the templates directory" : "Nepodařilo se vytvořit složku pro šablony", @@ -316,6 +338,11 @@ "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 soubor a {folderCount} složka","1 soubor a {folderCount} složky","1 soubor a {folderCount} složek","1 soubor a {folderCount} složky"], "_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} soubor a 1 složka","{fileCount} soubory a 1 složka","{fileCount} souborů a 1 složka","{fileCount} soubory a 1 složka"], "{fileCount} files and {folderCount} folders" : "{fileCount} souborů a {folderCount} složek", + "Filename must not be empty." : "Je třeba vyplnit název souboru.", + "\"{char}\" is not allowed inside a filename." : "„{char}“ není v názvu souboru možné použít.", + "\"{segment}\" is a reserved name and not allowed for filenames." : "„{segment}“ je vyhrazeným názvem a není povoleno k použití pro názvy souborů.", + "\"{extension}\" is not an allowed filetype." : "„{extension}“ není povoleným typem souboru.", + "Filenames must not end with \"{extension}\"." : "Je třeba, aby názvy souborů nekončily na „{extension}“.", "List of favorites files and folders." : "Seznam oblíbených souborů a složek.", "No favorites yet" : "Zatím nic oblíbeného", "Files and folders you mark as favorite will show up here" : "Zde budou zobrazeny soubory a složky, které označíte jako oblíbené", diff --git a/apps/files/l10n/da.js b/apps/files/l10n/da.js index 161ecab4ae1..5a93b3e535c 100644 --- a/apps/files/l10n/da.js +++ b/apps/files/l10n/da.js @@ -261,16 +261,15 @@ OC.L10N.register( "Creating file" : "Opretter fil", "Blank" : "Tom", "Unable to create new file from template" : "Kan ikke oprette ny fil fra skabelonen", + "Deletion cancelled" : "Sletning annulleret", "Delete permanently" : "Slet permanent", "Delete and unshare" : "Slet og fjern deling", "Leave these shares" : "Forlad disse delinger", "Disconnect storages" : "Frakobl lagerne", "Delete files" : "Slet filer", "Delete folders" : "Slet mapper", - "You are about to delete {count} items." : "Du er ved at slette {count} elementer.", "Confirm deletion" : "Bekræft sletning", "Cancel" : "annuller", - "Deletion cancelled" : "Sletning annulleret", "Destination is not a folder" : "Destinationen er ikke en mappe", "This file/folder is already in that directory" : "Filen/mappen er allerede i denne mappe", "You cannot move a file/folder onto itself or into a subfolder of itself" : "Du kan ikke flytte en fil/mappe ind i sig selv, eller til en mappe inden i sig selv", diff --git a/apps/files/l10n/da.json b/apps/files/l10n/da.json index 8293a10f164..4e4f94afe61 100644 --- a/apps/files/l10n/da.json +++ b/apps/files/l10n/da.json @@ -259,16 +259,15 @@ "Creating file" : "Opretter fil", "Blank" : "Tom", "Unable to create new file from template" : "Kan ikke oprette ny fil fra skabelonen", + "Deletion cancelled" : "Sletning annulleret", "Delete permanently" : "Slet permanent", "Delete and unshare" : "Slet og fjern deling", "Leave these shares" : "Forlad disse delinger", "Disconnect storages" : "Frakobl lagerne", "Delete files" : "Slet filer", "Delete folders" : "Slet mapper", - "You are about to delete {count} items." : "Du er ved at slette {count} elementer.", "Confirm deletion" : "Bekræft sletning", "Cancel" : "annuller", - "Deletion cancelled" : "Sletning annulleret", "Destination is not a folder" : "Destinationen er ikke en mappe", "This file/folder is already in that directory" : "Filen/mappen er allerede i denne mappe", "You cannot move a file/folder onto itself or into a subfolder of itself" : "Du kan ikke flytte en fil/mappe ind i sig selv, eller til en mappe inden i sig selv", diff --git a/apps/files/l10n/de.js b/apps/files/l10n/de.js index 5034340d1bb..1e464a88627 100644 --- a/apps/files/l10n/de.js +++ b/apps/files/l10n/de.js @@ -157,6 +157,10 @@ OC.L10N.register( "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>", "Upload (max. %s)" : "Hochladen (max. %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.", + "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.", "Accept" : "Akzeptieren", "Reject" : "Ablehnen", "Incoming ownership transfer from {user}" : "Eingehende Besitzübertragung von {user}", @@ -187,6 +191,8 @@ OC.L10N.register( "Folder name" : "Ordnername", "This node is unavailable" : "Dieser Knoten ist nicht verfügbar.", "Download file {name}" : "Datei {name} herunterladen", + "Another entry with the same name already exists." : "Ein anderer Eintrag mit diesem Namen existiert bereits.", + "Invalid filename." : "Ungültiger Dateiname.", "Renamed \"{oldName}\" to \"{newName}\"" : "\"{oldName}\" in \"{newName}\" umbenannt", "Could not rename \"{oldName}\", it does not exist any more" : "\"{oldName}\" konnte nicht umbenannt werden, da es nicht mehr existiert.", "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Der Name \"{newName}“ wird bereits im Ordner \"{dir}“ verwendet. Bitte wähle einen anderen Namen.", @@ -204,11 +210,16 @@ OC.L10N.register( "Column headers with buttons are sortable." : "Spaltenüberschriften mit Schaltflächen sind sortierbar.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Diese Liste wird aus Performance-Gründen nicht vollständig angezeigt. Die Dateien werden angezeigt, wenn du durch die Liste navigierst.", "File not found" : "Datei nicht gefunden", + "Storage information" : "Speicherinformation", + "Storage quota" : "Speicherkontingent", "{usedQuotaByte} used" : "{usedQuotaByte} verwendet", "{relative}% used" : "{relative}% verwendet", "Could not refresh storage stats" : "Die Speicherstatistik konnte nicht aktualisiert werden", "Your storage is full, files can not be updated or synced anymore!" : "Dein Speicher ist voll, daher können keine Dateien mehr aktualisiert oder synchronisiert werden!", "Create" : "Erstellen", + "This name is already in use." : "Dieser Name wird bereits verwendet.", + "Fill template fields" : "Vorlagenfelder ausfüllen", + "Submitting fields…" : "Felder werden übermittelt…", "Submit" : "Übermitteln", "Transfer ownership of a file or folder" : "Besitz einer Datei oder eines Ordners übertragen", "Choose file or folder to transfer" : "Datei oder Ordner zur Übertragung auswählen", @@ -238,6 +249,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", + "Filter filenames…" : "Dateinamen filtern…", "Views" : "Ansichten", "Files settings" : "Dateien-Einstellungen", "File cannot be accessed" : "Auf die Datei kann nicht zugegriffen werden", @@ -264,16 +276,17 @@ OC.L10N.register( "Creating file" : "Datei erstellen", "Blank" : "Leer", "Unable to create new file from template" : "Neue Datei konnte nicht aus Vorlage erstellt werden", + "Deletion cancelled" : "Löschen abgebrochen", "Delete permanently" : "Endgültig löschen", "Delete and unshare" : "Löschen und nicht mehr teilen", "Leave these shares" : "Diese Freigaben verlassen", "Disconnect storages" : "Speicher trennen", "Delete files" : "Dateien löschen", "Delete folders" : "Ordner löschen", - "You are about to delete {count} items." : "Du bist dabei, {count} Elemente zu löschen.", + "_You are about to permanently delete {count} item_::_You are about to permanently delete {count} items_" : ["Sie sind dabei, {count} Element endgültig zu löschen","Sie sind dabei, {count} Elemente endgültig zu löschen"], + "_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Sie sind dabei, {count} Element zu löschen","Sie sind dabei, {count} Elemente zu löschen"], "Confirm deletion" : "Löschen bestätigen", "Cancel" : "Abbrechen", - "Deletion cancelled" : "Löschen abgebrochen", "Destination is not a folder" : "Ziel ist kein Ordner", "This file/folder is already in that directory" : "Diese Datei oder Ordner ist bereits in diesem Verzeichnis vorhanden", "You cannot move a file/folder onto itself or into a subfolder of itself" : "Eine Datei oder ein Ordner kann nicht auf sich selbst oder in einen Unterordner von sich selbst verschoben werden.", @@ -294,9 +307,15 @@ OC.L10N.register( "Today" : "Heute", "Last 7 days" : "Die letzten 7 Tage", "Last 30 days" : "Die letzten 30 Tage", + "This year ({year})" : "Dieses Jahr ({year})", + "Last year ({year})" : "Letztes Jahr ({year})", "Documents" : "Dokumente", + "Spreadsheets" : "Tabellenkalkulationen", + "Presentations" : "Präsentationen", + "PDFs" : "PDFs", "Folders" : "Ordner", "Audio" : "Audio", + "Pictures and images" : "Bilder und Abbildungen", "Videos" : "Videos", "Created new folder \"{name}\"" : "Neuer Ordner \"{name}\" wurde erstellt", "Unable to initialize the templates directory" : "Der Vorlagenordner konnte nicht initialisiert werden", @@ -323,6 +342,11 @@ OC.L10N.register( "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 Datei und {folderCount} Ordner","1 Datei und {folderCount} Ordner"], "_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} Datei und 1 Ordner","{fileCount} Dateien und 1 Ordner"], "{fileCount} files and {folderCount} folders" : "{fileCount} Dateien und {folderCount} Ordner", + "Filename must not be empty." : "Dateiname darf nicht leer sein.", + "\"{char}\" is not allowed inside a filename." : "\"{char}“ ist innerhalb eines Dateinamens nicht zulässig.", + "\"{segment}\" is a reserved name and not allowed for filenames." : "\"{segment}\" ist ein reservierter Name und für Dateinamen nicht zulässig.", + "\"{extension}\" is not an allowed filetype." : "\"{extension}\" ist kein zulässiger Dateityp.", + "Filenames must not end with \"{extension}\"." : "Dateinamen dürfen nicht mit \"{extension}\" enden.", "List of favorites files and folders." : "Liste der favorisierten Ordner und Dateien", "No favorites yet" : "Noch keine Favoriten vorhanden", "Files and folders you mark as favorite will show up here" : "Dateien und Ordner, die als Favoriten markiert werden, erscheinen hier", diff --git a/apps/files/l10n/de.json b/apps/files/l10n/de.json index 8cb2f25e859..499d2fb15ae 100644 --- a/apps/files/l10n/de.json +++ b/apps/files/l10n/de.json @@ -155,6 +155,10 @@ "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>", "Upload (max. %s)" : "Hochladen (max. %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.", + "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.", "Accept" : "Akzeptieren", "Reject" : "Ablehnen", "Incoming ownership transfer from {user}" : "Eingehende Besitzübertragung von {user}", @@ -185,6 +189,8 @@ "Folder name" : "Ordnername", "This node is unavailable" : "Dieser Knoten ist nicht verfügbar.", "Download file {name}" : "Datei {name} herunterladen", + "Another entry with the same name already exists." : "Ein anderer Eintrag mit diesem Namen existiert bereits.", + "Invalid filename." : "Ungültiger Dateiname.", "Renamed \"{oldName}\" to \"{newName}\"" : "\"{oldName}\" in \"{newName}\" umbenannt", "Could not rename \"{oldName}\", it does not exist any more" : "\"{oldName}\" konnte nicht umbenannt werden, da es nicht mehr existiert.", "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Der Name \"{newName}“ wird bereits im Ordner \"{dir}“ verwendet. Bitte wähle einen anderen Namen.", @@ -202,11 +208,16 @@ "Column headers with buttons are sortable." : "Spaltenüberschriften mit Schaltflächen sind sortierbar.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Diese Liste wird aus Performance-Gründen nicht vollständig angezeigt. Die Dateien werden angezeigt, wenn du durch die Liste navigierst.", "File not found" : "Datei nicht gefunden", + "Storage information" : "Speicherinformation", + "Storage quota" : "Speicherkontingent", "{usedQuotaByte} used" : "{usedQuotaByte} verwendet", "{relative}% used" : "{relative}% verwendet", "Could not refresh storage stats" : "Die Speicherstatistik konnte nicht aktualisiert werden", "Your storage is full, files can not be updated or synced anymore!" : "Dein Speicher ist voll, daher können keine Dateien mehr aktualisiert oder synchronisiert werden!", "Create" : "Erstellen", + "This name is already in use." : "Dieser Name wird bereits verwendet.", + "Fill template fields" : "Vorlagenfelder ausfüllen", + "Submitting fields…" : "Felder werden übermittelt…", "Submit" : "Übermitteln", "Transfer ownership of a file or folder" : "Besitz einer Datei oder eines Ordners übertragen", "Choose file or folder to transfer" : "Datei oder Ordner zur Übertragung auswählen", @@ -236,6 +247,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", + "Filter filenames…" : "Dateinamen filtern…", "Views" : "Ansichten", "Files settings" : "Dateien-Einstellungen", "File cannot be accessed" : "Auf die Datei kann nicht zugegriffen werden", @@ -262,16 +274,17 @@ "Creating file" : "Datei erstellen", "Blank" : "Leer", "Unable to create new file from template" : "Neue Datei konnte nicht aus Vorlage erstellt werden", + "Deletion cancelled" : "Löschen abgebrochen", "Delete permanently" : "Endgültig löschen", "Delete and unshare" : "Löschen und nicht mehr teilen", "Leave these shares" : "Diese Freigaben verlassen", "Disconnect storages" : "Speicher trennen", "Delete files" : "Dateien löschen", "Delete folders" : "Ordner löschen", - "You are about to delete {count} items." : "Du bist dabei, {count} Elemente zu löschen.", + "_You are about to permanently delete {count} item_::_You are about to permanently delete {count} items_" : ["Sie sind dabei, {count} Element endgültig zu löschen","Sie sind dabei, {count} Elemente endgültig zu löschen"], + "_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Sie sind dabei, {count} Element zu löschen","Sie sind dabei, {count} Elemente zu löschen"], "Confirm deletion" : "Löschen bestätigen", "Cancel" : "Abbrechen", - "Deletion cancelled" : "Löschen abgebrochen", "Destination is not a folder" : "Ziel ist kein Ordner", "This file/folder is already in that directory" : "Diese Datei oder Ordner ist bereits in diesem Verzeichnis vorhanden", "You cannot move a file/folder onto itself or into a subfolder of itself" : "Eine Datei oder ein Ordner kann nicht auf sich selbst oder in einen Unterordner von sich selbst verschoben werden.", @@ -292,9 +305,15 @@ "Today" : "Heute", "Last 7 days" : "Die letzten 7 Tage", "Last 30 days" : "Die letzten 30 Tage", + "This year ({year})" : "Dieses Jahr ({year})", + "Last year ({year})" : "Letztes Jahr ({year})", "Documents" : "Dokumente", + "Spreadsheets" : "Tabellenkalkulationen", + "Presentations" : "Präsentationen", + "PDFs" : "PDFs", "Folders" : "Ordner", "Audio" : "Audio", + "Pictures and images" : "Bilder und Abbildungen", "Videos" : "Videos", "Created new folder \"{name}\"" : "Neuer Ordner \"{name}\" wurde erstellt", "Unable to initialize the templates directory" : "Der Vorlagenordner konnte nicht initialisiert werden", @@ -321,6 +340,11 @@ "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 Datei und {folderCount} Ordner","1 Datei und {folderCount} Ordner"], "_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} Datei und 1 Ordner","{fileCount} Dateien und 1 Ordner"], "{fileCount} files and {folderCount} folders" : "{fileCount} Dateien und {folderCount} Ordner", + "Filename must not be empty." : "Dateiname darf nicht leer sein.", + "\"{char}\" is not allowed inside a filename." : "\"{char}“ ist innerhalb eines Dateinamens nicht zulässig.", + "\"{segment}\" is a reserved name and not allowed for filenames." : "\"{segment}\" ist ein reservierter Name und für Dateinamen nicht zulässig.", + "\"{extension}\" is not an allowed filetype." : "\"{extension}\" ist kein zulässiger Dateityp.", + "Filenames must not end with \"{extension}\"." : "Dateinamen dürfen nicht mit \"{extension}\" enden.", "List of favorites files and folders." : "Liste der favorisierten Ordner und Dateien", "No favorites yet" : "Noch keine Favoriten vorhanden", "Files and folders you mark as favorite will show up here" : "Dateien und Ordner, die als Favoriten markiert werden, erscheinen hier", diff --git a/apps/files/l10n/de_DE.js b/apps/files/l10n/de_DE.js index 664831f8560..e1a4a6891bc 100644 --- a/apps/files/l10n/de_DE.js +++ b/apps/files/l10n/de_DE.js @@ -191,6 +191,8 @@ OC.L10N.register( "Folder name" : "Ordnername", "This node is unavailable" : "Dieser Knoten ist nicht verfügbar", "Download file {name}" : "Datei {name} herunterladen", + "Another entry with the same name already exists." : "Ein anderer Eintrag mit diesem Namen existiert bereits.", + "Invalid filename." : "Ungültiger Dateiname.", "Renamed \"{oldName}\" to \"{newName}\"" : "\"{oldName}\" in \"{newName}\" umbenannt", "Could not rename \"{oldName}\", it does not exist any more" : "\"{oldName}\" konnte nicht umbenannt werden, da es nicht mehr existiert", "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Der Name \"{newName}“ wird bereits im Ordner \"{dir}“ verwendet. Bitte wählen Sie einen anderen Namen.", @@ -208,11 +210,16 @@ OC.L10N.register( "Column headers with buttons are sortable." : "Spaltenüberschriften mit Schaltflächen sind sortierbar.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Diese Liste ist aus Performance-Gründen nicht vollständig gerendert. Die Dateien werden gerendert, wenn Sie durch die Liste navigieren.", "File not found" : "Datei nicht gefunden", + "Storage information" : "Speicherinformation", + "Storage quota" : "Speicherkontingent", "{usedQuotaByte} used" : "{usedQuotaByte} verwendet", "{relative}% used" : "{relative}% verwendet", "Could not refresh storage stats" : "Die Speicherstatistik konnte nicht aktualisiert werden", "Your storage is full, files can not be updated or synced anymore!" : "Ihr Speicher ist voll, daher können keine Dateien mehr aktualisiert oder synchronisiert werden!", "Create" : "Erstellen", + "This name is already in use." : "Dieser Name wird bereits verwendet.", + "Fill template fields" : "Vorlagenfelder ausfüllen", + "Submitting fields…" : "Felder werden übermittelt…", "Submit" : "Übermitteln", "Transfer ownership of a file or folder" : "Besitz einer Datei oder eines Ordners übertragen", "Choose file or folder to transfer" : "Datei oder Ordner zur Übertragung auswählen", @@ -242,6 +249,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", + "Filter filenames…" : "Dateinamen filtern…", "Views" : "Ansichten", "Files settings" : "Dateien-Einstellungen", "File cannot be accessed" : "Auf die Datei kann nicht zugegriffen werden", @@ -268,16 +276,17 @@ OC.L10N.register( "Creating file" : "Datei erstellen", "Blank" : "Leer", "Unable to create new file from template" : "Neue Datei kann nicht aus Vorlage erstellt werden", + "Deletion cancelled" : "Löschen abgebrochen", "Delete permanently" : "Endgültig löschen", "Delete and unshare" : "Löschen und nicht mehr teilen", "Leave these shares" : "Diese Freigaben verlassen", "Disconnect storages" : "Speicher trennen", "Delete files" : "Dateien löschen", "Delete folders" : "Ordner löschen", - "You are about to delete {count} items." : "Sie sind dabei, {count} Elemente zu löschen.", + "_You are about to permanently delete {count} item_::_You are about to permanently delete {count} items_" : ["Sie sind dabei, {count} Element endgültig zu löschen","Sie sind dabei, {count} Elemente endgültig zu löschen"], + "_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Sie sind dabei, {count} Element zu löschen","Sie sind dabei, {count} Elemente zu löschen"], "Confirm deletion" : "Löschen bestätigen", "Cancel" : "Abbrechen", - "Deletion cancelled" : "Löschen abgebrochen", "Destination is not a folder" : "Ziel ist kein Ordner", "This file/folder is already in that directory" : "Diese Datei oder Ordner ist bereits in diesem Verzeichnis vorhanden", "You cannot move a file/folder onto itself or into a subfolder of itself" : "Eine Datei oder ein Ordner kann nicht auf sich selbst oder in einen Unterordner von sich selbst verschoben werden", @@ -298,9 +307,15 @@ OC.L10N.register( "Today" : "Heute", "Last 7 days" : "Die letzten 7 Tage", "Last 30 days" : "Die letzten 30 Tage", + "This year ({year})" : "Dieses Jahr ({year})", + "Last year ({year})" : "Letztes Jahr ({year})", "Documents" : "Dokumente", + "Spreadsheets" : "Tabellenkalkulationen", + "Presentations" : "Präsentationen", + "PDFs" : "PDFs", "Folders" : "Ordner", "Audio" : "Audio", + "Pictures and images" : "Bilder und Abbildungen", "Videos" : "Videos", "Created new folder \"{name}\"" : "Neuer Ordner \"{name}\" wurde erstellt", "Unable to initialize the templates directory" : "Der Vorlagenordner kann nicht initialisiert werden", @@ -327,6 +342,11 @@ OC.L10N.register( "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 Datei und {folderCount} Ordner","1 Datei und {folderCount} Ordner"], "_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} Datei und 1 Ordner","{fileCount} Dateien und 1 Ordner"], "{fileCount} files and {folderCount} folders" : "{fileCount} Dateien und {folderCount} Ordner", + "Filename must not be empty." : "Dateiname darf nicht leer sein.", + "\"{char}\" is not allowed inside a filename." : "\"{char}“ ist innerhalb eines Dateinamens nicht zulässig.", + "\"{segment}\" is a reserved name and not allowed for filenames." : "\"{segment}\" ist ein reservierter Name und für Dateinamen nicht zulässig.", + "\"{extension}\" is not an allowed filetype." : "\"{extension}\" ist kein zulässiger Dateityp.", + "Filenames must not end with \"{extension}\"." : "Dateinamen dürfen nicht mit \"{extension}\" enden.", "List of favorites files and folders." : "Liste der favorisierten Ordner und Dateien.", "No favorites yet" : "Noch keine Favoriten vorhanden", "Files and folders you mark as favorite will show up here" : "Dateien und Ordner, die Sie als Favoriten kennzeichnen, werden hier erscheinen", diff --git a/apps/files/l10n/de_DE.json b/apps/files/l10n/de_DE.json index 36439cd6fc2..89b0f363460 100644 --- a/apps/files/l10n/de_DE.json +++ b/apps/files/l10n/de_DE.json @@ -189,6 +189,8 @@ "Folder name" : "Ordnername", "This node is unavailable" : "Dieser Knoten ist nicht verfügbar", "Download file {name}" : "Datei {name} herunterladen", + "Another entry with the same name already exists." : "Ein anderer Eintrag mit diesem Namen existiert bereits.", + "Invalid filename." : "Ungültiger Dateiname.", "Renamed \"{oldName}\" to \"{newName}\"" : "\"{oldName}\" in \"{newName}\" umbenannt", "Could not rename \"{oldName}\", it does not exist any more" : "\"{oldName}\" konnte nicht umbenannt werden, da es nicht mehr existiert", "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Der Name \"{newName}“ wird bereits im Ordner \"{dir}“ verwendet. Bitte wählen Sie einen anderen Namen.", @@ -206,11 +208,16 @@ "Column headers with buttons are sortable." : "Spaltenüberschriften mit Schaltflächen sind sortierbar.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Diese Liste ist aus Performance-Gründen nicht vollständig gerendert. Die Dateien werden gerendert, wenn Sie durch die Liste navigieren.", "File not found" : "Datei nicht gefunden", + "Storage information" : "Speicherinformation", + "Storage quota" : "Speicherkontingent", "{usedQuotaByte} used" : "{usedQuotaByte} verwendet", "{relative}% used" : "{relative}% verwendet", "Could not refresh storage stats" : "Die Speicherstatistik konnte nicht aktualisiert werden", "Your storage is full, files can not be updated or synced anymore!" : "Ihr Speicher ist voll, daher können keine Dateien mehr aktualisiert oder synchronisiert werden!", "Create" : "Erstellen", + "This name is already in use." : "Dieser Name wird bereits verwendet.", + "Fill template fields" : "Vorlagenfelder ausfüllen", + "Submitting fields…" : "Felder werden übermittelt…", "Submit" : "Übermitteln", "Transfer ownership of a file or folder" : "Besitz einer Datei oder eines Ordners übertragen", "Choose file or folder to transfer" : "Datei oder Ordner zur Übertragung auswählen", @@ -240,6 +247,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", + "Filter filenames…" : "Dateinamen filtern…", "Views" : "Ansichten", "Files settings" : "Dateien-Einstellungen", "File cannot be accessed" : "Auf die Datei kann nicht zugegriffen werden", @@ -266,16 +274,17 @@ "Creating file" : "Datei erstellen", "Blank" : "Leer", "Unable to create new file from template" : "Neue Datei kann nicht aus Vorlage erstellt werden", + "Deletion cancelled" : "Löschen abgebrochen", "Delete permanently" : "Endgültig löschen", "Delete and unshare" : "Löschen und nicht mehr teilen", "Leave these shares" : "Diese Freigaben verlassen", "Disconnect storages" : "Speicher trennen", "Delete files" : "Dateien löschen", "Delete folders" : "Ordner löschen", - "You are about to delete {count} items." : "Sie sind dabei, {count} Elemente zu löschen.", + "_You are about to permanently delete {count} item_::_You are about to permanently delete {count} items_" : ["Sie sind dabei, {count} Element endgültig zu löschen","Sie sind dabei, {count} Elemente endgültig zu löschen"], + "_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Sie sind dabei, {count} Element zu löschen","Sie sind dabei, {count} Elemente zu löschen"], "Confirm deletion" : "Löschen bestätigen", "Cancel" : "Abbrechen", - "Deletion cancelled" : "Löschen abgebrochen", "Destination is not a folder" : "Ziel ist kein Ordner", "This file/folder is already in that directory" : "Diese Datei oder Ordner ist bereits in diesem Verzeichnis vorhanden", "You cannot move a file/folder onto itself or into a subfolder of itself" : "Eine Datei oder ein Ordner kann nicht auf sich selbst oder in einen Unterordner von sich selbst verschoben werden", @@ -296,9 +305,15 @@ "Today" : "Heute", "Last 7 days" : "Die letzten 7 Tage", "Last 30 days" : "Die letzten 30 Tage", + "This year ({year})" : "Dieses Jahr ({year})", + "Last year ({year})" : "Letztes Jahr ({year})", "Documents" : "Dokumente", + "Spreadsheets" : "Tabellenkalkulationen", + "Presentations" : "Präsentationen", + "PDFs" : "PDFs", "Folders" : "Ordner", "Audio" : "Audio", + "Pictures and images" : "Bilder und Abbildungen", "Videos" : "Videos", "Created new folder \"{name}\"" : "Neuer Ordner \"{name}\" wurde erstellt", "Unable to initialize the templates directory" : "Der Vorlagenordner kann nicht initialisiert werden", @@ -325,6 +340,11 @@ "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 Datei und {folderCount} Ordner","1 Datei und {folderCount} Ordner"], "_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} Datei und 1 Ordner","{fileCount} Dateien und 1 Ordner"], "{fileCount} files and {folderCount} folders" : "{fileCount} Dateien und {folderCount} Ordner", + "Filename must not be empty." : "Dateiname darf nicht leer sein.", + "\"{char}\" is not allowed inside a filename." : "\"{char}“ ist innerhalb eines Dateinamens nicht zulässig.", + "\"{segment}\" is a reserved name and not allowed for filenames." : "\"{segment}\" ist ein reservierter Name und für Dateinamen nicht zulässig.", + "\"{extension}\" is not an allowed filetype." : "\"{extension}\" ist kein zulässiger Dateityp.", + "Filenames must not end with \"{extension}\"." : "Dateinamen dürfen nicht mit \"{extension}\" enden.", "List of favorites files and folders." : "Liste der favorisierten Ordner und Dateien.", "No favorites yet" : "Noch keine Favoriten vorhanden", "Files and folders you mark as favorite will show up here" : "Dateien und Ordner, die Sie als Favoriten kennzeichnen, werden hier erscheinen", diff --git a/apps/files/l10n/el.js b/apps/files/l10n/el.js index a96ec99c051..bc31354a3bb 100644 --- a/apps/files/l10n/el.js +++ b/apps/files/l10n/el.js @@ -156,10 +156,14 @@ OC.L10N.register( "A file or folder has been <strong>changed</strong>" : "Ένα αρχείο ή κατάλογος έχουν <strong>αλλάξει</strong>", "A favorite file or folder has been <strong>changed</strong>" : "Ένα αγαπημένο αρχείο ή φάκελός σας έχει <strong>τροποποιηθεί</strong>.", "Upload (max. %s)" : "Μεταφόρτωση (max. %s)", + "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, όπως η χρήση δεσμευμένων ονομάτων ή ειδικών χαρακτήρων. Αλλά αυτό δεν θα επιβάλει τη συμμόρφωση ως προς την διάκριση πεζών-κεφαλαίων.", "Accept" : "Αποδοχή", "Reject" : "Απόρριψη", "Incoming ownership transfer from {user}" : "Εισερχόμενη μεταβίβαση κυριότητας από τον {user}", "Do you want to accept {path}?\n\nNote: The transfer process after accepting may take up to 1 hour." : "Δέχεστε την διαδρομή {path}?\n\nΣημείωση: Η διαδικασία μεταφοράς μπορεί να διαρκέσει πάνω από μία ώρα.", + "Ownership transfer denied" : "Η μεταφορά κυριότητας απορρίφθηκε", + "Your ownership transfer of {path} was denied by {user}." : "Η μεταφορά της κυριότητας του {path} απορρίφθηκε από τον χρήστη {user}.", "Ownership transfer failed" : "Η μεταφορά κυριότητας απέτυχε", "Your ownership transfer of {path} to {user} failed." : "Η μεταφορά κυριότητας σας του {path} στον {user} απέτυχε.", "The ownership transfer of {path} from {user} failed." : "Η μεταφορά κυριότητας του {path} από {user} απέτυχε.", @@ -167,6 +171,7 @@ OC.L10N.register( "Your ownership transfer of {path} to {user} has completed." : "Η μεταφορά κυριότητας σας του {path} στον {user} ολοκληρώθηκε.", "The ownership transfer of {path} from {user} has completed." : "Η μεταφορά κυριότητας του {path} στον {user} ολοκληρώθηκε.", "in %s" : "σε %s", + "Transferred from %1$s on %2$s" : "Μεταβιβάστηκε από %1$s σε %2$s", "File Management" : "Διαχείριση αρχείων", "Current directory path" : "Τρέχουσα διαδρομή καταλόγου", "Reload current directory" : "Επαναφόρτωση τρέχοντος καταλόγου", @@ -176,11 +181,15 @@ OC.L10N.register( "You don’t have permission to upload or create files here" : "Δεν έχετε δικαιώματα μεταφόρτωσης ή δημιουργίας αρχείων εδώ", "\"{displayName}\" action executed successfully" : "Η ενέργεια του/της \"{displayName}\" εκτελέστηκε επιτυχώς", "\"{displayName}\" action failed" : "Η ενέργεια του \"{displayName}\" απέτυχε", + "Toggle selection for file \"{displayName}\"" : "Εναλλαγή επιλογής για το αρχείο \"{displayName}\"", + "Toggle selection for folder \"{displayName}\"" : "Εναλλαγή επιλογής για τον φάκελο \"{displayName}\"", "Rename file" : "Μετονομασία αρχείου", "Filename" : "Όνομα αρχείου", "Folder name" : "Όνομα φακέλου", "This node is unavailable" : "Αυτός ο κόμβος δεν είναι διαθέσιμος", "Download file {name}" : "Λήψη αρχείου {name}", + "Another entry with the same name already exists." : "Μια άλλη καταχώρηση με το ίδιο όνομα υπάρχει ήδη.", + "Invalid filename." : "Μη έγκυρο όνομα αρχείου", "Renamed \"{oldName}\" to \"{newName}\"" : "Μετονομασία του \"{oldName}\" σε \"{newName}\"", "Could not rename \"{oldName}\", it does not exist any more" : "Δεν ήταν δυνατή η μετονομασία του \"{oldName}\", δεν υπάρχει πλέον", "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Το όνομα \"{newName}\" χρησιμοποιείται ήδη στον φάκελο \"{dir}\". Παρακαλώ επιλέξτε ένα διαφορετικό όνομα.", @@ -188,19 +197,23 @@ OC.L10N.register( "Clear filter" : "Εκκαθάριση φίλτρου", "Type" : "Τύπος", "Active filters" : "Ενεργά φίλτρα", + "Remove filter" : "Αφαίρεση φίλτρου", "Total rows summary" : "Συνολική σύνοψη γραμμών", "Toggle selection for all files and folders" : "Εναλλαγή επιλογής για όλα τα αρχεία και τους φακέλους", "\"{displayName}\" failed on some elements " : "\"{displayName}\" απέτυχε σε ορισμένα στοιχεία", "\"{displayName}\" batch action executed successfully" : "Η μαζική ενέργεια του/της \"{displayName}\" εκτελέστηκε επιτυχώς", + "{count} selected" : "{count} έχουν επιλεγεί", "List of files and folders." : "Λίστα αρχείων και φακέλων.", "Column headers with buttons are sortable." : "Οι επικεφαλίδες στηλών με κουμπιά είναι ταξινομήσιμες.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Η λίστα αυτή δεν εμφανίζεται πλήρως για λόγους απόδοσης. Τα αρχεία θα εμφανίζονται καθώς πλοηγείστε στη λίστα.", "File not found" : "Δε βρέθηκε το αρχείο", + "Storage information" : "Πληροφορίες αποθήκευσης", "{usedQuotaByte} used" : "{usedQuotaByte} χρησιμοποιείται", "{relative}% used" : "{relative}% χρησιμοποιείται", "Could not refresh storage stats" : "Δεν ήταν δυνατή η ανανέωση των στατιστικών αποθήκευσης", "Your storage is full, files can not be updated or synced anymore!" : "Ο αποθηκευτικός σας χώρος είναι γεμάτος, τα αρχεία δεν μπορούν να ενημερωθούν ή να συγχρονιστούν πια!", "Create" : "Δημιουργία", + "This name is already in use." : "Αυτό το όνομα χρησιμοποιείται ήδη.", "Submit" : "Υποβολή", "Transfer ownership of a file or folder" : "Μεταβίβαση κυριότητας αρχείου ή φακέλου", "Choose file or folder to transfer" : "Επιλέξτε αρχείο ή φάκελο για μεταφορά", @@ -226,9 +239,11 @@ OC.L10N.register( "Shared" : "Κοινόχρηστα", "Switch to list view" : "Αλλαγή σε προβολή λίστας", "Switch to grid view" : "Εναλλαγή σε προβολή πλέγματος", + "Upload was cancelled by user" : "Η μεταφόρτωση ακυρώθηκε από τον χρήστη", "Error during upload: {message}" : "Σφάλμα κατά τη μεταφόρτωση: {message}", "Error during upload, status code {status}" : "Σφάλμα κατά τη μεταφόρτωση, κωδικός κατάστασης {status}", "Unknown error during upload" : "Άγνωστο σφάλμα κατά τη μεταφόρτωση", + "Filter filenames…" : "Φιλτράρετε τα ονόματα αρχείων...", "Views" : "Προβολές", "Files settings" : "Ρυθμίσεις αρχείων", "File cannot be accessed" : "Δεν είναι δυνατή η πρόσβαση στο αρχείο", @@ -254,6 +269,7 @@ OC.L10N.register( "Creating file" : "Δημιουργία αρχείου", "Blank" : "Κενό", "Unable to create new file from template" : "Δεν είναι δυνατή η δημιουργία νέου αρχείου από το πρότυπο", + "Deletion cancelled" : "Διαγραφή ακυρώθηκε", "Delete permanently" : "Διαγραφή οριστικά", "Delete and unshare" : "Διαγραφή και κατάργηση κοινής χρήσης", "Leave these shares" : "Αποχώρηση από αυτά τα κοινόχρηστα", @@ -261,7 +277,6 @@ OC.L10N.register( "Delete folders" : "Διαγραφή φακέλων", "Confirm deletion" : "Επιβεβαίωση διαγραφής", "Cancel" : "Ακύρωση", - "Deletion cancelled" : "Διαγραφή ακυρώθηκε", "Destination is not a folder" : "Ο προορισμός δεν είναι φάκελος", "This file/folder is already in that directory" : "Αυτό το αρχείο/φάκελος βρίσκεται ήδη σε αυτόν τον κατάλογο", "You cannot move a file/folder onto itself or into a subfolder of itself" : "Δεν μπορείτε να μετακινήσετε ένα αρχείο/φάκελο στον εαυτό του ή σε έναν υποφάκελο του ίδιου του φακέλου.", @@ -279,6 +294,11 @@ OC.L10N.register( "Open folder {displayName}" : "Άνοιγμα φακέλου {displayName}", "Open in Files" : "Άνοιγμα στα Αρχεία", "Open details" : "Άνοιγμα λεπτομερειών", + "Today" : "Σήμερα", + "Last 7 days" : "Τελευταίες 7 ημέρες", + "Last 30 days" : "Τελευταίες 30 ημέρες", + "This year ({year})" : "Αυτό το έτος ({year})", + "Last year ({year})" : "Το περασμένο έτος ({year})", "Documents" : "Έγγραφα", "Audio" : "Ήχος", "Videos" : "Βίντεο", @@ -291,12 +311,22 @@ OC.L10N.register( "One of the dropped files could not be processed" : "Ένα από τα αρχεία που ελήφθησαν δεν μπόρεσε να επεξεργαστεί", "Some files could not be uploaded" : "Μερικά αρχεία δεν μπόρεσαν να μεταφορτωθούν", "Files uploaded successfully" : "Τα αρχεία μεταφορτώθηκαν επιτυχώς", + "No files to process" : "Δεν υπάρχουν αρχεία προς επεξεργασία", + "Some files could not be copied" : "Ορισμένα αρχεία δεν μπόρεσαν να αντιγραφούν", "Some files could not be moved" : "Αδυναμία μετακίνησης μερικών αρχείων", + "Files copied successfully" : "Τα αρχεία αντιγράφηκαν επιτυχώς", + "Files moved successfully" : "Τα αρχεία μετακινήθηκαν επιτυχώς", + "Upload cancelled" : "Η μεταφόρτωση ακυρώθηκε", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} φάκελος","{folderCount} φακέλοι"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} αρχείο","{fileCount} αρχεία"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 αρχείο και {folderCount} φάκελος","1 αρχείο και {folderCount} φακέλοι"], "_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} αρχείο και 1 φάκελος","{fileCount} αρχεία και 1 φάκελος"], "{fileCount} files and {folderCount} folders" : "{fileCount} αρχεία και {folderCount} φακέλοι", + "Filename must not be empty." : "Το όνομα αρχείου δεν πρέπει να είναι κενό.", + "\"{char}\" is not allowed inside a filename." : "\"{char}\" δεν επιτρέπεται μέσα σε όνομα αρχείου.", + "\"{segment}\" is a reserved name and not allowed for filenames." : "\"{segment}\" είναι δεσμευμένο όνομα και δεν επιτρέπεται για ονόματα αρχείων.", + "\"{extension}\" is not an allowed filetype." : "\"{extension}\" δεν είναι επιτρεπτός τύπος αρχείου.", + "Filenames must not end with \"{extension}\"." : "Τα ονόματα αρχείων δεν πρέπει να τελειώνουν με \"{extension}\".", "List of favorites files and folders." : "Λίστα αγαπημένων αρχείων και φακέλων.", "No favorites yet" : "Κανένα αγαπημένο ακόμα", "Files and folders you mark as favorite will show up here" : "Τα αρχεία και οι φάκελοι που σημειώνονται ως αγαπημένα θα εμφανιστούν εδώ", @@ -349,6 +379,7 @@ OC.L10N.register( "Name cannot be empty" : "Το όνομα δεν μπορεί να είναι κενό", "Another entry with the same name already exists" : "Υπάρχει ήδη μια άλλη καταχώρηση με το ίδιο όνομα", "A file or folder with that name already exists." : "Υπάρχει ήδη ένα αρχείο ή φάκελος με αυτό το όνομα.", + "Invalid file name" : "Μη έγκυρο όνομα αρχείου", "The files is locked" : "Το αρχείο είναι κλειδωμένο" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/el.json b/apps/files/l10n/el.json index 64174279f87..e0f16d64c64 100644 --- a/apps/files/l10n/el.json +++ b/apps/files/l10n/el.json @@ -154,10 +154,14 @@ "A file or folder has been <strong>changed</strong>" : "Ένα αρχείο ή κατάλογος έχουν <strong>αλλάξει</strong>", "A favorite file or folder has been <strong>changed</strong>" : "Ένα αγαπημένο αρχείο ή φάκελός σας έχει <strong>τροποποιηθεί</strong>.", "Upload (max. %s)" : "Μεταφόρτωση (max. %s)", + "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, όπως η χρήση δεσμευμένων ονομάτων ή ειδικών χαρακτήρων. Αλλά αυτό δεν θα επιβάλει τη συμμόρφωση ως προς την διάκριση πεζών-κεφαλαίων.", "Accept" : "Αποδοχή", "Reject" : "Απόρριψη", "Incoming ownership transfer from {user}" : "Εισερχόμενη μεταβίβαση κυριότητας από τον {user}", "Do you want to accept {path}?\n\nNote: The transfer process after accepting may take up to 1 hour." : "Δέχεστε την διαδρομή {path}?\n\nΣημείωση: Η διαδικασία μεταφοράς μπορεί να διαρκέσει πάνω από μία ώρα.", + "Ownership transfer denied" : "Η μεταφορά κυριότητας απορρίφθηκε", + "Your ownership transfer of {path} was denied by {user}." : "Η μεταφορά της κυριότητας του {path} απορρίφθηκε από τον χρήστη {user}.", "Ownership transfer failed" : "Η μεταφορά κυριότητας απέτυχε", "Your ownership transfer of {path} to {user} failed." : "Η μεταφορά κυριότητας σας του {path} στον {user} απέτυχε.", "The ownership transfer of {path} from {user} failed." : "Η μεταφορά κυριότητας του {path} από {user} απέτυχε.", @@ -165,6 +169,7 @@ "Your ownership transfer of {path} to {user} has completed." : "Η μεταφορά κυριότητας σας του {path} στον {user} ολοκληρώθηκε.", "The ownership transfer of {path} from {user} has completed." : "Η μεταφορά κυριότητας του {path} στον {user} ολοκληρώθηκε.", "in %s" : "σε %s", + "Transferred from %1$s on %2$s" : "Μεταβιβάστηκε από %1$s σε %2$s", "File Management" : "Διαχείριση αρχείων", "Current directory path" : "Τρέχουσα διαδρομή καταλόγου", "Reload current directory" : "Επαναφόρτωση τρέχοντος καταλόγου", @@ -174,11 +179,15 @@ "You don’t have permission to upload or create files here" : "Δεν έχετε δικαιώματα μεταφόρτωσης ή δημιουργίας αρχείων εδώ", "\"{displayName}\" action executed successfully" : "Η ενέργεια του/της \"{displayName}\" εκτελέστηκε επιτυχώς", "\"{displayName}\" action failed" : "Η ενέργεια του \"{displayName}\" απέτυχε", + "Toggle selection for file \"{displayName}\"" : "Εναλλαγή επιλογής για το αρχείο \"{displayName}\"", + "Toggle selection for folder \"{displayName}\"" : "Εναλλαγή επιλογής για τον φάκελο \"{displayName}\"", "Rename file" : "Μετονομασία αρχείου", "Filename" : "Όνομα αρχείου", "Folder name" : "Όνομα φακέλου", "This node is unavailable" : "Αυτός ο κόμβος δεν είναι διαθέσιμος", "Download file {name}" : "Λήψη αρχείου {name}", + "Another entry with the same name already exists." : "Μια άλλη καταχώρηση με το ίδιο όνομα υπάρχει ήδη.", + "Invalid filename." : "Μη έγκυρο όνομα αρχείου", "Renamed \"{oldName}\" to \"{newName}\"" : "Μετονομασία του \"{oldName}\" σε \"{newName}\"", "Could not rename \"{oldName}\", it does not exist any more" : "Δεν ήταν δυνατή η μετονομασία του \"{oldName}\", δεν υπάρχει πλέον", "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Το όνομα \"{newName}\" χρησιμοποιείται ήδη στον φάκελο \"{dir}\". Παρακαλώ επιλέξτε ένα διαφορετικό όνομα.", @@ -186,19 +195,23 @@ "Clear filter" : "Εκκαθάριση φίλτρου", "Type" : "Τύπος", "Active filters" : "Ενεργά φίλτρα", + "Remove filter" : "Αφαίρεση φίλτρου", "Total rows summary" : "Συνολική σύνοψη γραμμών", "Toggle selection for all files and folders" : "Εναλλαγή επιλογής για όλα τα αρχεία και τους φακέλους", "\"{displayName}\" failed on some elements " : "\"{displayName}\" απέτυχε σε ορισμένα στοιχεία", "\"{displayName}\" batch action executed successfully" : "Η μαζική ενέργεια του/της \"{displayName}\" εκτελέστηκε επιτυχώς", + "{count} selected" : "{count} έχουν επιλεγεί", "List of files and folders." : "Λίστα αρχείων και φακέλων.", "Column headers with buttons are sortable." : "Οι επικεφαλίδες στηλών με κουμπιά είναι ταξινομήσιμες.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Η λίστα αυτή δεν εμφανίζεται πλήρως για λόγους απόδοσης. Τα αρχεία θα εμφανίζονται καθώς πλοηγείστε στη λίστα.", "File not found" : "Δε βρέθηκε το αρχείο", + "Storage information" : "Πληροφορίες αποθήκευσης", "{usedQuotaByte} used" : "{usedQuotaByte} χρησιμοποιείται", "{relative}% used" : "{relative}% χρησιμοποιείται", "Could not refresh storage stats" : "Δεν ήταν δυνατή η ανανέωση των στατιστικών αποθήκευσης", "Your storage is full, files can not be updated or synced anymore!" : "Ο αποθηκευτικός σας χώρος είναι γεμάτος, τα αρχεία δεν μπορούν να ενημερωθούν ή να συγχρονιστούν πια!", "Create" : "Δημιουργία", + "This name is already in use." : "Αυτό το όνομα χρησιμοποιείται ήδη.", "Submit" : "Υποβολή", "Transfer ownership of a file or folder" : "Μεταβίβαση κυριότητας αρχείου ή φακέλου", "Choose file or folder to transfer" : "Επιλέξτε αρχείο ή φάκελο για μεταφορά", @@ -224,9 +237,11 @@ "Shared" : "Κοινόχρηστα", "Switch to list view" : "Αλλαγή σε προβολή λίστας", "Switch to grid view" : "Εναλλαγή σε προβολή πλέγματος", + "Upload was cancelled by user" : "Η μεταφόρτωση ακυρώθηκε από τον χρήστη", "Error during upload: {message}" : "Σφάλμα κατά τη μεταφόρτωση: {message}", "Error during upload, status code {status}" : "Σφάλμα κατά τη μεταφόρτωση, κωδικός κατάστασης {status}", "Unknown error during upload" : "Άγνωστο σφάλμα κατά τη μεταφόρτωση", + "Filter filenames…" : "Φιλτράρετε τα ονόματα αρχείων...", "Views" : "Προβολές", "Files settings" : "Ρυθμίσεις αρχείων", "File cannot be accessed" : "Δεν είναι δυνατή η πρόσβαση στο αρχείο", @@ -252,6 +267,7 @@ "Creating file" : "Δημιουργία αρχείου", "Blank" : "Κενό", "Unable to create new file from template" : "Δεν είναι δυνατή η δημιουργία νέου αρχείου από το πρότυπο", + "Deletion cancelled" : "Διαγραφή ακυρώθηκε", "Delete permanently" : "Διαγραφή οριστικά", "Delete and unshare" : "Διαγραφή και κατάργηση κοινής χρήσης", "Leave these shares" : "Αποχώρηση από αυτά τα κοινόχρηστα", @@ -259,7 +275,6 @@ "Delete folders" : "Διαγραφή φακέλων", "Confirm deletion" : "Επιβεβαίωση διαγραφής", "Cancel" : "Ακύρωση", - "Deletion cancelled" : "Διαγραφή ακυρώθηκε", "Destination is not a folder" : "Ο προορισμός δεν είναι φάκελος", "This file/folder is already in that directory" : "Αυτό το αρχείο/φάκελος βρίσκεται ήδη σε αυτόν τον κατάλογο", "You cannot move a file/folder onto itself or into a subfolder of itself" : "Δεν μπορείτε να μετακινήσετε ένα αρχείο/φάκελο στον εαυτό του ή σε έναν υποφάκελο του ίδιου του φακέλου.", @@ -277,6 +292,11 @@ "Open folder {displayName}" : "Άνοιγμα φακέλου {displayName}", "Open in Files" : "Άνοιγμα στα Αρχεία", "Open details" : "Άνοιγμα λεπτομερειών", + "Today" : "Σήμερα", + "Last 7 days" : "Τελευταίες 7 ημέρες", + "Last 30 days" : "Τελευταίες 30 ημέρες", + "This year ({year})" : "Αυτό το έτος ({year})", + "Last year ({year})" : "Το περασμένο έτος ({year})", "Documents" : "Έγγραφα", "Audio" : "Ήχος", "Videos" : "Βίντεο", @@ -289,12 +309,22 @@ "One of the dropped files could not be processed" : "Ένα από τα αρχεία που ελήφθησαν δεν μπόρεσε να επεξεργαστεί", "Some files could not be uploaded" : "Μερικά αρχεία δεν μπόρεσαν να μεταφορτωθούν", "Files uploaded successfully" : "Τα αρχεία μεταφορτώθηκαν επιτυχώς", + "No files to process" : "Δεν υπάρχουν αρχεία προς επεξεργασία", + "Some files could not be copied" : "Ορισμένα αρχεία δεν μπόρεσαν να αντιγραφούν", "Some files could not be moved" : "Αδυναμία μετακίνησης μερικών αρχείων", + "Files copied successfully" : "Τα αρχεία αντιγράφηκαν επιτυχώς", + "Files moved successfully" : "Τα αρχεία μετακινήθηκαν επιτυχώς", + "Upload cancelled" : "Η μεταφόρτωση ακυρώθηκε", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} φάκελος","{folderCount} φακέλοι"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} αρχείο","{fileCount} αρχεία"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 αρχείο και {folderCount} φάκελος","1 αρχείο και {folderCount} φακέλοι"], "_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} αρχείο και 1 φάκελος","{fileCount} αρχεία και 1 φάκελος"], "{fileCount} files and {folderCount} folders" : "{fileCount} αρχεία και {folderCount} φακέλοι", + "Filename must not be empty." : "Το όνομα αρχείου δεν πρέπει να είναι κενό.", + "\"{char}\" is not allowed inside a filename." : "\"{char}\" δεν επιτρέπεται μέσα σε όνομα αρχείου.", + "\"{segment}\" is a reserved name and not allowed for filenames." : "\"{segment}\" είναι δεσμευμένο όνομα και δεν επιτρέπεται για ονόματα αρχείων.", + "\"{extension}\" is not an allowed filetype." : "\"{extension}\" δεν είναι επιτρεπτός τύπος αρχείου.", + "Filenames must not end with \"{extension}\"." : "Τα ονόματα αρχείων δεν πρέπει να τελειώνουν με \"{extension}\".", "List of favorites files and folders." : "Λίστα αγαπημένων αρχείων και φακέλων.", "No favorites yet" : "Κανένα αγαπημένο ακόμα", "Files and folders you mark as favorite will show up here" : "Τα αρχεία και οι φάκελοι που σημειώνονται ως αγαπημένα θα εμφανιστούν εδώ", @@ -347,6 +377,7 @@ "Name cannot be empty" : "Το όνομα δεν μπορεί να είναι κενό", "Another entry with the same name already exists" : "Υπάρχει ήδη μια άλλη καταχώρηση με το ίδιο όνομα", "A file or folder with that name already exists." : "Υπάρχει ήδη ένα αρχείο ή φάκελος με αυτό το όνομα.", + "Invalid file name" : "Μη έγκυρο όνομα αρχείου", "The files is locked" : "Το αρχείο είναι κλειδωμένο" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files/l10n/en_GB.js b/apps/files/l10n/en_GB.js index 7b143308e9f..1b0cb7ec7eb 100644 --- a/apps/files/l10n/en_GB.js +++ b/apps/files/l10n/en_GB.js @@ -217,6 +217,7 @@ OC.L10N.register( "Could not refresh storage stats" : "Could not refresh storage stats", "Your storage is full, files can not be updated or synced anymore!" : "Your storage is full, files can not be updated or synced anymore!", "Create" : "Create", + "This name is already in use." : "This name is already in use.", "Fill template fields" : "Fill template fields", "Submitting fields…" : "Submitting fields…", "Submit" : "Submit", @@ -275,16 +276,17 @@ OC.L10N.register( "Creating file" : "Creating file", "Blank" : "Blank", "Unable to create new file from template" : "Unable to create new file from template", + "Deletion cancelled" : "Deletion cancelled", "Delete permanently" : "Delete permanently", "Delete and unshare" : "Delete and unshare", "Leave these shares" : "Leave these shares", "Disconnect storages" : "Disconnect storages", "Delete files" : "Delete files", "Delete folders" : "Delete folders", - "You are about to delete {count} items." : "You are about to delete {count} items.", + "_You are about to permanently delete {count} item_::_You are about to permanently delete {count} items_" : ["You are about to permanently delete {count} item","You are about to permanently delete {count} items"], + "_You are about to delete {count} item_::_You are about to delete {count} items_" : ["You are about to delete {count} item","You are about to delete {count} items"], "Confirm deletion" : "Confirm deletion", "Cancel" : "Cancel", - "Deletion cancelled" : "Deletion cancelled", "Destination is not a folder" : "Destination is not a folder", "This file/folder is already in that directory" : "This file/folder is already in that directory", "You cannot move a file/folder onto itself or into a subfolder of itself" : "You cannot move a file/folder onto itself or into a subfolder of itself", diff --git a/apps/files/l10n/en_GB.json b/apps/files/l10n/en_GB.json index b855595f443..25ec308eb01 100644 --- a/apps/files/l10n/en_GB.json +++ b/apps/files/l10n/en_GB.json @@ -215,6 +215,7 @@ "Could not refresh storage stats" : "Could not refresh storage stats", "Your storage is full, files can not be updated or synced anymore!" : "Your storage is full, files can not be updated or synced anymore!", "Create" : "Create", + "This name is already in use." : "This name is already in use.", "Fill template fields" : "Fill template fields", "Submitting fields…" : "Submitting fields…", "Submit" : "Submit", @@ -273,16 +274,17 @@ "Creating file" : "Creating file", "Blank" : "Blank", "Unable to create new file from template" : "Unable to create new file from template", + "Deletion cancelled" : "Deletion cancelled", "Delete permanently" : "Delete permanently", "Delete and unshare" : "Delete and unshare", "Leave these shares" : "Leave these shares", "Disconnect storages" : "Disconnect storages", "Delete files" : "Delete files", "Delete folders" : "Delete folders", - "You are about to delete {count} items." : "You are about to delete {count} items.", + "_You are about to permanently delete {count} item_::_You are about to permanently delete {count} items_" : ["You are about to permanently delete {count} item","You are about to permanently delete {count} items"], + "_You are about to delete {count} item_::_You are about to delete {count} items_" : ["You are about to delete {count} item","You are about to delete {count} items"], "Confirm deletion" : "Confirm deletion", "Cancel" : "Cancel", - "Deletion cancelled" : "Deletion cancelled", "Destination is not a folder" : "Destination is not a folder", "This file/folder is already in that directory" : "This file/folder is already in that directory", "You cannot move a file/folder onto itself or into a subfolder of itself" : "You cannot move a file/folder onto itself or into a subfolder of itself", diff --git a/apps/files/l10n/es.js b/apps/files/l10n/es.js index ddb208dd7e3..0481a403e41 100644 --- a/apps/files/l10n/es.js +++ b/apps/files/l10n/es.js @@ -261,16 +261,15 @@ OC.L10N.register( "Creating file" : "Creando el archivo", "Blank" : "Vacío", "Unable to create new file from template" : "No se ha podido crear un nuevo archivo desde la plantilla", + "Deletion cancelled" : "Eliminación cancelada", "Delete permanently" : "Eliminar de forma permanente", "Delete and unshare" : "Eliminar y dejar de compartir", "Leave these shares" : "Abandonar estos recursos compartidos", "Disconnect storages" : "Desconectar almacenamientos", "Delete files" : "Eliminar archivos", "Delete folders" : "Eliminar carpetas", - "You are about to delete {count} items." : "Está a punto de eliminar {count} ítems.", "Confirm deletion" : "Confirmar eliminación", "Cancel" : "Cancelar", - "Deletion cancelled" : "Eliminación cancelada", "Destination is not a folder" : "El destino no es una carpeta", "This file/folder is already in that directory" : "Este archivo/carpeta ya está en ese directorio", "You cannot move a file/folder onto itself or into a subfolder of itself" : "No puede mover un archivo/carpeta a sí mismo o a una sub-carpeta de sí mismo", diff --git a/apps/files/l10n/es.json b/apps/files/l10n/es.json index feab249c420..0ae5bf1a09f 100644 --- a/apps/files/l10n/es.json +++ b/apps/files/l10n/es.json @@ -259,16 +259,15 @@ "Creating file" : "Creando el archivo", "Blank" : "Vacío", "Unable to create new file from template" : "No se ha podido crear un nuevo archivo desde la plantilla", + "Deletion cancelled" : "Eliminación cancelada", "Delete permanently" : "Eliminar de forma permanente", "Delete and unshare" : "Eliminar y dejar de compartir", "Leave these shares" : "Abandonar estos recursos compartidos", "Disconnect storages" : "Desconectar almacenamientos", "Delete files" : "Eliminar archivos", "Delete folders" : "Eliminar carpetas", - "You are about to delete {count} items." : "Está a punto de eliminar {count} ítems.", "Confirm deletion" : "Confirmar eliminación", "Cancel" : "Cancelar", - "Deletion cancelled" : "Eliminación cancelada", "Destination is not a folder" : "El destino no es una carpeta", "This file/folder is already in that directory" : "Este archivo/carpeta ya está en ese directorio", "You cannot move a file/folder onto itself or into a subfolder of itself" : "No puede mover un archivo/carpeta a sí mismo o a una sub-carpeta de sí mismo", diff --git a/apps/files/l10n/es_MX.js b/apps/files/l10n/es_MX.js index 0e30b3cfc48..b8ad5893801 100644 --- a/apps/files/l10n/es_MX.js +++ b/apps/files/l10n/es_MX.js @@ -264,16 +264,15 @@ OC.L10N.register( "Creating file" : "Creando el archivo", "Blank" : "Vacío", "Unable to create new file from template" : "No se ha podido crear un nuevo archivo desde la plantilla", + "Deletion cancelled" : "Eliminación cancelada", "Delete permanently" : "Borrar permanentemente", "Delete and unshare" : "Eliminar y dejar de compartir", "Leave these shares" : "Dejar estos recursos compartidos", "Disconnect storages" : "Desconectar almacenamientos", "Delete files" : "Eliminar archivos", "Delete folders" : "Eliminar carpetas", - "You are about to delete {count} items." : "Está a punto de eliminar {count} ítems.", "Confirm deletion" : "Confirmar eliminación", "Cancel" : "Cancelar", - "Deletion cancelled" : "Eliminación cancelada", "Destination is not a folder" : "El destino no es una carpeta", "This file/folder is already in that directory" : "Este archivo/carpeta ya está en ese directorio", "You cannot move a file/folder onto itself or into a subfolder of itself" : "No puede mover un archivo/carpeta a sí mismo o a una subcarpeta de sí mismo", diff --git a/apps/files/l10n/es_MX.json b/apps/files/l10n/es_MX.json index aaa61a0c792..8d8adec1c4f 100644 --- a/apps/files/l10n/es_MX.json +++ b/apps/files/l10n/es_MX.json @@ -262,16 +262,15 @@ "Creating file" : "Creando el archivo", "Blank" : "Vacío", "Unable to create new file from template" : "No se ha podido crear un nuevo archivo desde la plantilla", + "Deletion cancelled" : "Eliminación cancelada", "Delete permanently" : "Borrar permanentemente", "Delete and unshare" : "Eliminar y dejar de compartir", "Leave these shares" : "Dejar estos recursos compartidos", "Disconnect storages" : "Desconectar almacenamientos", "Delete files" : "Eliminar archivos", "Delete folders" : "Eliminar carpetas", - "You are about to delete {count} items." : "Está a punto de eliminar {count} ítems.", "Confirm deletion" : "Confirmar eliminación", "Cancel" : "Cancelar", - "Deletion cancelled" : "Eliminación cancelada", "Destination is not a folder" : "El destino no es una carpeta", "This file/folder is already in that directory" : "Este archivo/carpeta ya está en ese directorio", "You cannot move a file/folder onto itself or into a subfolder of itself" : "No puede mover un archivo/carpeta a sí mismo o a una subcarpeta de sí mismo", diff --git a/apps/files/l10n/eu.js b/apps/files/l10n/eu.js index 6dbd4c50fd1..ba4c4789db7 100644 --- a/apps/files/l10n/eu.js +++ b/apps/files/l10n/eu.js @@ -264,16 +264,15 @@ OC.L10N.register( "Creating file" : "Fitxategia sortzen", "Blank" : "Hutsik", "Unable to create new file from template" : "Ezin da fitxategi berria sortu txantiloitik", + "Deletion cancelled" : "Ezabatzea bertan behera utzi da", "Delete permanently" : "Ezabatu betirako", "Delete and unshare" : "Ezabatu eta kendu partekatzea", "Leave these shares" : "Utzi partekatze hauek", "Disconnect storages" : "Deskonektatu biltegiak", "Delete files" : "Ezabatu fitxategiak", "Delete folders" : "Ezabatu karpetak", - "You are about to delete {count} items." : "{count} elementu ezabatzera zoaz.", "Confirm deletion" : "Berretsi ezabaketa", "Cancel" : "Utzi", - "Deletion cancelled" : "Ezabatzea bertan behera utzi da", "Destination is not a folder" : "Helburua ez da karpeta bat", "This file/folder is already in that directory" : "Fitxategi/karpeta hau dagoeneko karpeta horretan dago", "You cannot move a file/folder onto itself or into a subfolder of itself" : "Ezin duzu fitxategi/karpeta bat berera edo bere azpikarpeta batera mugitu", diff --git a/apps/files/l10n/eu.json b/apps/files/l10n/eu.json index be5865e33aa..41105c076f8 100644 --- a/apps/files/l10n/eu.json +++ b/apps/files/l10n/eu.json @@ -262,16 +262,15 @@ "Creating file" : "Fitxategia sortzen", "Blank" : "Hutsik", "Unable to create new file from template" : "Ezin da fitxategi berria sortu txantiloitik", + "Deletion cancelled" : "Ezabatzea bertan behera utzi da", "Delete permanently" : "Ezabatu betirako", "Delete and unshare" : "Ezabatu eta kendu partekatzea", "Leave these shares" : "Utzi partekatze hauek", "Disconnect storages" : "Deskonektatu biltegiak", "Delete files" : "Ezabatu fitxategiak", "Delete folders" : "Ezabatu karpetak", - "You are about to delete {count} items." : "{count} elementu ezabatzera zoaz.", "Confirm deletion" : "Berretsi ezabaketa", "Cancel" : "Utzi", - "Deletion cancelled" : "Ezabatzea bertan behera utzi da", "Destination is not a folder" : "Helburua ez da karpeta bat", "This file/folder is already in that directory" : "Fitxategi/karpeta hau dagoeneko karpeta horretan dago", "You cannot move a file/folder onto itself or into a subfolder of itself" : "Ezin duzu fitxategi/karpeta bat berera edo bere azpikarpeta batera mugitu", diff --git a/apps/files/l10n/fi.js b/apps/files/l10n/fi.js index 7444137df28..1d00cf71e03 100644 --- a/apps/files/l10n/fi.js +++ b/apps/files/l10n/fi.js @@ -180,12 +180,16 @@ OC.L10N.register( "Filename" : "Tiedostonimi", "Folder name" : "Kansion nimi", "Download file {name}" : "Lataa tiedosto {name}", + "Invalid filename." : "Epäkelpo tiedostonimi.", "Renamed \"{oldName}\" to \"{newName}\"" : "Kohteen \"{oldName}\" uudeksi nimeksi asetettiin \"{newName}\"", "Could not rename \"{oldName}\", it does not exist any more" : "Kohdetta \"{oldName}\" ei voitu nimetä uudelleen, koska sitä ei ole enää olemassa", "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Nimi \"{newName}\" on jo käytössä kansiossa \"{dir}\". Valitse toinen nimi.", "Could not rename \"{oldName}\"" : "Ei voitu nimetä uudelleen \"{oldName}\"", "Clear filter" : "Tyhjennä suodatin", "Type" : "Tyyppi", + "Active filters" : "Aktiiviset suodattimet", + "Remove filter" : "Poista suodatin", + "\"{displayName}\" batch action executed successfully" : "\"{displayName}\" massatoiminto suoritettu", "{count} selected" : "{count} valittu", "List of files and folders." : "Luettelo tiedostoista ja kansioista.", "Column headers with buttons are sortable." : "Painikkeilla varustetut sarakeotsikot ovat järjestettävissä.", @@ -196,6 +200,7 @@ OC.L10N.register( "Could not refresh storage stats" : "Tallennustilan tilastoja ei voitu päivittää", "Your storage is full, files can not be updated or synced anymore!" : "Tallennustila on loppu, tiedostoja ei voi enää päivittää tai synkronoida!", "Create" : "Luo", + "This name is already in use." : "Tämä nimi on jo käytössä.", "Submit" : "Lähetä", "Transfer ownership of a file or folder" : "Siirrä tiedoston tai kansion omistajuus", "Choose file or folder to transfer" : "Valitse siirrettävä tiedosto tai kansio", @@ -221,9 +226,11 @@ OC.L10N.register( "Shared" : "Jaettu", "Switch to list view" : "Vaihda taulukkonäkymään", "Switch to grid view" : "Vaihda ruudukkonäkymään", + "Upload was cancelled by user" : "Käyttäjä peruutti latauksen", "Error during upload: {message}" : "Virhe lähettäessä: {message}", "Error during upload, status code {status}" : "Virhe lähettäessä, tilakoodi {status}", "Unknown error during upload" : "Tuntematon virhe lähettämisen aikana", + "Filter filenames…" : "Suodata tiedostonimiä...", "Views" : "Näkymät", "Files settings" : "Tiedostojen asetukset", "File cannot be accessed" : "Tiedostoa ei voi käyttää", @@ -250,14 +257,14 @@ OC.L10N.register( "Creating file" : "Luodaan tiedostoa", "Blank" : "Tyhjä", "Unable to create new file from template" : "Uutta tiedostoa mallipohjasta ei voi luoda", + "Deletion cancelled" : "Poistaminen peruttu", "Delete permanently" : "Poista pysyvästi", "Delete and unshare" : "Poista ja lopeta jakaminen", "Delete files" : "Poista tiedostot", "Delete folders" : "Poista kansio", - "You are about to delete {count} items." : "Olet aikeissa poistaa {count} kohdetta.", + "_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Olet poistamassa {count} kohteen","Olet poistamassa {count} kohdetta"], "Confirm deletion" : "Vahvista poistaminen", "Cancel" : "Peruuta", - "Deletion cancelled" : "Poistaminen peruttu", "Destination is not a folder" : "Kohde ei ole kansio", "This file/folder is already in that directory" : "Tämä tiedosto/kansio on jo kyseisessä kansiossa", "(copy)" : "(kopioi)", @@ -268,6 +275,7 @@ OC.L10N.register( "Choose destination" : "Valitse kohde", "Copy to {target}" : "Kopioi kohteeseen {target}", "Move to {target}" : "Siirrä kohteeseen {target}", + "Cancelled move or copy operation" : "Siirto- tai kopiointitoiminto peruttu", "Move or copy operation failed" : "Siirto- tai kopiointitoiminto epäonnistui", "Open folder {displayName}" : "Avaa kansio {displayName}", "Open in Files" : "Avaa tiedostosovelluksessa", @@ -275,9 +283,15 @@ OC.L10N.register( "Today" : "Tänään", "Last 7 days" : "Edelliset 7 päivää", "Last 30 days" : "Edelliset 30 päivää", + "This year ({year})" : "Tämä vuosi ({year})", + "Last year ({year})" : "Viime vuosi ({year})", "Documents" : "Asiakirjat", + "Spreadsheets" : "Laskentataulukot", + "Presentations" : "Esitykset", + "PDFs" : "PDF-tiedostot", "Folders" : "Kansiot", "Audio" : "Ääni", + "Pictures and images" : "Kuvat ja valokuvat", "Videos" : "Videot", "Created new folder \"{name}\"" : "Luotu uusi kansio \"{name}\"", "Unable to initialize the templates directory" : "Mallipohjien kansiota ei voitu alustaa", @@ -286,6 +300,7 @@ OC.L10N.register( "New template folder" : "Uusi mallipohjien kansio", "In folder" : "Kansiossa", "Search in folder: {folder}" : "Etsi kansiosta: {folder}", + "One of the dropped files could not be processed" : "Yhtä pudotetuista tiedostoista ei voitu prosessoida", "Your browser does not support the Filesystem API. Directories will not be uploaded" : "Selaimesi ei tue Filesystem API -rajapintaa. Kansioita ei lähetetä", "No files to upload" : "Ei lähetettäviä tiedostoja", "Unable to create the directory {directory}" : "Kansiota {directory} ei voi luoda", @@ -296,11 +311,14 @@ OC.L10N.register( "Some files could not be moved" : "Joitain tiedostoja ei voitu siirtää", "Files copied successfully" : "Tiedostot kopioitu onnistuneesti", "Files moved successfully" : "Tiedostot siirretty onnistuneesti", + "Upload cancelled" : "Lataus peruutettu", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} kansio","{folderCount} kansiota"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} tiedosto","{fileCount} tiedostoa"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 tiedosto ja {folderCount} kansio","1 tiedosto ja {folderCount} kansiota"], "_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} tiedosto ja 1 kansio","{fileCount} tiedostoa ja 1 kansio"], "{fileCount} files and {folderCount} folders" : "{fileCount} tiedostoa ja {folderCount} kansiota", + "Filename must not be empty." : "Tiedostonimi ei voi olla tyhjä.", + "\"{extension}\" is not an allowed filetype." : "\"{extension}\" ei ole sallitttu tiedostotyyppi.", "List of favorites files and folders." : "Luettelo suosikkitiedostoista ja -kansioista.", "No favorites yet" : "Ei vielä suosikkeja", "Files and folders you mark as favorite will show up here" : "Suosikeiksi merkitsemäsi tiedostot ja kansiot näkyvät täällä", @@ -351,6 +369,7 @@ OC.L10N.register( "Name cannot be empty" : "Nimi ei voi olla tyhjä", "Another entry with the same name already exists" : "Toinen tietue samalla nimellä on jo olemassa", "A file or folder with that name already exists." : "Tiedosto tai kansio tällä nimellä on jo olemassa.", - "Invalid file name" : "Virheellinen tiedostonimi" + "Invalid file name" : "Virheellinen tiedostonimi", + "The files is locked" : "Tiedosto on lukittu" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/fi.json b/apps/files/l10n/fi.json index 21d71936ec8..1e8b0a49ddd 100644 --- a/apps/files/l10n/fi.json +++ b/apps/files/l10n/fi.json @@ -178,12 +178,16 @@ "Filename" : "Tiedostonimi", "Folder name" : "Kansion nimi", "Download file {name}" : "Lataa tiedosto {name}", + "Invalid filename." : "Epäkelpo tiedostonimi.", "Renamed \"{oldName}\" to \"{newName}\"" : "Kohteen \"{oldName}\" uudeksi nimeksi asetettiin \"{newName}\"", "Could not rename \"{oldName}\", it does not exist any more" : "Kohdetta \"{oldName}\" ei voitu nimetä uudelleen, koska sitä ei ole enää olemassa", "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Nimi \"{newName}\" on jo käytössä kansiossa \"{dir}\". Valitse toinen nimi.", "Could not rename \"{oldName}\"" : "Ei voitu nimetä uudelleen \"{oldName}\"", "Clear filter" : "Tyhjennä suodatin", "Type" : "Tyyppi", + "Active filters" : "Aktiiviset suodattimet", + "Remove filter" : "Poista suodatin", + "\"{displayName}\" batch action executed successfully" : "\"{displayName}\" massatoiminto suoritettu", "{count} selected" : "{count} valittu", "List of files and folders." : "Luettelo tiedostoista ja kansioista.", "Column headers with buttons are sortable." : "Painikkeilla varustetut sarakeotsikot ovat järjestettävissä.", @@ -194,6 +198,7 @@ "Could not refresh storage stats" : "Tallennustilan tilastoja ei voitu päivittää", "Your storage is full, files can not be updated or synced anymore!" : "Tallennustila on loppu, tiedostoja ei voi enää päivittää tai synkronoida!", "Create" : "Luo", + "This name is already in use." : "Tämä nimi on jo käytössä.", "Submit" : "Lähetä", "Transfer ownership of a file or folder" : "Siirrä tiedoston tai kansion omistajuus", "Choose file or folder to transfer" : "Valitse siirrettävä tiedosto tai kansio", @@ -219,9 +224,11 @@ "Shared" : "Jaettu", "Switch to list view" : "Vaihda taulukkonäkymään", "Switch to grid view" : "Vaihda ruudukkonäkymään", + "Upload was cancelled by user" : "Käyttäjä peruutti latauksen", "Error during upload: {message}" : "Virhe lähettäessä: {message}", "Error during upload, status code {status}" : "Virhe lähettäessä, tilakoodi {status}", "Unknown error during upload" : "Tuntematon virhe lähettämisen aikana", + "Filter filenames…" : "Suodata tiedostonimiä...", "Views" : "Näkymät", "Files settings" : "Tiedostojen asetukset", "File cannot be accessed" : "Tiedostoa ei voi käyttää", @@ -248,14 +255,14 @@ "Creating file" : "Luodaan tiedostoa", "Blank" : "Tyhjä", "Unable to create new file from template" : "Uutta tiedostoa mallipohjasta ei voi luoda", + "Deletion cancelled" : "Poistaminen peruttu", "Delete permanently" : "Poista pysyvästi", "Delete and unshare" : "Poista ja lopeta jakaminen", "Delete files" : "Poista tiedostot", "Delete folders" : "Poista kansio", - "You are about to delete {count} items." : "Olet aikeissa poistaa {count} kohdetta.", + "_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Olet poistamassa {count} kohteen","Olet poistamassa {count} kohdetta"], "Confirm deletion" : "Vahvista poistaminen", "Cancel" : "Peruuta", - "Deletion cancelled" : "Poistaminen peruttu", "Destination is not a folder" : "Kohde ei ole kansio", "This file/folder is already in that directory" : "Tämä tiedosto/kansio on jo kyseisessä kansiossa", "(copy)" : "(kopioi)", @@ -266,6 +273,7 @@ "Choose destination" : "Valitse kohde", "Copy to {target}" : "Kopioi kohteeseen {target}", "Move to {target}" : "Siirrä kohteeseen {target}", + "Cancelled move or copy operation" : "Siirto- tai kopiointitoiminto peruttu", "Move or copy operation failed" : "Siirto- tai kopiointitoiminto epäonnistui", "Open folder {displayName}" : "Avaa kansio {displayName}", "Open in Files" : "Avaa tiedostosovelluksessa", @@ -273,9 +281,15 @@ "Today" : "Tänään", "Last 7 days" : "Edelliset 7 päivää", "Last 30 days" : "Edelliset 30 päivää", + "This year ({year})" : "Tämä vuosi ({year})", + "Last year ({year})" : "Viime vuosi ({year})", "Documents" : "Asiakirjat", + "Spreadsheets" : "Laskentataulukot", + "Presentations" : "Esitykset", + "PDFs" : "PDF-tiedostot", "Folders" : "Kansiot", "Audio" : "Ääni", + "Pictures and images" : "Kuvat ja valokuvat", "Videos" : "Videot", "Created new folder \"{name}\"" : "Luotu uusi kansio \"{name}\"", "Unable to initialize the templates directory" : "Mallipohjien kansiota ei voitu alustaa", @@ -284,6 +298,7 @@ "New template folder" : "Uusi mallipohjien kansio", "In folder" : "Kansiossa", "Search in folder: {folder}" : "Etsi kansiosta: {folder}", + "One of the dropped files could not be processed" : "Yhtä pudotetuista tiedostoista ei voitu prosessoida", "Your browser does not support the Filesystem API. Directories will not be uploaded" : "Selaimesi ei tue Filesystem API -rajapintaa. Kansioita ei lähetetä", "No files to upload" : "Ei lähetettäviä tiedostoja", "Unable to create the directory {directory}" : "Kansiota {directory} ei voi luoda", @@ -294,11 +309,14 @@ "Some files could not be moved" : "Joitain tiedostoja ei voitu siirtää", "Files copied successfully" : "Tiedostot kopioitu onnistuneesti", "Files moved successfully" : "Tiedostot siirretty onnistuneesti", + "Upload cancelled" : "Lataus peruutettu", "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} kansio","{folderCount} kansiota"], "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} tiedosto","{fileCount} tiedostoa"], "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 tiedosto ja {folderCount} kansio","1 tiedosto ja {folderCount} kansiota"], "_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} tiedosto ja 1 kansio","{fileCount} tiedostoa ja 1 kansio"], "{fileCount} files and {folderCount} folders" : "{fileCount} tiedostoa ja {folderCount} kansiota", + "Filename must not be empty." : "Tiedostonimi ei voi olla tyhjä.", + "\"{extension}\" is not an allowed filetype." : "\"{extension}\" ei ole sallitttu tiedostotyyppi.", "List of favorites files and folders." : "Luettelo suosikkitiedostoista ja -kansioista.", "No favorites yet" : "Ei vielä suosikkeja", "Files and folders you mark as favorite will show up here" : "Suosikeiksi merkitsemäsi tiedostot ja kansiot näkyvät täällä", @@ -349,6 +367,7 @@ "Name cannot be empty" : "Nimi ei voi olla tyhjä", "Another entry with the same name already exists" : "Toinen tietue samalla nimellä on jo olemassa", "A file or folder with that name already exists." : "Tiedosto tai kansio tällä nimellä on jo olemassa.", - "Invalid file name" : "Virheellinen tiedostonimi" + "Invalid file name" : "Virheellinen tiedostonimi", + "The files is locked" : "Tiedosto on lukittu" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files/l10n/fr.js b/apps/files/l10n/fr.js index 46853531f4f..106c49f7e5b 100644 --- a/apps/files/l10n/fr.js +++ b/apps/files/l10n/fr.js @@ -264,16 +264,15 @@ OC.L10N.register( "Creating file" : "Créer un fichier", "Blank" : "Vide", "Unable to create new file from template" : "Impossible de créer un nouveau fichier à partir du modèle", + "Deletion cancelled" : "Suppression annulée", "Delete permanently" : "Supprimer définitivement", "Delete and unshare" : "Supprimer et ne plus partager", "Leave these shares" : "Quitter ces partages", "Disconnect storages" : "Déconnecter les supports de stockage", "Delete files" : "Supprimer les fichiers", "Delete folders" : "Supprimer les dossiers", - "You are about to delete {count} items." : "Vous êtes sur le point de supprimer {count} éléments.", "Confirm deletion" : "Confirmer la suppression", "Cancel" : "Annuler", - "Deletion cancelled" : "Suppression annulée", "Destination is not a folder" : "La destination n'est pas un dossier", "This file/folder is already in that directory" : "Ce fichier/dossier se trouve déjà dans ce dossier", "You cannot move a file/folder onto itself or into a subfolder of itself" : "Vous ne pouvez pas déplacer un fichier/dossier sur lui-même ou dans un sous-dossier de celui-ci", diff --git a/apps/files/l10n/fr.json b/apps/files/l10n/fr.json index 431be11c97d..91de30bdaa6 100644 --- a/apps/files/l10n/fr.json +++ b/apps/files/l10n/fr.json @@ -262,16 +262,15 @@ "Creating file" : "Créer un fichier", "Blank" : "Vide", "Unable to create new file from template" : "Impossible de créer un nouveau fichier à partir du modèle", + "Deletion cancelled" : "Suppression annulée", "Delete permanently" : "Supprimer définitivement", "Delete and unshare" : "Supprimer et ne plus partager", "Leave these shares" : "Quitter ces partages", "Disconnect storages" : "Déconnecter les supports de stockage", "Delete files" : "Supprimer les fichiers", "Delete folders" : "Supprimer les dossiers", - "You are about to delete {count} items." : "Vous êtes sur le point de supprimer {count} éléments.", "Confirm deletion" : "Confirmer la suppression", "Cancel" : "Annuler", - "Deletion cancelled" : "Suppression annulée", "Destination is not a folder" : "La destination n'est pas un dossier", "This file/folder is already in that directory" : "Ce fichier/dossier se trouve déjà dans ce dossier", "You cannot move a file/folder onto itself or into a subfolder of itself" : "Vous ne pouvez pas déplacer un fichier/dossier sur lui-même ou dans un sous-dossier de celui-ci", diff --git a/apps/files/l10n/ga.js b/apps/files/l10n/ga.js index 853609e6e57..b1b3953b9f6 100644 --- a/apps/files/l10n/ga.js +++ b/apps/files/l10n/ga.js @@ -191,6 +191,8 @@ OC.L10N.register( "Folder name" : "Ainm fillteáin", "This node is unavailable" : "Níl an nód seo ar fáil", "Download file {name}" : "Íoslódáil an comhad {name}", + "Another entry with the same name already exists." : "Tá iontráil eile leis an ainm céanna ann cheana féin.", + "Invalid filename." : "Ainm comhaid neamhbhailí.", "Renamed \"{oldName}\" to \"{newName}\"" : "Athainmnithe \"{oldName}\" go \"{newName}\"", "Could not rename \"{oldName}\", it does not exist any more" : "Níorbh fhéidir \"{oldName}\" a athainmniú, níl sé ann a thuilleadh", "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Tá an t-ainm \"{newName}\" in úsáid cheana féin san fhillteán \"{dir}\". Roghnaigh ainm eile le do thoil.", @@ -208,11 +210,16 @@ OC.L10N.register( "Column headers with buttons are sortable." : "Is féidir ceanntásca colún le cnaipí a shórtáil.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Níl an liosta seo le fáil go hiomlán ar chúiseanna feidhmíochta. Déanfar na comhaid a rindreáil agus tú ag dul tríd an liosta.", "File not found" : "Comhad gan aimsiú", + "Storage information" : "Faisnéis stórála", + "Storage quota" : "Cuóta stórála", "{usedQuotaByte} used" : "{usedQuotaByte} úsáidte", "{relative}% used" : "{relative}% in úsáid", "Could not refresh storage stats" : "Níorbh fhéidir na staitisticí stórála a athnuachan", "Your storage is full, files can not be updated or synced anymore!" : "Tá do stóras lán, ní féidir comhaid a nuashonrú ná a shioncronú a thuilleadh!", "Create" : "Cruthaigh", + "This name is already in use." : "Tá an t-ainm seo in úsáid cheana féin.", + "Fill template fields" : "Líon réimsí teimpléid", + "Submitting fields…" : "Réimsí á gcur isteach…", "Submit" : "Cuir isteach", "Transfer ownership of a file or folder" : "Aistrigh úinéireacht comhaid nó fillteáin", "Choose file or folder to transfer" : "Roghnaigh comhad nó fillteán le haistriú", @@ -242,6 +249,7 @@ OC.L10N.register( "Error during upload: {message}" : "Earráid le linn uaslódála: {message}", "Error during upload, status code {status}" : "Earráid le linn uaslódála, cód stádais {status}", "Unknown error during upload" : "Earráid anaithnid le linn uaslódála", + "Filter filenames…" : "Scag ainmneacha comhaid…", "Views" : "Radhairc", "Files settings" : "Socruithe comhaid", "File cannot be accessed" : "Ní féidir an comhad a rochtain", @@ -268,16 +276,17 @@ OC.L10N.register( "Creating file" : "Comhad a chruthú", "Blank" : "Bán", "Unable to create new file from template" : "Ní féidir comhad nua a chruthú ón teimpléad", + "Deletion cancelled" : "Scriosadh cealaithe", "Delete permanently" : "Scrios go buan", "Delete and unshare" : "Scrios agus díroinnte", "Leave these shares" : "Fág na scaireanna seo", "Disconnect storages" : "Déan stórais a dhícheangal", "Delete files" : "Scrios comhaid", "Delete folders" : "Scrios fillteáin", - "You are about to delete {count} items." : "Tá tú ar tí {count} mír a scriosadh.", + "_You are about to permanently delete {count} item_::_You are about to permanently delete {count} items_" : ["Tá tú ar tí {count} mír a scriosadh go buan","Tá tú ar tí {count} mír a scriosadh go buan","Tá tú ar tí {count} mír a scriosadh go buan","Tá tú ar tí {count} mír a scriosadh go buan","Tá tú ar tí {count} mír a scriosadh go buan"], + "_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Tá tú ar tí {count} mír a scriosadh","Tá tú ar tí {count} mír a scriosadh","Tá tú ar tí {count} mír a scriosadh","Tá tú ar tí {count} mír a scriosadh","Tá tú ar tí {count} mír a scriosadh"], "Confirm deletion" : "Deimhnigh scriosadh", "Cancel" : "Cealaigh", - "Deletion cancelled" : "Scriosadh cealaithe", "Destination is not a folder" : "Ní fillteán é ceann scríbe", "This file/folder is already in that directory" : "Tá an comhad/fillteán seo san eolaire sin cheana féin", "You cannot move a file/folder onto itself or into a subfolder of itself" : "Ní féidir leat comhad/fillteán a bhogadh isteach ann féin nó isteach i bhfofhillteán de féin", @@ -298,9 +307,15 @@ OC.L10N.register( "Today" : "Inniu", "Last 7 days" : "7 lá seo caite", "Last 30 days" : "30 lá anuas", + "This year ({year})" : "i mbliana ({year})", + "Last year ({year})" : "An bhliain seo caite {year}", "Documents" : "Doiciméid", + "Spreadsheets" : "Scarbhileoga", + "Presentations" : "Cur i láthair", + "PDFs" : "PDFs", "Folders" : "Fillteáin", "Audio" : "Fuaime", + "Pictures and images" : "Pictiúir agus íomhánna", "Videos" : "Físeáin", "Created new folder \"{name}\"" : "Cruthaíodh fillteán nua \"{name}\"", "Unable to initialize the templates directory" : "Ní féidir eolaire na dteimpléad a thúsú", @@ -327,6 +342,11 @@ OC.L10N.register( "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 chomhad agus {folderCount} fillteán","1 chomhad agus {folderCount} fillteáin","1 chomhad agus {folderCount} fillteáin","1 chomhad agus {folderCount} fillteáin","1 chomhad agus {folderCount} fillteáin"], "_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} comhad agus 1 fillteán","{fileCount} comhaid agus 1 fillteán","{fileCount} comhaid agus 1 fillteán","{fileCount} comhaid agus 1 fillteán","{fileCount} comhaid agus 1 fillteán"], "{fileCount} files and {folderCount} folders" : "comhaid {fileCount} agus fillteáin {folderCount}", + "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.", + "\"{extension}\" is not an allowed filetype." : "Ní cineál comhaid ceadaithe é \"{extension}\".", + "Filenames must not end with \"{extension}\"." : "Níor cheart go gcríochnaíonn comhaid chomhad le \"{extension}\".", "List of favorites files and folders." : "Liosta de na comhaid is ansa leat agus fillteáin.", "No favorites yet" : "Níl aon cheanáin go fóill", "Files and folders you mark as favorite will show up here" : "Taispeánfar comhaid agus fillteáin a mharcálann tú mar is fearr leat anseo", diff --git a/apps/files/l10n/ga.json b/apps/files/l10n/ga.json index 3fa8ba8f8e9..4a7d2f64a3a 100644 --- a/apps/files/l10n/ga.json +++ b/apps/files/l10n/ga.json @@ -189,6 +189,8 @@ "Folder name" : "Ainm fillteáin", "This node is unavailable" : "Níl an nód seo ar fáil", "Download file {name}" : "Íoslódáil an comhad {name}", + "Another entry with the same name already exists." : "Tá iontráil eile leis an ainm céanna ann cheana féin.", + "Invalid filename." : "Ainm comhaid neamhbhailí.", "Renamed \"{oldName}\" to \"{newName}\"" : "Athainmnithe \"{oldName}\" go \"{newName}\"", "Could not rename \"{oldName}\", it does not exist any more" : "Níorbh fhéidir \"{oldName}\" a athainmniú, níl sé ann a thuilleadh", "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Tá an t-ainm \"{newName}\" in úsáid cheana féin san fhillteán \"{dir}\". Roghnaigh ainm eile le do thoil.", @@ -206,11 +208,16 @@ "Column headers with buttons are sortable." : "Is féidir ceanntásca colún le cnaipí a shórtáil.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Níl an liosta seo le fáil go hiomlán ar chúiseanna feidhmíochta. Déanfar na comhaid a rindreáil agus tú ag dul tríd an liosta.", "File not found" : "Comhad gan aimsiú", + "Storage information" : "Faisnéis stórála", + "Storage quota" : "Cuóta stórála", "{usedQuotaByte} used" : "{usedQuotaByte} úsáidte", "{relative}% used" : "{relative}% in úsáid", "Could not refresh storage stats" : "Níorbh fhéidir na staitisticí stórála a athnuachan", "Your storage is full, files can not be updated or synced anymore!" : "Tá do stóras lán, ní féidir comhaid a nuashonrú ná a shioncronú a thuilleadh!", "Create" : "Cruthaigh", + "This name is already in use." : "Tá an t-ainm seo in úsáid cheana féin.", + "Fill template fields" : "Líon réimsí teimpléid", + "Submitting fields…" : "Réimsí á gcur isteach…", "Submit" : "Cuir isteach", "Transfer ownership of a file or folder" : "Aistrigh úinéireacht comhaid nó fillteáin", "Choose file or folder to transfer" : "Roghnaigh comhad nó fillteán le haistriú", @@ -240,6 +247,7 @@ "Error during upload: {message}" : "Earráid le linn uaslódála: {message}", "Error during upload, status code {status}" : "Earráid le linn uaslódála, cód stádais {status}", "Unknown error during upload" : "Earráid anaithnid le linn uaslódála", + "Filter filenames…" : "Scag ainmneacha comhaid…", "Views" : "Radhairc", "Files settings" : "Socruithe comhaid", "File cannot be accessed" : "Ní féidir an comhad a rochtain", @@ -266,16 +274,17 @@ "Creating file" : "Comhad a chruthú", "Blank" : "Bán", "Unable to create new file from template" : "Ní féidir comhad nua a chruthú ón teimpléad", + "Deletion cancelled" : "Scriosadh cealaithe", "Delete permanently" : "Scrios go buan", "Delete and unshare" : "Scrios agus díroinnte", "Leave these shares" : "Fág na scaireanna seo", "Disconnect storages" : "Déan stórais a dhícheangal", "Delete files" : "Scrios comhaid", "Delete folders" : "Scrios fillteáin", - "You are about to delete {count} items." : "Tá tú ar tí {count} mír a scriosadh.", + "_You are about to permanently delete {count} item_::_You are about to permanently delete {count} items_" : ["Tá tú ar tí {count} mír a scriosadh go buan","Tá tú ar tí {count} mír a scriosadh go buan","Tá tú ar tí {count} mír a scriosadh go buan","Tá tú ar tí {count} mír a scriosadh go buan","Tá tú ar tí {count} mír a scriosadh go buan"], + "_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Tá tú ar tí {count} mír a scriosadh","Tá tú ar tí {count} mír a scriosadh","Tá tú ar tí {count} mír a scriosadh","Tá tú ar tí {count} mír a scriosadh","Tá tú ar tí {count} mír a scriosadh"], "Confirm deletion" : "Deimhnigh scriosadh", "Cancel" : "Cealaigh", - "Deletion cancelled" : "Scriosadh cealaithe", "Destination is not a folder" : "Ní fillteán é ceann scríbe", "This file/folder is already in that directory" : "Tá an comhad/fillteán seo san eolaire sin cheana féin", "You cannot move a file/folder onto itself or into a subfolder of itself" : "Ní féidir leat comhad/fillteán a bhogadh isteach ann féin nó isteach i bhfofhillteán de féin", @@ -296,9 +305,15 @@ "Today" : "Inniu", "Last 7 days" : "7 lá seo caite", "Last 30 days" : "30 lá anuas", + "This year ({year})" : "i mbliana ({year})", + "Last year ({year})" : "An bhliain seo caite {year}", "Documents" : "Doiciméid", + "Spreadsheets" : "Scarbhileoga", + "Presentations" : "Cur i láthair", + "PDFs" : "PDFs", "Folders" : "Fillteáin", "Audio" : "Fuaime", + "Pictures and images" : "Pictiúir agus íomhánna", "Videos" : "Físeáin", "Created new folder \"{name}\"" : "Cruthaíodh fillteán nua \"{name}\"", "Unable to initialize the templates directory" : "Ní féidir eolaire na dteimpléad a thúsú", @@ -325,6 +340,11 @@ "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 chomhad agus {folderCount} fillteán","1 chomhad agus {folderCount} fillteáin","1 chomhad agus {folderCount} fillteáin","1 chomhad agus {folderCount} fillteáin","1 chomhad agus {folderCount} fillteáin"], "_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} comhad agus 1 fillteán","{fileCount} comhaid agus 1 fillteán","{fileCount} comhaid agus 1 fillteán","{fileCount} comhaid agus 1 fillteán","{fileCount} comhaid agus 1 fillteán"], "{fileCount} files and {folderCount} folders" : "comhaid {fileCount} agus fillteáin {folderCount}", + "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.", + "\"{extension}\" is not an allowed filetype." : "Ní cineál comhaid ceadaithe é \"{extension}\".", + "Filenames must not end with \"{extension}\"." : "Níor cheart go gcríochnaíonn comhaid chomhad le \"{extension}\".", "List of favorites files and folders." : "Liosta de na comhaid is ansa leat agus fillteáin.", "No favorites yet" : "Níl aon cheanáin go fóill", "Files and folders you mark as favorite will show up here" : "Taispeánfar comhaid agus fillteáin a mharcálann tú mar is fearr leat anseo", diff --git a/apps/files/l10n/gl.js b/apps/files/l10n/gl.js index 8b6f9051f97..a12157a5144 100644 --- a/apps/files/l10n/gl.js +++ b/apps/files/l10n/gl.js @@ -217,6 +217,7 @@ OC.L10N.register( "Could not refresh storage stats" : "Non foi posíbel actualizar as estatísticas de almacenamento", "Your storage is full, files can not be updated or synced anymore!" : "O seu espazo de almacenamento está cheo, xa non se poden actualizar nin sincronizar os ficheiros.", "Create" : "Crear", + "This name is already in use." : "Este nome xa está a ser usado", "Fill template fields" : "Encher os campos do modelo", "Submitting fields…" : "Enviando os campos...", "Submit" : "Enviar", @@ -275,16 +276,17 @@ OC.L10N.register( "Creating file" : "Creando o ficheiro", "Blank" : "Baleiro", "Unable to create new file from template" : "Non é posíbel crear un novo ficheiro a partir do modelo", + "Deletion cancelled" : "Cancelouse a eliminación", "Delete permanently" : "Eliminar definitivamente", "Delete and unshare" : "Eliminar e deixar de compartir", "Leave these shares" : "Deixar estas comparticións", "Disconnect storages" : "Desconectar os almacenamentos", "Delete files" : "Eliminar ficheiros", "Delete folders" : "Eliminar cartafoles", - "You are about to delete {count} items." : "Está a piques de eliminar {count} elementos.", + "_You are about to permanently delete {count} item_::_You are about to permanently delete {count} items_" : ["Está a piques de eliminar definitivamente {count} elemento","Está a piques de eliminar definitivamente {count} elementos"], + "_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Está a piques de eliminar {count} elemento","Está a piques de eliminar {count} elementos"], "Confirm deletion" : "Confirmar a eliminación", "Cancel" : "Cancelar", - "Deletion cancelled" : "Cancelouse a eliminación", "Destination is not a folder" : "O destino non é un cartafol", "This file/folder is already in that directory" : "Este ficheiro/cartafol xa está nese directorio", "You cannot move a file/folder onto itself or into a subfolder of itself" : "Non é posíbel mover un ficheiro/cartafol sobre si mesmo ou a un subcartafol de si mesmo", diff --git a/apps/files/l10n/gl.json b/apps/files/l10n/gl.json index 3a56199a66e..bd4f3246861 100644 --- a/apps/files/l10n/gl.json +++ b/apps/files/l10n/gl.json @@ -215,6 +215,7 @@ "Could not refresh storage stats" : "Non foi posíbel actualizar as estatísticas de almacenamento", "Your storage is full, files can not be updated or synced anymore!" : "O seu espazo de almacenamento está cheo, xa non se poden actualizar nin sincronizar os ficheiros.", "Create" : "Crear", + "This name is already in use." : "Este nome xa está a ser usado", "Fill template fields" : "Encher os campos do modelo", "Submitting fields…" : "Enviando os campos...", "Submit" : "Enviar", @@ -273,16 +274,17 @@ "Creating file" : "Creando o ficheiro", "Blank" : "Baleiro", "Unable to create new file from template" : "Non é posíbel crear un novo ficheiro a partir do modelo", + "Deletion cancelled" : "Cancelouse a eliminación", "Delete permanently" : "Eliminar definitivamente", "Delete and unshare" : "Eliminar e deixar de compartir", "Leave these shares" : "Deixar estas comparticións", "Disconnect storages" : "Desconectar os almacenamentos", "Delete files" : "Eliminar ficheiros", "Delete folders" : "Eliminar cartafoles", - "You are about to delete {count} items." : "Está a piques de eliminar {count} elementos.", + "_You are about to permanently delete {count} item_::_You are about to permanently delete {count} items_" : ["Está a piques de eliminar definitivamente {count} elemento","Está a piques de eliminar definitivamente {count} elementos"], + "_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Está a piques de eliminar {count} elemento","Está a piques de eliminar {count} elementos"], "Confirm deletion" : "Confirmar a eliminación", "Cancel" : "Cancelar", - "Deletion cancelled" : "Cancelouse a eliminación", "Destination is not a folder" : "O destino non é un cartafol", "This file/folder is already in that directory" : "Este ficheiro/cartafol xa está nese directorio", "You cannot move a file/folder onto itself or into a subfolder of itself" : "Non é posíbel mover un ficheiro/cartafol sobre si mesmo ou a un subcartafol de si mesmo", diff --git a/apps/files/l10n/it.js b/apps/files/l10n/it.js index 5c538c677db..6b41a9393dc 100644 --- a/apps/files/l10n/it.js +++ b/apps/files/l10n/it.js @@ -264,16 +264,15 @@ OC.L10N.register( "Creating file" : "Creazione del file", "Blank" : "Vuoto", "Unable to create new file from template" : "Impossibile creare un nuovo file dal modello", + "Deletion cancelled" : "Eliminazione annullata", "Delete permanently" : "Elimina permanentemente", "Delete and unshare" : "Elimina e annulla la condivisione", "Leave these shares" : "Abbandona queste condivisioni", "Disconnect storages" : "Disconnetti il supporto di archiviazione", "Delete files" : "Elimina i file", "Delete folders" : "Elimina la cartella", - "You are about to delete {count} items." : "Stai per eliminare {count} elementi.", "Confirm deletion" : "Conferma l'eliminazione", "Cancel" : "Annulla", - "Deletion cancelled" : "Eliminazione annullata", "Destination is not a folder" : "La destinazione non è una cartella", "This file/folder is already in that directory" : "Questo file/cartella è già in quella cartella", "You cannot move a file/folder onto itself or into a subfolder of itself" : "Non puoi spostare un file/cartella in se stesso o in una sottocartella di se stesso", diff --git a/apps/files/l10n/it.json b/apps/files/l10n/it.json index d1833ba076e..64d0b10c17c 100644 --- a/apps/files/l10n/it.json +++ b/apps/files/l10n/it.json @@ -262,16 +262,15 @@ "Creating file" : "Creazione del file", "Blank" : "Vuoto", "Unable to create new file from template" : "Impossibile creare un nuovo file dal modello", + "Deletion cancelled" : "Eliminazione annullata", "Delete permanently" : "Elimina permanentemente", "Delete and unshare" : "Elimina e annulla la condivisione", "Leave these shares" : "Abbandona queste condivisioni", "Disconnect storages" : "Disconnetti il supporto di archiviazione", "Delete files" : "Elimina i file", "Delete folders" : "Elimina la cartella", - "You are about to delete {count} items." : "Stai per eliminare {count} elementi.", "Confirm deletion" : "Conferma l'eliminazione", "Cancel" : "Annulla", - "Deletion cancelled" : "Eliminazione annullata", "Destination is not a folder" : "La destinazione non è una cartella", "This file/folder is already in that directory" : "Questo file/cartella è già in quella cartella", "You cannot move a file/folder onto itself or into a subfolder of itself" : "Non puoi spostare un file/cartella in se stesso o in una sottocartella di se stesso", diff --git a/apps/files/l10n/ja.js b/apps/files/l10n/ja.js index cf59ed5d2a6..a3e112f0c02 100644 --- a/apps/files/l10n/ja.js +++ b/apps/files/l10n/ja.js @@ -275,16 +275,15 @@ OC.L10N.register( "Creating file" : "ファイル作成", "Blank" : "ブランク", "Unable to create new file from template" : "テンプレートから新しいファイルを作成できません", + "Deletion cancelled" : "削除はキャンセルされました", "Delete permanently" : "完全に削除する", "Delete and unshare" : "削除して共有を解除", "Leave these shares" : "これらの共有から抜ける", "Disconnect storages" : "ストレージを切断する", "Delete files" : "ファイルの削除", "Delete folders" : "フォルダを削除", - "You are about to delete {count} items." : "あなたは {count} 個のアイテムを削除しようとしています。", "Confirm deletion" : "削除の確認", "Cancel" : "キャンセル", - "Deletion cancelled" : "削除はキャンセルされました", "Destination is not a folder" : "宛先がフォルダではありません", "This file/folder is already in that directory" : "このファイル/フォルダはすでにそのディレクトリにあります", "You cannot move a file/folder onto itself or into a subfolder of itself" : "ファイル/フォルダをそれ自身の上に移動したり、それ自身のサブフォルダに移動したりすることはできません。", diff --git a/apps/files/l10n/ja.json b/apps/files/l10n/ja.json index ae62575ab3c..224cecd38d2 100644 --- a/apps/files/l10n/ja.json +++ b/apps/files/l10n/ja.json @@ -273,16 +273,15 @@ "Creating file" : "ファイル作成", "Blank" : "ブランク", "Unable to create new file from template" : "テンプレートから新しいファイルを作成できません", + "Deletion cancelled" : "削除はキャンセルされました", "Delete permanently" : "完全に削除する", "Delete and unshare" : "削除して共有を解除", "Leave these shares" : "これらの共有から抜ける", "Disconnect storages" : "ストレージを切断する", "Delete files" : "ファイルの削除", "Delete folders" : "フォルダを削除", - "You are about to delete {count} items." : "あなたは {count} 個のアイテムを削除しようとしています。", "Confirm deletion" : "削除の確認", "Cancel" : "キャンセル", - "Deletion cancelled" : "削除はキャンセルされました", "Destination is not a folder" : "宛先がフォルダではありません", "This file/folder is already in that directory" : "このファイル/フォルダはすでにそのディレクトリにあります", "You cannot move a file/folder onto itself or into a subfolder of itself" : "ファイル/フォルダをそれ自身の上に移動したり、それ自身のサブフォルダに移動したりすることはできません。", diff --git a/apps/files/l10n/ko.js b/apps/files/l10n/ko.js index 54eb5f546f1..d7a04c82b2f 100644 --- a/apps/files/l10n/ko.js +++ b/apps/files/l10n/ko.js @@ -260,16 +260,15 @@ OC.L10N.register( "Creating file" : "파일 만들기", "Blank" : "여백", "Unable to create new file from template" : "템플릿으로 새 파일을 만들 수 없음", + "Deletion cancelled" : "삭제가 취소됨", "Delete permanently" : "영구히 삭제", "Delete and unshare" : "삭제 및 공유 해제", "Leave these shares" : "이 공유에서 떠나기", "Disconnect storages" : "저장소 연결 끊기", "Delete files" : "파일 삭제", "Delete folders" : "폴더 삭제", - "You are about to delete {count} items." : "{count}개 항목을 삭제합니다.", "Confirm deletion" : "삭제 확인", "Cancel" : "취소", - "Deletion cancelled" : "삭제가 취소됨", "Destination is not a folder" : "대상이 폴더가 아닙니다.", "This file/folder is already in that directory" : "이 파일/폴더가 이미 그 경로에 있습니다.", "You cannot move a file/folder onto itself or into a subfolder of itself" : "파일/폴더를 그 안이나 그 안의 폴더로 이동할 수 없습니다.", diff --git a/apps/files/l10n/ko.json b/apps/files/l10n/ko.json index b8821a19340..fb630fbbbf5 100644 --- a/apps/files/l10n/ko.json +++ b/apps/files/l10n/ko.json @@ -258,16 +258,15 @@ "Creating file" : "파일 만들기", "Blank" : "여백", "Unable to create new file from template" : "템플릿으로 새 파일을 만들 수 없음", + "Deletion cancelled" : "삭제가 취소됨", "Delete permanently" : "영구히 삭제", "Delete and unshare" : "삭제 및 공유 해제", "Leave these shares" : "이 공유에서 떠나기", "Disconnect storages" : "저장소 연결 끊기", "Delete files" : "파일 삭제", "Delete folders" : "폴더 삭제", - "You are about to delete {count} items." : "{count}개 항목을 삭제합니다.", "Confirm deletion" : "삭제 확인", "Cancel" : "취소", - "Deletion cancelled" : "삭제가 취소됨", "Destination is not a folder" : "대상이 폴더가 아닙니다.", "This file/folder is already in that directory" : "이 파일/폴더가 이미 그 경로에 있습니다.", "You cannot move a file/folder onto itself or into a subfolder of itself" : "파일/폴더를 그 안이나 그 안의 폴더로 이동할 수 없습니다.", diff --git a/apps/files/l10n/nb.js b/apps/files/l10n/nb.js index 5336a82b581..9c7ad7f8a31 100644 --- a/apps/files/l10n/nb.js +++ b/apps/files/l10n/nb.js @@ -268,16 +268,15 @@ OC.L10N.register( "Creating file" : "Oppretter fil", "Blank" : "Tom", "Unable to create new file from template" : "Kan ikke opprette ny fil fra malen", + "Deletion cancelled" : "Sletting avbrutt", "Delete permanently" : "Slett for godt", "Delete and unshare" : "Slett og opphev deling", "Leave these shares" : "Forlat disse delingene", "Disconnect storages" : "Koble fra lagringer", "Delete files" : "Slett filer", "Delete folders" : "Slett mapper", - "You are about to delete {count} items." : "Du er i ferd med å slette {count} elementer.", "Confirm deletion" : "Bekreft sletting", "Cancel" : "Avbryt", - "Deletion cancelled" : "Sletting avbrutt", "Destination is not a folder" : "Målplassering er ikke en mappe", "This file/folder is already in that directory" : "Denne filen/mappen er allerede i den katalogen", "You cannot move a file/folder onto itself or into a subfolder of itself" : "Du kan ikke flytte en fil/mappe til seg selv eller til en undermappe av seg selv", diff --git a/apps/files/l10n/nb.json b/apps/files/l10n/nb.json index 082b6d6ff22..1ea70483166 100644 --- a/apps/files/l10n/nb.json +++ b/apps/files/l10n/nb.json @@ -266,16 +266,15 @@ "Creating file" : "Oppretter fil", "Blank" : "Tom", "Unable to create new file from template" : "Kan ikke opprette ny fil fra malen", + "Deletion cancelled" : "Sletting avbrutt", "Delete permanently" : "Slett for godt", "Delete and unshare" : "Slett og opphev deling", "Leave these shares" : "Forlat disse delingene", "Disconnect storages" : "Koble fra lagringer", "Delete files" : "Slett filer", "Delete folders" : "Slett mapper", - "You are about to delete {count} items." : "Du er i ferd med å slette {count} elementer.", "Confirm deletion" : "Bekreft sletting", "Cancel" : "Avbryt", - "Deletion cancelled" : "Sletting avbrutt", "Destination is not a folder" : "Målplassering er ikke en mappe", "This file/folder is already in that directory" : "Denne filen/mappen er allerede i den katalogen", "You cannot move a file/folder onto itself or into a subfolder of itself" : "Du kan ikke flytte en fil/mappe til seg selv eller til en undermappe av seg selv", diff --git a/apps/files/l10n/pl.js b/apps/files/l10n/pl.js index 7231465d873..0f653d7b539 100644 --- a/apps/files/l10n/pl.js +++ b/apps/files/l10n/pl.js @@ -260,16 +260,15 @@ OC.L10N.register( "Creating file" : "Tworzenie pliku", "Blank" : "Pusty", "Unable to create new file from template" : "Nie można utworzyć nowego pliku z szablonu", + "Deletion cancelled" : "Usuwanie anulowane", "Delete permanently" : "Usuń bezpowrotnie", "Delete and unshare" : "Usuń i przestań udostępniać", "Leave these shares" : "Opuść udostępnienia", "Disconnect storages" : "Odłącz magazyny", "Delete files" : "Usuń pliki", "Delete folders" : "Usuń katalogi", - "You are about to delete {count} items." : "Zamierzasz usunąć {count} elementów.", "Confirm deletion" : "Potwierdź usunięcie", "Cancel" : "Anuluj", - "Deletion cancelled" : "Usuwanie anulowane", "Destination is not a folder" : "Miejsce docelowe nie jest katalogiem", "This file/folder is already in that directory" : "Ten plik/katalog znajduje się już w tym katalogu", "You cannot move a file/folder onto itself or into a subfolder of itself" : "Nie można przenieść pliku/katalogu do tego samego katalogu lub do własnego podkatalogu", diff --git a/apps/files/l10n/pl.json b/apps/files/l10n/pl.json index 9edf0fb88c2..f689a3c7ec1 100644 --- a/apps/files/l10n/pl.json +++ b/apps/files/l10n/pl.json @@ -258,16 +258,15 @@ "Creating file" : "Tworzenie pliku", "Blank" : "Pusty", "Unable to create new file from template" : "Nie można utworzyć nowego pliku z szablonu", + "Deletion cancelled" : "Usuwanie anulowane", "Delete permanently" : "Usuń bezpowrotnie", "Delete and unshare" : "Usuń i przestań udostępniać", "Leave these shares" : "Opuść udostępnienia", "Disconnect storages" : "Odłącz magazyny", "Delete files" : "Usuń pliki", "Delete folders" : "Usuń katalogi", - "You are about to delete {count} items." : "Zamierzasz usunąć {count} elementów.", "Confirm deletion" : "Potwierdź usunięcie", "Cancel" : "Anuluj", - "Deletion cancelled" : "Usuwanie anulowane", "Destination is not a folder" : "Miejsce docelowe nie jest katalogiem", "This file/folder is already in that directory" : "Ten plik/katalog znajduje się już w tym katalogu", "You cannot move a file/folder onto itself or into a subfolder of itself" : "Nie można przenieść pliku/katalogu do tego samego katalogu lub do własnego podkatalogu", diff --git a/apps/files/l10n/pt_BR.js b/apps/files/l10n/pt_BR.js index e9d0e343aab..524338053d3 100644 --- a/apps/files/l10n/pt_BR.js +++ b/apps/files/l10n/pt_BR.js @@ -191,6 +191,8 @@ OC.L10N.register( "Folder name" : "Nome da pasta", "This node is unavailable" : "Este nó está indisponível", "Download file {name}" : "Baixe o arquivo {name}", + "Another entry with the same name already exists." : "Outra entrada com o mesmo nome já existe.", + "Invalid filename." : "Nome de arquivo inválido.", "Renamed \"{oldName}\" to \"{newName}\"" : "Renomeado de \"{oldName}\" para \"{newName}\"", "Could not rename \"{oldName}\", it does not exist any more" : "Não foi possível renomear \"{oldName}\", ele não existe mais", "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "O nome \"{newName}\" já é utilizado na pasta \"{dir}\". Escolha um nome diferente.", @@ -208,11 +210,16 @@ OC.L10N.register( "Column headers with buttons are sortable." : "Os cabeçalhos das colunas com botões são classificáveis.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Essa lista não é totalmente renderizada por motivos de desempenho. Os arquivos serão renderizados conforme você navega pela lista.", "File not found" : "Arquivo não encontrado", + "Storage information" : "Informações do armazenamento", + "Storage quota" : "Quantidade de armazenamento", "{usedQuotaByte} used" : "{usedQuotaByte} usado", "{relative}% used" : "{relative}% usado", "Could not refresh storage stats" : "Não foi possível atualizar as estatísticas de armazenamento", "Your storage is full, files can not be updated or synced anymore!" : "Seu armazenamento está cheio e arquivos não podem mais ser atualizados ou sincronizados!", "Create" : "Criar", + "This name is already in use." : "Este nome já está em uso.", + "Fill template fields" : "Preencher campos do template", + "Submitting fields…" : "Enviando arquivos…", "Submit" : "Enviar", "Transfer ownership of a file or folder" : "Transferir a propriedade de um arquivo ou pasta", "Choose file or folder to transfer" : "Escolha o arquivo ou pasta a transferir", @@ -242,6 +249,7 @@ OC.L10N.register( "Error during upload: {message}" : "Erro durante o upload: {message}", "Error during upload, status code {status}" : "Erro durante o upload, código de status {status}", "Unknown error during upload" : "Erro desconhecido durante o upload", + "Filter filenames…" : "Filtrar nomes de arquivos...", "Views" : "Visualizações", "Files settings" : "Configurações de arquivos", "File cannot be accessed" : "File cannot be accessed", @@ -268,16 +276,17 @@ OC.L10N.register( "Creating file" : "Criando arquivo", "Blank" : "Em branco", "Unable to create new file from template" : "Incapaz de criar novo arquivo a partir do modelo", + "Deletion cancelled" : "Operação de exclusão cancelada", "Delete permanently" : "Remover permanentemente", "Delete and unshare" : "Excluir e descompartilhar", "Leave these shares" : "Deixe esses compartilhamentos", "Disconnect storages" : "Desconectar armazenamentos", "Delete files" : "Deletar arquivos", "Delete folders" : "Excluir pastas", - "You are about to delete {count} items." : "Você está prestes a excluir {count} itens.", + "_You are about to permanently delete {count} item_::_You are about to permanently delete {count} items_" : ["Você está prestes a excluir permanentemente {count} itens","Você está prestes a excluir permanentemente {count} itens","Você está prestes a excluir permanentemente {count} itens"], + "_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Você está prestes a excluir {count} itens","Você está prestes a excluir {count} itens","Você está prestes a excluir {count} itens"], "Confirm deletion" : "Confirmar exclusão", "Cancel" : "Cancelar", - "Deletion cancelled" : "Operação de exclusão cancelada", "Destination is not a folder" : "O destino não é uma pasta", "This file/folder is already in that directory" : "Este arquivo/pasta já está nesse diretório", "You cannot move a file/folder onto itself or into a subfolder of itself" : "Você não pode mover um arquivo/pasta para si mesmo ou para uma subpasta dele mesmo", @@ -298,9 +307,15 @@ OC.L10N.register( "Today" : "Hoje", "Last 7 days" : "Últimos 7 dias", "Last 30 days" : "Últimos 30 dias", + "This year ({year})" : "Este ano ({year})", + "Last year ({year})" : "Ano passado ({year})", "Documents" : "Documentos", + "Spreadsheets" : "Planilhas", + "Presentations" : "Apresentações", + "PDFs" : "PDFs", "Folders" : "Pastas", "Audio" : "Áudio", + "Pictures and images" : "Fotos e imagens", "Videos" : "Vídeos", "Created new folder \"{name}\"" : "Nova pasta criada \"{name}\"", "Unable to initialize the templates directory" : "Não foi possível inicializar o diretório de modelos", @@ -327,6 +342,11 @@ OC.L10N.register( "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 arquivo e {folderCount} pastas","1 arquivo e {folderCount} pastas","1 arquivo e {folderCount} pastas"], "_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} arquivos e 1 pasta","{fileCount} arquivos e 1 pasta","{fileCount} arquivos e 1 pasta"], "{fileCount} files and {folderCount} folders" : "{fileCount} arquivos e {folderCount} pastas", + "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.", + "\"{extension}\" is not an allowed filetype." : "\"{extension}\" não é um tipo de arquivo permitido.", + "Filenames must not end with \"{extension}\"." : "Os nomes de arquivos não podem terminar com \"{extension}\".", "List of favorites files and folders." : "Lista de arquivos e pastas favoritos.", "No favorites yet" : "Você não possui favoritos!", "Files and folders you mark as favorite will show up here" : "Suas pastas e arquivos favoritos serão exibidos aqui.", diff --git a/apps/files/l10n/pt_BR.json b/apps/files/l10n/pt_BR.json index 00c7b6bf8d1..02d1fba3051 100644 --- a/apps/files/l10n/pt_BR.json +++ b/apps/files/l10n/pt_BR.json @@ -189,6 +189,8 @@ "Folder name" : "Nome da pasta", "This node is unavailable" : "Este nó está indisponível", "Download file {name}" : "Baixe o arquivo {name}", + "Another entry with the same name already exists." : "Outra entrada com o mesmo nome já existe.", + "Invalid filename." : "Nome de arquivo inválido.", "Renamed \"{oldName}\" to \"{newName}\"" : "Renomeado de \"{oldName}\" para \"{newName}\"", "Could not rename \"{oldName}\", it does not exist any more" : "Não foi possível renomear \"{oldName}\", ele não existe mais", "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "O nome \"{newName}\" já é utilizado na pasta \"{dir}\". Escolha um nome diferente.", @@ -206,11 +208,16 @@ "Column headers with buttons are sortable." : "Os cabeçalhos das colunas com botões são classificáveis.", "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Essa lista não é totalmente renderizada por motivos de desempenho. Os arquivos serão renderizados conforme você navega pela lista.", "File not found" : "Arquivo não encontrado", + "Storage information" : "Informações do armazenamento", + "Storage quota" : "Quantidade de armazenamento", "{usedQuotaByte} used" : "{usedQuotaByte} usado", "{relative}% used" : "{relative}% usado", "Could not refresh storage stats" : "Não foi possível atualizar as estatísticas de armazenamento", "Your storage is full, files can not be updated or synced anymore!" : "Seu armazenamento está cheio e arquivos não podem mais ser atualizados ou sincronizados!", "Create" : "Criar", + "This name is already in use." : "Este nome já está em uso.", + "Fill template fields" : "Preencher campos do template", + "Submitting fields…" : "Enviando arquivos…", "Submit" : "Enviar", "Transfer ownership of a file or folder" : "Transferir a propriedade de um arquivo ou pasta", "Choose file or folder to transfer" : "Escolha o arquivo ou pasta a transferir", @@ -240,6 +247,7 @@ "Error during upload: {message}" : "Erro durante o upload: {message}", "Error during upload, status code {status}" : "Erro durante o upload, código de status {status}", "Unknown error during upload" : "Erro desconhecido durante o upload", + "Filter filenames…" : "Filtrar nomes de arquivos...", "Views" : "Visualizações", "Files settings" : "Configurações de arquivos", "File cannot be accessed" : "File cannot be accessed", @@ -266,16 +274,17 @@ "Creating file" : "Criando arquivo", "Blank" : "Em branco", "Unable to create new file from template" : "Incapaz de criar novo arquivo a partir do modelo", + "Deletion cancelled" : "Operação de exclusão cancelada", "Delete permanently" : "Remover permanentemente", "Delete and unshare" : "Excluir e descompartilhar", "Leave these shares" : "Deixe esses compartilhamentos", "Disconnect storages" : "Desconectar armazenamentos", "Delete files" : "Deletar arquivos", "Delete folders" : "Excluir pastas", - "You are about to delete {count} items." : "Você está prestes a excluir {count} itens.", + "_You are about to permanently delete {count} item_::_You are about to permanently delete {count} items_" : ["Você está prestes a excluir permanentemente {count} itens","Você está prestes a excluir permanentemente {count} itens","Você está prestes a excluir permanentemente {count} itens"], + "_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Você está prestes a excluir {count} itens","Você está prestes a excluir {count} itens","Você está prestes a excluir {count} itens"], "Confirm deletion" : "Confirmar exclusão", "Cancel" : "Cancelar", - "Deletion cancelled" : "Operação de exclusão cancelada", "Destination is not a folder" : "O destino não é uma pasta", "This file/folder is already in that directory" : "Este arquivo/pasta já está nesse diretório", "You cannot move a file/folder onto itself or into a subfolder of itself" : "Você não pode mover um arquivo/pasta para si mesmo ou para uma subpasta dele mesmo", @@ -296,9 +305,15 @@ "Today" : "Hoje", "Last 7 days" : "Últimos 7 dias", "Last 30 days" : "Últimos 30 dias", + "This year ({year})" : "Este ano ({year})", + "Last year ({year})" : "Ano passado ({year})", "Documents" : "Documentos", + "Spreadsheets" : "Planilhas", + "Presentations" : "Apresentações", + "PDFs" : "PDFs", "Folders" : "Pastas", "Audio" : "Áudio", + "Pictures and images" : "Fotos e imagens", "Videos" : "Vídeos", "Created new folder \"{name}\"" : "Nova pasta criada \"{name}\"", "Unable to initialize the templates directory" : "Não foi possível inicializar o diretório de modelos", @@ -325,6 +340,11 @@ "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 arquivo e {folderCount} pastas","1 arquivo e {folderCount} pastas","1 arquivo e {folderCount} pastas"], "_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} arquivos e 1 pasta","{fileCount} arquivos e 1 pasta","{fileCount} arquivos e 1 pasta"], "{fileCount} files and {folderCount} folders" : "{fileCount} arquivos e {folderCount} pastas", + "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.", + "\"{extension}\" is not an allowed filetype." : "\"{extension}\" não é um tipo de arquivo permitido.", + "Filenames must not end with \"{extension}\"." : "Os nomes de arquivos não podem terminar com \"{extension}\".", "List of favorites files and folders." : "Lista de arquivos e pastas favoritos.", "No favorites yet" : "Você não possui favoritos!", "Files and folders you mark as favorite will show up here" : "Suas pastas e arquivos favoritos serão exibidos aqui.", diff --git a/apps/files/l10n/ru.js b/apps/files/l10n/ru.js index 38872171614..f1e849e58c2 100644 --- a/apps/files/l10n/ru.js +++ b/apps/files/l10n/ru.js @@ -268,16 +268,15 @@ OC.L10N.register( "Creating file" : "Создание файла", "Blank" : "Пустой", "Unable to create new file from template" : "Не удалось создать файл на основе шаблона", + "Deletion cancelled" : "Удаление отменено", "Delete permanently" : "Удалить навсегда", "Delete and unshare" : "Удалить и закрыть общий доступ", "Leave these shares" : "Отказаться от доступа к общим ресурсам", "Disconnect storages" : "Отключить хранилища", "Delete files" : "Удалить файлы", "Delete folders" : "Удалить папки", - "You are about to delete {count} items." : "Подтвердите удаление {count} объекта (-ов).", "Confirm deletion" : "Подтвердить удаление", "Cancel" : "Отменить", - "Deletion cancelled" : "Удаление отменено", "Destination is not a folder" : "Указанное назначение не является папкой", "This file/folder is already in that directory" : "Файл или папка уже расположены в этой папке", "You cannot move a file/folder onto itself or into a subfolder of itself" : "Папка или файл не могут быть перемещены во вложенную папку или в себя", diff --git a/apps/files/l10n/ru.json b/apps/files/l10n/ru.json index 67a525bed3a..341fa611469 100644 --- a/apps/files/l10n/ru.json +++ b/apps/files/l10n/ru.json @@ -266,16 +266,15 @@ "Creating file" : "Создание файла", "Blank" : "Пустой", "Unable to create new file from template" : "Не удалось создать файл на основе шаблона", + "Deletion cancelled" : "Удаление отменено", "Delete permanently" : "Удалить навсегда", "Delete and unshare" : "Удалить и закрыть общий доступ", "Leave these shares" : "Отказаться от доступа к общим ресурсам", "Disconnect storages" : "Отключить хранилища", "Delete files" : "Удалить файлы", "Delete folders" : "Удалить папки", - "You are about to delete {count} items." : "Подтвердите удаление {count} объекта (-ов).", "Confirm deletion" : "Подтвердить удаление", "Cancel" : "Отменить", - "Deletion cancelled" : "Удаление отменено", "Destination is not a folder" : "Указанное назначение не является папкой", "This file/folder is already in that directory" : "Файл или папка уже расположены в этой папке", "You cannot move a file/folder onto itself or into a subfolder of itself" : "Папка или файл не могут быть перемещены во вложенную папку или в себя", diff --git a/apps/files/l10n/sk.js b/apps/files/l10n/sk.js index 064a88efb9a..42905cf1f91 100644 --- a/apps/files/l10n/sk.js +++ b/apps/files/l10n/sk.js @@ -261,16 +261,15 @@ OC.L10N.register( "Creating file" : "Vytvára sa súbor", "Blank" : "Prázdne", "Unable to create new file from template" : "Nemôžem vytvoriť nový súbor zo šablóny", + "Deletion cancelled" : "Zmazanie zrušené", "Delete permanently" : "Zmazať natrvalo", "Delete and unshare" : "Vymazať a zrušiť zdieľanie", "Leave these shares" : "Opustiť tieto zdieľania.", "Disconnect storages" : "Odpojiť úložiská", "Delete files" : "Zmazať súbory", "Delete folders" : "Zmazať priečinky", - "You are about to delete {count} items." : "Chystáte sa vymazať {count} položiek.", "Confirm deletion" : "Potvrdiť vymazanie", "Cancel" : "Zrušiť", - "Deletion cancelled" : "Zmazanie zrušené", "Destination is not a folder" : "Cieľ nie je priečinok", "This file/folder is already in that directory" : "Tento súbor/priečinok sa už v danom adresári nachádza", "You cannot move a file/folder onto itself or into a subfolder of itself" : "Nemôžete presunúť súbor/priečinok do seba alebo do jeho podpriečinka.", diff --git a/apps/files/l10n/sk.json b/apps/files/l10n/sk.json index add0d21e705..6716cd445d6 100644 --- a/apps/files/l10n/sk.json +++ b/apps/files/l10n/sk.json @@ -259,16 +259,15 @@ "Creating file" : "Vytvára sa súbor", "Blank" : "Prázdne", "Unable to create new file from template" : "Nemôžem vytvoriť nový súbor zo šablóny", + "Deletion cancelled" : "Zmazanie zrušené", "Delete permanently" : "Zmazať natrvalo", "Delete and unshare" : "Vymazať a zrušiť zdieľanie", "Leave these shares" : "Opustiť tieto zdieľania.", "Disconnect storages" : "Odpojiť úložiská", "Delete files" : "Zmazať súbory", "Delete folders" : "Zmazať priečinky", - "You are about to delete {count} items." : "Chystáte sa vymazať {count} položiek.", "Confirm deletion" : "Potvrdiť vymazanie", "Cancel" : "Zrušiť", - "Deletion cancelled" : "Zmazanie zrušené", "Destination is not a folder" : "Cieľ nie je priečinok", "This file/folder is already in that directory" : "Tento súbor/priečinok sa už v danom adresári nachádza", "You cannot move a file/folder onto itself or into a subfolder of itself" : "Nemôžete presunúť súbor/priečinok do seba alebo do jeho podpriečinka.", diff --git a/apps/files/l10n/sl.js b/apps/files/l10n/sl.js index 75ca4423d09..5ca5c4e6e97 100644 --- a/apps/files/l10n/sl.js +++ b/apps/files/l10n/sl.js @@ -253,6 +253,7 @@ OC.L10N.register( "Creating file" : "Poteka ustvarjanje datoteke", "Blank" : "Prazno", "Unable to create new file from template" : "Nove datoteke iz predloge ni mogoče ustvariti", + "Deletion cancelled" : "Brisanje je bilo preklicano", "Delete permanently" : "Izbriši trajno", "Delete and unshare" : "Izbriši in prekini souporabo", "Leave these shares" : "Prekini to souporabo", @@ -261,7 +262,6 @@ OC.L10N.register( "Delete folders" : "Izbriši mape", "Confirm deletion" : "Potrdi brisanje", "Cancel" : "Prekliči", - "Deletion cancelled" : "Brisanje je bilo preklicano", "Destination is not a folder" : "Ciljno mesto ni mapa", "This file/folder is already in that directory" : "Ta datoteka oziroma mapa je že v določeni mapi", "You cannot move a file/folder onto itself or into a subfolder of itself" : "Mape ali datoteke ni mogoče premakniti samo vase oziroma v podmapo same sebe", diff --git a/apps/files/l10n/sl.json b/apps/files/l10n/sl.json index f9c8e00761d..601b3edb518 100644 --- a/apps/files/l10n/sl.json +++ b/apps/files/l10n/sl.json @@ -251,6 +251,7 @@ "Creating file" : "Poteka ustvarjanje datoteke", "Blank" : "Prazno", "Unable to create new file from template" : "Nove datoteke iz predloge ni mogoče ustvariti", + "Deletion cancelled" : "Brisanje je bilo preklicano", "Delete permanently" : "Izbriši trajno", "Delete and unshare" : "Izbriši in prekini souporabo", "Leave these shares" : "Prekini to souporabo", @@ -259,7 +260,6 @@ "Delete folders" : "Izbriši mape", "Confirm deletion" : "Potrdi brisanje", "Cancel" : "Prekliči", - "Deletion cancelled" : "Brisanje je bilo preklicano", "Destination is not a folder" : "Ciljno mesto ni mapa", "This file/folder is already in that directory" : "Ta datoteka oziroma mapa je že v določeni mapi", "You cannot move a file/folder onto itself or into a subfolder of itself" : "Mape ali datoteke ni mogoče premakniti samo vase oziroma v podmapo same sebe", diff --git a/apps/files/l10n/sr.js b/apps/files/l10n/sr.js index 05460bd736f..e3373469ba9 100644 --- a/apps/files/l10n/sr.js +++ b/apps/files/l10n/sr.js @@ -264,16 +264,15 @@ OC.L10N.register( "Creating file" : "Креирање фајла", "Blank" : "Празно", "Unable to create new file from template" : "Из шаблона није могао да се креира нови фајл", + "Deletion cancelled" : "Брисање је отказано", "Delete permanently" : "Обриши заувек", "Delete and unshare" : "Обриши и прекини дељење", "Leave these shares" : "Напусти ова дељења", "Disconnect storages" : "Искључи складишта", "Delete files" : "Обриши фајлове", "Delete folders" : "Обриши фолдере", - "You are about to delete {count} items." : "Управо ћете обрисати {count} ставки.", "Confirm deletion" : "Потврди брисање", "Cancel" : "Поништи", - "Deletion cancelled" : "Брисање је отказано", "Destination is not a folder" : "Одредиште није фолдер", "This file/folder is already in that directory" : "Овај фајл/фолдер се већ налази у том директоријуму", "You cannot move a file/folder onto itself or into a subfolder of itself" : "Фајл/фолдер не можете да преместите у самог себе или у његов подфолдер", diff --git a/apps/files/l10n/sr.json b/apps/files/l10n/sr.json index fcca41430f8..31d100471fd 100644 --- a/apps/files/l10n/sr.json +++ b/apps/files/l10n/sr.json @@ -262,16 +262,15 @@ "Creating file" : "Креирање фајла", "Blank" : "Празно", "Unable to create new file from template" : "Из шаблона није могао да се креира нови фајл", + "Deletion cancelled" : "Брисање је отказано", "Delete permanently" : "Обриши заувек", "Delete and unshare" : "Обриши и прекини дељење", "Leave these shares" : "Напусти ова дељења", "Disconnect storages" : "Искључи складишта", "Delete files" : "Обриши фајлове", "Delete folders" : "Обриши фолдере", - "You are about to delete {count} items." : "Управо ћете обрисати {count} ставки.", "Confirm deletion" : "Потврди брисање", "Cancel" : "Поништи", - "Deletion cancelled" : "Брисање је отказано", "Destination is not a folder" : "Одредиште није фолдер", "This file/folder is already in that directory" : "Овај фајл/фолдер се већ налази у том директоријуму", "You cannot move a file/folder onto itself or into a subfolder of itself" : "Фајл/фолдер не можете да преместите у самог себе или у његов подфолдер", diff --git a/apps/files/l10n/sv.js b/apps/files/l10n/sv.js index d8d34dfd46f..4c46be9f9af 100644 --- a/apps/files/l10n/sv.js +++ b/apps/files/l10n/sv.js @@ -217,6 +217,7 @@ OC.L10N.register( "Could not refresh storage stats" : "Det gick inte att uppdatera lagringsstatistiken", "Your storage is full, files can not be updated or synced anymore!" : "Ditt lagringsutrymme är fullt, filer kan inte längre uppdateras eller synkroniseras!", "Create" : "Skapa", + "This name is already in use." : "Namnet används redan.", "Fill template fields" : "Fyll mallfält", "Submitting fields…" : "Skickar fält...", "Submit" : "Skicka", @@ -275,16 +276,17 @@ OC.L10N.register( "Creating file" : "Skapar fil", "Blank" : "Tom", "Unable to create new file from template" : "Kunde inte skapa fil från mall", + "Deletion cancelled" : "Radering avbruten", "Delete permanently" : "Ta bort permanent", "Delete and unshare" : "Radera och sluta dela", "Leave these shares" : "Lämna dessa delningar", "Disconnect storages" : "Koppla bort lagringar", "Delete files" : "Radera filer", "Delete folders" : "Radera mappar", - "You are about to delete {count} items." : "Du är på väg att ta bort {count} objekt.", + "_You are about to permanently delete {count} item_::_You are about to permanently delete {count} items_" : ["Du är på väg att permanent ta bort {count} objekt","Du är på väg att permanent ta bort {count} objekt"], + "_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Du är på väg att ta bort {count} objekt","Du är på väg att ta bort {count} objekt"], "Confirm deletion" : "Bekräfta radering", "Cancel" : "Avbryt", - "Deletion cancelled" : "Radering avbruten", "Destination is not a folder" : "Destinationen är inte en mapp", "This file/folder is already in that directory" : "Den här filen/mappen finns redan i den katalogen", "You cannot move a file/folder onto itself or into a subfolder of itself" : "Du kan inte flytta en fil/mapp till sig själv eller till en undermapp till sig själv", diff --git a/apps/files/l10n/sv.json b/apps/files/l10n/sv.json index 055759d2865..abb35e085f5 100644 --- a/apps/files/l10n/sv.json +++ b/apps/files/l10n/sv.json @@ -215,6 +215,7 @@ "Could not refresh storage stats" : "Det gick inte att uppdatera lagringsstatistiken", "Your storage is full, files can not be updated or synced anymore!" : "Ditt lagringsutrymme är fullt, filer kan inte längre uppdateras eller synkroniseras!", "Create" : "Skapa", + "This name is already in use." : "Namnet används redan.", "Fill template fields" : "Fyll mallfält", "Submitting fields…" : "Skickar fält...", "Submit" : "Skicka", @@ -273,16 +274,17 @@ "Creating file" : "Skapar fil", "Blank" : "Tom", "Unable to create new file from template" : "Kunde inte skapa fil från mall", + "Deletion cancelled" : "Radering avbruten", "Delete permanently" : "Ta bort permanent", "Delete and unshare" : "Radera och sluta dela", "Leave these shares" : "Lämna dessa delningar", "Disconnect storages" : "Koppla bort lagringar", "Delete files" : "Radera filer", "Delete folders" : "Radera mappar", - "You are about to delete {count} items." : "Du är på väg att ta bort {count} objekt.", + "_You are about to permanently delete {count} item_::_You are about to permanently delete {count} items_" : ["Du är på väg att permanent ta bort {count} objekt","Du är på väg att permanent ta bort {count} objekt"], + "_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Du är på väg att ta bort {count} objekt","Du är på väg att ta bort {count} objekt"], "Confirm deletion" : "Bekräfta radering", "Cancel" : "Avbryt", - "Deletion cancelled" : "Radering avbruten", "Destination is not a folder" : "Destinationen är inte en mapp", "This file/folder is already in that directory" : "Den här filen/mappen finns redan i den katalogen", "You cannot move a file/folder onto itself or into a subfolder of itself" : "Du kan inte flytta en fil/mapp till sig själv eller till en undermapp till sig själv", diff --git a/apps/files/l10n/tr.js b/apps/files/l10n/tr.js index bd5924e51ef..ffe08379fcf 100644 --- a/apps/files/l10n/tr.js +++ b/apps/files/l10n/tr.js @@ -262,16 +262,15 @@ OC.L10N.register( "Creating file" : "Dosya ekleniyor", "Blank" : "Boş", "Unable to create new file from template" : "Kalıptan yeni dosya eklenemedi", + "Deletion cancelled" : "Silme iptal edildi", "Delete permanently" : "Kalıcı olarak sil", "Delete and unshare" : "Sil ve paylaşımdan kaldır", "Leave these shares" : "Bu paylaşımlardan ayrıl", "Disconnect storages" : "Depolama alanlarının bağlantısını kes", "Delete files" : "Dosyaları sil", "Delete folders" : "Klasörleri sil", - "You are about to delete {count} items." : "{count} ögeyi silmek üzeresiniz.", "Confirm deletion" : "Silmeyi onaylayın", "Cancel" : "İptal", - "Deletion cancelled" : "Silme iptal edildi", "Destination is not a folder" : "Hedef bir klasör değil", "This file/folder is already in that directory" : "Dosya ya da klasör bu klasörde zaten var", "You cannot move a file/folder onto itself or into a subfolder of itself" : "Bir dosyayı ya da klasörü kendi üzerine veya kendisinin alt klasörüne taşıyamazsınız", diff --git a/apps/files/l10n/tr.json b/apps/files/l10n/tr.json index a67a48fe95d..d3004d5c453 100644 --- a/apps/files/l10n/tr.json +++ b/apps/files/l10n/tr.json @@ -260,16 +260,15 @@ "Creating file" : "Dosya ekleniyor", "Blank" : "Boş", "Unable to create new file from template" : "Kalıptan yeni dosya eklenemedi", + "Deletion cancelled" : "Silme iptal edildi", "Delete permanently" : "Kalıcı olarak sil", "Delete and unshare" : "Sil ve paylaşımdan kaldır", "Leave these shares" : "Bu paylaşımlardan ayrıl", "Disconnect storages" : "Depolama alanlarının bağlantısını kes", "Delete files" : "Dosyaları sil", "Delete folders" : "Klasörleri sil", - "You are about to delete {count} items." : "{count} ögeyi silmek üzeresiniz.", "Confirm deletion" : "Silmeyi onaylayın", "Cancel" : "İptal", - "Deletion cancelled" : "Silme iptal edildi", "Destination is not a folder" : "Hedef bir klasör değil", "This file/folder is already in that directory" : "Dosya ya da klasör bu klasörde zaten var", "You cannot move a file/folder onto itself or into a subfolder of itself" : "Bir dosyayı ya da klasörü kendi üzerine veya kendisinin alt klasörüne taşıyamazsınız", diff --git a/apps/files/l10n/uk.js b/apps/files/l10n/uk.js index 4b40670bcff..9dd3411a0d6 100644 --- a/apps/files/l10n/uk.js +++ b/apps/files/l10n/uk.js @@ -263,16 +263,15 @@ OC.L10N.register( "Creating file" : "Створення файлу", "Blank" : "Порожньо", "Unable to create new file from template" : "Неможливо створити новий файл з шаблону", + "Deletion cancelled" : "Вилучення скасовано", "Delete permanently" : "Вилучити назавжди", "Delete and unshare" : "Вилучити та прибрати спільний доступ", "Leave these shares" : "Вийти зі спільного доступу", "Disconnect storages" : "Від'єднати сховища", "Delete files" : "Вилучити файли", "Delete folders" : "Вилучити каталоги", - "You are about to delete {count} items." : "Ви намагаєтеся вилучити {count} ресурсів.", "Confirm deletion" : "Підтвердіть вилучення", "Cancel" : "Скасувати", - "Deletion cancelled" : "Вилучення скасовано", "Destination is not a folder" : "Місце призначення не є каталогом", "This file/folder is already in that directory" : "Такий файл чи каталог вже присутні в цьому каталозі", "You cannot move a file/folder onto itself or into a subfolder of itself" : "Неможливо перемістити файл чи каталог до самого себе або у цей саме підкаталог", diff --git a/apps/files/l10n/uk.json b/apps/files/l10n/uk.json index 28395ace65f..63e1026d5c7 100644 --- a/apps/files/l10n/uk.json +++ b/apps/files/l10n/uk.json @@ -261,16 +261,15 @@ "Creating file" : "Створення файлу", "Blank" : "Порожньо", "Unable to create new file from template" : "Неможливо створити новий файл з шаблону", + "Deletion cancelled" : "Вилучення скасовано", "Delete permanently" : "Вилучити назавжди", "Delete and unshare" : "Вилучити та прибрати спільний доступ", "Leave these shares" : "Вийти зі спільного доступу", "Disconnect storages" : "Від'єднати сховища", "Delete files" : "Вилучити файли", "Delete folders" : "Вилучити каталоги", - "You are about to delete {count} items." : "Ви намагаєтеся вилучити {count} ресурсів.", "Confirm deletion" : "Підтвердіть вилучення", "Cancel" : "Скасувати", - "Deletion cancelled" : "Вилучення скасовано", "Destination is not a folder" : "Місце призначення не є каталогом", "This file/folder is already in that directory" : "Такий файл чи каталог вже присутні в цьому каталозі", "You cannot move a file/folder onto itself or into a subfolder of itself" : "Неможливо перемістити файл чи каталог до самого себе або у цей саме підкаталог", diff --git a/apps/files/l10n/zh_CN.js b/apps/files/l10n/zh_CN.js index d7086939aab..563167f9345 100644 --- a/apps/files/l10n/zh_CN.js +++ b/apps/files/l10n/zh_CN.js @@ -263,16 +263,15 @@ OC.L10N.register( "Creating file" : "正在创建文件", "Blank" : "空白", "Unable to create new file from template" : "无法从模板创建新文件", + "Deletion cancelled" : "已取消删除", "Delete permanently" : "彻底删除", "Delete and unshare" : "删除并取消分享", "Leave these shares" : "离开此分享", "Disconnect storages" : "断开与存储空间的连接", "Delete files" : "删除文件", "Delete folders" : "删除文件夹", - "You are about to delete {count} items." : "您将删除 {count} 个项目", "Confirm deletion" : "确认删除", "Cancel" : "取消", - "Deletion cancelled" : "已取消删除", "Destination is not a folder" : "目标不是一个文件夹", "This file/folder is already in that directory" : "该文件/文件夹已经存在与该目录中", "You cannot move a file/folder onto itself or into a subfolder of itself" : "你无法将文件/文件夹移动至其自身或子文件夹中", diff --git a/apps/files/l10n/zh_CN.json b/apps/files/l10n/zh_CN.json index c023dc52509..6b864e14913 100644 --- a/apps/files/l10n/zh_CN.json +++ b/apps/files/l10n/zh_CN.json @@ -261,16 +261,15 @@ "Creating file" : "正在创建文件", "Blank" : "空白", "Unable to create new file from template" : "无法从模板创建新文件", + "Deletion cancelled" : "已取消删除", "Delete permanently" : "彻底删除", "Delete and unshare" : "删除并取消分享", "Leave these shares" : "离开此分享", "Disconnect storages" : "断开与存储空间的连接", "Delete files" : "删除文件", "Delete folders" : "删除文件夹", - "You are about to delete {count} items." : "您将删除 {count} 个项目", "Confirm deletion" : "确认删除", "Cancel" : "取消", - "Deletion cancelled" : "已取消删除", "Destination is not a folder" : "目标不是一个文件夹", "This file/folder is already in that directory" : "该文件/文件夹已经存在与该目录中", "You cannot move a file/folder onto itself or into a subfolder of itself" : "你无法将文件/文件夹移动至其自身或子文件夹中", diff --git a/apps/files/l10n/zh_HK.js b/apps/files/l10n/zh_HK.js index b4bcda422c3..676193403e9 100644 --- a/apps/files/l10n/zh_HK.js +++ b/apps/files/l10n/zh_HK.js @@ -217,6 +217,7 @@ OC.L10N.register( "Could not refresh storage stats" : "無法更新儲存統計數據", "Your storage is full, files can not be updated or synced anymore!" : "您的儲存空間已滿,沒有辦法再更新或是同步檔案!", "Create" : "創建", + "This name is already in use." : "這個用戶名稱已經有人使用了。", "Fill template fields" : "填寫模板欄位", "Submitting fields…" : "正在遞交欄位 …", "Submit" : "遞交", @@ -275,16 +276,17 @@ OC.L10N.register( "Creating file" : "創建檔案中", "Blank" : "空白", "Unable to create new file from template" : "無法從模板創建新檔案", + "Deletion cancelled" : "刪除已取消", "Delete permanently" : "永久刪除", "Delete and unshare" : "刪除並取消分享", "Leave these shares" : "保留這些分享", "Disconnect storages" : "解除連結儲存空間", "Delete files" : "刪除檔案", "Delete folders" : "刪除資料夾", - "You are about to delete {count} items." : "您即將刪除 {count} 項。", + "_You are about to permanently delete {count} item_::_You are about to permanently delete {count} items_" : ["您即將永久刪除 {count} 個項目"], + "_You are about to delete {count} item_::_You are about to delete {count} items_" : ["您即將刪除 {count} 個項目"], "Confirm deletion" : "確認刪除", "Cancel" : "取消", - "Deletion cancelled" : "刪除已取消", "Destination is not a folder" : "目標地不是資料夾", "This file/folder is already in that directory" : "此檔案/資料夾已在該目錄中", "You cannot move a file/folder onto itself or into a subfolder of itself" : "您無法將檔案/資料夾移動到其自身或子資料夾中", diff --git a/apps/files/l10n/zh_HK.json b/apps/files/l10n/zh_HK.json index 8789472d455..89bc36075b0 100644 --- a/apps/files/l10n/zh_HK.json +++ b/apps/files/l10n/zh_HK.json @@ -215,6 +215,7 @@ "Could not refresh storage stats" : "無法更新儲存統計數據", "Your storage is full, files can not be updated or synced anymore!" : "您的儲存空間已滿,沒有辦法再更新或是同步檔案!", "Create" : "創建", + "This name is already in use." : "這個用戶名稱已經有人使用了。", "Fill template fields" : "填寫模板欄位", "Submitting fields…" : "正在遞交欄位 …", "Submit" : "遞交", @@ -273,16 +274,17 @@ "Creating file" : "創建檔案中", "Blank" : "空白", "Unable to create new file from template" : "無法從模板創建新檔案", + "Deletion cancelled" : "刪除已取消", "Delete permanently" : "永久刪除", "Delete and unshare" : "刪除並取消分享", "Leave these shares" : "保留這些分享", "Disconnect storages" : "解除連結儲存空間", "Delete files" : "刪除檔案", "Delete folders" : "刪除資料夾", - "You are about to delete {count} items." : "您即將刪除 {count} 項。", + "_You are about to permanently delete {count} item_::_You are about to permanently delete {count} items_" : ["您即將永久刪除 {count} 個項目"], + "_You are about to delete {count} item_::_You are about to delete {count} items_" : ["您即將刪除 {count} 個項目"], "Confirm deletion" : "確認刪除", "Cancel" : "取消", - "Deletion cancelled" : "刪除已取消", "Destination is not a folder" : "目標地不是資料夾", "This file/folder is already in that directory" : "此檔案/資料夾已在該目錄中", "You cannot move a file/folder onto itself or into a subfolder of itself" : "您無法將檔案/資料夾移動到其自身或子資料夾中", diff --git a/apps/files/l10n/zh_TW.js b/apps/files/l10n/zh_TW.js index c5d35b69243..d0d5694d0e8 100644 --- a/apps/files/l10n/zh_TW.js +++ b/apps/files/l10n/zh_TW.js @@ -217,6 +217,7 @@ OC.L10N.register( "Could not refresh storage stats" : "無法重新整理儲存空間統計資料", "Your storage is full, files can not be updated or synced anymore!" : "您的儲存空間已滿,沒有辦法再更新或是同步檔案!", "Create" : "建立", + "This name is already in use." : "此名稱已使用。", "Fill template fields" : "檔案範本欄位", "Submitting fields…" : "正在遞交欄位……", "Submit" : "遞交", @@ -275,16 +276,17 @@ OC.L10N.register( "Creating file" : "正在建立檔案", "Blank" : "空白", "Unable to create new file from template" : "無法從範本建立新檔案", + "Deletion cancelled" : "刪除已取消", "Delete permanently" : "永久刪除", "Delete and unshare" : "刪除並取消分享", "Leave these shares" : "離開這些分享", "Disconnect storages" : "解除連結儲存空間", "Delete files" : "刪除檔案", "Delete folders" : "刪除資料夾", - "You are about to delete {count} items." : "您將要移除 {count} 個項目。", + "_You are about to permanently delete {count} item_::_You are about to permanently delete {count} items_" : ["您將要永久刪除 {count} 個項目"], + "_You are about to delete {count} item_::_You are about to delete {count} items_" : ["您將要刪除 {count} 個項目"], "Confirm deletion" : "確認刪除", "Cancel" : "取消", - "Deletion cancelled" : "刪除已取消", "Destination is not a folder" : "目的地不是資料夾", "This file/folder is already in that directory" : "此檔案/資料夾已在該目錄中", "You cannot move a file/folder onto itself or into a subfolder of itself" : "您無法將檔案/資料夾移動到其自身或子資料夾中", diff --git a/apps/files/l10n/zh_TW.json b/apps/files/l10n/zh_TW.json index 6c45ac2fbd8..88d2c35b945 100644 --- a/apps/files/l10n/zh_TW.json +++ b/apps/files/l10n/zh_TW.json @@ -215,6 +215,7 @@ "Could not refresh storage stats" : "無法重新整理儲存空間統計資料", "Your storage is full, files can not be updated or synced anymore!" : "您的儲存空間已滿,沒有辦法再更新或是同步檔案!", "Create" : "建立", + "This name is already in use." : "此名稱已使用。", "Fill template fields" : "檔案範本欄位", "Submitting fields…" : "正在遞交欄位……", "Submit" : "遞交", @@ -273,16 +274,17 @@ "Creating file" : "正在建立檔案", "Blank" : "空白", "Unable to create new file from template" : "無法從範本建立新檔案", + "Deletion cancelled" : "刪除已取消", "Delete permanently" : "永久刪除", "Delete and unshare" : "刪除並取消分享", "Leave these shares" : "離開這些分享", "Disconnect storages" : "解除連結儲存空間", "Delete files" : "刪除檔案", "Delete folders" : "刪除資料夾", - "You are about to delete {count} items." : "您將要移除 {count} 個項目。", + "_You are about to permanently delete {count} item_::_You are about to permanently delete {count} items_" : ["您將要永久刪除 {count} 個項目"], + "_You are about to delete {count} item_::_You are about to delete {count} items_" : ["您將要刪除 {count} 個項目"], "Confirm deletion" : "確認刪除", "Cancel" : "取消", - "Deletion cancelled" : "刪除已取消", "Destination is not a folder" : "目的地不是資料夾", "This file/folder is already in that directory" : "此檔案/資料夾已在該目錄中", "You cannot move a file/folder onto itself or into a subfolder of itself" : "您無法將檔案/資料夾移動到其自身或子資料夾中", diff --git a/apps/files/lib/AppInfo/Application.php b/apps/files/lib/AppInfo/Application.php index b4fd04c9fbc..de0542c8ad3 100644 --- a/apps/files/lib/AppInfo/Application.php +++ b/apps/files/lib/AppInfo/Application.php @@ -9,7 +9,6 @@ declare(strict_types=1); namespace OCA\Files\AppInfo; use Closure; -use OC\Search\Provider\File; use OCA\Files\Capabilities; use OCA\Files\Collaboration\Resources\Listener; use OCA\Files\Collaboration\Resources\ResourceProvider; @@ -45,7 +44,6 @@ use OCP\Files\Events\Node\NodeCopiedEvent; use OCP\IConfig; use OCP\IPreview; use OCP\IRequest; -use OCP\ISearch; use OCP\IServerContainer; use OCP\ITagManager; use OCP\IUserSession; @@ -127,7 +125,6 @@ class Application extends App implements IBootstrap { public function boot(IBootContext $context): void { $context->injectFn(Closure::fromCallable([$this, 'registerCollaboration'])); $context->injectFn([Listener::class, 'register']); - $context->injectFn(Closure::fromCallable([$this, 'registerSearchProvider'])); $this->registerTemplates(); $this->registerHooks(); } @@ -136,10 +133,6 @@ class Application extends App implements IBootstrap { $providerManager->registerResourceProvider(ResourceProvider::class); } - private function registerSearchProvider(ISearch $search): void { - $search->registerProvider(File::class, ['apps' => ['files']]); - } - private function registerTemplates(): void { $templateManager = \OC_Helper::getFileTemplateManager(); $templateManager->registerTemplate('application/vnd.oasis.opendocument.presentation', 'core/templates/filetemplates/template.odp'); diff --git a/apps/files/src/actions/deleteAction.ts b/apps/files/src/actions/deleteAction.ts index 53b5690d4dd..63335db194e 100644 --- a/apps/files/src/actions/deleteAction.ts +++ b/apps/files/src/actions/deleteAction.ts @@ -11,7 +11,7 @@ import CloseSvg from '@mdi/svg/svg/close.svg?raw' import NetworkOffSvg from '@mdi/svg/svg/network-off.svg?raw' import TrashCanSvg from '@mdi/svg/svg/trash-can.svg?raw' -import logger from '../logger.js' +import logger from '../logger.ts' import { askConfirmation, canDisconnectOnly, canUnshareOnly, deleteNode, displayName, isTrashbinEnabled } from './deleteUtils' const queue = new PQueue({ concurrency: 5 }) diff --git a/apps/files/src/actions/downloadAction.spec.ts b/apps/files/src/actions/downloadAction.spec.ts index 8aca20eb4d4..59e533441be 100644 --- a/apps/files/src/actions/downloadAction.spec.ts +++ b/apps/files/src/actions/downloadAction.spec.ts @@ -4,7 +4,7 @@ */ import { action } from './downloadAction' import { expect } from '@jest/globals' -import { File, Folder, Permission, View, FileAction } from '@nextcloud/files' +import { File, Folder, Permission, View, FileAction, DefaultType } from '@nextcloud/files' const view = { id: 'files', @@ -23,7 +23,7 @@ describe('Download action conditions tests', () => { expect(action.id).toBe('download') expect(action.displayName([], view)).toBe('Download') expect(action.iconSvgInline([], view)).toBe('<svg>SvgMock</svg>') - expect(action.default).toBeUndefined() + expect(action.default).toBe(DefaultType.DEFAULT) expect(action.order).toBe(30) }) }) diff --git a/apps/files/src/actions/downloadAction.ts b/apps/files/src/actions/downloadAction.ts index a63beaca3f2..cce1e48579a 100644 --- a/apps/files/src/actions/downloadAction.ts +++ b/apps/files/src/actions/downloadAction.ts @@ -2,9 +2,12 @@ * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later */ +import type { ShareAttribute } from '../../../files_sharing/src/sharing' + +import { FileAction, Permission, Node, FileType, View, DefaultType } from '@nextcloud/files' +import { t } from '@nextcloud/l10n' import { generateUrl } from '@nextcloud/router' -import { FileAction, Permission, Node, FileType, View } from '@nextcloud/files' -import { translate as t } from '@nextcloud/l10n' + import ArrowDownSvg from '@mdi/svg/svg/arrow-down.svg?raw' const triggerDownload = function(url: string) { @@ -31,7 +34,7 @@ const isDownloadable = function(node: Node) { // If the mount type is a share, ensure it got download permissions. if (node.attributes['mount-type'] === 'shared') { - const shareAttributes = JSON.parse(node.attributes['share-attributes'] ?? 'null') + const shareAttributes = JSON.parse(node.attributes['share-attributes'] ?? '[]') as Array<ShareAttribute> const downloadAttribute = shareAttributes?.find?.((attribute: { scope: string; key: string }) => attribute.scope === 'permissions' && attribute.key === 'download') if (downloadAttribute !== undefined && downloadAttribute.value === false) { return false @@ -43,6 +46,8 @@ const isDownloadable = function(node: Node) { export const action = new FileAction({ id: 'download', + default: DefaultType.DEFAULT, + displayName: () => t('files', 'Download'), iconSvgInline: () => ArrowDownSvg, diff --git a/apps/files/src/actions/editLocallyAction.spec.ts b/apps/files/src/actions/editLocallyAction.spec.ts index 7131cb86f16..ca2e1d05f96 100644 --- a/apps/files/src/actions/editLocallyAction.spec.ts +++ b/apps/files/src/actions/editLocallyAction.spec.ts @@ -5,9 +5,23 @@ import { action } from './editLocallyAction' import { expect } from '@jest/globals' import { File, Permission, View, FileAction } from '@nextcloud/files' -import * as ncDialogs from '@nextcloud/dialogs' +import { DialogBuilder, showError } from '@nextcloud/dialogs' import axios from '@nextcloud/axios' +const dialogBuilder = { + setName: jest.fn().mockReturnThis(), + setText: jest.fn().mockReturnThis(), + setButtons: jest.fn().mockReturnThis(), + build: jest.fn().mockReturnValue({ + show: jest.fn().mockResolvedValue(true), + }), +} as unknown as DialogBuilder + +jest.mock('@nextcloud/dialogs', () => ({ + DialogBuilder: jest.fn(() => dialogBuilder), + showError: jest.fn(), +})) + const view = { id: 'files', name: 'Files', @@ -16,7 +30,8 @@ const view = { // Mock webroot variable beforeAll(() => { // eslint-disable-next-line @typescript-eslint/no-explicit-any - (window as any)._oc_webroot = '' + (window as any)._oc_webroot = ''; + (window as any).OCA = { Viewer: { open: jest.fn() } } }) describe('Edit locally action conditions tests', () => { @@ -44,7 +59,7 @@ describe('Edit locally action enabled tests', () => { expect(action.enabled!([file], view)).toBe(true) }) - test('Disabled for non-dav ressources', () => { + test('Disabled for non-dav resources', () => { const file = new File({ id: 1, source: 'https://domain.com/data/foobar.txt', @@ -104,8 +119,11 @@ describe('Edit locally action enabled tests', () => { describe('Edit locally action execute tests', () => { test('Edit locally opens proper URL', async () => { - jest.spyOn(axios, 'post').mockImplementation(async () => ({ data: { ocs: { data: { token: 'foobar' } } } })) - jest.spyOn(ncDialogs, 'showError') + jest.spyOn(axios, 'post').mockImplementation(async () => ({ + data: { ocs: { data: { token: 'foobar' } } } + })) + const mockedShowError = jest.mocked(showError) + const spyDialogBuilder = jest.spyOn(dialogBuilder, 'build') const file = new File({ id: 1, @@ -117,17 +135,20 @@ describe('Edit locally action execute tests', () => { const exec = await action.exec(file, view, '/') + expect(spyDialogBuilder).toBeCalled() + // Silent action expect(exec).toBe(null) expect(axios.post).toBeCalledTimes(1) expect(axios.post).toBeCalledWith('http://localhost/ocs/v2.php/apps/files/api/v1/openlocaleditor?format=json', { path: '/foobar.txt' }) - expect(ncDialogs.showError).toBeCalledTimes(0) + expect(mockedShowError).toBeCalledTimes(0) expect(window.location.href).toBe('nc://open/test@localhost/foobar.txt?token=foobar') }) - test('Edit locally fails and show error', async () => { + test('Edit locally fails and shows error', async () => { jest.spyOn(axios, 'post').mockImplementation(async () => ({})) - jest.spyOn(ncDialogs, 'showError') + const mockedShowError = jest.mocked(showError) + const spyDialogBuilder = jest.spyOn(dialogBuilder, 'build') const file = new File({ id: 1, @@ -139,12 +160,14 @@ describe('Edit locally action execute tests', () => { const exec = await action.exec(file, view, '/') + expect(spyDialogBuilder).toBeCalled() + // Silent action expect(exec).toBe(null) expect(axios.post).toBeCalledTimes(1) expect(axios.post).toBeCalledWith('http://localhost/ocs/v2.php/apps/files/api/v1/openlocaleditor?format=json', { path: '/foobar.txt' }) - expect(ncDialogs.showError).toBeCalledTimes(1) - expect(ncDialogs.showError).toBeCalledWith('Failed to redirect to client') + expect(mockedShowError).toBeCalledTimes(1) + expect(mockedShowError).toBeCalledWith('Failed to redirect to client') expect(window.location.href).toBe('http://localhost/') }) }) diff --git a/apps/files/src/actions/editLocallyAction.ts b/apps/files/src/actions/editLocallyAction.ts index 7e44927eba2..a2ffd6f054d 100644 --- a/apps/files/src/actions/editLocallyAction.ts +++ b/apps/files/src/actions/editLocallyAction.ts @@ -6,11 +6,62 @@ import { encodePath } from '@nextcloud/paths' import { generateOcsUrl } from '@nextcloud/router' import { getCurrentUser } from '@nextcloud/auth' import { FileAction, Permission, type Node } from '@nextcloud/files' -import { showError } from '@nextcloud/dialogs' +import { showError, DialogBuilder } from '@nextcloud/dialogs' import { translate as t } from '@nextcloud/l10n' import axios from '@nextcloud/axios' - import LaptopSvg from '@mdi/svg/svg/laptop.svg?raw' +import IconCancel from '@mdi/svg/svg/cancel.svg?raw' +import IconCheck from '@mdi/svg/svg/check.svg?raw' + +const confirmLocalEditDialog = ( + localEditCallback: (openingLocally: boolean) => void = () => {}, +) => { + let callbackCalled = false + + return (new DialogBuilder()) + .setName(t('files', 'Edit file locally')) + .setText(t('files', 'The file should now open locally. If you don\'t see this happening, make sure that the desktop client is installed on your system.')) + .setButtons([ + { + label: t('files', 'Retry local edit'), + icon: IconCancel, + callback: () => { + callbackCalled = true + localEditCallback(false) + }, + }, + { + label: t('files', 'Edit online'), + icon: IconCheck, + type: 'primary', + callback: () => { + callbackCalled = true + localEditCallback(true) + }, + }, + ]) + .build() + .show() + .then(() => { + // Ensure the callback is called even if the dialog is dismissed in other ways + if (!callbackCalled) { + localEditCallback(false) + } + }) +} + +const attemptOpenLocalClient = async (path: string) => { + openLocalClient(path) + confirmLocalEditDialog( + (openLocally: boolean) => { + if (!openLocally) { + window.OCA.Viewer.open({ path }) + return + } + openLocalClient(path) + }, + ) +} const openLocalClient = async function(path: string) { const link = generateOcsUrl('apps/files/api/v1') + '/openlocaleditor?format=json' @@ -43,7 +94,7 @@ export const action = new FileAction({ }, async exec(node: Node) { - openLocalClient(node.path) + attemptOpenLocalClient(node.path) return null }, diff --git a/apps/files/src/actions/favoriteAction.ts b/apps/files/src/actions/favoriteAction.ts index 3815fc1a9a3..bb7d82ba2cd 100644 --- a/apps/files/src/actions/favoriteAction.ts +++ b/apps/files/src/actions/favoriteAction.ts @@ -12,7 +12,7 @@ import Vue from 'vue' import StarOutlineSvg from '@mdi/svg/svg/star-outline.svg?raw' import StarSvg from '@mdi/svg/svg/star.svg?raw' -import logger from '../logger.js' +import logger from '../logger.ts' import { encodePath } from '@nextcloud/paths' // If any of the nodes is not favorited, we display the favorite action. diff --git a/apps/files/src/actions/moveOrCopyActionUtils.ts b/apps/files/src/actions/moveOrCopyActionUtils.ts index 091df56e655..d2e276b2b93 100644 --- a/apps/files/src/actions/moveOrCopyActionUtils.ts +++ b/apps/files/src/actions/moveOrCopyActionUtils.ts @@ -4,6 +4,8 @@ */ import type { Folder, Node } from '@nextcloud/files' +import type { ShareAttribute } from '../../../files_sharing/src/sharing' + import { Permission } from '@nextcloud/files' import PQueue from 'p-queue' @@ -23,12 +25,6 @@ export const getQueue = () => { return queue } -type ShareAttribute = { - value: boolean|string|number|null|object|Array<unknown> - key: string - scope: string -} - export enum MoveCopyAction { MOVE = 'Move', COPY = 'Copy', diff --git a/apps/files/src/actions/sidebarAction.ts b/apps/files/src/actions/sidebarAction.ts index 21b5dfc2878..f00088f8d0c 100644 --- a/apps/files/src/actions/sidebarAction.ts +++ b/apps/files/src/actions/sidebarAction.ts @@ -6,7 +6,7 @@ import { Permission, type Node, View, FileAction } from '@nextcloud/files' import { translate as t } from '@nextcloud/l10n' import InformationSvg from '@mdi/svg/svg/information-variant.svg?raw' -import logger from '../logger.js' +import logger from '../logger.ts' export const ACTION_DETAILS = 'details' diff --git a/apps/files/src/components/BreadCrumbs.vue b/apps/files/src/components/BreadCrumbs.vue index 169bc504ab9..d93330e1d29 100644 --- a/apps/files/src/components/BreadCrumbs.vue +++ b/apps/files/src/components/BreadCrumbs.vue @@ -273,6 +273,7 @@ export default defineComponent({ height: 100%; margin-block: 0; margin-inline: 10px; + min-width: 0; :deep() { a { diff --git a/apps/files/src/components/DragAndDropNotice.vue b/apps/files/src/components/DragAndDropNotice.vue index 0483e71f43b..cc0dc9104b2 100644 --- a/apps/files/src/components/DragAndDropNotice.vue +++ b/apps/files/src/components/DragAndDropNotice.vue @@ -37,7 +37,7 @@ import TrayArrowDownIcon from 'vue-material-design-icons/TrayArrowDown.vue' import { useNavigation } from '../composables/useNavigation' import { dataTransferToFileTree, onDropExternalFiles } from '../services/DropService' -import logger from '../logger.js' +import logger from '../logger.ts' export default defineComponent({ name: 'DragAndDropNotice', diff --git a/apps/files/src/components/FileEntry.vue b/apps/files/src/components/FileEntry.vue index 298500dd472..659e068e08b 100644 --- a/apps/files/src/components/FileEntry.vue +++ b/apps/files/src/components/FileEntry.vue @@ -184,7 +184,7 @@ export default defineComponent({ size() { const size = this.source.size - if (!size || size < 0) { + if (size === undefined || isNaN(size) || size < 0) { return this.t('files', 'Pending') } return formatFileSize(size, true) @@ -194,7 +194,7 @@ export default defineComponent({ const maxOpacitySize = 10 * 1024 * 1024 const size = this.source.size - if (!size || isNaN(size) || size < 0) { + if (size === undefined || isNaN(size) || size < 0) { return {} } diff --git a/apps/files/src/components/FileEntry/FileEntryActions.vue b/apps/files/src/components/FileEntry/FileEntryActions.vue index 3df4289b1a0..2c3444a19fd 100644 --- a/apps/files/src/components/FileEntry/FileEntryActions.vue +++ b/apps/files/src/components/FileEntry/FileEntryActions.vue @@ -79,10 +79,10 @@ import type { PropType, ShallowRef } from 'vue' import type { FileAction, Node, View } from '@nextcloud/files' -import { DefaultType, NodeStatus, getFileActions } from '@nextcloud/files' +import { DefaultType, NodeStatus } from '@nextcloud/files' import { showError, showSuccess } from '@nextcloud/dialogs' import { translate as t } from '@nextcloud/l10n' -import { defineComponent } from 'vue' +import { defineComponent, inject } from 'vue' import NcActionButton from '@nextcloud/vue/dist/Components/NcActionButton.js' import NcActions from '@nextcloud/vue/dist/Components/NcActions.js' @@ -93,10 +93,7 @@ import ArrowLeftIcon from 'vue-material-design-icons/ArrowLeft.vue' import CustomElementRender from '../CustomElementRender.vue' import { useNavigation } from '../../composables/useNavigation' -import logger from '../../logger.js' - -// The registered actions list -const actions = getFileActions() +import logger from '../../logger.ts' export default defineComponent({ name: 'FileEntryActions', @@ -136,10 +133,12 @@ export default defineComponent({ setup() { const { currentView } = useNavigation() + const enabledFileActions = inject<FileAction[]>('enabledFileActions', []) return { // The file list is guaranteed to be only shown with active view currentView: currentView as ShallowRef<View>, + enabledFileActions, } }, @@ -158,23 +157,12 @@ export default defineComponent({ return this.source.status === NodeStatus.LOADING }, - // Sorted actions that are enabled for this node - enabledActions() { - if (this.source.status === NodeStatus.FAILED) { - return [] - } - - return actions - .filter(action => !action.enabled || action.enabled([this.source], this.currentView)) - .sort((a, b) => (a.order || 0) - (b.order || 0)) - }, - // Enabled action that are displayed inline enabledInlineActions() { if (this.filesListWidth < 768 || this.gridMode) { return [] } - return this.enabledActions.filter(action => action?.inline?.(this.source, this.currentView)) + return this.enabledFileActions.filter(action => action?.inline?.(this.source, this.currentView)) }, // Enabled action that are displayed inline with a custom render function @@ -182,12 +170,7 @@ export default defineComponent({ if (this.gridMode) { return [] } - return this.enabledActions.filter(action => typeof action.renderInline === 'function') - }, - - // Default actions - enabledDefaultActions() { - return this.enabledActions.filter(action => !!action?.default) + return this.enabledFileActions.filter(action => typeof action.renderInline === 'function') }, // Actions shown in the menu @@ -202,7 +185,7 @@ export default defineComponent({ // Showing inline first for the NcActions inline prop ...this.enabledInlineActions, // Then the rest - ...this.enabledActions.filter(action => action.default !== DefaultType.HIDDEN && typeof action.renderInline !== 'function'), + ...this.enabledFileActions.filter(action => action.default !== DefaultType.HIDDEN && typeof action.renderInline !== 'function'), ].filter((value, index, self) => { // Then we filter duplicates to prevent inline actions to be shown twice return index === self.findIndex(action => action.id === value.id) @@ -216,7 +199,7 @@ export default defineComponent({ }, enabledSubmenuActions() { - return this.enabledActions + return this.enabledFileActions .filter(action => action.parent) .reduce((arr, action) => { if (!arr[action.parent!]) { @@ -305,14 +288,6 @@ export default defineComponent({ } } }, - execDefaultAction(event) { - if (this.enabledDefaultActions.length > 0) { - event.preventDefault() - event.stopPropagation() - // Execute the first default action if any - this.enabledDefaultActions[0].exec(this.source, this.currentView, this.currentDir) - } - }, isMenu(id: string) { return this.enabledSubmenuActions[id]?.length > 0 diff --git a/apps/files/src/components/FileEntry/FileEntryCheckbox.vue b/apps/files/src/components/FileEntry/FileEntryCheckbox.vue index 987b48ef8ae..059e2f89f5f 100644 --- a/apps/files/src/components/FileEntry/FileEntryCheckbox.vue +++ b/apps/files/src/components/FileEntry/FileEntryCheckbox.vue @@ -14,17 +14,20 @@ </template> <script lang="ts"> -import { Node, FileType } from '@nextcloud/files' +import type { Node } from '@nextcloud/files' +import type { PropType } from 'vue' +import type { FileSource } from '../../types.ts' + +import { FileType } from '@nextcloud/files' import { translate as t } from '@nextcloud/l10n' -import { type PropType, defineComponent } from 'vue' +import { defineComponent } from 'vue' import NcCheckboxRadioSwitch from '@nextcloud/vue/dist/Components/NcCheckboxRadioSwitch.js' import NcLoadingIcon from '@nextcloud/vue/dist/Components/NcLoadingIcon.js' import { useKeyboardStore } from '../../store/keyboard.ts' import { useSelectionStore } from '../../store/selection.ts' -import logger from '../../logger.js' -import type { FileSource } from '../../types.ts' +import logger from '../../logger.ts' export default defineComponent({ name: 'FileEntryCheckbox', diff --git a/apps/files/src/components/FileEntry/FileEntryName.vue b/apps/files/src/components/FileEntry/FileEntryName.vue index 7a6ad2a1051..1d45f7de17e 100644 --- a/apps/files/src/components/FileEntry/FileEntryName.vue +++ b/apps/files/src/components/FileEntry/FileEntryName.vue @@ -37,22 +37,23 @@ </template> <script lang="ts"> -import type { Node } from '@nextcloud/files' +import type { FileAction, Node } from '@nextcloud/files' import type { PropType } from 'vue' import axios, { isAxiosError } from '@nextcloud/axios' import { showError, showSuccess } from '@nextcloud/dialogs' import { emit } from '@nextcloud/event-bus' -import { FileType, NodeStatus, Permission } from '@nextcloud/files' +import { FileType, NodeStatus } from '@nextcloud/files' import { translate as t } from '@nextcloud/l10n' -import { defineComponent } from 'vue' +import { defineComponent, inject } from 'vue' import NcTextField from '@nextcloud/vue/dist/Components/NcTextField.js' import { useNavigation } from '../../composables/useNavigation' +import { useRouteParameters } from '../../composables/useRouteParameters.ts' import { useRenamingStore } from '../../store/renaming.ts' import { getFilenameValidity } from '../../utils/filenameValidity.ts' -import logger from '../../logger.js' +import logger from '../../logger.ts' export default defineComponent({ name: 'FileEntryName', @@ -96,10 +97,15 @@ export default defineComponent({ setup() { const { currentView } = useNavigation() + const { directory } = useRouteParameters() const renamingStore = useRenamingStore() + const defaultFileAction = inject<FileAction | undefined>('defaultFileAction') + return { currentView, + defaultFileAction, + directory, renamingStore, } @@ -139,32 +145,20 @@ export default defineComponent({ } } - const enabledDefaultActions = this.$parent?.$refs?.actions?.enabledDefaultActions - if (enabledDefaultActions?.length > 0) { - const action = enabledDefaultActions[0] - const displayName = action.displayName([this.source], this.currentView) + if (this.defaultFileAction && this.currentView) { + const displayName = this.defaultFileAction.displayName([this.source], this.currentView) return { - is: 'a', + is: 'button', params: { + 'aria-label': displayName, title: displayName, - role: 'button', - tabindex: '0', - }, - } - } - - if (this.source?.permissions & Permission.READ) { - return { - is: 'a', - params: { - download: this.source.basename, - href: this.source.source, - title: t('files', 'Download file {name}', { name: `${this.basename}${this.extension}` }), tabindex: '0', }, } } + // nothing interactive here, there is no default action + // so if not even the download action works we only can show the list entry return { is: 'span', } @@ -280,12 +274,15 @@ export default defineComponent({ // Reset the renaming store this.stopRenaming() this.$nextTick(() => { - this.$refs.basename?.focus() + const nameContainter = this.$refs.basename as HTMLElement | undefined + nameContainter?.focus() }) } catch (error) { logger.error('Error while renaming file', { error }) + // Rename back as it failed this.source.rename(oldName) - this.$refs.renameInput?.focus() + // And ensure we reset to the renaming state + this.startRenaming() if (isAxiosError(error)) { // TODO: 409 means current folder does not exist, redirect ? @@ -293,7 +290,7 @@ export default defineComponent({ showError(t('files', 'Could not rename "{oldName}", it does not exist any more', { oldName })) return } else if (error?.response?.status === 412) { - showError(t('files', 'The name "{newName}" is already used in the folder "{dir}". Please choose a different name.', { newName, dir: this.currentDir })) + showError(t('files', 'The name "{newName}" is already used in the folder "{dir}". Please choose a different name.', { newName, dir: this.directory })) return } } @@ -309,3 +306,16 @@ export default defineComponent({ }, }) </script> + +<style scoped lang="scss"> +button.files-list__row-name-link { + background-color: unset; + border: none; + font-weight: normal; + + &:active { + // No active styles - handled by the row entry + background-color: unset !important; + } +} +</style> diff --git a/apps/files/src/components/FileEntryMixin.ts b/apps/files/src/components/FileEntryMixin.ts index d9117053dd8..8681e9c3cb2 100644 --- a/apps/files/src/components/FileEntryMixin.ts +++ b/apps/files/src/components/FileEntryMixin.ts @@ -3,11 +3,11 @@ * SPDX-License-Identifier: AGPL-3.0-or-later */ -import type { ComponentPublicInstance, PropType } from 'vue' +import type { PropType } from 'vue' import type { FileSource } from '../types.ts' import { showError } from '@nextcloud/dialogs' -import { FileType, Permission, Folder, File as NcFile, NodeStatus, Node } from '@nextcloud/files' +import { FileType, Permission, Folder, File as NcFile, NodeStatus, Node, getFileActions } from '@nextcloud/files' import { translate as t } from '@nextcloud/l10n' import { generateUrl } from '@nextcloud/router' import { vOnClickOutside } from '@vueuse/components' @@ -18,11 +18,12 @@ import { action as sidebarAction } from '../actions/sidebarAction.ts' import { getDragAndDropPreview } from '../utils/dragUtils.ts' import { hashCode } from '../utils/hashUtils.ts' import { dataTransferToFileTree, onDropExternalFiles, onDropInternalFiles } from '../services/DropService.ts' -import logger from '../logger.js' -import FileEntryActions from '../components/FileEntry/FileEntryActions.vue' +import logger from '../logger.ts' Vue.directive('onClickOutside', vOnClickOutside) +const actions = getFileActions() + export default defineComponent({ props: { source: { @@ -47,6 +48,13 @@ export default defineComponent({ }, }, + provide() { + return { + defaultFileAction: this.defaultFileAction, + enabledFileActions: this.enabledFileActions, + } + }, + data() { return { loading: '', @@ -178,6 +186,23 @@ export default defineComponent({ color: `color-mix(in srgb, var(--color-main-text) ${ratio}%, var(--color-text-maxcontrast))`, } }, + + /** + * Sorted actions that are enabled for this node + */ + enabledFileActions() { + if (this.source.status === NodeStatus.FAILED) { + return [] + } + + return actions + .filter(action => !action.enabled || action.enabled([this.source], this.currentView)) + .sort((a, b) => (a.order || 0) - (b.order || 0)) + }, + + defaultFileAction() { + return this.enabledFileActions.find((action) => action.default !== undefined) + }, }, watch: { @@ -261,8 +286,15 @@ export default defineComponent({ return false } - const actions = this.$refs.actions as ComponentPublicInstance<typeof FileEntryActions> - actions.execDefaultAction(event) + if (this.defaultFileAction) { + event.preventDefault() + event.stopPropagation() + // Execute the first default action if any + this.defaultFileAction.exec(this.source, this.currentView, this.currentDir) + } else { + // fallback to open in current tab + window.open(generateUrl('/f/{fileId}', { fileId: this.fileid }), '_self') + } }, openDetailsIfAvailable(event) { diff --git a/apps/files/src/components/FileListFilters.vue b/apps/files/src/components/FileListFilters.vue index 5cdc4e877fd..1bd1dd627af 100644 --- a/apps/files/src/components/FileListFilters.vue +++ b/apps/files/src/components/FileListFilters.vue @@ -14,7 +14,14 @@ <NcChip :aria-label-close="t('files', 'Remove filter')" :icon-svg="chip.icon" :text="chip.text" - @close="chip.onclick" /> + @close="chip.onclick"> + <template v-if="chip.user" #icon> + <NcAvatar disable-menu + :show-user-status="false" + :size="24" + :user="chip.user" /> + </template> + </NcChip> </li> </ul> </div> @@ -25,6 +32,7 @@ import { t } from '@nextcloud/l10n' import { computed, ref, watchEffect } from 'vue' import { useFiltersStore } from '../store/filters.ts' +import NcAvatar from '@nextcloud/vue/dist/Components/NcAvatar.js' import NcChip from '@nextcloud/vue/dist/Components/NcChip.js' const filterStore = useFiltersStore() diff --git a/apps/files/src/components/FilesListTableHeader.vue b/apps/files/src/components/FilesListTableHeader.vue index 723dd574da8..e91cfa055c1 100644 --- a/apps/files/src/components/FilesListTableHeader.vue +++ b/apps/files/src/components/FilesListTableHeader.vue @@ -68,7 +68,7 @@ import { useNavigation } from '../composables/useNavigation' import { useFilesStore } from '../store/files.ts' import { useSelectionStore } from '../store/selection.ts' import filesSortingMixin from '../mixins/filesSorting.ts' -import logger from '../logger.js' +import logger from '../logger.ts' export default defineComponent({ name: 'FilesListTableHeader', diff --git a/apps/files/src/components/FilesListTableHeaderActions.vue b/apps/files/src/components/FilesListTableHeaderActions.vue index c73cd05d016..5e32a07eae1 100644 --- a/apps/files/src/components/FilesListTableHeaderActions.vue +++ b/apps/files/src/components/FilesListTableHeaderActions.vue @@ -5,6 +5,7 @@ <template> <div class="files-list__column files-list__row-actions-batch"> <NcActions ref="actionsMenu" + container="#app-content-vue" :disabled="!!loading || areSomeNodesLoading" :force-name="true" :inline="inlineActions" @@ -25,21 +26,25 @@ </template> <script lang="ts"> -import { Node, NodeStatus, View, getFileActions } from '@nextcloud/files' +import type { Node, View } from '@nextcloud/files' +import type { PropType } from 'vue' +import type { FileSource } from '../types' + +import { NodeStatus, getFileActions } from '@nextcloud/files' import { showError, showSuccess } from '@nextcloud/dialogs' import { translate } from '@nextcloud/l10n' +import { defineComponent } from 'vue' + import NcActionButton from '@nextcloud/vue/dist/Components/NcActionButton.js' import NcActions from '@nextcloud/vue/dist/Components/NcActions.js' import NcIconSvgWrapper from '@nextcloud/vue/dist/Components/NcIconSvgWrapper.js' import NcLoadingIcon from '@nextcloud/vue/dist/Components/NcLoadingIcon.js' -import Vue, { defineComponent, type PropType } from 'vue' import { useActionsMenuStore } from '../store/actionsmenu.ts' import { useFilesStore } from '../store/files.ts' import { useSelectionStore } from '../store/selection.ts' import filesListWidthMixin from '../mixins/filesListWidth.ts' -import logger from '../logger.js' -import type { FileSource } from '../types' +import logger from '../logger.ts' // The registered actions list const actions = getFileActions() @@ -135,11 +140,10 @@ export default defineComponent({ /** * Get a cached note from the store * - * @param {number} fileId the file id to get - * @return {Folder|File} + * @param source The source of the node to get */ - getNode(fileId) { - return this.filesStore.getNode(fileId) + getNode(source: string): Node|undefined { + return this.filesStore.getNode(source) }, async onActionClick(action) { @@ -149,7 +153,7 @@ export default defineComponent({ // Set loading markers this.loading = action.id this.nodes.forEach(node => { - Vue.set(node, 'status', NodeStatus.LOADING) + this.$set(node, 'status', NodeStatus.LOADING) }) // Dispatch action execution @@ -189,7 +193,7 @@ export default defineComponent({ // Remove loading markers this.loading = null this.nodes.forEach(node => { - Vue.set(node, 'status', undefined) + this.$set(node, 'status', undefined) }) } }, diff --git a/apps/files/src/components/FilesListVirtual.vue b/apps/files/src/components/FilesListVirtual.vue index 1b9475333ab..4c9cea00f9c 100644 --- a/apps/files/src/components/FilesListVirtual.vue +++ b/apps/files/src/components/FilesListVirtual.vue @@ -81,7 +81,7 @@ import FilesListTableFooter from './FilesListTableFooter.vue' import FilesListTableHeader from './FilesListTableHeader.vue' import filesListWidthMixin from '../mixins/filesListWidth.ts' import VirtualList from './VirtualList.vue' -import logger from '../logger.js' +import logger from '../logger.ts' import FilesListTableHeaderActions from './FilesListTableHeaderActions.vue' import FileListFilters from './FileListFilters.vue' @@ -600,24 +600,26 @@ export default defineComponent({ // Take as much space as possible flex: 1 1 auto; - a { + button.files-list__row-name-link { display: flex; align-items: center; + text-align: start; // Fill cell height and width width: 100%; height: 100%; // Necessary for flex grow to work min-width: 0; + margin: 0; // Already added to the inner text, see rule below &:focus-visible { - outline: none; + outline: none !important; } // Keyboard indicator a11y &:focus .files-list__row-name-text { - outline: 2px solid var(--color-main-text) !important; - border-radius: 20px; + outline: var(--border-width-input-focused) solid var(--color-main-text) !important; + border-radius: var(--border-radius-element); } &:focus:not(:focus-visible) .files-list__row-name-text { outline: none !important; @@ -627,7 +629,7 @@ export default defineComponent({ .files-list__row-name-text { color: var(--color-main-text); // Make some space for the outline - padding: 5px 10px; + padding: var(--default-grid-baseline) calc(2 * var(--default-grid-baseline)); margin-left: -10px; // Align two name and ext display: inline-flex; @@ -791,10 +793,6 @@ tbody.files-list__tbody.files-list__tbody--grid { height: var(--icon-preview-size); } - a.files-list__row-name-link { - height: var(--name-height); - } - .files-list__row-name-text { margin: 0; // Ensure that the outline is not too close to the text. diff --git a/apps/files/src/components/NavigationQuota.vue b/apps/files/src/components/NavigationQuota.vue index 0619f6bc3fd..0e5ef510342 100644 --- a/apps/files/src/components/NavigationQuota.vue +++ b/apps/files/src/components/NavigationQuota.vue @@ -37,7 +37,7 @@ import ChartPie from 'vue-material-design-icons/ChartPie.vue' import NcAppNavigationItem from '@nextcloud/vue/dist/Components/NcAppNavigationItem.js' import NcProgressBar from '@nextcloud/vue/dist/Components/NcProgressBar.js' -import logger from '../logger.js' +import logger from '../logger.ts' export default { name: 'NavigationQuota', diff --git a/apps/files/src/components/TransferOwnershipDialogue.vue b/apps/files/src/components/TransferOwnershipDialogue.vue index 346bc3bbeb8..f13e6655354 100644 --- a/apps/files/src/components/TransferOwnershipDialogue.vue +++ b/apps/files/src/components/TransferOwnershipDialogue.vue @@ -52,7 +52,7 @@ import NcSelect from '@nextcloud/vue/dist/Components/NcSelect.js' import Vue from 'vue' import NcButton from '@nextcloud/vue/dist/Components/NcButton.js' -import logger from '../logger.js' +import logger from '../logger.ts' const picker = getFilePickerBuilder(t('files', 'Choose a file or folder to transfer')) .setMultiSelect(false) diff --git a/apps/files/src/components/VirtualList.vue b/apps/files/src/components/VirtualList.vue index 6206f86cda5..859aba6c834 100644 --- a/apps/files/src/components/VirtualList.vue +++ b/apps/files/src/components/VirtualList.vue @@ -59,7 +59,7 @@ import debounce from 'debounce' import Vue from 'vue' import filesListWidthMixin from '../mixins/filesListWidth.ts' -import logger from '../logger.js' +import logger from '../logger.ts' interface RecycledPoolItem { key: string, diff --git a/apps/files/src/logger.js b/apps/files/src/logger.ts index 33f87b424e0..33f87b424e0 100644 --- a/apps/files/src/logger.js +++ b/apps/files/src/logger.ts diff --git a/apps/files/src/newMenu/newTemplatesFolder.ts b/apps/files/src/newMenu/newTemplatesFolder.ts index e2c27ce067f..43a6f08b525 100644 --- a/apps/files/src/newMenu/newTemplatesFolder.ts +++ b/apps/files/src/newMenu/newTemplatesFolder.ts @@ -15,7 +15,7 @@ import { newNodeName } from '../utils/newNodeDialog' import PlusSvg from '@mdi/svg/svg/plus.svg?raw' import axios from '@nextcloud/axios' -import logger from '../logger.js' +import logger from '../logger.ts' let templatesPath = loadState<string|false>('files', 'templates_path', false) logger.debug('Initial templates folder', { templatesPath }) @@ -53,9 +53,9 @@ const initTemplatesFolder = async function(directory: Folder, name: string) { export const entry = { id: 'template-picker', - displayName: t('files', 'Create new templates folder'), + displayName: t('files', 'Create templates folder'), iconSvgInline: PlusSvg, - order: 10, + order: 30, enabled(context: Folder): boolean { // Templates folder already initialized if (templatesPath) { diff --git a/apps/files/src/services/DropService.ts b/apps/files/src/services/DropService.ts index b947c612949..63e7c213f4f 100644 --- a/apps/files/src/services/DropService.ts +++ b/apps/files/src/services/DropService.ts @@ -17,7 +17,7 @@ import Vue from 'vue' import { Directory, traverseTree, resolveConflict, createDirectoryIfNotExists } from './DropServiceUtils' import { handleCopyMoveNodeTo } from '../actions/moveOrCopyAction' import { MoveCopyAction } from '../actions/moveOrCopyActionUtils' -import logger from '../logger.js' +import logger from '../logger.ts' /** * This function converts a list of DataTransferItems to a file tree. diff --git a/apps/files/src/services/DropServiceUtils.ts b/apps/files/src/services/DropServiceUtils.ts index 27478dd956a..f10a09cfe27 100644 --- a/apps/files/src/services/DropServiceUtils.ts +++ b/apps/files/src/services/DropServiceUtils.ts @@ -10,7 +10,7 @@ import { openConflictPicker } from '@nextcloud/upload' import { showError, showInfo } from '@nextcloud/dialogs' import { translate as t } from '@nextcloud/l10n' -import logger from '../logger.js' +import logger from '../logger.ts' /** * This represents a Directory in the file tree diff --git a/apps/files/src/services/Files.ts b/apps/files/src/services/Files.ts index 10e553592fe..944c2d30678 100644 --- a/apps/files/src/services/Files.ts +++ b/apps/files/src/services/Files.ts @@ -2,26 +2,19 @@ * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later */ -import type { ContentsWithRoot } from '@nextcloud/files' +import type { ContentsWithRoot, File, Folder } from '@nextcloud/files' import type { FileStat, ResponseDataDetailed } from 'webdav' import { CancelablePromise } from 'cancelable-promise' -import { File, Folder, davGetDefaultPropfind, davResultToNode, davRootPath } from '@nextcloud/files' +import { davGetDefaultPropfind, davResultToNode, davRootPath } from '@nextcloud/files' import { client } from './WebdavClient.ts' -import logger from '../logger.js' +import logger from '../logger.ts' /** * Slim wrapper over `@nextcloud/files` `davResultToNode` to allow using the function with `Array.map` * @param node The node returned by the webdav library */ -export const resultToNode = (node: FileStat): File | Folder => { - // TODO remove this hack with nextcloud-files v3.7 - // just needed because of a bug in the webdav client - if (node.props?.displayname !== undefined) { - node.props.displayname = String(node.props.displayname) - } - return davResultToNode(node) -} +export const resultToNode = (node: FileStat): File | Folder => davResultToNode(node) export const getContents = (path = '/'): CancelablePromise<ContentsWithRoot> => { const controller = new AbortController() diff --git a/apps/files/src/services/Recent.ts b/apps/files/src/services/Recent.ts index c8cde136069..0a953087781 100644 --- a/apps/files/src/services/Recent.ts +++ b/apps/files/src/services/Recent.ts @@ -3,19 +3,27 @@ * SPDX-License-Identifier: AGPL-3.0-or-later */ import type { ContentsWithRoot, Node } from '@nextcloud/files' -import type { ResponseDataDetailed, SearchResult } from 'webdav' +import type { FileStat, ResponseDataDetailed, SearchResult } from 'webdav' import { getCurrentUser } from '@nextcloud/auth' -import { Folder, Permission, davGetRecentSearch, davRootPath, davRemoteURL } from '@nextcloud/files' +import { Folder, Permission, davGetRecentSearch, davRootPath, davRemoteURL, davResultToNode } from '@nextcloud/files' import { CancelablePromise } from 'cancelable-promise' import { useUserConfigStore } from '../store/userconfig.ts' import { pinia } from '../store/index.ts' import { client } from './WebdavClient.ts' -import { resultToNode } from './Files.ts' +import { getBaseUrl } from '@nextcloud/router' const lastTwoWeeksTimestamp = Math.round((Date.now() / 1000) - (60 * 60 * 24 * 14)) /** + * Helper to map a WebDAV result to a Nextcloud node + * The search endpoint already includes the dav remote URL so we must not include it in the source + * + * @param stat the WebDAV result + */ +const resultToNode = (stat: FileStat) => davResultToNode(stat, davRootPath, getBaseUrl()) + +/** * Get recently changed nodes * * This takes the users preference about hidden files into account. diff --git a/apps/files/src/services/ServiceWorker.js b/apps/files/src/services/ServiceWorker.js index 477354d1c36..7d03af65e44 100644 --- a/apps/files/src/services/ServiceWorker.js +++ b/apps/files/src/services/ServiceWorker.js @@ -3,7 +3,7 @@ * SPDX-License-Identifier: AGPL-3.0-or-later */ import { generateUrl } from '@nextcloud/router' -import logger from '../logger.js' +import logger from '../logger.ts' export default () => { if ('serviceWorker' in navigator) { diff --git a/apps/files/src/store/filters.ts b/apps/files/src/store/filters.ts index abc12732fd4..a5e3421f726 100644 --- a/apps/files/src/store/filters.ts +++ b/apps/files/src/store/filters.ts @@ -65,6 +65,8 @@ export const useFiltersStore = defineStore('keyboard', { onFilterUpdateChips(event: FilterUpdateChipsEvent) { const id = (event.target as IFileListFilter).id this.chips = { ...this.chips, [id]: [...event.detail] } + + logger.debug('File list filter chips updated', { filter: id, chips: event.detail }) }, init() { diff --git a/apps/files/src/views/FilesList.vue b/apps/files/src/views/FilesList.vue index ca868b5d526..d486b6f1bae 100644 --- a/apps/files/src/views/FilesList.vue +++ b/apps/files/src/views/FilesList.vue @@ -74,32 +74,37 @@ :name="t('files', 'Loading current folder')" /> <!-- Empty content placeholder --> - <NcEmptyContent v-else-if="!loading && isEmptyDir" - :name="currentView?.emptyTitle || t('files', 'No files in here')" - :description="currentView?.emptyCaption || t('files', 'Upload some content or sync with your devices!')" - data-cy-files-content-empty> - <template v-if="directory !== '/'" #action> - <!-- Uploader --> - <UploadPicker v-if="currentFolder && canUpload && !isQuotaExceeded" - allow-folders - class="files-list__header-upload-button" - :content="getContent" - :destination="currentFolder" - :forbidden-characters="forbiddenCharacters" - multiple - @failed="onUploadFail" - @uploaded="onUpload" /> - <NcButton v-else - :aria-label="t('files', 'Go to the previous folder')" - :to="toPreviousDir" - type="primary"> - {{ t('files', 'Go back') }} - </NcButton> - </template> - <template #icon> - <NcIconSvgWrapper :svg="currentView.icon" /> - </template> - </NcEmptyContent> + <template v-else-if="!loading && isEmptyDir"> + <div v-if="currentView?.emptyView" class="files-list__empty-view-wrapper"> + <div ref="customEmptyView" /> + </div> + <NcEmptyContent v-else + :name="currentView?.emptyTitle || t('files', 'No files in here')" + :description="currentView?.emptyCaption || t('files', 'Upload some content or sync with your devices!')" + data-cy-files-content-empty> + <template v-if="directory !== '/'" #action> + <!-- Uploader --> + <UploadPicker v-if="currentFolder && canUpload && !isQuotaExceeded" + allow-folders + class="files-list__header-upload-button" + :content="getContent" + :destination="currentFolder" + :forbidden-characters="forbiddenCharacters" + multiple + @failed="onUploadFail" + @uploaded="onUpload" /> + <NcButton v-else + :aria-label="t('files', 'Go to the previous folder')" + :to="toPreviousDir" + type="primary"> + {{ t('files', 'Go back') }} + </NcButton> + </template> + <template #icon> + <NcIconSvgWrapper :svg="currentView.icon" /> + </template> + </NcEmptyContent> + </template> <!-- File list --> <FilesListVirtual v-else @@ -154,7 +159,7 @@ import BreadCrumbs from '../components/BreadCrumbs.vue' import FilesListVirtual from '../components/FilesListVirtual.vue' import filesListWidthMixin from '../mixins/filesListWidth.ts' import filesSortingMixin from '../mixins/filesSorting.ts' -import logger from '../logger.js' +import logger from '../logger.ts' import DragAndDropNotice from '../components/DragAndDropNotice.vue' const isSharingEnabled = (getCapabilities() as { files_sharing?: boolean })?.files_sharing !== undefined @@ -391,9 +396,27 @@ export default defineComponent({ filtersChanged() { return this.filtersStore.filtersChanged }, + + showCustomEmptyView() { + return !this.loading && this.isEmptyDir && this.currentView?.emptyView !== undefined + } }, watch: { + /** + * Handle rendering the custom empty view + * @param show The current state if the custom empty view should be rendered + */ + showCustomEmptyView(show: boolean) { + if (show) { + this.$nextTick(() => { + const el = this.$refs.customEmptyView as HTMLDivElement + // We can cast here because "showCustomEmptyView" assets that current view is set + this.currentView!.emptyView!(el) + }) + } + }, + currentView(newView, oldView) { if (newView?.id === oldView?.id) { return @@ -679,6 +702,11 @@ export default defineComponent({ } } + &__empty-view-wrapper { + display: flex; + height: 100%; + } + &__refresh-icon { flex: 0 0 44px; width: 44px; diff --git a/apps/files/src/views/Navigation.vue b/apps/files/src/views/Navigation.vue index cfd170bd073..b0588863f5d 100644 --- a/apps/files/src/views/Navigation.vue +++ b/apps/files/src/views/Navigation.vue @@ -81,7 +81,7 @@ import { useNavigation } from '../composables/useNavigation' import { useFilenameFilter } from '../composables/useFilenameFilter' import { useFiltersStore } from '../store/filters.ts' import { useViewConfigStore } from '../store/viewConfig.ts' -import logger from '../logger.js' +import logger from '../logger.ts' export default defineComponent({ name: 'Navigation', @@ -160,7 +160,7 @@ export default defineComponent({ if (this.currentViewId !== this.currentView?.id) { // This is guaranteed to be a view because `currentViewId` falls back to the default 'files' view const view = this.views.find(({ id }) => id === this.currentViewId)! - // The the new view as active + // The new view as active this.showView(view) logger.debug(`Navigation changed from ${oldView} to ${newView}`, { to: view }) } diff --git a/apps/files/src/views/Sidebar.vue b/apps/files/src/views/Sidebar.vue index 8c4af5fd80f..efa090112de 100644 --- a/apps/files/src/views/Sidebar.vue +++ b/apps/files/src/views/Sidebar.vue @@ -108,7 +108,7 @@ import FileInfo from '../services/FileInfo.js' import LegacyView from '../components/LegacyView.vue' import SidebarTab from '../components/SidebarTab.vue' import SystemTags from '../../../systemtags/src/components/SystemTags.vue' -import logger from '../logger.js' +import logger from '../logger.ts' export default { name: 'Sidebar', diff --git a/apps/files/src/views/TemplatePicker.vue b/apps/files/src/views/TemplatePicker.vue index 8c6b3c4bf02..0d5b3cbaac9 100644 --- a/apps/files/src/views/TemplatePicker.vue +++ b/apps/files/src/views/TemplatePicker.vue @@ -60,7 +60,7 @@ import NcEmptyContent from '@nextcloud/vue/dist/Components/NcEmptyContent.js' import NcModal from '@nextcloud/vue/dist/Components/NcModal.js' import TemplatePreview from '../components/TemplatePreview.vue' import TemplateFiller from '../components/TemplateFiller.vue' -import logger from '../logger.js' +import logger from '../logger.ts' const border = 2 const margin = 8 @@ -260,15 +260,13 @@ export default defineComponent({ }, async onSubmit() { - this.loading = true - - if (this.selectedTemplate?.fields) { + if (this.selectedTemplate?.fields?.length > 0) { spawnDialog(TemplateFiller, { fields: this.selectedTemplate.fields, onSubmit: this.createFile, }) - } else { + this.loading = true await this.createFile() } }, diff --git a/apps/files/templates/fileexists.html b/apps/files/templates/fileexists.html new file mode 100644 index 00000000000..de213803e0e --- /dev/null +++ b/apps/files/templates/fileexists.html @@ -0,0 +1,35 @@ +<!-- + - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors + - SPDX-License-Identifier: AGPL-3.0-only + --> +<div id="{dialog_name}" title="{title}" class="fileexists"> + <span class="why">{why}<!-- Which files do you want to keep --></span><br/> + <span class="what">{what}<!-- If you select both versions, the copied file will have a number added to its name. --></span><br/> + <br/> + <table> + <th><input id="checkbox-allnewfiles" class="allnewfiles checkbox" type="checkbox" /><label for="checkbox-allnewfiles">{allnewfiles}<span class="count"></span></label></th> + <th><input id="checkbox-allexistingfiles" class="allexistingfiles checkbox" type="checkbox" /><label for="checkbox-allexistingfiles">{allexistingfiles}<span class="count"></span></label></th> + </table> + <div class="conflicts"> + <div class="template"> + <div class="filename"></div> + <div class="replacement"> + <input type="checkbox" class="checkbox u-left"/> + <label> + <span class="svg icon"></span> + <div class="mtime"></div> + <div class="size"></div> + </label> + </div> + <div class="original"> + <input type="checkbox" class="checkbox u-left" /> + <label> + <span class="svg icon"></span> + <div class="mtime"></div> + <div class="size"></div> + <div class="message"></div> + </label> + </div> + </div> + </div> +</div> |