diff options
Diffstat (limited to 'apps')
96 files changed, 485 insertions, 169 deletions
diff --git a/apps/comments/l10n/es_CO.js b/apps/comments/l10n/es_CO.js new file mode 100644 index 00000000000..b8516c1449b --- /dev/null +++ b/apps/comments/l10n/es_CO.js @@ -0,0 +1,35 @@ +OC.L10N.register( + "comments", + { + "Comments" : "Comentarios", + "You commented" : "Comentaste", + "{author} commented" : "{author} comentó", + "You commented on %1$s" : "Usted comentó en %1$s", + "You commented on {file}" : "Hiciste un comentario de {file}", + "%1$s commented on %2$s" : "%1$s comentó en %2$s", + "{author} commented on {file}" : "{author} comentó en {file}", + "<strong>Comments</strong> for files" : "<strong>Comentarios</strong> de los archivos", + "Files" : "Archivo", + "You were mentioned on \"{file}\", in a comment by an account that has since been deleted" : "Fue mencionado en \"{file}\", en un comentario realizado por un usuario que ha sido eliminado", + "{user} mentioned you in a comment on \"{file}\"" : "{user} le mencionó en un comentario en “{file}”", + "Files app plugin to add comments to files" : "Plugin de la aplicación de archivos para agregar comentarios a los archivos", + "Edit comment" : "Editar comentario", + "Delete comment" : "Borrar comentario", + "Cancel edit" : "Cancelar edición", + "New comment" : "Nuevo comentario", + "Write a comment …" : "Escribir un comentario …", + "Post comment" : "Publicar comentario", + "@ for mentions, : for emoji, / for smart picker" : "@ para menciones, : para emoticonos, / para selector inteligente", + "Could not reload comments" : "No se pudieron recargar los comentarios", + "Failed to mark comments as read" : "No se pudieron marcar los comentarios como leídos", + "Unable to load the comments list" : "No se puede cargar la lista de comentarios", + "No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!", + "No more messages" : "No hay más mensajes", + "Retry" : "Reintentar", + "Comment" : "Comentario", + "An error occurred while trying to edit the comment" : "Ocurrió un error al intentar editar el comentario", + "Comment deleted" : "Comentario borrado", + "An error occurred while trying to delete the comment" : "Ocurrió un error intentando borrar el comentario", + "An error occurred while trying to create the comment" : "Ocurrió un error al intentar crear el comentario" +}, +"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/apps/comments/l10n/es_CO.json b/apps/comments/l10n/es_CO.json new file mode 100644 index 00000000000..c212111b999 --- /dev/null +++ b/apps/comments/l10n/es_CO.json @@ -0,0 +1,33 @@ +{ "translations": { + "Comments" : "Comentarios", + "You commented" : "Comentaste", + "{author} commented" : "{author} comentó", + "You commented on %1$s" : "Usted comentó en %1$s", + "You commented on {file}" : "Hiciste un comentario de {file}", + "%1$s commented on %2$s" : "%1$s comentó en %2$s", + "{author} commented on {file}" : "{author} comentó en {file}", + "<strong>Comments</strong> for files" : "<strong>Comentarios</strong> de los archivos", + "Files" : "Archivo", + "You were mentioned on \"{file}\", in a comment by an account that has since been deleted" : "Fue mencionado en \"{file}\", en un comentario realizado por un usuario que ha sido eliminado", + "{user} mentioned you in a comment on \"{file}\"" : "{user} le mencionó en un comentario en “{file}”", + "Files app plugin to add comments to files" : "Plugin de la aplicación de archivos para agregar comentarios a los archivos", + "Edit comment" : "Editar comentario", + "Delete comment" : "Borrar comentario", + "Cancel edit" : "Cancelar edición", + "New comment" : "Nuevo comentario", + "Write a comment …" : "Escribir un comentario …", + "Post comment" : "Publicar comentario", + "@ for mentions, : for emoji, / for smart picker" : "@ para menciones, : para emoticonos, / para selector inteligente", + "Could not reload comments" : "No se pudieron recargar los comentarios", + "Failed to mark comments as read" : "No se pudieron marcar los comentarios como leídos", + "Unable to load the comments list" : "No se puede cargar la lista de comentarios", + "No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!", + "No more messages" : "No hay más mensajes", + "Retry" : "Reintentar", + "Comment" : "Comentario", + "An error occurred while trying to edit the comment" : "Ocurrió un error al intentar editar el comentario", + "Comment deleted" : "Comentario borrado", + "An error occurred while trying to delete the comment" : "Ocurrió un error intentando borrar el comentario", + "An error occurred while trying to create the comment" : "Ocurrió un error al intentar crear el comentario" +},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" +}
\ No newline at end of file diff --git a/apps/dav/src/components/AbsenceForm.vue b/apps/dav/src/components/AbsenceForm.vue index 18c60ba4dd4..5350c04a565 100644 --- a/apps/dav/src/components/AbsenceForm.vue +++ b/apps/dav/src/components/AbsenceForm.vue @@ -219,7 +219,7 @@ export default { lastDay: formatDateAsYMD(this.lastDay), status: this.status, message: this.message, - replacementUserId: this.replacementUser?.user ?? null + replacementUserId: this.replacementUser?.user ?? null, }) showSuccess(this.$t('dav', 'Absence saved')) } catch (error) { diff --git a/apps/dav/src/components/ExampleContentDownloadButton.vue b/apps/dav/src/components/ExampleContentDownloadButton.vue index d3ee793eddc..6ee13e057bd 100644 --- a/apps/dav/src/components/ExampleContentDownloadButton.vue +++ b/apps/dav/src/components/ExampleContentDownloadButton.vue @@ -26,13 +26,13 @@ export default { name: 'ExampleContentDownloadButton', components: { NcButton, - IconDownload + IconDownload, }, props: { href: { type: String, required: true, - } + }, }, } </script> diff --git a/apps/dav/src/components/ExampleEventSettings.vue b/apps/dav/src/components/ExampleEventSettings.vue index c7a90b71a4a..5d2053def50 100644 --- a/apps/dav/src/components/ExampleEventSettings.vue +++ b/apps/dav/src/components/ExampleEventSettings.vue @@ -47,7 +47,7 @@ type="file" accept=".ics,text/calendar" class="import-event-modal__file-picker" - @change="selectFile" /> + @change="selectFile"> <div class="import-event-modal__buttons"> <NcButton :disabled="uploading || !selectedFile" type="primary" diff --git a/apps/dav/src/settings-example-content.js b/apps/dav/src/settings-example-content.js index ca0291ace4f..fdeba642a67 100644 --- a/apps/dav/src/settings-example-content.js +++ b/apps/dav/src/settings-example-content.js @@ -10,7 +10,7 @@ Vue.mixin({ methods: { t: translate, $t: translate, - } + }, }) const View = Vue.extend(ExampleContentSettingsSection); diff --git a/apps/dav/src/views/ExampleContentSettingsSection.vue b/apps/dav/src/views/ExampleContentSettingsSection.vue index 5e65a1ba3b4..3ee2d9e8648 100644 --- a/apps/dav/src/views/ExampleContentSettingsSection.vue +++ b/apps/dav/src/views/ExampleContentSettingsSection.vue @@ -33,6 +33,6 @@ export default { hasCalendarApp() { return loadState('dav', 'calendarEnabled') }, - } + }, } </script> diff --git a/apps/files/l10n/cs.js b/apps/files/l10n/cs.js index 2f593d271c4..f941b6bdab2 100644 --- a/apps/files/l10n/cs.js +++ b/apps/files/l10n/cs.js @@ -142,6 +142,7 @@ OC.L10N.register( "Create new folder" : "Vytvořit novou složku", "This name is already in use." : "Tento název už je využíván.", "Create" : "Vytvořit", + "Files starting with a dot are hidden by default" : "Soubory, kterých názvy začínají tečkou, jsou ve výchozím stavu skryté", "Fill template fields" : "Vyplňte kolonky šablony", "Submitting fields …" : "Odesílání kolonek…", "Submit" : "Odeslat", @@ -213,6 +214,7 @@ OC.L10N.register( "Warnings" : "Varování", "Prevent warning dialogs from open or reenable them." : "Zabránit dialogům s varováními v otevírání nebo znovupovolení.", "Show a warning dialog when changing a file extension." : "Při měnění přípony souboru zobrazit varovný dialog.", + "Show a warning dialog when deleting files." : "Před smazáním souborů zobrazit varovný dialog.", "Keyboard shortcuts" : "Klávesové zkratky", "Speed up your Files experience with these quick shortcuts." : "Zrychlete svůj dojem ze Souborů pomocí těchto rychlých zkratek.", "Open the actions menu for a file" : "Otevřít nabídku akcí pro soubor", diff --git a/apps/files/l10n/cs.json b/apps/files/l10n/cs.json index b565488a6e2..5faa81dca0b 100644 --- a/apps/files/l10n/cs.json +++ b/apps/files/l10n/cs.json @@ -140,6 +140,7 @@ "Create new folder" : "Vytvořit novou složku", "This name is already in use." : "Tento název už je využíván.", "Create" : "Vytvořit", + "Files starting with a dot are hidden by default" : "Soubory, kterých názvy začínají tečkou, jsou ve výchozím stavu skryté", "Fill template fields" : "Vyplňte kolonky šablony", "Submitting fields …" : "Odesílání kolonek…", "Submit" : "Odeslat", @@ -211,6 +212,7 @@ "Warnings" : "Varování", "Prevent warning dialogs from open or reenable them." : "Zabránit dialogům s varováními v otevírání nebo znovupovolení.", "Show a warning dialog when changing a file extension." : "Při měnění přípony souboru zobrazit varovný dialog.", + "Show a warning dialog when deleting files." : "Před smazáním souborů zobrazit varovný dialog.", "Keyboard shortcuts" : "Klávesové zkratky", "Speed up your Files experience with these quick shortcuts." : "Zrychlete svůj dojem ze Souborů pomocí těchto rychlých zkratek.", "Open the actions menu for a file" : "Otevřít nabídku akcí pro soubor", diff --git a/apps/files/l10n/en_GB.js b/apps/files/l10n/en_GB.js index 086e763f4ab..c2cb142aac1 100644 --- a/apps/files/l10n/en_GB.js +++ b/apps/files/l10n/en_GB.js @@ -142,6 +142,7 @@ OC.L10N.register( "Create new folder" : "Create new folder", "This name is already in use." : "This name is already in use.", "Create" : "Create", + "Files starting with a dot are hidden by default" : "Files starting with a dot are hidden by default", "Fill template fields" : "Fill template fields", "Submitting fields …" : "Submitting fields …", "Submit" : "Submit", diff --git a/apps/files/l10n/en_GB.json b/apps/files/l10n/en_GB.json index 33d8c73111f..69149e1a00d 100644 --- a/apps/files/l10n/en_GB.json +++ b/apps/files/l10n/en_GB.json @@ -140,6 +140,7 @@ "Create new folder" : "Create new folder", "This name is already in use." : "This name is already in use.", "Create" : "Create", + "Files starting with a dot are hidden by default" : "Files starting with a dot are hidden by default", "Fill template fields" : "Fill template fields", "Submitting fields …" : "Submitting fields …", "Submit" : "Submit", diff --git a/apps/files/l10n/ga.js b/apps/files/l10n/ga.js index b872f9b4c48..d5a5e0fd8fc 100644 --- a/apps/files/l10n/ga.js +++ b/apps/files/l10n/ga.js @@ -129,6 +129,7 @@ OC.L10N.register( "Search globally by filename …" : "Cuardaigh go domhanda de réir ainm comhaid …", "Search here by filename …" : "Cuardaigh anseo de réir ainm comhaid …", "Search scope options" : "Roghanna raon feidhme cuardaigh", + "Filter and search from this location" : "Scag agus déan cuardach ón suíomh seo", "Search globally" : "Cuardaigh go domhanda", "{usedQuotaByte} used" : "{usedQuotaByte} úsáidte", "{used} of {quota} used" : "{used} de {quota} in úsáid", @@ -141,6 +142,7 @@ OC.L10N.register( "Create new folder" : "Cruthaigh fillteán nua", "This name is already in use." : "Tá an t-ainm seo in úsáid cheana féin.", "Create" : "Cruthaigh", + "Files starting with a dot are hidden by default" : "Bíonn comhaid a thosaíonn le ponc i bhfolach de réir réamhshocraithe", "Fill template fields" : "Líon réimsí teimpléid", "Submitting fields …" : "Réimsí á gcur isteach…", "Submit" : "Cuir isteach", @@ -212,6 +214,7 @@ OC.L10N.register( "Warnings" : "Rabhaidh", "Prevent warning dialogs from open or reenable them." : "Cosc a chur ar dialóga rabhaidh ó iad a oscailt nó iad a athchumasú.", "Show a warning dialog when changing a file extension." : "Taispeáin dialóg rabhaidh nuair a athraítear síneadh comhad.", + "Show a warning dialog when deleting files." : "Taispeáin comhrá rabhaidh agus comhaid á scriosadh.", "Keyboard shortcuts" : "Aicearraí méarchláir", "Speed up your Files experience with these quick shortcuts." : "Déan do thaithí Comhaid a bhrostú leis na haicearraí tapa seo.", "Open the actions menu for a file" : "Oscail an roghchlár gníomhartha le haghaidh comhad", diff --git a/apps/files/l10n/ga.json b/apps/files/l10n/ga.json index c71888d8c2b..8b01e76fc2e 100644 --- a/apps/files/l10n/ga.json +++ b/apps/files/l10n/ga.json @@ -127,6 +127,7 @@ "Search globally by filename …" : "Cuardaigh go domhanda de réir ainm comhaid …", "Search here by filename …" : "Cuardaigh anseo de réir ainm comhaid …", "Search scope options" : "Roghanna raon feidhme cuardaigh", + "Filter and search from this location" : "Scag agus déan cuardach ón suíomh seo", "Search globally" : "Cuardaigh go domhanda", "{usedQuotaByte} used" : "{usedQuotaByte} úsáidte", "{used} of {quota} used" : "{used} de {quota} in úsáid", @@ -139,6 +140,7 @@ "Create new folder" : "Cruthaigh fillteán nua", "This name is already in use." : "Tá an t-ainm seo in úsáid cheana féin.", "Create" : "Cruthaigh", + "Files starting with a dot are hidden by default" : "Bíonn comhaid a thosaíonn le ponc i bhfolach de réir réamhshocraithe", "Fill template fields" : "Líon réimsí teimpléid", "Submitting fields …" : "Réimsí á gcur isteach…", "Submit" : "Cuir isteach", @@ -210,6 +212,7 @@ "Warnings" : "Rabhaidh", "Prevent warning dialogs from open or reenable them." : "Cosc a chur ar dialóga rabhaidh ó iad a oscailt nó iad a athchumasú.", "Show a warning dialog when changing a file extension." : "Taispeáin dialóg rabhaidh nuair a athraítear síneadh comhad.", + "Show a warning dialog when deleting files." : "Taispeáin comhrá rabhaidh agus comhaid á scriosadh.", "Keyboard shortcuts" : "Aicearraí méarchláir", "Speed up your Files experience with these quick shortcuts." : "Déan do thaithí Comhaid a bhrostú leis na haicearraí tapa seo.", "Open the actions menu for a file" : "Oscail an roghchlár gníomhartha le haghaidh comhad", diff --git a/apps/files/l10n/it.js b/apps/files/l10n/it.js index 39787e39664..f22d1227b9f 100644 --- a/apps/files/l10n/it.js +++ b/apps/files/l10n/it.js @@ -82,7 +82,7 @@ OC.L10N.register( "Current directory path" : "Percorso della cartella corrente", "Your have used your space quota and cannot upload files anymore" : "Hai esaurito la tua quota di spazio e non puoi più caricare file", "You do not have permission to upload or create files here." : "Non hai l'autorizzazione per caricare o creare file qui.", - "Drag and drop files here to upload" : "Trascina i file qui per caricarli", + "Drag and drop files here to upload" : "Trascina e rilascia i file qui per caricarli", "Favorite" : "Preferito", "Back" : "Indietro", "Toggle selection for file \"{displayName}\"" : "Attiva/disattiva la selezione per il file \"{displayName}\"", @@ -129,6 +129,7 @@ OC.L10N.register( "Search globally by filename …" : "Cerca globalmente per nome file…", "Search here by filename …" : "Cerca qui per nome file…", "Search scope options" : "Opzioni nell'ambito di ricerca", + "Filter and search from this location" : "Filtra e cerca da questa posizione", "Search globally" : "Cerca globalmente", "{usedQuotaByte} used" : "{usedQuotaByte} usato", "{used} of {quota} used" : "{used} di {quota} utilizzati", @@ -141,6 +142,7 @@ OC.L10N.register( "Create new folder" : "Crea una nuova cartella", "This name is already in use." : "Questo nome è già utilizzato.", "Create" : "Crea", + "Files starting with a dot are hidden by default" : "I file che iniziano con un punto sono nascosti per impostazione predefinita", "Fill template fields" : "Compila i campi del modello", "Submitting fields …" : "Invio dei campi …", "Submit" : "Invia", @@ -212,6 +214,7 @@ OC.L10N.register( "Warnings" : "Avvertenze", "Prevent warning dialogs from open or reenable them." : "Impedire l'apertura delle finestre di dialogo di avviso o riattivarle.", "Show a warning dialog when changing a file extension." : "Mostra una finestra di dialogo di avviso quando si modifica l'estensione di un file.", + "Show a warning dialog when deleting files." : "Mostra un dialogo di avviso quando si cancellano dei file.", "Keyboard shortcuts" : "Scorciatoie da tastiera", "Speed up your Files experience with these quick shortcuts." : "Velocizza la tua esperienza con i File con queste rapide scorciatoie.", "Open the actions menu for a file" : "Aprire il menu delle azioni per un file", @@ -330,7 +333,7 @@ OC.L10N.register( "New template folder" : "Nuova cartella dei modelli", "In folder" : "Nella cartella", "Search in folder: {folder}" : "Cerca nella cartella: {folder}", - "One of the dropped files could not be processed" : "Impossibile elaborare uno dei file eliminati", + "One of the dropped files could not be processed" : "Impossibile elaborare uno dei file depositati", "Your browser does not support the Filesystem API. Directories will not be uploaded" : "Il tuo browser non supporta l'API del file system. Le directory non verranno caricate", "No files to upload" : "Nessun file da caricare", "Unable to create the directory {directory}" : "Impossibile creare la directory {directory}", diff --git a/apps/files/l10n/it.json b/apps/files/l10n/it.json index 40edb4b3f9a..ced369a54d6 100644 --- a/apps/files/l10n/it.json +++ b/apps/files/l10n/it.json @@ -80,7 +80,7 @@ "Current directory path" : "Percorso della cartella corrente", "Your have used your space quota and cannot upload files anymore" : "Hai esaurito la tua quota di spazio e non puoi più caricare file", "You do not have permission to upload or create files here." : "Non hai l'autorizzazione per caricare o creare file qui.", - "Drag and drop files here to upload" : "Trascina i file qui per caricarli", + "Drag and drop files here to upload" : "Trascina e rilascia i file qui per caricarli", "Favorite" : "Preferito", "Back" : "Indietro", "Toggle selection for file \"{displayName}\"" : "Attiva/disattiva la selezione per il file \"{displayName}\"", @@ -127,6 +127,7 @@ "Search globally by filename …" : "Cerca globalmente per nome file…", "Search here by filename …" : "Cerca qui per nome file…", "Search scope options" : "Opzioni nell'ambito di ricerca", + "Filter and search from this location" : "Filtra e cerca da questa posizione", "Search globally" : "Cerca globalmente", "{usedQuotaByte} used" : "{usedQuotaByte} usato", "{used} of {quota} used" : "{used} di {quota} utilizzati", @@ -139,6 +140,7 @@ "Create new folder" : "Crea una nuova cartella", "This name is already in use." : "Questo nome è già utilizzato.", "Create" : "Crea", + "Files starting with a dot are hidden by default" : "I file che iniziano con un punto sono nascosti per impostazione predefinita", "Fill template fields" : "Compila i campi del modello", "Submitting fields …" : "Invio dei campi …", "Submit" : "Invia", @@ -210,6 +212,7 @@ "Warnings" : "Avvertenze", "Prevent warning dialogs from open or reenable them." : "Impedire l'apertura delle finestre di dialogo di avviso o riattivarle.", "Show a warning dialog when changing a file extension." : "Mostra una finestra di dialogo di avviso quando si modifica l'estensione di un file.", + "Show a warning dialog when deleting files." : "Mostra un dialogo di avviso quando si cancellano dei file.", "Keyboard shortcuts" : "Scorciatoie da tastiera", "Speed up your Files experience with these quick shortcuts." : "Velocizza la tua esperienza con i File con queste rapide scorciatoie.", "Open the actions menu for a file" : "Aprire il menu delle azioni per un file", @@ -328,7 +331,7 @@ "New template folder" : "Nuova cartella dei modelli", "In folder" : "Nella cartella", "Search in folder: {folder}" : "Cerca nella cartella: {folder}", - "One of the dropped files could not be processed" : "Impossibile elaborare uno dei file eliminati", + "One of the dropped files could not be processed" : "Impossibile elaborare uno dei file depositati", "Your browser does not support the Filesystem API. Directories will not be uploaded" : "Il tuo browser non supporta l'API del file system. Le directory non verranno caricate", "No files to upload" : "Nessun file da caricare", "Unable to create the directory {directory}" : "Impossibile creare la directory {directory}", diff --git a/apps/files/l10n/tr.js b/apps/files/l10n/tr.js index 06851221df4..9dd4a3e3e1b 100644 --- a/apps/files/l10n/tr.js +++ b/apps/files/l10n/tr.js @@ -129,6 +129,7 @@ OC.L10N.register( "Search globally by filename …" : "Dosya adına göre genel ara…", "Search here by filename …" : "Dosya adına göre burada ara…", "Search scope options" : "Arama kapsamı seçenekleri", + "Filter and search from this location" : "Süz ve bu konumdan ara", "Search globally" : "Genel arama", "{usedQuotaByte} used" : "{usedQuotaByte} kullanılmış", "{used} of {quota} used" : "{used} / {quota} kullanılmış", @@ -141,6 +142,7 @@ OC.L10N.register( "Create new folder" : "Klasör ekle", "This name is already in use." : "Bu ad zaten kullanılıyor.", "Create" : "Ekle", + "Files starting with a dot are hidden by default" : "Bir nokta ile başlayan dosyalar varsayılan olarak gizlidir", "Fill template fields" : "Kalıp alanlarını doldur", "Submitting fields …" : "Alanlar gönderiliyor…", "Submit" : "Gönder", @@ -194,6 +196,7 @@ OC.L10N.register( "Search for files" : "Dosya ara", "Clipboard is not available" : "Pano kullanılamıyor", "WebDAV URL copied to clipboard" : "WebDAV adresi panoya kopyalandı", + "Default view" : "Varsayılan görünüm", "All files" : "Tüm dosyalar", "Personal files" : "Kişisel dosyalar", "Sort favorites first" : "Sık kullanılanlar üstte sıralansın", @@ -211,6 +214,7 @@ OC.L10N.register( "Warnings" : "Uyarılar", "Prevent warning dialogs from open or reenable them." : "Uyarı pencerelerinin görüntülenmesini açın ya da kapatın.", "Show a warning dialog when changing a file extension." : "Dosya uzantısı değiştirilirken uyarı penceresi görüntülensin.", + "Show a warning dialog when deleting files." : "Dosyalar silinirken uyarı penceresi görüntülensin.", "Keyboard shortcuts" : "Kısayol tuşları", "Speed up your Files experience with these quick shortcuts." : "Şu kısayol tuşlarını kullanarak Dosyalar deneyiminizi hızlandırabilirsiniz.", "Open the actions menu for a file" : "Bir dosyanın işlemler menüsünü açar", diff --git a/apps/files/l10n/tr.json b/apps/files/l10n/tr.json index 4114ac386c4..b11cd89af20 100644 --- a/apps/files/l10n/tr.json +++ b/apps/files/l10n/tr.json @@ -127,6 +127,7 @@ "Search globally by filename …" : "Dosya adına göre genel ara…", "Search here by filename …" : "Dosya adına göre burada ara…", "Search scope options" : "Arama kapsamı seçenekleri", + "Filter and search from this location" : "Süz ve bu konumdan ara", "Search globally" : "Genel arama", "{usedQuotaByte} used" : "{usedQuotaByte} kullanılmış", "{used} of {quota} used" : "{used} / {quota} kullanılmış", @@ -139,6 +140,7 @@ "Create new folder" : "Klasör ekle", "This name is already in use." : "Bu ad zaten kullanılıyor.", "Create" : "Ekle", + "Files starting with a dot are hidden by default" : "Bir nokta ile başlayan dosyalar varsayılan olarak gizlidir", "Fill template fields" : "Kalıp alanlarını doldur", "Submitting fields …" : "Alanlar gönderiliyor…", "Submit" : "Gönder", @@ -192,6 +194,7 @@ "Search for files" : "Dosya ara", "Clipboard is not available" : "Pano kullanılamıyor", "WebDAV URL copied to clipboard" : "WebDAV adresi panoya kopyalandı", + "Default view" : "Varsayılan görünüm", "All files" : "Tüm dosyalar", "Personal files" : "Kişisel dosyalar", "Sort favorites first" : "Sık kullanılanlar üstte sıralansın", @@ -209,6 +212,7 @@ "Warnings" : "Uyarılar", "Prevent warning dialogs from open or reenable them." : "Uyarı pencerelerinin görüntülenmesini açın ya da kapatın.", "Show a warning dialog when changing a file extension." : "Dosya uzantısı değiştirilirken uyarı penceresi görüntülensin.", + "Show a warning dialog when deleting files." : "Dosyalar silinirken uyarı penceresi görüntülensin.", "Keyboard shortcuts" : "Kısayol tuşları", "Speed up your Files experience with these quick shortcuts." : "Şu kısayol tuşlarını kullanarak Dosyalar deneyiminizi hızlandırabilirsiniz.", "Open the actions menu for a file" : "Bir dosyanın işlemler menüsünü açar", diff --git a/apps/files/l10n/zh_HK.js b/apps/files/l10n/zh_HK.js index b8a096abf15..cc7b7f20c44 100644 --- a/apps/files/l10n/zh_HK.js +++ b/apps/files/l10n/zh_HK.js @@ -142,7 +142,7 @@ OC.L10N.register( "Create new folder" : "新增資料夾", "This name is already in use." : "這個用戶名稱已經有人使用了。", "Create" : "創建", - "Files starting with a dot are hidden by default" : "檔案名稱以點開頭的檔案預設隱藏", + "Files starting with a dot are hidden by default" : "以點開頭的檔案默認為隱藏檔案", "Fill template fields" : "填寫模板欄位", "Submitting fields …" : "正在遞交欄位 …", "Submit" : "遞交", diff --git a/apps/files/l10n/zh_HK.json b/apps/files/l10n/zh_HK.json index c423b29cece..a5cc0829163 100644 --- a/apps/files/l10n/zh_HK.json +++ b/apps/files/l10n/zh_HK.json @@ -140,7 +140,7 @@ "Create new folder" : "新增資料夾", "This name is already in use." : "這個用戶名稱已經有人使用了。", "Create" : "創建", - "Files starting with a dot are hidden by default" : "檔案名稱以點開頭的檔案預設隱藏", + "Files starting with a dot are hidden by default" : "以點開頭的檔案默認為隱藏檔案", "Fill template fields" : "填寫模板欄位", "Submitting fields …" : "正在遞交欄位 …", "Submit" : "遞交", diff --git a/apps/files/src/actions/deleteAction.ts b/apps/files/src/actions/deleteAction.ts index 63f7fd442c5..3e9e441a63c 100644 --- a/apps/files/src/actions/deleteAction.ts +++ b/apps/files/src/actions/deleteAction.ts @@ -10,7 +10,7 @@ import PQueue from 'p-queue' 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 TrashCanSvg from '@mdi/svg/svg/trash-can-outline.svg?raw' import { TRASHBIN_VIEW_ID } from '../../../files_trashbin/src/files_views/trashbinView.ts' import { askConfirmation, canDisconnectOnly, canUnshareOnly, deleteNode, displayName, shouldAskForConfirmation } from './deleteUtils.ts' diff --git a/apps/files/src/actions/moveOrCopyAction.ts b/apps/files/src/actions/moveOrCopyAction.ts index 724b65fa515..af68120bb1b 100644 --- a/apps/files/src/actions/moveOrCopyAction.ts +++ b/apps/files/src/actions/moveOrCopyAction.ts @@ -16,8 +16,8 @@ import { openConflictPicker, hasConflict } from '@nextcloud/upload' import { basename, join } from 'path' import Vue from 'vue' -import CopyIconSvg from '@mdi/svg/svg/folder-multiple.svg?raw' -import FolderMoveSvg from '@mdi/svg/svg/folder-move.svg?raw' +import CopyIconSvg from '@mdi/svg/svg/folder-multiple-outline.svg?raw' +import FolderMoveSvg from '@mdi/svg/svg/folder-move-outline.svg?raw' import { MoveCopyAction, canCopy, canMove, getQueue } from './moveOrCopyActionUtils' import { getContents } from '../services/Files' diff --git a/apps/files/src/actions/renameAction.ts b/apps/files/src/actions/renameAction.ts index d421d18c473..715ecb7563e 100644 --- a/apps/files/src/actions/renameAction.ts +++ b/apps/files/src/actions/renameAction.ts @@ -5,7 +5,7 @@ import { emit } from '@nextcloud/event-bus' import { Permission, type Node, FileAction, View } from '@nextcloud/files' import { translate as t } from '@nextcloud/l10n' -import PencilSvg from '@mdi/svg/svg/pencil.svg?raw' +import PencilSvg from '@mdi/svg/svg/pencil-outline.svg?raw' import { getPinia } from '../store' import { useFilesStore } from '../store/files' import { dirname } from 'path' diff --git a/apps/files/src/actions/viewInFolderAction.ts b/apps/files/src/actions/viewInFolderAction.ts index eb145dc409f..b22393c1152 100644 --- a/apps/files/src/actions/viewInFolderAction.ts +++ b/apps/files/src/actions/viewInFolderAction.ts @@ -2,10 +2,13 @@ * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later */ -import { Node, FileType, Permission, View, FileAction } from '@nextcloud/files' -import { translate as t } from '@nextcloud/l10n' -import FolderMoveSvg from '@mdi/svg/svg/folder-move.svg?raw' +import type { Node, View } from '@nextcloud/files' + import { isPublicShare } from '@nextcloud/sharing/public' +import { FileAction, FileType, Permission } from '@nextcloud/files' +import { t } from '@nextcloud/l10n' + +import FolderMoveSvg from '@mdi/svg/svg/folder-move-outline.svg?raw' export const action = new FileAction({ id: 'view-in-folder', diff --git a/apps/files/src/components/FileEntry/FileEntryPreview.vue b/apps/files/src/components/FileEntry/FileEntryPreview.vue index 506677b49af..da160e68ed9 100644 --- a/apps/files/src/components/FileEntry/FileEntryPreview.vue +++ b/apps/files/src/components/FileEntry/FileEntryPreview.vue @@ -57,7 +57,7 @@ import { getSharingToken, isPublicShare } from '@nextcloud/sharing/public' import { decode } from 'blurhash' import { defineComponent } from 'vue' -import AccountGroupIcon from 'vue-material-design-icons/AccountGroup.vue' +import AccountGroupIcon from 'vue-material-design-icons/AccountGroupOutline.vue' import AccountPlusIcon from 'vue-material-design-icons/AccountPlus.vue' import FileIcon from 'vue-material-design-icons/File.vue' import FolderIcon from 'vue-material-design-icons/Folder.vue' diff --git a/apps/files/src/components/FileListFilter/FileListFilterModified.vue b/apps/files/src/components/FileListFilter/FileListFilterModified.vue index f3a968dd56e..3a843b2bc3e 100644 --- a/apps/files/src/components/FileListFilter/FileListFilterModified.vue +++ b/apps/files/src/components/FileListFilter/FileListFilterModified.vue @@ -7,7 +7,7 @@ :filter-name="t('files', 'Modified')" @reset-filter="resetFilter"> <template #icon> - <NcIconSvgWrapper :path="mdiCalendarRange" /> + <NcIconSvgWrapper :path="mdiCalendarRangeOutline" /> </template> <NcActionButton v-for="preset of timePresets" :key="preset.id" @@ -25,7 +25,7 @@ import type { PropType } from 'vue' import type { ITimePreset } from '../../filters/ModifiedFilter.ts' -import { mdiCalendarRange } from '@mdi/js' +import { mdiCalendarRangeOutline } from '@mdi/js' import { translate as t } from '@nextcloud/l10n' import { defineComponent } from 'vue' @@ -50,7 +50,7 @@ export default defineComponent({ setup() { return { // icons used in template - mdiCalendarRange, + mdiCalendarRangeOutline, } }, diff --git a/apps/files/src/components/NavigationQuota.vue b/apps/files/src/components/NavigationQuota.vue index fd10af1c495..46c8e5c9af4 100644 --- a/apps/files/src/components/NavigationQuota.vue +++ b/apps/files/src/components/NavigationQuota.vue @@ -33,7 +33,7 @@ import { subscribe } from '@nextcloud/event-bus' import { translate } from '@nextcloud/l10n' import axios from '@nextcloud/axios' -import ChartPie from 'vue-material-design-icons/ChartPie.vue' +import ChartPie from 'vue-material-design-icons/ChartPieOutline.vue' import NcAppNavigationItem from '@nextcloud/vue/components/NcAppNavigationItem' import NcProgressBar from '@nextcloud/vue/components/NcProgressBar' diff --git a/apps/files/src/newMenu/newFolder.ts b/apps/files/src/newMenu/newFolder.ts index 9a8badb4eb7..bc82d389e54 100644 --- a/apps/files/src/newMenu/newFolder.ts +++ b/apps/files/src/newMenu/newFolder.ts @@ -12,7 +12,7 @@ import { showError, showInfo, showSuccess } from '@nextcloud/dialogs' import { translate as t } from '@nextcloud/l10n' import axios from '@nextcloud/axios' -import FolderPlusSvg from '@mdi/svg/svg/folder-plus.svg?raw' +import FolderPlusSvg from '@mdi/svg/svg/folder-plus-outline.svg?raw' import { newNodeName } from '../utils/newNodeDialog' import logger from '../logger' @@ -43,8 +43,11 @@ export const entry = { id: 'newFolder', displayName: t('files', 'New folder'), enabled: (context: Folder) => Boolean(context.permissions & Permission.CREATE) && Boolean(context.permissions & Permission.READ), - iconSvgInline: FolderPlusSvg, + + // Make the svg icon color match the primary element color + iconSvgInline: FolderPlusSvg.replace(/viewBox/gi, 'style="color: var(--color-primary-element)" viewBox'), order: 0, + async handler(context: Folder, content: Node[]) { const name = await newNodeName(t('files', 'New folder'), content) if (name === null) { diff --git a/apps/files/src/views/FilesList.vue b/apps/files/src/views/FilesList.vue index 15a7f93ddf0..3f993e24958 100644 --- a/apps/files/src/views/FilesList.vue +++ b/apps/files/src/views/FilesList.vue @@ -176,12 +176,12 @@ import NcEmptyContent from '@nextcloud/vue/components/NcEmptyContent' import NcIconSvgWrapper from '@nextcloud/vue/components/NcIconSvgWrapper' import NcLoadingIcon from '@nextcloud/vue/components/NcLoadingIcon' -import AccountPlusIcon from 'vue-material-design-icons/AccountPlus.vue' +import AccountPlusIcon from 'vue-material-design-icons/AccountPlusOutline.vue' import IconAlertCircleOutline from 'vue-material-design-icons/AlertCircleOutline.vue' import IconReload from 'vue-material-design-icons/Reload.vue' import LinkIcon from 'vue-material-design-icons/Link.vue' import ListViewIcon from 'vue-material-design-icons/FormatListBulletedSquare.vue' -import ViewGridIcon from 'vue-material-design-icons/ViewGrid.vue' +import ViewGridIcon from 'vue-material-design-icons/ViewGridOutline.vue' import { action as sidebarAction } from '../actions/sidebarAction.ts' import { useFileListWidth } from '../composables/useFileListWidth.ts' diff --git a/apps/files/src/views/Navigation.vue b/apps/files/src/views/Navigation.vue index c424a0d74b8..0f3c3647c6e 100644 --- a/apps/files/src/views/Navigation.vue +++ b/apps/files/src/views/Navigation.vue @@ -47,7 +47,7 @@ import { getNavigation } from '@nextcloud/files' import { t, getCanonicalLocale, getLanguage } from '@nextcloud/l10n' import { defineComponent } from 'vue' -import IconCog from 'vue-material-design-icons/Cog.vue' +import IconCog from 'vue-material-design-icons/CogOutline.vue' import NcAppNavigation from '@nextcloud/vue/components/NcAppNavigation' import NcAppNavigationItem from '@nextcloud/vue/components/NcAppNavigationItem' import NcAppNavigationList from '@nextcloud/vue/components/NcAppNavigationList' diff --git a/apps/files/src/views/favorites.spec.ts b/apps/files/src/views/favorites.spec.ts index 64c3df0500a..e73279f2b31 100644 --- a/apps/files/src/views/favorites.spec.ts +++ b/apps/files/src/views/favorites.spec.ts @@ -7,6 +7,7 @@ import type { Folder as CFolder, Navigation } from '@nextcloud/files' import * as filesUtils from '@nextcloud/files' +import * as filesDavUtils from '@nextcloud/files/dav' import { CancelablePromise } from 'cancelable-promise' import { basename } from 'path' import { beforeEach, describe, expect, test, vi } from 'vitest' @@ -43,7 +44,7 @@ describe('Favorites view definition', () => { test('Default empty favorite view', async () => { vi.spyOn(eventBus, 'subscribe') - vi.spyOn(filesUtils, 'getFavoriteNodes').mockReturnValue(CancelablePromise.resolve([])) + vi.spyOn(filesDavUtils, 'getFavoriteNodes').mockReturnValue(CancelablePromise.resolve([])) vi.spyOn(favoritesService, 'getContents').mockReturnValue(CancelablePromise.resolve({ folder: {} as CFolder, contents: [] })) await registerFavoritesView() @@ -89,8 +90,14 @@ describe('Favorites view definition', () => { source: 'http://nextcloud.local/remote.php/dav/files/admin/foo/bar', owner: 'admin', }), + new Folder({ + id: 4, + root: '/files/admin', + source: 'http://nextcloud.local/remote.php/dav/files/admin/foo/bar/yabadaba', + owner: 'admin', + }), ] - vi.spyOn(filesUtils, 'getFavoriteNodes').mockReturnValue(CancelablePromise.resolve(favoriteFolders)) + vi.spyOn(filesDavUtils, 'getFavoriteNodes').mockReturnValue(CancelablePromise.resolve(favoriteFolders)) vi.spyOn(favoritesService, 'getContents').mockReturnValue(CancelablePromise.resolve({ folder: {} as CFolder, contents: [] })) await registerFavoritesView() @@ -98,9 +105,12 @@ describe('Favorites view definition', () => { const favoriteFoldersViews = Navigation.views.filter(view => view.parent === 'favorites') // one main view and 3 children - expect(Navigation.views.length).toBe(4) + expect(Navigation.views.length).toBe(5) expect(favoritesView).toBeDefined() - expect(favoriteFoldersViews.length).toBe(3) + expect(favoriteFoldersViews.length).toBe(4) + + // Sorted by basename: bar, bar, foo + const expectedOrder = [2, 0, 1, 3] favoriteFolders.forEach((folder, index) => { const favoriteView = favoriteFoldersViews[index] @@ -108,7 +118,7 @@ describe('Favorites view definition', () => { expect(favoriteView?.id).toBeDefined() expect(favoriteView?.name).toBe(basename(folder.path)) expect(favoriteView?.icon).toMatch(/<svg.+<\/svg>/) - expect(favoriteView?.order).toBe(index) + expect(favoriteView?.order).toBe(expectedOrder[index]) expect(favoriteView?.params).toStrictEqual({ dir: folder.path, fileid: String(folder.fileid), @@ -132,7 +142,7 @@ describe('Dynamic update of favorite folders', () => { test('Add a favorite folder creates a new entry in the navigation', async () => { vi.spyOn(eventBus, 'emit') - vi.spyOn(filesUtils, 'getFavoriteNodes').mockReturnValue(CancelablePromise.resolve([])) + vi.spyOn(filesDavUtils, 'getFavoriteNodes').mockReturnValue(CancelablePromise.resolve([])) vi.spyOn(favoritesService, 'getContents').mockReturnValue(CancelablePromise.resolve({ folder: {} as CFolder, contents: [] })) await registerFavoritesView() @@ -160,7 +170,7 @@ describe('Dynamic update of favorite folders', () => { test('Remove a favorite folder remove the entry from the navigation column', async () => { vi.spyOn(eventBus, 'emit') - vi.spyOn(filesUtils, 'getFavoriteNodes').mockReturnValue(CancelablePromise.resolve([ + vi.spyOn(filesDavUtils, 'getFavoriteNodes').mockReturnValue(CancelablePromise.resolve([ new Folder({ id: 42, root: '/files/admin', @@ -211,7 +221,7 @@ describe('Dynamic update of favorite folders', () => { test('Renaming a favorite folder updates the navigation', async () => { vi.spyOn(eventBus, 'emit') - vi.spyOn(filesUtils, 'getFavoriteNodes').mockReturnValue(CancelablePromise.resolve([])) + vi.spyOn(filesDavUtils, 'getFavoriteNodes').mockReturnValue(CancelablePromise.resolve([])) vi.spyOn(favoritesService, 'getContents').mockReturnValue(CancelablePromise.resolve({ folder: {} as CFolder, contents: [] })) await registerFavoritesView() diff --git a/apps/files/src/views/favorites.ts b/apps/files/src/views/favorites.ts index cadc7704e14..cac776507ef 100644 --- a/apps/files/src/views/favorites.ts +++ b/apps/files/src/views/favorites.ts @@ -4,13 +4,15 @@ */ import type { Folder, Node } from '@nextcloud/files' +import { FileType, View, getNavigation } from '@nextcloud/files' +import { getCanonicalLocale, getLanguage, t } from '@nextcloud/l10n' +import { getFavoriteNodes } from '@nextcloud/files/dav' import { subscribe } from '@nextcloud/event-bus' -import { FileType, View, getFavoriteNodes, getNavigation } from '@nextcloud/files' -import { getLanguage, translate as t } from '@nextcloud/l10n' -import { client } from '../services/WebdavClient.ts' + import FolderSvg from '@mdi/svg/svg/folder.svg?raw' -import StarSvg from '@mdi/svg/svg/star.svg?raw' +import StarSvg from '@mdi/svg/svg/star-outline.svg?raw' +import { client } from '../services/WebdavClient.ts' import { getContents } from '../services/Favorites' import { hashCode } from '../utils/hashUtils' import logger from '../logger' @@ -118,7 +120,7 @@ export const registerFavoritesView = async () => { * update the order property of the existing views */ const updateAndSortViews = function() { - favoriteFolders.sort((a, b) => a.path.localeCompare(b.path, getLanguage(), { ignorePunctuation: true })) + favoriteFolders.sort((a, b) => a.basename.localeCompare(b.basename, [getLanguage(), getCanonicalLocale()], { ignorePunctuation: true, numeric: true, usage: 'sort' })) favoriteFolders.forEach((folder, index) => { const view = favoriteFoldersViews.find((view) => view.id === generateIdFromPath(folder.path)) if (view) { @@ -176,4 +178,6 @@ export const registerFavoritesView = async () => { removePathFromFavorites(favoriteFolder.path) addToFavorites(node) } + + updateAndSortViews() } diff --git a/apps/files/src/views/files.ts b/apps/files/src/views/files.ts index 95450f0d71a..a94aab0f14b 100644 --- a/apps/files/src/views/files.ts +++ b/apps/files/src/views/files.ts @@ -10,7 +10,7 @@ import { getContents } from '../services/Files.ts' import { useActiveStore } from '../store/active.ts' import { defaultView } from '../utils/filesViews.ts' -import FolderSvg from '@mdi/svg/svg/folder.svg?raw' +import FolderSvg from '@mdi/svg/svg/folder-outline.svg?raw' export const VIEW_ID = 'files' diff --git a/apps/files/src/views/folderTree.ts b/apps/files/src/views/folderTree.ts index c38e4721316..bdff1659080 100644 --- a/apps/files/src/views/folderTree.ts +++ b/apps/files/src/views/folderTree.ts @@ -13,7 +13,7 @@ import { isSamePath } from '@nextcloud/paths' import { loadState } from '@nextcloud/initial-state' import FolderSvg from '@mdi/svg/svg/folder.svg?raw' -import FolderMultipleSvg from '@mdi/svg/svg/folder-multiple.svg?raw' +import FolderMultipleSvg from '@mdi/svg/svg/folder-multiple-outline.svg?raw' import { folderTreeId, diff --git a/apps/files/src/views/personal-files.ts b/apps/files/src/views/personal-files.ts index 36888eb7ee0..241582057d1 100644 --- a/apps/files/src/views/personal-files.ts +++ b/apps/files/src/views/personal-files.ts @@ -8,7 +8,7 @@ import { View, getNavigation } from '@nextcloud/files' import { getContents } from '../services/PersonalFiles.ts' import { defaultView, hasPersonalFilesView } from '../utils/filesViews.ts' -import AccountIcon from '@mdi/svg/svg/account.svg?raw' +import AccountIcon from '@mdi/svg/svg/account-outline.svg?raw' export const VIEW_ID = 'personal' diff --git a/apps/files_sharing/l10n/it.js b/apps/files_sharing/l10n/it.js index 23f0a3b4a28..fa7d330d86e 100644 --- a/apps/files_sharing/l10n/it.js +++ b/apps/files_sharing/l10n/it.js @@ -254,7 +254,7 @@ OC.L10N.register( "Search for internal recipients" : "Cerca destinatari interni", "Note from" : "Nota da", "Note:" : "Nota:", - "File drop" : "Elimina file", + "File drop" : "Deposita file", "Upload files to {foldername}." : "Carica i file su{foldername}.", "By uploading files, you agree to the terms of service." : "Caricando i file accetti i termini del servizio.", "Successfully uploaded files" : "File caricati correttamente", diff --git a/apps/files_sharing/l10n/it.json b/apps/files_sharing/l10n/it.json index fc84fa187f2..77427218f18 100644 --- a/apps/files_sharing/l10n/it.json +++ b/apps/files_sharing/l10n/it.json @@ -252,7 +252,7 @@ "Search for internal recipients" : "Cerca destinatari interni", "Note from" : "Nota da", "Note:" : "Nota:", - "File drop" : "Elimina file", + "File drop" : "Deposita file", "Upload files to {foldername}." : "Carica i file su{foldername}.", "By uploading files, you agree to the terms of service." : "Caricando i file accetti i termini del servizio.", "Successfully uploaded files" : "File caricati correttamente", diff --git a/apps/files_sharing/src/components/FileListFilterAccount.vue b/apps/files_sharing/src/components/FileListFilterAccount.vue index 46c847e7b19..150516e139b 100644 --- a/apps/files_sharing/src/components/FileListFilterAccount.vue +++ b/apps/files_sharing/src/components/FileListFilterAccount.vue @@ -8,7 +8,7 @@ :filter-name="t('files_sharing', 'People')" @reset-filter="resetFilter"> <template #icon> - <NcIconSvgWrapper :path="mdiAccountMultiple" /> + <NcIconSvgWrapper :path="mdiAccountMultipleOutline" /> </template> <NcActionInput v-if="availableAccounts.length > 1" :label="t('files_sharing', 'Filter accounts')" @@ -39,7 +39,7 @@ import type { IAccountData } from '../files_filters/AccountFilter.ts' import { translate as t } from '@nextcloud/l10n' -import { mdiAccountMultiple } from '@mdi/js' +import { mdiAccountMultipleOutline } from '@mdi/js' import { computed, ref, watch } from 'vue' import FileListFilter from '../../../files/src/components/FileListFilter/FileListFilter.vue' diff --git a/apps/files_sharing/src/components/NewFileRequestDialog/NewFileRequestDialogIntro.vue b/apps/files_sharing/src/components/NewFileRequestDialog/NewFileRequestDialogIntro.vue index 2d4d8eafa2b..5ac60c37e29 100644 --- a/apps/files_sharing/src/components/NewFileRequestDialog/NewFileRequestDialogIntro.vue +++ b/apps/files_sharing/src/components/NewFileRequestDialog/NewFileRequestDialogIntro.vue @@ -78,7 +78,7 @@ import { getFilePickerBuilder } from '@nextcloud/dialogs' import { t } from '@nextcloud/l10n' import IconFolder from 'vue-material-design-icons/Folder.vue' -import IconInfo from 'vue-material-design-icons/Information.vue' +import IconInfo from 'vue-material-design-icons/InformationOutline.vue' import IconLock from 'vue-material-design-icons/Lock.vue' import NcTextArea from '@nextcloud/vue/components/NcTextArea' import NcTextField from '@nextcloud/vue/components/NcTextField' diff --git a/apps/files_sharing/src/components/SharingEntryLink.vue b/apps/files_sharing/src/components/SharingEntryLink.vue index 702b876306f..6a456fa0a15 100644 --- a/apps/files_sharing/src/components/SharingEntryLink.vue +++ b/apps/files_sharing/src/components/SharingEntryLink.vue @@ -74,10 +74,10 @@ {{ config.enforcePasswordForPublicLink ? t('files_sharing', 'Password protection (enforced)') : t('files_sharing', 'Password protection') }} </NcActionCheckbox> - <NcActionInput v-if="pendingEnforcedPassword || share.password" + <NcActionInput v-if="pendingEnforcedPassword || isPasswordProtected" class="share-link-password" :label="t('files_sharing', 'Enter a password')" - :value.sync="share.password" + :value.sync="share.newPassword" :disabled="saving" :required="config.enableLinkPasswordByDefault || config.enforcePasswordForPublicLink" :minlength="isPasswordPolicyEnabled && config.passwordPolicy.minLength" @@ -115,7 +115,8 @@ </template> </NcActionInput> - <NcActionButton @click.prevent.stop="onNewLinkShare(true)"> + <NcActionButton :disabled="pendingEnforcedPassword && !share.newPassword" + @click.prevent.stop="onNewLinkShare(true)"> <template #icon> <CheckIcon :size="20" /> </template> @@ -242,10 +243,10 @@ import NcAvatar from '@nextcloud/vue/components/NcAvatar' import NcDialog from '@nextcloud/vue/components/NcDialog' import Tune from 'vue-material-design-icons/Tune.vue' -import IconCalendarBlank from 'vue-material-design-icons/CalendarBlank.vue' +import IconCalendarBlank from 'vue-material-design-icons/CalendarBlankOutline.vue' import IconQr from 'vue-material-design-icons/Qrcode.vue' import ErrorIcon from 'vue-material-design-icons/Exclamation.vue' -import LockIcon from 'vue-material-design-icons/Lock.vue' +import LockIcon from 'vue-material-design-icons/LockOutline.vue' import CheckIcon from 'vue-material-design-icons/CheckBold.vue' import ClipboardIcon from 'vue-material-design-icons/ContentCopy.vue' import CloseIcon from 'vue-material-design-icons/Close.vue' @@ -646,6 +647,7 @@ export default { // create share & close menu const share = new Share(shareDefaults) + share.newPassword = share.password const component = await new Promise(resolve => { this.$emit('add:share', share, resolve) }) @@ -838,7 +840,7 @@ export default { */ onPasswordSubmit() { if (this.hasUnsavedPassword) { - this.share.password = this.share.newPassword.trim() + this.share.newPassword = this.share.newPassword.trim() this.queueUpdate('password') } }, @@ -853,7 +855,7 @@ export default { */ onPasswordProtectedByTalkChange() { if (this.hasUnsavedPassword) { - this.share.password = this.share.newPassword.trim() + this.share.newPassword = this.share.newPassword.trim() } this.queueUpdate('sendPasswordByTalk', 'password') diff --git a/apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue b/apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue index 041841201d0..102eea63cb6 100644 --- a/apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue +++ b/apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue @@ -36,7 +36,7 @@ import ShareDetails from '../mixins/ShareDetails.js' import NcActions from '@nextcloud/vue/components/NcActions' import NcActionButton from '@nextcloud/vue/components/NcActionButton' import IconEyeOutline from 'vue-material-design-icons/EyeOutline.vue' -import IconPencil from 'vue-material-design-icons/Pencil.vue' +import IconPencil from 'vue-material-design-icons/PencilOutline.vue' import IconFileUpload from 'vue-material-design-icons/FileUpload.vue' import IconTune from 'vue-material-design-icons/Tune.vue' diff --git a/apps/files_sharing/src/files_actions/sharingStatusAction.ts b/apps/files_sharing/src/files_actions/sharingStatusAction.ts index 75fe7d54096..2dfd8467c5b 100644 --- a/apps/files_sharing/src/files_actions/sharingStatusAction.ts +++ b/apps/files_sharing/src/files_actions/sharingStatusAction.ts @@ -8,8 +8,8 @@ import { translate as t } from '@nextcloud/l10n' import { ShareType } from '@nextcloud/sharing' import { isPublicShare } from '@nextcloud/sharing/public' -import AccountGroupSvg from '@mdi/svg/svg/account-group.svg?raw' -import AccountPlusSvg from '@mdi/svg/svg/account-plus.svg?raw' +import AccountGroupSvg from '@mdi/svg/svg/account-group-outline.svg?raw' +import AccountPlusSvg from '@mdi/svg/svg/account-plus-outline.svg?raw' import LinkSvg from '@mdi/svg/svg/link.svg?raw' import CircleSvg from '../../../../core/img/apps/circles.svg?raw' diff --git a/apps/files_sharing/src/files_newMenu/newFileRequest.ts b/apps/files_sharing/src/files_newMenu/newFileRequest.ts index f7c5cc4057a..1d58e3552a2 100644 --- a/apps/files_sharing/src/files_newMenu/newFileRequest.ts +++ b/apps/files_sharing/src/files_newMenu/newFileRequest.ts @@ -7,7 +7,7 @@ import type { Entry, Folder, Node } from '@nextcloud/files' import { defineAsyncComponent } from 'vue' import { spawnDialog } from '@nextcloud/dialogs' import { translate as t } from '@nextcloud/l10n' -import FileUploadSvg from '@mdi/svg/svg/file-upload.svg?raw' +import FileUploadSvg from '@mdi/svg/svg/file-upload-outline.svg?raw' import Config from '../services/ConfigService' import { isPublicShare } from '@nextcloud/sharing/public' diff --git a/apps/files_sharing/src/files_views/shares.ts b/apps/files_sharing/src/files_views/shares.ts index 297fd4796fd..fd5e908638c 100644 --- a/apps/files_sharing/src/files_views/shares.ts +++ b/apps/files_sharing/src/files_views/shares.ts @@ -6,11 +6,11 @@ import { translate as t } from '@nextcloud/l10n' import { View, getNavigation } from '@nextcloud/files' import { ShareType } from '@nextcloud/sharing' import AccountClockSvg from '@mdi/svg/svg/account-clock.svg?raw' -import AccountGroupSvg from '@mdi/svg/svg/account-group.svg?raw' -import AccountPlusSvg from '@mdi/svg/svg/account-plus.svg?raw' +import AccountGroupSvg from '@mdi/svg/svg/account-group-outline.svg?raw' +import AccountPlusSvg from '@mdi/svg/svg/account-plus-outline.svg?raw' import AccountSvg from '@mdi/svg/svg/account.svg?raw' import DeleteSvg from '@mdi/svg/svg/delete.svg?raw' -import FileUploadSvg from '@mdi/svg/svg/file-upload.svg?raw' +import FileUploadSvg from '@mdi/svg/svg/file-upload-outline.svg?raw' import LinkSvg from '@mdi/svg/svg/link.svg?raw' import { getContents, isFileRequest } from '../services/SharingService' diff --git a/apps/files_sharing/src/mixins/SharesMixin.js b/apps/files_sharing/src/mixins/SharesMixin.js index c5bad91314e..a461da56d85 100644 --- a/apps/files_sharing/src/mixins/SharesMixin.js +++ b/apps/files_sharing/src/mixins/SharesMixin.js @@ -165,12 +165,12 @@ export default { isPasswordProtected: { get() { return this.config.enforcePasswordForPublicLink - || !!this.share.password + || this.share.password !== '' + || this.share.newPassword !== undefined }, async set(enabled) { if (enabled) { - this.share.password = await GeneratePassword(true) - this.$set(this.share, 'newPassword', this.share.password) + this.$set(this.share, 'newPassword', await GeneratePassword(true)) } else { this.share.password = '' this.$delete(this.share, 'newPassword') @@ -272,7 +272,7 @@ export default { this.loading = true this.open = false await this.deleteShare(this.share.id) - console.debug('Share deleted', this.share.id) + logger.debug('Share deleted', { shareId: this.share.id }) const message = this.share.itemType === 'file' ? t('files_sharing', 'File "{path}" has been unshared', { path: this.share.path }) : t('files_sharing', 'Folder "{path}" has been unshared', { path: this.share.path }) @@ -303,7 +303,12 @@ export default { const properties = {} // force value to string because that is what our // share api controller accepts - propertyNames.forEach(name => { + for (const name of propertyNames) { + if (name === 'password') { + properties[name] = this.share.newPassword ?? this.share.password + continue + } + if (this.share[name] === null || this.share[name] === undefined) { properties[name] = '' } else if ((typeof this.share[name]) === 'object') { @@ -311,7 +316,7 @@ export default { } else { properties[name] = this.share[name].toString() } - }) + } return this.updateQueue.add(async () => { this.saving = true @@ -319,8 +324,9 @@ export default { try { const updatedShare = await this.updateShare(this.share.id, properties) - if (propertyNames.indexOf('password') >= 0) { + if (propertyNames.includes('password')) { // reset password state after sync + this.share.password = this.share.newPassword ?? '' this.$delete(this.share, 'newPassword') // updates password expiration time after sync @@ -328,14 +334,18 @@ export default { } // clear any previous errors - this.$delete(this.errors, propertyNames[0]) + for (const property of propertyNames) { + this.$delete(this.errors, property) + } showSuccess(this.updateSuccessMessage(propertyNames)) } catch (error) { logger.error('Could not update share', { error, share: this.share, propertyNames }) const { message } = error if (message && message !== '') { - this.onSyncError(propertyNames[0], message) + for (const property of propertyNames) { + this.onSyncError(property, message) + } showError(message) } else { // We do not have information what happened, but we should still inform the user @@ -384,6 +394,13 @@ export default { * @param {string} message the error message */ onSyncError(property, message) { + if (property === 'password' && this.share.newPassword) { + if (this.share.newPassword === this.share.password) { + this.share.password = '' + } + this.$delete(this.share, 'newPassword') + } + // re-open menu if closed this.open = true switch (property) { diff --git a/apps/files_sharing/src/views/FilesViewFileDropEmptyContent.vue b/apps/files_sharing/src/views/FilesViewFileDropEmptyContent.vue index 33fec9af028..dac22748d8a 100644 --- a/apps/files_sharing/src/views/FilesViewFileDropEmptyContent.vue +++ b/apps/files_sharing/src/views/FilesViewFileDropEmptyContent.vue @@ -68,7 +68,7 @@ import NcDialog from '@nextcloud/vue/components/NcDialog' import NcEmptyContent from '@nextcloud/vue/components/NcEmptyContent' import NcIconSvgWrapper from '@nextcloud/vue/components/NcIconSvgWrapper' import NcNoteCard from '@nextcloud/vue/components/NcNoteCard' -import svgCloudUpload from '@mdi/svg/svg/cloud-upload.svg?raw' +import svgCloudUpload from '@mdi/svg/svg/cloud-upload-outline.svg?raw' defineProps<{ foldername: string diff --git a/apps/files_sharing/src/views/SharingDetailsTab.vue b/apps/files_sharing/src/views/SharingDetailsTab.vue index f1fb78e548b..ee902a24c8a 100644 --- a/apps/files_sharing/src/views/SharingDetailsTab.vue +++ b/apps/files_sharing/src/views/SharingDetailsTab.vue @@ -128,7 +128,7 @@ </NcCheckboxRadioSwitch> <NcPasswordField v-if="isPasswordProtected" autocomplete="new-password" - :value="hasUnsavedPassword ? share.newPassword : ''" + :value="share.newPassword ?? ''" :error="passwordError" :helper-text="errorPasswordLabel || passwordHint" :required="isPasswordEnforced && isNewShare" @@ -281,7 +281,7 @@ import NcTextArea from '@nextcloud/vue/components/NcTextArea' import CircleIcon from 'vue-material-design-icons/CircleOutline.vue' import CloseIcon from 'vue-material-design-icons/Close.vue' -import EditIcon from 'vue-material-design-icons/Pencil.vue' +import EditIcon from 'vue-material-design-icons/PencilOutline.vue' import EmailIcon from 'vue-material-design-icons/Email.vue' import LinkIcon from 'vue-material-design-icons/Link.vue' import GroupIcon from 'vue-material-design-icons/AccountGroup.vue' @@ -872,7 +872,6 @@ export default { if (this.isNewShare) { if ((this.config.enableLinkPasswordByDefault || this.isPasswordEnforced) && this.isPublicShare) { this.$set(this.share, 'newPassword', await GeneratePassword(true)) - this.$set(this.share, 'password', this.share.newPassword) this.advancedSectionAccordionExpanded = true } /* Set default expiration dates if configured */ @@ -973,10 +972,7 @@ export default { this.share.note = '' } if (this.isPasswordProtected) { - if (this.hasUnsavedPassword && this.isValidShareAttribute(this.share.newPassword)) { - this.share.password = this.share.newPassword - this.$delete(this.share, 'newPassword') - } else if (this.isPasswordEnforced && this.isNewShare && !this.isValidShareAttribute(this.share.password)) { + if (this.isPasswordEnforced && this.isNewShare && !this.isValidShareAttribute(this.share.password)) { this.passwordError = true } } else { @@ -1000,7 +996,7 @@ export default { incomingShare.expireDate = this.hasExpirationDate ? this.share.expireDate : '' if (this.isPasswordProtected) { - incomingShare.password = this.share.password + incomingShare.password = this.share.newPassword } let share @@ -1032,9 +1028,8 @@ export default { this.$emit('add:share', this.share) } else { // Let's update after creation as some attrs are only available after creation + await this.queueUpdate(...permissionsAndAttributes) this.$emit('update:share', this.share) - emit('update:share', this.share) - this.queueUpdate(...permissionsAndAttributes) } await this.getNode() @@ -1111,10 +1106,6 @@ export default { * "sendPasswordByTalk". */ onPasswordProtectedByTalkChange() { - if (this.hasUnsavedPassword) { - this.share.password = this.share.newPassword.trim() - } - this.queueUpdate('sendPasswordByTalk', 'password') }, isValidShareAttribute(value) { diff --git a/apps/files_sharing/src/views/SharingTab.vue b/apps/files_sharing/src/views/SharingTab.vue index 82a11dea2e0..e56201f6e06 100644 --- a/apps/files_sharing/src/views/SharingTab.vue +++ b/apps/files_sharing/src/views/SharingTab.vue @@ -164,7 +164,7 @@ import { generateOcsUrl } from '@nextcloud/router' import { CollectionList } from 'nextcloud-vue-collections' import { ShareType } from '@nextcloud/sharing' -import InfoIcon from 'vue-material-design-icons/Information.vue' +import InfoIcon from 'vue-material-design-icons/InformationOutline.vue' import NcPopover from '@nextcloud/vue/components/NcPopover' import axios from '@nextcloud/axios' diff --git a/apps/files_trashbin/src/files_views/trashbinView.ts b/apps/files_trashbin/src/files_views/trashbinView.ts index 5b547071cc7..f55c6b71595 100644 --- a/apps/files_trashbin/src/files_views/trashbinView.ts +++ b/apps/files_trashbin/src/files_views/trashbinView.ts @@ -7,7 +7,7 @@ import { t } from '@nextcloud/l10n' import { deleted, deletedBy, originalLocation } from './columns.ts' import { getContents } from '../services/trashbin.ts' -import svgDelete from '@mdi/svg/svg/delete.svg?raw' +import svgDelete from '@mdi/svg/svg/delete-outline.svg?raw' export const TRASHBIN_VIEW_ID = 'trashbin' diff --git a/apps/files_versions/src/components/Version.vue b/apps/files_versions/src/components/Version.vue index 275f1d0ddbf..dc36e4134f9 100644 --- a/apps/files_versions/src/components/Version.vue +++ b/apps/files_versions/src/components/Version.vue @@ -137,7 +137,7 @@ import Delete from 'vue-material-design-icons/Delete.vue' import Download from 'vue-material-design-icons/Download.vue' import FileCompare from 'vue-material-design-icons/FileCompare.vue' import ImageOffOutline from 'vue-material-design-icons/ImageOffOutline.vue' -import Pencil from 'vue-material-design-icons/Pencil.vue' +import Pencil from 'vue-material-design-icons/PencilOutline.vue' import NcActionButton from '@nextcloud/vue/components/NcActionButton' import NcActionLink from '@nextcloud/vue/components/NcActionLink' diff --git a/apps/oauth2/src/components/OAuthItem.vue b/apps/oauth2/src/components/OAuthItem.vue index 3341a86168a..5a8f1556203 100644 --- a/apps/oauth2/src/components/OAuthItem.vue +++ b/apps/oauth2/src/components/OAuthItem.vue @@ -35,7 +35,7 @@ <script> -import Delete from 'vue-material-design-icons/Delete.vue' +import Delete from 'vue-material-design-icons/DeleteOutline.vue' import EyeOutline from 'vue-material-design-icons/EyeOutline.vue' import NcButton from '@nextcloud/vue/components/NcButton' diff --git a/apps/profile/l10n/be.js b/apps/profile/l10n/be.js new file mode 100644 index 00000000000..40762e2b51c --- /dev/null +++ b/apps/profile/l10n/be.js @@ -0,0 +1,12 @@ +OC.L10N.register( + "profile", + { + "Profile" : "Профіль", + "You have not added any info yet" : "Вы пакуль не дадалі ніякай інфармацыі", + "{user} has not added any info yet" : "{user} пакуль не дадаў(-ла) ніякай інфармацыі", + "Edit Profile" : "Рэдагаваць профіль", + "Profile not found" : "Профіль не знойдзены", + "The profile does not exist." : "Профіль не існуе.", + "Back to %s" : "Назад да %s" +}, +"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"); diff --git a/apps/profile/l10n/be.json b/apps/profile/l10n/be.json new file mode 100644 index 00000000000..16101d03b70 --- /dev/null +++ b/apps/profile/l10n/be.json @@ -0,0 +1,10 @@ +{ "translations": { + "Profile" : "Профіль", + "You have not added any info yet" : "Вы пакуль не дадалі ніякай інфармацыі", + "{user} has not added any info yet" : "{user} пакуль не дадаў(-ла) ніякай інфармацыі", + "Edit Profile" : "Рэдагаваць профіль", + "Profile not found" : "Профіль не знойдзены", + "The profile does not exist." : "Профіль не існуе.", + "Back to %s" : "Назад да %s" +},"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);" +}
\ No newline at end of file diff --git a/apps/profile/src/views/Profile.vue b/apps/profile/src/views/Profile.vue index 7865c0d05f1..046a731cb93 100644 --- a/apps/profile/src/views/Profile.vue +++ b/apps/profile/src/views/Profile.vue @@ -134,9 +134,9 @@ import NcButton from '@nextcloud/vue/components/NcButton' import NcContent from '@nextcloud/vue/components/NcContent' import NcEmptyContent from '@nextcloud/vue/components/NcEmptyContent' import NcRichText from '@nextcloud/vue/components/NcRichText' -import AccountIcon from 'vue-material-design-icons/Account.vue' +import AccountIcon from 'vue-material-design-icons/AccountOutline.vue' import MapMarkerIcon from 'vue-material-design-icons/MapMarker.vue' -import PencilIcon from 'vue-material-design-icons/Pencil.vue' +import PencilIcon from 'vue-material-design-icons/PencilOutline.vue' interface IProfileAction { target: string diff --git a/apps/settings/img/password.svg b/apps/settings/img/password.svg index be3362cf765..07d9fcea162 100644 --- a/apps/settings/img/password.svg +++ b/apps/settings/img/password.svg @@ -1 +1 @@ -<svg viewBox="0 0 16 16" height="16" width="16" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2"><path d="M6.308 21.5c-.497 0-.923-.177-1.277-.531a1.742 1.742 0 0 1-.531-1.277v-9.384c0-.497.177-.923.531-1.277.354-.354.78-.531 1.277-.531H7.5v-2c0-1.249.438-2.311 1.314-3.187C9.689 2.438 10.751 2 12 2c1.249 0 2.311.438 3.187 1.313.875.876 1.313 1.938 1.313 3.187v2h1.192c.497 0 .923.177 1.277.531.354.354.531.78.531 1.277v9.384c0 .497-.177.923-.531 1.277-.354.354-.78.531-1.277.531H6.308ZM12 16.75c.486 0 .899-.17 1.24-.51.34-.341.51-.754.51-1.24s-.17-.899-.51-1.239A1.688 1.688 0 0 0 12 13.25c-.486 0-.899.17-1.239.511-.341.34-.511.753-.511 1.239 0 .486.17.899.511 1.24.34.34.753.51 1.239.51ZM9 8.5h6v-2c0-.833-.292-1.542-.875-2.125A2.894 2.894 0 0 0 12 3.5c-.833 0-1.542.292-2.125.875A2.894 2.894 0 0 0 9 6.5v2Z" style="fill-rule:nonzero" transform="matrix(.71795 0 0 .71795 -.61 -.414)"/></svg>
\ No newline at end of file +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" height="16" width="16"><path d="M12,17C10.89,17 10,16.1 10,15C10,13.89 10.89,13 12,13A2,2 0 0,1 14,15A2,2 0 0,1 12,17M18,20V10H6V20H18M18,8A2,2 0 0,1 20,10V20A2,2 0 0,1 18,22H6C4.89,22 4,21.1 4,20V10C4,8.89 4.89,8 6,8H7V6A5,5 0 0,1 12,1A5,5 0 0,1 17,6V8H18M12,3A3,3 0 0,0 9,6V8H15V6A3,3 0 0,0 12,3Z" /></svg>
\ No newline at end of file diff --git a/apps/settings/img/personal.png b/apps/settings/img/personal.png Binary files differindex 179b15522b3..7a67761b53c 100644 --- a/apps/settings/img/personal.png +++ b/apps/settings/img/personal.png diff --git a/apps/settings/img/personal.svg b/apps/settings/img/personal.svg index e7d2b3e9f75..31ffe28b807 100644 --- a/apps/settings/img/personal.svg +++ b/apps/settings/img/personal.svg @@ -1 +1 @@ -<svg viewBox="0 0 16 16" height="16" width="16" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2"><path d="M12 11.692c-.962 0-1.786-.342-2.472-1.028C8.843 9.979 8.5 9.155 8.5 8.192c0-.962.343-1.786 1.028-2.471.686-.686 1.51-1.029 2.472-1.029.963 0 1.786.343 2.472 1.029.685.685 1.028 1.509 1.028 2.471 0 .963-.343 1.787-1.028 2.472-.686.686-1.509 1.028-2.472 1.028Zm-7.5 7.616v-2.224c0-.489.133-.943.399-1.36a2.663 2.663 0 0 1 1.067-.962 14.51 14.51 0 0 1 2.991-1.091 12.965 12.965 0 0 1 6.086 0c1.006.243 2.003.606 2.992 1.091.445.224.8.545 1.066.962.266.417.399.871.399 1.36v2.224h-15Z" style="fill-rule:nonzero" transform="matrix(.95789 0 0 .95789 -3.484 -3.495)"/></svg>
\ No newline at end of file +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" height="16" width="16"><path d="M12,4A4,4 0 0,1 16,8A4,4 0 0,1 12,12A4,4 0 0,1 8,8A4,4 0 0,1 12,4M12,6A2,2 0 0,0 10,8A2,2 0 0,0 12,10A2,2 0 0,0 14,8A2,2 0 0,0 12,6M12,13C14.67,13 20,14.33 20,17V20H4V17C4,14.33 9.33,13 12,13M12,14.9C9.03,14.9 5.9,16.36 5.9,17V18.1H18.1V17C18.1,16.36 14.97,14.9 12,14.9Z" /></svg>
\ No newline at end of file diff --git a/apps/settings/img/users-white.svg b/apps/settings/img/users-white.svg index 4290dcd325f..d52dcac95c2 100644 --- a/apps/settings/img/users-white.svg +++ b/apps/settings/img/users-white.svg @@ -1 +1 @@ -<svg viewBox="0 0 16 16" height="16" width="16" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2"><path d="M1.798 19.308v-2.224c0-.515.133-.975.399-1.379a2.721 2.721 0 0 1 1.066-.944c.95-.465 1.906-.823 2.867-1.076.961-.251 2.017-.377 3.168-.377 1.151 0 2.207.126 3.168.377.961.253 1.917.611 2.867 1.076.445.225.8.539 1.066.944.266.404.399.864.399 1.379v2.224h-15Zm17 0v-2.346c0-.657-.161-1.282-.482-1.877a4.533 4.533 0 0 0-1.368-1.531c.671.1 1.307.255 1.91.464.602.21 1.177.458 1.725.744.516.275.915.6 1.197.974.281.374.422.783.422 1.226v2.346h-3.404Zm-9.5-7.616c-.962 0-1.786-.342-2.472-1.028-.685-.685-1.028-1.509-1.028-2.472 0-.962.343-1.786 1.028-2.471.686-.686 1.51-1.029 2.472-1.029.963 0 1.787.343 2.472 1.029.685.685 1.028 1.509 1.028 2.471 0 .963-.343 1.787-1.028 2.472a3.367 3.367 0 0 1-2.472 1.028Zm8.635-3.5c0 .963-.343 1.787-1.028 2.472-.686.686-1.51 1.028-2.472 1.028-.113 0-.257-.013-.431-.038a3.814 3.814 0 0 1-.431-.085c.395-.474.698-1 .91-1.578a5.209 5.209 0 0 0-.007-3.593 5.774 5.774 0 0 0-.903-1.582c.144-.052.287-.085.431-.1.144-.016.287-.024.431-.024.962 0 1.786.343 2.472 1.029.685.685 1.028 1.509 1.028 2.471Z" style="fill:#fff;fill-rule:nonzero" transform="matrix(.78418 0 0 .78418 -1.41 -1.43)"/></svg>
\ No newline at end of file +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" height="16" width="16"><path fill="#fff" d="M13.07 10.41A5 5 0 0 0 13.07 4.59A3.39 3.39 0 0 1 15 4A3.5 3.5 0 0 1 15 11A3.39 3.39 0 0 1 13.07 10.41M5.5 7.5A3.5 3.5 0 1 1 9 11A3.5 3.5 0 0 1 5.5 7.5M7.5 7.5A1.5 1.5 0 1 0 9 6A1.5 1.5 0 0 0 7.5 7.5M16 17V19H2V17S2 13 9 13 16 17 16 17M14 17C13.86 16.22 12.67 15 9 15S4.07 16.31 4 17M15.95 13A5.32 5.32 0 0 1 18 17V19H22V17S22 13.37 15.94 13Z" /></svg>
\ No newline at end of file diff --git a/apps/settings/img/users.svg b/apps/settings/img/users.svg index 6894dfbb44e..91d0afce238 100644 --- a/apps/settings/img/users.svg +++ b/apps/settings/img/users.svg @@ -1 +1 @@ -<svg viewBox="0 0 16 16" height="16" width="16" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2"><path d="M1.798 19.308v-2.224c0-.515.133-.975.399-1.379a2.721 2.721 0 0 1 1.066-.944c.95-.465 1.906-.823 2.867-1.076.961-.251 2.017-.377 3.168-.377 1.151 0 2.207.126 3.168.377.961.253 1.917.611 2.867 1.076.445.225.8.539 1.066.944.266.404.399.864.399 1.379v2.224h-15Zm17 0v-2.346c0-.657-.161-1.282-.482-1.877a4.533 4.533 0 0 0-1.368-1.531c.671.1 1.307.255 1.91.464.602.21 1.177.458 1.725.744.516.275.915.6 1.197.974.281.374.422.783.422 1.226v2.346h-3.404Zm-9.5-7.616c-.962 0-1.786-.342-2.472-1.028-.685-.685-1.028-1.509-1.028-2.472 0-.962.343-1.786 1.028-2.471.686-.686 1.51-1.029 2.472-1.029.963 0 1.787.343 2.472 1.029.685.685 1.028 1.509 1.028 2.471 0 .963-.343 1.787-1.028 2.472a3.367 3.367 0 0 1-2.472 1.028Zm8.635-3.5c0 .963-.343 1.787-1.028 2.472-.686.686-1.51 1.028-2.472 1.028-.113 0-.257-.013-.431-.038a3.814 3.814 0 0 1-.431-.085c.395-.474.698-1 .91-1.578a5.209 5.209 0 0 0-.007-3.593 5.774 5.774 0 0 0-.903-1.582c.144-.052.287-.085.431-.1.144-.016.287-.024.431-.024.962 0 1.786.343 2.472 1.029.685.685 1.028 1.509 1.028 2.471Z" style="fill-rule:nonzero" transform="matrix(.78418 0 0 .78418 -1.41 -1.43)"/></svg>
\ No newline at end of file +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" height="16" width="16"><path d="M13.07 10.41A5 5 0 0 0 13.07 4.59A3.39 3.39 0 0 1 15 4A3.5 3.5 0 0 1 15 11A3.39 3.39 0 0 1 13.07 10.41M5.5 7.5A3.5 3.5 0 1 1 9 11A3.5 3.5 0 0 1 5.5 7.5M7.5 7.5A1.5 1.5 0 1 0 9 6A1.5 1.5 0 0 0 7.5 7.5M16 17V19H2V17S2 13 9 13 16 17 16 17M14 17C13.86 16.22 12.67 15 9 15S4.07 16.31 4 17M15.95 13A5.32 5.32 0 0 1 18 17V19H22V17S22 13.37 15.94 13Z" /></svg>
\ No newline at end of file diff --git a/apps/settings/l10n/cs.js b/apps/settings/l10n/cs.js index 15e1f22443a..7fead4b9912 100644 --- a/apps/settings/l10n/cs.js +++ b/apps/settings/l10n/cs.js @@ -370,6 +370,8 @@ OC.L10N.register( "Users will still be able to screenshot or record the screen. This does not provide any definitive protection." : "Uživatelé i tak budou moci pořizovat snímky/video z obrazovky. Neposkytuje to jakoukoli definitivní ochranu.", "Allow users to share via link and emails" : "Povolit uživatelům sdílet pomocí odkazů a e-mailů", "Allow public uploads" : "Povolit veřejné nahrávání souborů", + "Allow public shares to be added to other clouds by federation." : "Umožnit přidávání veřejných sdílení do ostatních cloudů prostřednictvím federování.", + "This will add share permissions to all newly created link shares." : "Toto přidá oprávnění ke sdílení ke všem nově vytvářeným sdílením odkazem.", "Always ask for a password" : "Vždy se zeptat na heslo", "Enforce password protection" : "Vynutit ochranu heslem", "Exclude groups from password requirements" : "Z požadavků na heslo vynechat následující skupiny", diff --git a/apps/settings/l10n/cs.json b/apps/settings/l10n/cs.json index 4637303628d..7269c122bb3 100644 --- a/apps/settings/l10n/cs.json +++ b/apps/settings/l10n/cs.json @@ -368,6 +368,8 @@ "Users will still be able to screenshot or record the screen. This does not provide any definitive protection." : "Uživatelé i tak budou moci pořizovat snímky/video z obrazovky. Neposkytuje to jakoukoli definitivní ochranu.", "Allow users to share via link and emails" : "Povolit uživatelům sdílet pomocí odkazů a e-mailů", "Allow public uploads" : "Povolit veřejné nahrávání souborů", + "Allow public shares to be added to other clouds by federation." : "Umožnit přidávání veřejných sdílení do ostatních cloudů prostřednictvím federování.", + "This will add share permissions to all newly created link shares." : "Toto přidá oprávnění ke sdílení ke všem nově vytvářeným sdílením odkazem.", "Always ask for a password" : "Vždy se zeptat na heslo", "Enforce password protection" : "Vynutit ochranu heslem", "Exclude groups from password requirements" : "Z požadavků na heslo vynechat následující skupiny", diff --git a/apps/settings/l10n/en_GB.js b/apps/settings/l10n/en_GB.js index c96cc378ed7..c5c2d22ec57 100644 --- a/apps/settings/l10n/en_GB.js +++ b/apps/settings/l10n/en_GB.js @@ -370,6 +370,8 @@ OC.L10N.register( "Users will still be able to screenshot or record the screen. This does not provide any definitive protection." : "Users will still be able to screenshot or record the screen. This does not provide any definitive protection.", "Allow users to share via link and emails" : "Allow users to share via link and emails", "Allow public uploads" : "Allow public uploads", + "Allow public shares to be added to other clouds by federation." : "Allow public shares to be added to other clouds by federation.", + "This will add share permissions to all newly created link shares." : "This will add share permissions to all newly created link shares.", "Always ask for a password" : "Always ask for a password", "Enforce password protection" : "Enforce password protection", "Exclude groups from password requirements" : "Exclude groups from password requirements", diff --git a/apps/settings/l10n/en_GB.json b/apps/settings/l10n/en_GB.json index ffa0f903f65..a4d53a47659 100644 --- a/apps/settings/l10n/en_GB.json +++ b/apps/settings/l10n/en_GB.json @@ -368,6 +368,8 @@ "Users will still be able to screenshot or record the screen. This does not provide any definitive protection." : "Users will still be able to screenshot or record the screen. This does not provide any definitive protection.", "Allow users to share via link and emails" : "Allow users to share via link and emails", "Allow public uploads" : "Allow public uploads", + "Allow public shares to be added to other clouds by federation." : "Allow public shares to be added to other clouds by federation.", + "This will add share permissions to all newly created link shares." : "This will add share permissions to all newly created link shares.", "Always ask for a password" : "Always ask for a password", "Enforce password protection" : "Enforce password protection", "Exclude groups from password requirements" : "Exclude groups from password requirements", diff --git a/apps/settings/l10n/fr.js b/apps/settings/l10n/fr.js index f3f56954d5e..b796b6bbab5 100644 --- a/apps/settings/l10n/fr.js +++ b/apps/settings/l10n/fr.js @@ -343,6 +343,7 @@ OC.L10N.register( "Nextcloud settings" : "Paramètres Nextcloud", "Unified task processing" : "Traitement unifié des tâches", "AI tasks can be implemented by different apps. Here you can set which app should be used for which task." : "Les tâches d'IA peuvent être mises en œuvre par différentes applications. Ici, vous pouvez définir quelle application doit être utilisée pour quelle tâche.", + "Allow AI usage for guest users" : "Autoriser l'utilisation de l'IA pour les utilisateurs invités", "Task:" : "Tâche : ", "Enable" : "Activer", "None of your currently installed apps provide Task processing functionality" : "Aucune de vos applications actuellement installées ne fournit de fonctionnalité de traitement des tâches", @@ -369,6 +370,7 @@ OC.L10N.register( "Users will still be able to screenshot or record the screen. This does not provide any definitive protection." : "Les utilisateurs pourront toujours faire des captures d'écran ou enregistrer l'écran. Cela n'offre aucune protection définitive.", "Allow users to share via link and emails" : "Autoriser les utilisateurs à partager par lien et par e-mail", "Allow public uploads" : "Autoriser les téléversements publics", + "This will add share permissions to all newly created link shares." : "Cela ajoutera les permissions de partage à tous les nouveaux liens de partage.", "Always ask for a password" : "Toujours demander un mot de passe", "Enforce password protection" : "Imposer la protection par mot de passe", "Exclude groups from password requirements" : "Exclure des groupes des contraintes de mot de passe", diff --git a/apps/settings/l10n/fr.json b/apps/settings/l10n/fr.json index 2b64850fbd7..323744f2ded 100644 --- a/apps/settings/l10n/fr.json +++ b/apps/settings/l10n/fr.json @@ -341,6 +341,7 @@ "Nextcloud settings" : "Paramètres Nextcloud", "Unified task processing" : "Traitement unifié des tâches", "AI tasks can be implemented by different apps. Here you can set which app should be used for which task." : "Les tâches d'IA peuvent être mises en œuvre par différentes applications. Ici, vous pouvez définir quelle application doit être utilisée pour quelle tâche.", + "Allow AI usage for guest users" : "Autoriser l'utilisation de l'IA pour les utilisateurs invités", "Task:" : "Tâche : ", "Enable" : "Activer", "None of your currently installed apps provide Task processing functionality" : "Aucune de vos applications actuellement installées ne fournit de fonctionnalité de traitement des tâches", @@ -367,6 +368,7 @@ "Users will still be able to screenshot or record the screen. This does not provide any definitive protection." : "Les utilisateurs pourront toujours faire des captures d'écran ou enregistrer l'écran. Cela n'offre aucune protection définitive.", "Allow users to share via link and emails" : "Autoriser les utilisateurs à partager par lien et par e-mail", "Allow public uploads" : "Autoriser les téléversements publics", + "This will add share permissions to all newly created link shares." : "Cela ajoutera les permissions de partage à tous les nouveaux liens de partage.", "Always ask for a password" : "Toujours demander un mot de passe", "Enforce password protection" : "Imposer la protection par mot de passe", "Exclude groups from password requirements" : "Exclure des groupes des contraintes de mot de passe", diff --git a/apps/settings/l10n/ga.js b/apps/settings/l10n/ga.js index 5f8edd63eca..19dd4c69544 100644 --- a/apps/settings/l10n/ga.js +++ b/apps/settings/l10n/ga.js @@ -370,6 +370,8 @@ OC.L10N.register( "Users will still be able to screenshot or record the screen. This does not provide any definitive protection." : "Beidh úsáideoirí fós in ann scáileán a thógáil nó an scáileán a thaifeadadh. Ní sholáthraíonn sé seo aon chosaint chinntitheach.", "Allow users to share via link and emails" : "Lig d'úsáideoirí a roinnt trí nasc agus ríomhphoist", "Allow public uploads" : "Ceadaigh uaslódálacha poiblí", + "Allow public shares to be added to other clouds by federation." : "Ceadaigh scaireanna poiblí a chur le scamaill eile trí chónaidhm.", + "This will add share permissions to all newly created link shares." : "Cuirfidh sé seo ceadanna comhroinnte le gach comhroinnt nasc nua-chruthaithe.", "Always ask for a password" : "Iarr pasfhocal i gcónaí", "Enforce password protection" : "Cuir cosaint phasfhocal i bhfeidhm", "Exclude groups from password requirements" : "Fág grúpaí ó riachtanais phasfhocal", diff --git a/apps/settings/l10n/ga.json b/apps/settings/l10n/ga.json index b565f117530..49dacb4ad00 100644 --- a/apps/settings/l10n/ga.json +++ b/apps/settings/l10n/ga.json @@ -368,6 +368,8 @@ "Users will still be able to screenshot or record the screen. This does not provide any definitive protection." : "Beidh úsáideoirí fós in ann scáileán a thógáil nó an scáileán a thaifeadadh. Ní sholáthraíonn sé seo aon chosaint chinntitheach.", "Allow users to share via link and emails" : "Lig d'úsáideoirí a roinnt trí nasc agus ríomhphoist", "Allow public uploads" : "Ceadaigh uaslódálacha poiblí", + "Allow public shares to be added to other clouds by federation." : "Ceadaigh scaireanna poiblí a chur le scamaill eile trí chónaidhm.", + "This will add share permissions to all newly created link shares." : "Cuirfidh sé seo ceadanna comhroinnte le gach comhroinnt nasc nua-chruthaithe.", "Always ask for a password" : "Iarr pasfhocal i gcónaí", "Enforce password protection" : "Cuir cosaint phasfhocal i bhfeidhm", "Exclude groups from password requirements" : "Fág grúpaí ó riachtanais phasfhocal", diff --git a/apps/settings/l10n/lv.js b/apps/settings/l10n/lv.js index 68226b2dd9f..967ff5dd9e2 100644 --- a/apps/settings/l10n/lv.js +++ b/apps/settings/l10n/lv.js @@ -16,6 +16,9 @@ OC.L10N.register( "Unable to retrieve the group list" : "Nevarēja saņemt grupu sarakstu", "{actor} changed your password" : "{actor] nomainīja Tavu paroli", "You changed your password" : "Tu nomainīji savu paroli", + "{actor} changed your email address" : "{actor} nomainīja Tavu e-pasta adresi", + "You changed your email address" : "Tu nomainīji savu e-pasta adresi", + "Your email address was changed by an administrator" : "Pārvaldītājs nomainīja Tavu e-pasta adresi", "You renamed app password \"{token}\" to \"{newToken}\"" : "Tu pārdēvēji lietotnes paroli \"{token}\" par \"{newToken}\"", "Security" : "Drošība", "You successfully logged in using two-factor authentication (%1$s)" : "Sekmīga pieteikšanās ar divpakāpju autentificēšanos (%1$s)", @@ -37,6 +40,10 @@ OC.L10N.register( "Unable to change full name" : "Nevar nomainīt pilno vārdu", "Unable to change email address" : "Nevar mainīt e-pasta adresi", "In order to verify your Website, store the following content in your web-root at '.well-known/CloudIdVerificationCode.txt' (please make sure that the complete text is in one line):" : "Lai apliecinātu savu tīmekļvietni, zemāk esošais saturs ir jāglabā tīmekļvietnes pamatmapē kā `.well-known/CloudIdVerificationCode.txt` (lūgums pārliecināties, ka viss teksts ir vienā rindiņā):", + "%1$s changed your password on %2$s." : "%1$s nomainīja Tavu %2$sparoli.", + "Your password on %s was changed." : "Tava %s parole tika nomainīta.", + "Your email address on %s was changed." : "Tava %s e-pasta adrese tika nomainīta.", + "Your email address on %s was changed by an administrator." : "Pārvaldītājs nomainīja Tavu %s e-pasta adresi", "Your %s account was created" : "Konts %s ir izveidots", "Apps" : "Lietotnes", "Personal" : "Personīgi", @@ -194,6 +201,7 @@ OC.L10N.register( "Admins" : "Pārvaldītāji", "Sending…" : "Sūta …", "Email sent" : "E-pasta ziņojums nosūtīts", + "For performance reasons, when you enable encryption on a Nextcloud server only new and changed files are encrypted." : "Veiktspējas dēļ, kad Nextcloud serverī iespējo šifrēšanu, jaunās un izmainītās datnes tiek šīfrētas.", "Location" : "Atrašanās vieta", "Profile picture" : "Profila attēls", "About" : "Par", diff --git a/apps/settings/l10n/lv.json b/apps/settings/l10n/lv.json index 1231c5bc914..6f58b2bb0d9 100644 --- a/apps/settings/l10n/lv.json +++ b/apps/settings/l10n/lv.json @@ -14,6 +14,9 @@ "Unable to retrieve the group list" : "Nevarēja saņemt grupu sarakstu", "{actor} changed your password" : "{actor] nomainīja Tavu paroli", "You changed your password" : "Tu nomainīji savu paroli", + "{actor} changed your email address" : "{actor} nomainīja Tavu e-pasta adresi", + "You changed your email address" : "Tu nomainīji savu e-pasta adresi", + "Your email address was changed by an administrator" : "Pārvaldītājs nomainīja Tavu e-pasta adresi", "You renamed app password \"{token}\" to \"{newToken}\"" : "Tu pārdēvēji lietotnes paroli \"{token}\" par \"{newToken}\"", "Security" : "Drošība", "You successfully logged in using two-factor authentication (%1$s)" : "Sekmīga pieteikšanās ar divpakāpju autentificēšanos (%1$s)", @@ -35,6 +38,10 @@ "Unable to change full name" : "Nevar nomainīt pilno vārdu", "Unable to change email address" : "Nevar mainīt e-pasta adresi", "In order to verify your Website, store the following content in your web-root at '.well-known/CloudIdVerificationCode.txt' (please make sure that the complete text is in one line):" : "Lai apliecinātu savu tīmekļvietni, zemāk esošais saturs ir jāglabā tīmekļvietnes pamatmapē kā `.well-known/CloudIdVerificationCode.txt` (lūgums pārliecināties, ka viss teksts ir vienā rindiņā):", + "%1$s changed your password on %2$s." : "%1$s nomainīja Tavu %2$sparoli.", + "Your password on %s was changed." : "Tava %s parole tika nomainīta.", + "Your email address on %s was changed." : "Tava %s e-pasta adrese tika nomainīta.", + "Your email address on %s was changed by an administrator." : "Pārvaldītājs nomainīja Tavu %s e-pasta adresi", "Your %s account was created" : "Konts %s ir izveidots", "Apps" : "Lietotnes", "Personal" : "Personīgi", @@ -192,6 +199,7 @@ "Admins" : "Pārvaldītāji", "Sending…" : "Sūta …", "Email sent" : "E-pasta ziņojums nosūtīts", + "For performance reasons, when you enable encryption on a Nextcloud server only new and changed files are encrypted." : "Veiktspējas dēļ, kad Nextcloud serverī iespējo šifrēšanu, jaunās un izmainītās datnes tiek šīfrētas.", "Location" : "Atrašanās vieta", "Profile picture" : "Profila attēls", "About" : "Par", diff --git a/apps/settings/l10n/mk.js b/apps/settings/l10n/mk.js index 4aa38bf9347..74d77d42867 100644 --- a/apps/settings/l10n/mk.js +++ b/apps/settings/l10n/mk.js @@ -181,6 +181,7 @@ OC.L10N.register( "_%n app has an update available_::_%n apps have an update available_" : ["За %n апликација има достапно ажурирање","За %n апликации има достапно ажурирање"], "_Update_::_Update all_" : ["Ажурирај","Ажурирај ги сите"], "Group name" : "Име на група", + "Nothing to show" : "Нема што да се прикаже", "Type" : "Вид", "Learn more" : "Научи повеќе", "Confirm" : "Потврди", @@ -274,6 +275,7 @@ OC.L10N.register( "Picture provided by original account" : "Слика обезбедена од оригинална сметка", "Set as profile picture" : "Постави фотографија на профилот", "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Имајте предвид дека може да потрае до 24 часа за да се ажурира аватарот насекаде.", + "Your biography. Markdown is supported." : "Вашата биографија.", "Enter your date of birth" : "Внесете го вашиот датум на раѓање", "You are using {s}{usage}{/s}" : "Користите {s}{usage}{/s}", "You are using {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})" : "Користите {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})", @@ -403,6 +405,8 @@ OC.L10N.register( "Locale" : "Локација", "First day of week" : "Прв ден од неделата", "Not available as this property is required for core functionality including file sharing and calendar invitations" : "Не е достапно бидејќи ова својство е потребно за основна функционалност, вклучувајќи споделување датотеки и покани од календар", + "Not available as federation has been disabled for your account, contact your system administration if you have any questions" : "Не е достапно бидејќи федерацијата е оневозможена за вашата сметка, контактирајте го администраторот доколку имате какви било прашања.", + "Not available as publishing account specific data to the lookup server is not allowed, contact your system administration if you have any questions" : "Не е достапно бидејќи не е дозволено објавување специфични податоци за корисникот на серверот за пребарување, контактирајте со вашиот системски администратор ако имате какви било прашања", "Your apps" : "Ваши апликации", "Active apps" : "Активни апликации", "Disabled apps" : "Оневозможени апликации", diff --git a/apps/settings/l10n/mk.json b/apps/settings/l10n/mk.json index 51a26ea439d..96c0e392842 100644 --- a/apps/settings/l10n/mk.json +++ b/apps/settings/l10n/mk.json @@ -179,6 +179,7 @@ "_%n app has an update available_::_%n apps have an update available_" : ["За %n апликација има достапно ажурирање","За %n апликации има достапно ажурирање"], "_Update_::_Update all_" : ["Ажурирај","Ажурирај ги сите"], "Group name" : "Име на група", + "Nothing to show" : "Нема што да се прикаже", "Type" : "Вид", "Learn more" : "Научи повеќе", "Confirm" : "Потврди", @@ -272,6 +273,7 @@ "Picture provided by original account" : "Слика обезбедена од оригинална сметка", "Set as profile picture" : "Постави фотографија на профилот", "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Имајте предвид дека може да потрае до 24 часа за да се ажурира аватарот насекаде.", + "Your biography. Markdown is supported." : "Вашата биографија.", "Enter your date of birth" : "Внесете го вашиот датум на раѓање", "You are using {s}{usage}{/s}" : "Користите {s}{usage}{/s}", "You are using {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})" : "Користите {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})", @@ -401,6 +403,8 @@ "Locale" : "Локација", "First day of week" : "Прв ден од неделата", "Not available as this property is required for core functionality including file sharing and calendar invitations" : "Не е достапно бидејќи ова својство е потребно за основна функционалност, вклучувајќи споделување датотеки и покани од календар", + "Not available as federation has been disabled for your account, contact your system administration if you have any questions" : "Не е достапно бидејќи федерацијата е оневозможена за вашата сметка, контактирајте го администраторот доколку имате какви било прашања.", + "Not available as publishing account specific data to the lookup server is not allowed, contact your system administration if you have any questions" : "Не е достапно бидејќи не е дозволено објавување специфични податоци за корисникот на серверот за пребарување, контактирајте со вашиот системски администратор ако имате какви било прашања", "Your apps" : "Ваши апликации", "Active apps" : "Активни апликации", "Disabled apps" : "Оневозможени апликации", diff --git a/apps/settings/l10n/tr.js b/apps/settings/l10n/tr.js index 7a88f10365f..5d18d8f7ffa 100644 --- a/apps/settings/l10n/tr.js +++ b/apps/settings/l10n/tr.js @@ -343,6 +343,7 @@ OC.L10N.register( "Nextcloud settings" : "Nextcloud ayarları", "Unified task processing" : "Birleştirilmiş görev işleme", "AI tasks can be implemented by different apps. Here you can set which app should be used for which task." : "Yapay zeka görevleri farklı uygulamalardan sağlanabilir. Buradan, bu görev için hangi uygulamanın kullanılacağını ayarlayabilirsiniz.", + "Allow AI usage for guest users" : "Konuk kullanıcılar YZ kullanabilsin", "Task:" : "Görev:", "Enable" : "Kullanıma al", "None of your currently installed apps provide Task processing functionality" : "Kurulu uygulamaların hiçbirinde görev işleme özelliği yok", @@ -369,6 +370,8 @@ OC.L10N.register( "Users will still be able to screenshot or record the screen. This does not provide any definitive protection." : "Kullanıcılar ekran görüntüsü alabilirler veya ekranı kaydedebilirler. Bu seçenek tam bir kesin koruma sağlamaz.", "Allow users to share via link and emails" : "Kullanıcılar bağlantı ve e-posta ile paylaşabilsin", "Allow public uploads" : "Herkes yükleyebilsin", + "Allow public shares to be added to other clouds by federation." : "Herkese açık paylaşımların birlik ile diğer bulutlara eklenebilmesini sağlar.", + "This will add share permissions to all newly created link shares." : "Bu seçenek, yeni oluşturulan tüm bağlantı paylaşımlarına paylaşım izinleri ekler.", "Always ask for a password" : "Her zaman parola sorulsun", "Enforce password protection" : "Parola koruması zorunlu kılınsın", "Exclude groups from password requirements" : "Parola gereksinimlerine katılmayacak gruplar", diff --git a/apps/settings/l10n/tr.json b/apps/settings/l10n/tr.json index 7f03aa37823..a2854f91139 100644 --- a/apps/settings/l10n/tr.json +++ b/apps/settings/l10n/tr.json @@ -341,6 +341,7 @@ "Nextcloud settings" : "Nextcloud ayarları", "Unified task processing" : "Birleştirilmiş görev işleme", "AI tasks can be implemented by different apps. Here you can set which app should be used for which task." : "Yapay zeka görevleri farklı uygulamalardan sağlanabilir. Buradan, bu görev için hangi uygulamanın kullanılacağını ayarlayabilirsiniz.", + "Allow AI usage for guest users" : "Konuk kullanıcılar YZ kullanabilsin", "Task:" : "Görev:", "Enable" : "Kullanıma al", "None of your currently installed apps provide Task processing functionality" : "Kurulu uygulamaların hiçbirinde görev işleme özelliği yok", @@ -367,6 +368,8 @@ "Users will still be able to screenshot or record the screen. This does not provide any definitive protection." : "Kullanıcılar ekran görüntüsü alabilirler veya ekranı kaydedebilirler. Bu seçenek tam bir kesin koruma sağlamaz.", "Allow users to share via link and emails" : "Kullanıcılar bağlantı ve e-posta ile paylaşabilsin", "Allow public uploads" : "Herkes yükleyebilsin", + "Allow public shares to be added to other clouds by federation." : "Herkese açık paylaşımların birlik ile diğer bulutlara eklenebilmesini sağlar.", + "This will add share permissions to all newly created link shares." : "Bu seçenek, yeni oluşturulan tüm bağlantı paylaşımlarına paylaşım izinleri ekler.", "Always ask for a password" : "Her zaman parola sorulsun", "Enforce password protection" : "Parola koruması zorunlu kılınsın", "Exclude groups from password requirements" : "Parola gereksinimlerine katılmayacak gruplar", diff --git a/apps/settings/src/components/AppList/AppLevelBadge.vue b/apps/settings/src/components/AppList/AppLevelBadge.vue index 900aa69b74a..8461f5eb6b9 100644 --- a/apps/settings/src/components/AppList/AppLevelBadge.vue +++ b/apps/settings/src/components/AppList/AppLevelBadge.vue @@ -15,7 +15,7 @@ <script setup lang="ts"> import NcIconSvgWrapper from '@nextcloud/vue/components/NcIconSvgWrapper' -import { mdiCheck, mdiStarShooting } from '@mdi/js' +import { mdiCheck, mdiStarShootingOutline } from '@mdi/js' import { translate as t } from '@nextcloud/l10n' import { computed } from 'vue' @@ -28,7 +28,7 @@ const props = defineProps<{ const isSupported = computed(() => props.level === 300) const isFeatured = computed(() => props.level === 200) -const badgeIcon = computed(() => isSupported.value ? mdiStarShooting : mdiCheck) +const badgeIcon = computed(() => isSupported.value ? mdiStarShootingOutline : mdiCheck) const badgeText = computed(() => isSupported.value ? t('settings', 'Supported') : t('settings', 'Featured')) const badgeTitle = computed(() => isSupported.value ? t('settings', 'This app is supported via your current Nextcloud subscription.') diff --git a/apps/settings/src/components/AppNavigationGroupList.vue b/apps/settings/src/components/AppNavigationGroupList.vue index 2be7cce2f8b..8f21d18d695 100644 --- a/apps/settings/src/components/AppNavigationGroupList.vue +++ b/apps/settings/src/components/AppNavigationGroupList.vue @@ -18,7 +18,7 @@ <template v-if="isAdminOrDelegatedAdmin" #actions> <NcActionText> <template #icon> - <NcIconSvgWrapper :path="mdiAccountGroup" /> + <NcIconSvgWrapper :path="mdiAccountGroupOutline" /> </template> {{ t('settings', 'Create group') }} </NcActionText> @@ -60,7 +60,7 @@ import type CancelablePromise from 'cancelable-promise' import type { IGroup } from '../views/user-types.d.ts' -import { mdiAccountGroup, mdiPlus } from '@mdi/js' +import { mdiAccountGroupOutline, mdiPlus } from '@mdi/js' import { showError } from '@nextcloud/dialogs' import { t } from '@nextcloud/l10n' import { useElementVisibility } from '@vueuse/core' diff --git a/apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue b/apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue index febc034514f..bb91940c763 100644 --- a/apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue +++ b/apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue @@ -8,7 +8,7 @@ :name="t('settings', 'Nothing to show')" :description="t('settings', 'Could not load section content from app store.')"> <template #icon> - <NcIconSvgWrapper :path="mdiEyeOff" :size="64" /> + <NcIconSvgWrapper :path="mdiEyeOffOutline" :size="64" /> </template> </NcEmptyContent> <NcEmptyContent v-else-if="elements.length === 0" @@ -30,7 +30,7 @@ <script setup lang="ts"> import type { IAppDiscoverElements } from '../../constants/AppDiscoverTypes.ts' -import { mdiEyeOff } from '@mdi/js' +import { mdiEyeOffOutline } from '@mdi/js' import { showError } from '@nextcloud/dialogs' import { translate as t } from '@nextcloud/l10n' import { generateUrl } from '@nextcloud/router' diff --git a/apps/settings/src/components/AppStoreSidebar/AppDeployOptionsModal.vue b/apps/settings/src/components/AppStoreSidebar/AppDeployOptionsModal.vue index 04c49827b02..67d4afa6566 100644 --- a/apps/settings/src/components/AppStoreSidebar/AppDeployOptionsModal.vue +++ b/apps/settings/src/components/AppStoreSidebar/AppDeployOptionsModal.vue @@ -65,7 +65,7 @@ style="margin-top: 6px;" @click="removeMount(mount)"> <template #icon> - <NcIconSvgWrapper :path="mdiDelete" /> + <NcIconSvgWrapper :path="mdiDeleteOutline" /> </template> </NcButton> </div> @@ -160,7 +160,7 @@ import NcButton from '@nextcloud/vue/components/NcButton' import NcIconSvgWrapper from '@nextcloud/vue/components/NcIconSvgWrapper' import NcCheckboxRadioSwitch from '@nextcloud/vue/components/NcCheckboxRadioSwitch' -import { mdiPlus, mdiCheck, mdiClose, mdiDelete } from '@mdi/js' +import { mdiPlus, mdiCheck, mdiClose, mdiDeleteOutline } from '@mdi/js' import { useAppApiStore } from '../../store/app-api-store.ts' import { useAppsStore } from '../../store/apps-store.ts' @@ -216,7 +216,7 @@ export default { mdiPlus, mdiCheck, mdiClose, - mdiDelete, + mdiDeleteOutline, } }, data() { diff --git a/apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue b/apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue index 3aa42f1d15a..8a387b55ecf 100644 --- a/apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue +++ b/apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue @@ -8,7 +8,7 @@ :name="t('settings', 'Details')" :order="1"> <template #icon> - <NcIconSvgWrapper :path="mdiTextBox" /> + <NcIconSvgWrapper :path="mdiTextBoxOutline" /> </template> <div class="app-details"> <div class="app-details__actions"> @@ -82,7 +82,7 @@ type="secondary" @click="() => showDeployOptionsModal = true"> <template #icon> - <NcIconSvgWrapper :path="mdiToyBrickPlus" /> + <NcIconSvgWrapper :path="mdiToyBrickPlusOutline" /> </template> {{ t('settings', 'Deploy options') }} </NcButton> @@ -162,7 +162,7 @@ :aria-label="t('settings', 'Report a bug')" :title="t('settings', 'Report a bug')"> <template #icon> - <NcIconSvgWrapper :path="mdiBug" /> + <NcIconSvgWrapper :path="mdiBugOutline" /> </template> </NcButton> <NcButton :disabled="!app.bugs" @@ -170,7 +170,7 @@ :aria-label="t('settings', 'Request feature')" :title="t('settings', 'Request feature')"> <template #icon> - <NcIconSvgWrapper :path="mdiFeatureSearch" /> + <NcIconSvgWrapper :path="mdiFeatureSearchOutline" /> </template> </NcButton> <NcButton v-if="app.appstoreData?.discussion" @@ -178,7 +178,7 @@ :aria-label="t('settings', 'Ask questions or discuss')" :title="t('settings', 'Ask questions or discuss')"> <template #icon> - <NcIconSvgWrapper :path="mdiTooltipQuestion" /> + <NcIconSvgWrapper :path="mdiTooltipQuestionOutline" /> </template> </NcButton> <NcButton v-if="!app.internal" @@ -209,7 +209,7 @@ import NcCheckboxRadioSwitch from '@nextcloud/vue/components/NcCheckboxRadioSwit import AppDeployOptionsModal from './AppDeployOptionsModal.vue' import AppManagement from '../../mixins/AppManagement.js' -import { mdiBug, mdiFeatureSearch, mdiStar, mdiTextBox, mdiTooltipQuestion, mdiToyBrickPlus } from '@mdi/js' +import { mdiBugOutline, mdiFeatureSearchOutline, mdiStar, mdiTextBoxOutline, mdiTooltipQuestionOutline, mdiToyBrickPlusOutline } from '@mdi/js' import { useAppsStore } from '../../store/apps-store' import { useAppApiStore } from '../../store/app-api-store' @@ -242,12 +242,12 @@ export default { store, appApiStore, - mdiBug, - mdiFeatureSearch, + mdiBugOutline, + mdiFeatureSearchOutline, mdiStar, - mdiTextBox, - mdiTooltipQuestion, - mdiToyBrickPlus, + mdiTextBoxOutline, + mdiTooltipQuestionOutline, + mdiToyBrickPlusOutline, } }, diff --git a/apps/settings/src/components/AuthToken.vue b/apps/settings/src/components/AuthToken.vue index 6f3e931d1b9..15286adb135 100644 --- a/apps/settings/src/components/AuthToken.vue +++ b/apps/settings/src/components/AuthToken.vue @@ -80,7 +80,7 @@ import type { PropType } from 'vue' import type { IToken } from '../store/authtoken' -import { mdiCheck, mdiCellphone, mdiTablet, mdiMonitor, mdiWeb, mdiKey, mdiMicrosoftEdge, mdiFirefox, mdiGoogleChrome, mdiAppleSafari, mdiAndroid, mdiAppleIos } from '@mdi/js' +import { mdiCheck, mdiCellphone, mdiTablet, mdiMonitor, mdiWeb, mdiKeyOutline, mdiMicrosoftEdge, mdiFirefox, mdiGoogleChrome, mdiAppleSafari, mdiAndroid, mdiAppleIos } from '@mdi/js' import { translate as t } from '@nextcloud/l10n' import { defineComponent } from 'vue' import { TokenType, useAuthTokenStore } from '../store/authtoken.ts' @@ -215,7 +215,7 @@ export default defineComponent({ tokenIcon() { // For custom created app tokens / app passwords if (this.token.type === TokenType.PERMANENT_TOKEN) { - return mdiKey + return mdiKeyOutline } switch (this.client?.id) { diff --git a/apps/settings/src/components/GroupListItem.vue b/apps/settings/src/components/GroupListItem.vue index 76088fa74db..69bb8a3f575 100644 --- a/apps/settings/src/components/GroupListItem.vue +++ b/apps/settings/src/components/GroupListItem.vue @@ -80,9 +80,9 @@ import NcCounterBubble from '@nextcloud/vue/components/NcCounterBubble' import NcModal from '@nextcloud/vue/components/NcModal' import NcNoteCard from '@nextcloud/vue/components/NcNoteCard' -import AccountGroup from 'vue-material-design-icons/AccountGroup.vue' -import Delete from 'vue-material-design-icons/Delete.vue' -import Pencil from 'vue-material-design-icons/Pencil.vue' +import AccountGroup from 'vue-material-design-icons/AccountGroupOutline.vue' +import Delete from 'vue-material-design-icons/DeleteOutline.vue' +import Pencil from 'vue-material-design-icons/PencilOutline.vue' import { showError } from '@nextcloud/dialogs' diff --git a/apps/settings/src/components/PersonalInfo/AvatarSection.vue b/apps/settings/src/components/PersonalInfo/AvatarSection.vue index 400ccb510f3..a99f228668c 100644 --- a/apps/settings/src/components/PersonalInfo/AvatarSection.vue +++ b/apps/settings/src/components/PersonalInfo/AvatarSection.vue @@ -88,7 +88,7 @@ import 'cropperjs/dist/cropper.css' import Upload from 'vue-material-design-icons/Upload.vue' import Folder from 'vue-material-design-icons/Folder.vue' -import Delete from 'vue-material-design-icons/Delete.vue' +import Delete from 'vue-material-design-icons/DeleteOutline.vue' import HeaderBar from './shared/HeaderBar.vue' import { NAME_READABLE_ENUM } from '../../constants/AccountPropertyConstants.js' diff --git a/apps/settings/src/components/PersonalInfo/DetailsSection.vue b/apps/settings/src/components/PersonalInfo/DetailsSection.vue index b0eb137d9e5..d4bb0ce16ec 100644 --- a/apps/settings/src/components/PersonalInfo/DetailsSection.vue +++ b/apps/settings/src/components/PersonalInfo/DetailsSection.vue @@ -36,7 +36,7 @@ import { loadState } from '@nextcloud/initial-state' import { t } from '@nextcloud/l10n' import NcProgressBar from '@nextcloud/vue/components/NcProgressBar' -import Account from 'vue-material-design-icons/Account.vue' +import Account from 'vue-material-design-icons/AccountOutline.vue' import CircleSlice from 'vue-material-design-icons/CircleSlice3.vue' import HeaderBar from './shared/HeaderBar.vue' diff --git a/apps/settings/src/components/PersonalInfo/EmailSection/Email.vue b/apps/settings/src/components/PersonalInfo/EmailSection/Email.vue index de6114b57bc..6a6baef8817 100644 --- a/apps/settings/src/components/PersonalInfo/EmailSection/Email.vue +++ b/apps/settings/src/components/PersonalInfo/EmailSection/Email.vue @@ -48,7 +48,7 @@ :disabled="deleteDisabled" @click="deleteEmail"> <template #icon> - <NcIconSvgWrapper :path="mdiTrashCan" /> + <NcIconSvgWrapper :path="mdiTrashCanOutline" /> </template> {{ deleteEmailLabel }} </NcActionButton> @@ -71,7 +71,7 @@ import NcTextField from '@nextcloud/vue/components/NcTextField' import debounce from 'debounce' -import { mdiArrowLeft, mdiLock, mdiStar, mdiStarOutline, mdiTrashCan } from '@mdi/js' +import { mdiArrowLeft, mdiLockOutline, mdiStar, mdiStarOutline, mdiTrashCanOutline } from '@mdi/js' import FederationControl from '../shared/FederationControl.vue' import { handleError } from '../../../utils/handlers.ts' @@ -133,10 +133,10 @@ export default { setup() { return { mdiArrowLeft, - mdiLock, + mdiLockOutline, mdiStar, mdiStarOutline, - mdiTrashCan, + mdiTrashCanOutline, saveAdditionalEmailScope, } }, diff --git a/apps/settings/src/components/UserList.vue b/apps/settings/src/components/UserList.vue index 84c204805cc..459548fad26 100644 --- a/apps/settings/src/components/UserList.vue +++ b/apps/settings/src/components/UserList.vue @@ -19,7 +19,7 @@ <NcLoadingIcon v-if="isInitialLoad && loading.users" :name="t('settings', 'Loading accounts …')" :size="64" /> - <NcIconSvgWrapper v-else :path="mdiAccountGroup" :size="64" /> + <NcIconSvgWrapper v-else :path="mdiAccountGroupOutline" :size="64" /> </template> </NcEmptyContent> @@ -58,7 +58,7 @@ </template> <script> -import { mdiAccountGroup } from '@mdi/js' +import { mdiAccountGroupOutline } from '@mdi/js' import { showError } from '@nextcloud/dialogs' import { subscribe, unsubscribe } from '@nextcloud/event-bus' import { Fragment } from 'vue-frag' @@ -120,7 +120,7 @@ export default { setup() { // non reactive properties return { - mdiAccountGroup, + mdiAccountGroupOutline, rowHeight: 55, UserRow, diff --git a/apps/settings/src/components/Users/UserRowActions.vue b/apps/settings/src/components/Users/UserRowActions.vue index 8e30d584dfd..efd70d879a7 100644 --- a/apps/settings/src/components/Users/UserRowActions.vue +++ b/apps/settings/src/components/Users/UserRowActions.vue @@ -39,7 +39,7 @@ import NcActionButton from '@nextcloud/vue/components/NcActionButton' import NcActions from '@nextcloud/vue/components/NcActions' import NcIconSvgWrapper from '@nextcloud/vue/components/NcIconSvgWrapper' import SvgCheck from '@mdi/svg/svg/check.svg?raw' -import SvgPencil from '@mdi/svg/svg/pencil.svg?raw' +import SvgPencil from '@mdi/svg/svg/pencil-outline.svg?raw' interface UserAction { action: (event: MouseEvent, user: Record<string, unknown>) => void, diff --git a/apps/settings/src/constants/AccountPropertyConstants.ts b/apps/settings/src/constants/AccountPropertyConstants.ts index 5ea15e05c6c..455c210976f 100644 --- a/apps/settings/src/constants/AccountPropertyConstants.ts +++ b/apps/settings/src/constants/AccountPropertyConstants.ts @@ -7,7 +7,7 @@ * SYNC to be kept in sync with `lib/public/Accounts/IAccountManager.php` */ -import { mdiAccountGroup, mdiCellphone, mdiLock, mdiWeb } from '@mdi/js' +import { mdiAccountGroupOutline, mdiCellphone, mdiLockOutline, mdiWeb } from '@mdi/js' import { translate as t } from '@nextcloud/l10n' /** Enum of account properties */ @@ -171,14 +171,14 @@ export const SCOPE_PROPERTY_ENUM = Object.freeze({ displayName: t('settings', 'Local'), tooltip: t('settings', 'Only visible to people on this instance and guests'), // tooltipDisabled is not required here as this scope is supported by all account properties - icon: mdiLock, + icon: mdiLockOutline, }, [SCOPE_ENUM.FEDERATED]: { name: SCOPE_ENUM.FEDERATED, displayName: t('settings', 'Federated'), tooltip: t('settings', 'Only synchronize to trusted servers'), tooltipDisabled: t('settings', 'Not available as federation has been disabled for your account, contact your system administration if you have any questions'), - icon: mdiAccountGroup, + icon: mdiAccountGroupOutline, }, [SCOPE_ENUM.PUBLISHED]: { name: SCOPE_ENUM.PUBLISHED, diff --git a/apps/settings/src/constants/AppstoreCategoryIcons.ts b/apps/settings/src/constants/AppstoreCategoryIcons.ts index 7e7e00df9b0..24bb0faea6d 100644 --- a/apps/settings/src/constants/AppstoreCategoryIcons.ts +++ b/apps/settings/src/constants/AppstoreCategoryIcons.ts @@ -3,29 +3,29 @@ * SPDX-License-Identifier: AGPL-3.0-or-later */ import { - mdiAccount, - mdiAccountMultiple, - mdiArchive, + mdiAccountOutline, + mdiAccountMultipleOutline, + mdiArchiveOutline, mdiCheck, - mdiClipboardFlow, + mdiClipboardFlowOutline, mdiClose, - mdiCog, - mdiControllerClassic, + mdiCogOutline, + mdiControllerClassicOutline, mdiDownload, mdiFileDocumentEdit, mdiFolder, - mdiKey, + mdiKeyOutline, mdiMagnify, mdiMonitorEye, mdiMultimedia, - mdiOfficeBuilding, + mdiOfficeBuildingOutline, mdiOpenInApp, mdiSecurity, mdiStar, mdiStarCircleOutline, - mdiStarShooting, + mdiStarShootingOutline, mdiTools, - mdiViewColumn, + mdiViewColumnOutline, } from '@mdi/js' /** @@ -34,28 +34,28 @@ import { export default Object.freeze({ // system special categories discover: mdiStarCircleOutline, - installed: mdiAccount, + installed: mdiAccountOutline, enabled: mdiCheck, disabled: mdiClose, - bundles: mdiArchive, - supported: mdiStarShooting, + bundles: mdiArchiveOutline, + supported: mdiStarShootingOutline, featured: mdiStar, updates: mdiDownload, // generic categories - auth: mdiKey, - customization: mdiCog, - dashboard: mdiViewColumn, + auth: mdiKeyOutline, + customization: mdiCogOutline, + dashboard: mdiViewColumnOutline, files: mdiFolder, - games: mdiControllerClassic, + games: mdiControllerClassicOutline, integration: mdiOpenInApp, monitoring: mdiMonitorEye, multimedia: mdiMultimedia, office: mdiFileDocumentEdit, - organization: mdiOfficeBuilding, + organization: mdiOfficeBuildingOutline, search: mdiMagnify, security: mdiSecurity, - social: mdiAccountMultiple, + social: mdiAccountMultipleOutline, tools: mdiTools, - workflow: mdiClipboardFlow, + workflow: mdiClipboardFlowOutline, }) diff --git a/apps/settings/src/views/UserManagementNavigation.vue b/apps/settings/src/views/UserManagementNavigation.vue index df3670bcfc7..95a12ac7c51 100644 --- a/apps/settings/src/views/UserManagementNavigation.vue +++ b/apps/settings/src/views/UserManagementNavigation.vue @@ -22,7 +22,7 @@ :name="t('settings', 'All accounts')" :to="{ name: 'users' }"> <template #icon> - <NcIconSvgWrapper :path="mdiAccount" /> + <NcIconSvgWrapper :path="mdiAccountOutline" /> </template> <template #counter> <NcCounterBubble v-if="userCount" :type="!selectedGroupDecoded ? 'highlighted' : undefined"> @@ -37,7 +37,7 @@ :name="t('settings', 'Admins')" :to="{ name: 'group', params: { selectedGroup: 'admin' } }"> <template #icon> - <NcIconSvgWrapper :path="mdiShieldAccount" /> + <NcIconSvgWrapper :path="mdiShieldAccountOutline" /> </template> <template #counter> <NcCounterBubble v-if="adminGroup && adminGroup.count > 0" @@ -70,7 +70,7 @@ :name="t('settings', 'Disabled accounts')" :to="{ name: 'group', params: { selectedGroup: 'disabled' } }"> <template #icon> - <NcIconSvgWrapper :path="mdiAccountOff" /> + <NcIconSvgWrapper :path="mdiAccountOffOutline" /> </template> <template v-if="disabledGroup.usercount > 0" #counter> <NcCounterBubble :type="selectedGroupDecoded === 'disabled' ? 'highlighted' : undefined"> @@ -87,7 +87,7 @@ type="tertiary" @click="isDialogOpen = true"> <template #icon> - <NcIconSvgWrapper :path="mdiCog" /> + <NcIconSvgWrapper :path="mdiCogOutline" /> </template> {{ t('settings', 'Account management settings') }} </NcButton> @@ -97,7 +97,7 @@ </template> <script setup lang="ts"> -import { mdiAccount, mdiAccountOff, mdiCog, mdiPlus, mdiShieldAccount, mdiHistory } from '@mdi/js' +import { mdiAccountOutline, mdiAccountOffOutline, mdiCogOutline, mdiPlus, mdiShieldAccountOutline, mdiHistory } from '@mdi/js' import { translate as t } from '@nextcloud/l10n' import { computed, ref } from 'vue' diff --git a/apps/systemtags/src/components/SystemTagPicker.vue b/apps/systemtags/src/components/SystemTagPicker.vue index 9a3b8e19b68..377e76ed75f 100644 --- a/apps/systemtags/src/components/SystemTagPicker.vue +++ b/apps/systemtags/src/components/SystemTagPicker.vue @@ -148,9 +148,9 @@ import NcTextField from '@nextcloud/vue/components/NcTextField' import CheckIcon from 'vue-material-design-icons/CheckCircle.vue' import CircleIcon from 'vue-material-design-icons/Circle.vue' import CircleOutlineIcon from 'vue-material-design-icons/CircleOutline.vue' -import PencilIcon from 'vue-material-design-icons/Pencil.vue' +import PencilIcon from 'vue-material-design-icons/PencilOutline.vue' import PlusIcon from 'vue-material-design-icons/Plus.vue' -import TagIcon from 'vue-material-design-icons/Tag.vue' +import TagIcon from 'vue-material-design-icons/TagOutline.vue' import { createTag, fetchTag, fetchTags, getTagObjects, setTagObjects, updateTag } from '../services/api.ts' import { elementColor, invertTextColor, isDarkModeEnabled } from '../utils/colorUtils.ts' diff --git a/apps/systemtags/src/files_actions/bulkSystemTagsAction.ts b/apps/systemtags/src/files_actions/bulkSystemTagsAction.ts index 0f33650d588..7dfe90a1527 100644 --- a/apps/systemtags/src/files_actions/bulkSystemTagsAction.ts +++ b/apps/systemtags/src/files_actions/bulkSystemTagsAction.ts @@ -10,7 +10,7 @@ import { isPublicShare } from '@nextcloud/sharing/public' import { spawnDialog } from '@nextcloud/dialogs' import { t } from '@nextcloud/l10n' -import TagMultipleSvg from '@mdi/svg/svg/tag-multiple.svg?raw' +import TagMultipleSvg from '@mdi/svg/svg/tag-multiple-outline.svg?raw' /** * Spawn a dialog to add or remove tags from multiple nodes. diff --git a/apps/systemtags/src/files_views/systemtagsView.ts b/apps/systemtags/src/files_views/systemtagsView.ts index 46e5af6c3c1..624d2036802 100644 --- a/apps/systemtags/src/files_views/systemtagsView.ts +++ b/apps/systemtags/src/files_views/systemtagsView.ts @@ -7,7 +7,7 @@ import { translate as t } from '@nextcloud/l10n' import { View, getNavigation } from '@nextcloud/files' import { getContents } from '../services/systemtags.js' -import svgTagMultiple from '@mdi/svg/svg/tag-multiple.svg?raw' +import svgTagMultiple from '@mdi/svg/svg/tag-multiple-outline.svg?raw' export const systemTagsViewId = 'tags' diff --git a/apps/theming/src/components/BackgroundSettings.vue b/apps/theming/src/components/BackgroundSettings.vue index ce4489138ff..58b76dd9602 100644 --- a/apps/theming/src/components/BackgroundSettings.vue +++ b/apps/theming/src/components/BackgroundSettings.vue @@ -87,7 +87,7 @@ import NcColorPicker from '@nextcloud/vue/components/NcColorPicker' import Check from 'vue-material-design-icons/Check.vue' import ImageEdit from 'vue-material-design-icons/ImageEdit.vue' -import ColorPalette from 'vue-material-design-icons/Palette.vue' +import ColorPalette from 'vue-material-design-icons/PaletteOutline.vue' const shippedBackgroundList = loadState('theming', 'shippedBackgrounds') const backgroundImage = loadState('theming', 'userBackgroundImage') diff --git a/apps/theming/src/components/UserPrimaryColor.vue b/apps/theming/src/components/UserPrimaryColor.vue index 462ce43e997..f10b8a01825 100644 --- a/apps/theming/src/components/UserPrimaryColor.vue +++ b/apps/theming/src/components/UserPrimaryColor.vue @@ -38,7 +38,7 @@ import debounce from 'debounce' import NcButton from '@nextcloud/vue/components/NcButton' import NcColorPicker from '@nextcloud/vue/components/NcColorPicker' import NcLoadingIcon from '@nextcloud/vue/components/NcLoadingIcon' -import IconColorPalette from 'vue-material-design-icons/Palette.vue' +import IconColorPalette from 'vue-material-design-icons/PaletteOutline.vue' import IconUndo from 'vue-material-design-icons/UndoVariant.vue' const { primaryColor, defaultPrimaryColor } = loadState('theming', 'data', { primaryColor: '#0082c9', defaultPrimaryColor: '#0082c9' }) diff --git a/apps/theming/src/components/admin/FileInputField.vue b/apps/theming/src/components/admin/FileInputField.vue index 698bc53c402..d5e0052f5bd 100644 --- a/apps/theming/src/components/admin/FileInputField.vue +++ b/apps/theming/src/components/admin/FileInputField.vue @@ -68,7 +68,7 @@ import { loadState } from '@nextcloud/initial-state' import NcButton from '@nextcloud/vue/components/NcButton' import NcLoadingIcon from '@nextcloud/vue/components/NcLoadingIcon' import NcNoteCard from '@nextcloud/vue/components/NcNoteCard' -import Delete from 'vue-material-design-icons/Delete.vue' +import Delete from 'vue-material-design-icons/DeleteOutline.vue' import Undo from 'vue-material-design-icons/UndoVariant.vue' import Upload from 'vue-material-design-icons/Upload.vue' diff --git a/apps/updatenotification/src/components/UpdateNotification.vue b/apps/updatenotification/src/components/UpdateNotification.vue index 3ba6bf5bd69..94c58dbdfd9 100644 --- a/apps/updatenotification/src/components/UpdateNotification.vue +++ b/apps/updatenotification/src/components/UpdateNotification.vue @@ -178,7 +178,7 @@ import IconChevronDown from 'vue-material-design-icons/ChevronDown.vue' import IconCloudCheckVariant from 'vue-material-design-icons/CloudCheckVariant.vue' import IconLink from 'vue-material-design-icons/Link.vue' import IconNewBox from 'vue-material-design-icons/NewBox.vue' -import IconPencil from 'vue-material-design-icons/Pencil.vue' +import IconPencil from 'vue-material-design-icons/PencilOutline.vue' import IconSourceBranch from 'vue-material-design-icons/SourceBranch.vue' import IconStar from 'vue-material-design-icons/Star.vue' import IconWeatherNight from 'vue-material-design-icons/WeatherNight.vue' diff --git a/apps/weather_status/l10n/sw.js b/apps/weather_status/l10n/sw.js new file mode 100644 index 00000000000..7928eb4db94 --- /dev/null +++ b/apps/weather_status/l10n/sw.js @@ -0,0 +1,63 @@ +OC.L10N.register( + "weather_status", + { + "Unknown address" : "Anwani isiyojulikana", + "No result." : "Hakuna matokeo", + "Malformed JSON data." : "Takwimu za JSON zilizoharibika.", + "Error" : "Hitilafu", + "Weather status" : "Hali ya hali ya hewa", + "Weather status in your dashboard" : "Hali ya hewa kwenye dashibodi yako", + "Weather status integrated in the Dashboard app.\n The geographic location can be automatically determined or manually defined. A 6 hours forecast is then displayed.\n This status can also be integrated in other places like the Calendar app." : "Hali ya hali ya hewa imeunganishwa katika programu ya Dashibodi.\nEneo la kijiografia linaweza kuamuliwa kiotomatiki au kufafanuliwa kwa mikono. Utabiri wa saa 6 kisha utaonyeshwa.\nHali hii pia inaweza kuunganishwa katika maeneo mengine kama vile programu ya Kalenda.", + "{temperature} {unit} clear sky later today" : "{temperature} {unit} anga safi baadaye leo", + "{temperature} {unit} clear sky" : "{temperature} {unit}anga safi ", + "{temperature} {unit} cloudy later today" : "{temperature} {unit}mawingu baadeye leo ", + "{temperature} {unit} cloudy" : "{temperature} {unit}mawingu", + "{temperature} {unit} snow and thunder later today" : "{temperature} {unit} theluji na radi baadaye leo ", + "{temperature} {unit} snow and thunder" : "{temperature} {unit}theluji na radi ", + "{temperature} {unit} snow showers and thunder later today" : "{temperature} {unit} manyunyu ya theluji na radi baadaye leo", + "{temperature} {unit} snow showers and thunder" : "{temperature} {unit} manyunyu ya theluji na radi ", + "{temperature} {unit} snow showers, thunder and polar twilight later today" : "{temperature} {unit} manyunyu ya theluji, radi na mwangu hafifu wa ncha za dunia baadaye leo", + "{temperature} {unit} snow showers, thunder and polar twilight" : "{temperature} {unit}manyunyu ya theluji, radi na mwangu hafifu wa ncha za dunia ", + "{temperature} {unit} snow showers later today" : "{temperature} {unit} manyunyu ya theluji baadaye leo", + "{temperature} {unit} snow showers" : "{temperature} {unit}manyunyu ya theluji ", + "{temperature} {unit} snow showers and polar twilight later today" : "{temperature} {unit} manyunyu ya theluji na machweo ya ncha za dunia baadaye leo", + "{temperature} {unit} snow showers and polar twilight" : "{temperature} {unit}manyunyu ya theluji na machweo ya ncha za dunia", + "{temperature} {unit} snow later today" : "{temperature} {unit}theluji baadaye leo ", + "{temperature} {unit} snow" : "{temperature} {unit}theluji", + "{temperature} {unit} fair weather later today" : "{temperature} {unit}hali ya hewa nzuri baadaye leo", + "{temperature} {unit} fair weather" : "{temperature} {unit} hali ya hewa nzuri", + "{temperature} {unit} partly cloudy later today" : "{temperature} {unit}mawingu sehemu baadaye leo ", + "{temperature} {unit} partly cloudy" : "{temperature} {unit}mawingu sehemu ", + "{temperature} {unit} foggy later today" : "{temperature} {unit}ukungu baadaye leo ", + "{temperature} {unit} foggy" : "{temperature} {unit}ukungu ", + "{temperature} {unit} light rainfall later today" : "{temperature} {unit}mvua nyepesi baadaye leo ", + "{temperature} {unit} light rainfall" : "{temperature} {unit}mvua nyepesi ", + "{temperature} {unit} rainfall later today" : "{temperature} {unit}mvua baadaye leo ", + "{temperature} {unit} rainfall" : "{temperature} {unit} mvua", + "{temperature} {unit} heavy rainfall later today" : "{temperature} {unit} mvua kubwa baadaye leo", + "{temperature} {unit} heavy rainfall" : "{temperature} {unit} mvua kubwa", + "{temperature} {unit} rainfall showers later today" : "{temperature} {unit} mvua ya manyunyu baadaye leo", + "{temperature} {unit} rainfall showers" : "{temperature} {unit}mvua ya manyunyu", + "{temperature} {unit} light rainfall showers later today" : "{temperature} {unit} manyunyu ya mvua nyepesi baadaye leo", + "{temperature} {unit} light rainfall showers" : "{temperature} {unit}manyunyu ya mvua nyepesi", + "{temperature} {unit} heavy rainfall showers later today" : "{temperature} {unit} manyunyu ya mvua kubwa leo baadaye", + "{temperature} {unit} heavy rainfall showers" : "{temperature} {unit}manyunyu ya mvua kubwa", + "More weather for {adr}" : " Hali ya hewa zaidi kwa {adr}", + "Loading weather" : "Inapakia hali ya hewa", + "Set location for weather" : "Weka eneo kwa hali ya hewa", + "Remove from favorites" : "Ondoa kutoka katika pendwa", + "Add as favorite" : "Ongeza kama kipendwa", + "You are not logged in." : "Hujaingia kwenye akaunti.", + "There was an error getting the weather status information." : "Kulikuwa na hitilafu kupata taarifa za hali ya hewa.", + "No weather information found" : "Hakuna taarifa za hali ya hewa zilizopatikana", + "Location not found" : "Mahali hapajulikani", + "There was an error setting the location address." : "Kulikuwa na hitilafu katika kuweka anwani ya eneo.", + "There was an error setting the location." : "Kulikuwa na hitilafu katika kuweka eneo.", + "There was an error saving the mode." : "Kulikuwa na hitilafu katika kuhifadhi hali.", + "There was an error using personal address." : "Kulikuwa na hitilafu katika kutumia anwani ya kibinafsi.", + "Unknown weather code" : "Msimbo wa hali ya hewa usiojulikana", + "Detect location" : "Tambua eneo", + "Set custom address" : "Weka anwani maalum", + "Favorites" : "Vipendwa" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/weather_status/l10n/sw.json b/apps/weather_status/l10n/sw.json new file mode 100644 index 00000000000..985b7b4f15f --- /dev/null +++ b/apps/weather_status/l10n/sw.json @@ -0,0 +1,61 @@ +{ "translations": { + "Unknown address" : "Anwani isiyojulikana", + "No result." : "Hakuna matokeo", + "Malformed JSON data." : "Takwimu za JSON zilizoharibika.", + "Error" : "Hitilafu", + "Weather status" : "Hali ya hali ya hewa", + "Weather status in your dashboard" : "Hali ya hewa kwenye dashibodi yako", + "Weather status integrated in the Dashboard app.\n The geographic location can be automatically determined or manually defined. A 6 hours forecast is then displayed.\n This status can also be integrated in other places like the Calendar app." : "Hali ya hali ya hewa imeunganishwa katika programu ya Dashibodi.\nEneo la kijiografia linaweza kuamuliwa kiotomatiki au kufafanuliwa kwa mikono. Utabiri wa saa 6 kisha utaonyeshwa.\nHali hii pia inaweza kuunganishwa katika maeneo mengine kama vile programu ya Kalenda.", + "{temperature} {unit} clear sky later today" : "{temperature} {unit} anga safi baadaye leo", + "{temperature} {unit} clear sky" : "{temperature} {unit}anga safi ", + "{temperature} {unit} cloudy later today" : "{temperature} {unit}mawingu baadeye leo ", + "{temperature} {unit} cloudy" : "{temperature} {unit}mawingu", + "{temperature} {unit} snow and thunder later today" : "{temperature} {unit} theluji na radi baadaye leo ", + "{temperature} {unit} snow and thunder" : "{temperature} {unit}theluji na radi ", + "{temperature} {unit} snow showers and thunder later today" : "{temperature} {unit} manyunyu ya theluji na radi baadaye leo", + "{temperature} {unit} snow showers and thunder" : "{temperature} {unit} manyunyu ya theluji na radi ", + "{temperature} {unit} snow showers, thunder and polar twilight later today" : "{temperature} {unit} manyunyu ya theluji, radi na mwangu hafifu wa ncha za dunia baadaye leo", + "{temperature} {unit} snow showers, thunder and polar twilight" : "{temperature} {unit}manyunyu ya theluji, radi na mwangu hafifu wa ncha za dunia ", + "{temperature} {unit} snow showers later today" : "{temperature} {unit} manyunyu ya theluji baadaye leo", + "{temperature} {unit} snow showers" : "{temperature} {unit}manyunyu ya theluji ", + "{temperature} {unit} snow showers and polar twilight later today" : "{temperature} {unit} manyunyu ya theluji na machweo ya ncha za dunia baadaye leo", + "{temperature} {unit} snow showers and polar twilight" : "{temperature} {unit}manyunyu ya theluji na machweo ya ncha za dunia", + "{temperature} {unit} snow later today" : "{temperature} {unit}theluji baadaye leo ", + "{temperature} {unit} snow" : "{temperature} {unit}theluji", + "{temperature} {unit} fair weather later today" : "{temperature} {unit}hali ya hewa nzuri baadaye leo", + "{temperature} {unit} fair weather" : "{temperature} {unit} hali ya hewa nzuri", + "{temperature} {unit} partly cloudy later today" : "{temperature} {unit}mawingu sehemu baadaye leo ", + "{temperature} {unit} partly cloudy" : "{temperature} {unit}mawingu sehemu ", + "{temperature} {unit} foggy later today" : "{temperature} {unit}ukungu baadaye leo ", + "{temperature} {unit} foggy" : "{temperature} {unit}ukungu ", + "{temperature} {unit} light rainfall later today" : "{temperature} {unit}mvua nyepesi baadaye leo ", + "{temperature} {unit} light rainfall" : "{temperature} {unit}mvua nyepesi ", + "{temperature} {unit} rainfall later today" : "{temperature} {unit}mvua baadaye leo ", + "{temperature} {unit} rainfall" : "{temperature} {unit} mvua", + "{temperature} {unit} heavy rainfall later today" : "{temperature} {unit} mvua kubwa baadaye leo", + "{temperature} {unit} heavy rainfall" : "{temperature} {unit} mvua kubwa", + "{temperature} {unit} rainfall showers later today" : "{temperature} {unit} mvua ya manyunyu baadaye leo", + "{temperature} {unit} rainfall showers" : "{temperature} {unit}mvua ya manyunyu", + "{temperature} {unit} light rainfall showers later today" : "{temperature} {unit} manyunyu ya mvua nyepesi baadaye leo", + "{temperature} {unit} light rainfall showers" : "{temperature} {unit}manyunyu ya mvua nyepesi", + "{temperature} {unit} heavy rainfall showers later today" : "{temperature} {unit} manyunyu ya mvua kubwa leo baadaye", + "{temperature} {unit} heavy rainfall showers" : "{temperature} {unit}manyunyu ya mvua kubwa", + "More weather for {adr}" : " Hali ya hewa zaidi kwa {adr}", + "Loading weather" : "Inapakia hali ya hewa", + "Set location for weather" : "Weka eneo kwa hali ya hewa", + "Remove from favorites" : "Ondoa kutoka katika pendwa", + "Add as favorite" : "Ongeza kama kipendwa", + "You are not logged in." : "Hujaingia kwenye akaunti.", + "There was an error getting the weather status information." : "Kulikuwa na hitilafu kupata taarifa za hali ya hewa.", + "No weather information found" : "Hakuna taarifa za hali ya hewa zilizopatikana", + "Location not found" : "Mahali hapajulikani", + "There was an error setting the location address." : "Kulikuwa na hitilafu katika kuweka anwani ya eneo.", + "There was an error setting the location." : "Kulikuwa na hitilafu katika kuweka eneo.", + "There was an error saving the mode." : "Kulikuwa na hitilafu katika kuhifadhi hali.", + "There was an error using personal address." : "Kulikuwa na hitilafu katika kutumia anwani ya kibinafsi.", + "Unknown weather code" : "Msimbo wa hali ya hewa usiojulikana", + "Detect location" : "Tambua eneo", + "Set custom address" : "Weka anwani maalum", + "Favorites" : "Vipendwa" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file |